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 | |