Zhongsheng ZTS-3000 analog I/O series Modbus register map
RS485 analog input/output modules (1 to 8 channels, 0-5 V, 0-10 V, 0/4-20 mA and other ranges), Modbus RTU
- Official
- 21 registers
- Modbus RTU
- Revision 1 · 2026-10-24
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 default
- Addresses
- 0-based
Connection values are defaults: the device may be configured differently.
Map
- Registers
- 13 holding registers, 8 input registers
- Groups
- 3
- Translation tables
- 3
- Revision
- 1 · 2026-10-24
- Added
- ()
- File
- maps/zhongsheng/zts-3000.mbmap.json · 7 KB · history
- SHA-256
- 6dcea1612d8284dbdbae202e9bc0fd73a9ed08fea098a4230634b0c592d71cd8
- Manufacturer
- zskjdg.com
Sources and notes
- 模拟量输入输出系列使用手册 (RS485版) / Analog input/output series user manual, RS485 version · version V2.0, 2019 section 2, tables 2.1 and 2.2; checked against the English translation attached to issue #71
Source: Analog input/output series user manual, RS485 version V2.0 (Zhongsheng Technology, 2019)
- One map for the whole series: a module has 1 to 8 input and/or output channels, so only the first registers exist on a smaller module.
- Function codes 03, 04, 06 and 10. Measured values are input registers; output setpoints and settings are holding registers. Output setpoints are not kept after power off; the settings are.
- Values are unsigned 16-bit with three decimals (raw 1000 = 1.000) when the data format register is 2 (fixed 3 decimals). With another data format the scale in this map is wrong: the manual's variable-decimal format puts the number of decimals in the ten-thousands digit (raw 31000 = 1.000).
- The manual is inconsistent about the factory data format: section 2.2 calls fixed decimals the factory default, table 2.2 gives a reset value of 0 (variable decimals). Read register 0x3A first and write 2 if needed.
- On 0/4-20 mA input models the value is the voltage across the 249 ohm input shunt, in V: divide by 249 to get the current in A (1.000 V = 4.016 mA).
- Address, baud rate, data format and parity take effect after a power cycle.
- Written from the manufacturer's manual; not tested on a device.
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| IR | 0 | uint16 | R | V | ×0.001 | Channel 1 measured value (V; on current models the shunt voltage) | |
| IR | 1 | uint16 | R | V | ×0.001 | Channel 2 measured value | |
| IR | 2 | uint16 | R | V | ×0.001 | Channel 3 measured value | |
| IR | 3 | uint16 | R | V | ×0.001 | Channel 4 measured value | |
| IR | 4 | uint16 | R | V | ×0.001 | Channel 5 measured value | |
| IR | 5 | uint16 | R | V | ×0.001 | Channel 6 measured value | |
| IR | 6 | uint16 | R | V | ×0.001 | Channel 7 measured value | |
| IR | 7 | uint16 | R | V | ×0.001 | Channel 8 measured value | |
| HR | 10 | uint16 | RW | ×0.001 | Channel 1 output setpoint, in V or mA by output type; not kept after power off | ||
| HR | 11 | uint16 | RW | ×0.001 | Channel 2 output setpoint, in V or mA | ||
| HR | 12 | uint16 | RW | ×0.001 | Channel 3 output setpoint, in V or mA | ||
| HR | 13 | uint16 | RW | ×0.001 | Channel 4 output setpoint, in V or mA | ||
| HR | 14 | uint16 | RW | ×0.001 | Channel 5 output setpoint, in V or mA | ||
| HR | 15 | uint16 | RW | ×0.001 | Channel 6 output setpoint, in V or mA | ||
| HR | 16 | uint16 | RW | ×0.001 | Channel 7 output setpoint, in V or mA | ||
| HR | 17 | uint16 | RW | ×0.001 | Channel 8 output setpoint, in V or mA | ||
| HR | 49 | uint16 | RW | s | ×0.001 | Interval of unsolicited data frames; 0 = off (factory default) | |
| HR | 50 | uint16 | RW | Modbus address; factory default 1 | |||
| HR | 51 | uint16 | RW | Factory default 1 (9600) | |||
| HR | 58 | uint16 | RW | Decimal format of inputs and outputs; this map assumes 2 | |||
| HR | 61 | uint16 | RW | Factory default 0 (none); 8 data bits and 1 stop bit |
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).