All devices

Enapter · Electrolyser

Electrolyser EL 2.1 Modbus register map

Default configuration

Protocol
Modbus TCP
Port
502
Unit ID
1
Addressing
0-based
Byte order
Big endian
Word order
High word first

Register map

AddressCountNameTypeUnitScaleAccess
02
Device model
0x454C3231 for the EL 2.1.
UInt32-1R
21
Firmware major and minor version
e.g. 267 means major 267 // 256 = 1 and minor 267 % 256 = 11, i.e. 1.11.
UInt16-1R
31
Firmware patch version
UInt16-1R
42
Firmware build number
UInt32-1R
181
System state
0 = internal error / system not initialised, 1 = system in operation, 2 = error, 3 = fatal error, 4 = system in expert mode.
UInt16-1R
202
Live time
Total time the system has been powered up, not only the time the stack was working.
UInt32s1R
222
Uptime
How long the system has been running.
UInt32s1R
262
Free memory
Memory that can be used.
UInt32-1R
282
Available memory
Memory that has not been allocated yet.
UInt32-1R
302
Free space on flash card
Space on the flash card that holds the configuration.
UInt32-1R
10002
Product code
Enumeration of the ELE21 product variants (e.g. 0x00 = ELE210535A2AXV01_03).
UInt32-1R
10022
Stack start/stop cycles
How many start/stop cycles the stack has run.
UInt32-1R
10042
Stack total runtime
UInt32s1R
10062
Stack total hydrogen production
Float32NL1R
10082
Hydrogen flow rate
NaN when the electrolyser is not producing hydrogen.
Float32NL/h1R
12001
Electrolyser state
0 = halted, 1 = maintenance mode, 2 = idle, 3 = steady, 4 = stand-by (max pressure), 5 = curve, 6 = blowdown.
UInt16-1R
40001
Configuration progress
1 = a configuration is in progress.
UInt16-1R
40011
Configuration source
1 = configuration over Modbus.
UInt16-1R
40022
Last configuration result
0 = OK, 1 = permanent failure, 2 = no entry / interrupted, 5 = I/O data save error, 11 = try again, 13 = access denied (a changed register is read-only), 16 = busy, 22 = invalid data.
Int32-1R
40041
Last configuration wrong holding register
First invalid holding register number that prevented a successful configuration commit.
UInt16-1R
46001
Heartbeat
Modbus heartbeat timeout in seconds; 0 = disabled (default).
UInt16s1R
60001
Dryer error flags
16-bit bitmask; bit i is the i-th entry of the document's dryer error/warning list (e.g. bit 0 = TT00 invalid, bit 9 = pressure switch PS01 triggered, bit 13 = PT00 invalid).
UInt16-1R
60011
Dryer warning flags
Same bitmask as register 6000.
UInt16-1R
60022
Dryer TT00 temperature
Heater element temperature, cartridge 0 (first line).
Float32°C1R
60042
Dryer TT01 temperature
Heater element temperature, cartridge 1 (second line).
Float32°C1R
60062
Dryer TT02 temperature
Heater element temperature, cartridge 2 (first line).
Float32°C1R
60082
Dryer TT03 temperature
Heater element temperature, cartridge 3 (second line).
Float32°C1R
60102
Dryer PT00 input pressure
Float32bar1R
60122
Dryer PT01 output pressure
Float32bar1R
61041
Dryer control network connection status
1 = online, 0 = offline.
UInt16-1R
70001
High electrolyte level switch LSH102B
1 = electrolyte level above the sensor, 0 = below.
UInt16-1R
70011
Very high electrolyte level switch LSHH102A
1 = electrolyte level above the sensor, 0 = below.
UInt16-1R
70021
Low electrolyte level switch LSL102D
1 = electrolyte level above the sensor, 0 = below.
UInt16-1R
70031
Medium electrolyte level switch LSM102C
1 = electrolyte level above the sensor, 0 = below.
UInt16-1R
70041
Electrolyte tank high pressure switch PSH102
1 = pressure too high, 0 = normal.
UInt16-1R
70051
Very high hydrogen pressure switch PSHH101B
1 = pressure too high, 0 = normal.
UInt16-1R
70061
Downstream high temperature switch TSH106
1 = temperature too high, 0 = normal.
UInt16-1R
70071
Electronic compartment high temperature switch TSH108
1 = temperature too high, 0 = normal.
UInt16-1R
70081
Very low electrolyte temperature switch TSLL102B
1 = temperature too low, 0 = normal.
UInt16-1R
70091
Chassis water presence switch WPS104
1 = water present on the input, 0 = no water input.
UInt16-1R
70101
Dry contact
1 = OK (closed), 0 = not OK (open).
UInt16-1R
75002
Electrolyte cooler fan speed F103A
Float32rpm1R
75022
Air circulation fan speed F104B
Float32rpm1R
75042
Electronic compartment cooling fan speed F108C
Float32rpm1R
75062
Electrolyte flow FM106
Float32L/min1R
75082
Stack current HASS
Float32A1R
75102
Stack voltage (PSU)
Float32V1R
75122
Inner hydrogen pressure PT101A
Float32bar1R
75142
Outer hydrogen pressure PT101C
Float32bar1R
75162
Water inlet pressure PT105
Float32bar1R
75182
Electrolyte temperature TT102A
Float32°C1R
75202
Downstream temperature TT106
Float32°C1R
80002
Inner hydrogen pressure PT101A, raw sensor value
Raw sensor voltage, not a pressure.
Float32V1R
80022
Outer hydrogen pressure PT101C, raw sensor value
Raw sensor voltage, not a pressure.
Float32V1R
80042
Stack current HASS, raw sensor value
Raw sensor voltage, not a current.
Float32V1R

Read this device live with Modbus Connect, free for Windows, macOS and Linux

Related guides

Notes

Register map of the Enapter Electrolyser EL 2.1 as published for firmware 1.9.3; Enapter versions this document per firmware release, so check the handbook for the firmware the unit runs. The vendor states port 502 and Modbus slave address 1 ('Enapter Electrolyser always addressed as a slave'), and all of its worked examples use unit ID 01. The addresses are the document's own register numbers, which it explicitly defines as protocol addresses: 'Holding register 0 in this document would be referred to as 40001 and would be addressed as register 0000 in the data address field', so they are used unchanged as zero-based wire addresses. Data is big-endian, high word first. Boolean fields are 16-bit registers where 0 is false and any other value is true. Configuration registers are written in a transaction: open with 4000, write the settings, commit with 4001. Left out because the format has no 64-bit or 128-bit type: holding 0 (Unix time, uint64) and 4026 (chassis serial, uint64), input 6 (control board serial, uint128), 14 (chassis serial, uint64), 1010 (stack serial, uint64) and the two Wi-Fi MAC address words at 6100 and 6102; also left out are the warning and error event arrays at input 768 and 832 (32 registers each, whose first register holds the count) and the setting block 4916-4928, whose unit column drifts by one row in the published table (a 'period' printed in bar). Source: Enapter Handbook, 'EL 2.1 FW 1.9.3 Modbus TCP Communication Interface'.

Related devices