SENVA logo

User’s Manual – Modbus
EMX-IP – User Interface and Modbus
Communications Guide
Senva Sensors
1825 NW 167th PL
Beaverton, OR 97006

SENVA EMX-IP User Interface and Modbus

154-0050-0A

EMX-IP User Interface and Modbus

Rev. Release Date By Description of Change ECR
0A 10/14/2024 CJL Initial Release 01350

Copyright ©2025. All rights reserved. This document contains Senva Sensors proprietary information and may not be reproduced or distributed without written permission.

See Also:
152-0430 EMX-IP Installation Instructions
154-0049 EMX-IP BACnet Protocol Guide
154-0051 EMX-IP Navigation Guide

Display Navigation

Congratulations on installing your new Senva EMX-IP energy meter! This Modbus Protocol Guide assumes the first stage of installation is complete, with the meter and any CTs connected and powered. The OLED display should show the home screen when any
button is pressed. If not, refer to the separate Installation Instructions before continuing.
Now, only the network configuration remains between you and the data.
From any screen, press the ENTER button to access the settings menu.
You can make selections using the UP and DOWN arrows and then pressing ENTER to proceed to that menu or setting.
From any menu, press the ESC button to go back one menu.

SENVA EMX-IP User Interface and Modbus - Fig 1

To change a value, use the UP and DOWN arrows to set each digit and the ENTER button to move the cursor left.
Once each digit has been set, hit ENTER a final time to return to the previous menu.
To abandon changes at any time, you may hit ESC.

SENVA EMX-IP User Interface and Modbus - Fig 2

Setup Registers and Parameters

Setup registers and parameters are available in 5 groups in the settings menu using the display or they may also be accessed using Modbus communications.

Settings
Settings are available in the following groups on the display. A parameter list is provided in the following sections.

  • Metering – Adjust metering parameters such as voltage and current scaling, phase sequencing, and display units.
  • Pulse Config – Read the count of the two pulse inputs.
  • Communications – See IPv4 and IPv6 values.
  • Alarms – Enable or disable alarms and set trip points.
  • Real-Time Clock – Set the date and time.
  • Logging – Enable or disable logging as well as setting trigger source and what is logged.
  • Passcode – Choose a passcode to lock device.
  • Advanced – View firmware versions or initiate a factory reset.

The following sections detail how to adjust settings over the Modbus interface. All settings are stored in non-volatile memory. Stored values will not be lost if the meter experiences a power loss.

R/W:
R = Readable Only
R/W = Read and writeable

Type, Min, Max:

ENUM = UINT16 16-bit unsigned integer that maps to a defined list of values
U8 = UINT8 8-bit unsigned integer; 0 to 1
U16 = UINT16 16-bit unsigned integer; min/max values listed
I16 = INT16 16-bit integer; -768 to 768

Scale:
Values must be multiplied by this scale factor to be read correctly. 15 * 0.1 = 1.5. When writing the value should be divided by the scale before being written. 1.5 / 0.1 = 15.
Modbus Function Codes:
The EMX setting registers support the following Modbus function codes:

  • 0x03 Read Holding Registers
  • 0x04 Read Input Register
  • 0x06 Read Single Holding Register
  • 0x10 Write Multiple Holding Registers

Metering

Description Reg. R/W Type Min Max Default Scale Units
Phase Configuration 0-3PH ABCN,
1-3PH ABC,
2-1PH ABN,
3-1PH AB,
4-SplitPH ABN
2000 R/W ENUM 0 4 0 N/A N/A
Current Element 0-Current Transformer,
1-Rogowski Coil
2001 R/W ENUM 0 1 0 N/A N/A
Current Scale See note 1 2002 R/W U16 10 60000 10 0.1 Amps per
0.333 Volts
Current Orientation For phases A, B, C:
0-  +, +, +
1-  +, +, –
2-  +, -, +
3-  +, -, –
4-  -, +, +
5-  -, +, –
6-  -, -, +
7-  -, -, –
2003 R/W ENUM 0 7 0 N/A N/A
Voltage Scale See note 2 2004 R/W U16 10 32000 100 0.01 Unitless
Display Units 0- IEC Units,
1- IEEE Units
2005 R/W ENUM 0 1 1 N/A N/A
  1. Current scale is the primary side current of a 0.333V CT. CTs with an output voltage exceeding 0.333V should not be used. For a CT ratio of 20A / 0.333 V this will be 20.0 * 10 = 200. If a Rogowski coil is installed this value will need to be calculated from the coils mV/1000A rating. Rogowski conversion is calculated by (333.33 mV / x mV) *1000A * 10(scale).
  2. Voltage scale is the PT ratio expressed as a decimal and multiplied by 100. A potential transformer of 25:10 would give a ratio of 25 / 10 = 2.5, appropriately scaled it would be 2.5*100 = 250.

Alarms

Description Reg. R/W Type Min Max Default Scale Units
Alarm – Voltage Out of Range Enable 0-Disable 1-Enable 2016 R/W ENUM 0 1 0 N/A N/A
Alarm – Voltage Out of Range Nominal Set nominal L-L voltage for out-of- range alarm, least significant digit is 1/10th of a Volt. 2017 R/W U16 10 60000 2400 0.1 Volts
Alarm – Voltage Out of Range Threshold The percent above or below the nominal voltage setting (2017) at which a fault will trigger. 2018 R/W U16 1 20 10 1 %
Alarm – Current Out of Range Enable 0-Disable 1-Enable 2019 R/W ENUM 0 1 0 N/A N/A
Alarm – Current Out of Range Nominal Set nominal current for out-of- range alarm, least significant digit is 1/10th of an Amp. 2020 R/W U16 10 60000 50 0.1 Amps
Alarm – Current Out of Range Threshold The percent above or below the nominal current setting (2020) at which a fault will trigger. 2021 R/W U16 1 20 10 1 %
Alarm Ground Current Out of Range Enable 0-Disable 1-Enable 2022 R/W ENUM 0 1 0 N/A N/A
Alarm Ground Current Out of Range Nominal Set nominal ground current for out-of-range alarm, least significant digit is 1/10th of an Amp. 2023 R/W U16 10 60000 50 0.1 Amps
Alarm Ground Current Out of Range Threshold The percent above the nominal ground current setting (2023) which a fault will trigger. 2024 R/W U16 1 20 10 1 %
Alarm Frequency Out of Range Enable 0-Disable 1-Enable 2025 R/W ENUM 0 1 1 N/A N/A
Alarm Frequency Out of Range Nominal Set nominal frequency for out- of-range alarm, least significant digit is 1/100th of a Hertz. 2026 R/W U16 450 650 600 0.1 Hz
Alarm Frequency Out of Range Threshold The percent above or below the nominal frequency setting (2026) at which a fault will trigger. 2027 R/W U16 1 20 10 1 %
Alarm Voltage Phase Loss Enable 0-Disable 1-Enable 2028 R/W ENUM 0 1 1 N/A N/A
Alarm Voltage Phase Loss Threshold A phase-to-phase comparison of L-N voltages is performed. If any phase’s L-N voltage is below the others by the threshold amount, a fault will trigger. Only applicable to 3Φ configurations (ABC or ABCN). Single phase installations will power off during phase loss event. 2029 R/W U16 1 20 10 1 %
Alarm Voltage Phase Imbalance Enable 0-Disable, 1-Enable 2030 R/W ENUM 0 1 1 N/A N/A
Alarm Voltage Phase Imbalance Threshold The percent of phase-to-phase imbalance above which a fault will trigger. For a three-phase Y system, both VL-L and VL-N are examined. For a three-phase delta, only VL-L measurements are compared. In a single split- phase, only VL-N are compared. 2031 R/W U16 1 20 10 1 %
Alarm Power Factor Low Enable 0-Disable 1-Enable 2032 R/W ENUM 0 1 1 1 N/A
Alarm Power Factor Low Threshold Set the (unitless) PF value, below which a fault will trigger. 2033 R/W U16 1 99 50 0.01 Unitless

Advanced 

Description Reg. R/W Type Min Max Default
Reset Wh Writing 1 will reset all the stored Wh, VAh and VARh values. 2034 R/W U16 0 1 0
Count of Wh Resets Number of times the Wh has been reset. 2035 R U16 0 65535 0
 

Reset Run time

Writing 1 will reset the system run time (37 and 38), but not the system power on time (35 and 36). 2036 R/W U16 0 1 0
Count of run time Resets Number of times the system run time has been reset. 2037 R U16 0 65535 0
Reset Pulse Counts Writing 1 will reset the pulse input counters (41 through 44). 2038 R/W U16 0 1 0
Reboot EMX Reboots the EMX. When written, this point may not give a response or may return an error due to the reset process. The point will still accept the value. 2042 R/W U8 0 1 0
Reset Log Content Writing a 1 value to this register reset all the stored log entries. This will break communications and display connection for approx. 25 seconds. Do not remove power during this update. When written, this point may not give a response or may return an error due to the reset process. The point will still accept the value. 2043 R/W U16 0 1 0
Phase Angle Compensation 2044 R/W I16 -768 768 0
Passcode Set display passcode 2045 R/W U16 0 9999 0

Metering Registers

The following table describes each of the power and energy readings provided over Modbus from the device.

R/W:
R = Read Only
R/W = Read and Write

Type, Min, Max:
ENUM = UINT16 16-bit unsigned integer that maps to a defined list of values
U8 = UINT8 8-bit unsigned integer; 0 to 255, unless otherwise noted
U16 = UINT16 16-bit unsigned integer; 0 to 65535 (0xFFFF), unless otherwise noted
I16 = INT16 16-bit integer; -32768 to 32767, unless otherwise noted
U32 = UINT32 32-bit unsigned integer; 0 to 4294967295 (0xFFFFFFFF), unless otherwise noted
U64 = UINT64 64-bit unsigned integer; 0 to 18.466e+18
I64 = INT64 64-bit signed integer; -9.233e+18 to 9.233e+18

Scale: 
Values must be multiplied by this scale factor to be read correctly. For some power, current, and voltage readings, the scale factor will be automatically set based on the user settings for voltage and current scale. These multipliers can be read in registers 030-032.
Store: 
Values marked “yes” will be stored in non-volatile memory. Stored values will not be lost if the meter experiences a power loss.

Modbus Function Codes:
The EMX metering registers support the following Modbus function codes:

  • 0x03 Read Holding Registers
  • 0x04 Read Input Register

Some registers span multiple Modbus addresses. Two consecutive registers defined as XXX/YYY indicates a pair of aligned registers, that must be merged into a 32-bit value.
Four consecutive registers require merging the results into a 64-bit value. See data type conversions section for more information and examples.

Description Reg. R/W Type Min Max Scale Units Store
V-LN Average 001 R U16 0 65535 V-scale V(rms) No
V-LL Average 002 R U16 0 65535 V-scale V(rms) No
Current Average 003 R U16 0 65535 I-scale A(rms) No
Current Sum 004 R U16 0 65535 I-scale A(rms) No
Real power total 005 R I16 -32768 32767 P-scale W No
Reactive power total 006 R I16 -32768 32767 P-scale VAR No
Apparent power total 007 R I16 -32768 32767 P-scale VA No
V-LN Phase A 008 R U16 0 65535 V-scale V(rms) No
V-LN Phase B 009 R U16 0 65535 V-scale V(rms) No
V-LN Phase C 010 R U16 0 65535 V-scale V(rms) No
V-LL Phase A-B 011 R U16 0 65535 V-scale V(rms) No
V-LL Phase B-C 012 R U16 0 65535 V-scale V(rms) No
V-LL Phase C-A 013 R U16 0 65535 V-scale V(rms) No
Current Phase A 014 R U16 0 65535 I-scale A(rms) No
Current Phase B 015 R U16 0 65535 I-scale A(rms) No
Current Phase C 016 R U16 0 65535 I-scale A(rms) No
Power Factor Phase A 017 R I16 -1000 1000 0.001 Unitless No
Power Factor Phase B 018 R I16 -1000 1000 0.001 Unitless No
Power Factor Phase C 019 R I16 -1000 1000 0.001 Unitless No
Frequency (Phase A) 020 R U16 480 620 0.1 Hz No
Real power Phase A 021 R I16 32768 32767 P-scale W No
Real power Phase B 022 R I16 32768 32767 P-scale W No
Real power Phase C 023 R I16 32768 32767 P-scale W No
Reactive power Phase A 024 R I16 32768 32767 P-scale VAR No
Reactive power Phase B 025 R I16 32768 32767 P-scale VAR No
Reactive power Phase C 026 R I16 32768 32767 P-scale VAR No
Apparent power Phase A 027 R I16 32768 32767 P-scale VA No
Apparent power Phase B 028 R I16 32768 32767 P-scale VA No
Apparent power Phase C 029 R I16 32768 32767 P-scale VA No
Voltage
Scale
Factor
(V-scale)
-4:0.0001
-3:0.001
-2:0.01
-1:0.1
0:1
1:10
2:100
3:1000
4:10000
5:100000
6:1000000
030 R I16 -2 2 1 N/A No
Current
Scale
Factor
(I-scale)
031 R I16 -3 1 1 N/A No
Power
Scale
Factor
(P-scale)
032 R I16 -4 6 1 N/A No
Description Reg. R/W Type Min Max Scale Units Store
Alarm Status Bitfield Bit 0: Pulse configuration error
Bit 1: Pulse overrun error
Bit 2: Voltage out of range
Bit 3: Current out of range
Bit 4: Current sum (neutral current) out of range
Bit 5: Freq. out of range
Bit 6: Voltage phase loss
Bit 7: Voltage phase unbalance
Bit 8: Power factor low
Bit 9: Accumulator loss
Bit 10: RTC error
Bit 11: Logs full
Bit 12: Meter settings error
Bit 13 – 15: Reserved
033 R U16 0 0xFFFF 1 N/A No
Load Status 0: No load detected
1: Load above threshold
034 R ENUM 0 1 1 N/A No
System power on time 035
036
R U32 0 4294967295 1 Seconds Yes
System run time 037
038
R U32 0 4294967295 1 Seconds Yes
Power Reset Count 039
040
R U32 0 4294967295 1 N/A Yes
Pulse Count 1 041
042
R U32 0 4294967295 1 N/A Yes
Pulse Count 2 043
044
R U32 0 4294967295 1 N/A Yes
Real Net Energy total 045
046
047
048
R I64 -9.233e+18 9.233e+18 0.00000001 Wh Yes
Real Net Energy Phase A 049
050
051
052
R I64 -9.233e+18 9.233e+18 0.00000001 Wh Yes
Real Net Energy Phase B 053
054
055
056
R I64 -9.233e+18 9.233e+18 0.00000001 Wh Yes
Description Reg. R/W Type Min Max Scale Units Store
Real Net Energy Phase C 057
058
059
060
R I64 -9.233e+18 9.233e+18 0.00000001 Wh Yes
Reactive Net Energy total 061
062
063
064
R I64 -9.233e+18 9.233e+18 0.00000001 VARh Yes
Reactive Net Energy Phase A 065
066
067
068
R I64 -9.233e+18 9.233e+18 0.00000001 VARh Yes
Reactive Net Energy Phase B 069
070
071
072
R I64 -9.233e+18 9.233e+18 0.00000001 VARh Yes
Reactive Net Energy Phase C 073
074
075
076
R I64 -9.233e+18 9.233e+18 0.00000001 VARh Yes
Apparent Net Energy total 077
078
079
080
R I64 -9.233e+18 9.233e+18 0.00000001 VAh Yes
Apparent Net Energy Phase A 081
082
083
084
R I64 -9.233e+18 9.233e+18 0.00000001 VAh Yes
Apparent Net Energy Phase B 085
086
087
088
R I64 -9.233e+18 9.233e+18 0.00000001 VAh Yes
Apparent Net Energy Phase C 089
090
091
092
R I64 -9.233e+18 9.233e+18 0.00000001 VAh Yes
Real Import Energy total 093
094
095
096
R U64 0 18.446e+18 0.00000001 Wh Yes
Real Import Energy Phase A 097
098
099
100
R U64 0 18.446e+18 0.00000001 Wh Yes
Real Import Energy Phase B 101
102
103
104
R U64 0 18.446e+18 0.00000001 Wh Yes
Real Import Energy Phase C 105
106
107
108
R U64 0 18.446e+18 0.00000001 Wh Yes
Description Reg. R/W Type Min Max Scale Units Store
Reactive Import Energy total 109
110
111
112
R U64 0 18.446e+18 0.00000001 VARh Yes
Reactive Import Energy Phase A 113
114
115
116
R U64 0 18.446e+18 0.00000001 VARh Yes
Reactive Import Energy Phase B 117
118
119
120
R U64 0 18.446e+18 0.00000001 VARh Yes
Reactive Import Energy Phase C 121
122
123
124
R U64 0 18.446e+18 0.00000001 VARh Yes
Apparent Import Energy total 125
126
127
128
 

R

 

U64

 

0

 

18.446e+18

 

0.00000001

 

VAh

 

Yes

Apparent Import Energy Phase A 129
130
131
132
R U64 0 18.446e+18 0.00000001 VAh Yes
Apparent Import Energy Phase B 133
134
135
136
R U64 0 18.446e+18 0.00000001 VAh Yes
Apparent Import Energy Phase C 137
138
139
140
R U64 0 18.446e+18 0.00000001 VAh Yes
Real Export Energy total 141
142
143
144
R U64 0 18.446e+18 0.00000001 Wh Yes
Real Export Energy Phase A 145
146
147
148
R U64 0 18.446e+18 0.00000001 Wh Yes
Real Export Energy Phase B 149
150
151
152
R U64 0 18.446e+18 0.00000001 Wh Yes
Real Export Energy Phase C 153
154
155
156
R U64 0 18.446e+18 0.00000001 Wh Yes
Reactive Export Energy total 157
158
159
160
R U64 0 18.446e+18 0.00000001 VARh Yes
Description Reg. R/W Type Min Max Scale Units Store
Reactive Export Energy Phase A 161
162
163
164
R U64 0 18.446e+18 0.00000001 VARh Yes
Reactive Export Energy Phase B 165
166
167
168
R U64 0 18.446e+18 0.00000001 VARh Yes
Reactive Export Energy Phase C 169
170
171
172
R U64 0 18.446e+18 0.00000001 VARh Yes
Apparent Export Energy total 173
174
175
176
R U64 0 18.446e+18 0.00000001 VAh Yes
Apparent Export Energy Phase A 177
178
179
180
R U64 0 18.446e+18 0.00000001 VAh Yes
Apparent Export Energy Phase B 181
182
183
184
R U64 0 18.446e+18 0.00000001 VAh Yes
Apparent Export Energy Phase C 185
186
187
188
R U64 0 18.446e+18 0.00000001 VAh Yes
Meter Time Since Boot 189
190
R U32 0 4294967295 1 Seconds No

Real-Time Clock Registers

Description Reg. R/W Type Min Max Scale Units Store
RTC – Set Year 4000 R/W U16 2022 2060 1 N/A No
RTC – Set Month 4001 R/W U8 1 12 1 N/A No
RTC – Set Day of Month 4002 R/W U8 1 31 1 N/A No
RTC – Set Day of Week 4003 R/W ENUM 0 6 1 N/A No
RTC – Set Hours 4004 R/W U8 0 23 1 Hrs No
RTC – Set Minutes 4005 R/W U8 0 59 1 Mins No
RTC – Set Seconds 4006 R/W U8 0 23 1 Secs No
RTC – Commit time 4007 R/W ENUM 0 1 1 N/A Yes
RTC – Current Year 4100 R U16 2022 2060 1 N/A Yes
RTC – Current Month 4101 R U8 1 12 1 N/A Yes
RTC – Current Day of Month 4102 R U8 1 31 1 N/A Yes
RTC – Current Day of Week 0 = Sunday
6 = Saturday
4103 R ENUM 0 6 1 N/A Yes
RTC – Current Hours 4104 R U8 0 0 1 Hrs Yes
RTC – Current Minutes 4105 R U8 0 0 1 Mins Yes
RTC – Current Seconds 4106 R U8 0 0 1 Secs Yes
RTC – Current AM/PM Flag, or 0 If in 24-hour mode, will return 0, if in 12-hour mode: 1 = AM, 2 = PM 4107 R ENUM 0 2 1 N/A Yes

Logging Registers

Log Source 1 through Log source 12 sets the source for the logging. Write the Modbus register 1-190 to the desired source to log that point. If a log source register has multiple registers all registers need to be set. For example, if Real Net Energy total is desired to be logged all four registers need to be set.
To trigger a log event register 5000 (Logging – Trigger Source) needs to be set to the desired trigger mode, by default it is set to be disabled. Logging can be triggered with the timer, set on Modbus point 5001 (Logging – Trigger Interval) in seconds from 15-3600. Triggering can be set over COMMS by writing a ‘1’ to point 5015 (Logging – Trigger log creation), or Pulse In 1 or 2 can be set to trigger a log whenever a pulse is detected.

Description Reg. R/W Type Min Max Scale Units Store
Logging – Trigger Source 0 = Disabled
1 = Timer
2 = Comms
3 = Pulse In 1
4 = Pulse in 2
5000 R/W ENUM 0 4 1 N/A Yes
Logging – Trigger Interval 5001 R/W U16 15 3600 1 Secs Yes
Logging – Mode Select 0  – “Continuous” – continue logging and overwrite old entries, sequentially
1  – “One Shot” – log until EEPROM is full, then stop logging and throw alarm
5002 R/W ENUM 0 1 1 N/A Yes
Logging – Log Source 1 5003 R/W U16 1 190 1 N/A Yes
Logging – Log Source 2 5004 R/W U16 1 190 1 N/A Yes
Logging – Log Source 3 5005 R/W U16 1 190 1 N/A Yes
Logging – Log Source 4 5006 R/W U16 1 190 1 N/A Yes
Logging – Log Source 5 5007 R/W U16 1 190 1 N/A Yes
Logging – Log Source 6 5008 R/W U16 1 190 1 N/A Yes
Logging – Log Source 7 5009 R/W U16 1 190 1 N/A Yes
Logging – Log Source 8 5010 R/W U16 1 190 1 N/A Yes
Logging – Log Source 9 5011 R/W U16 1 190 1 N/A Yes
Logging – Log Source 10 5012 R/W U16 1 190 1 N/A Yes
Logging – Log Source 11 5013 R/W U16 1 190 1 N/A Yes
Logging – Log Source 12 5014 R/W U16 1 190 1 N/A Yes
Logging – Trigger log creation 5015 R/W U16 0 1 1 N/A Yes
Logging – Read log at index 5016 R/W U16 0 4096 1 N/A Yes
Logging – Oldest Index 5100 R U16 0 4096 1 N/A Yes
Logging – Count of log entries 5101 R U16 0 4096 1 N/A Yes
Logging – Current Index 5102 R U16 0 4096 1 N/A Yes
Logging – Log data 1 5103 R U16 0 65535 1 N/A Yes
Logging – Log data 2 5104 R U16 0 65535 1 N/A Yes
Logging – Log data 3 5105 R U16 0 65535 1 N/A Yes
Logging – Log data 4 5106 R U16 0 65535 1 N/A Yes
Logging – Log data 5 5107 R U16 0 65535 1 N/A Yes
Logging – Log data 6 5108 R U16 0 65535 1 N/A Yes
Logging – Log data 7 5109 R U16 0 65535 1 N/A Yes
Logging – Log data 8 5110 R U16 0 65535 1 N/A Yes
Logging – Log data 9 5111 R U16 0 65535 1 N/A Yes
Logging – Log data 10 5112 R U16 0 65535 1 N/A Yes
Logging – Log data 11 5113 R U16 0 65535 1 N/A Yes
Logging – Log data 12 5114 R U16 0 65535 1 N/A Yes
Logging – Log time stamp year 5115 R U16 0 256 1 N/A Yes
Logging – Log time stamp month 5116 R U16 0 12 1 N/A Yes
Logging – Log time stamp day of month 5117 R U16 0 31 1 N/A Yes
Logging – Log time stamp hours 5118 R U16 0 23 1 N/A Yes
Logging – Log time stamp minutes 5119 R U16 0 59 1 N/A Yes
Logging – Log time stamp seconds 5120 R U16 0 59 1 N/A Yes
Logging – CRC 5121 R U16 0 65535 1 N/A Yes

Modbus Functions
The EMX supports the following functions of the Modbus Application Protocol Specification, v1.1b3. Examples are intended to be representative; refer to the full specification for questions or clarification.

Notes:

  • The device address defaults to 247 (0xF7).
  • Refer to the Modbus standard for CRC/LRC calculation procedures.

Data Types
Natively, Modbus holding register functions only support the UINT16 type (2 bytes). The meter constructs additional types from two or more consecutive registers. Client interface software must support the same construction for proper communication:

# of Registers Range (hexadecimal)
BOOL 1 0 to 1
ENUM 1 0 to specified upper limit
UINT8 1 0 to 255 (0x00FF), unless otherwise noted
UINT16 1 0 to 65535 (0xFFFF), unless otherwise noted
INT16 1 -32768 to -32767 (0xFFFF), unless otherwise noted
UINT32 2 0 to 4294967295 (0xFFFFFFFF), unless otherwise noted
UINT64 4 0 to 18.446e+18 (0xFFFFFFFFFFFFFFFF), unless otherwise noted
INT64 4 -9.233e+18 to 9.233e+18 (0xFFFFFFFFFFFFFFFF), unless otherwise noted

UINT32, UINT64, and INT64 data always occupies two or four registers (4 and 8 bytes) in network byte order (MSB first). Read and write operations should address both registers.
The following examples show UINT32 encodings in a Modbus PDU beginning at byte [n], register [r]:

Value Decimal [n] [n+1] [n+2] [n+3]
0xAABBCCDD 2864434397 0xAA 0xBB 0xCC 0xDD
0x01234567 19088743 0x12 0x34 0x56 0x78
0x00010000 65536 0x00 0x01 0x00 0x00
REGISTER [r] [r+1]

0x03 Read Holding Registers
Returns one or more registers in a contiguous block:

Request Size Notes
[0] Device Address 1 Always 0x03
? = 0 to 65535 (0xFFFF)
? = 1 to 125 registers
[1] Function Code 1
[2] Starting Address 2
[3] Register Count 2
[4] CRC 2

Successful reads return the contents of the requested registers:

Response Size Notes
[0] Device Address 1 Always 0x03 2 * ?
[1] Function Code 1
[2] Byte Count 1
[3] Register Data 2 * ?
[4] CRC 2

Example 1: Read the line frequency of ΦA (020).

SENVA EMX-IP User Interface and Modbus - Symbol 1

0x04 Read Input Register
Reads one or more read only registers in a contiguous block:

Request Size Notes
[0] Device Address 1 Always 0x04
? = 0 to 65535 (0xFFFF)
? = 1 to 125 registers
[1] Function Code 1
[2] Starting Address 2
[3] Register Count 2
[4] CRC 2

Successful reads return the contents of the requested registers:

Response Size Notes
[0] Device Address 1 Always 0x04 2 * ?
[1] Function Code 1
[2] Byte Count 1
[3] Register Data 2 * ?
[4] CRC 2

Example 1: Read the line frequency of ΦA (020).

SENVA EMX-IP User Interface and Modbus - Symbol 2

0x06 Write Single Register
Writes a value to a single register:

Request Size Notes
[0] Device Address 1 Always 0x06
? = 0 to 65535 (0xFFFF)
? = 0 to 65535 (0xFFFF)
[1] Function Code 1
[2] Register Address 2
[3] Register Value 2
[4] CRC 2

Successful writes echo the original request:

Response Size
[0] Device Address 1 Always 0x06
?
?
[1] Function Code 1
[2] Register Address 2
[3] Register Value 2
[4] CRC 2

Example 1: Change the phase configuration (2000).

SENVA EMX-IP User Interface and Modbus - Symbol 3

0x10 Write Multiple Registers
Writes one or more registers in a contiguous block:

Request Size Notes
[0] Device Address 1 Always 0x10
? = 0 to 65535 (0xFFFF)
? = 1 to 123 registers
Always 2 * ?
?
[1] Function Code 1
[2] Starting Address 2
[3] Write Count 2
[4] Byte Count 1
[5] Write Registers 2 * ?
[6] CRC 2

Successful writes echo the Starting Address and Write Count:

Request Size Notes
[0] Device Address 1 Always 0x10
?
?
[1] Function Code 1
[2] Starting Address 2
[3] Write Count 2
[4] CRC 2

Example 1: Change phase configuration (2000) and CT type (2001) in one write:

SENVA EMX-IP User Interface and Modbus - Symbol 4

MODBUS Exception Codes
When the Modbus interface encounters an error, it will return an exception code. The most common errors are described in the table below. Additional information about exception codes may be found in the reference document.
Reference: https://modbus.org/docs/Modbus_Application_Protocol_V1_1b.pdf

MODBUS Exception Codes
Code Name Meaning
01 ILLEGAL FUNCTION The function code received in the query is not an allowable action for the server (or slave). This may be because the function code is only applicable to newer devices and was not implemented in the unit selected. It could also indicate that the server (or slave) is in the wrong state to process a request of this type, for example because it is unconfigured and is being asked to return register values.
02 ILLEGAL DATA ADDRESS The data address received in the query is not an allowable address for the server (or slave). More specifically, the combination of reference number and transfer length is invalid. For a controller with 100 registers, the PDU addresses the first register as 0, and the last one as 99. If a request is submitted with a starting register address of 96 and a quantity of registers of 4, then this request will successfully operate (address-wise at least) on registers 96, 97, 98, 99. If a request is submitted with a starting register address of 96 and a quantity of registers of 5, then this request will fail with Exception Code 0x02 “Illegal Data Address” since it attempts to operate on registers 96, 97, 98, 99 and 100, and there is no register with address 100.
03 ILLEGAL DATA VALUE A value contained in the query data field is not an allowable value for server (or slave). This indicates a fault in the structure of the remainder of a complex request, such as that the implied length is incorrect. It specifically does NOT mean that a data item submitted for storage in a register has a value outside the expectation of the application program, since the MODBUS protocol is unaware of the significance of any particular value of any particular register.

Data Type Conversions
The following sections provide information on how to convert from the standard U16 registers that Modbus provides into other formats. Some controllers or Modbus interfaces provide these conversions, in which case the user should utilize those methods, instead of the following conversions.

U16 to I16 Conversion
Conversion from a signed requires checking if the value is value returned (VALUE) is greater than the maximum for a 16-bit integer (32767), if the value is greater than the value 65536 must be subtracted off to calculate a negative value.
If VALUE > 32767
Then: VALUE = VALUE – 65536
Otherwise: VALUE = VALUE (do nothing)

Example:
Reading register 005 (Real power total) the device responds with 64536. This value is greater than 32767, which means it must be adjusted. By subtracting 65536 we get 64536 – 65536 = -1000, which is the correct value for the real power. Please note that in practice a scale value will need to be determined and applied to this output to get the value into watts or whatever units are applicable.

U16 to U32 Conversion
Conversion from two unsigned 16-bit registers into a 32-bit value can be done by reading the two necessary registers and multiplying the first (lower register address) register by 32678 and adding the second register.
VALUE = (REGISTER_LOW * 65536) + REGISTER_HIGH
Example:
Reading registers 035 and 036 which together are the system power on time. Register 035 has a value (REGISTER_LOW) of 6, register 036 (REGISTER_HIGH) has a value of 38784. Using the calculation we get (6 * 65536) + 38784 = 432000. This corresponds to the time in seconds that the device has been powered on. 5 Days = 5 * 24 * 60 * 60 = 432000 seconds.

U16 to U64 Conversion
Conversion from 4 unsigned 16-bit registers to a 64-bit register is necessary for using the energy accumulators on the EMX. This is done to maintain system accuracy over long operating durations, and to avoid conditions where the energies appear to cease updating. This follows a similar pattern as the U32 conversion. All four registers must be read, preferably simultaneously with a multi-register read operation. The lowest address register is REG_1, the highest is REG_4.
VALUE = REG_1 * 2^48 + REG_2 * 2^32 + REG_3 * 2^16 + REG_4 Or without the power notation
VALUE = REG_1 * 281,474,976,710,656 + REG_2 * 4,294,967,296 + REG_3 * 65536 + REG_4

Example:
Reading registers 093/094/095/096 which corresponds to the Real Import Energy Total (how much energy has been consumed by downstream devices). Register 093 (REG_1) reads 0, register 094 (REG_2) reads 13, register 095 (REG_3) reads 63559 and register 096 (REG_4) reads 22528.
The calculation is 0 * 281,474,976,710,656 + 13 * 4,294,967,296 + 63559 * 65536 + 22528 = 60000000000 when scaled down by the scale of 0.00000001 given in the table it’s 600.0 which is the number of Watt Hours of energy that the device has metered at that point.

U16 to I64 Conversion
All the net energy registers are signed values. A negative sign indicates that net power has been exported, a positive sign indicates that net power has been imported (consumed). To convert from four U16 registers to an I64 register first perform a conversion as described above. Next perform the following step:
If VALUE > (2^63)- 1
Then VALUE = VALUE – 2^64
Otherwise VALUE = VALUE (do nothing).

Appendix D: Hex and ASCII Conversions

HEX  DEC ASCII 0x41 65 A 0x83 131 ƒ 0xC5 197 Å
0x00 0 NULL 0x42 66 B 0x84 132 0xC6 198 Æ
0x01 1 0x43 67 C 0x85 133 0xC7 199 Ç
0x02 2 0x44 68 D 0x86 134 0xC8 200 È
0x03 3 0x45 69 E 0x87 135 0xC9 201 É
0x04 4 0x46 70 F 0x88 136 ˆ 0xCA 202 Ê
0x05 5 0x47 71 G 0x89 137 0xCB 203 Ë
0x06 6 0x48 72 H 0x8A 138 Š 0xCC 204 Ì
0x07 7 0x49 73 I 0x8B 139 0xCD 205 Í
0x08 8 0x4A 74 J 0x8C 140 Œ 0xCE 206 Î
0x09 9 0x4B 75 K 0x8D 141 0xCF 207 Ï
0x0A 10 0x4C 76 L 0x8E 142 Ž 0xD0 208 Ð
0x0B 11 0x4D 77 M 0x8F 143 0xD1 209 Ñ
0x0C 12 0x4E 78 N 0x90 144 0xD2 210 Ò
0x0D 13 0x4F 79 O 0x91 145 0xD3 211 Ó
0x0E 14 0x50 80 P 0x92 146 0xD4 212 Ô
0x0F 15 0x51 81 Q 0x93 147 0xD5 213 Õ
0x10 16 0x52 82 R 0x94 148 0xD6 214 Ö
0x11 17 0x53 83 S 0x95 149 0xD7 215 ×
0x12 18 0x54 84 T 0x96 150 0xD8 216 Ø
0x13 19 0x55 85 U 0x97 151 0xD9 217 Ù
0x14 20 0x56 86 V 0x98 152 ˜ 0xDA 218 Ú
0x15 21 0x57 87 W 0x99 153 0xDB 219 Û
0x16 22 0x58 88 X 0x9A 154 š 0xDC 220 Ü
0x17 23 0x59 89 Y 0x9B 155 0xDD 221 Ý
0x18 24 0x5A 90 Z 0x9C 156 œ 0xDE 222 Þ
0x19 25 0x5B 91 [ 0x9D 157   0xDF 223 ß
0x1A 26 0x5C 92 \ 0x9E 158 ž 0xE0 224 à
0x1B 27 0x5D 93 ] 0x9F 159 Ÿ 0xE1 225 á
0x1C 28 0x5E 94 ^ 0xA0 160 0xE2 226 â
0x1D 29 0x5F 95 _ 0xA1 161 ¡ 0xE3 227 ã
0x1E 30 0x60 96 ` 0xA2 162 ¢ 0xE4 228 ä
0x1F 31 0x61 97 a 0xA3 163 £ 0xE5 229 å
0x20 32 0x62 98 b 0xA4 164 ¤ 0xE6 230 æ
0x21 33 ! 0x63 99 c 0xA5 165 ¥ 0xE7 231 ç
0x22 34 0x64 100 d 0xA6 166 ¦ 0xE8 232 è
0x23 35 # 0x65 101 e 0xA7 167 § 0xE9 233 é
0x24 36 $ 0x66 102 f 0xA8 168 ¨ 0xEA 234 ê
0x25 37 % 0x67 103 g 0xA9 169 © 0xEB 235 ë
0x26 38 & 0x68 104 h 0xAA 170 ª 0xEC 236 ì
0x27 39 0x69 105 i 0xAB 171 « 0xED 237 í
0x28 40 ( 0x6A 106 j 0xAC 172 ¬ 0xEE 238 î
0x29 41 ) 0x6B 107 k 0xAD 173 0xEF 239 ï
0x2A 42 * 0x6C 108 l 0xAE 174 ® 0xF0 240 ð
0x2B 43 + 0x6D 109 m 0xAF 175 ¯ 0xF1 241 ñ
0x2C 44 , 0x6E 110 n 0xB0 176 ° 0xF2 242 ò
0x2D 45 0x6F 111 o 0xB1 177 ± 0xF3 243 ó
0x2E 46 . 0x70 112 p 0xB2 178 ² 0xF4 244 ô
0x2F 47 / 0x71 113 q 0xB3 179 ³ 0xF5 245 õ
0x30 48 0 0x72 114 r 0xB4 180 ´ 0xF6 246 ö
0x31 49 1 0x73 115 s 0xB5 181 µ 0xF7 247 ÷
0x32 50 2 0x74 116 t 0xB6 182 0xF8 248 ø
0x33 51 3 0x75 117 u 0xB7 183 · 0xF9 249 ù
0x34 52 4 0x76 118 v 0xB8 184 ¸ 0xFA 250 ú
0x35 53 5 0x77 119 w 0xB9 185 ¹ 0xFB 251 û
0x36 54 6 0x78 120 x 0xBA 186 º 0xFC 252 ü
0x37 55 7 0x79 121 y 0xBB 187 » 0xFD 253 ý
0x38 56 8 0x7A 122 z 0xBC 188 ¼ 0xFE 254 þ
0x39 57 9 0x7B 123 { 0xBD 189 ½ 0xFF 255 ÿ
0x3A 58 : 0x7C 124 | 0xBE 190 ¾
0x3B 59 ; 0x7D 125 } 0xBF 191 ¿
0x3C 60 < 0x7E 126 ~ HEX  DEC LATIN-1
0x3D 61 = 0x7F 127 0xC0 192  À
0x3E 62 >   HEX  DEC LATIN-1 0xC1 193 Á
0x3F 63 ? 0x80 128 0xC2 194 Â
HEX DEC ASCII 0x81 129 0xC3 195 Ã
0x40 64 @ 0x82 ‚130 0xC4 196 Ä

EMX-IP Modbus Protocol Guide
Page 22 of 23
154-0050-0A

Documents / Resources

SENVA EMX-IP User Interface and Modbus [pdf] User Manual
154-0050-0A, EMX-IP User Interface and Modbus, EMX-IP, User Interface and Modbus, Modbus

References

Leave a comment

Your email address will not be published. Required fields are marked *