RM新时代-RM平台-RM新时代app下载
  • 成都眾山科技有限公司官網(wǎng) 成都眾山科技有限公司官網(wǎng)

    028-64267900

    了解更多眾山訊息——多年的通信軟硬件開(kāi)發(fā)經(jīng)驗使公司在通信產(chǎn)品開(kāi)發(fā)和技術(shù)服務(wù)方面有著(zhù)豐富的經(jīng)驗和雄厚的實(shí)力

    了解更多眾山訊息

    多年的通信軟硬件開(kāi)發(fā)經(jīng)驗使公司在通信產(chǎn)品開(kāi)發(fā)和技術(shù)服務(wù)方面有著(zhù)豐富的經(jīng)驗和雄厚的實(shí)力

    在線(xiàn)咨詢(xún)
    首頁(yè) > 新聞資訊 > 行業(yè)資訊

    4G Modbus Json邊緣網(wǎng)關(guān)接入阿里云IoT平臺

    時(shí)間:2022-08-18 作者:

    4G Modbus Json邊緣網(wǎng)關(guān)接入阿里云IoT平臺

    LTE-669P 4G邊緣網(wǎng)關(guān)系列 阿里云平臺連接教程

    圖片1

    今天介紹物聯(lián)設備 LTE-669P 4G邊緣網(wǎng)關(guān)如何接入阿里云平臺系列。

    LTE-669P是一款工業(yè)級4G JSON無(wú)線(xiàn)邊緣解析網(wǎng)關(guān),支持RS485/232采集上報,支持TCP/UDP/HTTP/MQTT協(xié)議,支持Modbus RTUJSON輪詢(xún)上報功能,支持本地、遠程參數配置,支持移動(dòng)、聯(lián)通、電信4G網(wǎng)絡(luò ),支持連接自建服務(wù)器和阿里云IOT物聯(lián)云平臺,JSON網(wǎng)關(guān)內部自動(dòng)解析Modbus報文轉為JSON格式,支持JSON網(wǎng)關(guān)切換為DTU工作模式,雙向底層報文透傳。

    硬件準備

    1LTE-669P 4G邊緣網(wǎng)關(guān)一套,包含4G主機、4G天線(xiàn)、12V電源。

    24G 數據卡一張,移動(dòng),聯(lián)通,電信均可。

    3USB232/485串口線(xiàn)配件,用于連接電 腦和設備。

    電源和串口接線(xiàn)說(shuō)明:

    電源紅線(xiàn)接VIN,白線(xiàn)接GND,232接口和USB232轉接頭交叉接,RX-TX,TX-RX,GND-GND。

    軟件準備

    1) CONFIG參數配置軟件,用于配置設備串口參數,及MQTT參數等


    圖片2




    2) MODBUS轉換寄存器參數配置軟件,用于配置現場(chǎng)傳感器MODBUS寄存器表


    圖片3




    接下來(lái)分別描述以下幾個(gè)方面:

    網(wǎng)關(guān)工作流程

    MODBUS參數說(shuō)明

    阿里云IoT平臺接入

    NTP時(shí)間和GPS數據獲取

    自定義json模板

    其他特殊關(guān)鍵字(服務(wù)器下發(fā)json指令)

    SHELL指令

    Reg1-Reg10本地化參數

    Modbusjson功能主要用于采集Modbus RTU傳感器數據,將采集的數據按配置的數據類(lèi)型解析,并且打包成key-valuejson格式上報到服務(wù)器,支持服務(wù)器下發(fā)json格式命令,省去了用戶(hù)自己解析數據和轉換格式的麻煩。支持連接自建服務(wù)器和阿里云IoT平臺。

    1.2 網(wǎng)關(guān)工作流程

    json網(wǎng)關(guān)DTU通過(guò)配置Modbus相關(guān)參數往串口發(fā)送相應的Modbus指令,485設備收到指令以后會(huì )返回采集的數據,網(wǎng)關(guān)DTU通過(guò)數據類(lèi)型進(jìn)行解析,并將解析以后的數值以key-value的格式打包成json發(fā)送到服務(wù)器。流程如下:


    圖片4




    1)配置服務(wù)器IP地址/域名和端口號,如果是MQTT協(xié)議還需要配置ClinetID、usernam e、password、發(fā)布主題和訂閱主題等參數,配置輪詢(xún)周期和上報周期、json數據格式。

    2)配置Modbus相關(guān)參數,Modbus子站地址、寄存器地址、數據類(lèi)型、計算公式。

    3)如果是阿里云IoT平臺,需要在服務(wù)器上創(chuàng )建設備;如果是自建服務(wù)器,需要在服務(wù)器端打開(kāi)相應的上位機軟件。

    4)服務(wù)器接收到打包的json數據。

    二、MODBUS參數說(shuō)明


    圖片5




    參數項

    說(shuō)明

    功能標識符

    用戶(hù)自定義,只能是數字或者英文字符

    描述

    對標簽的描述

    數據區

    Modbus RTU功能碼:0X-01, 1X-02, 3X-04, 4X-03

    Modbus 子站地址

    Modbus RTU子站地址

    Modbus 寄存器地址

    Modbus RTU寄存器地址

    采集數據類(lèi)型

    7種數據類(lèi)型,上傳的報文根據數據類(lèi)型進(jìn)行解析

    int16: 兩字節,有符號

    uint16: 兩字節,無(wú)符號

    int32: 四字節,有符號

    uint32: 四字節,無(wú)符號

    float: 單精度浮點(diǎn)數,四字節

    bool: bool類(lèi)型值,只有0,1兩種類(lèi)型,一般用于開(kāi)關(guān)量

    BCD-2: 兩字節BCD

    BCD-4: 四字節BCD

    BCD-8: 八字節BCD

    字節序

    int32/uint32/float類(lèi)型數據才有字節序,其他類(lèi)型此參數無(wú)效

    公式

    采集數據的計算公式,格式為valuey=valuex*a+b,valuex為原始值,valuey為經(jīng)過(guò)公式計算后的值,上報的數據為valuey,如果此項為空則取原始值上報。注:bool類(lèi)型不支持公式運算

    保存文件

    保存json配置文件

    調入文件

    調入保存的json配置文件

    添加

    添加功能標識符(采集指令)

    刪除

    刪除功能標識符(采集指令)

    清空

    清空所有配置的參數

    讀取Modbus參數

    讀取配置的Modbus參數

    配置Modbus參數

    配置Modbus參數

    三、使用說(shuō)明

    3.1 阿里云IoT平臺接入

    3.1.1 進(jìn)入阿里云IoT平臺官網(wǎng)https://www.aliyun.com,登錄賬號,然后點(diǎn)擊右上角的控制臺。


    圖片6




    3.1.2 進(jìn)入控制臺后選擇產(chǎn)品與服務(wù)-物聯(lián)網(wǎng)平臺。

    注:第一次使用阿里云IoT平臺物聯(lián)網(wǎng)服務(wù)器需要先開(kāi)通服務(wù)才能使用。


    圖片7




    3.1.3 選擇產(chǎn)品-創(chuàng )建產(chǎn)品。


    圖片8




    3.1.4 創(chuàng )建產(chǎn)品,產(chǎn)品名稱(chēng)可以自己定義,其他參數按圖片上的配置即可。


    圖片9




    3.1.5 創(chuàng )建產(chǎn)品成功以后添加設備。


    圖片10





    圖片11




    3.1.6 添加好設備后會(huì )彈出設備鑒權證書(shū),新建一個(gè)文本文檔,點(diǎn)擊一鍵復制,將信息復制到一個(gè)TXT文檔里。


    圖片12




    3.1.7配置連接阿里云IoT平臺的相關(guān)參數。


    圖片13




    打開(kāi)參數配置軟件左下角的MQTT客戶(hù)端,選擇阿里云登錄信息合成器,將信息復制到粘貼區,點(diǎn)擊生成登錄信息,將相關(guān)信息填入參數配置軟件對應的位置。

    打開(kāi)“DTUCFG-V1.1.5”,將生成的阿里云IoT平臺MQTT相關(guān)參數配置進(jìn)對應的參數項。發(fā)布號配置屬性上報內容

    /sys/a1XSBRUBMXW/866262044304197/thing/event/property/post

    訂閱號配置設置設備屬性內容:

    /sys/a1XSBRUBMXW/866262044304197/thing/service/property/set

    阿里云IoT平臺相關(guān)參數配置完以后需要配置變化周期固定上傳周期,變化周期表示發(fā)送Modbus指令的時(shí)間間隔,固定上傳周期表示將json包發(fā)送到服務(wù)器的周期,單位都為毫秒。

    注:除了連接阿里云IoT平臺的必要參數,還需要將Modbusjson開(kāi)關(guān)打開(kāi),json格式設置為阿里云IoT平臺。


    圖片14





    圖片15




    3.1.8切換到Modbus RTU參數,根據實(shí)際需要采集的Modbus RTU設備配置相應的參數,本手冊用一個(gè)溫濕度-光照度傳感器示例,Modbus RTU地址及寄存器定義如下:


    圖片16





    圖片17




    可以看出溫度和濕度為兩個(gè)字節,溫度有符號,數據類(lèi)型是int16;濕度無(wú)符號,數據類(lèi)型是uint16,轉換為十進(jìn)制以后都需要除以10,公式配置為valuey=valuex/10。光照度為四個(gè)字節,無(wú)符號,數據類(lèi)型為uint32,字節序為1234,無(wú)公式,取原始值。參數配置如下:

    點(diǎn)擊工具-Modbus參數配置可以進(jìn)入Modbus配置界面

    注:點(diǎn)擊添加按鈕添加功能標識符,刪除按鈕刪除功能標識符。


    圖片18





    圖片19




    參數配置成功以后需要點(diǎn)復位設備,參數才會(huì )生效

    3.1.9阿里云IoT平臺物理模型配置

    在阿里云IoT平臺的產(chǎn)品-功能定義里面設置每個(gè)功能標識符的定義(根據每個(gè)寄存器的實(shí)際類(lèi)型定義,不然阿里云IoT平臺平臺會(huì )提示參數類(lèi)型錯誤),定義好以后點(diǎn)發(fā)布。當DTU采集數據上報后可以在設備-物理模型里面看數據,數據是Modbus RTU協(xié)議解析后的數據。

    注:雖然實(shí)際溫度是int16類(lèi)型,濕度是uint16類(lèi)型,但經(jīng)過(guò)公式計算以后有小數,所以阿里云IoT平臺平臺上定義溫度和濕度的數據類(lèi)型為float浮點(diǎn)數類(lèi)型才能正確解析;光照度不需要通過(guò)公式計算,上報的值為原始值,類(lèi)型為uint32。

    點(diǎn)擊產(chǎn)品-功能定義,選擇編輯草稿。


    圖片22



    圖片20




    點(diǎn)擊添加自定義功能


    圖片21




    按照采集數據的類(lèi)型添加功能。

    注:標識符需要和Modbus RTU參數中的功能標識符保持一致,這樣阿里云IoT平臺平臺才能正確解析物理模型


    圖片22




    (4)功能定義完以后點(diǎn)左下角發(fā)布


    圖片23




    3.1.10當設備采集數據并上報到阿里云IoT平臺,可以在設備-物理模型數據查看?,F在就實(shí)現了Modbus RTUjson并上報到阿里云IoT平臺的功能。


    圖片24




    3.1.11 阿里云下發(fā)設置

    如果配置了可讀可寫(xiě)的開(kāi)關(guān)量類(lèi)型,比如繼電器,可以使用阿里云設置功能。先在阿里云IoT平臺物理模型添加一個(gè)繼電器。

    圖片25




    3.1.12 Modbus參數配置軟件配置IO口的Modbus RTU相關(guān)參數(以眾山RTU為例,默認Modbus RTU地址為100,DI1、DI2的寄存器地址分別為17、18;DO1、DO2的寄存器地址分別為20、21,數據類(lèi)型為bool


    圖片26




    3.1.13 從阿里云IoT平臺的在線(xiàn)調試功能下發(fā)控制繼電器的指令


    圖片27




    阿里云IoT平臺下發(fā)的原始指令為json格式,網(wǎng)關(guān)DTU會(huì )轉換為相應的Modbus指令控制繼電器,RTU返回的Modbus指令也會(huì )打包成json然后立即上報,這樣可以實(shí)時(shí)控制和獲取繼電器狀態(tài)。

    3.2.3 json指令下發(fā)

    4G網(wǎng)關(guān)支持中心服務(wù)器端下發(fā)json格式的數據讀寫(xiě)指令,然后自動(dòng)轉換為本地Modbus RTU串口讀寫(xiě)寄存器的指令,讀取指令格式為{"key1":"?","key2":"?",...};也支持下發(fā)寄存器設置指令,設置指令格式為{"key1":0,"key2":100,...}??梢宰x取/設置一個(gè)key或多個(gè)key,也可以同時(shí)讀取和設置key,比如{"key1":"?","key2":1,...},key必須為已經(jīng)在Modbus參數里配置好的功能標識符名稱(chēng),或者是系統關(guān)鍵字(第六章有詳細說(shuō)明),對順序沒(méi)要求。響應的Modbus RTU指令或者系統關(guān)鍵字參數也會(huì )立即打包成key-valuejson格式并上報,value值為獲取的實(shí)時(shí)數據或者配置的數據。


    圖片28





    圖片29




    四、Lua本地控制代碼說(shuō)明

    用戶(hù)可以配置Lua代碼來(lái)判斷獲取數據的大小,并根據上下限閾值執行不同的操作,實(shí)現本地控制。

    示例:采集一個(gè)溫濕度、光照度傳感器數據,并根據傳感器閾值控制繼電器動(dòng)作進(jìn)行本地報警或控制。

    按照2.2節說(shuō)明配置好相應的參數


    圖片30





    圖片31




    配置的Lua代碼:

    local temp=data.illumination if temp>1000 then ModbusTojson.count=ModbusTojson.count+1 count_str=tostring(ModbusTojson.count) SHELL="@CS=count:"..count_str if ModbusTojson.count==5 then ModbusTojson.count=0 SHELL="@CS=High illumination warning!@D=1@DO1=1" end else SHELL="@CS=illumination normal@D=1@DO1=0@PUB=1" end

    注:如果Lua代碼太長(cháng),配置的對話(huà)框也很長(cháng),可以直接點(diǎn)Enter回車(chē)配置

    正常模式Lua代碼為(方便閱讀)


    圖片32




    Lua代碼實(shí)現效果:

    當光照度小于或等于1000時(shí),串口打印illumination normal,關(guān)閉DO1,并且不往服務(wù)器上報數據;當光照度大于1000時(shí),先判斷次數,串口打印count數量,如果Lua腳本連續執行5次光照度都大于1000,串口打印High illumination warning!,DO1打開(kāi),并且將采集的數據立即上報到服務(wù)器。

    賦值語(yǔ)句為local y=data.x, 其中x為功能標識符(必須為英文),y為獲取的標識符值,后面就是判斷變量的大小和執行相應的操作。所有操作可以通過(guò)SHELL腳本執行,具體請參考腳本編程手冊。ModbusTojson.count表示計數,如果采集很頻繁告警以后就會(huì )一直上報數據,通過(guò)ModbusTojson.count計數可以設置上傳周期。

    說(shuō)明:

    ①data.x為獲取功能標識符的值,標識符只能配置為英文

    ②count為計數的個(gè)數,初始為0,可以通過(guò)判斷count數量設置告警周期

    ③@PUB指令表示是否立即發(fā)布數據到服務(wù)器,@PUB=1表示發(fā)送,@PUB=0或者不配置表示不發(fā)送,只有等到了上報周期才發(fā)送。

    ④“SHELL=”后面可以是所有支持的腳本指令,具體請參考《LTE-xxx腳本編程手冊》

    當最后一條功能標識符的指令發(fā)送完成執行一次Lua代碼,執行周期=變化周期*標識符數量

    一般流程為:先定義一個(gè)變量獲取標識符值,設定變量閾值,判斷大小,(bool值則判斷真假,0為假,1為真),然后根據判斷執行具體的操作,所有操作可以通過(guò)SHELL腳本執行,比如打印信息,上報數據,開(kāi)/關(guān)繼電器等。

    五、NTP時(shí)間和GPS數據獲取

    5.1 NTP時(shí)間獲取

    當把功能標識符設置為TS時(shí),表示獲取NTP時(shí)間,其他Modbus RTU相關(guān)參數可以不用設置(無(wú)效),上報的json包里面會(huì )獲取NTP時(shí)間,格式為年//日,星期,時(shí):分:秒,比如獲取的TS時(shí)間為2020/12/02,03,14:17:10,表示20201202日,星期三,14:17:10。

    注:如果想使用NTP時(shí)間功能,需要先把NTP時(shí)間開(kāi)關(guān)打開(kāi)


    圖片33




    參數配置


    圖片34




    2TS時(shí)間上報


    圖片35




    5.2 GPS數據采集

    注:GPS版本才支持此指令,否則指令無(wú)效

    5.2.1采集指令

    如果是帶GPS版本,可以將功能標識符配置為GPS_xx來(lái)獲取GPS數據,xx可以是以下內容,不同的指令獲取的GPS格式也不同。

    參數配置:

    只需要將功能標識符配置為GPS_GGA,其他參數不用配置。


    圖片36




    服務(wù)器接收的數據如下:


    圖片37




    注:設備支持阿里IOT平臺空間可視化GPS位置數據接口,設置GPS格式參數選項為。為"GPS_Aliyun"即可。


    圖片38




    5.2.2 報文解析

    示例:

    1)配置標識符為GPS_GGA,采集的GPS數據為標準的GGA數據,格式解析如下:

    $GPGGA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,M,<10>,M,<11>,<12>*xx

    <1> UTC 時(shí)間,格式為hhmmss.sss;

    <2> 緯度,格式為ddmm.mmmm(第一位是零也將傳送);

    <3> 緯度半球,N S(北緯或南緯)

    <4> 經(jīng)度,格式為dddmm.mmmm(第一位零也將傳送);

    <5> 經(jīng)度半球,E W(東經(jīng)或西經(jīng))

    <6> 定位質(zhì)量指示,0=定位無(wú)效,1=定位有效;

    <7>使用衛星數量,從0012(第一個(gè)零也將傳送)

    <8>水平精確度,0.599.9

    <9天線(xiàn)離海平面的高度,-9999.99999.9M指單位米

    <10>大地水準面高度,-9999.99999.9M指單位米

    <11>差分GPS數據期限(RTCMSC-104),最后設立RTCM傳送的秒數量

    <12>差分參考基站標號,從00001023(首位0也將傳送)。

    2)配置標識符為GPS_JW,則只返回經(jīng)緯度信息,比如104.10194,30.65984。104.10194為經(jīng)度,30.65984為緯度,可以用此經(jīng)緯度在地圖上定位。

    六、用戶(hù)自定義json模板

    用戶(hù)可以自定義json格式,通過(guò)用戶(hù)json模板參數可以在json包里添加一些自定義標識符,比如DTU ID,Device name,Location,ts時(shí)間戳等信息。自定義json內容可以直接添加到原始json包內,也可以添加到原始的json包外,或者添加多重json。

    圖片39




    注:"ts":"?1"返回UNIX格式的時(shí)間戳;"ts":"?2"返回年//,星期,時(shí)::秒格式的時(shí)間戳

    采集溫濕度、光照度數據,原始json包為:

    {

    "illuminance" : 300,

    "humidity" : 65.7,

    "temperature" : 19.7

    }

    1:添加到原始的json包內

    配置json模板為:

    {"DTU ID":"0001","Device name":"test01","Location":"chengdu","ts":"?2"}

    上報到服務(wù)器的json包為:


    圖片40




    2:添加到原始的json包外

    配置json模板為:

    {"DTU ID":"0001","Device name":"test01","Location":"chengdu","ts":"?1","params":{}}

    上報到服務(wù)器的json包為:


    圖片41




    3:添加到原始的json包內部和外部

    配置json模板為:

    {"Device name":"test01","Location":"chengdu","params":{"DTU ID":"0001","ts":"?1"}}

    上報到服務(wù)器的json包為:


    圖片42




    4:添加多重json

    {"Devicename":"test01","DTU ID":"0001","Location":"chengdu",

    "params":[{"property":"?1","value":"?2"}]}

    注:紅色的"?1""?2"是固定的格式,不能修改。"?1"表示獲取標識符名稱(chēng),"?2"表示獲取標識符對應的值。

    上報到服務(wù)器的json包為:


    圖片43




    七、其他特殊關(guān)鍵字(服務(wù)器下發(fā)json指令)

    7.1 SHELL

    可以從服務(wù)器下發(fā)json格式的SHELL腳本,DTU會(huì )臨時(shí)執行一次腳本。

    7.1.1 阿里云IoT平臺下發(fā)SHELL腳本

    (1)在阿里云IoT平臺定義物理模型功能標識符為SHELL,數據類(lèi)型為text,長(cháng)度為1024。


    圖片44




    (2)切換到在線(xiàn)調試,從標識符“SHELL”下發(fā)腳本,就可以實(shí)現阿里云IoT平臺下發(fā)SHELL腳本,執行完畢后會(huì )返回腳本內容。腳本的內容為所有支持的腳本指令,具體請參考《LTE-XXX 4G DTU腳本編程手冊》。


    圖片45




    7.1.2 自建服務(wù)器下發(fā)SHELL腳本

    連接上服務(wù)器以后,直接從服務(wù)器下發(fā){"SHELL":"@C=010300000001V1@D=1"}


    圖片46




    7.2 luaCode

    可以從服務(wù)器下發(fā)json報文配置用戶(hù)Lua代碼。

    7.2.1 阿里云IoT平臺配置用戶(hù)Lua代碼

    (1)在阿里云IoT平臺定義物理模型功能標識符為luaCode,數據類(lèi)型為text,長(cháng)度為2048。


    圖片47




    (2)切換到在線(xiàn)調試,從標識符“l(fā)uaCode”下發(fā)用戶(hù)Lua代碼。例如采集溫濕度傳感器數據,可以在lua代碼里面獲取溫度值,然后在做相應的操作,Lua代碼設置成功以后會(huì )返回到服務(wù)器。


    圖片48




    7.2.2 自建服務(wù)器配置用戶(hù)Lua代碼

    連接上服務(wù)器以后,直接從服務(wù)器下發(fā){"luaCode":"local temp=data.temperature ...(some thing you do)"}


    圖片49




    7.3 Reg1-Reg10

    LTE-xxx網(wǎng)關(guān)版本有10個(gè)可讀可寫(xiě)的寄存器供用戶(hù)調用,可以用做閾值判斷。用戶(hù)可以自己配置Reg參數的值,只能是數字(可以是小數)。

    7.3.1 阿里云IoT平臺配置Reg

    (1)在阿里云IoT平臺定義物理模型功能標識符為Reg1~Reg10,數據類(lèi)型為int32,取值范圍為0~int32最大范圍,這里定義的1000。


    圖片50




    切換到在線(xiàn)調試,從標識符“Reg1”下發(fā)設置的值。


    圖片51




    7.3.2 自建服務(wù)器配置Reg

    連接上服務(wù)器以后,直接從服務(wù)器下發(fā){"Reg1":100}

    圖片52




    設置成功后,DTU會(huì )立即上報配置的Reg值。


    RM新时代-RM平台-RM新时代app下载
  • RM新时代赚钱项目 RM新时代正规网址 RM新时代登录网址 RM新时代专业团队 RM新时代登录网址
  • rm反波官网 新时代RM|国际平台 新时代官方下载 新时代官网 rm新时代正规吗 rm新时代平台靠谱吗 RM平台 rm资金盘 RM是什么平台 新时代反波胆