摘 要: 提出了一種適合工業(yè)自動(dòng)化的無(wú)線傳感器的網(wǎng)絡(luò)結(jié)構(gòu),設(shè)計(jì)了無(wú)線傳感器網(wǎng)絡(luò)的終端節(jié)點(diǎn)模塊以及工業(yè)現(xiàn)場(chǎng)常用的二次儀表的通信問(wèn)題,實(shí)現(xiàn)了工業(yè)無(wú)線網(wǎng)絡(luò)和有線網(wǎng)絡(luò)的靈活配置、網(wǎng)關(guān)節(jié)點(diǎn)的開(kāi)發(fā),解決了無(wú)線傳感器網(wǎng)關(guān)節(jié)點(diǎn)與上位機(jī)之間關(guān)鍵的可靠通信問(wèn)題,并開(kāi)發(fā)了上位機(jī)的監(jiān)控組態(tài)軟件,實(shí)驗(yàn)結(jié)果證實(shí)了提出的方法是有效的。
關(guān)鍵詞: 無(wú)線傳感器網(wǎng)絡(luò);二次儀表;網(wǎng)關(guān)
無(wú)線傳感器網(wǎng)絡(luò)綜合了現(xiàn)代傳感器技術(shù)、微電子技術(shù)、通信技術(shù)、嵌入式計(jì)算技術(shù)和分布式信息處理技術(shù)等多個(gè)學(xué)科,是新興的交叉研究領(lǐng)域。它的出現(xiàn)引起了全世界范圍的廣泛關(guān)注,被稱為二十一世紀(jì)最具影響的技術(shù)之一。隨著研究的不斷深入,無(wú)線傳感器網(wǎng)絡(luò)在環(huán)境監(jiān)測(cè)、軍事應(yīng)用、醫(yī)療監(jiān)測(cè)和家庭應(yīng)用等方面表現(xiàn)出強(qiáng)大的生命力。近年來(lái),人們開(kāi)始日益關(guān)注無(wú)線傳感器網(wǎng)絡(luò)技術(shù)在工業(yè)自動(dòng)化和工業(yè)測(cè)控領(lǐng)域的應(yīng)用,以便實(shí)現(xiàn)大多數(shù)工業(yè)儀表和自動(dòng)化產(chǎn)品都嵌入無(wú)線傳輸功能,完成從有線到無(wú)線的過(guò)渡。無(wú)線方案的靈活性必將大大簡(jiǎn)化工業(yè)自動(dòng)化領(lǐng)域的監(jiān)控網(wǎng)絡(luò)的配置、維護(hù)等工作,大大改善工廠的運(yùn)行條件。
本文將采用TI公司的CC1110芯片實(shí)現(xiàn)無(wú)線傳感器的終端節(jié)點(diǎn)、路由節(jié)點(diǎn)及網(wǎng)關(guān)節(jié)點(diǎn)設(shè)計(jì)。并實(shí)現(xiàn)了終端節(jié)點(diǎn)與傳感器節(jié)點(diǎn)的接口設(shè)計(jì)以及終端節(jié)點(diǎn)與本地的智能儀表或二次儀表之間的通信接口設(shè)計(jì)。為了無(wú)線傳感器網(wǎng)絡(luò)系統(tǒng)能夠與工業(yè)自動(dòng)化領(lǐng)域的現(xiàn)有的技術(shù)無(wú)縫連接,本文針對(duì)網(wǎng)關(guān)節(jié)點(diǎn)設(shè)計(jì)了常用的現(xiàn)場(chǎng)總線協(xié)議。
1 系統(tǒng)設(shè)計(jì)結(jié)構(gòu)
圖1是一個(gè)典型的工業(yè)用無(wú)線傳感器網(wǎng)絡(luò)示意圖,核心部分是低功耗的傳感器節(jié)點(diǎn)(可以使用電池長(zhǎng)期供電、太陽(yáng)能電池供電,或風(fēng)能、機(jī)械振動(dòng)發(fā)電等),網(wǎng)絡(luò)路由器和無(wú)線網(wǎng)關(guān)(將信息傳輸?shù)焦I(yè)以太網(wǎng)和控制中心,或者通過(guò)互聯(lián)網(wǎng)傳輸)。無(wú)線傳感器網(wǎng)絡(luò)中的終端節(jié)點(diǎn)模塊直接和各種各樣的傳感器節(jié)點(diǎn)相連接,通過(guò)路由節(jié)點(diǎn)和網(wǎng)關(guān)節(jié)點(diǎn)把傳感器的數(shù)據(jù)傳輸?shù)缴衔粰C(jī),以進(jìn)行進(jìn)一步的數(shù)據(jù)處理。為了更方便地使用無(wú)線傳感器網(wǎng)絡(luò)把工業(yè)現(xiàn)場(chǎng)的數(shù)據(jù)傳遞出來(lái),圖1中的工業(yè)用無(wú)線傳感器網(wǎng)絡(luò)增加了傳輸智能儀表數(shù)據(jù)的能力,大大增強(qiáng)了方案的靈活性。
由圖1可以看出,多個(gè)傳感器可以和本地的智能儀表連接實(shí)現(xiàn)本地?cái)?shù)據(jù)的顯示等功能,并通過(guò)無(wú)線傳感器網(wǎng)絡(luò)的終端節(jié)點(diǎn)把智能儀表采集到的多個(gè)傳感器的數(shù)據(jù)轉(zhuǎn)發(fā)出去,這樣就能夠大大減少無(wú)線傳感器網(wǎng)絡(luò)中的終端節(jié)點(diǎn)個(gè)數(shù),更有效地利用終端節(jié)點(diǎn)。這種方案本質(zhì)上是通過(guò)智能儀表使用有線方式采集與本地相距較近的幾個(gè)傳感器的數(shù)據(jù),接著使用終端節(jié)點(diǎn)轉(zhuǎn)發(fā)數(shù)據(jù)??梢?jiàn)這種方案在實(shí)際應(yīng)用中可以根據(jù)現(xiàn)場(chǎng)的實(shí)際情況,靈活使用有線和無(wú)線的方案,使得系統(tǒng)配置更加靈活,能夠滿足對(duì)各種傳感器和二次儀表的數(shù)據(jù)輸出和輸入控制命令,使得現(xiàn)有的工業(yè)網(wǎng)絡(luò)無(wú)線化。
硬件模塊主要分為終端節(jié)點(diǎn)發(fā)射模塊、路由器模塊、網(wǎng)關(guān)模塊三部分,如圖1所示。第一部分為終端節(jié)點(diǎn)模塊,由傳感器模塊、數(shù)據(jù)處理模塊、與其他單片機(jī)相連接的通信接口模塊和發(fā)射模塊組成。第二部分是路由器模塊,包括無(wú)線發(fā)射、單片機(jī)信號(hào)輸入與輸出電路。第三部分是無(wú)線網(wǎng)關(guān)模塊,包括無(wú)線信號(hào)接收與發(fā)射,無(wú)線接收與無(wú)線接收端與PC機(jī)的通信電路。
從圖1中可以看出,無(wú)線傳感器網(wǎng)絡(luò)的數(shù)據(jù)最終都匯集到網(wǎng)關(guān)上,進(jìn)而通過(guò)工業(yè)以太網(wǎng)傳輸給上位機(jī),所以網(wǎng)關(guān)和工業(yè)以太網(wǎng)的接口設(shè)計(jì)也非常重要。
2 系統(tǒng)實(shí)現(xiàn)
2.1 終端節(jié)點(diǎn)設(shè)計(jì)
終端節(jié)點(diǎn)的核心是片上系統(tǒng)CC1110芯片,CC1110集成了支持315/433/868/915 MHz射頻收發(fā)芯片,性能可達(dá)8倍標(biāo)準(zhǔn)8051性能的微處理器,以及32 KB閃存、4 KB RAM。芯片運(yùn)行溫度范圍為-40℃~85℃,電壓為2.0~3.6 V。能耗非常低,最低電流消耗為0.6 μA,最大為31 mA,而且可編程數(shù)據(jù)率范圍從1.2 Kb/s-500 Kb/s,特別適合傳送大批量數(shù)據(jù)[1-2]。
無(wú)線傳感器的終端節(jié)點(diǎn)如圖2所示,終端節(jié)點(diǎn)模塊實(shí)現(xiàn)了三大功能:處理傳感器的數(shù)據(jù);與二次儀表通信,處理二次儀表的數(shù)據(jù);最后把相關(guān)的數(shù)據(jù)通過(guò)發(fā)送模塊發(fā)射出去。而且由圖1可以看到,作為終端節(jié)點(diǎn)的的單片機(jī)必須帶有兩個(gè)串口,一個(gè)與網(wǎng)關(guān)通信用,另一個(gè)與二次儀表進(jìn)行通信。軟件設(shè)備流程如圖3所示。
由于在工業(yè)應(yīng)用中,二次儀表占了很大的比重,所以CC1110與二次儀表的通信及其相關(guān)的數(shù)據(jù)處理是一個(gè)重要的部分。下面給出兩者之間的通信接口設(shè)計(jì)。
2.2 通信接口設(shè)計(jì)
2.2.1 硬件連接
硬件連接方式可采用兩種連接方式:串口的TTL電平直接相連和RS-232相連。
如果采用串口的TTL電平直接相連,TTL電平信號(hào)對(duì)于計(jì)算機(jī)處理器控制的設(shè)備內(nèi)部的數(shù)據(jù)傳輸是很理想的,首先計(jì)算機(jī)處理器控制的設(shè)備內(nèi)部的數(shù)據(jù)傳輸對(duì)于電源的要求不高且熱損耗也較低;其次,計(jì)算機(jī)處理器控制的設(shè)備內(nèi)部的數(shù)據(jù)傳輸是在高速下進(jìn)行的,而TTL接口的操作恰能滿足這個(gè)要求。
如果采用RS-232相連(簡(jiǎn)單的連接如圖4所示),接口的信號(hào)電平值較高,易損壞接口電路的芯片,又因?yàn)榕cTTL電平不兼容,故需使用電平轉(zhuǎn)換電路才能與TTL電路連接。而電平轉(zhuǎn)換電路需要采用MAX232。
根據(jù)兩類單片機(jī)的實(shí)際情況可以靈活地選擇這兩種通信接口方式,下面以TTL直接相連為例介紹通信接口的軟件開(kāi)發(fā)。
2.2.2 軟件設(shè)計(jì)
無(wú)線單片機(jī)與二次儀表進(jìn)行通信包括:無(wú)線單片機(jī)的通信程序及二次儀表的通信程序。在編寫(xiě)程序之前,制定雙方的通信協(xié)議是非常重要的,否則將無(wú)法保證通信數(shù)據(jù)的可靠性,從而失去通信的意義[3]。約定其通信協(xié)議如下:
(1)串行通信波特率為38 400 b/s;
(2)幀格式為:幀頭0x68AA,1位起始位,n位數(shù)據(jù)位,1位停止位,校驗(yàn)位;
(3)無(wú)奇偶校驗(yàn)位;
(4)通信可以有中斷傳送方式和查詢方式,這里采用中斷方式通信。
無(wú)線單片機(jī)與二次儀表通信流程圖如圖5和圖6所示。
2.3 網(wǎng)關(guān)節(jié)點(diǎn)設(shè)計(jì)
終端節(jié)點(diǎn)處理完智能儀表和二次儀表的相關(guān)數(shù)據(jù)之后,通過(guò)發(fā)送模塊發(fā)送數(shù)據(jù),網(wǎng)關(guān)節(jié)點(diǎn)負(fù)責(zé)接收所有終端節(jié)點(diǎn)發(fā)過(guò)來(lái)的數(shù)據(jù),再把數(shù)據(jù)傳送給上位機(jī)中,上位機(jī)的監(jiān)控軟件(如組態(tài)軟件)對(duì)這些數(shù)據(jù)進(jìn)行進(jìn)一步的處理(如存儲(chǔ),圖表顯示,打印等)。這里有一個(gè)關(guān)鍵的問(wèn)題就是網(wǎng)關(guān)節(jié)點(diǎn)與上位機(jī)的可靠性通信問(wèn)題。一般使用成熟的現(xiàn)場(chǎng)總線模式來(lái)實(shí)現(xiàn)網(wǎng)關(guān)節(jié)點(diǎn)與電腦之間的通信,如Modbus總線協(xié)議。網(wǎng)關(guān)節(jié)點(diǎn)及其相關(guān)模塊如圖7所示。
2.3.1 Modbus現(xiàn)場(chǎng)總線協(xié)議設(shè)計(jì)
Modbus協(xié)議是應(yīng)用于電子控制器上的一種通用語(yǔ)言。通過(guò)此協(xié)議,控制器之間、控制器經(jīng)由網(wǎng)絡(luò)(例如以太網(wǎng))和其他設(shè)備之間可以通信。此協(xié)議定義了一個(gè)控制器能認(rèn)識(shí)使用的消息結(jié)構(gòu),而不管它們是經(jīng)過(guò)何種網(wǎng)絡(luò)進(jìn)行通信的。它描述了控制器請(qǐng)求訪問(wèn)其他設(shè)備的過(guò)程,如何回應(yīng)來(lái)自其他設(shè)備的請(qǐng)求,以及怎樣偵測(cè)錯(cuò)誤并記錄。它制定了消息域格局和內(nèi)容的公共格式[4-5]。
當(dāng)在一Modbus網(wǎng)絡(luò)上通信時(shí),此協(xié)議決定了每個(gè)控制器需要知道它們的設(shè)備地址,識(shí)別按地址發(fā)來(lái)的消息,決定要產(chǎn)生何種行動(dòng)。如果需要回應(yīng),控制器將生成反饋信息并用Modbus協(xié)議發(fā)出。在其他網(wǎng)絡(luò)上,包含了Modbus協(xié)議的消息轉(zhuǎn)換為在此網(wǎng)絡(luò)上使用的幀或包結(jié)構(gòu)。這種轉(zhuǎn)換也擴(kuò)展了根據(jù)具體的網(wǎng)絡(luò)解決節(jié)地址、路由路徑及錯(cuò)誤檢測(cè)的方法。
Modbus協(xié)議主要分為ASCII和RTU兩種。本文采用RTU的方式,其信息幀格式如表1所示。
當(dāng)控制器設(shè)為在Modbus網(wǎng)絡(luò)上以遠(yuǎn)程終端單元(RTU)模式通信時(shí),在消息中的每個(gè)8 bit的字節(jié)包含2個(gè)4 bit的十六進(jìn)制字符。這種方式的主要優(yōu)點(diǎn)是:在同樣的波特率下,可比ASCII方式傳送更多的數(shù)據(jù)。
代碼系統(tǒng):8位二進(jìn)制,十六進(jìn)制數(shù)0…9,A…F。
消息中的每個(gè)8位域都是由2個(gè)十六進(jìn)制字符組成。
每個(gè)字節(jié)的位:1個(gè)起始位;8個(gè)數(shù)據(jù)位,最小的有效位先發(fā)送;1個(gè)奇偶校驗(yàn)位(無(wú)校驗(yàn)則無(wú));1個(gè)停止位(有校驗(yàn)時(shí)),2個(gè)bit(無(wú)校驗(yàn)時(shí));錯(cuò)誤檢測(cè)域;CRC(循環(huán)冗長(zhǎng)檢測(cè))。
2.3.2 組態(tài)軟件設(shè)計(jì)
組態(tài)軟件是指一些數(shù)據(jù)采集與過(guò)程控制的專用軟件,它們是在自動(dòng)控制系統(tǒng)監(jiān)控層一級(jí)的軟件平臺(tái)和開(kāi)發(fā)環(huán)境,使用靈活的組態(tài)方式,為用戶提供快速構(gòu)建工業(yè)自動(dòng)控制系統(tǒng)監(jiān)控功能的、通用層次的軟件工具。
三維力控組態(tài)軟件是國(guó)產(chǎn)監(jiān)控組態(tài)軟件唯一的完整的冗余與熱備體系設(shè)計(jì),完整的分布式網(wǎng)絡(luò)結(jié)構(gòu);支持控制設(shè)備冗余、多重網(wǎng)絡(luò)冗余,多客戶端冗余、冗余的主從站都可以操作;人機(jī)監(jiān)控圖形界面與過(guò)程數(shù)據(jù)處理分離,內(nèi)置獨(dú)立的實(shí)時(shí)歷史數(shù)據(jù)庫(kù)。
方便、靈活的開(kāi)發(fā)環(huán)境,提供各種工程、畫(huà)面模板、可嵌入各種格式(BMP、GIF、JPG、JPEG、CAD等)的圖片,方便畫(huà)面制作,大大降低了組態(tài)開(kāi)發(fā)的工作量。
高性能實(shí)時(shí)、歷史數(shù)據(jù)庫(kù),快速訪問(wèn)接口在數(shù)據(jù)庫(kù)4萬(wàn)點(diǎn)數(shù)據(jù)負(fù)荷時(shí),訪問(wèn)吞吐量可達(dá)到20 000次/s。
強(qiáng)大的分布式報(bào)警、事件處理能力,支持報(bào)警、事件網(wǎng)絡(luò)數(shù)據(jù)斷線存儲(chǔ),恢復(fù)功能;支持操作圖元對(duì)象的多個(gè)圖層,通過(guò)腳本可靈活控制各圖層的顯示與隱藏;強(qiáng)大的ACTIVEX控件對(duì)象容器,定義了全新的容器接口集,增加了通過(guò)腳本對(duì)容器對(duì)象的直接操作功能,通過(guò)腳本可調(diào)用對(duì)象的方法、屬性。
全新的、靈活的報(bào)表設(shè)計(jì)工具提供豐富的報(bào)表操作函數(shù)集、支持復(fù)雜腳本控制,包括:腳本調(diào)用和事件腳本,可以提供報(bào)表設(shè)計(jì)器,可以設(shè)計(jì)多套報(bào)表模板。
支持控制設(shè)備冗余、控制網(wǎng)絡(luò)冗余、監(jiān)控服務(wù)器冗余、監(jiān)控網(wǎng)絡(luò)冗余、監(jiān)控客戶端冗余等多種系統(tǒng)冗余方式。全新的高性能實(shí)時(shí)、歷史數(shù)據(jù)庫(kù)。
3 實(shí)驗(yàn)結(jié)果
以溫度監(jiān)測(cè)系統(tǒng)為例,本文采用上面提到的方案開(kāi)發(fā)了一套如圖1所示工業(yè)用的無(wú)線傳感器網(wǎng)絡(luò),其實(shí)驗(yàn)結(jié)果如圖8和圖9所示。
本文重點(diǎn)介紹了工業(yè)無(wú)線傳感器網(wǎng)絡(luò)部分的實(shí)現(xiàn)。在已經(jīng)實(shí)現(xiàn)工業(yè)無(wú)線傳感器網(wǎng)絡(luò)和節(jié)點(diǎn)間雙向通信的前提下,很容易實(shí)現(xiàn)對(duì)工業(yè)設(shè)備的無(wú)線控制控制,包括繼電器、I/O、開(kāi)關(guān)控制、電機(jī)控制,只需要在軟件和硬件上進(jìn)行一些小的擴(kuò)展就可以了。
參考文獻(xiàn)
[1] 吳光榮,章劍雄.基于CC2430的無(wú)線傳感器網(wǎng)絡(luò)的實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2008(12):121-124.
[2] 毛君,劉克銘,徐廣明.基于C8051F020單片機(jī)的串口通信應(yīng)用[J].煤礦機(jī)械,2005(5):79-81.
[3] 李文仲,段朝玉.CC1110/CC2510無(wú)線單片機(jī)和無(wú)線自組織網(wǎng)絡(luò)入門與實(shí)踐[M].北京:北京航空航天大學(xué)出版社,2008.
[4] 封亞斌.采用串口通信技術(shù)實(shí)現(xiàn)Modbus數(shù)據(jù)通信[J].自動(dòng)化儀表,2004,25(10):56-58.
[5] 余向陽(yáng).無(wú)線傳感器網(wǎng)絡(luò)研究綜述[J].單片機(jī)與嵌入式應(yīng)用,2008(8):8-12.