GE Fanuc SRTP
This driver supports communication over Ip with GE Fanuc 90 Series PLCs, including the 90-70 and 90-30 series.
Network properties
This topic only includes a reference of objects' properties.
See the topic How to configure networks devices and frames for more information about how to configure communication objects.
| General properties | |
| Name | The name of the network |
| Description | The description of the network (optional) |
| Activate at start-up | If enabled, the network will start upon Equipment communication start-up |
|
Advanced properties |
|
|
Timeout |
Use default value |
|
Networking |
|
|
Servers |
The list of PcVue stations where the network will be active |
Device properties
| General properties | |
| Name | The name of the device |
| Description | The description of the device (optional) |
| Equipment type | Select the type of equipment that best suits the field device you want communicate with. The list of frame types and address ranges depend on the equipment type. |
| Address | The Ip address of the field device. Some drivers also support configuration by host name. |
| Activate at start-up | If enabled, the device will start upon network start-up |
|
Advanced properties |
|
|
Connection |
|
|
Timeout |
Maximum waiting time between a request and the reply from the equipment |
|
Reconnect period |
Minimum period between attempts to recover a connection. This period is also used as a waiting period after a time-out. |
|
Password |
Alphanumerical string of up to 8 characters for a password protected field device. |
|
Timestamping |
|
|
Enable |
Tick to enable field device timestamping mode |
| Error address | If timestamping is enabled, the address used to indicate a full stack. Must be set to a positive value (greater than 0). |
| Timestamp UTC | Specify if the field device transmits timestamps as UTC or as local time |
| Delta TS |
Used to set-up direct archiving. If the difference between the timestamp coded in a received timestamped block and the current time is greater than the Delta TS value, the data is sent directly for archiving but is not considered fresh enough to be used as instantaneous value. As a consequence, the value of the corresponding variable is not updated. |
|
Miscellaneous |
|
|
Virtual |
Reserved. Do not select. |
| Message delay | Reserved. Leave default value 0. |
Frame addressing
Depending on the equipment type you have selected when configuring the device, you have access to the following type of frames.
The Starting address and Quantity properties define the memory address range for each frame, how it is read from and written to, and how it is interpreted in PcVue.
Bit frames must start with an address multiple of 8+1 i.e. 1, 9, 17 etc.
Wordbit frame size must be multiple of 16.
| Data type | Access | Max quantity | Starting address | Description |
| Bit | ||||
|---|---|---|---|---|
| I |
Read/Write |
16384 (90-70) 8192 (90-30) 2048 (Free) |
1..65535 | Discrete inputs |
| Q | Discrete outputs | |||
| T |
Read/Write |
16384 (90-70) 8192 (90-30) 2048 (Free) |
1..65535 | Discrete temporaries |
| M | Discrete internals | |||
| SA |
Read/Write |
16384 (90-70) 8192 (90-30) 2048 (Free) |
1..65535 | Discrete system status table A |
| SB | Discrete system status table B | |||
| SC |
Read/Write |
16384 (90-70) 8192 (90-30) 2048 (Free) |
1..65535 | Discrete system status table C |
| S | Discrete system status | |||
| G |
Read/Write |
16384 (90-70) 8192 (90-30) 2048 (Free) |
1..65535 | Genius global data |
| R | Wordbit register | |||
| Word | ||||
| R |
Read/Write |
1024 (90-70) 512 (90-30) 128 (Free) |
1..65535 | Register |
| AI | Analog input | |||
| TS Exchange |
Read |
127 blocks (90-70) 64 blocks (90-30) 15 blocks (Free) |
1..65535 | Timestamp exchange |
| AQ |
Read/Write |
1024 (90-70) 512 (90-30) 128 (Free) |
1..65535 | Analog output |
| Double | ||||
| R |
Read/Write |
512 (90-70) 256 (90-30) 64 (Free) |
1..65535 | Register |
| AI | Analog input | |||
| AQ | Analog output | |||
| Real | ||||
| R |
Read/Write |
512 (90-70) 256 (90-30) 64 (Free) |
1..65535 | Register |
| AI | Analog input | |||
Driver status
The driver status provides driver-specific information to supplement the frame general status. For more information on status in general, refer to the topic General communication status.
| Status | Description |
| 0x0001 | Write error. Internal error please contact support. (GE_TCP_CLIENT_ERR_INV_FILE_PATH) |
| 0x0002 | Write error. Internal error please contact support. (GE_TCP_CLIENT_ERR_NOT_AUTHORIZED) |
| 0x0003 | Write error. Internal error please contact support. (GE_TCP_CLIENT_ERR_NOT_INIT) |
| 0x0004 | Write error. Internal error please contact support. (GE_TCP_CLIENT_ERR_DEMO_TIMEOUT) |
| 0x0005 | There was not enough system memory for the PLC to create an internal resource or object. Shut down any unnecessary programs or add additional system memory. (GE_TCP_CLIENT_ERR_NO_MEMORY) |
| 0x0006 | The PLC could not create the client device object since the IP address is invalid or was not in the dotted decimal notation format (i.e., 137.81.3.24).
(GE_TCP_CLIENT_ERR_INV_IP_ADDR) |
| 0x0007 | The starting element must be greater than 0.
(GE_TCP_CLIENT_ERR_INV_START_ELEM) |
| 0x0008 | The number of values exceeds the maximum number values that can be read or written for the particular memory type.
(GE_TCP_CLIENT_ERR_INV_NUM_ELEMS) |
| 0x0009 | One of the arguments passed to the PLC function contained a NULL address/pointer. (GE_TCP_CLIENT_ERR_NULL_PTR) |
| 0x000A | The client device read/write request had a communication failure. This error code will only be returned when the ck_getcp_device_request_cmp() function is called. (GE_TCP_CLIENT_ERR_REQUEST) |
| 0x0066 | The PLC was working with a read/write request for the client device but had to abort the operation because the command could not fit in the transmit buffer. |
| 0x0067 | The PLC was unable to transmit a message to the client device. Make sure that the PLC or network Gateway is configured for the same IP address, is powered on and is attached to the network. Verify network connectivity using the ping utility. It is possible that the device (PLC or network Gateway) has dropped the connection. Normally a dropped connection will re-establish itself automatically. If the error occurs frequently, review the device configuration to determine why it is dropping the connection and correct the problem. |
| 0x0068 | The PLC was unable to receive a message from the client device. It is possible that the device has dropped the connection. Normally a dropped connection will re-establish itself automatically. If the error occurs frequently, review the device configuration to determine why it is dropping the connection and correct the problem. |
| 0x006A | The PLC gave up waiting for a response from the client device. Review the information used when creating the client device for the PLC or network Gateway. Make sure that the timeout value is appropriate. If the client device represents a device on a network Gateway, verify that the device’s address matches the sub-network address. Make sure that the PLC or network Gateway is configured for the same IP address, is powered on and is attached to the network. Verify network connectivity using the ping utility. |
| 0x006B | The PLC received a response from the client device that had the improper number of bytes. Make sure that the timeout value is appropriate. |
| 0x006D | The PLC received a NAK response from the client device. Typical reasons for NAK responses are either the memory type is not supported or the number of values the request is trying to access exceeds the number of elements supported by the device for the memory type. |
| 0x0010 | The PLC could not transmit the read/write request since the connection and/or session has not been established with the client device. Make sure that the IP address and/or the level 2 access password passed to the create_getcp_device() function are valid for the device. |
| 0x1001 | Bit Frame must start with an address Multiple of 8+1 i.e., 1, 9, 17 etc. Wordbit frame size must be multiple of 16. |
SCADA Basic scripting
You can control communication with this driver in SCADA Basic scripts with the CIMWAY instruction.
The driver also supports the following specific capabilities in SCADA Basic.
Changing a device address
IntVal = CIMWAY(CFG, CommObjName, Modif, Param, [, ResultVar]);
|
Argument |
Meaning |
|
CommObjName |
Configuration element to modify: A device. |
|
Modif |
The property you want to modify: |
|
|
EQT_ADDRESS: Modification of the equipment address. CommObjName is the name of a device attached to the network. For example, Net1.Dev1. |
|
Param |
Param is a string with a typical syntax like Param1#Param2#Param3...#ParamN. Type STR. See below for the syntax specific to this driver. |
|
ResultVar |
Specifies the name of the variable where the status of the modification is stored. |
Syntax for GE Fanuc SRTP:
1#ip1#ip2#ip3#ip4#reconnection_period#ts_erroraddress#flag#password
Where:
-
1 - Reserved
-
ip1 to ip4: The 4 segments of the Ip address
-
tcp_port: The Tcp port number
-
reconnection_period: The reconnection period
-
ts_error_address: The error address for source timestamping
-
flag: Additional properties under the form of a bit mask (0 or 1)
-
bit 4 Timestamp UTC (1) or local (0)
-
-
password: The password of the device
Sending a control message to the driver
IntVal = CIMWAY (SENDMSG, CommObjectName, CommandString);
Return type: INTEGER.
|
Argument |
Meaning |
|
CommObjectName |
Identifies the target object identifier: All networks: Empty string. A specific network: NetworkId. A specific device: NetworkID.EquipmentId. A specific frame: NetworkID.EquipmentId.FrameId. Type STR. |
|
CommandString |
The command to send to the driver. Type STR. See below for the list of messages supported by the driver. |
Control messages for GE Fanuc SRTP:
| Control message | Description |
|
Enable/Disable timestamping |
Command string syntax is "DisableTS" to disable source timestamping. Command string syntax is "EnableTS" to enable source timestamping. |
|
Switch all frames to polling mode |
Command string syntax is "SwitchAllToPollingMode" to switch all frames to polling mode. |
|
ComObj must be the name of a device, for example NET.DEV1. For example, the following command disables source timestamping for the device NET1.EQT1: Copy
|
Timestamped data - Data table and block structures
This section describes how to exchange timestamped data between the field device and PcVue. Timestamped data is exchanged between slave and master using a frame of type TS_Exchange.
| Master | Network | Slave |
|
—> |
Reading of the timestamped data table |
—> |
| <— |
Response to Read request |
<— |
If the number of blocks is greater than zero, the driver reads all of the blocks available in the field device and then does the following.
| Master | Network | Slave |
| —> |
Set the number of blocks to 0 and send the exchange number |
—> |
| <— |
Acknowledge the Write |
<— |
If the exchange number returned by the PC is wrong, the field device must send the same exchange as before. The number could be wrong because the slave received an incorrect acknowledgment.
Timestamped data table structure
|
|
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
Word W |
Exchange number |
Number of blocks |
||||||||||||||
|
Word W+1 |
First block (size 8) |
|||||||||||||||
|
|
|
|||||||||||||||
|
Word W+1 |
Nth block (size 8) |
|||||||||||||||
TS_Exchange block structures
|
|
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
Word W+1 |
Unused |
Data Type |
||||||||||||||
|
Word W+2 |
Address |
|||||||||||||||
|
Word W+3 |
Value1 |
|||||||||||||||
|
Word W+4 |
Value0 |
|||||||||||||||
|
Word W+5 |
Reserved |
0 |
Year |
|||||||||||||
|
Word W+6 |
0 |
0 |
0 |
0 |
Month |
0 |
0 |
0 |
Day |
|||||||
|
Word W+7 |
0 |
0 |
0 |
Hour |
0 |
0 |
Minute |
|||||||||
|
Word W+8 |
Millisecond |
|||||||||||||||
Address field specifies the address of the timestamped data. In the case of bits, the offset is specified in the field Value1.
Value1 is the highest word of a 32 bit value (float or double). For a Wordbit, Value1 represents the bit offset within the word with the address of Address.
Value0 is the lowest word of a 32 bit value (float or double) and all other values (bit and word).
Data type field
| Type | Data type |
| 1 | Wordbit in R |
| 2 | Bit in M |
| 3 | Bit in S |
| 4 | Bit in T |
| 5 | Bit in I |
| 6 | Bit in Q |
| 7 | Bit in SA |
| 17 | Word in R |
| 21 | Word in AI |
| 22 | Word in AQ |
| 25 | Float in R |
| 29 | Float in AI |
| 30 | Float in AQ |
| 33 | Double in R |
| 37 | Double in AI |
| 38 | Double in AQ |