Novus N3000 Modbus register map
Universal PID process controller with ramp and soak, four alarms, analog output and optional RS485 Modbus RTU: PV, setpoints, output power, status, PID, input, alarms, I/O and serial settings
- Official
- 113 registers
- Modbus RTU
- Revision 1 · 2026-10-31
- Identity: model, firmware
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
- 1
- Serial
- 9600 8N1 · 9600 baud, 8 data bits, none 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
- 108 holding registers, 5 coils
- Groups
- 10
- Translation tables
- 3
- Revision
- 1 · 2026-10-31
- Firmware
- Instruction manual V3.0x K
- Added
- ()
- File
- maps/novus/n3000.mbmap.json · 22 KB · history
- SHA-256
- cf504e5ef06d206fcd2fdafb4480d5677540584849be3549c85442bc53572de4
- 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 |
|---|---|---|---|---|
| Firmware | Software version | holding 7 | uint16 | |
| Model | Equipment ID | holding 8 | uint16 | 2 = N3000 |
Sources and notes
- Controlador N3000 - Manual de Instruções · version V3.0x K linked in issue #90; annex 1, tables 11-15
Source: Novus N3000 controller instruction manual V3.0x K (Portuguese), annex 1
- Modbus RTU needs the optional RS485 interface; the USB port also speaks Modbus RTU. Functions 03, 05 and 06; writes with address 0 are broadcast.
- 8 data bits, 1 stop bit, no parity. The manual does not give the factory address or baud rate: check the addr and bavd screens.
- Every register is a signed 16-bit value. Registers 12 and up can be read and written; most registers below 12 are read-only.
- Process value, setpoints, limits, offset and alarm setpoints are integers in display units with the decimals of register 30 (dppo): 0 = 3 decimals, 3 = none.
- A write outside the allowed range is not refused: the controller stores the maximum allowed value and returns it.
- The ramp and soak programs (registers 73 to 240: events, tolerance, link, times and setpoints of programs 1 to 7) are not listed.
- Written from the manufacturer's manual; not tested on a device.
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| HR | 0 | int16 | RW | Read: the setpoint in use (main screen, ramp and soak or remote). Write: the main screen setpoint. In display units, with the decimals of register 30 (dppo) | |||
| HR | 1 | int16 | R | In display units, with the decimals of register 30 (dppo) | |||
| HR | 2 | int16 | R | % | ×0.1 | Active output (manual or automatic) | |
| HR | 4 | int16 | RW | Value of the screen being shown; range depends on the screen | |||
| HR | 5 | uint16 | R | High byte: screen cycle, low byte: screen | |||
| HR | 25 | int16 | RW | SV, the main screen setpoint. In display units, with the decimals of register 30 (dppo) | |||
| HR | 28 | int16 | RW | % | ×0.1 | ||
| HR | 46 | uint16 | RW | avto | |||
| HR | 47 | uint16 | RW | rvn (run) | |||
| HR | 48 | uint16 | RW | ||||
| HR | 49 | uint16 | RW | atvn | |||
| HR | 54 | uint16 | W | ||||
| HR | 6 | bool bit 0 | R | ||||
| HR | 6 | bool bit 1 | R | ||||
| HR | 6 | bool bit 2 | R | ||||
| HR | 6 | bool bit 3 | R | ||||
| HR | 6 | bool bit 4 | R | ||||
| HR | 6 | bool bit 6 | R | ||||
| HR | 9 | bool bit 0 | R | ||||
| HR | 9 | bool bit 1 | R | ||||
| HR | 9 | bool bit 2 | R | ||||
| HR | 9 | bool bit 4 | R | ||||
| HR | 9 | bool bit 5 | R | ||||
| HR | 9 | bool bit 6 | R | ||||
| HR | 9 | bool bit 7 | R | ||||
| HR | 9 | bool bit 8 | R | ||||
| HR | 9 | bool bit 9 | R | ||||
| HR | 9 | bool bit 11 | R | ||||
| HR | 9 | bool bit 12 | R | ||||
| HR | 9 | bool bit 13 | R | ||||
| HR | 9 | bool bit 14 | R | ||||
| HR | 9 | bool bit 15 | R | ||||
| HR | 10 | bool bit 0 | R | ||||
| HR | 10 | bool bit 1 | R | ||||
| HR | 10 | bool bit 2 | R | ||||
| HR | 10 | bool bit 3 | R | ||||
| HR | 10 | bool bit 4 | R | ||||
| HR | 10 | bool bit 5 | R | ||||
| HR | 10 | bool bit 6 | R | ||||
| HR | 10 | bool bit 7 | R | ||||
| CO | 0 | bool | RW | Coil 1 in the manual. Can be written only when I/O1 function is Off | |||
| CO | 1 | bool | RW | Coil 2 in the manual. Can be written only when I/O2 function is Off | |||
| CO | 2 | bool | RW | Coil 3 in the manual. Can be written only when I/O3 function is Off | |||
| CO | 3 | bool | RW | Coil 4 in the manual. Can be written only when I/O4 function is Off | |||
| CO | 4 | bool | RW | Coil 5 in the manual. Can be written only when I/O5 function is Off | |||
| HR | 11 | uint16 | RW | rep/min | ×0.01 | ||
| HR | 12 | uint16 | RW | s | |||
| HR | 13 | uint16 | RW | % | ×0.1 | 0 = On/Off control | |
| HR | 15 | uint16 | RW | s | ×0.1 | ||
| HR | 17 | int16 | RW | In display units, with the decimals of register 30 (dppo) | |||
| HR | 19 | uint16 | RW | % | ×0.1 | ||
| HR | 20 | uint16 | RW | % | ×0.1 | ||
| HR | 68 | int16 | RW | % | |||
| HR | 66 | uint16 | RW | s | |||
| HR | 270 | int16 | RW | % | ieov | ||
| HR | 271 | uint16 | RW | min | |||
| HR | 43 | uint16 | RW | type. The manual lists J, K, T, N, R, S, B, E, Pt100, 0-50 mV, 4-20 mA, 0-5 V, 0-10 V and square root, without their codes | |||
| HR | 30 | uint16 | RW | dppo | |||
| HR | 67 | uint16 | RW | ||||
| HR | 29 | int16 | RW | In display units, with the decimals of register 30 (dppo) | |||
| HR | 264 | uint16 | RW | ||||
| HR | 26 | int16 | RW | spll. In display units, with the decimals of register 30 (dppo) | |||
| HR | 27 | int16 | RW | spkl. In display units, with the decimals of register 30 (dppo) | |||
| HR | 254 | int16 | R | ||||
| HR | 243 | uint16 | RW | ||||
| HR | 244 | uint16 | RW | ||||
| HR | 55 | int16 | RW | In display units, with the decimals of register 30 (dppo) | |||
| HR | 56 | int16 | RW | In display units, with the decimals of register 30 (dppo) | |||
| HR | 31 | int16 | RW | In display units, with the decimals of register 30 (dppo) | |||
| HR | 35 | uint16 | RW | ||||
| HR | 39 | int16 | RW | The manual gives 0 to 9999 (0.00 to 99.99 %) | |||
| HR | 50 | uint16 | RW | ||||
| HR | 32 | int16 | RW | In display units, with the decimals of register 30 (dppo) | |||
| HR | 36 | uint16 | RW | ||||
| HR | 40 | int16 | RW | The manual gives 0 to 9999 (0.00 to 99.99 %) | |||
| HR | 51 | uint16 | RW | ||||
| HR | 33 | int16 | RW | In display units, with the decimals of register 30 (dppo) | |||
| HR | 37 | uint16 | RW | ||||
| HR | 41 | int16 | RW | The manual gives 0 to 9999 (0.00 to 99.99 %) | |||
| HR | 52 | uint16 | RW | ||||
| HR | 34 | int16 | RW | In display units, with the decimals of register 30 (dppo) | |||
| HR | 38 | uint16 | RW | ||||
| HR | 42 | int16 | RW | The manual gives 0 to 9999 (0.00 to 99.99 %) | |||
| HR | 53 | uint16 | RW | ||||
| HR | 62 | uint16 | RW | s | |||
| HR | 63 | uint16 | RW | s | |||
| HR | 64 | uint16 | RW | s | |||
| HR | 65 | uint16 | RW | s | |||
| HR | 257 | uint16 | RW | s | |||
| HR | 258 | uint16 | RW | s | |||
| HR | 259 | uint16 | RW | s | |||
| HR | 260 | uint16 | RW | s | |||
| HR | 256 | uint16 | RW | flsh | |||
| HR | 57 | uint16 | RW | ||||
| HR | 58 | uint16 | RW | ||||
| HR | 59 | uint16 | RW | ||||
| HR | 60 | uint16 | RW | ||||
| HR | 61 | uint16 | RW | ||||
| HR | 69 | uint16 | RW | ||||
| HR | 22 | uint16 | RW |
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).