JSON數據采集網(wang)關是一種(zhong)能夠將各種(zhong)傳(chuan)感器的(de)數據采集后(hou)按照(zhao)JSON格(ge)式上傳(chuan)服(fu)務器的(de)網(wang)關。
JSON(JavaScript Object Notation)是java中的數據格(ge)式。例如{“power”:”100”, “time”:”10:12:23”}這樣的格(ge)式,由于它簡(jian)單易用(yong),計(ji)算(suan)機和人都(dou)非(fei)常容易讀懂,所以漸(jian)漸(jian)成為一種通用(yong)的服務器數據交換格(ge)式。
介(jie)于物聯(lian)網的發(fa)展和云(yun)計算機、云(yun)服務(wu)器的普及,物聯(lian)網數(shu)據(ju)采用(yong)JSON格式上發(fa)服務(wu)器越來越受到歡迎。但是數(shu)據(ju)采集儀表(biao)一(yi)(yi)般采用(yong)RS485數(shu)據(ju)總(zong)線(xian),采用(yong)Modbus RTU、國(guo)標(biao)645等儀表(biao)協議,底(di)層(ceng)設備工程(cheng)師(shi)(shi)熟悉此類設備協議,但是服務(wu)器開(kai)發(fa)工程(cheng)師(shi)(shi)不熟悉;而底(di)層(ceng)設備工程(cheng)師(shi)(shi)又不懂得如何(he)通過網絡發(fa)送(song)JSON格式數(shu)據(ju)給服務(wu)器開(kai)發(fa)工程(cheng)師(shi)(shi)。所以需要(yao)一(yi)(yi)種設備能夠成為(wei)這種數(shu)據(ju)轉化的橋梁。
1.首先數據采集網(wang)關會(hui)根據配置,發送(song)查(cha)詢數據給連接(jie)的RS485設備。
2.收到數(shu)據(ju)以(yi)后(hou)(hou),網關會提取里(li)面的(de)數(shu)據(ju),并轉化為指定(ding)的(de)格式,比如整型、小數(shu)等,然后(hou)(hou)將這個(ge)指令(ling)的(de)返(fan)回數(shu)據(ju)和json關鍵詞(ci)相對(dui)應存儲起來。
3.網關會(hui)每隔(ge)一定時間上發json格式數據(ju)包(bao)到服務器(qi)。
1.上位機對接的(de)協(xie)議(yi)可以為:MQTT協(xie)議(yi)+JSON、純JSON TCP/IP數(shu)據(ju)、HTTP POST+JSON和HTTP GET JSON數(shu)據(ju)。
2.下(xia)位(wei)機協(xie)議支(zhi)持Modbus RTU協(xie)議、645儀表協(xie)議和(he)非標協(xie)議的定制(zhi)。
3.所有的上發(fa)協議JSON格式(shi)和下位(wei)機協議都(dou)可以通過界(jie)面(mian)化(hua)設計,無需編程。
4.支持(chi)在JSON格式中可以(yi)加入(ru)設備ID、時間、任意字符串。支持(chi)JSON格式的嵌套(tao)書寫(xie)方法。
5.上傳數(shu)(shu)據(ju)支(zhi)(zhi)持(chi)(chi)無(wu)符號數(shu)(shu)據(ju)和有符號數(shu)(shu)據(ju),支(zhi)(zhi)持(chi)(chi)小數(shu)(shu)點表示,支(zhi)(zhi)持(chi)(chi)4字節(jie)長度數(shu)(shu)據(ju),支(zhi)(zhi)持(chi)(chi)布爾型變(bian)量(liang)。
1.首先(xian)需要確(que)認(ren)設備(bei)的固件版本在(zai)1.581及其(qi)以上版本(對于2043),使(shi)用(yong)ZLVircom5.18搜索到設備(bei)后,進入(ru)設備(bei)編(bian)輯,點擊“固件和配置(zhi)”按鈕
2.選擇網頁(ye)目錄下載,選擇一個(ge)空的目錄,用(yong)于保存配置,然后點擊JSON配置。
3.在這里選擇上發服務器(qi)的(de)(de)時間間隔,以及上發的(de)(de)方式,比如MQTT、POST、GET等,然后點擊(ji)“添(tian)加/查看”按鈕,設計每個JSON和(he)對應的(de)(de)Modbus寄(ji)存器(qi)。
4.這里輸入這個JSON的(de)(de)(de)關鍵詞(ci)為power,并且選擇它的(de)(de)(de)Modbus地(di)址(zhi)的(de)(de)(de)站地(di)址(zhi)、功能碼、寄存(cun)器地(di)址(zhi),以及(ji)采集的(de)(de)(de)數據的(de)(de)(de)數據類(lei)型和(he)小數點(dian)。這樣采集的(de)(de)(de)這個Modbus寄存(cun)器內容將(jiang)會寫到power的(de)(de)(de)后(hou)面,類(lei)似{“power”:”100”}。
5.如果(guo)還(huan)有設計(ji)則(ze)點(dian)擊(ji)(ji)“設計(ji)下一個(ge)”,否則(ze)點(dian)擊(ji)(ji)“保(bao)存設計(ji)”,在上一級對話框中(zhong)點(dian)擊(ji)(ji)“保(bao)存JSON設置(zhi)”,然后再上一級對話框中(zhong)下載配(pei)置(zhi)到設備(bei)內(nei)部。
之后設備(bei)就會(hui)自動采集站(zhan)地址為1、功能碼(ma)為3、寄(ji)存器(qi)0的Modbus數(shu)據,并主動按JSON格式,每隔5秒鐘(zhong)發(fa)送到服務器(qi)(當然需要先設置(zhi)設備(bei)連接到服務器(qi))。
使用此方法(fa)設(she)備工程師再也不用愁如(ru)何將Modbus儀表如(ru)何JSON格(ge)式對接云端了。