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:
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.
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 |
Memory segment ‘S’ is read only. |
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 |
Character strings (M) items must include an array argument in order to be valid (ex. %R100M[2]). |
Information given…
Memory Segment: ‘R’ (Register) Memory Offset: 43
Length/Type of Data: INT Array Size: 1
The tag to add to the OPC Client and poll is: “%R43IS”. This will return 60.
Information given…
Memory Segment: ‘AI’ (Analog Input) Memory Offset: 73
Length/Type of Data: REAL Array Size: 2
The tag to add to the OPC Client and poll is: “%AI73F[2]”. This will return {22506.93, 17942.15}.
Information given… Memory Segment: ‘I’ (Input) Memory Offset: 265 Length/Type of Data: BOOL
Array Size: 1
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.
Information given… Memory Segment: ‘I’ (Input) Memory Offset: 32457 Length/Type of Data: REAL
Array Size: 1
The tag to add to the OPC Client and poll is: “%I32457F”. This will return 919.1.
Information given…
Name of Symbolic: A301A.PV Length/Type of Data: REAL
The tag to add to the OPC Client and poll is: “!A301A.PV:F”. This will return 47.35273.
Information given…
Name of Symbolic: ENIU12_LAN_B_InputsDiscrete[004] Length/Type of Data: BOOL
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”.
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 |
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. |