少妇高潮久久久久久久久-亚洲精品乱码中文字幕-国产精品一区二区熟女91-尹人香蕉网在线观看视频-国产成人精选在线不卡-少妇一区二区三区精品-日韩色久悠悠婷婷综合-韩国毛片免费全部播放完整-又大又色又爽的视频

關(guān)注官方微信

EN

EN.

卓嵐MQTT和JSON轉(zhuǎn)Modbus網(wǎng)關(guān)用法

發(fā)布時間:2019-09-09 作者:上海卓嵐 瀏覽量:11523
1.概述

本文介紹卓嵐支持MQTT和JSON的設(shè)備的用法,支持的設(shè)備包括ZLAN5143、ZLAN8303-7、ZLAN1043、ZLAN7144等。其中ZLAN5143、ZLAN8303-7、ZLAN1043的固件版本要在1.577及以上,ZLAN7144需要在1.489及以上。需要和zlvircom的5.09版本配合使用。

MQTT和JSON可以單獨使用也可以合起來使用。其中的JSON支持Modbus RTU格式轉(zhuǎn)化為JSON格式。

主要特點是:

1.采用MQTT為基礎(chǔ)的協(xié)議和服務(wù)器建立連接,采用訂閱發(fā)布的形式進(jìn)行數(shù)據(jù)通訊。

2.支持Modbus RTU寄存器的自主設(shè)計和自動采集。

3.支持將特定的Modbus寄存器內(nèi)容轉(zhuǎn)化為JSON格式定時主動上發(fā)。

4.支持在JSON格式中加入設(shè)備ID,方便云端識別設(shè)備。

5.支持無符號數(shù)據(jù)和有符號數(shù)據(jù),支持小數(shù)點表示,支持4字節(jié)長度數(shù)據(jù)。

6.所有配置都可以界面化配置完成,用戶自主配置無需定制。

2.JSON
2.1.Modbus RTU轉(zhuǎn)JSON

卓嵐Modbus RTU轉(zhuǎn)JSON可以實現(xiàn)Modbus RTU表的自動采集,并按照J(rèn)SON格式自動上發(fā)給云端服務(wù)器。

這里我們通過一個具體的案例來講解這個用法。

2.2.Modbus表

假設(shè)現(xiàn)在有一個功能碼為3,地址為1的Modbus表,其寄存器地址和參數(shù)名如下。其中字節(jié)長度為4的表示需要連續(xù)讀2個寄存器。

寄存器地址 參數(shù)名 字節(jié)長度 備注
0 當(dāng)前總有功電能 4 無符號,保留2位小數(shù)
97 A相電壓 2 無符號,保留1位小數(shù)
98 B相電壓 2
99 C相電壓 2
100 A相電流 2 無符號,保留2位小數(shù)
101 B相電流 2
102 C相電流 2
119 頻率 2
356 A相有功功率 4 有符號,保留3位小數(shù)
358 B相有功功率 4
360 C相有功功率 4
362 總有功功率 4

所謂有符號是指,2字節(jié)或者4字節(jié)最高bit為符號位,例如0xFFFF將被認(rèn)為是-1。保留2位小數(shù)是指將數(shù)據(jù)當(dāng)作整型轉(zhuǎn)化之后,小數(shù)點從最右邊向左移動2位。

2.3.設(shè)備配置

我們按照設(shè)備作為客戶端的方式進(jìn)行配置。

使用SocketDlgTest,在本地計算機(jī)1883端口監(jiān)聽一個TCP服務(wù)器。

Socket模擬服務(wù)器接收數(shù)據(jù)

使用ZLVircom對設(shè)備進(jìn)行配置。

設(shè)備配置

點擊修改配置,可以讓設(shè)備連接上SocketDlgTest工具。再次進(jìn)入設(shè)備編輯對話框。點擊“固件和配置”按鈕。

下載界面

首先點擊“網(wǎng)頁目錄下載”進(jìn)入配置下載模式。然后選擇一個新的空目錄,比如MQTTHTTPD目錄。防止之前的設(shè)計有殘留,請先點擊“清除全部”按鈕,這樣可以清空之前的設(shè)計內(nèi)容。設(shè)計文件將會保存在這個目錄,等一下可以通過點擊“下載”按鈕下載到設(shè)備內(nèi)部。

點擊“JSON配置”按鈕。

JSON配置主界面

這里的參數(shù)說明如下:

1.上發(fā)服務(wù)器時間:默認(rèn)JSON數(shù)據(jù)每隔多少時間上發(fā)到服務(wù)器,服務(wù)器就是剛剛在設(shè)備配置界面設(shè)置的目的IP,單位是毫秒。

2.是否上發(fā)設(shè)備ID:如果選擇1則會在每次上發(fā)的JSON數(shù)據(jù)中包含有設(shè)備的ID,設(shè)備ID就是在設(shè)備編輯界面左上角看到的設(shè)備的MAC地址。

3.ID的JSON關(guān)鍵詞是自己命名的ID對應(yīng)的的JSON關(guān)鍵詞,這里寫MyID,最長為32字節(jié)。這樣以后JSON格式中會增加”MyID”:”2850002F0EEC”的內(nèi)容。這類似于注冊包,有利于服務(wù)器識別是哪一臺設(shè)備發(fā)來的數(shù)據(jù)。

4.添加/查看:點擊后可以進(jìn)行Modbus寄存器的設(shè)計,也可以查看目前已經(jīng)內(nèi)容。

5.刪除全部:刪除由“添加/查看”按鈕設(shè)計的所有的Modbus寄存器,方便重新開始設(shè)計。

6.保存JSON設(shè)置:設(shè)計完成后只有點擊這個按鈕才可以保存數(shù)據(jù)到剛才的下載目錄,之后可以下載到設(shè)備內(nèi)部。

現(xiàn)在點擊“添加/查看”按鈕。對于之前的Modbus表的第一行:

寄存器地址 參數(shù)名 字節(jié)長度 備注
0 當(dāng)前總有功電能 4 無符號,保留2位小數(shù)

對應(yīng)的配置如下:

寄存器設(shè)置

這里的參數(shù)說明如下:

1.第1個寄存器:這里的1,表示現(xiàn)在的設(shè)計界面是配置第一個寄存器。

2.已經(jīng)添加過:如果打勾說明是已經(jīng)添加的,查看已經(jīng)配置的信息的時候會出現(xiàn)打勾的情況。

3.從站地址:Modbus的表地址。

4.Modbus功能碼:目前支持03和04功能碼。

5.寄存器地址:這里對應(yīng)的0。

6.數(shù)據(jù)長度:這里對應(yīng)是4字節(jié)。

7.數(shù)據(jù)格式:這里對應(yīng)是無符號整型。

8.保留小數(shù)點:這里保留2位。

9.串口輪詢時間:這里設(shè)為100ms。是指這個寄存器和下個寄存器的輪詢的間隔,而不是這條指令的輪詢間隔。

10.對應(yīng)的JSON關(guān)鍵詞:對應(yīng)上發(fā)的JSON中的keyword。例如”CurrentW”:232.12。

11.設(shè)計下一個:點擊后進(jìn)入下一個寄存器的設(shè)置。

12.保存設(shè)計:完成設(shè)計,之后點擊上一個界面的“保存JSON配置”即可。

13.取消設(shè)計:取消當(dāng)前的所有設(shè)計,如果是查看設(shè)計內(nèi)容,可以點擊這個按鈕退出。

這里點擊“設(shè)計下一個”按鈕繼續(xù)設(shè)計Modbus表中的其它寄存器。全部設(shè)計完表格中的寄存器后,點擊“完成設(shè)計”,然后點擊“保存JSON配置”后退出。然后點擊“下載web”頁面的“下載按鈕”

下載

然后點擊“確定”,設(shè)備會自動重啟。如果沒有重啟請手動重啟。

2.4.新建Modbus模擬表

這里使用Modbus Slave來模擬一個表

測試結(jié)果

測試結(jié)果顯示,使用Modbus slave工具模擬的儀表能夠被網(wǎng)關(guān)所采集。同時可以定時,按照json格式上發(fā)到SocketDlgTest模擬的服務(wù)器軟件端。

3.MQTT

MQTT可以單獨使用也可以和JSON功能配合使用。當(dāng)單獨使用的時候MQTT功能將串口數(shù)據(jù)透傳上發(fā)MQTT服務(wù)器。也就是將串口接收的數(shù)據(jù)作為MQTT的載荷。同時MQTT的載荷會以透傳的方式從串口輸出。實現(xiàn)串口轉(zhuǎn)MQTT。

3.1.設(shè)備配置

MQTT配置1

點擊“固件與配置”,彈出配置下載和設(shè)計對話框:

MQTT配置2

這里選擇“網(wǎng)頁目錄下載”,然后選擇一個空的目錄,比如MQTTHTTPD目錄,然后先點擊“清除全部”清除之前的設(shè)計(注意如果之前按有JSON設(shè)計的,則不要清除全部,否則會清除之前的JSON設(shè)計)。然后點擊MQTT配置。

MQTT配置3

這里配置說明如下:

1.服務(wù)器域名或IP:這里填寫的是MQTT服務(wù)器的IP,最長為30個字符。

2.用戶名:是MQTT服務(wù)器的用戶名。

3.密碼:是這個用戶的登錄密碼。

4.客戶端ID:是MQTT的client ID。

5.訂閱主題:是這個設(shè)備訂閱的主題,有其它設(shè)備發(fā)布這個主題的時候,服務(wù)器會下發(fā)給這個設(shè)備。如果只是發(fā)布,一般無需填寫這個字段。

6.發(fā)布主題:這個設(shè)備串口轉(zhuǎn)MQTT的時候向服務(wù)器發(fā)送的數(shù)據(jù)的主題。

7.MQTT高級參數(shù):用于配置高級參數(shù)。

8.保存MQTT設(shè)置:設(shè)計完畢點擊這個按鈕進(jìn)行保存,然后點擊網(wǎng)頁下載目錄的“下載按鈕”下載。

現(xiàn)在先點擊“MQTT高級參數(shù)”(一般無需配置高級參數(shù)):

MQTT高級參數(shù)配置

說明如下:

1.協(xié)議版本:目前主流的是3.1.1版本,如果需要選擇3.1版本,請在這里選擇。

2.?;顣r間:MQTT的心跳時間,最少為10秒,默認(rèn)為60秒。

3.服務(wù)器清除訂閱:客戶端斷線后服務(wù)器是否清除訂閱信息。

4.是否啟用遺愿:是否有遺愿。

5.遺愿主題:遺愿主題。

6.遺愿信息:遺愿的信息。

7.是否保存遺愿:服務(wù)器是否需要保持客戶端異常離線時發(fā)送給客戶端的遺愿消息。

8.遺愿質(zhì)量:服務(wù)器發(fā)送的遺愿消息的交付質(zhì)量級別。

9.訂閱質(zhì)量:訂閱的交付質(zhì)量級別。

10.發(fā)布質(zhì)量:客戶端發(fā)布消息的交付質(zhì)量級別。

11.是否保存發(fā)布:服務(wù)器是否保持最后一條消息(如果有新的客戶端訂閱則發(fā)送給客戶端)。

我們這里不修改高級參數(shù)。直接點擊“保存MQTT設(shè)置”。然后點擊“下載”

下載

下載完畢點擊確定,此時會回到設(shè)備管理對話框,看到設(shè)備的目的IP、工作模式、目的端口已經(jīng)自動修改為MQTT的設(shè)置:

自動修改

如果沒有自動修改則需要在設(shè)備編輯對話框下,設(shè)置目的IP、工作模式、目的端口。然后點擊“修改設(shè)置”。

IP配置

這樣配置就完成了。

3.2.數(shù)據(jù)測試

連接完成后設(shè)備的LINK燈(一般為中間的藍(lán)色燈)變亮。說明設(shè)備正常連接上MQTT服務(wù)器。

現(xiàn)在打開串口工具:

串口發(fā)送和接收

使用和設(shè)備一樣的波特率打開串口,并發(fā)送數(shù)據(jù)“dev send”,此后在接收窗口看到返回的數(shù)據(jù)“dev send”。這是由于我們將dev send這個信息以zlansub的主題發(fā)布給MQTT服務(wù)器。但是同時我們的設(shè)備也訂閱了zlansub這個主題,所以服務(wù)器立刻會給我們發(fā)送一個訂閱信息,訂閱信息的內(nèi)容就是dev send。這個信息作為MQTT的載荷發(fā)送下載,通過透傳的方式從串口輸出。

如果其它設(shè)備發(fā)布信息過來,這個設(shè)備也能夠收到數(shù)據(jù)。

一般來說,用戶可以直接將串口指令(比如Modbus RTU)指令直接透傳給MQTT服務(wù)器。另外也可以使用JSON功能,采用自動Modbus RTU格式采集,定時JSON格式上發(fā)的形式。另外也可以找上海卓嵐定制一些非標(biāo)的儀表和上位機(jī)協(xié)議格式。

4.MQTT+JSON轉(zhuǎn)Modbus RTU

將上述的JSON和MQTT相組合可以實現(xiàn)如下的功能:

1.采用MQTT為基礎(chǔ)的協(xié)議和服務(wù)器建立連接,采用訂閱發(fā)布的形式進(jìn)行數(shù)據(jù)通訊。

2.支持Modbus RTU寄存器的自主設(shè)計和自動采集。

3.支持將特定的Modbus寄存器內(nèi)容轉(zhuǎn)化為JSON格式定時主動上發(fā)。

4.支持在JSON格式中加入設(shè)備ID,方便云端識別設(shè)備。

如果需要MQTT+JSON轉(zhuǎn)Modbus RTU功能的,可以分別設(shè)計MQTT和JSON,不分先后次序。設(shè)計完一種不要點擊“清除設(shè)計”按鈕,兩個設(shè)計完,一起點擊“下載”按鈕下載到設(shè)備內(nèi)容。

一般可以下載后手動重啟設(shè)備,加載設(shè)置。