基于以太網(wǎng)的分布式數(shù)據(jù)采集監(jiān)控系統(tǒng)的應(yīng)用
關(guān)鍵詞:遠(yuǎn)端智能模塊;工業(yè)以太網(wǎng);監(jiān)控系統(tǒng)
1、引言
傳感器技術(shù)、通信技術(shù)和計算機技術(shù)是現(xiàn)代信息技術(shù)的三大基礎(chǔ)。隨著工業(yè)自動化進(jìn)程的推進(jìn)和企業(yè)信息化程度的提高,工業(yè)控制網(wǎng)絡(luò)所承擔(dān)的工作越來越重,這時就需要一種高速、廉價、實時性和開放性好、穩(wěn)定性和準(zhǔn)確性高的工業(yè)控制網(wǎng)絡(luò)。于是以TCP/IP協(xié)議為基礎(chǔ)的工業(yè)以太網(wǎng)技術(shù)走進(jìn)了人們的視線。
TCP/IP是目前所實現(xiàn)的最成功的網(wǎng)絡(luò)協(xié)議,是Internet互連網(wǎng)的基礎(chǔ)。因此,盡管TCP/ IP支持的網(wǎng)絡(luò)很多,支持EtherNet的協(xié)議也很多,但卻只有把EtherNet和TCP/ IP 結(jié)合起來,才能適應(yīng)全球化的Internet ,采用TCP/ IP 為中間協(xié)議的以太網(wǎng)即將成為工業(yè)控制網(wǎng)絡(luò)的主要標(biāo)準(zhǔn)[1]。以TCP/IP為基礎(chǔ)的以太網(wǎng)技術(shù)引入工業(yè)控制領(lǐng)域,其技術(shù)優(yōu)勢非常明顯:(1)Ethernet是全開放、全數(shù)字化的網(wǎng)絡(luò),遵照網(wǎng)絡(luò)協(xié)議不同廠商的設(shè)備可以很容易實現(xiàn)互聯(lián);(2)以太網(wǎng)能實現(xiàn)工業(yè)控制網(wǎng)絡(luò)與企業(yè)信息網(wǎng)絡(luò)的無縫連接,形成企業(yè)級管控一體化的全開放網(wǎng)絡(luò);(3)結(jié)構(gòu)簡單,成本低廉;(4)通信速率高,有良好的兼容性能。10Mbit/s、100 Mbit/s和1G bit/s甚至10 G bit/s各種速率可以采用“自動協(xié)商”技術(shù)在網(wǎng)絡(luò)中實現(xiàn)運行其中徹底一種,而幾乎不需更改其硬件設(shè)施;(5)以太網(wǎng)通訊實時性好,運行可靠[3]- [2]。
以太網(wǎng)的優(yōu)點解決了以前數(shù)據(jù)采集系統(tǒng)存在的通訊的可靠與通訊的效率之間的矛盾。隨著工業(yè)控制的發(fā)展,以太網(wǎng)正慢慢代替其它的控制網(wǎng)絡(luò)。本文介紹了在以太網(wǎng)通訊的基礎(chǔ)上配以合理的編程思想,實現(xiàn)高效通訊的數(shù)據(jù)采集監(jiān)控系統(tǒng)。
2、基本原理
2.1硬件構(gòu)成
在介紹硬件構(gòu)成之前,我們要先了解一個在此系統(tǒng)中非常重要的硬件——串口聯(lián)網(wǎng)設(shè)備服務(wù)器。在這里我們就用在立德粉廠項目中使用的LANTRONIX串口聯(lián)網(wǎng)設(shè)備服務(wù)器VDS100介紹一下。VDS100使用一種叫串行隧道(serial tunneling)的方法,將串行數(shù)據(jù)封裝在數(shù)據(jù)包中在以太網(wǎng)上傳送。應(yīng)用中首先必須根據(jù) VDS100 的出廠的物理地址設(shè)置好其ip地址(可變)。然后根據(jù)com 端口重定向軟件,通過擴展基于com 端口的windows.應(yīng)用功能,簡化了集成過程。這種映射到網(wǎng)絡(luò)遠(yuǎn)程設(shè)備服務(wù)器的虛擬com 端口可以代替直接的串行連接。然后根據(jù)連接到VDS100上面的智能模塊的信號類型設(shè)置設(shè)備響應(yīng)串行端口的方式,以及網(wǎng)絡(luò)傳輸、處理串行數(shù)據(jù)包以及起動和關(guān)閉連接的方式。
基于工業(yè)以太網(wǎng)的分布式監(jiān)控系統(tǒng)的硬件主要有監(jiān)控計算機(上位機)、串口聯(lián)網(wǎng)設(shè)備服務(wù)器、AD轉(zhuǎn)換器、智能模塊通過光纖連接構(gòu)成見圖1[4]。
為了滿足工業(yè)的不同需求,選用可以支持RS-232和RS-485的串行標(biāo)準(zhǔn)的串口聯(lián)網(wǎng)設(shè)備服務(wù)器,例如我們在具體項目中用的VDS100。對于輸出的是RS-232和RS-485的模塊來說,直接就可以掛到串口聯(lián)網(wǎng)設(shè)備服務(wù)器上面。而對于輸出是模擬信號的模塊來說,就先要通過A/D轉(zhuǎn)換器轉(zhuǎn)換成RS-485信號,再接到串口聯(lián)網(wǎng)設(shè)備服務(wù)器上。我們選用轉(zhuǎn)換成RS-485是因為其相對RS-232來說,傳輸距離更遠(yuǎn),噪聲更低,還有安全性更高等優(yōu)點。對于串口聯(lián)網(wǎng)設(shè)備服務(wù)器來說,其串行接口上可以掛256個數(shù)據(jù)監(jiān)控遠(yuǎn)端模塊,而每個模塊上面又有多路輸入輸出,所以為了以后的拓展留下很大的空間。
圖1 立德粉廠數(shù)據(jù)采集的工業(yè)以太網(wǎng)控制系統(tǒng)硬件連接圖
2.2通訊原理
在數(shù)據(jù)采集監(jiān)控系統(tǒng)中,監(jiān)控計算機與智能模塊采用主從應(yīng)答方式進(jìn)行彼此之間的通訊。 數(shù)采監(jiān)控計算機作為上位機是處于主動的狀態(tài),數(shù)采監(jiān)控計算機通過以太網(wǎng)向智能模塊發(fā)送各種各樣的ASCII格式的命令,例如對智能模塊進(jìn)行參數(shù)設(shè)置、狀態(tài)查詢和讀智能模塊采集到的數(shù)據(jù)等等。而智能模塊作為下位機則處于被動狀態(tài),它們一直處于監(jiān)聽狀態(tài)。
當(dāng)數(shù)據(jù)監(jiān)控計算機發(fā)出各種命令時,首先是串口聯(lián)網(wǎng)設(shè)備服務(wù)器將自己虛擬出來的COMM口與上位機程序要打開的COMM口比較,如果一致則打開COMM口。然后再通過其虛擬的串口將指令傳送到連接在其上的所有智能模塊中。同一個串口聯(lián)網(wǎng)設(shè)備服務(wù)器上的所有的智能模塊都可以接收到指令,它們將指令中的包含的地址信息與自己的地址相比較,如果一致,則對指令作出響應(yīng),返回數(shù)據(jù)串。如果地址不一致,就忽略不作任何響應(yīng)。由于在某些串口聯(lián)網(wǎng)設(shè)備服務(wù)器上面連接的遠(yuǎn)端智能模塊類型多而且數(shù)目不小,為避免通訊的混亂,所以我們采取優(yōu)先級控制。首先,必須設(shè)定一個命令發(fā)生緩沖區(qū)和一個數(shù)據(jù)接收緩沖區(qū)。上位機發(fā)出的任何命令都先被壓進(jìn)命令發(fā)送緩沖區(qū),經(jīng)過優(yōu)先級處理后再逐條發(fā)送。其次,給每種指令設(shè)定優(yōu)先級的高低。在命令發(fā)送緩沖區(qū)中同時有多條指令要發(fā)送時,優(yōu)先級高的指令優(yōu)先發(fā)送,而當(dāng)優(yōu)先級相同時,就按照進(jìn)入命令發(fā)送緩沖區(qū)的先后順序,先到先出。再次,還要定義網(wǎng)絡(luò)通訊忙標(biāo)志。當(dāng)上位機向網(wǎng)絡(luò)發(fā)送指令后,要設(shè)置通訊忙標(biāo)志為TRUE,在接收到返回的數(shù)據(jù)串后,再把它設(shè)置為FALSE。這樣才做到通訊的有條不紊和高效率。
3、軟件設(shè)計
上位機的監(jiān)控程序可以分為兩部分。一是命令發(fā)送部分:當(dāng)數(shù)據(jù)監(jiān)控計算機向網(wǎng)絡(luò)發(fā)送一條指令時,其先按照發(fā)送指令的優(yōu)先級的高低與命令發(fā)送緩沖區(qū)中的各個指令相比較,確定其在發(fā)送命令緩沖區(qū)中的編號,然后壓入命令發(fā)送緩沖區(qū)。如果通訊空閑,則從緩沖區(qū)中取出優(yōu)先級最高的指令,然后設(shè)置串口事件,清空數(shù)據(jù)接收緩沖區(qū),設(shè)定通訊忙標(biāo)志為TRUE,最后把指令發(fā)送到網(wǎng)絡(luò)上去。指令中指定的模塊接收到命令后,即返回一幀數(shù)據(jù)串。上位機接收到返回的數(shù)據(jù)串后便檢查其是否正確,如果正確,就把剛剛發(fā)送的指令從命令發(fā)送緩沖區(qū)中刪除(見圖2)。二是數(shù)據(jù)接收部分:上位機在把指令發(fā)送出去前先清空數(shù)據(jù)接收緩沖區(qū),在把指令發(fā)送出去后,就不停地查詢數(shù)據(jù)接收緩沖區(qū),如果沒有數(shù)據(jù)就循環(huán)等待。若有數(shù)據(jù)但不正確就退出,如果正確就把數(shù)據(jù)串從數(shù)據(jù)接收緩沖區(qū)提取出來,通過處理數(shù)據(jù)串,得到各種不同格式的符合要求的數(shù)據(jù)(見圖3)。
圖2 指令發(fā)送流程圖

圖3 數(shù)據(jù)接收流程圖
基于上面兩個流程圖,就可以用Visual Basic 6.0或者Visual C++ 6.0編寫上位機程序。Visual Basic 6.0或者Visual C++ 6.0語言簡單易讀、容易掌握的特點,可以簡化編程和調(diào)試工作,并借助ActiveX控件與上位機實現(xiàn)串行通信,達(dá)到了過程數(shù)據(jù)采集和通信實現(xiàn)的速度和可靠性等方面的要求,完成現(xiàn)場數(shù)據(jù)采集任務(wù),具有很大的應(yīng)用和推廣意義。
通信部分的主要程序發(fā)送命令函數(shù)的代碼如下:
Public Function SendCmd (Cmd As String, BufLen as Interger, Priority As Integer)
Call Sort (Priority) ‘調(diào)用Sort()函數(shù),按優(yōu)先級Priority的大小排序,
‘壓入命令發(fā)送緩沖區(qū)
If Not ComBusy And BufCmdNum > 0 Then ‘如果通訊空閑且發(fā)送緩沖區(qū)不為空,
‘就可以取Buf中的第一條
MSComm1.InBufferCount = 0 ‘清空發(fā)送緩沖區(qū)
MSComm1.RThreshold = CmdBuf(0).BufLen
MSComm1.InputLen = CmdBuf(0).BufLen ‘清空數(shù)據(jù)接受緩沖區(qū)
MSComm1.Output = CmdBuf(0).Cmd ‘發(fā)送命令
Timer1.Enabled = True ‘開啟響應(yīng)超時計時器
ComBuzy = True ‘置通訊忙標(biāo)記
End If
End Function
4、應(yīng)用實例
此系統(tǒng)應(yīng)用在廣州華立-薩其賓化工顏料公司的立德粉生產(chǎn)數(shù)據(jù)采集與質(zhì)量控制項目中。系統(tǒng)中主要的硬件串口聯(lián)網(wǎng)設(shè)備服務(wù)器用LANTRONIX 公司的VDS100,VDS100 設(shè)備服務(wù)器價格低廉、易于管理,它可以快速簡便地集成到現(xiàn)有 IP 網(wǎng)絡(luò)中,VDS100 使用戶有能力實時存取連網(wǎng)設(shè)備的信息。使用其附帶的虛擬串口軟件,可以將虛擬的 COM 端口映射到網(wǎng)絡(luò)上的遠(yuǎn)程設(shè)備服務(wù)器上,對 COM 端口操作的 Windows 應(yīng)用程序不再需要直接的串行連接。在這個項目中,自動采集的數(shù)據(jù)包括三條生產(chǎn)轉(zhuǎn)窯的各種生產(chǎn)數(shù)據(jù)50來個、兩個煙霧排放檢測機檢測的各種環(huán)保數(shù)據(jù)24個、23個車間的用電量的各種數(shù)據(jù)、5路蒸汽流量等等。基于工業(yè)以太網(wǎng)的分布式監(jiān)控系統(tǒng)成功地運用到該項目中,通過以太網(wǎng)實時、穩(wěn)定、準(zhǔn)確地實現(xiàn)了各種數(shù)據(jù)的采集并存放進(jìn)數(shù)據(jù)庫,同時通過網(wǎng)絡(luò)實時傳送到公司的各個客戶端,為工作人員及時提供資料,使他們的工作效率得到很大提高。例如可以減少抄表、數(shù)據(jù)處理等工作人員(在數(shù)據(jù)采集系統(tǒng)中,我們還根據(jù)要求在代碼中實現(xiàn)采集到的數(shù)據(jù)的處理,使其成為工廠需要的數(shù)據(jù)格式),而且工作人員只要在有計算機(連接到工業(yè)以太網(wǎng))的地方就可以隨時了解上述各個點的運作情況,以便隨時作出決策。這樣就為工廠節(jié)省了人力、物力,并為管理者及時作出決策提供及時、可靠的資料。
5、結(jié)束語
工業(yè)以太網(wǎng)控制系統(tǒng)與其它控制系統(tǒng)相比較具有很大的優(yōu)勢,可以應(yīng)用在多種工業(yè)控制領(lǐng)域。隨著以太網(wǎng)技術(shù)的快速發(fā)展,基于以太網(wǎng)的工業(yè)控制網(wǎng)絡(luò)時代將會很快到來,并成為最具開放性的工業(yè)控制網(wǎng)絡(luò)體系結(jié)構(gòu)。通過以太網(wǎng)通訊,再配以合適的編程思想,實現(xiàn)工業(yè)生產(chǎn)數(shù)據(jù)的采集,沒有了以前通訊可靠性差和效率低的缺點,在實時性問題上也得到了有效的解決。這對于工業(yè)生產(chǎn)的數(shù)據(jù)采集自動化和信息化來說,能起到重大的推廣作用,對于工業(yè)自動化程度還比較低的工業(yè)生產(chǎn)來說也具有重大的意義。
參考文獻(xiàn):
[1] 吳愛國,李長濱。 工業(yè)以太網(wǎng)協(xié)議EtherNet/ IP[J]. 計算機應(yīng)用。2003年11月,第23卷,第11期.
[2]趙琦,楊鵬,孔鑫,馬超. 工業(yè)以太網(wǎng)的發(fā)展及其技術(shù)特點[J].www.controlnet.org
[3] 王延堯等編著.以太網(wǎng)技術(shù)與應(yīng)用[M].人民郵電出版社,2005.
[4]甘永梅,李慶豐,劉曉娟,王兆安. 現(xiàn)場總線技術(shù)及其應(yīng)用[M].機械工業(yè)出版社,2005.
文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。