一直没有整理,今天测试整理一下,方便以后配置。
Modbus协议
modbus协议是一种应用层协议,可以通过OSI第四-7层传输层协议TCP/IP协议来传输,也可以通过OSI第1-2-7层串行链路上的RTU和ASCII来传输。
一般来说,通讯数据量少而且主要是文本的通讯则采用MODBUS ASCII规约,通讯数据数据量大而且是二进制数值时,多采用MODBUS RTU规约。
modbus-rtu 半双工
modbus RTU/TCP/UDP
准备工作配置Modubus环境;
软件准备
支持win10
vspdpro虚拟串口模拟
https://www.eltima.com/vspdpro-post-download.html
modbus工具下载modbus slave、modbus poll、文档等
https://www.modbustools.com/download.html
在rtu协议中,poll主站仿真软件;slave是从站仿真软件
环境配置准备
1、安装工具vspdpro、modbus slave、modbus poll
2、如图配置了vspdpro模拟串口 com1 > com2
如果成功,会在设备管理器上如图显示,如果不成功google,我是因为vspdpro版本太低配置失败;
左侧配置成功的图,右侧是失败的图
3、modbus slave配置com2>com1 ;modbus poll配置com1>com2
4、检查 ;tx增加,此时修改slave和poll的数据,两边会同步更新,表示没有问题了;如此环境准备就绪;
Gateway modbus rtu配置
rtu的测试只能在本机,只有本机模拟了串口;
thingsboard gateway和modbus配置;
然后将poll关闭,com1留个gateway配置
协议配置方面和slave要一致
{
"type":"MODBUS",
"configuration":{
"servers":[
{
"transport":{
"type":"rtu",
"portName":"COM1",
"encoding":"rtu",
"timeout":5000,
"baudRate":9800,
"dataBits":8,
"stopBits":1,
"parity":"even"
},
"devices":[
{
"unitId":1,
"deviceName":"testDevice1",
"attributesPollPeriod":1000,
"timeseriesPollPeriod":1000,
"attributes":[
],
"timeseries":[
{
"tag":"test",
"type":"long",
"pollPeriod":1000,
"functionCode":3,
"address":0,
"registerCount":1,
"bit":0,
"byteOrder":"BIG"
}
]
}
]
}
],
}
其他的thingsboard配置,和gateway启动就不详细介绍了,可以见我的其他博客和官网
使用modbus slave模拟modbus TCP/UDP;配置modbus slave默认端口502;
modbus poll配置如下:
thingsboard的页面配置如下: