一直沒有整理,今天測試整理一下,方便以後配置。
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
在connection中選擇,比較簡單就不記錄了