Modbus物联网平台设备添加教程
1 系統概念
1.1 協議概念
- 日常使用中,我們所談論的協議主要分為兩種,一為通訊協議,這個是網絡傳輸層的概念,目前市面上用的到普遍有TCP、MQTT、DUP和HTTP等,
- 另一種為設備協議,設備協議所指設備發送數據格式的規約(如ModbusRTU),目前通訊協議是統一一致的,設備協議存在多樣性,目前市面存在各種各樣的設備協議,modbus算當中用的比較多一些的。
1.2設備號
- 設備號[device_code]它是指的負責連接網絡的設備唯一SN號,區分不同設備連接上來。
- 如下圖:它可以自動生成,也可以手動填入,格式可以為數字也可以為字符串;
圖a系統中設備號位置
1.3地址號和寄存器號
- 地址號[sensor_device_id]和寄存器號[port_id],它的作用主要是用來區分設備傳輸的數據。它支持一臺網關設備下傳輸多個不同地址傳感器,也可以為一臺網關設備下傳輸多種傳感器數據。地址號主要用來區分不同傳感器設備的,寄存器號是用來標注同一臺傳感器設備不同的數據類型的。
圖b添加傳感點中地址號和寄存器號
2 TCP連接協議
2.1MLINK協議
- MLINK 協議(小名協議)是使用字符流格式的數據協議,目前數據協議包含登錄包、心跳包、數據上傳、控制下發、控制返回,配置下發、配置返回等數據指令。
●登錄包(設備 - > 服務器)【首次建立 TCP 連接發送】
[device_code]
例子:1u76yshydtdhh?,其中?1u76yshydtdhh?為設備 SN 號;
設備返回:
loginok
登錄成功
●心跳包(設備 - > 服務器)維持 TCP 連接,設備偏好發送
Q
固定格式
●上傳傳感點數據(設備 - > 服務器)
S[sensor_device_id]:[port_id]*[value],[sensor_device_id]:[port_id]*[value]E
例子:S1:0*12.5,1:1*-0.05,1:2*1,1:3*119.5107+31.64459E
sensor_device_id 地址號
port_id 寄存器號
value 數值
單經緯度上傳: S1:3*119.5107+31.64459E
備注:其中 GPS 經緯度數值,用+連接在一起;
服務器收到數據成功后,返回?rok?。
●服務器下發 控制/配置 命令(服務器 - > 設備)
S[sensor_device_id]:[port_id]*[value]E
例子:S1:0*0E
備注:按鈕開關命令,0 為關,1 為開;
●設備接收命令返回(設備 -> 服務器)
S[sensor_device_id]:[port_id]*[value]E
例子:S1:0*0E
2.2 Modbus RTU 協議(標準)
- 系統兼容標準的 modbus RTU 協議。
- DTU 配置時,需要配置成透傳模式,并且設置自定義注冊包,注冊包為設備的 SN 即可;
- 連接地址: cloud.modbus.cn(或者對應 IP)
- 端口:50001
2.3 Modbus TCP 協議(標準)
- 系統兼容標準的 modbus TCP 協議。
- DTU 配置時,需要配置成透傳模式,并且設置自定義注冊包,注冊包為設備的 SN 即可;
- DTU 需設置 modbus 模式
- 連接地址: cloud.modbus.cn(或者對應 IP)
- 端口:50001
2.4 環境 212 標準
- 系統支持 GB-HJ212 協議。
- 連接地址: cloud.modbus.cn(或者對應 IP)
- 端口:50001
- 數據配置格式如下,地址號填寫類型,寄存器號默認為 0
3 MQTT 連接協議
3.1 MLINK MQTT
Broker Address:cloud.modbus.cn
Broker Port:1883
Client ID:[device_code] [設備號]
User Name:modbus
Password:modbus
●客戶端 -> 服務器
客戶端發布到下方主題數據
Topic:/dev/coo/[device_code]
數據格式:
[{"sensor_device_id":0,"port_id":0,"sdata":1.0},
{"sensor_device_id":1,"port_id":1,"sdata":18.3}]
sensor_device_id 地址號
port_id 寄存器號
Sdata 數據數值
●服務器 -> 客戶端
客戶端關注下方主題,服務器推送數據
Topic:/server/coo/[device_code]
數據格式:
{"sensor_device_id":0,"port_id":0,"sdata":0.0}
sensor_device_id 地址號
port_id 寄存器號
Sdata 傳感器數值
備注:如果是繼電器開關的話,則 0 關閉,1 打開;
3.2 ZLAN MQTT
Broker Address:cloud.modbus.cn
Broker Port:1883
Client ID:[device_code] [設備號]
User Name:modbus
Password:modbus
●客戶端 -> 服務器
客戶端發布到下方主題數據
Topic:/dev/coo/[device_code]
數據格式:
{
"[sensor_device_id]-[port_id]": sdata,
"[sensor_device_id]-[port_id]": sdata
}
如: { “1-0”: 1 , “1-1”:34.6 }
sensor_device_id 地址號
port_id 寄存器號
Sdata 數據數值
?
服務器 -> 客戶端
客戶端關注下方主題,服務器推送數據
Topic:/server/coo/[device_code]
數據格式:
{ "[sensor_device_id]-[port_id]": sdata }
如:
{ “1-0”: 1 }
sensor_device_id 地址號
port_id 寄存器號
Sdata 傳感器數值
備注:如果是繼電器開關的話,則 0 關閉,1 打開;
總結
以上是生活随笔為你收集整理的Modbus物联网平台设备添加教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: grub4dos引导启动linux,gr
- 下一篇: 极智硬件 | 国产CPU大荟萃 且听我一