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