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