成都眾山科技有限公司官網 成都眾山科技有限公司官網

            028-64267900

            了解更多眾山訊息——多年的通信軟硬件開發經驗使公司在通信產品開發和技術服務方面有著豐富的經驗和雄厚的實力

            了解更多眾山訊息

            多年的通信軟硬件開發經驗使公司在通信產品開發和技術服務方面有著豐富的經驗和雄厚的實力

            在線咨詢
            首頁 > 新聞資訊 > 行業資訊

            4G Modbus Json邊緣網關接入阿里云IoT平臺

            時間:2022-08-18 作者:

            4G Modbus Json邊緣網關接入阿里云IoT平臺

            LTE-669P 4G邊緣網關系列 阿里云平臺連接教程

            圖片1

            今天介紹物聯設備 LTE-669P 4G邊緣網關如何接入阿里云平臺系列。

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

            硬件準備

            1LTE-669P 4G邊緣網關一套,包含4G主機、4G天線、12V電源。

            24G 數據卡一張,移動,聯通,電信均可。

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

            電源和串口接線說明:

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

            軟件準備

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


            圖片2




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


            圖片3




            接下來分別描述以下幾個方面:

            網關工作流程

            MODBUS參數說明

            阿里云IoT平臺接入

            NTP時間和GPS數據獲取

            自定義json模板

            其他特殊關鍵字(服務器下發json指令)

            SHELL指令

            Reg1-Reg10本地化參數

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

            1.2 網關工作流程

            json網關DTU通過配置Modbus相關參數往串口發送相應的Modbus指令,485設備收到指令以后會返回采集的數據,網關DTU通過數據類型進行解析,并將解析以后的數值以key-value的格式打包成json發送到服務器。流程如下:


            圖片4




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

            2)配置Modbus相關參數,Modbus子站地址、寄存器地址、數據類型、計算公式。

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

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

            二、MODBUS參數說明


            圖片5




            參數項

            說明

            功能標識符

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

            描述

            對標簽的描述

            數據區

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

            Modbus 子站地址

            Modbus RTU子站地址

            Modbus 寄存器地址

            Modbus RTU寄存器地址

            采集數據類型

            7種數據類型,上傳的報文根據數據類型進行解析

            int16: 兩字節,有符號

            uint16: 兩字節,無符號

            int32: 四字節,有符號

            uint32: 四字節,無符號

            float: 單精度浮點數,四字節

            bool: bool類型值,只有0,1兩種類型,一般用于開關量

            BCD-2: 兩字節BCD

            BCD-4: 四字節BCD

            BCD-8: 八字節BCD

            字節序

            int32/uint32/float類型數據才有字節序,其他類型此參數無效

            公式

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

            保存文件

            保存json配置文件

            調入文件

            調入保存的json配置文件

            添加

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

            刪除

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

            清空

            清空所有配置的參數

            讀取Modbus參數

            讀取配置的Modbus參數

            配置Modbus參數

            配置Modbus參數

            三、使用說明

            3.1 阿里云IoT平臺接入

            3.1.1 進入阿里云IoT平臺官網https://www.aliyun.com,登錄賬號,然后點擊右上角的控制臺。


            圖片6




            3.1.2 進入控制臺后選擇產品與服務-物聯網平臺。

            注:第一次使用阿里云IoT平臺物聯網服務器需要先開通服務才能使用。


            圖片7




            3.1.3 選擇產品-創建產品。


            圖片8




            3.1.4 創建產品,產品名稱可以自己定義,其他參數按圖片上的配置即可。


            圖片9




            3.1.5 創建產品成功以后添加設備。


            圖片10





            圖片11




            3.1.6 添加好設備后會彈出設備鑒權證書,新建一個文本文檔,點擊一鍵復制,將信息復制到一個TXT文檔里。


            圖片12




            3.1.7配置連接阿里云IoT平臺的相關參數。


            圖片13




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

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

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

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

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

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

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


            圖片14





            圖片15




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


            圖片16





            圖片17




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

            點擊工具-Modbus參數配置可以進入Modbus配置界面

            注:點擊添加按鈕添加功能標識符,刪除按鈕刪除功能標識符。


            圖片18





            圖片19




            參數配置成功以后需要點復位設備,參數才會生效

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

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

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

            點擊產品-功能定義,選擇編輯草稿。


            圖片22



            圖片20




            點擊添加自定義功能


            圖片21




            按照采集數據的類型添加功能。

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


            圖片22




            (4)功能定義完以后點左下角發布


            圖片23




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


            圖片24




            3.1.11 阿里云下發設置

            如果配置了可讀可寫的開關量類型,比如繼電器,可以使用阿里云設置功能。先在阿里云IoT平臺物理模型添加一個繼電器。

            圖片25




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


            圖片26




            3.1.13 從阿里云IoT平臺的在線調試功能下發控制繼電器的指令


            圖片27




            阿里云IoT平臺下發的原始指令為json格式,網關DTU會轉換為相應的Modbus指令控制繼電器,RTU返回的Modbus指令也會打包成json然后立即上報,這樣可以實時控制和獲取繼電器狀態。

            3.2.3 json指令下發

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


            圖片28





            圖片29




            四、Lua本地控制代碼說明

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

            示例:采集一個溫濕度、光照度傳感器數據,并根據傳感器閾值控制繼電器動作進行本地報警或控制。

            按照2.2節說明配置好相應的參數


            圖片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代碼太長,配置的對話框也很長,可以直接點Enter回車配置

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


            圖片32




            Lua代碼實現效果:

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

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

            說明:

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

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

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

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

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

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

            五、NTP時間和GPS數據獲取

            5.1 NTP時間獲取

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

            注:如果想使用NTP時間功能,需要先把NTP時間開關打開


            圖片33




            參數配置


            圖片34




            2TS時間上報


            圖片35




            5.2 GPS數據采集

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

            5.2.1采集指令

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

            參數配置:

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


            圖片36




            服務器接收的數據如下:


            圖片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 時間,格式為hhmmss.sss;

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

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

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

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

            <6> 定位質量指示,0=定位無效,1=定位有效;

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

            <8>水平精確度,0.599.9

            <9天線離海平面的高度,-9999.99999.9M指單位米

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

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

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

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

            六、用戶自定義json模板

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

            圖片39




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

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

            {

            "illuminance" : 300,

            "humidity" : 65.7,

            "temperature" : 19.7

            }

            1:添加到原始的json包內

            配置json模板為:

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

            上報到服務器的json包為:


            圖片40




            2:添加到原始的json包外

            配置json模板為:

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

            上報到服務器的json包為:


            圖片41




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

            配置json模板為:

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

            上報到服務器的json包為:


            圖片42




            4:添加多重json

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

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

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

            上報到服務器的json包為:


            圖片43




            七、其他特殊關鍵字(服務器下發json指令)

            7.1 SHELL

            可以從服務器下發json格式的SHELL腳本,DTU會臨時執行一次腳本。

            7.1.1 阿里云IoT平臺下發SHELL腳本

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


            圖片44




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


            圖片45




            7.1.2 自建服務器下發SHELL腳本

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


            圖片46




            7.2 luaCode

            可以從服務器下發json報文配置用戶Lua代碼。

            7.2.1 阿里云IoT平臺配置用戶Lua代碼

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


            圖片47




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


            圖片48




            7.2.2 自建服務器配置用戶Lua代碼

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


            圖片49




            7.3 Reg1-Reg10

            LTE-xxx網關版本有10個可讀可寫的寄存器供用戶調用,可以用做閾值判斷。用戶可以自己配置Reg參數的值,只能是數字(可以是小數)。

            7.3.1 阿里云IoT平臺配置Reg

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


            圖片50




            切換到在線調試,從標識符“Reg1”下發設置的值。


            圖片51




            7.3.2 自建服務器配置Reg

            連接上服務器以后,直接從服務器下發{"Reg1":100}

            圖片52




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


            99久久综合国产精品二区国产精品久久久久久精品免费观看国产精品国产欧美综合一区jizjizjizji日本护士视频日韩社区一区二区三区国产又黄又爽又大的免费视频欧美日韩不卡一区二区三区中文字看大片的播放器特级aaaaaaaaa毛片免费视频免费的岛国大片av网站,精品综合久久久久久五月播播激情综合激情五月俺也去米奇奇米第四色一级特黄aaa大片在线观看视频久久久久久久久毛片精品久久精品视频免费观看v亚洲v日韩v欧美v综合,久久久久成亚洲综合精品久久久久久无码国产精品中文字幕国产黄a一级二级三级看三区av免费观看91精品国产综合久久久久久国产欧美日韩精品一区二区三区蜜桃不卡,亚洲国产成人av网站久久狠狠亚洲综合色成人免费网站久久另类精品欧美日韩高清精品不卡久久精品乱子伦国产成人一区二区三区a一级毛片日韩区女人毛片a级毛片免费视频亚洲美日韩av中文字幕无码久久久妻妇中文国产高清综合乱色视频在线播放,97精品国产高清自在线看超日韩精品无码视频免费专区国产一区麻豆剧传媒果冻精品91精品国产福利在线观看麻豆国产在线精品国自产在线91久久中文精品无码中文字幕国产高清在线a视频大全,国产精品午夜福利精品国精品四产自在久国产无码一二三四区免费久久久久精品久久久久久亚洲偷窥日本一区欧美国产日韩精品国精品国产AV自在久国产国产精品va免费视频亚洲色一久久久综合网亚洲欧美高清一区二区三区99久久久久精品国产免费日韩一级一欧美一级国产国产成a人片在线观看视频168亚洲综合av一区二区,亚洲欧美日韩久久精品亚洲欧美日韩国产成人精品影院亚洲国产欧美日韩精品一区二区三区欧美日韩国产成人高清视频欧美日韩在线精品一区二区三区激情综合