# Modbus Registers Tables

# Modbus Connection

User can connect a computer using the Ethernet port S4.3 available on the front of the electronic module.

Modbus Connection

The default settings are:

  • IP address: 192.168.1.222
  • Modbus port: 502
  • Slave: 1

The Modbus protocol is explained in various documents.

Please check http://www.modbus.org/docs/Modbus_Application_Protocol_V1_1b.pdf for a complete description of the protocol.

# Standard Modbus Type Definition

Primary tables Object Type Type of
Discrete Input Single bit Read Only
Coils Single bit Read – Write
Input Registers 16 bit word Read Only
Holding Registers 16 bit word Read - Write

# Data Bits/Registers Dimension

Data Type Size in Bits Registers Used
Short 16 bits 1 register
Unsigned 32 bits 2 registers
Float 32 bits 2 registers

# Modbus Coils

Section Coil Number Name Description
Coil 32 EL_ON Start Electrolyzer
Coil 33 EL_OFF Stop Electrolyzer
Coil 34 EL_RESET Microcontroller Software Reset

# Monitoring Section

This is the table with the Monitoring Section of our Modbus. The user usually use this read only registers to read and acquire the data from the electrolyzer.

Variable Unit Function MB Register Type Size Conversion LSB Notes
Actual State INPUT 128 unsigned 16bit 1 Actual state of the electrolyzer
Power 24V V INPUT 129 float 32bit 2.33e-08 Power supply of the electronic board (24V)
Power 5V V INPUT 131 float 32bit 2.33e-08 5V power supply created on the electronic board
System Error Code INPUT 133 short 16bit 1 Electrolyzer error code
System Alarm Code INPUT 134 short 16bit 1 Electrolyzer alarm code
Temp. DR 0 °C INPUT 135 float 32bit 2.33e-03 Temperature on the heater in the Dryer branch 0
Temp. DR 1 °C INPUT 137 float 32bit 2.33e-03 Temperature on the heater in the Dryer branch 1
H2 Flow L/h INPUT 139 float 32bit 0.00233 Hydrogen flow rate
Stack Time sec INPUT 141 unsigned 32bit*4 1 Production lifetime of each stack
Num. Prod. Cycles INPUT 149 unsigned 32bit*4 1 Number of production cycles of each stack
Water Temp. Mod A °C INPUT 153 float 32bit 2.33e-07 Temperature of the water in the process tank of the Module A
Water Temp. Mod B °C INPUT 155 float 32bit 2.33e-07 Temperature of the water in the process tank of the Module B
EL Board Temp. °C INPUT 157 float 32bit 2.33e-07 Temperature sensor on the electronic board
Pressure Sensor 0 bar INPUT 159 float 32bit 2.33e-07 Pressure sensor on the stack of the Module A
Pressure Sensor 1 bar INPUT 161 float 32bit 2.33e-07 Pressure sensor on the stack of the Module B
Pressure Sensor 2 bar INPUT 163 float 32bit 2.33e-07 Pressure sensor at the output of the Module A
Pressure Sensor 3 bar INPUT 165 float 32bit 2.33e-07 Pressure sensor at the output of the Module B
Fan Speed 0 rpm INPUT 167 float 32bit 2.33e-06 Fan Speed Module A
Fan Speed 1 rpm INPUT 169 float 32bit 2.33e-06 Fan Speed Module B
Fan Speed 2 rpm INPUT 171 float 32bit 2.33e-06 Fan Speed Module A
Fan Speed 3 rpm INPUT 173 float 32bit 2.33e-06 Fan Speed Module B
Fan Speed 4 rpm INPUT 175 float 32bit 2.33e-06 Fan Speed Electronic Module
Ext. CMD Signal V INPUT 177 float 32bit 2.33e-06 External Command Signal value (0-10V)
Block 1 Mod A Volt V INPUT 179 float 32bit 2.33e-07 Voltage of the block 1 of the stack in the Module A
Block 2 Mod A Volt V INPUT 181 float 32bit 2.33e-07 Voltage of the block 2 of the stack in the Module A
Block 1 Mod B Volt V INPUT 183 float 32bit 2.33e-07 Voltage of the block 1 of the stack in the Module B
Block 2 Mod B Volt V INPUT 185 float 32bit 2.33e-07 Voltage of the block 2 of the stack in the Module B
Block 1 Mod A Curr. A INPUT 187 float 32bit 2.33e-07 Current of the block 1 of the stack in the Module A
Block 2 Mod A Curr. A INPUT 189 float 32bit 2.33e-07 Current of the block 2 of the stack in the Module A
Block 1 Mod B Curr. A INPUT 191 float 32bit 2.33e-07 Current of the block 1 of the stack in the Module B
Block 2 Mod B Curr. A INPUT 193 float 32bit 2.33e-07 Current of the block 2 of the stack in the Module B
Total H2 l INPUT 195 float 32bit 0.233 Total hydrogen produced
Block Num. INPUT 197 short 16bit 1 Number of blocks installed
--- INPUT 198 unsigned 32bit 1 --- Not used ---
Dig Out A INPUT 200 short 16bit 1 Status of the digital outputs module A
Dig Out B INPUT 201 short 16bit 1 Status of the digital outputs module B
Dig Out Sgn INPUT 202 short 16bit 1 Digital outputs that enable the stacks power supply
Dig Out Dry Res INPUT 203 short 16bit 1 Status of the digital outputs dry contact
Dig Out Dryer INPUT 204 short 16bit 1 Status of the digital outputs of the Dryer
Dig Out Ext INPUT 205 short 16bit 1 Digital outputs for external devices (e.g. WPM)
Dig Input A INPUT 206 short 16bit 1 Status of the digital inputs on the module A + others
Dig Input B INPUT 207 short 16bit 1 Status of the digital inputs on the module B + others
Pressure Out bar INPUT 208 float 32bit 2.33e-07 Pressure value showed on the display for the outlet
Pressure Dryer bar INPUT 210 float 32bit 2.33e-07 Dryer pressure sensor
Active Blocks INPUT 212 short 16bit 1 Number of active blocks
Analog WPM V INPUT 213 float 32bit 2.33e-06 Voltage of the analog input of the WPM on the CMB2 pin
H2 Sensor ppm INPUT 215 float 32bit 2.33e-03 Reading of the hydrogen sensor
Power Cons. A W INPUT 217 short 16bit 1 Stack power consumption in Module A
Power Cons. B W INPUT 218 short 16bit 1 Stack power consumption in Module B
Dryer State INPUT 219 short 16bit 1 Actual State of the Dryer
Dryer Timer sec INPUT 220 short 16bit 1 Time remaining to change the dryer status
Dryer Error INPUT 221 short 16bit 1 Dryer error code
EL Info Activities INPUT 222 short 16bit 1 Information about the activities of some function of the EL (e.g. Heating, Refilling)

# Anti-Frost Routine Settings

Variable Unit Function MB Register Type Size LSB Default Notes
EN_FORCED_HEAT HOLDING 131 short 16bit 1 1 Enable the “Forced Heating” procedure (1=Enable, 0=disable)
Forced Heating Th °C HOLDING 287 short 16biе 1 8 Threshold to start the automatic heating of the process tank

# Network Configuration Section

Variable Unit Function MB Register Type Size LSB Default Notes
IP ADDR0 HOLDING 769 short 16bit 1 192 IP address 0
IP ADDR1 HOLDING 770 short 16bit 1 168 IP address 1
IP ADDR2 HOLDING 771 short 16bit 1 1 IP address 2
IP ADDR3 HOLDING 772 short 16bit 1 222 IP address 3

# External Data Section

Variable Unit Function MB Register Type Size LSB Default Notes
MOD A ERR INPUT 256 unsigned 32bit 1 0 Module A Error Code
MOD B ERR INPUT 258 unsigned 32bit 1 0 Module B Error Code
MOD C ERR INPUT 260 unsigned 32bit 1 0 Module C Error Code
MOD D ERR INPUT 262 unsigned 32bit 1 0 Module D Error Code
MOD A ALARM INPUT 264 unsigned 32bit 1 0 Module A Alarm Code
MOD B ALARM INPUT 266 unsigned 32bit 1 0 Module B Alarm Code
MOD C ALARM INPUT 268 unsigned 32bit 1 0 Module C Alarm Code
MOD D ALARM INPUT 270 unsigned 32bit 1 0 Module D Alarm Code
MB Ready HOLDING 811 short 16bit 1 1 Check bit for Modbus communication
MB CMD SGN HOLDING 812 short 16bit 1 100 Modbus signal for the reduction of the prod. rate

# States and Sub-states Map of the EL Register 128 (LSB = sub-state, MSB = state)

HEX State HEX Sub State State Substate
0x10 0x10 Power On
0x11 0x10 Stand By Wait start command
0x11 Wait Power Condition
0x12 Restart with max pressure
0x13 Delay for DC-DC
0x14 Hydration
0x12 0x10 Ramp Up
0x13 0x10 Steady
0x14 0x10 Ramp Down Ramp Down phase 1
0x11 Ramp Down phase 2
0x20 0x10 Purge Ramp Down
0x11 Purge
0x16 0x10 Heating Standard pre-Heating procedure
0x01 0x10 Error Status Next substatus selection
0x11 Error
0x12 Alarm Low Water
0x13 Alarm High Temperature

# EL Info Activities (register 222)

EL INFO ACTIVITIES (Monitoring reg. 222) Bit Number
- B15
- B14
- B13
- B12
Error MOD B B11
Alarm MOD B B10
Heating MOD B B9
Refilling MOD B B8
- B7
- B6
- B5
- B4
Error MOD A B3
Alarm MOD A B2
Heating MAD A B1
Refilling MOD A B0

# System Error Word (register 133)

Addr. Error Bit Number
133 Water Purifier B15
Leak Dryer B14
Dryer B13
Temperature Sensor B12
Press. Sensor B11
Water Leak B10
Refill B9
H2 Leak B8
Leak Stack B7
B6
Stack Voltage B5
Stack Current B4
Water level sensor B3
Press. Switch B2
Fan B1
Flow Switch B0

# System Alarm Word (register 134)

Addr. Error Bit Number
134 - B15
- B14
- B13
- B12
- B11
- B10
- B9
- B8
- B7
- B6
No Modbus B5
Low Battery B4
- B3
Low Temp B2
Low Water B1
High Temperature B0

# Module Error Word (registers from 256 to 262)

Addr. Error Bit Number
256/262 B15
B14
B13
Temp. Sensor B12
Press. Sensor B11
B10
Refill B9
B8
Leak Stack B7
B6
Stack Voltage B5
Stack Current B4
Water level sensor B3
Press. Switch B2
Fan B1
Flow Switch B0

# Module Alarm Word (register from 264 to 270)

Addr. Error Bit Number
264/270 B15
B14
B13
B12
B11
B10
B9
B8
B7
B6
B5
B4
B3
Low Temp. B2
Low Water B1
High Temp. B0

# Digital Input A (input register 206)

Addr. Error Bit Number
206 Dryer Pr. Switch 1 B7
Dryer Pr. Switch 0 B6
WPM Low Lvl B5
Pressure Switch A B4
High Lvl A B3
Medium Lvl A B2
Low Lvl A B1
Flow Switch A B0

# Digital Input B (input register 207)

Addr. Error Bit Number
207 --- B7
WPM High Lvl B6
--- B5
Pressure Switch B B4
High Lvl B B3
Medium Lvl B B2
Low Lvl B B1
Flow Switch B B0

# Digital Output A (input register 200)

Addr. Error Bit Number
200 --- B7
--- B6
--- B5
Refilling Pump A B4
SV Purge A B3
Heater A B2
Pump A B1
Fan A B0

# Digital Output B (input register 201)

Addr. Error Bit Number
201 --- B7
--- B6
--- B5
Refilling Pump B B4
SV Purge B B3
Heater B B2
Pump B B1
Fan B B0

# States and Sub-states Map of the Dryer Status Register 219 (LSB = sub-state, MSB = state)

HEX State HEX Sub State State Substate
0x11 0x10 Dryer Stand By Init Dryer
0x11 Wait Start Command
0x12 0x10 Dryer Block 0 Sub-Status 0 (10800 sec.)
0x11 Sub-Status 1 (4020 sec.)
0x12 Sub-Status 2 (10260 sec.) (*)
0x13 Sub-Status 3 (60 sec)
0x14 Sub-Status 4 (60 sec.)
0x13 0x10 Dryer Block 1 Sub-Status 0 (10800 sec.)
0x11 Sub-Status 1 (4020 sec.)
0x12 Sub-Status 2 (10260 sec.) (*)
0x13 Sub-Status 3 (60 sec)
0x14 Sub-Status 4 (60 sec.)

# Dryer Error Word (register 221)

Addr. Error Bit Number
221 B15
B14
B13
B12
B11
B10
B9
B8
B7
Dryer Fan B6
Pressure Switch 1 B5
Pressure Switch 0 B4
Heater 1 B3
Heater 0 B2
Temp. Sensor 1 B1
Temp. Sensor 0 B0

# Digital Output Dryer (input register 204)

Addr. Error Bit Number
204 Heater H1 B7
Heater H0 B6
Fan Dryer B5
SV Purge DR B4
SV 103 B3
SV 102 B2
SV 101 B1
SV 100 B0

# Application Data Unit (ADU)

Modbus ADU

# Example Modbus TCP

Read Input Registers (FC=0x04)

#157-158 (Electronic board temperature sensor)

TX: 00 15 00 00 00 06 01 04 00 9D 00 02

RX: 00 15 00 00 00 07 01 04 04 0B 22 06 2D

Request:

This command is requesting the content of two input registers starting from the register # 157.

00 15 00 00 00 06 01 04 00 9D 00 02

00 15: Transaction ID

00 00: Protocol ID

00 06: Length Field

01: Unit ID

04: Function Code (Read Input Register)

00 9D: Start register to read

00 02: Number of registers to read

Response:

00 15: Transaction ID

00 00: Protocol ID

00 07: Length Field

01: Unit ID

04: Function Code (Read Input Register)

04: Number of data bytes

0B 22: Data from register #157

06 2D: Data from register #158

06 2D 0B 22HEX TO DECIMAL103615266

103615266 x LSB (=2.33e-07) = 24.142357

All the Float and the Unsigned registers are on 32 bits, and they occupy two registers that must be interpreted as shown. (In case of Unsigned values, the LSB is always “1”).

The Short registers are on 16 bits (1 register), so we can read them in a straight way.