Contemp C71X Modbus register map
Also covers C714, C715, C719
Process controller (C714, C715, C719): process value, setpoints, output, alarms, heater current, programs and main control, input and communication settings
- Official
- 64 registers
- Modbus RTU
- Revision 1 · 2026-11-08
- Identity: 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
- 1-based · wire address = address − 1
Connection values are defaults: the device may be configured differently.
Map
- Registers
- 64 holding registers
- Groups
- 9
- Translation tables
- 2
- Revision
- 1 · 2026-11-08
- Firmware
- from 2
- Added
- ()
- File
- maps/contemp/c71x.mbmap.json · 13 KB · history
- SHA-256
- ca9e8e28664314060112c03afb98c0cd903de5bfb8ab1eb3d6ac6b19d94429ea
- Manufacturer
- contemp.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 160 | uint16 |
Sources and notes
- Mapa de Registros Modbus - Controlador de Processos, modelos C714, C715 e C719 · version 03 software V2.00 or later, register table T04 or later; attached to issue #124
Source: Contemp Mapa de Registros Modbus, Controlador de Processos C714, C715 e C719, rev. 03
- Modbus RTU slave on RS-485 (optional). Registers are numbered from 1, as in the document. FC03 reads and FC06/FC16 writes; the on/off registers can also be read and written as coils.
- Baud rate 9600 to 57600 bit/s, parity none, odd or even, 1 or 2 stop bits. The document gives no factory default; 9600 8N1 and address 1 are assumed here.
- Values marked in engineering units are whole numbers with the decimal places set in register 63 (for example 1234 with one decimal place is 123.4).
- The program segments (registers 250-1227), the output assignments, the special linearisation table and the 16-character tag (one character per register) are left out.
- Written from the register map; this map has not been tested on a device.
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| HR | 1 | int16 | R | In engineering units, with the decimal places set in register 63 | |||
| HR | 2 | int16 | RW | In engineering units, with the decimal places set in register 63 | |||
| HR | 3 | int16 | RW | % | ×0.1 | Control output; writable in manual mode | |
| HR | 4 | int16 | RW | ||||
| HR | 5 | int16 | RW | ||||
| HR | 6 | int16 | RW | ||||
| HR | 7 | int16 | RW | ||||
| HR | 8 | int16 | RW | ||||
| HR | 9 | uint16 | RW | ||||
| HR | 18 | bool bit 0 | R | ||||
| HR | 18 | bool bit 1 | R | ||||
| HR | 18 | bool bit 2 | R | ||||
| HR | 18 | bool bit 3 | R | ||||
| HR | 19 | uint16 | R | ||||
| HR | 20 | uint16 | R | ||||
| HR | 21 | uint16 | R | ||||
| HR | 22 | uint16 | R | A | ×0.1 | ||
| HR | 23 | uint16 | R | ||||
| HR | 24 | uint16 | R | Option code from the document's table 6 (0 = none, A to J = an option); how the letter is encoded is not stated | |||
| HR | 25 | uint16 | R | Option code from the document's table 6 (0 = none, A to J = an option); how the letter is encoded is not stated | |||
| HR | 26 | uint16 | R | Option code from the document's table 6 (0 = none, A to J = an option); how the letter is encoded is not stated | |||
| HR | 28 | uint16 | R | ||||
| HR | 29 | uint16 | RW | ||||
| HR | 30 | uint16 | RW | ||||
| HR | 31 | uint16 | RW | 101 = continuous | |||
| HR | 32 | uint16 | RW | ||||
| HR | 33 | uint16 | RW | min | Shown as hh:mm (5999 = 99:59) | ||
| HR | 34 | uint16 | RW | ||||
| HR | 35 | uint16 | R | ||||
| HR | 36 | bool bit 6 | R | ||||
| HR | 50 | uint16 | RW | ||||
| HR | 51 | uint16 | RW | ||||
| HR | 52 | uint16 | RW | ||||
| HR | 53 | uint16 | RW | 0 = off. In engineering units, with the decimal places set in register 63 | |||
| HR | 54 | uint16 | RW | s | 0 = off | ||
| HR | 55 | uint16 | RW | s | 0 = off | ||
| HR | 56 | uint16 | RW | % | ×0.1 | ||
| HR | 57 | uint16 | RW | ||||
| HR | 59 | int16 | RW | ||||
| HR | 60 | uint16 | RW | ||||
| HR | 61 | uint16 | RW | ||||
| HR | 63 | uint16 | RW | ||||
| HR | 64 | int16 | RW | ||||
| HR | 65 | int16 | RW | ||||
| HR | 66 | uint16 | RW | s | ×0.1 | 0 = off | |
| HR | 67 | int16 | RW | ||||
| HR | 78 | uint16 | RW | ||||
| HR | 81 | uint16 | RW | s | |||
| HR | 82 | uint16 | RW | % | ×0.1 | ||
| HR | 83 | uint16 | RW | % | ×0.1 | ||
| HR | 99 | uint16 | RW | ||||
| HR | 102 | uint16 | RW | ||||
| HR | 107 | uint16 | RW | ||||
| HR | 110 | uint16 | RW | ||||
| HR | 115 | uint16 | RW | ||||
| HR | 118 | uint16 | RW | ||||
| HR | 123 | uint16 | RW | ||||
| HR | 126 | uint16 | RW | ||||
| HR | 132 | uint16 | RW | A | ×0.1 | ||
| HR | 138 | uint16 | RW | ||||
| HR | 139 | uint16 | RW | ||||
| HR | 140 | uint16 | RW | ||||
| HR | 160 | uint16 | R | ×0.01 | Shown as A.BC | ||
| HR | 161 | 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).