03 ECM700 - Modbus Protocol V6.5
03 ECM700 - Modbus Protocol V6.5
www.e-powertech.ca
CONTENTS
1. Introduction.........................................................................................................................................3
1.1 Purpose of the Communication Protocol ....................................................................................3
1.2 Version of Communication Protocol ...........................................................................................3
2. Detailed Description of the ECM700 Modbus Protocol...................................................................3
2.1. ECM700 Modbus Protocol Rules ..............................................................................................3
2.2. Modes of Transmission ..............................................................................................................3
2.3. Description of the Modbus Packet Structure..............................................................................3
2.3.1. Address Field...........................................................................................................................4
2.3.2. Function Field .........................................................................................................................4
2.3.3. Data Field................................................................................................................................4
2.3.4. Error Check Field....................................................................................................................4
2.4. Network Timing Considerations ................................................................................................4
2.5. Exception Responses..................................................................................................................5
2.6. Broadcast Packets ......................................................................................................................5
3. Packet Communication.......................................................................................................................6
3.1 Relay Control (Function Code 05) ..............................................................................................6
3.2. Read Holding Registers (Function Code 03) .............................................................................6
3.3. Preset Multiple Registers (Function code 16) ............................................................................7
4. Calculating the CRC-16 Error Check Field .....................................................................................7
4.1. Steps for the Generating the CRC-16 Checksum:......................................................................7
4.2. Procedure for Calculating the 6403 Bytes of 16 Hex.................................................................8
5. Description of ECM700 Registers......................................................................................................9
Appendix: ECM700 Modbus Registers List .........................................................................................9
F1: Real-time Data Registers List .....................................................................................................9
F2: Harmonic Register List.............................................................................................................12
F3: Setpoints ...................................................................................................................................15
F4: TOU Register List.....................................................................................................................18
F5: SOE Register List .....................................................................................................................19
F6: Demand Register List ...............................................................................................................20
F7: System Setup ............................................................................................................................20
F8: Analog Import...........................................................................................................................21
F9: Analog Export (Optional AO function: one loop analog) ......................................................21
F10: Analog Export ( Optional E module: two loop analog) ..........................................................22
F11: Pulse Export............................................................................................................................22
2) Under the16-bit mode, the time between the end of a SLAVE STATION response packet and the
Unit ID/ Slave address 1 byte Unit ID/ Slave address 1 byte
03 H (Function Code) 1 byte 03 H (Function Code) 1 byte
Start register address 2 bytes Byte Count (2 * quantity of 1 byte
registers)
Quantity of registers 2 bytes First register data 2 bytes
CRC check code 2 bytes Second register data 2 bytes
... ...
CRC check code 2 bytes
This section describes the procedure for obtaining the CRC-16 error check field. A packet can be considered
as a continuous, serial stream of binary data (0, 1). The 16-bit checksum is obtained by multiplying the serial
data stream by 216 (10000000000000000) and then dividing it by the generator polynomial x16+x15+x2+1,
which can be expressed as a binary data 11000000000000101. The quotient is ignored and the 16-bit
remainder is the checksum and is appended to end of the packet. The receiving device performs the same
operation on the entire packet including the checksum. The packet, when divided by the generator
polynomial, should give a zero remainder if no transmission errors have occurred. In calculating the CRC,
all arithmetic operations (additions and subtractions) are performed using MODULO TWO, or
EXCLUSIVE OR operation. Figure 4.1 provides a step by step example to show how to obtain the
checksum for a packet requesting one holding register at location 10 (Van of the ECM700) from a slave with
address 100 (64 Hex).
2. Current
In current registers, ECM700 uses secondary values, if users need primary values, CTs coefficient should be
multiplied. If no CTs, the coefficient is 1.
Current value is expressed as 16-bit unsigned, with 3 decimal places. Unit is Amp. For example, if current
value is 12345(0x3039H), the real value is 123.45A.
6. Apparent power
Apparent power of ECM700 uses secondary value. If users need to obtain real primary value, CTs and PTs
coefficients should be multiplied. If no PTs or CTs, the coefficient is 1.
Apparent power is 32-bit unsigned value with 1 decimal point. The unit is VA. For example, the apparent
power 12345(0x00003039H) means real value 1234.5VA.
7. Power factor
Power factor is expressed as16-bit signed value, with 3 decimal point bits and complement code. When the
value is positive, power angle is leading. When the value is negative, power angle is logging.
D15 D14 – D0
Sign bit Data bits
8. Frequency
Frequency is expressed as 16-bit unsigned value, with 2 decimal point bits. The unit is HZ. For example,
frequency 1234(04D2H) means real value 12.34HZ.
9. Status input
D15 – D8 D7 D6 D5 D4 D3 D2 D1 D0
RESERVE S8 S7 S6 S5 S4 S3 S2 S1
For reserve bits, the value is 0. When one status input is closed, the corresponding status bit is 1, or else is 0.
For some types of ECM700, maybe status input function isn’t provided; then the bits are always 0.
12. Energy
Energy data of ECM700 is primary value. It uses 32-bit unsigned data, and the max value is 99,999,999.9.
Because of directions of active energy and reactive energy, so define four type data include: import, export,
total and net value. For apparent energy, just total value is offered. The units are kWh, kvarh, and kVAh.
For example, Energy value is 12345.6, then high word is 0X0001, Low word is 0xE240.
F3: Setpoints
Register
Reg. Type Description Note
Address
40801 define special operating
WO Return latched relay
value
40802 RW Relay 1 action pulse width
40803 RW Relay 2 action pulse width
40804 RW Relay 3 action pulse width
40805 RW Relay 4 action pulse width
40806 RW Relay 1 control mode 0: remote control
40807 RW Relay 2 control mode 1: local control
4. YC setpoints
One setpoints is decided by 4 data, showed as follows:
Control mode register: It is used to set the monitor types and the monitor objects (trigger parameters).
D15 – D12 D11 – D8 D7 – D0
Activation control Monitor types Monitor objects
0x0:Forbidden 0x1:High limit 1:Va
0xA:Active 0x2:Low limit 2:Vb
Others:Invalid Others:Invalid 3:Vc
4:Vab
5:Vbc
6:Vca
7:Ia
8:Ib
9:Ic
10:Neutral current
23:Frequency
26: Neutral Voltage
27:Current unbalance rate
28:Voltage unbalance rate
30:3 phase/neutral voltage meet condition.
31:3 phase-to-phase voltage meet condition.
32:3 current meet condition.
33:Any phase/neutral voltage meets condition.
34:Any phase/phase voltage meets condition.
35:Any current meets condition.
36: Phase A current demand
37: phase B current demand
38: phase C current demand
39: apparent power demand
Others: Invalid
Action delay time: It defines action object’s delay action time after limit value has been exceeded. In the
period of delay time, if action object returns under limit value, the setpoints is inactive. The time’s unit is
second. The range is 0~255.If the time is set to 0, the action object will act once monitor object exceeds limit
value.
Action objects: It is used to dedicate the action relay. If the value is 0, no relay will act. Every bit expresses
different relay. For example the bit 0 means the relay 1.
5. Logic setpoints
A logic setpoints is defined by 4 data, showed as follows:
Logic mode register: It is used to the set judgment logic and the monitor objects (trigger parameters).
D15 – D12 D11 – D8 D7 – D4 D3 – D0
Logic judgment types Monitor object 3 Monitor object 2 Monitor object 1
0x0:Forbidden The same as logic The same as logic 0x0:No object
0x1:AND object 1 object 1 0x1:S1
0x2:OR 0x2:S2
Others:Invalid 0x3:S3
0x4:S4
0x5:S5
0x6:S6
0x7:S7
0x8:S8
0x9:SP1
0xA:SP2
0xB:SP3
0xC:SP4
0xD:SP7
0xE:SP8
0x0F:Reserved
Action conditions: It is used to define the conditions, which logic objects should meet.
D15 – D12 D11 – D8 D7 – D4 D3 – D0
Reserved The state of logic object 3 The state of logic object 2 The state of logic object 1
Action delay time: It defines action object’s delay action time after limit value has been exceeded. In the
period of delay time, if action object returns under limit value, the setpoints is inactive. The time’s unit is
circle wave. The range is 0~9999.If the time is set to 0, the action object will act once monitor object
exceeds limit value.