Omron E5CC / E5EC Modbus register map
Digital temperature controllers for 48x48 mm and 48x96 mm panels, Modbus RTU, 2-byte mode
- Official
- 69 registers
- Modbus RTU
- Revision 1 · 2026-11-10
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 8E1 · 9600 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
- 69 holding registers
- Groups
- 5
- Translation tables
- 3
- Revision
- 1 · 2026-11-10
- Added
- ()
- File
- maps/omron/e5cc-e5ec.mbmap.json · 17 KB · history
- SHA-256
- 02b67f45c564beb868cb8b0aa82be4cbcdd6fefadab0122ed289db4e29cf863e
- Manufacturer
- www.omron.com
Sources and notes
- E5@C Digital Temperature Controllers Communications Manual (H175) · version H175-E1-17 linked in issue #195; sections 4 and 5 (Modbus)
Source: Omron, E5@C Digital Temperature Controllers Communications Manual (H175), H175-E1-17
- Uses the manual's 2-byte mode addresses (0x2000 and up), read with function code 03 and written with 06 or 16. The 4-byte mode (addresses from 0x0000, two registers per value) is not mapped; single writes (function 06) work only in 2-byte mode.
- Set the protocol to Modbus in the communications setting level first (psel); the factory setting is CompoWay/F. The manual requires 8 data bits for Modbus, with 1 stop bit when parity is even or odd and 2 stop bits when there is no parity. It does not state the factory baud rate or parity in text that could be read; 9600 and even parity are the assumed defaults. The unit number can be 1 to 99 (default 1); 0 is broadcast.
- All values are integers with the decimal point left out (105.0 is sent as 1050), negative values in two's complement. For temperature inputs with one decimal, process value, set points and alarm values carry that decimal; the number of decimals follows the input type and is read from Decimal point monitor (0x2410). Their scale is left at 1 for that reason: divide by 10^decimals yourself. MV, heater current and proportional band always have one decimal and use scale 0.1.
- Status is a 32-bit word read as two registers: the lower word at 0x2406 (bits 0 to 15) and the upper word at 0x2407 (manual bits 16 to 31, shown here as bit 0 to 15 of that register). Status 2 is at 0x2408 and 0x2409.
- Run/stop, auto/manual, AT, multi-SP selection, software reset and similar are operation commands, not registers: write function 06 with address 0x0000 and data = command code in the high byte and related information in the low byte (for example 0x0100 run, 0x0101 stop). Communications writing must be enabled (command 00) before settings can be written. Not modelled as registers. Run/stop and communications-writing state can be read in the status bits.
- The manual covers the E5@C family (E5CC, E5EC, E5AC and others) and does not name the E5CC-T and E5EC-T, so they are not listed; some registers apply only to certain models (heater current, remote SP, position-proportional). Written from the manufacturer's document; not tested on a device.
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| HR | 8192 | int16 | R | Integer with the decimal point left out; the number of decimals is given by Decimal point monitor | |||
| HR | 8194 | int16 | R | Integer with the decimal point left out; the number of decimals is given by Decimal point monitor; not shown on the controller display | |||
| HR | 8195 | uint16 | R | A | ×0.1 | Needs a heater current input (CT) | |
| HR | 8196 | int16 | R | % | ×0.1 | ||
| HR | 8197 | int16 | R | % | ×0.1 | Heating and cooling control only | |
| HR | 9730 | int16 | R | Integer with the decimal point left out; the number of decimals is given by Decimal point monitor; models with a remote set point input | |||
| HR | 9735 | int16 | R | % | ×0.1 | Position-proportional models only | |
| HR | 9220 | uint16 | R | Active set point number, 0 to 7 | |||
| HR | 9232 | uint16 | R | Number of decimals (0 to 3) that the process value, set points and alarm values carry | |||
| HR | 9222 | bool bit 0 | R | ||||
| HR | 9222 | bool bit 2 | R | ||||
| HR | 9222 | bool bit 3 | R | ||||
| HR | 9222 | bool bit 4 | R | ||||
| HR | 9222 | bool bit 6 | R | ||||
| HR | 9222 | bool bit 7 | R | ||||
| HR | 9222 | bool bit 8 | R | ||||
| HR | 9222 | bool bit 9 | R | ||||
| HR | 9222 | bool bit 10 | R | ||||
| HR | 9222 | bool bit 11 | R | ||||
| HR | 9222 | bool bit 12 | R | ||||
| HR | 9222 | bool bit 13 | R | ||||
| HR | 9222 | bool bit 14 | R | ||||
| HR | 9222 | bool bit 15 | R | ||||
| HR | 9223 | bool bit 4 | R | ||||
| HR | 9223 | bool bit 5 | R | ||||
| HR | 9223 | bool bit 6 | R | ||||
| HR | 9223 | bool bit 7 | R | ||||
| HR | 9223 | bool bit 8 | R | ||||
| HR | 9223 | bool bit 9 | R | ||||
| HR | 9223 | bool bit 10 | R | ||||
| HR | 9223 | bool bit 11 | R | ||||
| HR | 9223 | bool bit 12 | R | ||||
| HR | 9223 | bool bit 15 | R | ||||
| HR | 9225 | bool bit 4 | R | ||||
| HR | 9225 | bool bit 5 | R | ||||
| HR | 9225 | bool bit 11 | R | ||||
| HR | 9225 | bool bit 12 | R | ||||
| HR | 9729 | int16 | RW | Integer with the decimal point left out; the number of decimals is given by Decimal point monitor | |||
| HR | 9728 | int16 | RW | % | ×0.1 | Used in manual mode | |
| HR | 10498 | int16 | RW | Integer with the decimal point left out; the number of decimals is given by Decimal point monitor | |||
| HR | 10501 | int16 | RW | Integer with the decimal point left out; the number of decimals is given by Decimal point monitor | |||
| HR | 10504 | int16 | RW | Integer with the decimal point left out; the number of decimals is given by Decimal point monitor | |||
| HR | 10507 | int16 | RW | Integer with the decimal point left out; the number of decimals is given by Decimal point monitor | |||
| HR | 10496 | int16 | RW | Integer with the decimal point left out; the number of decimals is given by Decimal point monitor; used when the multi-SP function is on | |||
| HR | 10510 | int16 | RW | Integer with the decimal point left out; the number of decimals is given by Decimal point monitor; used when the multi-SP function is on | |||
| HR | 10524 | int16 | RW | Integer with the decimal point left out; the number of decimals is given by Decimal point monitor; used when the multi-SP function is on | |||
| HR | 10538 | int16 | RW | Integer with the decimal point left out; the number of decimals is given by Decimal point monitor; used when the multi-SP function is on | |||
| HR | 10552 | int16 | RW | Integer with the decimal point left out; the number of decimals is given by Decimal point monitor; used when the multi-SP function is on | |||
| HR | 10566 | int16 | RW | Integer with the decimal point left out; the number of decimals is given by Decimal point monitor; used when the multi-SP function is on | |||
| HR | 10580 | int16 | RW | Integer with the decimal point left out; the number of decimals is given by Decimal point monitor; used when the multi-SP function is on | |||
| HR | 10594 | int16 | RW | Integer with the decimal point left out; the number of decimals is given by Decimal point monitor; used when the multi-SP function is on | |||
| HR | 10752 | uint16 | RW | ×0.1 | 0.1 to 999.9 | ||
| HR | 10753 | uint16 | RW | Unit is 1 s or 0.1 s depending on the Integral/derivative time unit setting | |||
| HR | 10754 | uint16 | RW | Unit is 1 s or 0.1 s depending on the Integral/derivative time unit setting | |||
| HR | 10757 | int16 | RW | % | ×0.1 | ||
| HR | 10758 | int16 | RW | % | ×0.1 | ||
| HR | 9985 | uint16 | RW | ×0.1 | |||
| HR | 9986 | uint16 | RW | Same unit as the heating integral time | |||
| HR | 9987 | uint16 | RW | Same unit as the heating derivative time | |||
| HR | 9990 | uint16 | RW | ×0.1 | Scale 0.1 for temperature input; analog input uses 0.01 | ||
| HR | 9991 | uint16 | RW | ×0.1 | Scale 0.1 for temperature input; analog input uses 0.01 | ||
| HR | 11264 | uint16 | RW | Changed in the initial setting level; the controller may refuse a write while it runs | |||
| HR | 11265 | uint16 | RW | ||||
| HR | 11537 | uint16 | RW | ||||
| HR | 11535 | int16 | RW | Integer with the decimal point left out; the number of decimals is given by Decimal point monitor | |||
| HR | 11536 | int16 | RW | Integer with the decimal point left out; the number of decimals is given by Decimal point monitor | |||
| HR | 11273 | int16 | RW | Analog input only | |||
| HR | 11275 | int16 | RW | Analog input only | |||
| HR | 11276 | uint16 | RW | Analog input only; 0 to 3 |
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).