閻磊 馬宏琳
摘 ?要:大型糧食物流園區(qū)建設(shè)是糧食現(xiàn)代物流的重要發(fā)展方向,基于TCP/IP協(xié)議架構(gòu)的網(wǎng)絡(luò)綜合布線是糧食物流園區(qū)建設(shè)的基礎(chǔ)性工程,網(wǎng)絡(luò)機(jī)房設(shè)備間是綜合布線的重要組成部分,有效監(jiān)測其環(huán)境運(yùn)行溫濕度是保障整個(gè)園區(qū)計(jì)算機(jī)網(wǎng)絡(luò)正常運(yùn)行的重要基礎(chǔ)。文章研究了設(shè)備間溫濕度檢測技術(shù)的IP化方法,將傳統(tǒng)的RS485溫濕度監(jiān)測手段和TCP/IP協(xié)議結(jié)合起來,發(fā)揮設(shè)備間TCP/IP協(xié)議接入的優(yōu)勢,構(gòu)建了B/S架構(gòu)的設(shè)備間溫濕度監(jiān)測系統(tǒng),對(duì)系統(tǒng)的設(shè)計(jì)分析和實(shí)現(xiàn)過程進(jìn)行了說明,給出了應(yīng)用實(shí)例,效果良好。
關(guān)鍵詞:TCP/IP;溫濕度;Socket
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):2095-2945(2020)02-0016-03
Abstract: The construction of large-scale grain logistics park is an important development direction of modern grain logistics. Network integrated wiring based on TCP/IP protocol architecture is the basic project of grain logistics park construction. Network equipment room is an important part of integrated wiring, effectively monitoring its environment. Operating temperature and humidity arean important basis for ensuring the normal operation of the entire campus computer network. In this paper, the IP method of temperature and humidity detection technology between devices is studied. The traditional RS485 temperature and humidity monitoring method and TCP/IP protocol are combined to take advantage of the TCP/IP protocol access between devices, and the B/S architecture device is constructed. The inter-temperature and humidity monitoring system explains the design analysis and implementation process of the system.
Keywords: TCP/IP; temperature and humidity; Socket
引言
國家發(fā)展改革委2007年發(fā)布的《糧食現(xiàn)代物流發(fā)展規(guī)劃》中明確提出“發(fā)展糧食現(xiàn)代物流,實(shí)現(xiàn)糧食散儲(chǔ)、散運(yùn)、散裝、散卸(即‘四散化)的變革,提高糧食流通自動(dòng)化、系統(tǒng)化和設(shè)施現(xiàn)代化水平,對(duì)提高糧食流通效率,降低糧食流通成本,保障國家糧食安全具有重要意義[1]。”國務(wù)院2014年發(fā)布的《關(guān)于建立健全糧食安全省長責(zé)任制的若干意見》(“糧安工程”)中也指出要“組織實(shí)施糧食收儲(chǔ)供應(yīng)安全保障工程,將糧食倉儲(chǔ)物流設(shè)施作為重要農(nóng)業(yè)基礎(chǔ)設(shè)施抓緊建設(shè)[2]?!贝笮图Z食物流園區(qū)建設(shè)是實(shí)現(xiàn)“四散化”目標(biāo)的重要載體,是推進(jìn)“糧安工程”建設(shè)的有效途徑。
近年來,我國各糧食物流重要節(jié)點(diǎn)紛紛建立了大型的糧食物流園區(qū),在這些園區(qū)建設(shè)中,信息技術(shù)得到了廣泛應(yīng)用,計(jì)算機(jī)網(wǎng)絡(luò)綜合布線作為信息技術(shù)的基礎(chǔ)工程,也得到了廣泛應(yīng)用。網(wǎng)絡(luò)機(jī)房設(shè)備間是在每一幢大樓的適當(dāng)?shù)攸c(diǎn)設(shè)置電信設(shè)備和計(jì)算機(jī)網(wǎng)絡(luò)設(shè)備、以及建筑物配線設(shè)備、進(jìn)行網(wǎng)絡(luò)管理的場所[3],為了保證數(shù)據(jù)和網(wǎng)絡(luò)通信的暢通,設(shè)備間的設(shè)計(jì)、建設(shè)、運(yùn)行管理均有嚴(yán)格的規(guī)范要求。國家標(biāo)準(zhǔn)《建筑與建筑群綜合布線系統(tǒng)工程設(shè)計(jì)規(guī)范》(GB/T 50311-2000)中明確了設(shè)備間的溫濕度要求:設(shè)備間室溫應(yīng)保持在10~30℃之間,相對(duì)濕度應(yīng)保持10%~80%,并應(yīng)有良好的通風(fēng)[3],設(shè)備間內(nèi)的各種設(shè)備也要求明確的溫濕度運(yùn)行環(huán)境以便保證設(shè)備的正常運(yùn)行。
在大型糧食物流園區(qū)建設(shè)中,對(duì)網(wǎng)絡(luò)核心機(jī)房的環(huán)境要求比較注重,一般都配備了較好的精密空調(diào)等環(huán)境設(shè)備,但是在大量接入設(shè)備間內(nèi),往往沒有配置精密空調(diào)等環(huán)境設(shè)備,也沒有溫濕度的實(shí)時(shí)監(jiān)控設(shè)備,常常采取維護(hù)人員到現(xiàn)場測量環(huán)境溫濕度。對(duì)大量設(shè)備間的溫濕度監(jiān)控缺失,容易出現(xiàn)因溫濕度超標(biāo)引起設(shè)備運(yùn)行故障,而溫濕度監(jiān)控不到位也使維護(hù)人員卻難以預(yù)知此類故障。因此,有必要建立一套覆蓋所有設(shè)備間的溫濕度監(jiān)測系統(tǒng),實(shí)現(xiàn)對(duì)環(huán)境溫濕度的實(shí)時(shí)監(jiān)測。
1系統(tǒng)分析及設(shè)計(jì)
大型糧食物流園區(qū)的眾多機(jī)房設(shè)備間一般分布在不同建筑物的不同樓層、不同位置,相互間距離遠(yuǎn),需要在各個(gè)設(shè)備間安裝溫濕度采集設(shè)備,采集實(shí)時(shí)的溫度和濕度數(shù)據(jù),并能夠通過某種途徑傳輸至遠(yuǎn)端的數(shù)據(jù)采集中心,并進(jìn)行輸出顯示,對(duì)于超過閾值的數(shù)據(jù)還應(yīng)該能夠進(jìn)行報(bào)警。
通過上述分析,系統(tǒng)應(yīng)包括前端數(shù)據(jù)采集、傳輸網(wǎng)絡(luò)、后端數(shù)據(jù)存儲(chǔ)處理、終端數(shù)據(jù)查詢顯示等幾個(gè)層次。
其中“前端數(shù)據(jù)采集”在最底層,負(fù)責(zé)在上層程序控制下完成溫濕度數(shù)據(jù)的采集,目前,常見的溫濕度傳感器大都采用工業(yè)控制的RS485或RS232串行通訊協(xié)議和接口形式,一般采用MUDBUS協(xié)議進(jìn)行數(shù)據(jù)通信,難以進(jìn)入TCP/IP網(wǎng)絡(luò)。近年來,工業(yè)現(xiàn)場IP化趨勢日漸明顯,即采用串口轉(zhuǎn)換設(shè)備將RS485或RS232接口轉(zhuǎn)換為RJ45的以太網(wǎng)接口,實(shí)現(xiàn)TCP/IP協(xié)議和串口通訊協(xié)議的雙向轉(zhuǎn)換,從而將串口設(shè)備接入到標(biāo)準(zhǔn)的TCP/IP網(wǎng)絡(luò)中來,常見的轉(zhuǎn)換設(shè)備即串口服務(wù)器設(shè)備;
“傳輸網(wǎng)絡(luò)”是進(jìn)行控制指令和數(shù)據(jù)傳輸?shù)逆溌泛屯ǖ?“后端數(shù)據(jù)存儲(chǔ)處理”負(fù)責(zé)向前端發(fā)送數(shù)據(jù)采集指令,讀取接收采集的數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)和處理,為終端查詢顯示提供服務(wù),此外還負(fù)責(zé)系統(tǒng)參數(shù)配置和管理;“終端數(shù)據(jù)查詢顯示”負(fù)責(zé)向維護(hù)人員和管理人員提供系統(tǒng)使用界面,用于人機(jī)交互。
系統(tǒng)結(jié)構(gòu)圖如圖1所示。
在設(shè)備間內(nèi),一般布置有網(wǎng)絡(luò)交換設(shè)備,可以提供方便的計(jì)算機(jī)網(wǎng)絡(luò)接入,通過TCP/IP協(xié)議進(jìn)行數(shù)據(jù)傳輸,構(gòu)建起基于TCP/IP協(xié)議的機(jī)房溫濕度監(jiān)測系統(tǒng),從而實(shí)現(xiàn)遠(yuǎn)程檢測。
前端采集設(shè)備考慮采用具有RS232接口的溫濕度傳感器,通過串口服務(wù)器設(shè)備接入計(jì)算機(jī)網(wǎng)絡(luò)中。能夠?qū)S-232/485/422等串口協(xié)議轉(zhuǎn)換成TCP/IP以太網(wǎng)網(wǎng)絡(luò)協(xié)議接口,從而實(shí)現(xiàn)對(duì)用戶的串口與網(wǎng)絡(luò)接口的雙向數(shù)據(jù)完全透明傳輸。這樣,串口設(shè)備也就具備了TCP/IP網(wǎng)絡(luò)接口功能,連接以太網(wǎng)進(jìn)行數(shù)據(jù)通信,極大延伸串口設(shè)備的通信距離。
后端數(shù)據(jù)存儲(chǔ)處理、終端數(shù)據(jù)查詢顯示等采用基于B/S(Browser/Server)架構(gòu)的系統(tǒng)設(shè)計(jì),通過HTTP等高層協(xié)議實(shí)現(xiàn)數(shù)據(jù)訪問。
對(duì)于采集的數(shù)據(jù),在后端數(shù)據(jù)存儲(chǔ)處理中采取數(shù)據(jù)庫存儲(chǔ)方式,通過對(duì)數(shù)據(jù)的分析,得到主要數(shù)據(jù)表(TF_Info)結(jié)構(gòu)如表1所示。TF_Info數(shù)據(jù)表存儲(chǔ)采集到的溫度和濕度數(shù)據(jù),由4個(gè)字段組成,TFID表示所采集的傳感器ID號(hào),Temp表示采集的溫度數(shù)據(jù),RH表示采集的濕度數(shù)據(jù),Time表示采集溫濕度數(shù)據(jù)的采集時(shí)間。
具有RS232接口的溫濕度傳感器可以通過16進(jìn)制指令讀取溫濕度數(shù)據(jù),通過串口服務(wù)器轉(zhuǎn)換成TCP/IP協(xié)議接入計(jì)算機(jī)網(wǎng)絡(luò),再由后端數(shù)據(jù)存儲(chǔ)處理程序應(yīng)用Socket套接字編程進(jìn)行數(shù)據(jù)讀取。
通過上述分析,整個(gè)系統(tǒng)可以分為若干功能模塊,分別對(duì)應(yīng)各個(gè)邏輯層次,系統(tǒng)功能模塊圖如圖2所示。
其中,系統(tǒng)管理用于管理用戶信息、權(quán)限設(shè)置、密碼管理等功能;參數(shù)設(shè)置用于訪問地址、連接速率等;設(shè)備管理用于設(shè)備名稱、設(shè)備地址、設(shè)備端口、設(shè)備狀態(tài)等設(shè)備信息管理;數(shù)據(jù)查詢可以按照多條件進(jìn)行溫濕度數(shù)據(jù)的查詢;預(yù)警管理可以設(shè)置預(yù)警閾值、查看預(yù)警報(bào)警信息等;統(tǒng)計(jì)分析可以按照多條件進(jìn)行數(shù)據(jù)的統(tǒng)計(jì)分析;日志管理用于記錄系統(tǒng)日志。
2 系統(tǒng)實(shí)現(xiàn)
采集和傳輸過程的系統(tǒng)實(shí)現(xiàn)核心是TCP/IP協(xié)議的Socket套接字編程。為了區(qū)別不同的應(yīng)用程序進(jìn)程和連接,許多計(jì)算機(jī)操作系統(tǒng)為應(yīng)用程序與TCP/IP協(xié)議交互提供了稱為套接字(Socket)的接口,區(qū)分不同應(yīng)用程序進(jìn)程間的網(wǎng)絡(luò)通信和連接。美國加州大學(xué)伯克利分校發(fā)布的UNIX4.2 BSD系統(tǒng)首先使用了套接字Socket技術(shù)來加強(qiáng)網(wǎng)絡(luò)通信功能[4],并成為事實(shí)上的網(wǎng)絡(luò)套接字標(biāo)準(zhǔn)。
要通過互聯(lián)網(wǎng)進(jìn)行通信,至少需要一對(duì)套接字,一個(gè)運(yùn)行于客戶機(jī)端,稱之為ClientSocket,另一個(gè)運(yùn)行于服務(wù)器端,稱之為ServerSocket。
Server端Listen(監(jiān)聽)某個(gè)端口是否有連接請求,Client端向Server 端發(fā)出Connect(連接)請求,Server端向Client端發(fā)回Accept(接受)消息。一個(gè)連接就建立起來了。Server端和Client 端都可以通過Send,Write等方法與對(duì)方通信。
對(duì)于一個(gè)功能齊全的Socket,都要包含以下基本結(jié)構(gòu),其工作過程包含以下四個(gè)基本的步驟:
●創(chuàng)建Socket;
●打開連接到Socket的輸入/出流;
●按照一定的協(xié)議對(duì)Socket進(jìn)行讀/寫操作;
●關(guān)閉Socket。
本文中在串口服務(wù)器上設(shè)定了工作模式為TCP Server,即服務(wù)器端(ServerSocket),在后端數(shù)據(jù)存儲(chǔ)處理中設(shè)置為客戶機(jī)端(ClientSocket)。
通過Socket連接串口服務(wù)器,由串口服務(wù)器連接前端溫濕度傳感器獲得16進(jìn)制的溫濕度數(shù)據(jù),經(jīng)過轉(zhuǎn)換后得到10進(jìn)制的溫濕度數(shù)據(jù)。
如接收到的16進(jìn)制數(shù)據(jù)為:
02 92 01 0D A2
其中,“02 92”是濕度數(shù)據(jù),“01 0D”是溫度數(shù)據(jù),“A2”是校驗(yàn)值,校驗(yàn)位計(jì)算:02+92+01+0D=A2。
則濕度:0×163+2×162+9×161+2×160=658,表示濕度為65.8%RH。
則溫度:0×163+1×162+0×161+D×160=269,表示溫度為26.9℃。
本文采用JAVA平臺(tái)作為主開發(fā)平臺(tái),通過Socket讀取溫濕度數(shù)據(jù)的部分程序代碼如下:
//創(chuàng)建Socket連接
TempRHSocket = new TempRHSocket(host,port);
//打開連接到Socket的輸入/出流
TempRHSocketReader = TempRHSocket.getInputStream();
TempRHSocketWriter = TempRHSocket.getOutputStream();
//按照一定的協(xié)議對(duì)Socket進(jìn)行讀/寫操作
TempRHSocketReader.read(receive_TRH);
TempRHSocket.close(); //關(guān)閉Socket
intTemp = 0;
str = "";
intTemp = receive_TRH[0] >= 0 ? receive_TRH[0] : 256 + receive_TRH[0];
str = str+Integer.toHexString(intTemp);
lX = Long.parseLong(str,16);
Temp = lX*10; ?//計(jì)算溫度
intTemp = 0;
str = "";
intTemp = receive_TRH[1] >= 0 ? receive_TRH[1] : 256 + receive_TRH[1];
str = str+Integer.toHexString(intTemp);
lX = Long.parseLong(str,16);
RH = lX; ? //計(jì)算濕度
讀取到的溫濕度數(shù)據(jù)寫入數(shù)據(jù)庫中的TF_Info數(shù)據(jù)表中。后端數(shù)據(jù)存儲(chǔ)處理程序采用B/S架構(gòu)進(jìn)行數(shù)據(jù)處理,最終向用戶提供基于WEB的訪問方式。
B/S結(jié)構(gòu)即瀏覽器和服務(wù)器結(jié)構(gòu),在這種結(jié)構(gòu)下,用戶工作界面是通過WWW瀏覽器來實(shí)現(xiàn),具有分布性特點(diǎn),業(yè)務(wù)擴(kuò)展簡單方便,維護(hù)簡單,開發(fā)便捷等特點(diǎn)。
程序主要界面如圖3所示。
3 結(jié)束語
大型糧食物流園區(qū)設(shè)備間溫濕度監(jiān)測是確保機(jī)房設(shè)備間運(yùn)行環(huán)境的前提,將布置在前端溫濕度傳感器接入網(wǎng)絡(luò)中,并通過TCP/IP協(xié)議對(duì)傳感器進(jìn)行數(shù)據(jù)讀取,可以方便快捷地獲取到溫濕度數(shù)據(jù),從而盡早發(fā)現(xiàn)因環(huán)境溫濕度導(dǎo)致的設(shè)備故障。通過建立基于B/S架構(gòu)的系統(tǒng)軟件,實(shí)現(xiàn)了溫濕度的遠(yuǎn)程檢測,通過在河南、江蘇等地大型糧食物流園區(qū)的廣泛使用,效果良好。
串口服務(wù)器作為工業(yè)現(xiàn)場IP化設(shè)備的出現(xiàn),使得基于TCP/IP協(xié)議控制遠(yuǎn)端串口設(shè)備成為可能,因此,開展基于TCP/IP協(xié)議的機(jī)房設(shè)備間溫濕度監(jiān)測研究研究將有助于提高設(shè)備運(yùn)行環(huán)境監(jiān)測能力,更好地滿足信息化管理維護(hù)的需求。
參考文獻(xiàn):
[1]國家發(fā)展改革委關(guān)于印發(fā)糧食現(xiàn)代物流發(fā)展規(guī)劃的通知(發(fā)改經(jīng)貿(mào) [2007] 2136號(hào))[EB/OL]. http://www.sdpc.gov.cn/zcfb/zcfbghwb/200708/t20070830_579684.html.
[2]國務(wù)院關(guān)于建立健全糧食安全省長責(zé)任制的若干意見國發(fā)〔2014〕69號(hào)[EB/OL]http://www.gov.cn/zhengce/content/2015-01/22/content_9422.htm.
[3]GB/T 50311-2000.建筑與建筑群綜合布線系統(tǒng)工程設(shè)計(jì)規(guī)范[S].2000.
[4]David Coffield, Doug shepherd, Tutorial Guide to UNIX Sockets fro Network Communications, Computer Communication[J]. Vol.10, No.1, Feb.1987,PP21-29.
[5]劉啟文,孫傳林.TCP/IP協(xié)議網(wǎng)絡(luò)通信Socket結(jié)構(gòu)的設(shè)計(jì)與應(yīng)用[J].微型機(jī)與應(yīng)用,1993(12):31-33.
[6]Behrouz A.Forouzan, TCP/IP Protocol Suite, Fourth Edition[M]. McGraw Hill Higher Education,2009.
[7]陳昊鵬.Java編程思想(第4版)[M].機(jī)械工業(yè)出版社,2007.
[8]Elliotte Rusty Harold, Java Network Programming, Third Edition[M]. O' Reilly Media, Inc.,2004.