GE SRTP OPC Items
Standard Items
Protocol Items
The GE protocol implementation supports the ability to read from and write to IO memory segments. Client applications have to identify the appropriate memory segment as well as the offset into that memory segment.
All IO memory items start with ‘%’. There are four arguments in the item tag:
- The segment of memory that you wish to access (ex. ‘R’).
- The second argument is the offset into the previously specified memory segment (ex. ‘100’).
- The third argument (an optional modifier) indicates the number of bytes that you wish to read or writes from that offset and what is the correct data type of data (ex. ‘F’ for a four byte floating point).
- The fourth argument (optional) is the array size (the number of items you wish to poll using the previous three arguments).
ACM will use default values in the event that you do not specify any optional arguments. For example, the item “%R100” would use the default modifier for ‘R’ memory (a two byte unsigned integer) and a default array size of 1.
Memory Segment List
The GE protocol implementation supports the ability to read from and write to IO memory
Memory Segment | Default Modifier | Supported Modifiers | Description |
---|---|---|---|
AI | Unsigned Integer (I) | F, D, IS, I, L, LS, M | Analog Input |
AQ | Unsigned Integer (I) | F, D, IS, I, L, LS, M | Analog Output |
G | Boolean | F, D, IS, I, B, BS, L, LS, M | Genius Global |
I | Boolean | F, D, IS, I, B, BS, L, LS, M | Input |
M | Boolean | F, D, IS, I, B, BS, L, LS, M | System |
Q | Boolean | F, D, IS, I, B, BS, L, LS, M | Output |
R | Unsigned Integer (I) | F, D, IS, I, L, LS, M | Register |
S | Boolean | IS, I, B, BS, M | System |
SA | Boolean | IS, I, B, BS, M | System A |
SB | Boolean | IS, I, B, BS, M | System B |
SC | Boolean | IS, I, B, BS, M | System C |
T | Boolean | F, D, IS, I, B, BS, L, LS, M | Temporary |
Note
Memory segment ‘S’ is read only.
Modifier List
Modifier | Type of Value to Convert to | Number of Bytes to Read/Write |
---|---|---|
F | Float | 4 |
D | Double | 8 |
I | Unsigned Integer | 2 |
IS | Signed Integer | 2 |
B | Unsigned Byte Integer | 1 |
BS | Signed Byte Integer | 1 |
L | Long Unsigned Integer | 4 |
LS | Long Signed Integer | 4 |
M | Character String | 1 |
Note
Character strings (M) items must include an array argument in order to be valid (ex. %R100M[2]).
Examples:
Read a single two byte signed integer (INT) in reference memory
Information given…
Memory Segment: ‘R’ (Register) Memory Offset: 43
Length/Type of Data: INT Array Size: 1
- The data to read is from reference memory, so the first character in the tag is ‘%’.
- The data is in memory segment ‘R’, so the first argument in the tag after ‘%’ is ‘R’. Tag is now “%R”.
- The data has an offset of 43 word registers from the start of the memory segment, so the second argument is ‘43’. Tag is now “%R43”.
- The value we need to return is an INT (a two byte signed integer). This corresponds to a IS modifier in the table above. Tag is now %R43IS”.
- We are retrieving a single value (array size is 1), so an array size modifier is not necessary. No change to the tag.
The tag to add to the OPC Client and poll is: “%R43IS”. This will return 60.
Read an array of two four byte floating points (REAL) in reference memory
Information given…
Memory Segment: ‘AI’ (Analog Input) Memory Offset: 73
Length/Type of Data: REAL Array Size: 2
- The data to read is from reference memory, so the first character in the tag is ‘%’.
- The data is in memory segment ‘AI’, so the first argument in the tag after ‘%’ is ‘AI’. Tag is now “%AI”.
- The data has an offset of 73 word registers from the start of the memory segment, so the second argument is ‘73’. Tag is now “%AI73”.
- The value we need to return is a REAL (a four byte floating point value). This corresponds to an F modifier in the table above. Tag is now “%AI73F”.
- We are retrieving two values (array size is 2), so we append an array size modifier to the tag. Tag is now “%AI73F[2]”.
The tag to add to the OPC Client and poll is: “%AI73F[2]”. This will return {22506.93, 17942.15}.
Read a single Boolean point (BOOL) in reference memory
Information given… Memory Segment: ‘I’ (Input) Memory Offset: 265 Length/Type of Data: BOOL
Array Size: 1
- The data to read is from reference memory, so the first character in the tag is ‘%’.
- The data is in memory segment ‘I’, so the first argument in the tag after ‘%’ is ‘I’. Tag is now “%I”.
- The data has an offset of 265 Boolean (or “digital”) registers from the start of the memory segment, so the second argument is ‘265’. Tag is now “%I265”.
- The value we need to return is a BOOL (an “on” or “off” Boolean value). No modifier is required for the Boolean type so there is no change to the tag.
- We are retrieving a single value (array size is 1), so an array size modifier is not necessary. No change to the tag.
The tag to add to the OPC Client and poll is: “%I265”. This will return either a 1 or “On” depending on how your OPC Client is configured.
Read a single floating point (REAL) in reference memory
Information given… Memory Segment: ‘I’ (Input) Memory Offset: 32457 Length/Type of Data: REAL
Array Size: 1
- The data to read is from reference memory, so the first character in the tag is ‘%’.
- The data is in memory segment ‘I’, so the first argument in the tag after ‘%’ is ‘I’. Tag is now “%I”.
- The data has an offset of 32457 Boolean (or “digital”) registers from the start of the memory segment, so the second argument is ‘32457’. Tag is now “%I32457”.
- The value we need to return is a REAL (a four byte floating point value). This corresponds to a F modifier in the table above. Tag is now “%I32457F”.
- We are retrieving a single value (array size is 1), so an array size modifier is not necessary. No change to the tag.
The tag to add to the OPC Client and poll is: “%I32457F”. This will return 919.1.
Read a floating point (REAL) in symbolic memory
Information given…
Name of Symbolic: A301A.PV Length/Type of Data: REAL
- The data to read is from symbolic memory, so the first character in the tag is ‘!’.
- The name of the symbolic we want to read is ‘A301A.PV’. The tag is now “!A301A.PV”.
- The data type of this symbolic is a REAL. This corresponds to an F modifier in the table above so we need to append an ‘:F’ to the end of the tag to tell GESRTP how many bytes to expect and what type to convert the value to. The tag is now “!A301A.PV:F”.
The tag to add to the OPC Client and poll is: “!A301A.PV:F”. This will return 47.35273.
Read a Boolean point (BOOL) in symbolic memory
Information given…
Name of Symbolic: ENIU12_LAN_B_InputsDiscrete[004] Length/Type of Data: BOOL
- The data to read is from symbolic memory, so the first character in the tag is ‘!’.
- The name of the symbolic we want to read is ‘ENIU12_LAN_B_InputsDiscrete[004]’. The tag is now “!ENIU12_LAN_B_InputsDiscrete[004]”.
- The data type of this symbolic is a BOOL. No modifier is required for Boolean types. No change to the tag.
The tag to add to the OPC Client and poll is: “!ENIU12_LAN_B_InputsDiscrete[004]”. This will return “On” or “Off” depending on the logic in the controller. If the logic in the controller is disabled, the value you read will be “off”.
Additional Item Tag Examples
Item Name | Description | Example of Expected Result |
---|---|---|
%R100 | Extract two bytes of memory in ‘R’ memory starting at offset 100 and convert to an unsigned integer. | 3 |
%Q3 | Extract one bit of ‘Q’ memory starting at offset 3 and convert to a Boolean value. | On |
%Q577I | Extract two bytes of ‘Q’ memory starting at offset 577 and convert to an unsigned integer. | 34 |
%R321F | Extract four bytes of ‘R’ memory starting at offset 321 and convert to a floating point value. | 43.4 |
%R341 | Extract two bytes of ‘R’ memory starting at 341 and convert to an unsigned integer. | 43 |
%Q3[13] | Extract a 13 bit array of ‘Q’ memory starting at offset 3 and convert to Boolean values. | On, Off, On, Off, On, Off, Off, Off, Off, On, On, On, Off |
%R121F[2] | Extract four words (8 bytes) of ‘R’ memory starting at offset 121. Convert %R121 and %R122 to one four byte floating point and place in array position 0. Convert %R123 and %R124 to one four byte floating point and place in array position 1. | 121.95, 123.95 |
%R351M[3] | Extract two words (4 bytes) of ‘R’ memory starting at offset 351. Convert bytes one through three to characters and return in array positions zero, one and two. Driver will ignore the fourth byte. | Abc |
!SymbolicWord1:I | Retrieve the value on the CPU pointed to by the symbolic variable “SymbolicWord1” and convert to a two byte unsigned integer. | 21 |
!SymbolicBool | Retrieve the value on the CPU pointed to by the symbolic variable “SymbolicBool” and convert to a Boolean value. | Off |
!SymbolicString:M | Retrieve the value on the CPU pointed to by the symbolic variable “SymbolicString” and convert to a character string. | Rx3i |
Extended Items
Item | Data Type | Description |
---|---|---|
RetrievePLCStatistics | Unsigned Integer | Write a 1 to this item to start the retrieval of PLC Statistics as configured on the PLC Statistics tab. |
For assistance, please submit a ticket via our Support Portal, email autosol.support@autosoln.com or call 281.286.6017 to speak to a support team member.