Skip to content

Appendix B: Modbus Communication

The exchange between PC and OM-310 is effected via data packages.

FieldDescription
STARTSilence interval – over 2 ms at 9600 baud, or over 4 ms at 19200 baud
ADDRESS IDOM-310 communication address (8 bit)
FUNCTIONCommand code (8 bit)
DATA 0 … DATA (n-1)Data contents: N×8 data bit (n≤24)
CRC CHK lowCRC checksum (16 bits) – low byte
CRC CHK highCRC checksum (16 bits) – high byte
ENDSilence interval – over 2 ms at 9600 baud, or over 2 ms at 19200 baud

CMD (command code) and DATA (data symbols)

Section titled “CMD (command code) and DATA (data symbols)”

Data symbols format depends on command codes.

Example: Read 2 continuous words from address 0x64 (100) in OM-310 with communication address 0x01.

Command messageResponse message
ADDRESS ID0x01ADR0x01
FUNCTION0x03CMD0x03
Start data address0x00, 0x64Data amount, bytes0x04
Data amount in words0x00, 0x02Data contents0x17, 0x70
CRC CHK low0x85Data contents0x00, 0x00
CRC CHK high0xD4CRC CHK low0xFE
CRC CHK high0x5C

Command code 0x06 – write (record) one word

Section titled “Command code 0x06 – write (record) one word”

Data writing is possible only to the programmable parameter’s addresses (Table 1.5), except for the following parameters:

ParameterCodeAddress
Equipment operation time counter, daystbU191
User access codeLOC192
Service engineer access codePA5193
System reset to factory settingsPPP194
Device versionrEL200

Parameter writing is performed independently from the installed Service Engineer protection (the entry made via communication line has a higher priority).

When a new parameter value is written into a MMSP-protected cell, such parameter will automatically be excluded from this mode.

0x08 function provides a number of tests for checking communication system between PC and OM-310, and for OM-310 integrity control.

The function uses the sub function field to specify the action performed (test).

Data transferred in the query field must return in the response data field.

Example: sub function 0x00 request and response in OM-310 with communication address 0x01.

Command messageResponse message
ADDRESS ID0x01ADR0x01
FUNCTION0x08CMD0x08
Subfunction0x00, 0x00Subfunction0x00, 0x00
Data0xA0, 0x3CData0xA0, 0x3C
CRC CHK low0x98CRC CHK low0x98
CRC CHK high0x1ACRC CHK high0x1A
Sub function 0x01 – communication options restart
Section titled “Sub function 0x01 – communication options restart”

OM-310 peripheral port shall be initialized and restarted.

Example: sub function 0x01 request (response is not returned) for OM-310 with communication address 0x01.

Command message
ADDRESS ID0x01
FUNCTION0x08
Subfunction0x00, 0x01
Data0x00, 0x00
CRC CHK low0xB1
CRC CHK high0xCB

The checksum (CRC16) is a cyclic redundancy check code based on 0xA001 polynomial. The transmitting device forms the checksum for all bytes of the message transmitted. The receiving device similarly forms the checksum for all bytes of the message received, and compares it to the checksum received from the transmission device. When received and transmitted checksums do not match, an error message is generated.

The checksum field size occupies two bytes. The checksum within message is transferred with low byte coming first.

The checksum is registered under the following algorithm:

  1. Load CRC register (16 bit) with units (0xFFFF)
  2. Exclusive OR with first 8 bytes of message and CRC register contents
  3. Offset the result one bit to the right
  4. If the offset bit = 1, the exclusive OR of the register contents with 0xA001 value
  5. If the offset bit = 0, repeat step 3
  6. Repeat steps 3, 4, 5 until 8 offsets have been completed
  7. Exclusive OR with the next 8 bits of the message byte and CRC register contents
  8. Repeat steps 3–7 until all bytes of the message have been processed
  9. The finite register contents will contain the checksum

CRC code generation example in C:

unsigned int crc_chk(unsigned char* data, unsigned char length) {
int j;
unsigned int reg_crc = 0xFFFF;
while(length--) {
reg_crc ^= *data++;
for(j = 0; j < 8; j++) {
if(reg_crc & 0x01)
reg_crc = (reg_crc >> 1) ^ 0xA001; // LSB(b0)=1
else
reg_crc = reg_crc >> 1;
}
}
return reg_crc;
}

When an error situation occurs at time of a frame receipt (parity error, frame error, checksum error), the OM-310 device does not return a response.

When an error occurs in the format or in the value of the data transferred (unsupported function code, etc.), OM-310 receives the request frame and forms a response with the error indicator and code. A high-order function field bit inserted in the unit serves as error indicator.

Example: function 0x30 error response (illegal function) from OM-310 with communication address 0x01.

Command messageResponse message
ADDRESS ID0x01ADR0x01
FUNCTION0x30FUNCTION ERROR0xB0
DATAError code0x01
CRC CHK lowCRC CHK low0x94
CRC CHK highCRC CHK high0x00

Table 2.6 – Error codes

Error codeTitleDescription
0x01ILLEGAL FUNCTIONFunction code received cannot be processed by OM-310
0x02ILLEGAL DATA ADDRESSData address in the query is not accessible by the given subordinate
0x03ILLEGAL DATA VALUEValue contained in the request data field is not a valid value for OM-310
0x04SLAVE DEVICE FAILUREWhile OM-310 attempted to perform the requested action, an unrecoverable error occurred
0x05ACKNOWLEDGEOM-310 accepted request and is processing it, but it requires a long time
0x06SLAVE DEVICE BUSYOM-310 is busy with command processing. Master must repeat message later
0x07NEGATIVE ACKNOWLEDGEOM-310 cannot perform the program function received in the request

Measured and Displayed Parameters (Table 1.4)

Section titled “Measured and Displayed Parameters (Table 1.4)”
Measurement functionRangeAccuracyMnemonicsAddressUnits
Phase currents RMS (built-in CT)0.5–1002%iF1, iF2, iF3100, 101, 1021/10 A
Phase currents RMS (built-in CT)100–3005%iF1, iF2, iF3100, 101, 1021/10 A
Phase currents RMS (external CT)5–9992%iF1, iF2, iF3100, 101, 1021/10 A
Zero sequence current RMS, A0.3–9.92%iF01031/10 A
Average current value per phaseiS1, iS2, iS3104, 105, 1061/10 A
Max average current value per phase<3 Itt2%in1, in2, in3107, 108, 1091/10 A
Max average current value per phase>3 Itt10%in1, in2, in3107, 108, 1091/10 A
Negative sequence current (imbalance), A0.2–2005%ioP1101/10 A
Measurement functionRangeAccuracyMnemonicsAddressUnits
Phase voltages RMS (with zero wire), V100–3003 VUF1, UF2, UF3111, 112, 113Volts
Line voltage RMS values, V100–4505 VUL1, UL2, UL3114, 115, 116Volts
Positive-sequence voltage, V100–3003 VUPP117Volts
Negative-sequence voltage, V3–3003 VUoP118Volts
Zero-sequence voltage, V3–1003 VUnP119Volts
Measurement functionRangeAccuracyMnemonicsAddressUnits
Gross power, kVA0–50005%Pot120, 121W × 10
Active power, kW0–50005%PoR122, 123W × 10
Reactive power, kVAr0–50005%PoJ124, 125W × 10
Phase L1 active power, kW0–50005%PAR126, 127W × 10
Phase L2 active power, kW0–50005%PAb128, 129W × 10
Phase L3 active power, kW0–50005%PAC130, 131W × 10
Phase L1 cos φ0.00–1.005%PCA132×1000
Phase L2 cos φ0.00–1.005%PCb133×1000
Phase L3 cos φ0.00–1.005%PCC134×1000
Measurement functionRangeAccuracyMnemonicsAddressUnits
Time before load disconnect (power exceeded), sec0–6001stOP135seconds
Time before AR delay termination, sec0–9001stAP136seconds
Wait time after de-energizing (over wattage), min0–301sttP137seconds
Mains frequency, Hz45–651%FFF1381/10 Hz
Measurement functionRangeAccuracyAddressUnits
Active electric power, phase L1, kWh0–200,000,0005%90, 91100s of Wh
Active electric power, phase L2, kWh0–200,000,0005%92, 93100s of Wh
Active electric power, phase L3, kWh0–200,000,0005%94, 95100s of Wh
ParameterCodeMinMaxDefaultDescriptionAddress
CT in usetPt0100 = integrated CT, 1 = external CT150
CT rated current, Atnt20800100For external CT151
Load rated current, Aind570010Used for calculating current and time of overcurrent protection152
ParameterCodeMinMaxDefaultDescriptionAddress
Rated power of load, kWPnn34505153
Power limiter threshold calculationrPn0200 = per phase (Pnn/3), 1 = per phase +20%, 2 = aggregate154
Main threshold, %P1F50150110155
Additional threshold, %P2F3010090156
Time before load relay de-energizing (main), sect1n030060Time before load disconnect when main threshold exceeded157
Time while load relay is open (main), mint1F1605Time relay stays open after main threshold trip158
Time before characterizing relay de-energizing, sect2n030010Additional threshold delay159
Time while characterizing relay is open, mint2F1605Time relay stays open after additional threshold trip160
Additional threshold for characterizing relay closure, %P2n310030Threshold for relay closure after overload161
Characterizing relay operation moderr50400=alarm, 1=time relay, 2=additional load, 3=reactive power alarm, 4=active power alarm162
Characterizing relay activation mode (when rr5=2)r2r0200=after time t2F, 1=after power reduction, 2=first event163
Delay of characterizing relay closure, sect1203005Relative to load relay closure164
Allowable load wattless power, kVArPrn34505165
ParameterCodeMinMaxDefaultDescriptionAddress
Maximum current protection typei=P0500=independent, 1=SIT, 2=VIT, 3=EIT, 4=UIT, 5=RI166
Max current protection tripping ratioi=50.89.02.0Ratio to load rated current (when i=P=0)167
Current protection tripping delay, seci=t0.360010.0168
Protection function permissioni=r0200=prohibited, 1=permitted (no AR), 2=permitted (with AR)169
ParameterCodeMinMaxDefaultDescriptionAddress
Current fault tripping setting, Ai_50.35.00.5170
Protection tripping delay, seci_t0.32.01.0171
Protection function permissioni_r0200=prohibited, 1=permitted (no AR), 2=permitted (with AR)172
ParameterCodeMinMaxDefaultDescriptionAddress
Minimum line voltage, VU_5270415320173
Min voltage tripping delay, secU_t53010174
Min voltage protection permissionU_r0200=prohibited, 1=permitted (no AR), 2=permitted (with AR)175
Maximum line voltage, VU¯5330475415176
Max voltage tripping delay, secU¯t1102177
Max voltage protection permissionU¯r0200=prohibited, 1=permitted (no AR), 2=permitted (with AR)178
Line voltage imbalance, VUn51512035179
Imbalance tripping delay, secUnt1305180
Imbalance protection permissionUnr0200=prohibited, 1=permitted (no AR), 2=permitted (with AR)181
Phase sequence protection permissionUЧr0200=prohibited, 1=permitted (no AR), 2=permitted (with AR)182
ParameterCodeMinMaxDefaultDescriptionAddress
Automatic reset (AR) time, secAtt09005183
AR prohibited for all faultsArr0110=prohibited, 1=permitted (except voltage faults)184
Load relay after power-onAPd0210=manual, 1=after AR delay, 2=after 2 sec185
Load start/cutoff from front panelACd0300=prohibited, 1=energize, 2=de-energize, 3=both186
ParameterCodeMinMaxDefaultDescriptionAddress
Average current measurement time, sect5i1060060Time for measuring iS1, iS2, iS3187
MMSP mode enable5in0110=disabled, 1=enabled188
Indication before load energize5iP0210=UAb, 1=PoA, 2=Att countdown189
Parameter indication mode5iC0110=continuous, 1=15 sec then iF1190
Equipment operation time, daystbU09990Read-only; hours via Modbus191
User access codeLOC0900=unlocked, 1-9=password192
Service engineer access codePA5000999123000=permitted, other=password193
System reset to factory settingsPPP010Set 1 to restore defaults194

Serial Interface Parameters (RS-485/RS-232)

Section titled “Serial Interface Parameters (RS-485/RS-232)”
ParameterCodeMinMaxDefaultDescriptionAddress
Communication addressr5A12471195
Transfer rater550100=9600, 1=19200 baud196
Response to loss of connectionr5P0300=continue, 1=warning, 2=warning+de-energize (AR), 3=warning+de-energize (no AR)197
Response timeout detection, secr50012000=prohibited198
Communication permittedrPP0200=prohibited, 1=RS-232, 2=MODBUS199
Device versionrEL14Read-only; firmware dependent200
Remote control via RS-232/RS-485dUd0200=prohibited, 1=permitted, 2=wait for command201
Remote control via switchdUc0400=prohibited, 1-4=see manual202
Starter monitoringCCi0100=off, 1=on203
BitDescription
00 = no fault, 1 = fault (code in registers 241, 242)
10 = load relay open, 1 = load relay closed
20 = characterizing relay open, 1 = characterizing relay closed
30 = restart not activated, 1 = AR expected
4-6Characterizing relay mode: 000=alarm, 001=time relay, 010=additional load, 011=reactive power alarm
70 = MMSP disabled, 1 = MMSP enabled
RegisterAddressDescription
Fault register 1241Bit mapping per Table 2.8 (0=no fault, 1=fault)
Fault register 2242Bit mapping per Table 2.8
Fault descriptionMnemonicParameter valueAddressFault codeRegister bit
De-energizing based on main threshold crossingAP=Main threshold value in 100×W3000241:0
Additional threshold crossingAPdAdditional threshold value in 100×W3011241:1
Maximum phase current faultAi=Maximum phase current3022241:2
Line-to-earth fault (zero sequence current)Ai_Zero sequence current3033241:3
Currents present when load relay is de-energized (contactor fault)ACoCurrent3044241:4
Phase sequence order faultAU5241:5
Minimum line voltage faultAU_Voltage3066241:6
Maximum line voltage faultAU¯Voltage3077241:7
Phase imbalance faultAUnImbalance3088241:8
Remote control channel faultAdU9241:9
Emergency load de-energize, AR not possibleEAd10241:10
Emergency de-energize of load, AR possible by pressing UP+DOWNEOd11241:11
Emergency load de-energizing by remote breakerEdc12241:12
EEPROM destructionEEP13241:13
DescriptionAddress
Fault code 1243
Parameter value 1244
Fault time 1 (high word)245
Fault time 1 (low word)246
Fault code 2247
Parameter value 2248
Fault time 2 (high word)249
Fault time 2 (low word)250
Fault code 3251
Parameter value 3252
Fault time 3 (high word)253
Fault time 3 (low word)254
Fault code 4255
Parameter value 4256
Fault time 4 (high word)257
Fault time 4 (low word)258
Fault code 5259
Parameter value 5260
Fault time 5 (high word)261
Fault time 5 (low word)262
DescriptionAddress
Main threshold value (100×W)300
Additional threshold value (100×W)301
Maximum phase current302
Zero sequence current303
Contactor fault current304
Minimum voltage fault value306
Maximum voltage fault value307
Imbalance fault value308
RegisterAddressValues
R_COMMAND2200=de-energize, 1=normal operation, 2=early energize
ValueAction
0De-energize load. If load is de-energized, before a power-on command from Remote Control has been received, the load will not energize. If load is energized, it will be de-energized.
1Normal device operation. If load was de-energized by remote control command, by pressing DOWN+UP buttons (while ACd=3), or in case of a failure after which automatic restart is permitted, then load will be energized within specified automatic restart time.
2Early load energizing. Value “2” record will lead to load power-on until expiration of the automatic reset time period. After load power-on, R_COMMAND=1.

The R_COMMAND value is regarded by the OM-310 operation algorithm when dUd=1 or dUd=2. If dUd=0 and the user sets dUd=1 or dUd=2, then 0 will be recorded to R_COMMAND.

If dUd=1, then after energizing “1” value (device normal operation) will be recorded in the command register.

If dUd=2, then after energizing “0” value (load de-energized until the command to energize is received) will be recorded in the command register.

In case of an emergency load shutdown by simultaneous pressing DOWN+UP buttons (while ACd=2 or ACd=3), the command register will be reset to 0.

RegisterAddressDescription
Energy reset239Write 1 to reset all energy meters; auto-resets to 0