摘 要:在塔吊的遠(yuǎn)程安全監(jiān)控系統(tǒng)中,由于GPRS模塊采用的數(shù)據(jù)包格式、使用的協(xié)議及端口等各不相同,將GPRS模塊發(fā)來的數(shù)據(jù)向監(jiān)控后臺轉(zhuǎn)存的方式也難以統(tǒng)一,本文將對塔吊的遠(yuǎn)程安全監(jiān)控系統(tǒng)中的數(shù)據(jù)轉(zhuǎn)存功能模塊進(jìn)行分析研究與設(shè)計(jì)。
關(guān)鍵詞:塔吊;遠(yuǎn)程安全監(jiān)控;數(shù)據(jù)轉(zhuǎn)存
中圖分類號:TP311.52
塔吊遠(yuǎn)程監(jiān)控管理系統(tǒng)主要是對一個(gè)工地塔吊進(jìn)行監(jiān)視控制,對塔吊的使用過程和行為及時(shí)進(jìn)行有效的監(jiān)管預(yù)防和減少起重機(jī)安全生產(chǎn)事故發(fā)生切實(shí)控制危險(xiǎn)因素和安全隱患。在單個(gè)塔機(jī)上實(shí)現(xiàn)了對其工作參數(shù)的監(jiān)控,已經(jīng)不能滿足現(xiàn)代化安全管理的需要,集中式的全過程遠(yuǎn)程監(jiān)控成為必然。
塔吊遠(yuǎn)程監(jiān)控管理系統(tǒng)主要由以下幾部分組成:塔機(jī)黑匣子、GPRS無線模塊、數(shù)據(jù)轉(zhuǎn)接系統(tǒng)、監(jiān)控后臺(如圖1所示)。其中塔機(jī)黑匣子主要應(yīng)用于塔機(jī)的實(shí)時(shí)監(jiān)控,實(shí)時(shí)采集塔機(jī)的工作參數(shù),實(shí)現(xiàn)塔機(jī)多種安全限制器的功能等。GPRS模塊借助于GPRS網(wǎng)絡(luò)與INTERNET無縫連接的特點(diǎn),將采集到的參數(shù)信息傳輸?shù)竭h(yuǎn)端數(shù)據(jù)接收終端,只要GPRS網(wǎng)絡(luò)覆蓋到的地方都在可監(jiān)控的范圍之下。數(shù)據(jù)轉(zhuǎn)存系統(tǒng)將GPRS模塊傳輸來的數(shù)據(jù)進(jìn)行接收、處理并調(diào)用監(jiān)控后臺的數(shù)據(jù)存儲過程,將數(shù)據(jù)按規(guī)定的格式存儲到數(shù)據(jù)庫。后臺監(jiān)控系統(tǒng)包括數(shù)據(jù)庫和WEB服務(wù)器,主要是將數(shù)據(jù)庫中的相關(guān)數(shù)據(jù)在WEB頁面中進(jìn)行實(shí)時(shí)顯示,實(shí)現(xiàn)遠(yuǎn)程監(jiān)控。本文重點(diǎn)討論數(shù)據(jù)接收系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。
1 數(shù)據(jù)轉(zhuǎn)存系統(tǒng)的功能
從以上的系統(tǒng)模型圖可以看出,數(shù)據(jù)接收系統(tǒng)在整個(gè)系統(tǒng)中位于GPRS模塊和監(jiān)控后臺之間,實(shí)現(xiàn)數(shù)據(jù)的轉(zhuǎn)存。總的來看主要實(shí)現(xiàn)三方面的功能:
(1)接收GPRS模塊發(fā)送的數(shù)據(jù)。(2)實(shí)現(xiàn)數(shù)據(jù)處理。(3)將處理好的數(shù)據(jù)保存到后臺數(shù)據(jù)庫。
2 數(shù)據(jù)轉(zhuǎn)存系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
本設(shè)計(jì)采用Socket技術(shù)實(shí)現(xiàn)GPRS模塊數(shù)據(jù)的接收,并調(diào)用后臺數(shù)據(jù)庫的存儲過程或執(zhí)行T-SQL語句向監(jiān)控后臺的進(jìn)行透明數(shù)據(jù)轉(zhuǎn)存。
2.1 數(shù)據(jù)接收。使用Socket技術(shù),用主線程進(jìn)行端口的不間斷監(jiān)聽,采用多線程的形式接收GPRS模塊發(fā)送來的各個(gè)塔機(jī)黑匣子采集的數(shù)據(jù)。
(1)Socket通信是計(jì)算機(jī)網(wǎng)絡(luò)通信中的一種常用方法,在編程過程中可以很方便地調(diào)用Socket的相關(guān)對象或函數(shù)來實(shí)現(xiàn)網(wǎng)絡(luò)通信。由于在GPRS模塊中已設(shè)置好數(shù)據(jù)轉(zhuǎn)存系統(tǒng)所在的主機(jī)IP地址及端口號,所以本系統(tǒng)只需在創(chuàng)建服務(wù)器端Socket對象時(shí)指定對應(yīng)的端口號即可,系統(tǒng)會使用這個(gè)設(shè)置的端口監(jiān)聽客戶端(GPRS模塊,下同)的請求。(2)多線程。在本系統(tǒng)中,在服務(wù)器上運(yùn)行數(shù)據(jù)轉(zhuǎn)存系統(tǒng),它可以接收來自其他多個(gè)客戶端的請求,提供相應(yīng)的轉(zhuǎn)存服務(wù)。為了實(shí)現(xiàn)在服務(wù)器方給多個(gè)客戶端提供服務(wù)的功能,需要利用多線程實(shí)現(xiàn)多客戶機(jī)制。服務(wù)器總是在指定的端口上用主線程監(jiān)聽是否有客戶請求,一旦監(jiān)聽到客戶請求,服務(wù)器就會啟動一個(gè)新的服務(wù)線程來響應(yīng)該客戶端的數(shù)據(jù)轉(zhuǎn)存請求,而服務(wù)器的主線程在啟動完新線程之后馬上又進(jìn)入監(jiān)聽狀態(tài),等待下一個(gè)客戶端數(shù)據(jù)的到來。
2.2 數(shù)據(jù)處理。客戶端根據(jù)數(shù)據(jù)傳輸協(xié)議格式發(fā)送十六進(jìn)制數(shù)據(jù)包,數(shù)據(jù)接收程序通過輸入流讀取數(shù)據(jù),識別有效的數(shù)據(jù)包并按協(xié)議格式進(jìn)行數(shù)據(jù)分析處理。
(1)識別有效數(shù)據(jù)包。GPRS模塊發(fā)送的數(shù)據(jù)除了采集的有效現(xiàn)場數(shù)據(jù)包外,還可能包含其它的信息,為了保證數(shù)據(jù)的準(zhǔn)確性,需對有效數(shù)據(jù)進(jìn)行識別。一般使用兩個(gè)協(xié)議中定義的參數(shù)進(jìn)行識別:結(jié)束符和數(shù)據(jù)包長度。先將讀取的數(shù)據(jù)緩存,當(dāng)讀取的字節(jié)數(shù)據(jù)為結(jié)束符(如“0x0D,0x0A”)時(shí),從緩存的數(shù)據(jù)中按協(xié)議規(guī)定的長度讀取有效的數(shù)據(jù)包。(2)數(shù)據(jù)格式轉(zhuǎn)換?,F(xiàn)場采集的數(shù)據(jù)信息在數(shù)據(jù)包中用不同長度(一般為一到兩個(gè)字節(jié))的字節(jié)來表示,將接收到的十六進(jìn)制數(shù)據(jù)按數(shù)據(jù)傳輸協(xié)議格式進(jìn)行拆分組裝,并進(jìn)行數(shù)制轉(zhuǎn)換,以十進(jìn)制的方式進(jìn)行相關(guān)運(yùn)算后保存。
2.3 數(shù)據(jù)轉(zhuǎn)存。對于數(shù)據(jù)接收程序來說,最后一個(gè)步驟是將接收處理后的數(shù)據(jù)按要求存儲到后臺監(jiān)控系統(tǒng)的數(shù)據(jù)庫中。后臺監(jiān)控系統(tǒng)一般會提供存儲過程接口,若僅有數(shù)據(jù)庫結(jié)構(gòu),則需要在程序中向數(shù)據(jù)庫的對應(yīng)數(shù)據(jù)表插入數(shù)據(jù)。根據(jù)后臺數(shù)據(jù)庫的要求,將轉(zhuǎn)換后的數(shù)據(jù)作為參數(shù),調(diào)用數(shù)據(jù)庫在相關(guān)存儲過程或執(zhí)行T-SQL語句插入數(shù)據(jù)即可。
(1)設(shè)備上線。設(shè)備上線后即進(jìn)行向后臺監(jiān)控服務(wù)器注冊請求,請求時(shí)報(bào)告設(shè)備編號、設(shè)備型號等。(2)上報(bào)塔基基本信息。包括設(shè)備編號、前臂長、后臂長、塔機(jī)高、塔帽高、配重高、塔機(jī)類型等。(3)上報(bào)塔機(jī)防碰撞參數(shù)。包括塔吊設(shè)備編號、橫坐標(biāo)、縱坐標(biāo)、初始角度、初始變幅、防碰撞預(yù)警角度等。(4)上報(bào)力矩及限位系統(tǒng)參數(shù)。包括塔吊設(shè)備編號、力矩預(yù)警百分比、力矩報(bào)警百分比、力矩故障百分比、限制風(fēng)速等。(5)存儲塔機(jī)運(yùn)行數(shù)據(jù)。包括塔吊設(shè)備編號、上傳時(shí)間、回轉(zhuǎn)角度、幅度、吊鉤高度、吊重、力矩百分比、安全吊重、風(fēng)速、吊繩倍率、預(yù)警編碼、告警編碼、違章編碼等。(6)塔機(jī)運(yùn)行時(shí)間。包括設(shè)備編號、上線時(shí)間、運(yùn)行的時(shí)間長度等。(7)設(shè)備下線。包括設(shè)備編號。
3 可能存在的問題及解決思路
3.1 傳輸協(xié)議的選擇。塔機(jī)遠(yuǎn)程監(jiān)控系統(tǒng)中用TCP或UDP協(xié)議實(shí)現(xiàn)數(shù)據(jù)傳輸,根據(jù)這兩種協(xié)議的特點(diǎn),若數(shù)據(jù)量較小、實(shí)時(shí)性要求很高則選擇UDP要好些;若數(shù)據(jù)量較大,對可靠性要求很高一般選擇TCP協(xié)議。對本系統(tǒng)來說,選擇不同的協(xié)議只是在使用Socket時(shí)稍有不同。
3.2 數(shù)據(jù)包緩存。在本系統(tǒng)的實(shí)現(xiàn)中,對收到的數(shù)據(jù)先進(jìn)行緩存,再從收到的結(jié)束符按長度從緩存的數(shù)據(jù)中取出數(shù)據(jù)包,這樣需占系統(tǒng)資源,所以在每次取出完整數(shù)據(jù)包后應(yīng)及時(shí)清空緩存的數(shù)據(jù),來保證系統(tǒng)資源的利用率。
3.3 設(shè)備下線。若設(shè)備在下線時(shí)發(fā)送下線數(shù)據(jù)包則執(zhí)行設(shè)備下線,若設(shè)備下線時(shí)不能發(fā)送下線數(shù)據(jù)包(如意外停電),且在約定的時(shí)間內(nèi)(如5分鐘)未收到該設(shè)備的數(shù)據(jù)包則系統(tǒng)主動執(zhí)行設(shè)備下線。
3.4 系統(tǒng)通用性。為了實(shí)現(xiàn)程序的通用性,應(yīng)該提供以下幾方面的初始化功能。
(1)系統(tǒng)接收數(shù)據(jù)的端口號。(2)GPRS模塊發(fā)送的數(shù)據(jù)格式。(3)后臺數(shù)據(jù)庫的連接參數(shù)。
4 結(jié)束語
為了適應(yīng)經(jīng)濟(jì)在迅速發(fā)展,在工程建設(shè)方面,對起重機(jī)、塔吊等的使用過程和行為及時(shí)進(jìn)行有效的監(jiān)管成為了切實(shí)控制危險(xiǎn)因素和安全隱患,預(yù)防和減少起重機(jī)安全生產(chǎn)事故發(fā)生重中之重,因此塔吊的遠(yuǎn)程安全監(jiān)控系統(tǒng)已經(jīng)得到了廣泛的應(yīng)用。根據(jù)國家十二五計(jì)劃規(guī)定,大型起重機(jī)械必須安裝安全保護(hù)裝置(塔吊黑匣子)。目前后臺監(jiān)控系統(tǒng)及數(shù)據(jù)庫的結(jié)構(gòu)已趨于統(tǒng)一,但GPRS模塊發(fā)送的數(shù)據(jù)格式和數(shù)據(jù)轉(zhuǎn)存方式還有很大差異,本文提出的數(shù)據(jù)轉(zhuǎn)存設(shè)計(jì)與實(shí)現(xiàn)方案具有潛在的社會價(jià)值。
參考文獻(xiàn):
[1]湯坤林.塔式起重機(jī)上的“黑匣子”[J].建筑施工,2007,8:610-613.
[2]Bob Quinn,Dave Shute,Windows Sockets網(wǎng)絡(luò)編程[M].徐磊等.北京:機(jī)械工業(yè)出版社,2012,8.
[3]虞洪.《塔式起重機(jī)安全規(guī)程》修訂對行業(yè)的影響[J].建筑機(jī)械,2009,5:20-25.
作者簡介:陳玉平(1974.4-),男,湖北人,教師,講師,碩士,研究方向:計(jì)算機(jī)軟件。
作者單位:湖北三峽職業(yè)技術(shù)學(xué)院,湖北宜昌 443000