ZigBee無線壓力表標(biāo)定程序設(shè)計
由于受到石油礦井工作規(guī)程限制,為了使壓力表方便操作,采用ZigBee模塊間無線通信方式,實現(xiàn)標(biāo)定 軟件與壓力表的數(shù)據(jù)傳輸,校正壓力表傳感器的精度,保證計量的準(zhǔn)確性。這就要使基于數(shù)據(jù)鏈路層的Modbus協(xié) 議與基于網(wǎng)絡(luò)層的API模式下ZigBee進行通信,采用在Modbus的基礎(chǔ)上加上API的協(xié)議層的方法來實現(xiàn)。實驗 結(jié)果表明,無線通信模式提高了傳輸數(shù)據(jù)的準(zhǔn)確性。
1.引言
石油氣井壓力表頭用于采集氣井的壓力、溫度等數(shù)據(jù)。壓力表頭內(nèi)部有傳感器,故需要用壓力表標(biāo)定軟件來 校正壓力表傳感器的精度,保證壓力表計量的準(zhǔn)確性。但是由于受到石油礦井工作規(guī)程限制,壓力表工作時完全 處于密封狀態(tài),壓力表與采集中心是通過ZigBee傳感器無線網(wǎng)絡(luò)實現(xiàn)數(shù)據(jù)通信。之前的標(biāo)定軟件以有線的方式 連接壓力表,這樣標(biāo)定時就需要暫停壓力表工作,將工作現(xiàn)場壓力表拆下并換上另一個表,然后將此壓力表帶回 標(biāo)定辦公室標(biāo)定拆封,標(biāo)定完成后工作人員再將此壓力表放回到工作現(xiàn)場。一般情況下標(biāo)定辦公室與工作現(xiàn)場 路程遙遠,來來回回不僅耗費工作人員的時間,而且拆封壓力表接線也比較麻煩。基于此,直接通過ZigBee無線 通信方式,實現(xiàn)標(biāo)定軟件與壓力表的數(shù)據(jù)傳輸,從而實現(xiàn)標(biāo)定工作,這樣一來工作人員即可在現(xiàn)場在線方式下實 現(xiàn)對壓力表的標(biāo)定,無需任何設(shè)備拆裝,標(biāo)定完成后即可使用。
研究基于ZigBee技術(shù)設(shè)計了一種新型的壓力表標(biāo)定通訊系統(tǒng)。
2.ZigBee技術(shù)概述
ZigBee是IEEE 802. 15.4協(xié)議的代名詞,根據(jù)這個協(xié)議規(guī)定的技術(shù)是一種短距離、低功耗的無線通信技術(shù), 其特點是近距離、低復(fù)雜度、自組織、低功耗、低數(shù)據(jù)速率、低成本。ZigBee技術(shù)還具有較高的可靠性和安全 性。它在MAC(Media Access Control)層米用了 talk-whemready的碰撞避免機制,在這種完全確認的數(shù)據(jù)傳輸機制下,當(dāng)有數(shù)據(jù)傳送需求時則立刻傳送,發(fā)送的每個數(shù)據(jù)包都必須等待接收方的確認信息,并進行確認回復(fù),若沒 有得到確認信息的回復(fù),就表示發(fā)生碰撞,將再傳一次;ZigBee提供了基于循環(huán)冗余校驗CRC的數(shù)據(jù)包完整性檢 查功能,支持鑒權(quán)和認證,采用了 AES-128的加密算法,對所傳輸?shù)臄?shù)據(jù)信息進行加密處理,各個應(yīng)用可以靈活 確定其安全屬性⑴。ZigBee棧體系結(jié)構(gòu)是基于標(biāo)準(zhǔn)開放網(wǎng)絡(luò)互聯(lián)(0SI)七層協(xié)議模型,其物理層及MAC層為 IEEE 802. 15.4協(xié)議標(biāo)準(zhǔn)定義,網(wǎng)絡(luò)層為技術(shù)聯(lián)盟制定⑷。ZigBee技術(shù)的較低數(shù)據(jù)速率以及較小通信范圍的特 點決定了 ZigBee技術(shù)適用于承載數(shù)據(jù)量較小的業(yè)務(wù)。簡而言之,ZigBee就是一種便宜的、低功耗的近距離無線 組網(wǎng)通訊技術(shù)。
3.壓力表標(biāo)定軟件設(shè)計
3.1設(shè)計語言以及運行環(huán)境
因為C#語言是微軟為.NET Framework平臺打造的一門新語言,具有與系統(tǒng)平臺無關(guān),與C/C++語言一脈相承、開發(fā)周期短、維護容易等優(yōu)點,所以在Visual Studio 2010集成開發(fā)平臺上使用C #語言編寫和調(diào)試程序。 此標(biāo)定軟件的工作環(huán)境為PC機下的Windows XP操作系統(tǒng)。
3. 2 ZigBee工作模式
在PC機的RS-232串行通信接口上外接一個RS-232/RS-485轉(zhuǎn)接器,然后與壓力表的RS-485端口對接。 壓力表的通信協(xié)議采用Modbus儀表協(xié)議。標(biāo)定軟件通過串行通信對壓力表的寄存器實現(xiàn)讀和寫。當(dāng)前壓力表 使用的ZigBee模塊支持透明方式(AT)和應(yīng)用程序接口(APFApplication Programming Interface)兩種操作方式。
前者為缺省操作方式,以字節(jié)為單位操作各種信息,后者是以一定格式的數(shù)據(jù)幀為單位操作各種信息。但由 于AT模式適合在點對點的通信模式,當(dāng)應(yīng)用在多點通信時,傳輸效率極低,所以現(xiàn)如今的壓力表都使用API協(xié) 議模式。當(dāng)工作在API模式時,所有進出模塊的數(shù)據(jù)均被包含在定義模塊的操作和事件的幀結(jié)構(gòu)中。API操作 要求模塊之間采用一種結(jié)構(gòu)化的接口(數(shù)據(jù)通過一種定義好序列的幀來交互通信來進行通信)進行通信,同時 API規(guī)定了通過串口數(shù)據(jù)幀如何發(fā)命令、命令響應(yīng)以及模塊狀態(tài)信息的傳送與接收。
3. 3設(shè)計與實現(xiàn)
標(biāo)準(zhǔn)的Modbus是使用RS-232兼容串行接口,定義了連接口的針腳、電纜、信號位、傳輸波特率、奇偶校驗。 控制器能直接或經(jīng)由Modem組網(wǎng)。原來的標(biāo)定軟件采用Modbus協(xié)議是基于數(shù)據(jù)鏈路層的通信,而ZigBee的 API模式是網(wǎng)絡(luò)層的通信。這樣就要求在Modbus的基礎(chǔ)上加上API的協(xié)議層,才能讓標(biāo)定軟件實現(xiàn)ZigBee的 順利通信。ZigBee的API模式幀結(jié)構(gòu)框架如圖1所示,數(shù)據(jù)幀中API標(biāo)識符cmdID表明cmdData中包含何種數(shù) 據(jù)。在本程序設(shè)計使用的XBee系列2模塊中,當(dāng)cmdID = 0X10時,表明ZigBee傳輸數(shù)據(jù)請求;cmdID = 0X90 時,表明ZigBee接受數(shù)據(jù)包。最后一位的校驗碼(數(shù)據(jù)校驗和)是用來檢驗數(shù)據(jù)的完整性。
在發(fā)送信息時,此設(shè)計將Modbus協(xié)議RTU (遠程終端單元)模式發(fā)送命令作為幀數(shù)據(jù)的一部分發(fā)送。網(wǎng) 絡(luò)中所有設(shè)備都擁有一個16bit的IEEE地址,用來確 定表號。由于事先不知道壓力表頭IEEE地址,故首先 PC機通過RS-485串口發(fā)送廣播信息,此時API幀結(jié)構(gòu) 中的 64 位地址(bytes 6 - 13)是 0x0000000000000000。
PC機ZigBee模塊發(fā)送廣播模式的API幀結(jié)構(gòu)如圖2所示。由于此信息包含有Modbus協(xié)議,包含表頭地址。此壓力表頭收到廣播后,將響應(yīng)PC機,返回數(shù)據(jù),然后 通過PC機上的標(biāo)定軟件程序處理,去掉幀頭幀尾,可以獲取壓力表頭的IEEE地址。圖3為壓力表頭中ZigBee 模塊接收數(shù)據(jù)的API結(jié)構(gòu),可以看到,64位地址(bytes 5 - 12)是0x0013A2004030100B ,即壓力表頭的IEEE地
址。此時PC機直接發(fā)信息給表頭的IEEE地址,而不再發(fā)送廣播,相應(yīng)的64位地址(bytes 6-13)更改為壓力表 頭的IEEE地址。PC機ZigBee模塊發(fā)送地址模式的API幀結(jié)構(gòu)如圖4所示。當(dāng)處于廣播模式時,接收到的數(shù)據(jù) 只占發(fā)送數(shù)據(jù)的1/3,然而發(fā)送IEEE地址時,發(fā)送的數(shù)據(jù)都能被接收到。這樣一來,大大節(jié)省了時間,從而確保 了數(shù)據(jù)傳送的完整性與準(zhǔn)確性。整個過程模式如圖5所示,此種傳輸模式屬于半雙工模式。
在接收數(shù)據(jù)時,接收數(shù)據(jù)幀中包含有設(shè)備響應(yīng)數(shù)據(jù),經(jīng)過拆分數(shù)據(jù)包,獲取Modbus協(xié)議返回的數(shù)據(jù),然后通 過解包、跨線程處理,即可將壓力表頭的壓力、溫度、電量等數(shù)據(jù)在窗口上顯示出來。
4.實驗測試結(jié)果與分析
在Visual Studio 2010集成開發(fā)平臺上運行程序,結(jié)果表明能夠完成壓力表各項數(shù)據(jù)的標(biāo)定。表1是1分鐘 接收數(shù)據(jù)和發(fā)送數(shù)據(jù)大小。
從表1可以看出,改進后的壓力表頭對數(shù)據(jù)的接收與發(fā)送能力增強了 ,而且無線通信下的地址模式基本上不 存在丟失數(shù)據(jù)的現(xiàn)象,說明了 ZigBee傳輸數(shù)據(jù)的準(zhǔn)確性。
5.結(jié)束語
提出并設(shè)計完成了一種基于ZigBee無線壓力表的標(biāo)定程序,將原有的有線通信方式更改為無線通信方式, 直接實現(xiàn)標(biāo)定軟件與壓力表頭的數(shù)據(jù)傳輸。此設(shè)計利用ZigBee技術(shù),采用無線收發(fā)設(shè)備傳輸數(shù)據(jù),通過傳感器 網(wǎng)絡(luò)直接控制每只壓力表的標(biāo)定,無需專門架線,而且提高了傳輸數(shù)據(jù)的準(zhǔn)確性。ZigBee作為一種新型的通訊技 術(shù)必將在無限傳感網(wǎng)絡(luò)中發(fā)揮巨大作用。