This design specification describes the Modbus communications protocol as
supported by the OC-485 interface card. It includes information on how to pass
information to and from the OC-485 card via Modbus. It is also intended to help
facilitate answering questions regarding supported types, frame format, function
code support etc.
Implementation Basics
Protocol controls the language structure or message format between devices in
other words, the rules for communication. The rules for communication include
how master and slave devices initiate communications, as well as unit
identification, message handling and error checking. Modbus protocol simply
refers to the control of the query and response cycles between master and slave
devices.
The OC-485 card is configured to act as a slave device on a common network.
This common network can be a multi-drop configuration over EIA-485, where
multiple slaves reside on a common wire or loop.
Transmission Format
The OC-485 interface card supports Modbus RTU (Remote Terminal Unit)
transmission modes. . See chart below.
Physical
Port
EIA-
485/422
2 wire
Transmission
Mode
RTU 9600, 19200
Baud Rate Data Bits Parity Bits Stop Bits Default
or 38400
Configurable Configurable Configurable No
1
REV. 5 7/6/2007
Liebert Monitoring Group –Development
Modbus Packet Format
Each Modbus packet consists of the following fields:
• Device Address
• Function Code
• Data Field(s)
• Error Check Field
Device Address:
The address field immediately follows the beginning of the frame and consists of
8-bits (RTU). This bit indicates the user assigned address of the slave device
that is to receive the message sent by the attached master device.
Each slave must be assigned a unique address and only the addressed slave will
respond to a query that contains its address.
Function Code:
The function code field tells the addressed slaves what function to perform.
Function codes are specifically designed invoke a specific action by the slave
device. The function code range is from 1 to 127.
OC-485 Modbus server supports the following Modbus function codes.
Code Function Description
01 Read Coils Read from 1 to 2000 contiguous status of coils managed
by the server. Coils in the response message are packed
as one per bit of a byte, 1=ON and 0=OFF. If the
requested quantity of coils is not a multiple of 8, zeros
are padded in the final byte.
02 Read Discrete
Inputs
03 Read Holding
Registers
04 Read
InputRegisters
05 Write Single Coil Write a single output to either ON(1) or OFF(0) mapped
06 Write Single
Register
15 Write Multiple
Coils
Read from 1 to 2000 contiguous status of input status
managed by the server. Discrete inputs in the response
message are packed as one per bit of a byte, 1=ON and
0=OFF. If the requested quantity of inputs is not a
multiple of 8, zeros are padded in the final byte.
Read the contents of contiguous block of 1 to 127
holding registers. Data are packed as two bytes per
register; the first byte contains the high order bits.
Read the contents of contiguous block of 1 to 127 input
registers. Data are packed as two bytes per register; the
first byte contains the high order bits.
in coil section.
Write a value into a single holding register;
Force each coil in a sequence of coils to either ON or
OFF.
2
REV. 5 7/6/2007
Liebert Monitoring Group –Development
16 Write multiple
Registers
Write values into a block of contiguous registers (1 to
120)
Data Field(s):
The data field varies in length depending on whether the message is a request or
a response to a packet. This field typically contains information required by the
slave device to perform the command specified or to pass back data to the
master device.
Error Check Field:
The Error Check Field consists of a 16-bit (2 byte) Cyclical Redundancy Check
(CRC16). It allows the receiving device to detect a packet that has been
corrupted with transmission errors.
RTU Framing
The example below shows a typical Q/R from a OC-485 interface card. In common
terms, the master device initiates a query asking slave device 2 for holding registers
starting at holding register 40051 (decimal 50) and including next 2 Registers (3 total).
Query Sample
Slave
Address
02 03 00 32 00 03 E5 FA
Function
Code
Starting
Register
“Hi Byte”
Starting
Register
“Lo Byte”
Number of
Registers
“Hi Byte”
Number of
Registers
“Lo Byte”
CRC16
“Hi Byte”
CRC16
“Lo Byte”
Response Sample
Slave
Address
02 03 6 01 58 00 FA 00 54 1B 0D
Function
Code
Count:
Bytes of
Data
Register
40051 Data
Hi Lo
Register
40052 Data
Hi Lo
Register
40053 Data
Hi Lo
CRC16
“Hi Byte
CRC16
“Lo Byte”
Slave address 2 responds to Function Code 3 with 6 bytes of hexadecimal data
and ends with CRC16 checksum.
Load (Apparent Power) 30102 2 1 VA
Load (Real Power) 30104 2 1 W
Load / Capacity 30106 1 1 %
Input Frequency 30107 1 10 Hz
Output Frequency 30108 1 10 Hz
Bypass Frequency 30109 1 10 Hz
1 - 100% Charged
2 - Less than 100% Charged
3 - Charging
4 - Discharging
Battery Charge Status 30112 1
5 - Float Charging
6 - Equalize Charging
Battery Voltage 30113 1 1 V
Battery Time Remaining 30115 1 1 min
5
Liebert Monitoring Group –Development
Battery Charge Percentage 30116 1 1 %
Battery Temperature 30117 1 1 deg C
Transformer Temperature 30121 1 1 deg C
REV. 5 7/6/2007
Redundant Power Modules 30124 1 1
Active Power Module Count 30126 1 1
Battery Module Active
Count 30127 1 1
Battery Test Result 30130 1 1
Input Voltage L1 30153 1 1 V
Input Current L1 30154 1 1 A
Bypass Voltage L1 30159 1 1 V
Bypass Current L1 30160 1 1 A
Output Voltage L1 30163 1 1 V
Output Current L1 30164 1 1 A
Power Module Failure
Count 30304 1 1
Battery Module Failure
Count 30305 1 1
Power Module Warning
Count
Battery Module Warning
Count
30306 1 1
30307 1 1
6
REV. 5 7/6/2007
Liebert Monitoring Group –Development
Liebert Nx
Supported Modbus Points
Data Point Status Coil # of Reg. Scale Notes / Units
Economode 10005 5
DC-To-DC Converter
On
Battery Charge
Compensation
Inverter Ready 10047
Power Factor
Correction State 10050
Battery Charge Mode 10051
Load On Inverter 10073
Bypass Active 10074
Battery Under Test 10082
Load On Battery 10128
Overload Transfer To
Bypass 10131
Input Switch Open 10137
Generator
Disconnected 10141
Bypass Transfer
Count Block 10147
Static Bypass Switch
Disabled 10148
Low Battery -
Shutdown Imminent
Output Overload 10154
UPS Load Joint
Mode 10156
Output Off 10158
Inverter
Unsynchronized 10160
Main Neutral Lost 10161
Fan Failure 10169
Ambient Over
Temperature 10173
Rectifier Over
Temperature 10174
Rectifier Inductor
Over Temperature 10175
Inverter Over
Temperature 10176
Inverter Inductor
Over Temperature
Battery Converter 10179
10042
10046
10152
10177
7
Liebert Monitoring Group –Development
Over Temperature
DC Bus Balancer
Over Temperature
Input Power Supply
Fail 10186
Input BrownOut 10189
Bad Input Frequency 10190
Bypass Phase
Rotation Error 10191
Bypass Phase Loss 10201
Bypass Input
Voltage/Frequency
Fault 10202
Output Fuse Blown 10217
Output Over Voltage 10219
Charger Failed 10234
Battery Fault 10235
Battery Contact Fail 10236
Battery Converter
Over Current 10237
Battery Converter
Fail 10238
DC Bus Balancer
Over Current 10239
DC Bus Balancer
Fault 10240
DC Bus 1 Power
Supply Fail 10251
Rectifier Fuse Fail 10257
Rectifier Startup
Failure 10258
Rectifier Fault 10259
Rectifier Current Limit 10260
Nominal Output
Voltage
Nominal Static
Bypass Switch
Voltage 30029 40029 1 V
Nominal Input
Frequency 30031 40031 1 10 Hz
Nominal Output
Frequency 30032 40032 1 10 Hz
Nominal Power
Factor
Nominal DC Bus #1
Voltage 30035 40035 1 V
Nominal DC Bus #2
Voltage
10283
30004 40004 1 1 Bits 8 - 11
30009 40009 1
There are 16 possible
Load Circuits. So
each bit represents 1
load circuit. Load
Circuit 1 is bit 0, Load
Circuit 2 is bit 1 and
so on. If the bit is 1
then the Load Circuit
is supported.
30028 40028 1 V
30033 40033 1 100
30036 40036 1
9
Loading...
+ 27 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.