Data messages
The peripheral address in WinCC OA is composed of the following elements for explicit addressing of data points: |
|
|
|
|
|
|
|
Since the index in the message constitutes part of the peripheral address, this ensures total flexibility in configuring the individual items of data in a message. Hence the each of the items of data can be combined in one data point, say, or they might form part of a larger data point, or else be distributed amongst several data points. |
The index numbers for each telegram are assigned in the driver. They are listed separately under the different messages. |
In principle there are several options for assigning WinCC OA data points to messages. The peripheral addresses can be configured at the data point nodes, provided the sheets under this node have the same type (i.e. for all dynamic arrays of data points of the same type, such as a bit pattern structure, bit structure), as well as on the sheets. If the peripheral address is configured at a node, then the index number of the peripheral address specifies the object in the message from which the data is distributed to all other objects on the sheets of the WinCC OA data point. Thus one could for instance distribute 16 individual messages (index 0 to 15) to two data points of type bit structure, each with 6 bits, by specifying the index of the peripheral address as 0 in the data point node of the first data point, and as 6 in the node of the second data point. Incoming messages are then distributed to the sheets of the data points. The six sheets of the first data point receive messages 0-5 (bits), and the sheets of the second data point receive messages 6-11 (also bits). Since the remaining messages (12-15) have not been configured to any WinCC OA data point, they are discarded by the driver. |
In addition, indices are introduced for some messages for special handling purposes. For instance it ought to be possible to configure the 16 individual messages jointly on one data point sheet of type bit pattern; the index 20 (for 16 individual messages) has been introduced for this purpose. |
Non-real-time messages
These are also called priority-controlled messages. They are not time-based and arrive more quickly than real-time messages. |
DF = 01 - Digital value unsigned 32 Bit |
The data area of the message contains the following elements: |
length | Parameter |
---|---|
4 bytes | unsigned integer (Little Endian) |
The value is configured to a dedicated data point in WinCC OA. The corresponding type of the WinCC OA variable is natural number. |
SSI label | Index | SSI type | WinCC OA type |
---|---|---|---|
Digital value unsigned 32 Bit | 0 | 32 bit unsigned int | natural number |
DF = 02 - Digital value signed 32 Bit ( 31 Bit plus VZ ) |
The data area of the message contains the following elements: |
length | Parameter |
4 bytes | signed integer (no two's-complement representation) |
The value is configured to a dedicated data point in WinCC OA. The corresponding type of the WinCC OA variable is integer. |
SSI label | Index | SSI type | WinCC OA type |
---|---|---|---|
Digital value signed 32 Bit | 0 | 32 bit signed int | Integer |
DF = 03 - Transformer tap position ( digital ) |
The data area of the message contains the following elements: |
length | Parameter |
---|---|
1 byte | Transformer setting |
1 byte | (Bit 1: contact indicator, Bit 0: error bit) |
It is recommended to configure the three values to a common data point. |
SSI label | Index | SSI type | WinCC OA type |
---|---|---|---|
Transformer setting | 0 | 8 bit unsigned int | natural number |
Error bit | 1 | bit | Bit |
Contact indicator | 2 | bit | Bit |
DF = 04 - Floating Point |
The data area of the message contains the following elements: |
length | Parameter |
---|---|
4 bytes | floating point in IEEE format |
The assigned WinCC OA data point is of type floating point. |
Table: The indices and types for "floating point" assigned to the individual items of data. |
SSI label | Index | SSI type | WinCC OA type |
---|---|---|---|
floating point value | 0 | 32 bit floating point IEEE | floating-point number |
DF = 05 - Combination messages |
The data area of the message contains the following elements: |
length | Parameter |
---|---|
4 byte | signed integer in SSI format |
1 byte | for limit messages LI3, LI2, LI1, Li0, 1 bit each |
1 byte | for gradient messages GR1 and GR0, 1 bit each |
SSI label | Index | SSI type | WinCC OA type |
---|---|---|---|
Measurement | 0 | 32 bit signed int | Integer |
Limit message LI0 | 1 | bit | Bit |
Limit message LI1 | 2 | bit | Bit |
Limit message LI2 | 3 | bit | Bit |
Limit message LI3 | 4 | bit | Bit |
Gradient message GR0 | 5 | bit | Bit |
Gradient message GR1 | 6 | bit | Bit |
Measurement | 10 | 32 bit signed int | Integer |
Limit message | 11 | byte (4 bits) | Bit pattern |
Gradient message | 12 | byte (2 bits) | Bit pattern |
Measurement | 20 | 32 bit signed int | Integer |
Limit+gradient | 21 | byte (6 bits) | Bit pattern |
DF = 06 - Computer link formats |
The data area of the message contains the following elements: |
length | Parameter |
---|---|
8 bytes | (64 bits) transparent data |
More precise structuring of the data is not implemented. |
SSI label | Index | SSI type | WinCC OA type |
---|---|---|---|
Transparent data | 0 | 8 bytes of transparent data | Text |
DF = 07 - String |
The data area in the message consists of up to 1000 bytes of transparent data. Currently up to 57 bytes are supported. More precise structuring of the data is not implemented. |
SSI label | Index | SSI type | WinCC OA type |
---|---|---|---|
String (dynamic length) | 0 | 1-1000 data bytes | Text |
DF = 08 - Transparent data |
The data area of the message contains the following elements: |
length | Parameter |
---|---|
8 bytes | transparent data |
More precise structuring of the data is not implemented. |
SSI label | Index | SSI type | WinCC OA type |
---|---|---|---|
Transparent data | 0 | 8 bytes of transparent data | Text |
DF = 09 - 16 individual messages |
The data area of the message contains the following elements: |
length | Parameter |
---|---|
2 bytes | Message bits |
|
If all the individual messages are mapped onto a bit pattern, the associated invalid bit is obtained from logically ORing the individual invalid bits. |
SSI label | Index | SSI type | WinCC OA type |
---|---|---|---|
Message 0 | 0 | bit | Bit |
Message 1 | 1 | bit | Bit |
Message 2 | 2 | bit | Bit |
Message 3 | 3 | bit | Bit |
Message 4 | 4 | bit | Bit |
Message 5 | 5 | bit | Bit |
Message 6 | 6 | bit | Bit |
Message 7 | 7 | bit | Bit |
Message 8 | 8 | bit | Bit |
Message 9 | 9 | bit | Bit |
Message 10 | 10 | bit | Bit |
Message 11 | 11 | bit | Bit |
Message 12 | 12 | bit | Bit |
Message 13 | 13 | bit | Bit |
Message 14 | 14 | bit | Bit |
Message 15 | 15 | bit | Bit |
All | 20 | 16 bit | bit pattern |
DF = 10 - 8 Double messages |
The data area of the message contains the following elements: |
length | Parameter |
---|---|
2 bytes | Switch settings (2 bits each) |
2 bytes | Invalid bits for the switch messages |
This message indicates the state of a switch. Each switch state is described by two bits. |
D | Z | State |
---|---|---|
0 | 1 | ON |
0 | 0 | OFF |
1 | 0 | Intermediate |
1 | 1 | Error |
If all the messages are mapped onto a bit pattern, the associated invalid bit is obtained from logically ORing the individual invalid bits. |
SSI label | Index | SSI type | WinCC OA type |
---|---|---|---|
Message Z0 | 0 | bit | Bit |
Message D0 | 1 | bit | Bit |
Message Z1 | 2 | bit | Bit |
Message D1 | 3 | bit | Bit |
Message Z2 | 4 | bit | Bit |
Message D2 | 5 | bit | Bit |
Message Z3 | 6 | bit | Bit |
Message D3 | 7 | bit | Bit |
Message Z4 | 8 | bit | Bit |
Message D4 | 9 | bit | Bit |
Message Z5 | 10 | bit | Bit |
Message D5 | 11 | bit | Bit |
Message Z6 | 12 | bit | Bit |
Message D6 | 13 | bit | Bit |
Message Z7 | 14 | bit | Bit |
Message D7 | 15 | bit | Bit |
Message 0 | 20 | 2 bit | Bit pattern |
Message 1 | 21 | 2 bit | Bit pattern |
Message 2 | 22 | 2 bit | Bit pattern |
Message 3 | 23 | 2 bit | Bit pattern |
Message 4 | 24 | 2 bit | Bit pattern |
Message 5 | 25 | 2 bit | Bit pattern |
Message 6 | 26 | 2 bit | Bit pattern |
Message 7 | 27 | 2 bit | Bit pattern |
All | 30 | 16 bit | Bit pattern |
DF = 11 - 4 Double messages with command feedback |
The data area of the message contains the following elements: |
length | Parameter |
---|---|
2 bytes | Command feedback messages (4 bits each) |
2 bytes | Invalid bits for the command feedback messages |
This message is used to return information on the effects of a command. 4 bits describe the state of a switch (relays, NC contacts) |
Bit | Bit | Switch state |
---|---|---|
Z | 0 | Off |
1 | On (switch state) | |
D | 0 | ok |
1 | Switch fault | |
SF | 0 | ok |
1 | Z bit changes because of external events (not because of command) | |
SL | 0 | defined state |
1 | Z switching between states |
SSI label | Index | SSI type | WinCC OA type |
---|---|---|---|
Message Z0 | 0 | bit | Bit |
Message D0 | 1 | bit | Bit |
Message SF0 | 2 | bit | Bit |
Message SL0 | 3 | bit | Bit |
Message Z1 | 4 | bit | Bit |
Message D1 | 5 | bit | Bit |
Message SF1 | 6 | bit | Bit |
Message SL1 | 7 | bit | Bit |
Message Z2 | 8 | bit | Bit |
Message D2 | 9 | bit | Bit |
Message SF2 | 10 | bit | Bit |
Message SL2 | 11 | bit | Bit |
Message Z3 | 12 | bit | Bit |
Message D3 | 13 | bit | Bit |
Message SF3 | 14 | bit | Bit |
Message SL3 | 15 | bit | Bit |
Message 0 | 20 | 4 bit | Bit pattern |
Message 1 | 21 | 4 bit | Bit pattern |
Message 2 | 22 | 4 bit | Bit pattern |
Message 3 | 23 | 4 bit | Bit pattern |
All | 30 | 16 bit | Bit pattern |
If all the messages are mapped onto a bit pattern, the associated invalid bit is obtained from logically ORing the individual invalid bits. |
DF = 12 - 1 Individual data point message |
The data area of the message contains the following elements: |
length | Parameter |
1 byte | Feedback message (4 bits, 0 to 3) |
SSI label | Index | SSI type | WinCC OA type |
---|---|---|---|
Message Z | 0 | bit | Bit |
Message D | 1 | bit | Bit |
Message SF | 2 | bit | Bit |
Message SL | 3 | bit | Bit |
Total message | 10 | 4 bit | Bit pattern |
DF = 13 Command |
The data area of the message contains the following elements: |
length | Parameter |
1 bytes | Command number |
1 bytes | Switching time |
This message constitutes the pulse command of the SSI protocol. It contains a single command. A relay (switch) is switched for the given switching time, and then returns to an idle state. Normally two different command numbers would be required to switch a peripheral device between "ON" and "OFF". Unlike the usual data formats, data points of type pulse command must be signaled to the Event Manager by means of a single registration (in the command direction). All other data points are registered as a group. Provided the peripheral address is configured in the configuration panel then the correct form of registration will be set automatically. If configuration is from ASCII files, however, then the attribute address.._mode must be set to 5 (= single registration) for these commands, and to 1 (in the command direction) or 2 (in the message direction) for all other commands. |
The message contains the switching time in addition to the command number. The switching time is coded in a byte, where the individual bits have the following meaning: |
Time (bits 0 and 1) | 0 for 50 ms, 1 for 500 ms, 10 for 1 sec, 11 for 10 sec. |
Factor (bits 2-6) | 1...31 switching time = time x factor |
OW (bit 7) | 1... overwrites command already running |
0...Overwriting not permitted |
The switching time can be specified in two different ways. For most commands it is adequate to use a system-wide switching time that applies to all commands. A default value for the switching time is provided for this purpose in the SSI driver. This can be set using the defaultImpulseTime entry in the configuration file (see chapter on Configuration file entries). If this entry does not appear, then 8 is used by default (equals 100 mS). If other switching times need to be set for individual commands, then these can be specified in the data point _SSI_Impulse_Times (this contains a dynamic array of bit patterns in which the required switching times can be set - the simplest way of doing this is in the Pulse times panel of the Peripheral address panel). In order to then assign a switching time from this array to a command data point, the index for this switching time in the _SSI_Impulse_times data point is added to the peripheral address as an extension to the data type (separated by a colon). One should note that this extra index is only allowed for data points of type command. |
Example |
The peripheral address 13:2.255.3.4.1.0 assigns to the data point the switching time contained in the second array item of the _SSI_Impulse_Time data point. |
SSI label | Index | SSI type | WinCC OA type |
---|---|---|---|
Command 0 | 0 | coded in bytes. | Bit |
Command 1 | 1 | coded in bytes. | Bit |
Command 2 | 2 | coded in bytes. | Bit |
Command 3 | 3 | coded in bytes. | Bit |
Command 4 | 4 | coded in bytes. | Bit |
Command 5 | 5 | coded in bytes. | Bit |
Command 6 | 6 | coded in bytes. | Bit |
Command 7 | 7 | coded in bytes. | Bit |
Command 8 | 8 | coded in bytes. | Bit |
Command 9 | 9 | coded in bytes. | Bit |
Command 10 | 10 | coded in bytes. | Bit |
Command 11 | 11 | coded in bytes. | Bit |
Command 12 | 12 | coded in bytes. | Bit |
Command 13 | 13 | coded in bytes. | Bit |
Command 14 | 14 | coded in bytes. | Bit |
Command 15 | 15 | coded in bytes. | Bit |
Real-time messages
For every priority-controlled message there is an equivalent real-time message. This contains a 5-byte time field in front of the data, indicating the time the supplied data was generated. This time information has the following format: |
length | Parameter |
---|---|
2 bytes | milliseconds (lower significant byte of the msec before the higher significant byte) |
1 bytes | seconds |
1 bytes | minutes |
1 bytes | hours (24 hour format) |
DF = 101 Digital value unsigned 32 Bit with time |
This message otherwise has the same action as the analog NEZ message. |
DF = 102 Digital value signed 32 Bit ( 31 Bit plus VZ ) with time |
This message otherwise has the same action as the analog NEZ message. |
DF = 03 - Transformer tap position ( digital ) with time |
This message otherwise has the same action as the analog NEZ message. |
DF = 104 Floating point with time |
This message otherwise has the same action as the analog NEZ message. |
DF = 105 Combination message with time |
This message otherwise has the same action as the analog NEZ message. |
DF = 106 Computer link formats with time |
This message otherwise has the same action as the analog NEZ message. |
DF = 107 String with time |
This message otherwise has the same action as the analog NEZ message. |
DF = 108 Transparent data with time |
This message otherwise has the same action as the analog NEZ message. |
DF = 109 16 Single messages with time |
This message otherwise has the same action as the analog NEZ message. |
DF = 110 8 Double messages with time |
This message otherwise has the same action as the analog NEZ message. |
DF = 111 4 Double messages with command feedback with time |
This message otherwise has the same action as the analog NEZ message. |
DF = 112 1 Single data point message with time |
This message otherwise has the same action as the analog NEZ message. |
DF = 113 Command with time |
This message otherwise has the same action as the analog NEZ message. |