B&R PVI Interface (Bernecker & Rainer Process Visualisation Interface)

Protocol description
Communication line configuration
Station configuration
I/O tag configuration
Literature
Changes and modifications
Document revisions

Protocol description


The B&R PVI Interface protocol is used to communicate with the B&R PLC using the PVI interface from Bernecker & Rainer. The following features are supported:

  • reading and writing (input and output I/O tags),
  • reading and writing simple types (i8, i16, i32, i64, u8, u16, u32, u64, boolean, string, wstring, time, dt, date, tod),
  • working with individual items (which are of simple types) of structured variables,
  • reading arrays into structured I/O tags with a configured  Destination column of the structure.

Working with the "data" data type is not yet supported.

Communication was tested with both virtual and physical B&R PLC with PVI versions:

  • Automation Net PVI V4.0
  • Automation Net PVI V4.2
  • Automation Net PVI V4.3
  • Automation Net PVI V4.7

Hierarchy of PVI objects

B&R PVI defines the following object hierarchy for the INA2000 line, which is used to communicate with the B&R SG3, SGC, and SG4 control units via the INA2000 (Industrial Network Architecture) protocol.

Line and Device objects are configured in the protocol parameters of the D2000 communication line.

Station, CPU, Module, and Task objects are configured in the protocol parameters of the D2000 communication station.

Variable objects are configured as D2000 I/O tags.

Communication line configuration


  • Communication line category: API.

Line protocol parameters

The following global line protocol parameters can be configured for the "B&R PVI Interface" protocol:

ParameterMeaningUnitDefault value
--- PVI Parameters ---

Communication timeout

Parameter for the PviXInitialize function (PVI interface initialization).
Communication timeout for the client/server communication in seconds The value specified with this parameter serves as the default setting of the initialization parameter COMT. If no particular presetting is desired, the default value 0 should be entered.

sec0

Retry time

Parameter for the PviXInitialize function (PVI interface initialization).
Retry time for PVICOM user messages in seconds. The value specified with this parameter serves as the default setting of the initialization parameter RETR. If no particular presetting is desired, the default value 0 should be entered.
sec0

Initialization parameter string

Parameter for the PviXInitialize function (PVI interface initialization).
String with initialization parameters. According to the PVI documentation, the following parameters are supported:

ParameterDescription
COMTCommunication timeout for the client/server (application/PVI Manager) communication in seconds
The timeout also defines the time for the life sign monitor. An additional period is needed to detect a disruption in the client/server connection. To determine the total time where a communication disruption would be detected (at the latest), the timeout value specified here has to be doubled. If the timeout is 5, then an interruption in the connection can be detected as early as 5 seconds and as late as 10 seconds. Connection interrupts are not recognized as such by the PVICOM interface if they occur within the timeout period. Data transfer simply continues once the connection is reestablished. Often used values are 3 - 10 seconds for local communication and 5 - 30 seconds for remote communication.
Value: 1 - 3600, = 0 ... Default value of 30 s used.
The value specified in the function argument "Timeout" serves as a presetting for this parameter.
RETRRetry time for PVICOM user messages is seconds.
The default setting ("RetryTime=0") should normally be used for this parameter. See the User Message Operations section for more information about this parameter.
Value: 1 - 3600, <= 0 ... no repetition.
The value specified in the function argument "RetryTime" serves as a presetting for this parameter.
LMLimit on user messages. Default: "LM=1".
PVICOM applications basically do not need to change the default setting of this parameter. However, if an application is able to respond quickly to PVICOM user messages, then a higher limit value ("LM=100", "LM=500") can speed up user message execution. See the User Message Operations section for more information about this parameter.
Value: 1 - 65535, <= 0 -> No limiting.
PTProcess timeout in seconds. Default: "PT=0".
This timeout can be used to monitor the time between requests and responses. This parameter is only intended for PVICOM applications that carry out particular tasks. Standard applications do not need to be monitored and should use the default setting (no timeout monitoring).
Value: 1 - 3600, <=0 -> No timeout monitoring
IPTCP/IP address or hostname.
If the IP initialization parameter is specified, then the Remote communication type is used for PVICOM communication. Either the TCP/IP address (e.g. "IP=10.43.50.62") or the hostname ("IP=SystemPC1") of the server (PVI Manager) is specified with this parameter. If the hostname is given, then the IP address assigned to the name is determined by the system
PNTCP/IP port number. Default: "PN=20000".
This parameter is only required in conjunction with the IP parameter. The port number assigned to the PVI Manager needs to be specified here (PVI Manager Properties).
Value: 1024 - 32767.
AS

Auto-Start (only for the local communication type).
1 ... PVI Manager is started (default).
0 ... PVI Manager is not started automatically and must be started already when the function is called.
More information about the startup procedure can be found in the PVI Manager section.

--

Line object definition

ObjectDescriptor parameter for the PviXCreate function when creating a Line object.
The parameter specifies the line description. The default value CD=LnIna2 creates an INA2000 line, which is used for communication with B&R SG3, SGC, and SG4 controllers via INA2000 protocol (Industrial Network Architecture).

-CD=LnIna2

Device object definition

ObjectDescriptor parameter for the PviXCreate function when creating a Device object.
The parameter gives a description of the device. The default value CD="/IF=tcpip /SA=1" creates a connection using TCP/ IP (UDP), the source address (the D2000 KOM address) will be 1. The PVI documentation describes the parameters for individual device types (Serial, Ethernet UDP, Modem, CAN device, Profibus FDL device).
sec30
--- Other Parameters ---

Browse tasks

The parameter affects the scope of browsing used to configure the I/O tags.
If the parameter is set to YES, when browsing the I/O tag, global variables, all Task variables defined within the CPU, as well as all local variables defined in all tasks will be searched. If the parameter is set to NO, the global variables and local variables of the task defined by the Task object definition protocol parameter are searched.
Note: this feature is disabled because, on a station, it only makes sense to configure global variables and local variables of the task defined by the Task object definition protocol parameter. Local variables of other tasks will not work.

YES/NONO

Inactivity timeout

If the value of the parameter is non-zero, then within the periodic reading of values within the station, it is checked whether any value was received by any station on the line during the last "Inactivity timeout" seconds. If not, the connection to the PVI Manager will be disconnected and re-established.
Note: this parameter can be used to speed up the detection of communication problems. If the values of the I/O tags change infrequently, we recommend creating an output I/O tag to which the value will be written every few seconds.

sec0

Cleanup command

This parameter allows the batch file to be started at the (re)start of communication. This batch file can e.g. restart the PVI Manager process (PviMan.exe) - e.g. using the pskill.exe utility or using the Windows utility "sc" if PVI Manager is running as a service. Restarting helps if, for example, the PVI Manager stays in the "Locked" state.
The symbolic constant #APPDIR# may be used in the command name, which will be substituted by the application directory name, e.g. #APPDIR#cleanup.bat

--

Cleanup timeout

The time limit in seconds for the batch file specified by the Cleanup command parameter to finish execution. After this time elapses, the command will be terminated.

sec10

Post create delay

Delay after creating each object. This parameter is used to slow down the start of communication for debugging and diagnostics.

sec0,0

Asynchronous write/create

The parameter determines the method of communication with the PVI Manager when creating objects and writing values. The asynchronous method is recommended, the synchronous method is implemented only for debugging and diagnostics. In addition, the synchronous mode of operation is not supported by the PVI Manager from several threads, so it can only be used with a single B&R line.

YES/NOYES

Value Debug

Logging of values being read and written, together with names of /O tags.

YES/NONO

Full Debug

Logging of additional debug information about communication.YES/NONO



Station configuration


  • The communication station corresponds to the device with which the KOM process communicates. At the station protocol parameter level, objects of Station, CPU, Module, and Task types are specified.
  • Communication protocol "B&R PVI Interface".


Station protocol parameters

Configuration dialog box - tab Parameter.
They influence some optional parameters of the protocol. The following station protocol parameters can be set:

Table 1

ParameterMeaningUnitDefault value

Station object definition

Definition of an object of Station type. It is not necessary to configure for the INA2000 line (the parameter is used on NET2000, DCAN, MODBUS, and SNMP lines).

--

CPU object definition

Definition of an object of CPU type. The default value CD="/DAIP=127.0.0.1 /REPO=11160 /RT=1000" creates a connection to the locally running (/DAIP=127.0.0.1) virtual PLC on port 11160 (/REPO=11160), with a response timeout of 1000 ms (/RT=1000). According to the PVI documentation, there are the following usable parameters for UDP communication:

ParameterValuesSettingDescription
/DA1-2557Station number of the target station.
Automatic identification of the target station from the station number. The station number must be unique within the INA2000 network. The highest station number is 99 for SG3 and SGC with AR Version < 2.00, or 255 for SG4 and SGC with AR Version >= 2.00.
Example: "/DA=56".
/DAIPIP address,
Host name
NoneThe IP address of the target station.
Manual identification of the target station from the IP address or identification from the hostname (DNS, only possible for SG4).
Examples: "/DAIP=68.10.10.27" ... IP address, "/DAIP=CP340su" ... Hostname.

Specifying the parameter /DA depends on whether the parameter /DAIP is specified:
If the parameter /DAIP is not specified, then the parameter /DA must always be specified. If the parameter /DAIP is specified as an IP address, the parameter /DA is optional. If /DA is specified, however, the defined station number must be correct. If the /DAIP parameter is specified as a hostname, the /DA parameter is ignored.

/RT0 - 65535275

Response timeout in ms.
If a response to a sent frame is not received with this time, then the frame is transferred again. After the third retry, the connection is deemed canceled. The time in which an interrupted connection is detected is a result of ResponseTimeout * 4.
Setting /RT=0 uses the INA2000 default value (275 ms).
Example: "/RT=400".

Recommended values:

20 - 250...For simple point-point connections, or connections via a local network with pure variable communication on SG4 controllers with sufficient idle time, with AR 3.00 and higher.
250 - 500...For connections via a local network with pure variable communication to any target systems / AR versions.
500 - 750...For connections via a local network with PLC services running (e.g. Automation Studio project transfer).
750 - 1500...For connections via an in-house network.
1500 - 5000...For connections via Intranet/Internet.
REPO1025 - 3276711159IP port number of the target station.
If the value is specified in Hexadecimal, then "0x" must be used to introduce the value (e.g. "/LOPO=0x2b97").
The port number must match the setting on the target station (PLC).
Example: "/REPO=11159".
/CKDA0 / 11Enables or disables the check to see if the target station number (parameter /DA) is unique.
The parameter /CKDA is irrelevant if used together with the parameter /DAIP (check is always disabled).
Example: "/CKDA=0" ... Checking is disabled.
/ANSL0 / 1*)Turn on/off fast TCP download/upload via ANSL.
Example: "/ANSL=0" ... Download/upload via ANSL is turned off.
/APN1025 - 3276711169ANSL IP port number of the target station (peer station) for fast TCP download/upload.
Example: "/APN=11169".
-CD="/DAIP=127.0.0.1 /REPO=11160 /RT=1000"

Module object definition

Definition of object of Module type. The parameter allows the creation of a connection to the module within the PLC.
Syntax of CD parameter:

/RO=[<Name of application module>::]<Module name>
or
[<Name of application module>::]<Module name>

Examples:

  • CD="/RO=Module1"
  • CD="/RO=Generator::Module1"
  • CD=Module2
  • CD=Generator::Module2
--

Task object definition

Definition of an object of Task type. The parameter allows the creation of a connection to a task (program) within the PLC. The I/O tags that are children of the station represent global variables of the PLC and local variables of the task specified by this parameter. It is, therefore, necessary to configure a separate station for each task within the PLC. If no parameter is specified, only global PLC variables are available.

--


I/O tag configuration


Possible types of I/O tag values: Ai, Ao, Di, Do, Ci, CoTiRToR, TiA, ToA, TxtI, TxtO.

I/O tag address:

The I/O tag corresponds to an object of Variable type.

The address of the /O tag is in the form Parameter1=value1 [Parameter2=value2] ...

Mandatory parameters are CD=variable_name VT=value_type.
Parameter VL=element_length is mandatory for strings and wide strings (VT=string and VT=wstring).
Parameter VN=number_of_elements is mandatory for array values.
Note: the  /O tag is ignored if its address starts with %IGNORE

According to the PVI documentation, the following parameters are supported:

ParameterDescription
CD

Connection description

EVDefinition of the enable mask for events. Default: "EV=ed".
  • "e": Change in error state
  • "d": Change in data
  • "f": Change in data format
  • "c": Change in the connection description
  • "p": Progress information about active requests
  • "s": Status changes
  • 'u': Change in the user tag string
  • 'l': Special line events
Example: "EV=edfc"
If no events should be enabled, then specify "EV=".
ATObject attributes. Default: "AT=rw"
  • "r": Allows read access
  • "w": Allows write access
  • "e": PLC event operation
  • "h": Immediate write echo if access type POBJ_ACC_DATA
  • "d": Direct event trigger for the POBJ_EVENT_DATA event
RFRefresh rate in ms. Default: "RF=1000".
  • =-1: Cyclic data refresh is turned off
  • = 0: Data refresh is only carried out once
  • > 0: Cyclic data refresh is carried out with the specified refresh rate
VTVariable type (Data format description). Default in the process object: "VT=i32"
  • "i8", "i16", "i32", "i64": 8 to 64-bit signed integer
  • "u8", "u16", "u32", "u64": 8 to 64-bit unsigned integer
  • "f32", "f64": 32/64-bit floating point
  • "boolean": Flag with element length of 1 byte
  • "string": String with 8-bit character size
  • "wstring": String with 16-bit character size
  • "struct": Structure
  • "time": 32-bit time in ms since midnight
  • "dt": 32-bit date and time in seconds since 1/1/1968
  • "date": 32-bit date,
  • "tod". 32-bit time of day,
  • "data": General variable type with 1-byte element length
VLVariable length in bytes (data format description). This parameter can only be specified together with the VT parameter.
For single variables, the variable length corresponds to the process data length. For array variables, the variable length is defined as the element length. This parameter does not need to be specified when used in conjunction with variable types which have a fixed variable length (e.g. VT=i32 always has a variable length of 4 bytes).
VNThe number of elements in array variables (data format description). Default: VN=1. This parameter can only be specified together with the VT parameter.
VS

Optional additional specification of the variable type (Data format description). This parameter can only be specified together with the VT parameter.

The VS parameter provides additional information about the variable type (VT parameter), and does not affect how data is handled (data functions, type changes, etc.) in PVI. Each additional specification consists of one or more specification IDs ('a' - 'z'). The individual specification IDs are separated by semicolons (';'). The following additional specifications are currently defined: 'a' ... array variable, 'b' ... bit string, 'e' ... enumeration, 'v' ... derived data type.

ALStructure alignment. Default: "AL=1".
This parameter only takes effect in connection with variable type "VT=struct". Alignment values 1, 2, 4, 8, or 16 can be defined.
CMMode for type casting (cast mode). Default: "CM=0".
The mode is defined as a bit list and controls type casting between link and process objects.
  • Bit 0: String variable for PG2000 or AS 1.3
  • Bit 1: String contents are interpreted as a decimal number
  • Bit 2: Value range is monitored
  • Bit 3: Rounding takes place when casting type from a float to an integer
  • Bit 4: Strings are always terminated with 0 (null).
VAVariable addressing. Default: No variable addressing
Using variable addressing, link objects can address subsets from the process data of a variable object.
DVThe default value for single variables (process data).
This parameter can be used to assign a default data value to process variable objects of type Integer, Floating Point, Boolean, or String. If this parameter is specified, then a data format also has to be defined in the object description. This default value is only written to the process image but is not transferred to the PLC.
Examples: DV=123,  DV=2.561e10,  DV="string format"
HYAssigned event hysteresis. Default: No hysteresis
Definition of event hysteresis for single variables or array variables of type Integer or Floating Point. Event hysteresis is specified as a hysteresis value.
Examples: HY=10, HY=2.5
FSAssigned data function. Default: No function
Definition of a data function for single variables or array variables of type Integer or Floating Point. The data function is specified as a function description.
UTA user tag. With user tags, PVI applications can assign a private user code or specific user data to a process object (module, task, or variable object) in the form of a string. User tags are only managed by PVI, not evaluated.

Examples of configuration:

  • CD=gByte VT=u8 RF=10 - 1-byte unsigned variable gByte, 10 ms refresh rate
  • CD=gMyInt VT=i16 HY=5 - 2-byte signed variable gMyInt, with hysteresis 5 (a change less than 5 will not be reported)
  • CD=gDate RF=250 AT=rw VT=date - variable gDate of date type, access for reading and writing, 250 ms refresh rate
  • CD=gmArrInt VT=i16 VN=6 - variable gmArrInt is array of 16-bit signed integers, first 6 array items will be read
    Note: For reading of more than one array item to make sense, the Destination column must be configured for the I-O tag.
    Note: Variable with "VN=number_of_items" parameter is for reading only. If writing is required, each array item must be configured as a separate I-O tag (see next example).
    CD=gmArrInt[0] VT=i16 - the item zero of an array of 16-bit signed integers gmArrInt (arrays in B&R PLC by default start with a zero entry similar to C)
  • CD=string_arr RF=250 AT=rw VT=string VL=6 VN=5 - variable string_arr is an array of 6-byte strings, first 5 array items will be read, 250 ms refresh rate
    Note: If a string has 6 bytes, it will only fit 5 characters (the last byte is a trailing zero).
  • CD=wstring_arr VT=wstring VL=42 VN=4 - variable wstring_arr is an array of 6-byte wide strings (2-bytes per character) reťazcov, first 4 array items will be read
    Note: If a wstring has 42 bytes, it will only fit 20 2-byte characters (the last 2 bytes is a trailing zero).
  • CD=Controll.cmd.SetPoint VT=f32 VL=4 VN=1 - item SetPoint of substructure cmd of structured variable Controll is a 32-bit floating-point number

Browse

For the I/O tags,  it is possible to find a list of objects of Variable type and their data types and other details, as long as the KOM process is running and communication with the station is established.
Clicking the Browse button opens the B&R PVI Item Browser window and displays a list of objects.


Figure - B&R PVI Item Browser window

The window displays the following information:

Task: the name of the task (if it is a local variable), or an empty string (if it is a global variable). By default, only local variables belonging to the task specified as the Task object definition parameter are read. If the Browse task parameter is enabled, the local variables of all tasks are read.

Variable: variable name in B&R PLC (value of the CD parameter )

Parameters: other parameters of the variable (see the configuration of the I/O tag)

Point: the name of the I/O tag that is configured for this object

Filtering in the list of objects: the browse window allows you to filter by the values ​​displayed in each column. The values don't have to be entered completely. The notation *FILTERED EXPRESSION* is sufficient, where the asterisks represent any text before the start and end of the expression (e.g., *put* covers both input or output).

The total number of objects: the total number of objects in all object groups is displayed at the bottom left of the window.


Meaning of individual options and buttons:

Copy all to clipboard

Copies all displayed objects and details to the Windows Clipboard.

Refresh

The Refresh button can be used to force the object list to be re-read from the device. By default, the KOM process reads the list of objects and their data types only for the first request and stores it in memory. Depending on the number of objects and the speed of the device, this reading may take a longer time. It then sends this stored list to the CNF process(es), so that the next reading of the list in the DNP3 Item Browser window is fast.

Cancel

D2000 Cnf has the recycling of browser windows implemented. If the window is closed by the Cancel button or after selecting an object, it is actually only hidden and is available for browsing for another I/O tag within the same station, so that the list of objects being viewed is preserved. Clicking on the cross at the top right corner will cause the window to actually close.


In the case of structured variables, the window displays individual items that are of basic types. If the local variables of all tasks are browsed ( the Browse task parameter), the local variables not belonging to the task specified as the Task object definition parameter will be displayed in gray and cannot be selected. The following figure shows the items of structured variables as well as local variables of other tasks:



Literature



PviBase.chm PVI Base system - B&R documentation

Blog

You can read blogs about the B&R PVI protocol

Changes and modifications


-

Document revisions


  • Ver. 1.0 - April 1st, 2021 - a document created.

Napíšte komentár