Modbus TCP master
Driver that creates a Modbus TCP master (client) to communicate with ModBus TCP slaves (servers). The Modbus protocol exchanges information using a request-reply mechanism between a master (client) and a slave (server). The master-slave principle is a model for a communication protocol in which one device (the master) controls one or more other devices (the slaves).
Uses the library pyModbusTCP.
Register Numbers | Type | Address | Name | Data Type | Value Range |
---|---|---|---|---|---|
1-9999 | Read-Write | %IX | Status/Coil (State controls) | bool | 0 or 1 |
10001-19999 | Read-Only | %QX | Input Contact (State information) | bool | 0 or 1 |
30001-39999 | Read-Only | %QW | Input Registers (Numerical values) | uint, word | 0 to 32767 |
40001-49999 | Read-Write | %IW | Holding Registers (Numerical values) | uint, word | 0 to 32767 |
Parameters
Aside from the common parameters described in the communication_driver docs, this driver includes:
- host: the slave ip address, default = '127.0.0.1'
- port: the slave port to connect to, default = 502
Setup data
The setup data will give values to the parameters required and will specify the I/O variables info.
{
"parameters": {
"host": "127.0.0.1",
"port": 502,
},
"variables": {
"1": {
"datatype": "bool",
"size": 1,
"operation": "write"
},
"10001": {
"datatype": "bool",
"size": 1,
"operation": "read"
},
"30001": {
"datatype": "word",
"size": 1,
"operation": "read"
},
"40001": {
"datatype": "word",
"size": 1,
"operation": "write"
}
}
}
Tip
In most cases we recommend using the %QW and %IW addresses (registers 30000 -> 49999) even when dealing with boolean variables, since this allows sending the information of 16 booleans using a single register.
Note
The setup_params in the generic PLC components for modbustcp_master will need the following format:
{"host": "127.0.0.1", "port": 502}