孫天嬌,仇潤鶴
實際的藥品管理中,藥品狀態(tài)細分后如何進行有效管控尤為重要,藥庫分為平面?zhèn)}庫、隔斷倉間、冷庫、冷藏車,立體及高架倉庫等。平面?zhèn)}庫面積較大,單一位置的環(huán)境因素測量值顯然無法象征整個倉庫的環(huán)境參數(shù),局部溫濕度的變化也無法感測到,因此經常需要對平面?zhèn)}庫進行分區(qū)獨立監(jiān)控。對于不同藥品的特性,如低溫保存、避光保存、通風或密封保存等,又應該選擇不同的位存儲位置,因此需要對各個分散的獨立小區(qū)域的環(huán)境因素進行監(jiān)控。基于IEEE 802.15.14無線標準[1]研制開發(fā)的ZigBee技術特別適合于小范圍的無線組網(wǎng)控制,完全能夠滿足小范圍監(jiān)控對網(wǎng)絡通信的要求。ZigBee主要應用于低成本、低功耗、低復雜度、低傳輸速率、近距離的設備聯(lián)網(wǎng),系統(tǒng)節(jié)點具有多跳路由功能,能夠組成蜂窩網(wǎng)狀網(wǎng)絡結構, 具有通信可靠、自組織、自愈、網(wǎng)絡容量大等優(yōu)點[2]。
在Windows操作系統(tǒng)中,一般采用C/C++語言來編寫串口通信程序及上位機顯示界面,程序代碼較復雜,往往開發(fā)周期也較長。而圖形化編程語言LabVIEW可方便地實現(xiàn)串口通信程序編寫。它具有編程簡潔、直觀性強、人機交互界面友好、數(shù)據(jù)可視化分析與設備控制能力優(yōu)等特點。其自帶的VISA子模塊,則可更方便、快捷地實現(xiàn)串口編程,完成控制機與儀器之間的連接、控制、顯示的功能。
本文中控制中心與數(shù)據(jù)終端是通過 ZigBee無線通信的。前端采集加入了帶有8路ADC通道的單片機,使得一個ZigBee終端節(jié)點即可獲取8路環(huán)境傳感器的測量值,測量值(電壓信號)經過單片機處理后,再通過單片機串口接入ZigBee終端節(jié)點,并又由ZigBee網(wǎng)絡無線發(fā)送至監(jiān)控中心。若發(fā)送端與接收端的距離較遠,亦可加入中繼路由節(jié)點,形成多跳網(wǎng)絡,完成通信。實現(xiàn)了溫濕度、光照強度等數(shù)據(jù)的采集、存儲、監(jiān)控與報警。
ZigBee共有3種不同拓撲類型的網(wǎng)絡:星型網(wǎng)、樹型網(wǎng)、網(wǎng)狀網(wǎng)[3]。此處采用了星型網(wǎng),即多個ZigBee終端節(jié)點直接與ZigBee數(shù)據(jù)管理終端通信并交換數(shù)據(jù)。數(shù)據(jù)在協(xié)調器節(jié)點處匯聚并傳至PC機,根據(jù)具體的環(huán)境特點安裝中繼路由節(jié)點,實現(xiàn)數(shù)據(jù)多跳傳遞至協(xié)調器節(jié)點處。監(jiān)測系統(tǒng)由以下兩部分構成,系統(tǒng)框圖,如圖1所示:
圖1 監(jiān)測系統(tǒng)總體框圖
第一級:遠程監(jiān)控中心;一個ZigBee節(jié)點通過串口與PC機相連,作為協(xié)調器,主要負責網(wǎng)絡的啟動創(chuàng)建和給其它終端節(jié)點分配網(wǎng)絡地址,并作為無線接受端讀取傳感器的測量值。
第二級:現(xiàn)場采集節(jié)點;根據(jù)貨品分類及分區(qū)面積將倉庫進行區(qū)域劃分,每個區(qū)域內各放置一個zigbee節(jié)點,根據(jù)貨品的種類性質以及對環(huán)境因素的要求(如溫度、濕度、光照強度等),選擇相應的傳感器。并將各個傳感器的測量輸出分別接入到單片機的各路ADC通道,而單片機則通過串口與ZigBee終端節(jié)點相連,終端ZigBee節(jié)點接受數(shù)據(jù)后并通過天線發(fā)出。
根據(jù)需求,每個監(jiān)控區(qū)域均放置一些終端節(jié)點進行數(shù)據(jù)的采集和傳遞。如冷庫中節(jié)點的布置,平面單庫20平米以下應不少于2個監(jiān)測點,20-50平米應不少于3個監(jiān)測點,50-150平米應不少于4個監(jiān)測點,點位的布置應依照經驗證的溫度的冷點和熱點。對于立體及高架倉庫,應均勻分布在庫房的上、中、下3層,采取延對角線交叉布置的方式,每層不少于3個,總數(shù)不少于9個。
以某一個區(qū)域的溫濕度、光照強度監(jiān)控為例,由單片機STC12C5A60S2和各傳感器(LTC標準傳感器)連接作為前端數(shù)據(jù)采集部分,傳感器的測量值輸出為標準電壓信號,3個輸出引腳OUT1(溫度), OUT2(濕度), OUT3(光照)分別和單片機ADC0, ADC1, ADC2連接,模擬量通過單片機的ADC轉換成為數(shù)字量后,通過串口與ZigBee模塊通信,經天線發(fā)送出[4],目的地址為協(xié)調器節(jié)點。
系統(tǒng)主要使用的硬件模塊包括傳感器模塊、單片機處理模塊、傳感器模塊、串行接口等,其工作原理如下所述:
本系統(tǒng)所使用的LT/W/S溫濕度傳感器、LT/G光照度傳感器,均為惠邦公司生產的LT系統(tǒng)傳感器,專門針對環(huán)境數(shù)據(jù)的測量[5]。使用的傳感器均輸出0-5V的模擬電壓信號,該信號與溫濕度、光照強度成良好的線性對應關系。
傳感器啟動數(shù)據(jù)采集功能時,對應的輸出信號引腳就會輸出與環(huán)境數(shù)據(jù)成線性關系的模擬電壓信號。當傳感器接入12V電源時,輸出的模擬信號在0-5V之間變化,對應的溫度量程是-20℃-80℃,對應的濕度量程是0%-100%,對應的光照強度的量程是0-10萬lux。
采用 STC12C5A60S2系列單片機實現(xiàn)對傳感器測量值的轉換處理,并作為連入網(wǎng)絡的接口。該單片機指令代碼完全兼容傳統(tǒng)8051,內部集成MAX810專用復位電路,2路PWM,8路高速10位A/D轉換,針對電機控制,強干擾場合。單片機中包含中央處理器(CPU)、程序存儲器(Flash)、數(shù)據(jù)存儲器(SRAM)、定時/計數(shù)器、2個 UART串口、I/O接口、PCA、看門狗及片內R/C振蕩器和外部晶體振蕩電路等模塊[6]。
采用XBee/XBee Pro模塊[7],實現(xiàn)現(xiàn)場采集與遠程交互終端之間的通信功能,XBee為2.4GHz無線通信接口,具有基于Mesh網(wǎng)的固件,支持 ZigBee協(xié)議棧。模塊功耗僅為3.1mW(+5dBm),傳輸距離可達120m,如下圖4所示:
圖4 XBee Pro模塊的引腳排列圖
XBee Pro模塊的引腳排列圖,該模塊有20個引腳。其中VCC是電源引腳(2.8-3.4V);DIN是信號輸入引腳,可作為UART數(shù)據(jù)輸入,通常與處理器的UART接收端TX相連; DOUT為信號輸出引腳,可作為UART數(shù)據(jù)輸出,通常與處理器的UART接收端RX相連。
接口的內部數(shù)據(jù)控制流程,如圖5所示:
圖5 XBee/XBee Pro模塊的UART內部數(shù)據(jù)控制流程
當串行數(shù)據(jù)通過DIN引腳進入XBee Pro模塊后,數(shù)據(jù)會存儲在DI緩沖器中,直到被發(fā)送器通過天線發(fā)送出去;當RF數(shù)據(jù)由天線接收后,接收數(shù)據(jù)進入DO緩沖器,并通過串口發(fā)送到主機,直到被處理。在一定條件下,模塊可能無法立即處理在串位接收緩沖中的數(shù)據(jù)。如果大量的串行數(shù)據(jù)發(fā)送到模塊,可能需要使用 CTS流控以避免串行接收緩沖溢出。
在XBee/XBee Pro模塊的調試底板中集成了一個UART接口,使得可以通過UART 接口直接與控制器的UART接口相連,簡單實用。
3.1.1 通過X-CTU軟件下載代碼
使用X-CTU軟件對ZigBee模塊進行配置和調試,并可以通過串口下載和調試程序。設計通過透明傳輸?shù)拇a來實現(xiàn)ZNET2.5的數(shù)據(jù)通訊。根據(jù)XBee/XBee-Pro,分別選擇固件庫XB24-ZB(XBee)或XBP24-ZB(XBee-Pro)。
首先,下載協(xié)調器代碼[ZNET2.5 COORDINATOR AT(1047)],先配置X-CTU的必要參數(shù),選擇和設備連接的串口,然后設置波特率-數(shù)據(jù)位-校驗位-停止位分別為:9600-8-n-1。再通過”write”指令將代碼寫入模塊。系統(tǒng)和模塊默認9600-8-n-1,使用流控制CTS,禁止流控制RTS??梢愿鶕?jù)設備的具體需要改變波特率等,亦可通過X-CTU的配置串口參數(shù)命令來實現(xiàn)。
然后,使用同樣的方法給另外一個或幾個終端采集節(jié)點模塊下載代碼[ZNET 2.5 ROUTER/END DEVICE AT(1247)],一個網(wǎng)絡只能有一個協(xié)調器,但是可以有多個路由器或者終端設備。
3.1.2 配置目標地址
透明傳輸是建立在1047和1247的基礎上[8],在系統(tǒng)默認的情況下,zigbee協(xié)調器模塊采用廣播的方式發(fā)送數(shù)據(jù),即將模塊的目標地址設置為0x000000000000FFFF,廣播模式可能導致數(shù)據(jù)的延時嚴重,因此此處需配置模塊的目標地址。
透明傳輸支持空閑模式、低功耗模式、透傳模式、和命令模式。配置模塊參數(shù)必須在命令模式執(zhí)行,通過“+++”進入命令模式,操作如下:
退出命令模式以后,設備進入透明傳輸模式,可以發(fā)送除了“+++”之外的任意數(shù)據(jù)。將協(xié)調器節(jié)點的源地址配置成終端節(jié)點的目標地址。路由器節(jié)點保留默認配置。
前端數(shù)據(jù)采集處理的程序用KeilC51編寫,主要用于采集現(xiàn)場環(huán)境數(shù)據(jù),并實現(xiàn)數(shù)據(jù)的實時無線發(fā)送。軟件采用模塊化設計,包括串口初始化程序、定時器初始化程序等,其流程,如圖6所示:
圖6 數(shù)據(jù)采集模塊軟件流程圖
首先,由STC12C5A60S2單片機完成設備的初始化,然后,進行定時器的初始化、定時、中斷發(fā)生時,由單片機進行AD轉換,并通過串口向通信模塊發(fā)送傳送數(shù)據(jù)請求,發(fā)送完畢,等待確認收到數(shù)據(jù),收到后則送往PC顯示,以實現(xiàn)實時更新。
本系統(tǒng)中對溫濕度參數(shù)進行實時檢測,定時將采集到的數(shù)據(jù)發(fā)送,故如圖7中所示采用了終端節(jié)點連續(xù)發(fā)送的方式。實際應用中如有必要,還可以采用中心節(jié)點查詢的方式。
串口的主要函數(shù)如下:
3.3.1 VISA簡介
LabVIEW提供了功能強大的虛擬儀器軟件規(guī)范(virtual instrument software architecture, VISA)庫,VISA是用于儀器編程的標準I/O函數(shù)庫及其相關規(guī)范的總稱。VISA總線軟件是一種虛擬儀器系統(tǒng)的綜合I/O接口軟件,不受平臺、總線和環(huán)境的限制,可用來對USB、GPIB、串口、VXI、PXI和以太網(wǎng)系統(tǒng)進行配置、編程和調試[9]。在本系統(tǒng)中采用VISA來對串口進行編程,完成對溫濕度的實時采集,實現(xiàn)對監(jiān)控設備的控制。
3.3.2 設計實現(xiàn)
首先,在MAX中設置VISA資源,設置串口的波特率9600 bps,、數(shù)據(jù)位8位、無奇偶校驗、停止位1、流控無等,這樣就可以在LabVIEW中與串口儀器進行通信。
再使用VISA Read函數(shù),讀取端口1(COM1)上連接的串口設備,可根據(jù)需求設置每次讀取的字節(jié)數(shù)。由于LabVIEW中接收到的數(shù)據(jù)都是以字符串的形式顯示的,故使用函數(shù)“字符串至字節(jié)數(shù)組”將接收的字符串轉換成數(shù)組的格式。這里測量的3個通道(ADC0, ADC1, ADC2)采集的數(shù)據(jù)分別為溫度,濕度和光照強度,且數(shù)據(jù)連續(xù)傳送,顯示為3種數(shù)據(jù)順序循環(huán)傳送的形式。為了同時顯示三者的變化曲線,從單片機連續(xù)發(fā)送的數(shù)據(jù)中提取出對應相應參數(shù)的數(shù)據(jù)流??蓪⒚看尾杉娜舾勺止?jié)數(shù)據(jù)取前3個,形成一個3元素的數(shù)組。再采用Array Subset函數(shù),分別取index=0, length=1的數(shù)據(jù)(濕度),index=1, length=1的數(shù)據(jù)(溫度)和index=2, length=1的數(shù)據(jù)(光照強度),即從VISA每次讀取的數(shù)據(jù)中抽取出對應溫度,濕度和光照強度的兩個長度為1的子數(shù)組,分別繪制歷史曲線并顯示子數(shù)組元素的值。各參數(shù)變化走勢圖直觀明了。同時在while循環(huán)中加入定時函數(shù)來控制循環(huán)定時,設置每半秒采集一次測試數(shù)據(jù),即可實現(xiàn)數(shù)據(jù)的定時采集。
此處以設定區(qū)域1溫度上限為30,濕度為80,光照強度為500;區(qū)域2溫度上限為10,濕度為80,光照強度為100為例。前面板界面,如圖7所示:
圖7 前面板界面圖
區(qū)域1實時溫度為32.3,超過上限,報警燈亮。區(qū)域2光照強度為106.6,超過上限,報警燈亮。此程序具備兩個功能:1)可實現(xiàn)溫度、濕度、光照強度數(shù)據(jù)的實時、準確的采集與顯示。2)可設置溫濕度、光照強度上限,若超過設定值,則預警燈亮。
該無線監(jiān)控系統(tǒng)通過對STC12C5A60S2單片機,XBee無線通信模塊,傳感器等模塊實現(xiàn)了一種可靠、高效的數(shù)據(jù)采集系統(tǒng)。且所設計的電路硬件模塊功能完整、結構簡單,實現(xiàn)了低成本、低功耗、高可靠性和高效益的目的,并利用LabVIEW中的VISA對單片機串口進行了編程,實現(xiàn)了串口與LabVIEW之間的通信,進而實現(xiàn)了溫濕度及光照強度數(shù)據(jù)的實時采集、顯示和預警,完成了對環(huán)境參數(shù)的監(jiān)控。通過實驗驗證,在此基礎上,若增加多個終端節(jié)點及路由節(jié)點,構造星型結構網(wǎng)絡,亦可實現(xiàn)由監(jiān)控中心監(jiān)測并識別倉庫不同區(qū)域的同時工作的多個終端節(jié)點。ZigBee終端節(jié)點的輸入端口具有多樣性,RS232、RS485、USB接口、以及自帶的ADC通道,使得多種傳感器、控制器可與之直接相連接,構造簡單,傳輸穩(wěn)定。由此可見,由ZigBee與單片機構成的無線數(shù)據(jù)采集系統(tǒng)所實現(xiàn)的多位置多環(huán)境因素的監(jiān)控是可行的,可在眾多領域得到良好的運用。
[1]Yang Li, Ji Maorong, Gao zhenru, et al.Design of Home Automation System based on ZigBee Wireless Sensor Network[D].Nanjing: Nanjing university of science and technology.2009
[2]方水良,王加興.基于XBee的無線數(shù)據(jù)采集系統(tǒng)開發(fā)和應用[J].機電工程,2010(3):53-56
[3]鄧中華.基于 ZigBee的無線溫度采集系統(tǒng)設計[J].計算機工程與科學,2011(6):164-167
[4]Zhang Yi, Qi Yuchao, Luo Yuan.An Information Collection System of Network Intelligence Wheelchair Based On ZigBee Wireless Sensor Networks[C].20102nd International Conference on Industrial and Information Systems.IIS 2010.IEEE .2010:140-143
[5]趙媛,杜堅.基于ZigBee的溫室花房環(huán)境監(jiān)測系統(tǒng)設計[J].現(xiàn)代電子技術,2011(6):37-39
[6][Li Xinchun , Wang Na.The Design of Granary Environmental Monitoring System Based on ARM9 and Zig-Bee[D].Liaoning: Liaoning Technology university.2010
[7]Minghui Liang, Xiaodong Wang, Jianlei Xue.Design of Temperature Intelligent Control System Based on AT89S52[C].ICMET 2011.2011:349-357
[8]杜娟, 邱曉暉等.基于LabVIEW的數(shù)據(jù)采集與信號處理系統(tǒng)的設計[J].南京師范大學學報,2010(9):7-10
[9]霍峰,王長松等.基于ZigBee和LabVIEW的多功能數(shù)據(jù)采集系統(tǒng)[J].傳感器與微系統(tǒng),2008(7):82-85