TCM320 / RS485 / ModBus Slave
Firmware
register types
| type | length | content |
| EnOcean_Frame_t | 12 | hseq | length | org | data 0..3 | addr 0..3 | status |
| EnOcean_Data_t | 4 | data 0..3 |
| EnOcean_Address_t | 4 | addr 0..3 |
| EnOcean_OrgAddress_t | 5 | | | rorg | | addr 0..3 | |
| EnOcean_OrgDataStatus_t | 5 | | | rorg | data 0..3 | | status |
| EnOcean_OrgDataAddressStatus_t | 9 | | | rorg | data 0..3 | addr 0..3 | status |
| type | length | content |
| Command_t | 1 | 1 - force reset
10 - reread TCM baseid
100 - send Test frame |
registers
| Coils |
| start | length | description | type | notes |
| 100 | 4 | base address | EnOcean_Address_t | |
| |
| 1000 | 11 | last frame | EnOcean_Frame_t | |
| 1020 | 11 | last service frame | EnOcean_Frame_t | |
| |
| 1000 | 5 | last frame address | EnOcean_OrgAddress_t | |
| 1005 | 5 | last service frame address | EnOcean_OrgAddress_t | |
| |
| 2000 | 5 | known address 0 | EnOcean_OrgAddress_t | |
| 2005 | 5 | known address 1 | EnOcean_OrgAddress_t | |
| 2000+x*5 | 5 | known address x | EnOcean_OrgAddress_t | |
| |
| 3000+x*4 | 4 | last data of device x | EnOcean_Data_t | |
| |
| 4000 | 5 | send data | EnOcean_OrgData_t | |
| |
| 4100 | 9 | send data | EnOcean_OrgDataAddress_t | |
| |
| 5000 | 6 | send data with baseid | EnOcean_OrgDataStatus_t | |
| 5010 | 6 | send data with baseid+1 | EnOcean_OrgDataStatus_t | |
| 5000+n*10 | 6 | send data with baseid+n | EnOcean_OrgDataStatus_t | |
| |
| 10000 | n | send raw data | | |
| |
| Holding |
| start | length | description | type | notes |
| 1 | 1 | modbus slave address | | |
| 2 | 1 | modbus endianness setup | Endianness_t | |
| 3 | 1 | autobaud enable | bool | |
| 4 | 1 | baudrate | Baudrate_t | |
| 5 | 1 | serial | uint16_t | |
| 6 | 1 | command | Command_t | |
| |
| 10 | 1 | ModBus- Revision | uint16_t | |
| 11 | 1 | Firmware- Revision | uint16_t | |
| |
| 20 | 1 | total rx frames | uint16_t | |
| 21 | 1 | total tx frames | uint16_t | |
| |
| 30 | 1 | rx timer | uint16_t | |
| |
| 100 | 1 | device 0 total rx frames | uint16_t | |
| 100+x | 1 | device x total rx frames | uint16_t | |
| |
| 150 | 1 | device 0 total tx frames | uint16_t | |
| 150+x | 1 | device x total tx frames | uint16_t | |
| |
| 200 | 1 | device 0 rx timer | uint16_t | |
| 200+x | 1 | device x rx timer | uint16_t | |
| |
| 1000 | 1 | sensitivity | uint16_t | |
| 1001 | 1 | repeater setup | uint16_t | |
custom functions
The firmware provides a custom function for reading a queue of rx-frames. This is a circular buffer which holds a list of EnOcean_Frame_t types (no checksum, no sync-bytes).
ModBus PDU
Request
Response
| Function code | 1 Byte | 64 |
| Resp. data Length | 1 Byte | N*sizeof(EnOcean_Frame_t) |
| Resp. data | N*sizeof(EnOcean_Frame_t)
Bytes | |