一種基于Ethernet接入模塊的監控系統
2004年9月A版
摘 要:介紹了所開(kāi)發(fā)的Ethernet接入模塊,重點(diǎn)論述了基于Ethernet接入模塊的機動(dòng)車(chē)安全性能檢測線(xiàn)監控系統各種功能的實(shí)現。
關(guān)鍵詞:Ethernet接入模塊; TCP/IP協(xié)議; 監控系統
引言
以太網(wǎng)(Ethernet)因其技術(shù)成熟,通信速率高,硬件產(chǎn)品種類(lèi)豐富、價(jià)格低廉,已在商用計算機的通訊領(lǐng)域和工業(yè)控制系統的信息管理領(lǐng)域得到了廣泛的應用。但長(cháng)期以來(lái)由于Ethernet采用的介質(zhì)訪(fǎng)問(wèn)控制方式是沖突檢測載波監聽(tīng)多點(diǎn)訪(fǎng)問(wèn)CSMA/CD,決定了Ethernet通信具有不確定性,成為其應用于工業(yè)自動(dòng)化控制網(wǎng)絡(luò )的主要障礙。
隨著(zhù)以太網(wǎng)通訊速率成幾何級數的增長(cháng),百兆/千兆網(wǎng)技術(shù)的成熟、交換機技術(shù)和全雙工通信方式的發(fā)展,以太網(wǎng)在低網(wǎng)絡(luò )負荷時(shí)通信響應確定,并能可靠傳輸工業(yè)現場(chǎng)數據,使以太網(wǎng)用于工業(yè)現場(chǎng)具備了現實(shí)可能性。與其它現場(chǎng)總線(xiàn)相比,采用以太網(wǎng)的工業(yè)控制網(wǎng)絡(luò )具有結構簡(jiǎn)單、設備成本低、傳輸距離遠等諸多顯著(zhù)的優(yōu)點(diǎn)。
以太網(wǎng)進(jìn)入控制現場(chǎng)的關(guān)鍵是現場(chǎng)設備的嵌入式Internet技術(shù),目前已開(kāi)發(fā)出的產(chǎn)品主要是在現場(chǎng)設備的16位或32位高性能MCU上駐留TCP/IP協(xié)議棧,通過(guò)與設備上的WEB服務(wù)器交互來(lái)達到監控設備的目的。對于中小型的普通工業(yè)控制現場(chǎng)而言,這類(lèi)產(chǎn)品價(jià)位偏高,并不實(shí)用。筆者開(kāi)發(fā)了基于通用8位單片機的Ethernet接入模塊,應用于機動(dòng)車(chē)安全性能檢測線(xiàn)現場(chǎng),設計并完成了一套功能完備的機動(dòng)車(chē)安全性能檢測線(xiàn)監控系統。
監控系統結構
機動(dòng)車(chē)安全性能檢測線(xiàn)監控系統如圖1所示?,F場(chǎng)各檢測設備(含光電管、繼電器等)通過(guò)Ethernet接入模塊與監控節點(diǎn)、數據庫服務(wù)器、WEB服務(wù)器構成總線(xiàn)式Ethernet網(wǎng)絡(luò ),其物理層實(shí)質(zhì)上是基于交換式集線(xiàn)器的星形結構。
系統中,Ethernet接入模塊嵌入各檢測設備,一端與檢測設備的I/O接口或RS-232等串口通信,另一端接入基于TCP/IP協(xié)議的以太網(wǎng)?,F場(chǎng)檢測的控制主要靠主控機來(lái)完成,依據流程,主控機通過(guò)Ethernet接入模塊和各檢測設備之間進(jìn)行控制信息交互,從檢測設備讀取的檢測數據存入網(wǎng)絡(luò )數據庫中。監控管理機除可以進(jìn)行檢測項目、標準、權限設定等靜態(tài)管理外,還可對現場(chǎng)的任一檢測設備進(jìn)行實(shí)時(shí)監控。遠程監控中心通過(guò)Internet訪(fǎng)問(wèn)檢測線(xiàn)的Web服務(wù)器,根據權限實(shí)現對檢測線(xiàn)的遠程監控,亦可借助Internet供應商提供的服務(wù),通過(guò)Ethernet接入模塊直接對現場(chǎng)設備進(jìn)行控制。
Ethernet接入模塊
模塊結構
Ethernet接入模塊實(shí)質(zhì)上是一個(gè)網(wǎng)絡(luò )協(xié)議轉換器,主要完成TCP/IP協(xié)議與現場(chǎng)總線(xiàn)RS-232協(xié)議的轉換。模塊結構如圖2所示。該模塊將通用的8位單片機與以太網(wǎng)控制芯片相結合,加上相應的外圍電路而構成??煞殖扇齻€(gè)子模塊:以太網(wǎng)控制芯片子模塊,負責接收以太網(wǎng)幀,并把數據送給單片機處理;接收單片機發(fā)來(lái)的數據,按以太網(wǎng)幀格式發(fā)到以太網(wǎng)。單片機子模塊,負責控制整個(gè)模塊,從以太網(wǎng)控制芯片子模塊中將數據包讀入內存,進(jìn)行拆包處理,并將有關(guān)數據發(fā)向RS-232串行接口;將RS-232串行口來(lái)的數據按有關(guān)協(xié)議進(jìn)行打包,送以太網(wǎng)控制芯片子模塊發(fā)至以太網(wǎng)上。擴展子模塊,單片機外圍擴展了程序和數據存儲器,滿(mǎn)足程序和數據的存儲需要。
為模塊開(kāi)發(fā)的軟件主要有:模塊初始化程序、以太網(wǎng)控制器驅動(dòng)程序、TCP/IP協(xié)議棧程序、系統網(wǎng)絡(luò )配置程序等。模塊初始化程序用于設置單片機工作模式及外圍芯片選擇字;以太網(wǎng)控制器驅動(dòng)程序用于設置以太網(wǎng)控制芯片的工作狀態(tài)及工作方式,配置收發(fā)數據的緩沖區;TCP/IP協(xié)議棧程序實(shí)現ARP、IP、UDP協(xié)議;系統網(wǎng)絡(luò )配置程序用于給監測系統分配IP地址及域名。
TCP/IP協(xié)議“剪裁”
用于現場(chǎng)級的以太網(wǎng)TCP/IP協(xié)議如圖3所示。
受8位單片機自身結構和功能的限制,從實(shí)用、夠用角度出發(fā),該模塊對嵌入單片機的TCP/IP協(xié)議棧進(jìn)行了“瘦身”處理,對TCP/IP進(jìn)行“剪裁”,主要保留數據傳輸的基本功能。
由于機動(dòng)車(chē)安全性能檢測線(xiàn)負責監控的站點(diǎn)相對固定,線(xiàn)上測控數據量非常小(一次數據傳送量一般不超過(guò)100Byte),“剪裁”的方案是:在鏈路層,單片機維護一個(gè)靜態(tài)的IP地址與MAC地址的映射表,取消RARP,實(shí)現的ARP也僅響應網(wǎng)絡(luò )ARP請求,發(fā)送ARP回答包。請求者廣播出包含ARP請求的以太網(wǎng)幀(幀類(lèi)型為0X0806),目的以太網(wǎng)地址為全1的廣播地址,本模塊收到后,發(fā)送一個(gè)包含自身MAC地址的ARP回答,以使以太網(wǎng)上PC主機建立和維護IP地址和MAC地址的映射表;在網(wǎng)絡(luò )層,取消ICMP協(xié)議,在處理IP報頭時(shí),不考慮數據分片和優(yōu)先權問(wèn)題,在服務(wù)類(lèi)型和標志偏移域全部填“0”,在“協(xié)議”域填“17”,程序僅對頭核校和和上層是否是UDP協(xié)議進(jìn)行判斷; 在傳輸層,選擇基于無(wú)連接的UDP,而不用TCP。TCP雖然是基于連接的可靠性傳輸協(xié)議,但開(kāi)銷(xiāo)大,對汽車(chē)安全性能檢測線(xiàn)監控網(wǎng)絡(luò )而言,通過(guò)采用超時(shí)重發(fā)、應用層端口判斷、校驗值檢查等措施,可以有效解決UDP的無(wú)連接和不可靠問(wèn)題?!凹舨谩焙蟮腡CP/IP協(xié)議棧程序只有8KB大小,既適應了單片機的存儲結構,也完全滿(mǎn)足現場(chǎng)單片機通訊需求。
模塊工作流程
模塊上電、初始化后,單片機采用查詢(xún)方式判斷以太網(wǎng)控制芯片中是否收到數據包,若有就讀入內存,拆包,若是ARP包,則進(jìn)行ARP響應;若是UDP包,拆包,檢查應用層端口、檢驗值,判斷應用層數據是否為I/O操作命令,是則執行I/O操作命令,其中讀I/O端口的數據要打包發(fā)往網(wǎng)絡(luò );若不是I/O操作命令,將應用層數據從TXD口送出。采用中斷方式接收RXD口來(lái)的數據,打包送以太網(wǎng)。UDP數據包在網(wǎng)絡(luò )中采用超時(shí)重發(fā)、出錯重發(fā)機制,保證模塊與控制節點(diǎn)間按流程進(jìn)行通信。
監控實(shí)現
主控機等監控計算機與現場(chǎng)檢測模塊之間的節點(diǎn)通信、現場(chǎng)測控管理的實(shí)現以及從遠程監控計算機對現場(chǎng)節點(diǎn)的訪(fǎng)問(wèn)等全面監控方式的實(shí)現在設計了Ethernet接入模塊后均可方便的直接觸及現場(chǎng)模塊,從現場(chǎng)實(shí)時(shí)采集數據、控制管理,真正做到點(diǎn)對點(diǎn)測控管理,簡(jiǎn)化監控管理的模型。
節點(diǎn)通信實(shí)現
主控機、監控管理機和WEB服務(wù)器與各Ethernet接入模塊的通信基于Delphi6.0的TNMUDP組件,是無(wú)連接的Socket機制。UDP數據報傳送時(shí),雙方各先建立一個(gè)套接字,然后將各自的套接字和本地網(wǎng)絡(luò )地址綁定在一起,調用sendto()函數發(fā)送數據,調用recvfrom()函數接收,UDP數據拆包后按定義的通信協(xié)議進(jìn)行處理(包括安全驗證、出錯重發(fā)等)。
現場(chǎng)測控管理實(shí)現
用Delphi6.0結合SQL Server 2000開(kāi)發(fā)主控機程序和監控管理機程序。主控機將檢測項目分成若干工位,上線(xiàn)檢測的汽車(chē)登錄后在線(xiàn)上獲取唯一ID標識,并利用多線(xiàn)程技術(shù)控制多輛汽車(chē)同時(shí)在線(xiàn),按登錄時(shí)確定的項目進(jìn)行檢測。主控制機工作時(shí),禁止網(wǎng)絡(luò )其它主機與現場(chǎng)檢測設備進(jìn)行通信。監控管理機一是在現場(chǎng)檢測設備工作時(shí),從數據庫服務(wù)器實(shí)時(shí)地讀取車(chē)輛的檢測信息和設備狀態(tài)信息,監控數據超差和狀態(tài)異常等情況;二是在檢測線(xiàn)空閑或出現故障時(shí),可直接與現場(chǎng)設備分別進(jìn)行通信,讀取設備的自檢信息和設備的狀態(tài)信息,分析判斷設備正常與否或故障原因。
遠程監控實(shí)現
由于采用以太網(wǎng)技術(shù)給每個(gè)現場(chǎng)模塊設定IP地址,使其在網(wǎng)絡(luò )上具有了唯一性的節點(diǎn),對其的訪(fǎng)問(wèn)也就變得比其他總線(xiàn)形式更加簡(jiǎn)單,主機只需要根據Socket編寫(xiě)通用的訪(fǎng)問(wèn)網(wǎng)絡(luò )節點(diǎn)的程序,Ethernet接入模塊均可按照UDP協(xié)議進(jìn)行識別和處理,使得程序結構簡(jiǎn)化。
本系統遠程監控基于B/S模式,采用ActiveX控件通過(guò)Socket的機制與網(wǎng)關(guān)接口服務(wù)程序相連,由服務(wù)程序讀取數據庫檢測數據和信息,并送到客戶(hù)端。當檢測線(xiàn)需要遠程維護或診斷時(shí),服務(wù)程序與各檢測設備的Ethernet接入模塊通信,讀出設備自檢和光電管、繼電器狀態(tài)等信息,顯示在遠程客戶(hù)端瀏覽器頁(yè)面上。為使遠程監控或診斷具有更強的現場(chǎng)感和實(shí)時(shí)性,可將監控管理機的程序功能移植于遠程客戶(hù)端,借助Internet上的VPN服務(wù),遠程對現場(chǎng)各檢測設備直接進(jìn)行測控。
安全控制措施
監控系統在檢測線(xiàn)內網(wǎng)加裝測毒、殺毒軟件,內網(wǎng)與外網(wǎng)之間構筑防火墻,采用包過(guò)濾、應用網(wǎng)關(guān)技術(shù)和身份認證技術(shù),防止非授權的外網(wǎng)用戶(hù)訪(fǎng)問(wèn)內網(wǎng)數據或操作控制現場(chǎng)檢測設備。
結語(yǔ)
Ethernet接入模塊體積小,功耗低,成本低廉,接入方便,在機動(dòng)車(chē)檢測線(xiàn)現場(chǎng)使用,減少了監控網(wǎng)絡(luò )的結構層次,使整個(gè)工業(yè)管理現場(chǎng)總線(xiàn)統一化,信息管理層與現場(chǎng)控制層首次采用一樣的總線(xiàn)技術(shù)完成;省去了485總線(xiàn)方式中的多串口卡、串并行數據線(xiàn)等硬件設備和大量的數據線(xiàn)路;使控制程序與檢測設備之間的通信統一起來(lái),有效解決了為適應不同設備的不同通信方式而更改控制軟件的問(wèn)題,提高了控制軟件的獨立性,增強了軟件的移植性。通過(guò)現場(chǎng)工作驗證,本系統具有工作穩定、可操作性強、通訊實(shí)時(shí)性好等特點(diǎn)。
參考文獻:
1. 鄭文波,‘控制網(wǎng)絡(luò )技術(shù)’,清華大學(xué)出版社,2001
2. 楊清宇、施 仁,‘基于因特網(wǎng)的工業(yè)控制網(wǎng)絡(luò )體系結構研究’,信息與控制, 2002,31(5):466-471
評論