Novus DigiRail-2A Modbus register map
Two-channel universal analog input module (thermocouple, Pt100, mV, V, mA) with Modbus RTU over RS485: channel values, status flags, input configuration, indication limits and tags
- Official
- 43 registers
- Modbus RTU
- Revision 1 · 2026-10-31
- Identity: model, firmware, serial number
Official: Written from the manufacturer's documentation, but not tested on a device yet. Check the map against the manufacturer's documentation before you write to a live device. Tested it? Report a test.
Communication
- Protocol
- Modbus RTU
- Unit ID
- 247
- Serial
- 1200 8E1 · 1200 baud, 8 data bits, even parity, 1 stop bit
- Byte / word order
- ABCD · bytes big-endian, words high first
- Addresses
- 0-based
Connection values are defaults: the device may be configured differently.
Map
- Registers
- 43 holding registers
- Groups
- 7
- Translation tables
- 6
- Revision
- 1 · 2026-10-31
- Added
- ()
- File
- maps/novus/digirail-2a.mbmap.json · 11 KB · history
- SHA-256
- 060cb6c9a6bdffe2cb7e05ccfe86fe415589cc8785c59c6f248e19569e0448ee
- Manufacturer
- novus.com.br
Device identity
What a tool can read to check that this map fits the connected device (SPEC.md section 4.7). Registers with a role are read like any other register.
| Role | Register | Address | Type | Values |
|---|---|---|---|---|
| Serial number | Serial number | holding 0 | uint32 ABCD | |
| Firmware | Firmware version | holding 5 | uint16 | |
| Model | Model | holding 62 | uint16 | 1 = DigiRail-2A, 3 = DigiRail-2R, 4 = DigiRail-4C |
Sources and notes
- DigiRail-2A Módulo de Entradas Analógicas Universais - Manual de Comunicação linked in issue #86; tables 1-7
Source: Novus DigiRail-2A communication manual (Portuguese)
- Factory defaults: address 247, 1200 bit/s, even parity, 1 stop bit. Pressing the RCom button puts the module in diagnostic mode for one minute with address 246, 1200 bit/s, even parity.
- Functions 03 (read holding registers), 04 (read input registers) and 06 (write single register). The manual lists no write-multiple function, so each setting is written on its own.
- The channel values are also in input registers 0-1 (percent) and 5-6 (engineering unit); this map reads the same values from the holding registers, which hold the configuration too.
- Novus recommends configuring the module with its DigiConfig software; the configuration registers are listed so the settings can be checked.
- The manual does not say how many decimal places the engineering-unit values have: they follow the module's configuration (the indication limits for linear inputs).
- The manual does not give the character order of the tags; this map assumes the first character is in the high byte.
- Written from the manufacturer's manual; not tested on a device.
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| HR | 9 | uint16 | R | % | ×0.0016129 | Linear 0-62000 over the input range, before conversion to the engineering unit (also input register 0) | |
| HR | 10 | uint16 | R | % | ×0.0016129 | Linear 0-62000 over the input range, before conversion to the engineering unit (also input register 1) | |
| HR | 14 | int16 | R | In the configured engineering unit, -31000 to 31000 (also input register 5) | |||
| HR | 15 | int16 | R | In the configured engineering unit, -31000 to 31000 (also input register 6) | |||
| HR | 7 | bool bit 0 | R | ||||
| HR | 7 | bool bit 1 | R | ||||
| HR | 7 | bool bit 2 | R | ||||
| HR | 7 | bool bit 3 | R | ||||
| HR | 7 | bool bit 4 | R | ||||
| HR | 7 | bool bit 8 | R | ||||
| HR | 7 | bool bit 9 | R | ||||
| HR | 7 | bool bit 10 | R | ||||
| HR | 7 | bool bit 11 | R | ||||
| HR | 7 | bool bit 12 | R | ||||
| HR | 21 | int16 | RW | ||||
| HR | 26 | uint16 | RW | Used for thermocouple and Pt100 inputs | |||
| HR | 31 | int16 | RW | Small correction added to the indication | |||
| HR | 36 | uint16 | RW | Linear inputs (mV, V, mA) only | |||
| HR | 41 | int16 | RW | Indication at the bottom of a linear input range | |||
| HR | 42 | int16 | RW | Indication at the top of a linear input range | |||
| HR | 51 | int16 | R | Lowest value the channel can show (sensor limit or linear low limit) | |||
| HR | 52 | int16 | R | Highest value the channel can show (sensor limit or linear high limit) | |||
| HR | 22 | int16 | RW | ||||
| HR | 27 | uint16 | RW | Used for thermocouple and Pt100 inputs | |||
| HR | 32 | int16 | RW | Small correction added to the indication | |||
| HR | 37 | uint16 | RW | Linear inputs (mV, V, mA) only | |||
| HR | 43 | int16 | RW | Indication at the bottom of a linear input range | |||
| HR | 44 | int16 | RW | Indication at the top of a linear input range | |||
| HR | 53 | int16 | R | Lowest value the channel can show (sensor limit or linear low limit) | |||
| HR | 54 | int16 | R | Highest value the channel can show (sensor limit or linear high limit) | |||
| HR | 6 | uint16 | RW | Higher values smooth noisy readings | |||
| HR | 2 | uint16 | RW | ||||
| HR | 3 | uint16 | RW | ||||
| HR | 4 | uint16 | RW | ||||
| HR | 61 | uint16 | RW | s | ×0.1 | Used by DigiConfig | |
| HR | 0 | uint32 ABCD | R | ||||
| HR | 5 | uint16 | R | ×0.01 | 204 is version 2.04 | ||
| HR | 62 | uint16 | R | ||||
| HR | 126 | string[5] | RW | ||||
| HR | 131 | string[5] | RW | ||||
| HR | 136 | string[5] | RW | ||||
| HR | 141 | string[5] | RW | Unit text for a linear input | |||
| HR | 146 | string[5] | RW | Unit text for a linear input |
No registers match
Try part of the name, an address (decimal or 0x hex) or clear the filters.
Help improve this map
- I tested it on a deviceReport whether it worked, even if you did not write the map.
- Suggest a correctionEdit the file on GitHub; it opens a pull request.
- Report a problemA wrong address, type, scale or byte order.
- Read the formatWhat each key of the file means (SPEC.md).