Samrello PIC153-P-C-1 Modbus register map
Universal temperature and process controller with RS485 Modbus RTU
- Official
- 64 registers
- Modbus RTU
- Revision 1 · 2026-11-11
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
- 40 holding registers, 2 input registers, 16 coils, 6 discrete inputs
- Groups
- 5
- Translation tables
- 8
- Revision
- 1 · 2026-11-11
- Added
- ()
- File
- maps/samrello/pic153-p-c-1.mbmap.json · 15 KB · history
- SHA-256
- 80f67906eb98bb2ea40996b7db81cd72aa0bdb8bf2352ab35e53e13930dcbee4
- Manufacturer
- samrello.com.br
Sources and notes
- PIC153-P-C-1 RS485 Modbus Address (www.selec.com) Supplied with the map request
Source: Selec PIC153-P-C-1, RS485 Modbus address list
- The device is the Selec PIC153 sold by Samrello. The addresses are the hexadecimal ones in the document (coil 10001 is address 1, input register 30007 is address 7, holding register 40064 is address 64 = 0x40), used as they are with address_base 0.
- Functions: 0x01 coils, 0x02 discrete inputs, 0x04 input registers, 0x10 to write holding registers.
- The document lists some parameters (scale, setpoint limits, alarms, hysteresis, bias) more than once with different widths and ranges (4-byte at 40032 to 40052, 40512 to 40562 and 40544 to 40600). Only the 16-bit set at 40064 to 40116 and the one-register configuration entries are mapped; the others are left out because the document does not say which resolution or mode selects them.
- Scaling of the 16-bit parameters follows the resolution setting (register 131); the document gives no fixed factor, so the values are raw.
- The document gives the final PV as a signed DINT at 30007; the float at 30066 does not state its word order (big assumed).
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| CO | 1 | bool | RW | 0 = °C, 1 = °F | |||
| CO | 2 | bool | RW | 0 = no, 1 = yes | |||
| CO | 3 | bool | RW | 0 = no, 1 = yes | |||
| CO | 7 | bool | RW | 0 = on, 1 = off | |||
| CO | 8 | bool | RW | 0 = on, 1 = off | |||
| CO | 9 | bool | RW | 0 = energize, 1 = de-energize | |||
| CO | 10 | bool | RW | 0 = off, 1 = on | |||
| CO | 13 | bool | RW | 0 = on, 1 = off | |||
| CO | 14 | bool | RW | 0 = on, 1 = off | |||
| CO | 15 | bool | RW | 0 = energize, 1 = de-energize | |||
| CO | 16 | bool | RW | 0 = off, 1 = on | |||
| CO | 19 | bool | RW | 0 = low, 1 = high | |||
| CO | 20 | bool | RW | 0 = no, 1 = yes | |||
| CO | 21 | bool | RW | 0 = no, 1 = yes | |||
| CO | 22 | bool | RW | 0 = no, 1 = yes | |||
| CO | 24 | bool | RW | 0 = no, 1 = yes | |||
| DI | 1 | bool | R | ||||
| DI | 2 | bool | R | ||||
| DI | 3 | bool | R | ||||
| DI | 4 | bool | R | ||||
| DI | 5 | bool | R | ||||
| DI | 6 | bool | R | ||||
| IR | 7 | int32 ABCD | R | Final PV as a signed 32-bit integer; the decimal point follows the resolution setting | |||
| IR | 66 | float32 ABCD | R | Final PV as a 32-bit float | |||
| HR | 64 | int16 | RW | ||||
| HR | 65 | int16 | RW | ||||
| HR | 66 | int16 | RW | ||||
| HR | 67 | int16 | RW | ||||
| HR | 68 | int16 | RW | ||||
| HR | 69 | int16 | RW | ||||
| HR | 96 | uint16 | RW | ||||
| HR | 97 | int16 | RW | ||||
| HR | 98 | int16 | RW | ||||
| HR | 99 | uint16 | RW | ||||
| HR | 100 | uint16 | RW | ||||
| HR | 101 | uint16 | RW | ||||
| HR | 102 | int16 | RW | ||||
| HR | 103 | int16 | RW | ||||
| HR | 104 | uint16 | RW | ||||
| HR | 105 | uint16 | RW | ||||
| HR | 106 | uint16 | RW | ||||
| HR | 107 | uint16 | RW | ||||
| HR | 110 | uint16 | RW | ||||
| HR | 111 | int16 | RW | ||||
| HR | 112 | int16 | RW | ||||
| HR | 113 | int16 | RW | ||||
| HR | 116 | uint16 | RW | ||||
| HR | 129 | uint16 | RW | ||||
| HR | 131 | uint16 | RW | Thermocouple/RTD: 0 = 1, 1 = 0.1. Analog input: 0 = 1, 1 = 0.1, 2 = 0.01, 3 = 0.001, 4 = 0.0001 | |||
| HR | 132 | uint16 | RW | ||||
| HR | 133 | uint16 | RW | ||||
| HR | 134 | uint16 | RW | ||||
| HR | 135 | uint16 | RW | ||||
| HR | 147 | uint16 | RW | ||||
| HR | 151 | uint16 | RW | ||||
| HR | 155 | uint16 | RW | ||||
| HR | 157 | uint16 | RW | ||||
| HR | 161 | uint16 | RW | 1 to 99 for thermocouple/RTD | |||
| HR | 162 | uint16 | RW | 0.1 to 10.0 for analog input | |||
| HR | 174 | uint16 | RW | ||||
| HR | 176 | uint16 | RW | ||||
| HR | 177 | uint16 | RW | ||||
| HR | 178 | uint16 | RW | ||||
| HR | 179 | 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).