標準modbus設備+標準DTU = 標準樂聯網服務

標簽: modbus
作者:xjme

前言:

modbus 設備接入樂聯網大概經歷了三個過程:
第一個階段:
提供了pc 測試軟件,如下圖所示。
下載地址http://www.lewei50.com/dev/content/downloads?sk=74,當時的想法就是可以通過pc 軟件直接把modbus設備接入樂聯網。
優點:通過PC直接接入樂聯網,簡單快捷
缺點:只能用PC作為網關。

第二個階段:
提供了類似wifi master 之類的標準化設備如下圖:
具體內容鏈接:http://www.lewei50.com/dev/doc/201
優點:接入網關成本低。
缺點:接入網關屬于定制設備,只能向樂為購買。

第三個階段:
直接用標準DTU設備將modbus 設備接入
優點:完全變成了標準設備接入樂聯網,不需要鎖定網關廠家,TB直接采購就可以了(采購DTU的時候需要注意要有注冊包發送功能的DTU就可以)。
本篇文章主要就是來說怎么用標準dtu 來把modbus設備接入樂聯網的。
如果手里有modbus設備想接入一起玩的,可以嘗試加QQ群626047753(請注明你手里的modbus設備是啥,樂聯網賬號是啥,否則不會通過

目的:

用標準設備(淘寶買的DTU,不區分廠家,不區分GPRS,wifi 以太網)把modbus標準設備直接接入樂聯網。
下面的三相電表 兩個DTU (一個以太網的,一個gprs的)都是TB 直接買的:


樂聯網web配置

建立一個modbus 設備,注意紅框內容
標識:與后面DTU 注冊包內容對應,不是必須要01
類型:只能選擇 lw-modbus
Slave id:Modbus device NO.
Func:Modbus 操作碼,這里選擇03。
是否可控:選擇“是”,點擊“使用樂聯網modbus設備”以后API 地址和公網IP 自動出現內容。


建立一個傳感器,S是必須的前綴,72 是因為要訪問寄存器地址0x0048,注意根據modbus協議內容進行數值轉換。

實驗用設備

Modbus 設備

實驗設備為JSY-301 三相電表,相關寄存器如下,0x0048 為測試寄存器。

|序號|定義 |寄存器地址 | 讀/寫 | 數據類型與計算 說明 |
| -------- | :----- : | :----: |
| 1 | A相電壓 | 0048H |讀| 無符號數,值=DATA/100,單位V |
| 2 | A相電流 | 0049H|讀| 無符號數,值=DATA/1000,單位A |
| 3 | A相有功功率 | 004AH |讀| 無符號數,值=DATA,單位為W |
| 4 | A相有功總電能 | 004BH 004CH |讀| 無符號數,值=DATA/800,單位為kWh,數值與000CH,000DH寄存器相同 |
| 5 | A相功率因數 | 004DH |讀| 無符號數,值=DATA/1000 |
| 6 | A相二氧化碳排量 | 004EH 004FH |讀| 無符號數,值=DATA/1000,單位為Kg|
| 7 | A相報警及繼電器狀態| 0050H |讀| 高字節未用,低字節為報警及繼電器狀態指示,具體意義見報警及繼電器狀態指示字意義表|
| 8 | B相電壓 | 0051H |讀| 無符號數,值=DATA/100,單位V |
| 9 | B相電流 | 0052H |讀| 無符號數,值=DATA/1000,單位A |
|10 | B相有功功率 | 0053H |讀| 無符號數,值=DATA,單位為W |
|11 | B相有功總電能 | 0054H 0055H|讀| 無符號數,值=DATA/800,單位為kWh,數值與000EH,000FH寄存器相同 |
| 12 | B相功率因數 | 0056H |讀| 無符號數,值=DATA/1000|
| 13 | B相二氧化碳排量| 0057H 0058H|讀| 無符號數,值=DATA/1000,單位為Kg |
| 14 | B相報警及繼電器狀態 | 0059H |讀| 高字節未用,低字節為報警及繼電器狀態指示,具體意義見報警及繼電器狀態指示字意義表|
| 15 | C相電壓 | 005AH |讀| 無符號數,值=DATA/100,單位V |
| 16 | C相電流 | 005BH |讀| 無符號數,值=DATA/1000,單位A |
| 17 | C相有功功率 | 005CH |讀| 無符號數,值=DATA,單位為W |
| 18 | C相有功總電能 | 005DH 005EH |讀| 無符號數,值=DATA/800,單位為kWh,數值與0010H,0011H寄存器相同 |
| 19 | C相功率因數 | 005FH |讀| 無符號數,值=DATA/1000 |
| 20 |C相二氧化碳排量| 0060H 0061H|讀| 無符號數,值=DATA/1000,單位為Kg |
| 21 | C相報警及繼電器狀態 | 0062H |讀| 高字節未用,低字節為報警及繼電器狀態指示,具體意義見報警及繼電器狀態指示字意義表 |
| 22 | 三相有功總電能 | 0063H 0064H|讀| 無符號數,值=DATA/800,單位為kWh,數值與0012H,0013H寄存器相同 |
| 23 | 頻率 | 0065H |讀| 無符號數,值= DATA/100,單位為Hz |

讀數據寄存器(功能碼03H):讀A相的3個寄存器值,結果為:電壓231.5V,電流10.123A,功率2343W,儀表地址為1。

主機讀數據幀:

|地址|命令 |起始地址(高位在前) | 寄存器數(高位在前) | 校驗碼(低位在前) |
| -------- |:----- :| :----: | :----: |:----: |
| 01H | 03H | 00H,48H | 00H,03H |85H,DDH |

儀表回應數據幀:

|地址|命令 |數據長度| 數據段(6字節) | 校驗碼 |
| -------- |:----- :| :----: | :----: |:----: |
| 01H | 03H | 06H | 5AH,6EH,27H,8BH,09H,27H|F8H,92H |

寫數據寄存器(功能碼10H):設置A相電壓上限為260V,A相電流上限為50A,儀表地址為1。

主機寫數據幀:

|地址|命令 |起始地址| 寄存器數| 字節數 | 數據段 | 校驗碼 |
| -------- |:----- :| :----: | :----: |:----: |
| 01H | 10H | 00H,20H | 00H,02H |04H |01H,04H,01H,F4H|B1H,9DH|

儀表回應數據幀:

|地址|命令 |起始地址| 寄存器數| 校驗碼 |
| -------- |:----- :| :----: | :----: |:----: |
| 01H | 10H | 00H,20H | 00H,02H |40H,02H |

DTU設備

實驗采用有人410S,只要是可以在TCP鏈接以后第一時間發送注冊包的設備都可以。注冊包內容為樂聯網USRKEY_網關號,連接到modbus.lewei50.com,端口號為9970。具體內容見下面有人配置頁面截圖紅框“注冊包內容”。

最終測試效果

Modbus 控制臺效果,起始位置為10進制(72=0x48)


直接測試發送原始數據,對比該電表協議內容更容易理解。

最終數據結果如下:

感興趣可以加群:
樂聯網 modbus dtu 群號 626047753 (申請時候注明樂聯網ID 和 modbus 設備名稱)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容