KO95 Mapping
KO95 Mapping
KO95 Mapping
© Copyright Statement
This document remains the property of Schlumberger and is Confidential and Trade Secret. Do not disclose,
use, or reproduce without written approval from Schlumberger.
ACA Telemetry Reference K095,L095 Telemetry Reference.doc Mar 4/97
1. Overview
The Keltronics K095 Advanced Motor Controller (AMC) when purchased with the communications option is ready for
telemetry communication. Four signals, TX, RX, RTS, DCD (pins 2,3,7,and 1 respectively) on the AMC's DB-9 connector (or
alternately on the L095 WELLCOM's connector) are used to communicate serially with a central computer system. These
signals are converted to either Bell 202 modem, RS-232, or RS-485/422 to allow communication over wireline or radio.
Both the K095 and L095 implement Modbus RTU Mode. Modbus RTU Mode is a set of rules that define how communication
occurs to and from a remote RTU such as the K095 AMC. This set of rules is commonly referred to as a protocol. Modbus
RTU Mode was initially developed for Gould Modicon PLCs. Since that time many other vendors have also implemented
Modbus in their RTU equipment.
K095 versions 1.3xr11 or newer and L095 versions 1.3xr12 or newer, implement more than one protocol. With these versions, a
L095 display setting is used to select one of many protocols. Modbus RTU Mode is automatically selected when the RTU ID
is equal to 255 and the word format is set for 8 bits no parity. This allows Wellview software to “override” the current protocol
selection.
The following sections summarise the protocols that can be used with the K095 and/or the L095. I/O address maps, specific to
the K095/L095 version and protocol are included at the end of this document. Note that most input status/coil information can
be alternately accessed via register commands (16 coils per register).
When WELLVIEW is used (i.e. using a laptop to adjust controller settings in the field), the L095 must be set for 8 data bits / no
parity / 1 stop bit. When the WELLVIEW session is completed, the operator should insure that the data format and baud rate
settings are restored for proper SCADA operation.
Whenever possible, the SCADA should be set to either 8 data bits / no parity / 1 stop or 7 data bits / space parity / 1 stop bit
and the L095 set to 8 data bits / no parity / 1 stop bit, in order to avoid having to switch between word formats when
WELLVIEW is used.
2.2 Framing
The Modbus ASCII Mode data frame is summarized below.
Where:
BEG is the ASCII character code for the colon, and denotes the beginning of the message.
RTU_ID, FUNCTION, and DATA are hexadecimal ASCII characters. When each hexadecimal pair is converted to 8 bit binary
data, their meanings are the same as the ones outlined in the Modbus RTU Mode section.
LRC is a 8 bit binary number which is transmitted as two ASCII hexadecimal characters. The error check is produced by
converting the hex characters in the RTU_ID, FUNCTION, and DATA fields to binary, adding the binary characters without
wrap around carry, and two’s complementing the result.
CR and LF are the ASCII “carriage return” and “line feed” characters.
3.2 Framing
The Modbus RTU Mode data frame is summarized below.
T1 T2 T3 RTU_ID FUNCTION DATA CRC T1 T2 T3
8 bits 8 bits N x 8 bits 16 bits
Where:
T1 T2 T3 is ‘the absence of data for 3 1/2 character times'.
RTU_ID is a unique RTU address. Each remote device must be set-up or programmed with a unique RTU ID between 1 and
254 (consult the appropriate Operators manual for setup details). A RTU ID of ‘0’ is handled as global command expecting no
response. For example, a SCADA system could issue a register write command with the RTU ID set to ‘0’. All field RTUs
would accept the register write but none would actually respond with a response message. A RTU ID of ‘255’ is handled as a
global command with a TX data response, but no RTS keyup. This allows local programming equipment like a laptop IBM PC,
to be used to configure the RTU.
FUNCTION is the Modbus function code. The original Gould Modicon specification defines many function codes. The
subset of codes that are implemented are shown below. Note that an RTU exception response will set bit 8 of the function
code.
Function 01 - Read Output Status Function 03 - Read Output Registers Function 16 - Write Multiple Registers
Function 02 - Read Input Status Function 04 - Read Input Registers
Function 05 - Force Single Coil Function 06 - Preset Single Register
DATA depends on the type of function and whether it is the message being sent to the RTU or the message that the RTU is
responding with. Each message sent to RTU (query) is followed by a message that the RTU sends back (response). The
contents of DATA for each of the various functions and query/responses is outlined below.
DATA error response, i.e. bad address, not enough data, etc.
EXCEPTION CODE
8 bits, value is exception code, bit 8 of FUNCTION is also set.
01 - Illegal function 03 - Illegal data value
02 - Illegal data address 06 - Busy, rejected message
Note that the actual value of the I/O ADDRESS is not necessarily the same as the one used for SCADA and/or PLC
configuration purposes. In most instances, the addresses used for configuration purposes are similar to the I/O address
‘aliases’ that MODICON PLCs use. These are summarized in the table below:
The I/O address table for the specific device should be consulted for the specific addresses of each point.
CRC is a 16 bit error check code using the CRC-16 polynomial which conforms to the specification in the Gould Modicon
Modbus Protocol Reference Guide.
4. Remote Control
All setpoints, controls, and live data that can be viewed locally are accessable remotely as per the attached Modbus I/O
address assignment tables. Additional control coils (addresses 96 thru 111) assist with remote control. Note that some I/O
registers can only be accessed with a L095 display present.
The K095 AMC was designed for use in submersible motor control applications. The following summary is offered in an effort
to assist the SCADA designer in implementing a remote control system.
• In all modes, it is not possible to start the K095 if an alarm is present. Alarms can be one or more of 32 possible causes.
These are listed from coil I/O address 48 thru 79. These coils may also be accessed as registers 290 and 291.
• Some alarms (such as pressure, loop hi/low, undervolts, etc) can persist when the motor is off. Other alarms such as
overload and underload automatically clear when the motor stops. To handle this situation, the state of all alarms is
latched as the contactor is shut off. See I/O registers 294 & 295. These latched registers are cleared by pressing the start
switch, pressing the keypad ESC key, by writing zero’s to the register itself, or by writing a one to the CTBITA13 (addr
108) coil.
• The HAND position means that the K095 will not automatically restart. All alarm sources must be in the non-alarm state
before the K095 will start.
• In the AUTO position the K095 is setup to automatically restart in the event of a temporary disturbance (i.e. under volts,
underload, pressure, etc.). Each alarm has a programmable retry number. A non zero value enables an auto restart.
• In the event of a permanent problem (i.e. overload, too many starts in a short period of time, etc.) the K095 is designed to
“LOCKOUT”. This lockout can be cleared via the start switch, via the L095 keypad, or by the remote control coil
REM_UNLOCK (addr 97).
• When an alarm(s) causes the K095 to shut off, the alarm that occurred first is flagged as the “shutdown cause”. The
alarms restart timer and retry number is used to setup the restart time. Shutdown cause indexes are available for the last 6
shutdowns via registers 250 to 255.
• The REM_STOP and REM_STRT coils interact with a REMBITR (Remote Off) alarm coil. The specifics of these coils is
explained in the Status/Coil I/O, Notes table. The REMBITR coil acts like any other alarm source and can be set or cleared
via the REM_STOP and/or the REM_STRT coils.
• Restart timers are designed to minimize downtime. The restart timer begins counting as soon as the motor stops. The
restart timer will count down to and hold at 1 minute if an alarm is still active. This ensures that a minimum 1 minute delay
occurs after the alarm clears.
• A hold start delay in seconds can be added to the 1 minute auto start delay. The hold start delay allows starts to be
staggered for multiple K095 sites. This hold delay is also used with the remote start coil. When a “one” is written to
REM_STRT, the motor will start after the hold time expires.
5. I/O Connections
A female DB-9 connector is used for serial communications. Four series 1K ohm resistors are used to protect the RTS,TX,RX,
& DCD pins. In an idle condition these pins are at +5 volt levels. When these pins are active they go to a 0 volt level. A 10K
ohm pull down resistor is used with the L095’s DCD signal. This ensures that the DCD pin stays active should it not be used.
The following table describes each pin.
A variety of ACA products can be used to convert these TTL signals to RS-232, RS-485/422, and/or to modem signals.
All setpoints, controls, and live data that can be viewed locally are accessible remotely as per the attached Modbus I/O address assignment tables.
Additional control coils (addresses 10097 thru 10112) assist with remote control. Note that some I/O registers can only be accessed with a L095
display present.
The K095 AMC was designed for use in submersible motor control applications. The following summary is offered in an effort to assist the SCADA
designer in implementing a remote control system.
· In all modes, it is not possible to start the K095 if an alarm is present. Alarms can be one or more of 32 possible causes. These are listed from coil
I/O address 10049 thru 10080. These coils may also be accessed as registers 30291 and 30292.
· Some alarms (such as pressure, loop hi/low, undervolts, etc) can persist when the motor is off. Other alarms such as overload and underload
automatically clear when the motor stops. To handle this situation, the state of all alarms is latched as the contactor is shut off. See I/O registers
30295 & 30296. These latched registers are cleared by pressing the start switch, pressing the keypad ESC key, by writing zero’s to the register
itself, or by writing a one to the CTBITA13 (10109) coil.
· The HAND position means that the K095 will not automatically restart. All alarm sources must be in the non-alarm state before the K095 will start.
· In the AUTO position the K095 is setup to automatically restart in the event of a temporary disturbance (i.e. under volts, underload, pressure, etc.).
Each alarm has a programmable retry number. A non zero value enables an auto restart.
· In the event of a permanent problem (i.e. overload, too many starts in a short period of time, etc.) the K095 is designed to "LOCKOUT". This lockout
can be cleared via the start switch, via the L095 keypad, or by the remote control coil REM_UNLOCK (10198).
· When an alarm(s) causes the K095 to shut off, the alarm that occurred first is flagged as the "shutdown cause". The alarm's restart timer and retry
number is used to setup the restart time. Shutdown cause indexes are available for the last 6 shutdowns via registers 30251 to 30256.
· The REM_STOP and REM_STRT coils interact with a REMBITR (Remote Off) alarm coil. The specifics of these coils is explained in the Status/Coil I/O,
Notes table. The REMBITR coil acts like any other alarm source and can be set or cleared via the REM_STOP and/or the REM_STRT coils.
· Restart timers are designed to minimize downtime. The restart timer begins counting as soon as the motor stops. The restart timer will count down
to and hold at 1 minute if an alarm is still active. This ensures that a minimum 1 minute delay occurs after the alarm clears.
· A hold start delay in seconds can be added to the 1 minute auto start delay. The hold start delay allows starts to be staggered for multiple K095
sites. This hold start delay is also used with the remote start coil. When a "one" is written to REM_STRT, the motor will start after the hold start time
expires.
· User control coils 10122 thru 10128 can be used in multiple master scenarios. They allow a remote stop to be classified into one of four sources.
User lockouts can also be used to provide a retentive LOCKOUT that not be cleared (just ignored) in the HAND position.
General Notes:
K095's respond to I/O addresses 0 (10001 thru 6Fh (10112). An illegal data address exception will occur for any other address.
If an L095 is used with a K095 all I/0 addresses from 0h (10001) thru 7Fh (10128) are available.
General Notes:
K095's respond to I/O addresses 0 thru 362, and to I/O addresses 543 thru 546. An illegal data address exception will occur for any
other address. If an L095 is used with a K095 all I/0 addresses from 0 thru 1358 are available.
A maximum of 64 registers can be read at a time and only 20 registers may be written at a time.