SMPR Modbus Communication Protocol GB V1.2
SMPR Modbus Communication Protocol GB V1.2
The ORION ITALIA SERIES implement a subset of the AEG Modicon Modbus serial communication
standard. Many devices support this protocol directly with suitable interface card, allowing direct
connection of relays. The Modbus protocol is hardware-independent; that is, the physical layer can be
any of variety of standard hardware configurations, this includes RS232, RS422, RS485, fibber optics,
etc. The ORION ITALIA RELAYS include rear terminals that can be RS232 or RS485 ports. Modbus is a
single master multiple slave protocol suitable for a multi-drop configuration as provided by RS485
hardware. In this configuration up to 32 slaves can be daisy-chained together on a single communication
channel.
The SMPR-1 - ORION ITALIA Relay is always a Modbus slave. It cannot be programmed as a Modbus
master. The Modbus protocol exists in two versions: Remote Terminal Unit (RTU, binary) and ASCII.
Only the RTU version is supported by the Orion Italia Relay. Monitoring, programming and control
functions are possible using read and write register commands.
In a two-wire RS485 link, data flow is bi-directional. RS232 port uses 3-pin Rx for receive data, Tx for
Transmit data and signal ground. Different ports Com1, Com2 and Com3 can be used at the same time.
Data flow is half duplex. That is, data is never transmitted and received at the same time.
In RS485 lines should be connected in a daisy chain configuration (avoid star connections) with
terminating resistors and capacitors installed each end of the link, i.e. at the master end and the slave
farthest from the master. That value of the terminating resistors should be equal to the characteristic
impedance of the line. This is approximately 120 Ohms for standard 24 AWG twisted pair wire. The
value of the capacitors should be 1 nF. Shielded wire should always be used to minimize noise. Polarity
is important in RS485 communications. See figure below for more details.
One data frame of an asynchronous transmission to or from a Orion Italia Relay consists of 1 start bit, 8
data bits, not parity and 1 stop bit (8N1). This produces a 10 bit frame. This is important for the correct
transmission of the data.
The rear RS485 communication ports of the Orion Italia Relay supports operation at 1200,2400,4800,
9600 and 19200 baud.
A complete request/response consists of the following bytes transmitted as separate data frames:
COMMUNICATION 1
CURRENT PROTECTION RELAY SMPR-1
A message is terminated when no data is received for a period of 3½ character transmission times.
Consequently, the transmitting device must not allow gaps between bytes larger than this interval (about
3ms at 9600 baud).
Slave Address: This is the first byte of every message. This byte represents the user-assigned address
of the slave device that is to receive a message sent by the master. Each slave device must be assigned
a unique address, and only the addressed slave will respond to a message that starts with its address. In
a master query message the SLAVE ADDRESS represents the address of the slave to which the
request is being sent. In a slave response message the SLAVE ADDRESS is a confirmation
representing the address of the slave that is sending the response. A master query message with a
SLAVE ADDRESS of 0 indicates a broadcast command. All slaves on the communication link will take
action based on the message, but no one will respond to the master.
Function Code: This is the second byte of every message. Modbus defines function codes of 1 to 127.
The Orion Italia Relay implements some of this functions. See section 7 for details of the function codes
supported by the Orion Italia Relay Series Modbus Protocol. In a master query message the
FUNCTIONS CODE tells the slave what action to perform. In a slave response message, if the
FUNCTION CODE sent from the slave is the same as the FUNCTION CODE sent from the master then
the slave performed the function as requested.
Data: This will be a variable number of bytes on the FUNCTION CODE. This may include actual values,
setpoints or addresses sent by the master to the slave or by the slave to the master. See section 7 for a
description of the Orion-supported functions and the data required for each.
CRC: This is a two byte error checking code. CRC is sent LSByte first followed by the MSByte. The RTU
version of Modbus includes a two byte CRC-16 (16 bit cyclic redundancy check) with every message.
The CRC-16 algorithm essentially treats the entire data stream (data bits only; start, stop and parity
ignored) as one continuous binary number. This number is first shifted left 16 bits and then divided by a
characteristic polynomial (11000000000000101B). The 16 bit remainder of the division is appended to
the end of the message, MSByte first. The resulting message including CRC, when divided by the same
polynomial at the receiver will give a zero remainder if no transmission errors have occurred. If a Orion
Modbus slave device receives a message in which an error is indicated by the CRC-16 calculation, the
slave device will not respond to the message. A CRC-16 error indicates that one or more bytes of the
message were received incorrectly and thus the entire message should be ignored in order to avoid the
slave device performing any incorrect operation. The CRC-16 calculation is an industry standard method
used for error detection. An algorithm is included in section 5 CRC-16 algorithm to assist programmers
in situations where no standard CRC-16 calculation routines are available.
2 COMMUNICATION
CURRENT PROTECTION RELAY SMPR-1
Once the following algorithm is completed, the working register "A" will contain the CRC value to be
transmitted. Note that this algorithm requires the characteristic polynomial to be reverse bit ordered. The
most significant bit of the characteristic polynomial is dropped, since it does not affect the value of the
remainder. The following symbols are used in the algorithm:
Symbols:
--> data transfer
A 16 bit working register
Alow low order byte of A
Ahigh high order byte of A
CRC 16 bit CRC-16 value
i,j loop counter
(+) logical EXCLUSIVE-OR operator
N total number of data bytes
Di i-th data byte (i=0 to N-1)
G 16 bit characteristic polynomial =1010000000000001(binary) with MSbit dropped and
bit order reversed
shr(x) right shit operator (the LSbit of x is shifted into a carry lag, a '0' is shifted into the MSbit
of x, all other bits are shifted right one location)
Algorithm:
1. FFFF(hex) --> A
2. O --> i
3. O --> j
4. Di (+) Alow --> Alow
5. j + 1 --> j
6. shr (A)
7. Is there a carry ? No: go to step 8
Yes: G (+) A --> A and continue
8. Is j = 8 ? No: go to 5
Yes: continue
9. i + 1 --> i
10. Is i = N ? No: go to 3
Yes: continue
11. A ----> CRC
Communication message synchronization is maintained by timing constraints. The receiving device must
measure the time between the reception of characters. If three and one half character times elapse
without a new character or completion of the message, then the communication link must be reset (i.e.
all slaves start listening for a new query message from the master). Thus at 1200 baud a delay of
greater than 3.5 x 1/1200 x 10 = 29.2 ms cause the communication link to be reset. At 9600 baud a
delay of greater than 3.5 x 1/9600 x 10 = 3.6 ms will cause the communication link to be reset. Most
master query messages will be responded to in less than 50 ms. The maximum time for the Orion Italia
Relays to return a slave response message for any function code will never exceed 1 second.
COMMUNICATION 3
CURRENT PROTECTION RELAY SMPR-1
The second byte of every message is the function code. Modbus defines function codes of 01h to 7Fh.
The Orion Italia Relay Modbus protocol supports some of these functions, as summarized in Table No. 1
TABLE No. 1
Since some programmable logic controllers only support function codes 03h (or 04h) and 10h, most of
the above Modbus commands can be performed by reading from or writing to special addresses in the
Orion Italia Relay memory map using these function codes.
The Orion Italia Relay implementation of Modbus views "holding registers" as any setpoint or actual
values register in the Orion Italia Relay memory map. Registers are 16 (two byte) values transmitted
high order byte first. Thus all Orion Italia Relay setpoints and actual values in the memory map are sent
as two byte registers. This function code allows the master to read one or more consecutive setpoints or
actual values from addressed slave device.
The slave response to these function codes is the slave address, function code, a count of the number
of data bytes to follow, the data itself and the CRC. Each data item is sent as a two byte number with
the high order byte sent first. The CRC is sent as a two byte number with the low order byte sent first.
4 COMMUNICATION
CURRENT PROTECTION RELAY SMPR-1
If the function code or the address of any of the requested data is illegal, the slave will not respond the
message. Otherwise, the slave will respond as follows:
This function code allows the master to request a SMPR-1 to perform specific command operation. The
commands Number Listed in the table 2: Commands; correspond to operations codes for function code
05h.
The Slave Response to this function is to echo the entire master transmission.
See Format F23 for Command Operations Codes
COMMUNICATION 5
CURRENT PROTECTION RELAY SMPR-1
This function code allows the master to store single setpoints into the memory map of the SMPR-1.
The Slave Response to this function is to echo the entire master transmission.
This function code allows the master to modify the contest of a one or more consecutive setpoint in the
addressed slave device. Setpoint registers are 16 bit (two byte) values transmitted high order byte first.
The SMPR-1 Setpoint data starts at address 0100h.
To store the value of one or more setpoints in the internal memory of the SMPR-1, the following steps
shall be realized:
a) First shall be read setpoint group to modify with function 03h or 04h.
6 COMMUNICATION
CURRENT PROTECTION RELAY SMPR-1
The SMPR-1 response to this function code is to echo the slave address, function code, starting
address, the number of setpoints stored, and the CRC.
Request slave device 11h to write the value 0190h at setpoint address 0102h, and the value 012Ch at
setpoint address 0103h.
If the function code or the address or value of any of the data, is illegal, the slave will not respond to the
message. Otherwise, the slave will respond as follows:
The data stored in the SMPR-1 is grouped generally on Setpoints, Actual Values and Product ID.
Setpoints can be read and written by a master computer. Actual Values & Product ID are read only. All
data is stored as two bytes values (16 bit Word). Addresses are listed in hexadecimal. Data values
(Setpoint ranges, increments, factory value) are in decimal.
See Memory Map below.
COMMUNICATION 7
SMPR-1 Relay - Software Versions (1.02)
SMPR-1 - MODBUS MEMORY MAP
MODBUS REG. Initial Read/
Add (Hex) Size Description Unit Range Step Format
ADD (Dec) Value Write
Product ID
0000 300001 1W Product Code --- --- --- 22 F2 R
0001 300002 1W Product Model --- --- --- 1 F2 R
0002 300003 1W Version Number --- --- --- 1.02 F6 R
0003 300004 1W Product Language --- --- --- 1 F24 R
Commands
0080 400129 1 W Command Operation Code --- --- --- --- F23 R/W
TimeSet
0090 400145 3 W Date & Time Preset Data --- --- --- --- F8 R/W
Common Setpoints
0100 400257 1W Access Code --- 111~999 1 111 F10 R/W
0101 400258 1W System Setup BitField --- --- F9 R/W
0102 400259 1W Phase CT Rating Primary A 5~5000 5 100 F2 R/W
0103 400260 1W Ground CT Rating Primary A 5~5000 5 100 F2 R/W
0104 400261 1W VT Nominal Secondary V 55~254 1 100 F2 R/W
0105 400262 1W VT Primary Volts KV 0.10~69.00 0.01/0.1 10.00 F6 R/W
0106 400263 1W Reserved R/W
0107 400264 1W Reserved R/W
0108 400265 1W Reserved R/W
0109 400266 1W Amps Demand Period min. 5~60 1 15 F2 R/W
010A 400267 1W Power Demand Period min. 5~60 1 15 F2 R/W
010B 400268 1W Reserved R/W
010C 400269 1W Reserved R/W
010D 400270 1W Output Relays Config BitField --- --- 0 F11 R/W
010E 400271 1W TRIP Relay Pulse Time ms 100~2000 100 200 F2 R/W
010F 400272 1W AUX1 Relay Pulse Time ms 100~2000 100 200 F2 R/W
0110 400273 1W AUX2 Relay Pulse Time ms 100~2000 100 200 F2 R/W
0111 400274 1W AUX3 Relay Pulse Time ms 100~2000 100 200 F2 R/W
0112 400275 1W Reserved R/W
0113 400276 1W Reserved R/W
0114 400277 1W Reserved R/W
0115 400278 1W Reserved R/W
0116 400279 1W Reserved R/W
0117 400280 1W Reserved R/W
0118 400281 1W Reserved R/W
0119 400282 1W Reserved R/W
011A 400283 1W Block Trip Delay Sec 0.05~1.00 0.01 0.15 F6 R/W
011B 400284 1W Opening Breaker Time ms 10~500 10 100 F2 R/W
011C 400285 1W Reserved R/W
011D 400286 1W Reserved R/W
011E 400287 1W Reserved R/W
011F 400288 1W Reserved R/W
0120 400289 1W Digital Inputs Config BitField --- --- 0 F12 R/W
0121 400290 1W Input 1 Function 0~9 1 0 F13 R/W
0122 400291 1W Input 2 Function 0~9 1 2 F13 R/W
0123 400292 1W Input 3 Function 0~9 1 1 F13 R/W
0124 400293 1W Reserved R/W
0125 400294 1W Reserved R/W
0126 400295 1W Reserved R/W
0127 400296 1W Reserved R/W
0128 400297 1W Reserved R/W
0129 400298 1W Reserved R/W
012A 400299 1W Event Recorder Config BitField --- --- F14 R/W
012B 400300 1W Breaker Driscrepancy Relays --- 0~14 2 0 F15 R/W
012C 400301 1W Breaker Driscrepancy Delay ms 10~2500 10 1000 F2 R/W
012D 400302 1W Mechanical Operations Relays --- 0~15 1 0 F15 R/W
012E 400303 1W Mechanical Operations Maximum --- 5~9995 5 3000 F2 R/W
012F 400304 1W Accumulated Amp Relays --- 0~15 1 0 F15 R/W
0130 400305 1W Accumulated Amp Level KA 10~5000 1 300 F2 R/W
0131 400306 1W Slave Address --- 1~247 1 1 F2 R/W
0132 400307 1W Com1 (RS-232) Baud Rate Baud 0~4 1 3 F17 R/W
0133 400308 1W Com2 (RS-485) Baud Rate Baud 0~4 1 3 F17 R/W
0134 400309 1W Com3 (RS-485) Baud Rate Baud 0~4 1 3 F17 R/W
Actual Values
0200 300513 3W DMP Relay Date & Time --- --- --- --- F8 R
0203 300516 1W Front Panel Leds Status BitField --- --- --- F18 R
0204 300517 1W Front Panel Leds Blink Status BitField --- --- --- F18 R
0205 300518 1W Output Relays Status BitField --- --- --- F20 R
0206 300519 1W Digital Inputs Status BitField --- --- --- F21 R
0207 300520 1W Status Flags 1 BitField --- --- --- F25 R
0208 300521 1W Status Flags 2 BitField --- --- --- F26 R
0209 300522 1W Status Flags 3 BitField --- --- --- F27 R
020A 300523 1W Pickup Flags 1 BitField --- --- --- F25 R
020B 300524 1W Pickup Flags 2 BitField --- --- --- F26 R
020C 300525 1W Pickup Flags 3 BitField --- --- --- F27 R
020D 300526 2W Phase A RMS Current A --- --- --- F6 R
020F 300528 2W Phase B RMS Current A --- --- --- F6 R
0211 300530 2W Phase C RMS Current A --- --- --- F6 R
0213 300532 2W Ground RMS Current A --- --- --- F6 R
0215 300534 2W Negative Sequence Current A --- --- --- F6 R
0217 300536 2W Phase AB RMS Voltage V --- --- --- F4 R
0219 300538 2W Phase BC RMS Voltage V --- --- --- F4 R
021B 300540 2W Phase CA RMS Voltage V --- --- --- F4 R
021D 300542 2W Phase AN RMS Voltage V --- --- --- F4 R
021F 300544 2W Phase BN RMS Voltage V --- --- --- F4 R
0221 300546 2W Phase CN RMS Voltage V --- --- --- F4 R
0223 300548 2W Current Average A --- --- --- F6 R
0225 300550 2W Voltage Average V --- --- --- F4 R
0227 300552 2W Reserved R
0229 300554 2W Reserved R
022B 300556 2W Reserved R
022D 300558 2W Reserved R
SMPR-1 Relay - Software Versions (1.02)
SMPR-1 - MODBUS MEMORY MAP
MODBUS REG. Initial Read/
Add (Hex) Size Description Unit Range Step Format
ADD (Dec) Value Write
022F 300560 2W 3Ø Real Power KW --- --- --- F5 R
0231 300562 2W 3Ø Reactive Power KVAR --- --- --- F5 R
0233 300564 2W 3Ø Aparent Power KVA --- --- --- F5 R
0235 300566 2W Real Power Phase A KW --- --- --- F5 R
0237 300568 2W Real Power Phase B KW --- --- --- F5 R
0239 300570 2W Real Power Phase C KW --- --- --- F5 R
023B 300572 2W Reactive Power Phase A KVAR --- --- --- F5 R
023D 300574 2W Reactive Power Phase B KVAR --- --- --- F5 R
023F 300576 2W Reactive Power Phase C KVAR --- --- --- F5 R
0241 300578 2W Aparent Power Phase A KVA --- --- --- F6 R
0243 300580 2W Aparent Power Phase B KVA --- --- --- F6 R
0245 300582 2W Aparent Power Phase C KVA --- --- --- F6 R
0247 300584 1W 3Ø Power Factor --- --- --- --- F19 R
0248 300585 1W Reserved R
0249 300586 1W Reserved R
024A 300587 1W Reserved R
024B 300588 1W Frequency Hz --- --- --- F6 R
024C 300589 1W Reserved R
024D 300590 1W Reserved R
024E 300591 1W Reserved R
024F 300592 1W Reserved R
0250 300593 1W Phase A Current Unbalance % --- --- --- F4 R
0251 300594 1W Phase B Current Unbalance % --- --- --- F4 R
0252 300595 1W Phase C Current Unbalance % --- --- --- F4 R
0253 300596 1W Reserved R
0254 300597 1W Reserved R
0255 300598 1W Reserved R
0256 300599 1W Reserved R
0257 300600 1W Reserved R
0258 300601 1W Reserved R
0259 300602 1W Reserved R
025A 300603 1W Reserved R
025B 300604 1W Reserved R
025C 300605 1W Reserved R
025D 300606 1W Reserved R
025E 300607 1W Phase Sequence --- --- --- --- F32 R
025F 300608 2W Positive Active Energy KWh --- --- --- F2 R
0261 300610 2W Negative Active Energy KWh --- --- --- F2 R
0263 300612 2W Positive Reactive Energy KVARh --- --- --- F2 R
0265 300614 2W Negative Reactive Energy KVARh --- --- --- F2 R
0267 300616 3W Last Energy Reset Date & Time --- --- --- --- F8 R
026A 300619 2W Last Current Demand A --- --- --- F6 R
026C 300621 2W Last Real Power Demand KW --- --- --- F5 R
026E 300623 2W Last Reactive Power Demand KVAR --- --- --- F5 R
0270 300625 2W Max Current Demand A --- --- --- F6 R
0272 300627 3W Max Current Demand Date & Time --- --- --- --- F8 R
0275 300630 2W Max Real Power Demand KW --- --- --- F5 R
0277 300632 3W Max Real Power Date & Time --- --- --- --- F8 R
027A 300635 2W Max Reactive Power Demand KVAR --- --- --- F5 R
027C 300637 3W Max Reactive Power Date & Time --- --- --- --- F8 R
027F 300640 3W Last Trip Cause, Date & Time --- --- --- --- F8 R
0282 300643 2W Pre-Trip Phase A RMS Current A --- --- --- F6 R
0284 300645 2W Pre-Trip Phase B RMS Current A --- --- --- F6 R
0286 300647 2W Pre-Trip Phase C RMS Current A --- --- --- F6 R
0288 300649 2W Pre-Trip Ground RMS Current A --- --- --- F6 R
028A 300651 2W Pre-Trip Negative Sequence Current A --- --- --- F6 R
028C 300653 2W Pre-Trip AB RMS Voltage A --- --- --- F2 R
028E 300655 2W Pre-Trip BC RMS Voltage A --- --- --- F2 R
0290 300657 2W Pre-Trip CA RMS Voltage A --- --- --- F2 R
0292 300659 1W Pre-Trip Frequency Hz --- --- --- F6 R
0293 300660 1W Pre-Trip 3Ø Power Factor --- --- --- --- F19 R
Maintenance Data
02D0 300721 1W Trips Counter --- --- --- --- F2 R
02D1 300722 1W Accumulated Amp on Phase A KA --- --- --- F2 R
02D2 300723 1W Accumulated Amp on Phase B KA --- --- --- F2 R
02D3 300724 1W Accumulated Amp on Phase C KA --- --- --- F2 R
02D4 300725 1W Phase O/C Trips --- --- --- --- F2 R
02D5 300726 1W Ground O/C Trips --- --- --- --- F2 R
02D6 300727 1W Openning Counter --- --- --- --- F2 R
Events
0600 301537 1W Last Event Number --- --- --- --- F2 R
0601 301538 3W Last Event Clear Date & Time --- --- --- --- F8 R
0610 401553 1W Selected Event Number --- 1~65535 1 1 F2 R/W
0611 301554 3W Selected Event Date & Time --- --- --- --- F8 R
0614 301557 2W Selected Event Phase A RMS Current A --- --- --- F6 R
0616 301559 2W Selected Event Phase B RMS Current A --- --- --- F6 R
0618 301561 2W Selected Event Phase C RMS Current A --- --- --- F6 R
061A 301563 2W Selected Event Ground RMS Current A --- --- --- F6 R
061C 301565 2W Selected Event Negative Sequence Current A --- --- --- F6 R
061E 301567 2W Selected Event AB RMS Voltage A --- --- --- F2 R
0620 301569 2W Selected Event BC RMS Voltage A --- --- --- F2 R
0622 301571 2W Selected Event CA RMS Voltage A --- --- --- F2 R
0624 301573 1W Selected Event Frequency Hz --- --- --- F6 R
0625 301574 1W Selected Event 3Ø Power Factor --- --- --- --- F19 R
15 14 13 10 9 5 4 0
2nd Not
MONTH DAYS (1~31/30/29/28)
HOURS
Word Used (1~12) Depending on the Month & Year (00~23)
15 10 9 0
3th MINUTES SECONDS
Word (00~59) (00.0~59.9)
Example: 111 saved as 111 (only digits 1~9 accepted, digit 0 is NOT ALLOWED)
20 Set Aux1
21 Set Aux2
22 Set Aux3
32 Earth Released
33 Breaker Earthed
34 Remote Trip
35 Serial Comunication Trip
36 Block Trip Reset
37 Block Trip Set
70 UnderVoltage 1
71 OverVoltage 1
72 Reserved
73 Reserved
74 Phase Reversal
80 Frequency 1
81 Frequency 2