GCS Modbus Protocol Support 5v1
GCS Modbus Protocol Support 5v1
INTRODUCTION
The Graphic Control System products support a subset of the functions of Modicon Modbus Protocol in RTU (or
binary) format as described in Modicon Modbus Protocol Reference Guide PI-MBUS-300, Rev C, dated
January 1991. Specifically, the supported Modbus function codes are:
This document describes the supported functions and the response to each valid request from the host. It is
intended to be used in conjunction with the Modicon Modbus protocol definition and applies to GCS (Graphic
Control System) system controller software revision 8.04 or higher. All numeric values shown in the function
code request and response examples are in hexadecimal (base 16) format, even when not denoted with an “H”.
FUNCTION CODE SUPPORT
This portion of the document provides examples of each MODBUS function code that is supported by the GCS
controllers. For a complete list of register address, refer to tables 1 through 4 in this manual.
Query:
Response:
For a complete list of the registers, see the tables at the end of this document.
Query:
Response:
For a complete list of the registers, see the tables at the end of this document.
Query:
Response:
Query:
Response:
Query:
RTU FUNCTION COIL ADDR COIL ADDR DATA ON/OFF DATA CRC
ADDRESS CODE HIGH LOW
Response:
RTU FUNCTION COIL ADDR COIL ADDR DATA ON/OFF DATA CRC
ADDRESS CODE HIGH LOW
For a complete list of the registers, see the tables at the end of this document.
Query:
RTU FUNCTION REG. ADDR REG. ADDR DATA VALUE DATA VALUE CRC
ADDRESS CODE HIGH LOW HIGH LOW
Response:
RTU FUNCTION COIL ADDR COIL ADDR DATA ON/OFF DATA CRC
ADDRESS CODE HIGH LOW
Query:
01H 0FH 02H 02H 00H 01H 01H 00H 56H B5H
Response:
Query:
01H 10H 02H 20H 00H 01H 02H 00H 22H F0H 78H
Response:
The right-most column may contain a single letter code denoting that particular register is of meaning only when
being accessed on the pertinent GCS controller or module. The applicable controllers at present are the
Electrospeed GCS (E) and VORTEX GCS (V). The applicable modules are the Expansion I/O Module (M), the
Remote Data Communication Module (R), Centinel Interface Module (C), and the Neural Interface Module(N)
10001 to 10250 are user configurable Status Registers. See “Custom ModBus Maps” for information on how to
re-map the ModBus registers to suit your needs.
INPUT STATUS
(READ INPUT STATUS = FUNCTION CODE 02)
(V =Vortex, E =Electrospeed, M =Expansion Module, R =RDCM, C =Centinel)
DIGITAL_IN1_SD_ALARM Digital Input 1 Shutdown Alarm 0x0100 10257
DIGITAL_IN2_SD_ALARM Digital Input 2 Shutdown Alarm 0x0101 10258
IUNBAL_SD_ALARM Current Unbalance Shutdown Alarm 0x0102 10259 V
VUNBAL_SD_ALARM Voltage Unbalance Shutdown Alarm 0x0103 10260
OVERVOLT_SD_ALARM Over Voltage Shutdown Alarm 0x0104 10261
UNDERVOLT_SD_ALARM Under Voltage Shutdown Alarm 0x0105 10262
UNDERLOAD_SD_ALARM Undercurrent Shutdown Alarm 0x0106 10263
OVERLOAD_SD_ALARM Over current Shutdown Alarm 0x0107 10264
CONTACTOR Status of motor contactor 0x0108 10265
RED Relay contact Status for Red panel light 0x0109 10266
AUTO Optional HOA mode switch in “AUTO” 0x010A 10267
HAND Optional HOA mode switch in “HAND” 0x010B 10268
LOCKOUT Status of Auto restarts Lockout / permit 0x010C 10269
START Optional Start switch input status 0x010D 10270
ROTATION_ALARM Incoming phase rotation change alarm 0x010E 10271
ANALOG1_HI_THLD_SD_ALARM High Threshold Shutdown Alarm 0x010F 10272
ANALOG1_LO_THLD_SD_ALARM Low Threshold Shutdown Alarm 0x0110 10273
ANALOG2_HI_THLD_SD_ALARM High Threshold Shutdown Alarm 0x0111 10274
ANALOG2_LO_THLD_SD_ALARM Low Threshold Shutdown Alarm 0x0112 10275
DIGITAL_IN1_SDSTATE_TRUE Digital In 1 in Alarm, in Shutdown Delay 0x0114 10277
DIGITAL_IN2_SDSTATE_TRUE Digital In 2 in Alarm, in Shutdown Delay 0x0115 10278
OVERLOAD_HI_THLD_XCEED Overload in Alarm, in Shutdown Delay 0x0116 10279
UNDERLOAD_LO_THLD_XCEED Underload in Alarm, in Shutdown Delay 0x0117 10280
ANALOG1_HI_THLD_XCEED Analog1 Hi in Alarm, in Shutdown Delay 0x0118 10281
DIGITAL_IN3_SD_ALARM Digital Input 3 Shutdown Alarm 0x0119 10282 E
OVERVOLT_HI_THLD_XCEED Over Voltage Alarm, in Shutdown Delay 0x011A 10283
UNDERVOLT_LO_THLD_XCEED Under Voltage Alarm, in Shutdown Delay 0x011B 10284
ROTATION_SDSTATE_TRUE Incoming Phase Rotation has Changed 0x011C 10285
ANALOG1_LO_THLD_XCEED Analog1 Lo in Alarm, in Shutdown Delay 0x011D 10286
ANALOG2_HI_THLD_XCEED Analog 2 Hi in Alarm, in Shutdown Delay 0x011E 10287
ANALOG2_LO_THLD_XCEED Analog 2 Lo in Alarm, in Shutdown Delay 0x011F 10288
PCM_CONSTANT_TORQUE Constant Torque Mode 0x0120 10289 E
PCM_ILIMIT Current Limit Active 0x0121 10290 E
DIGITAL_IN1 On board Digital Input 1 0x0122 10291
DIGITAL_IN2 On board Digital Input 2 0x0123 10292
DIGITAL_IN3 On board Digital Input 3 0x0124 10293 E
IO1DI1_DEBOUNCED I/O Module 1 Digital Input 1 0x0125 10294 M
IO1DI2_DEBOUNCED I/O Module 1 Digital Input 2 0x0126 10295 M
INPUT STATUS
(READ INPUT STATUS = FUNCTION CODE 02)
(V =Vortex, E =Electrospeed, M =Expansion Module, R =RDCM, C =Centinel)
IO1DI3_DEBOUNCED I/O Module 1 Digital Input 3 0x0127 10296 M
IO2DI1_DEBOUNCED I/O Module 2 Digital Input 1 0x0128 10297 M
IO2DI2_DEBOUNCED I/O Module 2 Digital Input 2 0x0129 10298 M
IO2DI3_DEBOUNCED I/O Module 2 Digital Input 3 0x012A 10299 M
IO3DI1_DEBOUNCED I/O Module 3 Digital Input 1 0x012B 10300 M
IO3DI2_DEBOUNCED I/O Module 3 Digital Input 2 0x012C 10301 M
IO3DI3_DEBOUNCED I/O Module 3 Digital Input 3 0x012D 10302 M
IO1DI1_DETECT_AC I/O Module 1 Digital Input 1 (AC Input) 0x012E 10303 M
IO1DI2_DETECT_AC I/O Module 1 Digital Input 2 (AC Input) 0x012F 10304 M
IO1DI3_DETECT_AC I/O Module 1 Digital Input 3 (AC Input) 0x0130 10305 M
IO2DI1_DETECT_AC I/O Module 2 Digital Input 1 (AC Input) 0x0131 10306 M
IO2DI2_DETECT_AC I/O Module 2 Digital Input 2 (AC Input) 0x0132 10307 M
IO2DI3_DETECT_AC I/O Module 2 Digital Input 3 (AC Input) 0x0133 10308 M
IO3DI1_DETECT_AC I/O Module 3 Digital Input 1 (AC Input) 0x0134 10309 M
IO3DI2_DETECT_AC I/O Module 3 Digital Input 2 (AC Input) 0x0135 10310 M
IO3DI3_DETECT_AC I/O Module 3 Digital Input 3 (AC Input) 0x0136 10311 M
PASSWORD_INVALID User Password is invalid / expired 0x0138 10313
CSU_OPEN_CIRCUIT Centinel Open Circuit Alarm 0x0139 10314 C
CSU_SHORT_CIRCUIT Centinel Short Circuit Alarm 0x013A 10315 C
CSU_SIGNAL_LOSS Centinel Signal Loss Alarm 0x013B 10316 C
CSU_EXCESSIVE_NOISE Centinel Excessive Noise Alarm 0x013C 10317 C
CSU_COMM_FAILURE Centinel Communication Failure Alarm 0x013D 10318 C
IUNBAL_HI_THLD_XCEED Current Unbalance Threshold exceeded 0x013E 10319 V
VUNBAL_HI_THLD_XCEED Voltage Unbalance Threshold exceeded 0x013F 10320
PCM STATUS WORD 1 Power Conversion Module
PCM_RUNNING Running 0x0140 10321 E
PCM_STOPPED Stopped: All gate signals inhibited 0x0141 10322 E
PCM_STOPPING Stopping: Command acknowledged 0x0142 10323 E
PCM_ACCEL Accelerating 0x0143 10324 E
PCM_DECEL Decelerating 0x0144 10325 E
PCM_ILIMIT Current Limit 0x0145 10326 E
PCM_BUS_VOLTS_BIT DC Bus voltage High Threshold 0x0146 10327 E
PCM STATUS WORD 2 Power Conversion Module
PCM_FAULT PCM Fault word is active 0x0147 10328 E
PCM_INVERTER_ROTATION Output inverter phase rotation 0x0148 10329 E
PCM_CONVERTER1_ROTATION Converter 1 input phase rotation 0x0149 10330 E
PCM_CONVERTER2_ROTATION Converter 2 input phase rotation 0x014A 10331 E
PCM_PHASED Input phase rotation determined 0x014B 10332 E
PCM_IN_SYNC_DELAY Inverter in synchronization delay 0x014C 10333 E
PCM_PHASE_LOCKED Converter Zero Crossing established 0x014D 10334 E
PCM Fault Word Power Conversion Module
PCM_FAULT PCM Fault word is active 0x014E 10335 E
PCM_PHASE_APOSITIVE_IOT A Ø Positive Instantaneous overload 0x014F 10336 E
PCM_PHASE_BPOSITIVE_IOT B Ø Positive Instantaneous overload 0x0150 10337 E
PCM_PHASE_CPOSITIVE_IOT C Ø Positive Instantaneous overload 0x0151 10338 E
PCM_PHASE_ANEGATIVE_IOT A Ø Negative Instantaneous overload 0x0152 10339 E
PCM_PHASE_BNEGATIVE_IOT B Ø Positive Instantaneous overload 0x0153 10340 E
PCM_PHASE_CNEGATIVE_IOT C Ø Positive Instantaneous overload 0x0154 10341 E
PCM_ZERO_CROSSING_FAULT Input Zero Crossing signal loss 0x0155 10342 E
PCM_SYSTEM_ERROR Processor software or hardware fault 0x0156 10343 E
PCM_CONVERTER_FAULT Input converter fault 0x0157 10344 E
PCM_INVERTER_FAULT, Output inverter fault 0x0158 10345 E
PCM_OVER_CURRENT_A_FAULT A Ø Peak Over current 0x0159 10346 E
PCM_OVER_CURRENT_B_FAULT B Ø Peak Over current 0x015A 10347 E
PCM_OVER_CURRENT_C_FAULT C Ø Peak Over current 0x015B 10348 E
INPUT STATUS
(READ INPUT STATUS = FUNCTION CODE 02)
(V =Vortex, E =Electrospeed, M =Expansion Module, R =RDCM, C =Centinel)
PCM_BUS_OVER_VOLTAGE_FLT DC Bus overvoltage 0x015C 10349 E
RCB_COMM_ERROR Remote Converter Board Com. Failure 0x015D 10350 E
STATUS WORD 3 Power Conversion Module
PCM_TORQUE_ILIMIT Output Torque/Current Limit 0x015E 10351 E
HOA_STOP Hand-Off-Auto in Stop 0x015F 10352 V
DRIVE_STOPPED_MANUALLY Keypad / HOA switch Stop 0x0160 10353
RDCM_DEV1_TAG01 RDCM - Device 1 – Data Tag 1 0x0165 10358 R
RDCM_DEV1_TAG02 RDCM - Device 1 – Data Tag 2 0x0166 10359 R
RDCM_DEV1_TAG03 RDCM - Device 1 – Data Tag 3 0x0167 10360 R
RDCM_DEV1_TAG04 RDCM - Device 1 – Data Tag 4 0x0168 10361 R
RDCM_DEV1_TAG05 RDCM - Device 1 – Data Tag 5 0x0169 10362 R
RDCM_DEV1_TAG06 RDCM - Device 1 – Data Tag 6 0x016A 10363 R
RDCM_DEV1_TAG07 RDCM - Device 1 – Data Tag 7 0x016B 10364 R
RDCM_DEV1_TAG08 RDCM - Device 1 – Data Tag 8 0x016C 10365 R
RDCM_DEV1_TAG09 RDCM - Device 1 – Data Tag 9 0x016D 10366 R
RDCM_DEV1_TAG10 RDCM - Device 1 – Data Tag 10 0x016E 10367 R
RDCM_DEV1_TAG11 RDCM - Device 1 – Data Tag 11 0x016F 10368 R
RDCM_DEV1_TAG12 RDCM - Device 1 – Data Tag 12 0x0170 10369 R
RDCM_DEV2_TAG01 RDCM - Device 2 – Data Tag 1 0x0171 10370 R
RDCM_DEV2_TAG02 RDCM - Device 2 – Data Tag 2 0x0172 10371 R
RDCM_DEV2_TAG03 RDCM - Device 2 – Data Tag 3 0x0173 10372 R
RDCM_DEV2_TAG04 RDCM - Device 2 – Data Tag 4 0x0174 10373 R
RDCM_DEV2_TAG05 RDCM - Device 2 – Data Tag 5 0x0175 10374 R
RDCM_DEV2_TAG06 RDCM - Device 2 – Data Tag 6 0x0176 10375 R
RDCM_DEV2_TAG07 RDCM - Device 2 – Data Tag 7 0x0177 10376 R
RDCM_DEV2_TAG08 RDCM - Device 2 – Data Tag 8 0x0178 10377 R
RDCM_DEV2_TAG09 RDCM - Device 2 – Data Tag 9 0x0179 10378 R
RDCM_DEV2_TAG10 RDCM - Device 2 – Data Tag 10 0x017A 10379 R
RDCM_DEV2_TAG11 RDCM - Device 2 – Data Tag 11 0x017B 10380 R
RDCM_DEV2_TAG12 RDCM - Device 2 – Data Tag 12 0x017C 10381 R
RDCM_DEV3_TAG01 RDCM - Device 3 – Data Tag 1 0x017D 10382 R
RDCM_DEV3_TAG02 RDCM - Device 3 – Data Tag 2 0x017E 10383 R
RDCM_DEV3_TAG03 RDCM - Device 3 – Data Tag 3 0x017F 10384 R
RDCM_DEV3_TAG04 RDCM - Device 3 – Data Tag 4 0x0180 10385 R
RDCM_DEV3_TAG05 RDCM - Device 3 – Data Tag 5 0x0181 10386 R
RDCM_DEV3_TAG06 RDCM - Device 3 – Data Tag 6 0x0182 10387 R
RDCM_DEV3_TAG07 RDCM - Device 3 – Data Tag 7 0x0183 10388 R
RDCM_DEV3_TAG08 RDCM - Device 3 – Data Tag 8 0x0184 10389 R
RDCM_DEV3_TAG09 RDCM - Device 3 – Data Tag 9 0x0185 10390 R
RDCM_DEV3_TAG10 RDCM - Device 3 – Data Tag 10 0x0186 10391 R
RDCM_DEV3_TAG11 RDCM - Device 3 – Data Tag 11 0x0187 10392 R
RDCM_DEV3_TAG12 RDCM - Device 3 – Data Tag 12 0x0188 10393 R
GDICOMM_FAILURE, Graphics Display Communication Failure 0x0189 10394
FIRST_AUX_IO_COMM_FAILURE Expansion I/O 1 Communication Failure 0x018A 10395 M
SECOND_AUX_IO_COMM_FAILURE Expansion I/O 2 Communication Failure 0x018B 10396 M
THIRD_AUX_IO_COMM_FAILURE Expansion I/O 3 Communication Failure 0x018C 10397 M
RDCM_COMM_FAILURE RDCM Communication Failure 0x018D 10398 R
CSU_COMM_FAILURE Centinel Communication Failure 0x018E 10399 C
XCVR_COMM_FAIL Centinel Gauge Communication Failure 0x018F 10400 C
RDCM_DEV1_COMM_FAIL RDCM Device 1 Communication Failure 0x0190 10401 R
RDCM_DEV2_COMM_FAIL RDCM Device 2 Communication Failure 0x0191 10402 R
RDCM_DEV3_COMM_FAIL RDCM Device 3 Communication Failure 0x0192 10403 R
DATA_LOGGING_ENABLED Data Logging Enabled 0x0193 10404
SERIAL_COMM_SDSTATE Telemetry Fail Shutdown State 0x0194 10405
RCB_BOARD_COUNT_FAULT Remote Converter Board Count Fault 0x0195 10406 E
INPUT STATUS
(READ INPUT STATUS = FUNCTION CODE 02)
(V =Vortex, E =Electrospeed, M =Expansion Module, R =RDCM, C =Centinel)
PCM_INITIATED_ESTOP_FAULT PCM Initiated Estop Fault 0x0196 10407 E
RDCM_DEV1_COMM_FAIL_SDSTATE RDCM Device 1 Com Fail Shutdown State 0x0197 10408 R
RDCM_COMM_FAIL_SDSTATE RDCM Communication Fail Shutdown State 0x0198 10409 R
PCM_PWM_FILTER_ATTACHED PCM PWM Filter Attached 0x0199 10410 E
FIRST_START First Start 0x019A 10411
FIRST_AUX_IO_COMM_FAIL_SDSTATE Expansion I/O 1 Comm Fail Shutdown State 0x019B 10412 M
SECOND_AUX_IO_COMM_FAIL_SDSTA Expansion I/O 2 Comm Fail Shutdown State 0x019C 10413 M
THIRD_AUX_IO_COMM_FAIL_SDSTAT Expansion I/O 3 Comm Fail Shutdown State 0x019D 10414 M
DRIVE_PARAMETERS_IN_RPM Drive Parameters in RPM 0x019E 10415 E
0= no, 1= yes
RDCM_DEV2_COMM_FAIL_SDSTATE RDCM Device 2 Comm Fail Shutdown State 0x019F 10416 R
RDCM_DEV3_COMM_FAIL_SDSTATE RDCM Device 3 Comm Fail Shutdown State 0x01A0 10417 R
UAB1_THLD_XCEED User Alarm Block 1 Threshold Exceeded 0x01A1 10418
UAB2_THLD_XCEED User Alarm Block 2 Threshold Exceeded 0x01A2 10419
UAB3_THLD_XCEED User Alarm Block 3 Threshold Exceeded 0x01A3 10420
UAB4_THLD_XCEED User Alarm Block 4 Threshold Exceeded 0x01A4 10421
UAB5_THLD_XCEED User Alarm Block 5 Threshold Exceeded 0x01A5 10422
UAB6_THLD_XCEED User Alarm Block 6 Threshold Exceeded 0x01A6 10423
UAB7_THLD_XCEED User Alarm Block 7 Threshold Exceeded 0x01A7 10424
UAB8_THLD_XCEED User Alarm Block 8 Threshold Exceeded 0x01A8 10425
UAB1_THLD_ALARM User Alarm Block 1 Threshold Alarm 0x01A9 10426
UAB2_THLD_ALARM User Alarm Block 2 Threshold Alarm 0x01AA 10427
UAB3_THLD_ALARM User Alarm Block 3 Threshold Alarm 0x01AB 10428
UAB4_THLD_ALARM User Alarm Block 4 Threshold Alarm 0x01AC 10429
UAB5_THLD_ALARM User Alarm Block 5 Threshold Alarm 0x01AD 10430
UAB6_THLD_ALARM User Alarm Block 6 Threshold Alarm 0x01AE 10431
UAB7_THLD_ALARM User Alarm Block 7 Threshold Alarm 0x01AF 10432
UAB8_THLD_ALARM User Alarm Block 8 Threshold Alarm 0x01B0 10433
CONTACTOR_FAILURE_ALARM Contactor Failure Alarm 0x01B2 10435 V
DRIVE_READY_TO_RUN Drive Ready to Run 0x01B3 10436
0= no, 1= yes
Table 2: Output Status Registers 00001+
00001 to 00250 are user configurable Status Registers. See “Custom ModBus Maps” for information on how to
re-map the ModBus registers to suit your needs.
30001 to 30250 are user configurable Status Registers. See “Custom ModBus Maps” for information on how to
re-map the ModBus registers to suit your needs.
40001 to 40250 are user configurable Status Registers. See “Custom ModBus Maps” for information on how to
re-map the ModBus registers to suit your needs.
ANALOG1_HI_THLD_SD_ALARM 45 50 48
ANALOG1_LO_THLD_SD_ALARM 45 61 59
ANALOG2_HI_THLD_SD_ALARM 69 74 72
ANALOG2_LO_THLD_SD_ALARM 69 84 82
CENTRAL_SHUTDOWN_REQUEST 92
MOTOR_STATE_SYNC_ERROR 859
DESCRIPTION ACTIVE ALARM ID SHUTDOWN ID LOCKOUT ID
RCB_BOARD_COUNT_FAULT 775
PCM_FAULT_ALARM 193 193 195
GDICOMM_FAILURE 482 482
RTCLOCK_INVALID_ALARM 647 647
The GCS Electrospeed drive can be configured to incorporate several remote converter circuit boards to
increase the output current range and/or minimize input harmonic content. When such a drive is configured, it
can generate the following faults / shutdowns.
MAIN
VARIABLE SPEED DRIVE SCB RCB1 RCB2 RCB3
POINT DESCRIPTION ENGLISH DESCRIPTION FAULT FAULT FAULT FAULT
PHASEA_NEGATIVE_IOT Phase A neg IOT 200 4296 8392 16584
PHASEB_POSITIVE_IOT Phase B pos IOT 203 4299 8395 16587
PHASEC_NEGATIVE_IOT Phase C neg IOT 204 4300 8396 16588
PHASEA_POSITIVE_IOT Phase A pos IOT 201 4297 8393 16585
PHASEB_NEGATIVE_IOT Phase B neg IOT 202 4298 8394 16586
PHASEC_POSITIVE_IOT Phase C pos IOT 205 4301 8397 16589
ZERO_XING_FAULT zero crossing fault 208 4304 8400 16592
SYSTEM_ERROR system error 207 4303 8399 16591
CONVERTER_FAULT converter watchdog fault 344 4440 8536 16728
INVERTER_FAULT inverter watchdog fault 345 4441 8537 16729
RCB_COM_ERR RCB communications fault 885 4981 9077 17269
PCM_CITIBUS_ERROR CITIBus communications error 342 4438 8534 16726
OVER_CURRENT_A A phase inverter peak current trip 1293 5389 9485 17677
OVER_CURRENT_B B phase inverter peak current trip 1294 5390 9486 17678
OVER_CURRENT_C C phase inverter peak current trip 1295 5391 9487 17679
BUS_OVER_VOLTAGE DC bus overvoltage fault 1296 5392 9488 17680
PCM_INITIATED_ESTOP PCM initiated an emergency stop 799 4895 8991 17183
MOTOR_FAILED_TO_START PCM could NOT turn the motor 1360 5456 9552 17744
TABLE 6: EVENT NUMERICS
When a recordable event occurs on a GCS controller, the event identification returned via MODBUS will be
simply a number. The following Table lists the descriptor associated with each number.
NULL_EVENT 0
ALARM_CFN 1
ALARM_RTN 2
SETPOINT_CHANGE 3
SHUTDOWN_EVENT 4
STARTUP_EVENT 5
CITIBUS_NODE_LOSS 6
CITIBUS_NODE_RECOVERY 7
SYSTEM_CONTROLLER_IPL 8
FACTORY_DEFAULT_CHANGE 9
MINIMUM_CHANGE 10
MAXIMUM_CHANGE 11
BITFIELD_CHANGE 12
EXPONENT_CHANGE 13
UNITS_CHANGE 14
STAGE_CHANGE 15
PRIMARY_POWER_FAILURE 16
UNKNOWN_PCM_FAULT_CODE 17
REAL_TIME_CLOCK_CHANGE 18
SETPOINTS_RELOADED 19
CALLOUT_EVENT 20
REMOTE_WORMHOLE_CLOSED 21
FREQ_AVOID_TABLE_CHANGED 22
PID_CONTROLLER_TABLE_CHANGED 23
USER_PLC_BLOCK_CHANGED 24
USER_DATABASE_POINT_CHANGED 25
HARDWARE_RESET 26
GCS support of Modbus User Function Code 65
Modicon’s modbus protocol states that Modbus function codes 65 through 72 inclusive will be reserved for user
functions and will not be used by any Modicon products. GCS system controllers use function code 65 to
enable the transfer of:
When retrieving information from a GCS unit using function code 65, the query will always adhere to the
following form:
Where:
rtuAddress is the modbus address of the GCS unit being queried
functionCode is always 65 (41 HEX)
startingAddress is:
pointCount is 0 if the packet marks the first packet of an exchange and is 1 if the packet is the
continuation of the exchange.
The first four bytes of the GCS’s response will always be the RTU address, the function code and a block count.
The block count will be positive as long there is un-transferred data within the GCS unit. To signal the last
packet, the block count (signed short integer) goes negative. The negative number is to be interpreted as ( –1 *
(the number of records within the packet)). For example, if the block count was returned as FFEC hex, convert
that value into the decimal equivalent as follows:
FFEC = 65,516 ------ 0x10000= 65,536 ------ 65,516 – 65536 = -20 ------ -20 * -1 = 20 records
The following describes the data dependant responses by the GCS controller to Modbus 65 packets.
SHUTDOWN HISTORY
Shutdown history data is transferred in a packet formatted as:
typedef struct
{
unsigned char rtuAddress;
unsigned char functionCode;
signed short blockCount;
shutDownHistory data[HISTORY_RECORDS_PER_PACKET];
unsigned short crc;
}aHistoryResponse;
where, HISTORY_RECORDS_PER_PACKET is 10 .
where,
ampsA, ampsB and ampsC are the three phase current at the time of the decision to shutdown.
VoltAB, voltBC and voltCA are the phase to phase voltage at the time of the decision to shutdown.
AnalogIn1 and analogIn2 are the value at the analog inputs of the GCS system controller.
CauseOfShutdown is a number indicating why the shutdown happened.
Lockout is a number indicating if the motor start was locked out because of the shutdown.
The timeStamp is a signed 32bit integer that holds the number of seconds since January 1, 1970 and can be
de-coded using the library routines supplied with most C compilers.
Response: (only part of the response is shown)
Query:
00H
01H
ADDRESS
RTU
Cause of shutdown Amps Phase c (high) RTU Address
(point-id--low)
41H
Function Code
00H
Cause of lockout
50H
amps Phase c (low)
(point-id--high)
41H
CODE
FUNCTION
00H
Block Count
ADH
Cause of lockout
01H
Voltage phase Ab (high)
(point-id low) (high)
0AH
Block Count
Start of Shutdown
E1H
Voltage phase Ab (Low)
History record #2 (low)
00H
ADDR HIGH
START
Start of Shutdown
3EH
Shutdown History
01H
Voltage phase bc History record #1
(time STamp) (high)
3EH
Shutdown History
E4H
(time STamp)
2FH
00H
ADDR LOW
START
(time STamp) (low)
A6H
Shutdown History
(time STamp)
01H
DDH
65H
Shutdown History
(time STamp)
E3H
74H
00H
HIGH
POINT COUNT
(time STamp)
2DH
Shutdown History
04H
(time STamp)
00H
00H
Amps Phase A
7EH
(high)
…
00H
LOW
POINT COUNT
4FH
Amps Phase A
01H
00H
amps Phase b
2CH
amps Phase b
00H
3DH C5H
CRC
(point-id--high)
Convert the hexadecimal values into decimal notation and history record #1 in the above example yields the
following information:
Shutdown occurred on April 23, 2003 at the time of 10:04:29. (Time integer value: 3E A6 65 2D hex.)
The three phase volts were: Phase AB = 481 volts AC (01E1 hex)
Phase BC = 484 volts AC (01E4 hex)
Phase CA = 483 volts AC (01E3 hex)
typedef struct
{
unsigned char rtuAddress;
unsigned char functionCode;
signed short blockCount;
highSpeedTrend data[TREND_RECORDS_PER_PACKET];
unsigned short crc;
}aStartupWaveformResponse;
where TREND_RECORDS_PER_PACKET is 20
where,
ampsA, ampsB and ampsC are the instantaneous values of the three phase currents and VoltAB,
voltBC and voltCA are the phase to phase voltage at the time of the sample.
To fetch the time at which the motor was started, build a request packet with its startingAddress field set to 1
and its pointCount set to –1. The GCS units will return a packet formatted as
typedef struct
{
unsigned char rtuAddress;
unsigned char functionCode;
signed short blockCount;
time_t timeStamp;
unsigned short crc;
}aStartupTimestampResponse;
Example - Function Code 65 (Startup Waveform Records)
First, send a message with a point count of -1 (FFFE hex), to retrieve the “start time” of the last motor start.
Query:
(time STamp)
(time STamp)
(time STamp)
(time STamp)
start attempt
Block Count
Block Count
(high)
(high)
(Low)
(low)
CRC
CRC
01H 41H 00H 01H 3EH 64H BEH 86H 51H 36H
Query: Next, retrieve the first 20 of 1200 samples by using function code 65.
Voltage Phase AB
Voltage Phase AB
Current Phase A
Current Phase A
Current Phase B
Current Phase B
Current Phase C
Current Phase C
Trend packet #1
Function Code
RTU Address
Block Count
Block Count
(high)
(high)
(high)
(high)
(high)
(Low)
(low)
(low)
(low)
(low)
01H 41H 00H 14H 00H 08H 00H 10H FFH EBH 01H 15H
Start of High Speed
Voltage Phase BC
Voltage Phase BC
Voltage Phase CA
Voltage Phase CA
Voltage Phase AB
Voltage Phase AB
Current Phase A
Current Phase A
Current Phase B
Current Phase B
Current Phase C
Current Phase C
Trend packet #2
(high)
(high)
(high)
(high)
(high)
(high)
(low)
(low)
(low)
(low)
(low)
(low)
FEH CDH 00H 1EH 00H 00H FFH F0H 00H 10H 00H 69H
Start of High Speed
Voltage Phase BC
Voltage Phase BC
Voltage Phase CA
Voltage Phase CA
Current Phase A
Current Phase A
Trend packet #3
Etcetera…
(high)
(high)
(high)
(low)
(low)
(low)
Query: Now retrieve the remaining data by setting the point count to 0001 and repeat the request for data until
the block count value in the response switches to a negative number as shown below.
Voltage Phase AB
Voltage Phase AB
Current Phase A
Current Phase A
Current Phase B
Current Phase B
Current Phase C
Current Phase C
Function Code
RTU Address
Trend packet
Block Count
Block Count
Etcetera…
(high)
(high)
(high)
(high)
(high)
(Low)
(low)
(low)
(low)
(low)
01H 41H FFH ECH 00H 73H FFH 59H 00H 35H FFH B9H …
As illustrated in the example above, the GCS responded with a block count of FFEC hex or -19 decimal. This
indicates that there are no more un-retrieved waveforms packets and that this message contains the normal 20
records
The instantaneous values of the current and voltage can be graphed by using common PC software such as
MS Excel spreadsheet.
EVENTS
Event data is transferred in a packet formatted as:
typedef struct
{
unsigned char rtuAddress;
unsigned char functionCode;
signed short blockCount;
anEventRecord eventRecord[EVENT_RECORDS_PER_PACKET];
unsigned short crc;
}anEventRecordResponse;
where, EVENT_RECORDS_PER_PACKET is 20
typedef struct
{
time_t timeStamp;
unsigned char EventType;
unsigned char Exponent;
PointId PointIdent;
PValue ValueBeforeEvent;
PValue ValueAfterEvent;
}anEventRecord;
Query: Retrieve the first packet of event history by setting the point count to 0000H.
Event Occurrence
Event Occurrence
Event Occurrence
Event Occurrence
Start of Event #1
Start of Event #2
Value after event
Function Code
Point ID (high)
(time STamp)
(time STamp)
(time STamp)
Point ID (low)
RTU Address
(time STamp)
(time STamp)
Event Type
Exponent
01H 41H 00H 14H 3EH A6H 7AH 4FH 02H 00H 00H A7H 0H 0H ……
The time integer “3EA67A4F” converts to April 23, 2003 at 11:34:39 am.
The Event type is reported as a “02” which is defined as an “Alarm return to normal” or Alarm_RTN
The exponent is reported as a “00” which means there is no decimal point in the value.
The Event Point Identifier is reported as 00A7 or 167 decimal. Table 5 lists Point ID 167 as being Overload
Alarm. Since this event had no data values associated with it, the before and after values are left at zero.
Query: Continue to retrieve the next 20 event records by setting the point count to 0001H, until the block count
in the reply turns negative as shown in the example below.
Response: (Last packet of event history, only part of the reply is shown)
Block Count (high)
Event Occurrence
Event Occurrence
Event Occurrence
Start of Event #1
Start of Event #2
Value after event
Function Code
Point ID (high)
(time STamp)
(time STamp)
(time STamp)
Point ID (low)
RTU Address
(time STamp)
Event Type
Exponent
01H 41H FFH F1H 3EH A6H 63H 9EH 03H 00H 00H 5BH 00H 02H
The reply illustrated above shows a block count of FFF1H (-15 decimal). That means there are no more event
records to be retrieved and that this packet does contain 15 event records.
AMPCHARTING
The GCS motor controllers record the motor current present on Phase B of the power system. This current data
is sampled at high speeds and converted to RMS values. The high speed values are averaged over a four
minute period and the minimum and maximum values are recorded in each 1 minute portion of the four minute
period. There are two tables of amp chart data that are available via the function code 65. The first, accessed
with a starting address of 3 in the function code 65 query is comprised of four minute packets containing the
minimum, maximum and average current during each time period. The second table, accessed with a starting
address of 6, is comprised of a single four minute average and four one minute minimum and maximum values.
The second table contains more data and is correspondingly longer. The following will describe the two
methods separately.
The ampchart data consisting of four minute averages and minimum / maximum values is accessed using a
starting address of 3, within a Function Code 65 query.
typedef struct
{
unsigned char rtuAddress;
unsigned char functionCode;
signed short blockCount;
aFourMinuteAmpchartRecord data[FOUR_MINUTE_AC_RECORDS_PER_PACKET];
unsigned short crc;
}anAmpchartRecordResponse;
typedef struct
{
time_t timeStamp;
PValue average;
PValue minimum;
PValue maximum;
}aFourMinuteAmpchartRecord;
Start of Record #1
Maximum (High)
Maximum (Low)
Minimum (High)
Function Code
Average (high)
Minimum (low)
Average (Low)
(time STamp)
RTU Address
(time STamp)
(time STamp)
(time STamp)
01H 41H 00H 18H 3EH A6H 9FH ACH 00H 16H 00H 15H 00H 17H
Amp Chart recorded
Start of Record #3
Maximum (High)
Maximum (Low)
Minimum (High)
Average (high)
Minimum (low)
Average (Low)
(Time Stamp)
(Time Stamp)
(Time Stamp)
(Time Stamp)
(Time Stamp)
(Time Stamp)
(Time Stamp)
3EH A6H A0H 9CH 00H 18H 00H 17H 00H 19H 3EH A6H ……
The block count 0018H indicates that 24 ampchart records are contained in this packet.
The ampchart data consisting of a four minute average and four, one minute minimum / maximum values is
accessed using a starting address of 6, within a Function Code 65 query.
typedef struct
{
unsigned char rtuAddress;
unsigned char functionCode;
signed short blockCount;
aOneMinuteAmpchartRecord data[ONE_MINUTE_AC_RECORDS_PER_PACKET];
unsigned short crc;
}anAmpchartRecordResponse;
where, ONE_MINUTE_READINGS_PER_RECORD is 4
timeStamp is the time of the most recent reading. This field is updated every minute.
Average is the average of the current over a four minute period.
typedef struct
{
PValue minimum;
PValue maximum;
}anAmpChartReadingRecord;
where minumum and maximum are the extremes of phase B current in amps measured during the one minute
period.
Query: The first message requesting ampchart data must have a point count value of zero, as shown below.
Maximum 1 minute
Maximum 1 minute
Minimum 1 minute
Block Count (high)
Ampchart recorded
Ampchart recorded
Ampchart recorded
Ampchart recorded
Block Count (Low)
Minimum1 minute
Start of Ampchart
Function Code
Average (high)
Average (low)
RTU Address
(Time Stamp)
(Time Stamp)
(Time Stamp)
(Time Stamp)
st
st
st
st
record #1
(high)
(high)
(low)
(low)
01H 41H 00H 0BH 3EH A6H 9FH ACH 00H 16H 00H 15H 00H 17H
minute
minute
minute
minute
minute
Maximum 3 minute
minute
Minimum 2 minute
Minimum 4 minute
Minimum 4 minute
Minimum 3 minute
Minimum 3 minute
Ampchart recorded
Start of Ampchart
(Time Stamp)
nd
nd
rd
rd
th
th
nd
nd
rd
rd
th
th
Maximum 2
Maximum 2
Maximum 3
Maximum 4
Maximum 4
Minimum 2
record #2
(high)
(high)
(high)
(high)
(high)
(high)
(low)
(low)
(low)
(low)
(low)
(low)
00H 15H 00H 17H 00H 15H 00H 17H 00H 15H 00H 17H ….
The block count 000BH indicates that 11 ampchart records are contained in this packet.
After using a point count of 0000H to initiate the transfer of the ampchart records, use a point count of 0001 for
all subsequent queries until the block count value is returned as a negative value. As in all function code 65
transfers, a negative block count indicates that the response contains the final records to be transferred and the
negative value multiplied by negative 1 represents the number of records in this message. An example is shown
below:
Query: The point count is set to one to continue the transfer of ampchart records.
Maximum 1 minute
Maximum 1 minute
Minimum 1 minute
Block Count (high)
Ampchart recorded
Ampchart recorded
Ampchart recorded
Ampchart recorded
Block Count (Low)
Minimum1 minute
Start of Ampchart
Function Code
Average (high)
Average (low)
RTU Address
(Time Stamp)
(Time Stamp)
(Time Stamp)
(Time Stamp)
st
st
st
st
record #1
(high)
(high)
(low)
(low)
01H 41H FFH FEH 3EH A9H 5DH A3H 00H 06H 00H 06H 00H 06H
minute
minute
minute
minute
minute
Maximum 3 minute
minute
Minimum 2 minute
Minimum 4 minute
Minimum 4 minute
Minimum 3 minute
Minimum 3 minute
Ampchart recorded
Start of Ampchart
(Time Stamp)
nd
nd
rd
rd
th
th
nd
nd
rd
rd
th
th
Maximum 2
Maximum 2
Maximum 3
Maximum 4
Maximum 4
Minimum 2
record #2
(high)
(high)
(high)
(high)
(high)
(high)
(low)
(low)
(low)
(low)
(low)
(low)
00H 06H 00H 06H 00H 06H 00H 06H 00H 06H 00H 06H ….
The block count FFFEH indicates that this response contains the last un-transferred records of the
ampchart and that a total of 2 records are contained in this packet. (10000H – FFFEH) = 2
Percentage of full scale = (Present Value of input / full scale value of input) * 100
Next the GCS drive's High Speed clamp and Low Speed clamp settings are determined. The Low Speed clamp
is designated as 0 % speed, while the High Speed Clamp is designated as 100% speed. The controller then
calculates the actual frequency value that corresponds to the percentage of full scale and uses that value as the
desired output frequency. Additionally, the drive can be set to react in forward or reverse. In forward acting, as
the analog setpoint signal is increased, the drive frequency increases. In reverse acting, as the analog setpoint
is increased, the drive frequency decreases.
The GCS drives provide support for Modbus RTU protocol. Using this communication capability, the user can
modify the variables using the following modbus address registers.
For example: to set the frequency to 59.5 Hz, write the value of 595 to address 40784
to set the frequency to 22.9 Hz, write the value of 229 to address 40784
ANALOG FOLLOWER MODE
If Analog Follower Mode is selected, (Modbus Address 40811 = 2), the user can configure which analog input is
used as the setpoint and whether the controller is forward or reverse acting.
Setpoint input for Analog Follower mode is located at Modbus address 40761 (0x02F8). This setpoint can
accept the following decimal values:
Expansion I/O Module 1, Analog Input #1: 1213 (Modbus address 40761 = 1213 decimal)
Expansion I/O Module 1, Analog Input #2: 1214 (Modbus address 40761 = 1214 decimal)
Expansion I/O Module 2, Analog Input #1: 1215 (Modbus address 40761 = 1215 decimal)
Expansion I/O Module 2, Analog Input #2: 1216 (Modbus address 40761 = 1216 decimal)
Expansion I/O Module 3, Analog Input #1: 1217 (Modbus address 40761 = 1217 decimal)
Expansion I/O Module 3, Analog Input #2: 1218 (Modbus address 40761 = 1218 decimal)
Example: Using Analog Follower mode via a Setpoint Input from SCADA
We will utilize a user programmable ‘variable’ called a ‘user point’ to allow the SCADA system to write a value
for the analog follower level. The GCS system has 256 of these programmable elements ranging from 0 to 255.
Caution: If the GCS Electrospeed has a custom programmed function or ‘user PLC function’, you may need to
select a different User Point than the following example.
We will use ‘user point 00’, whose present value field has a modbus address of 41958. See pg 38 of the GCS
Modbus Protocol support document for the full list of Modbus address for each User Point.
The user points are access via the ‘Prog Logic Funct’ option from the GCS Main menu. Select the ‘Edit User
Point’ option from the “Prog Funct Setup’ menu.
When the ‘edit user point’ menu first opens, you should see the setup screen for
‘Point ID 0’. To change to an alternate User Point, place the cursor on the Point
ID line and edit the ID # or use the right & left arrow keys to scroll to the next User
Point. As explained in step 1, we will select user Point ID 0 for this example.
We can configure the user point range in many ways. For this example, we will
set the minimum to 0, the maximum to 1000, an exponent of -1 (100.0) and the
units of 13 (%). This will allow us to write a value between 0 and 1000 that
represents a percentage from 0 to 100.0 % with one decimal of accuracy.
3. Configure Analog Follower mode & Setpoint Input
The next step is to setup the Analog follower mode. The output frequency control menu option appears on the
Prog Funct Setup menu (see above).
The system can be tested by running the drive and adjusting the Present value of User Point 00 from the Edit
User Point menu (see above) Alternately, use CentriMATION to write a value (0-1000 = 0-> 100.0 %) to
Modbus address 41958. You should see the value written appear in the present value field of User Point 00.
The drive output frequency should change from low speed clamp to high speed clamp as a percentage.
Setpoint input for PID Control mode is located at Modbus address 40762 (0x02F9). This setpoint can accept the
following decimal values:
Expansion I/O Module 1, Analog Input #1: 1213 (Modbus address 40762 = 1213 decimal)
Expansion I/O Module 1, Analog Input #2: 1214 (Modbus address 40762 = 1214 decimal)
Expansion I/O Module 2, Analog Input #1: 1215 (Modbus address 40762 = 1215 decimal)
Expansion I/O Module 2, Analog Input #2: 1216 (Modbus address 40762 = 1216 decimal)
Expansion I/O Module 3, Analog Input #1: 1217 (Modbus address 40762 = 1217 decimal)
Expansion I/O Module 3, Analog Input #2: 1218 (Modbus address 40762 = 1218 decimal)
Note: Take care that both the setpoint and feedback inputs do not contain the same value.
If the Manual Setpoint Value is selected, then the actual setpoint value is written to Modbus address 40662
(0x0295). For example, if the manual setpoint value of 1595(decimal) is desired, write to Modbus address
40662 = 1595
Value of Manual Setpoint == Modbus address 40662 (0x295)
Feedback input for PID Control mode is located at Modbus address 40763 (0x02FA). This setpoint can accept
the following decimal values:
Expansion I/O Module 1, Analog Input #1: 1213 (Modbus address 40763 = 1213 decimal)
Expansion I/O Module 1, Analog Input #2: 1214 (Modbus address 40763 = 1214 decimal)
Expansion I/O Module 2, Analog Input #1: 1215 (Modbus address 40763 = 1215 decimal)
Expansion I/O Module 2, Analog Input #2: 1216 (Modbus address 40763 = 1216 decimal)
Expansion I/O Module 3, Analog Input #1: 1217 (Modbus address 40763 = 1217 decimal)
Expansion I/O Module 3, Analog Input #2: 1218 (Modbus address 40763 = 1218 decimal)
Note: Take care that both the setpoint and feedback inputs do not contain the same value.
Custom Modbus Maps
Introduction
The Custom ModBus Map feature of the GCS III product will be helpful to system integrators who wish to
optimize the number of ModBus polls to the a given GCS III Drive or GCS Vortex Motor Controller on their
SCADA system. By using the Custom ModBus feature the system integrator can pick and choose up to 250
registers from anywhere in the GCS ModBus map and “re-Map” them to the “top” of the ModBus map starting at
X0001 through to X0250. A total of 250 GCS ModBus addresses may be re-mapped into any order the SCADA
integrator wants.
By Saving the Custom ModBus Map to a PC-Card the Custom Map may be easily copied onto each unit in the
field via the “Save/Load System Setups” function of the GCS Display.
Requirements
• GCS Display software revision GDI 6.00 and higher
• And System Control SYS 8.04 and higher.
Background
One major function of a SCADA system is the monitoring and trending of field data. The data points to be
monitored are often unique to specific customers and applications. While the list of data points may vary, the
requirement to transfer the data as efficiently as possible is a common request. Efficiency is usually measured
in terms of the number and length of data transfers to remote field devices, such as a GCS Electrospeed.
As features are added to GCS systems, the Modbus Addresses for new types of data (eg, Torque, Centinel
Pressure) are added to the end of the Modbus list. Over time, the ModBus map has grown long and the data
that customers most often want is separated by other less important registers.
This would require the customer read 118 registers in one long message, or make 3 separate scans of one
register each. Either way this equates to a large amount of time spent retrieving 3 registers of data.
To mitigate this, and allow customers to optimize the exchange of data, we have added Custom Modbus
Mapping capabilities to the GCS Systems. Customers will have the ability to create their own optimized list of
up to 250 registers to suit their specific Data requirments.
Setup
The Custom ModBus Map feature operates the same way on GCS III Drive and the GCS Vortex Motor
Controller. In this application guide a GCSIII ElectroSpeed Drive will be used in the example
To setup your Custom ModBus Map on the GCS Display navigate from the Main Menu:
• Edit the “System Adrs” (System Address) column so it contains the GCS
ModBus address that you want to re-map to 30001, 30002, 30003….
NOTE: A ModBus Read or Write to a custom address that has zero for a system address will return an “illegal
address” error message.
Your “Custom Input Register” ModBus Map will now look like this:
30001 is now the same as 30298 = Operating Frequency
30002 is now the same as 30258 = Current A
30003 is now the same as 30259 = Current B
30004 is now the same as 30260 = Current C
30005 is now the same as 30261 = Output Volts
30006 is now the same as 30266 = Onboard Analog 1
30007 is now the same as 30274 = Onboard Analog 2
30008 is now the same as 30376 = PCM Motor Torque
You can now read in one poll of 7 registers what would have taken one read of 118 registers before you created
this Custom ModBus Map.
You may create your own Custom ModBus Maps in the same way for:
• “Custom Output Status” registers starting at 00001
• “Custom Input Status” registers starting at 10001
• And “Custom Output Registers” starting at 40001
First save the existing Custom ModBus Map even if none exists. This will give you a valid Setpoint File to begin
editing.
NOTE:
• The Header of the file contains the date and the software versions of the components on the CITIBus™.
The Header must begin and end with a “;” The header must also contain valid software revisions for the
display and system controller.
• The section titles must be in square brackets and be exactly as shown above or the Display will reject
the file or reject an improperly labelled section.
• You may “comment” lines with a semi-colon “; “as shown above for clarity.
Run Time & Down Time Accumulation
In a GCS System, there are 3 sets of run time registers, and 2 sets of down time registers. The values appear
on the Run History menu in the GCS Menu system, accessible from the Datalog & History option on the main
menu.
There are common concepts with all the accumulated times. All of the times are stored in a set of 4 Modbus
registers. Each set of registers contains the following:
• Day – accumulation of days, incremented when the hours register wraps from 23 to 0, limited to 32767
days.
• Hour – accumulation of hours in the day, incremented when the minutes register wraps from 59 to 0
• Minute – accumulation of minutes in the hour, incremented when the seconds register wraps from 59 to
0.
• Second – value of seconds in the minute which will wrap from 59 to 0
All the time registers are set to 0 whenever the ‘Reset to Factory Defaults” parameter is set to YES. (NOTE that
setting the Reset to Factory Defaults parameter will also clear all settings in the drive and this operation should
only be used when a GCS unit is moved to a new location and re-commissioned.)
Total Run Time is the total accumulated time that the motor has run since being commissioned. (See above)
Run Time is the accumulated run time since the motor was last started. This time will be reset to 0 when the
motor is shut down.
Resettable Run Time is an accumulation of run time since the parameter “Reset Run Time” was set to a value
of YES (1). This parameter is available on the Starts menu accessible from the Basic Setup option on the main
menu.
Total Down Time: Similar to the Total Run Time, these registers accumulate the total amount of time that the
well has been stopped, since commissioning.
Down Time: Similar to the Run Time accumulation, these registers count the time the well has been stopped
since the last time it was shut down or lost power.
RJ-12Plug
(Tab side 2
down)
3
4
5
6
123456
Pin # Description
1 3 5
2 4 6 1 Shield
Component 2 Rx Data in
Side View 3 TxData out RJ-12
4 Signal GND
Jack - Front
5 CTS in
6 RTS out Openning
PCB Pinout
123456
GCS Telemetry Connector (RS-232) Pinout
RS-485 Port
Version and H of GCS Electrospeed System Control Board (SCB) has introduced the addition of a second serial
port (RS-485) as well as increased data communication rates up to 115.2K bps.
The new SCB is easily identified by the two processor ‘riser cards’ mounted above the main board.
The RS-485 connection point is a 3 terminal screw down style connector. The RS-485 port supports 2 wire
connections. The connections are labeled:
LEDs
The Tx and Rx indicator lights for the RS-485 port are located on the GCS Syscon riser card (see above).
The parameters that appear on the RS-232 and RS-485 setup menu’s vary
slightly due to the differences in the hardware interfaces on the two ports.
The RS-232 (serial port) setup is described in the GCS manuals. The only
major difference here is the ability to set the baud rate up to 115k bps.
There is no need for Handshake setup or Prekey delay’s when using an RS-
485 port as there are no hardware control lines.
Reply Delay is the only unique setting on the RS-485 menu. This the
number of 10 mS delays which will be inserted between the message sent
from the host and the reply back to the host.
Dual Serial Port Notes:
- the two serial ports can be used simultaneously
- the RTU Address can be set unique to each port (or set the same if desired)
- Custom Modbus Mapping established by the user applies to both serial ports
- The new SCB is much faster in receiving, processing and replying to messages from the SCADA host
so there may be times that the GCS Electrospeed replies to the host computer too quickly. In this case
the user might try inserting approximately 5 or 10 times 10 mS delay (50 to 100 mS delay) using the
Reply Delay on the RS-485 port or the Pre-Key delay on the RS-232 port to allow time for the host
computer.
- The System Controller software version should be 8.34 (released as of Nov 08) or newer when
integrating the new SCB to SCADA systems. Further improvements and corrections have been made
to deal with various serial communication issues and distributed as a BETA version 8v355. This
software has proven effective in dealing with all known serial communication issues on the new SCB.
The improvements will release with upcoming version 8.4x system controller software due out early
2009.