科遠股份技術中心/程傳良
【摘要】本文對IP組播技術和其在分散控制系統(DCS)中的應用作了介紹,給出了IP組播技術在分散控制系統(DCS)中的設計思想與實現方法。運行結果表明,方案合理,運行可靠。
【關鍵字】IP組播、組播通信、組播路由協議、分散控制系統、DCS
1引言
隨著經濟全球化發展,分散控制系統(DCS)逐步形成融合信息技術(IT)、集成多種總線、采用功能安全技術集管控、儀控、電控一體化方向發展。同時對分散控制系統(DCS)應對復雜大型系統架構和超大容量的數據交互提出更高要求。
IP組播的技術和應用開始快速發展。對分散控制系統(DCS)的超大容量的數據交互提供了新的思路。本文通過采用視頻會議常用到的IP 組播技術來提高分散控制系統(DCS)數據傳輸的實時性、準確性,優化系統網絡結構, 以獲得更好的經濟效益.
2 IP組播
2.1組播傳輸的優點
在IP網絡中TCP/IP 傳送方式有3 種: 單播, 廣播, 組播.
傳統的單播和廣播的通信方式均不能以最小的網絡開銷實現單點發送、多點接收的問題,IP 組播技術的出現及時解決了這個問題。
相比單播來說,組播的優勢在于:由于被傳遞的信息在距信息源盡可能遠的網絡節點才開始被復制和分發,所以用戶的增加不會導致信息源負載的加重以及網絡資源消耗的顯著增加。
相比廣播來說,組播的優勢在于:由于被傳遞的信息只會發送給需要該信息的接收者,所以不會造成網絡資源的浪費,并能提高信息傳輸的安全性;另外,廣播只能在同一網段中進行,而組播可以實現跨網段的傳輸。
2.2組播通信
在組播中,用戶按不同的應用分為不同的用戶組,組成員要向組播服務器(一般為路由器)注冊,用戶主機發出請求報文,表明所要加入的組。每個組播群組有惟一的D類地址。其地址范圍從224.0.0.0到239.255.255.255。IP最多可提供多達228個同步組播群組的地址,因此,實際群組數受選路由表大小而不是編址的約束。
轉發IP組播需要特殊的組播路由器(multicast router)。通常是給常規路由器添加這種能力。組播路由器會周期性地對該組進行查詢,檢查組內的成員是否還參與其中,只要還有一個主機仍在參與,組播路由器就繼續接收數據。當所有的主機都離開了組后,組播路由器會收到一個Internet組管理協議(Internet Group Manage Protocol, IGMP)的“離開”消息報文,組播路由器就會馬上查詢組中是否還有活動的組成員。如果有活動的組成員,組播路由器就繼續轉發數據;如果沒有,就不再轉發數據。
3 IP組播在分散控制系統(DCS)中的應用
3.1 系統總體設計
在分散控制系統(DCS)應用過程中,存在著大量的DPU上行數據,發送至多個人機界面(HMI)系統。正好可以利IP組播的優趨,實行單播/組播相結合的混合傳輸方式,通過設計合理數據交換方案,不僅保證數據安全達到HMI工作站,而且減輕分散處理單元(DPU)和網絡設備CPU 的網絡負荷,提高系統效率,獲得良好的性能和經濟性。下圖1為系統結構示意圖。

圖1:系統結構
系統主要有四部分組成:I/O采集卡件、分散處理單元(DPU)、系統IP網絡、人機界面(HMI)。
如圖1,分散處理單元(DPU)通過總線協議完成與I/O采集卡件的雙向數據交換;在系統設計時,只要按系統具體的數據獲取需求,合理劃分不同的組播組,將每一個DPU(就是一個組播源)按需求加入不同的組播組,可以加入多個組播組,將實時數據以組播形式在系統IP網絡發布出去;每個人機界面(HMI)工作站(組播數據的接收者),按數據獲取要求,分別加入不同的組播組,也可以加入多個組播組,完成組播數據的接收。系統IP網絡由備具組播功能的路由器、集線器、交換機、防火墻等構成,共同完成組播數據的轉發。組播主要完成分散處理單元(DPU)到人機界面(HMI)上行數據,其他如控制命令數據等,輔以單播方式完成。
3.2 IP組播Winsock編程方法
在實際應用中,IP組播編程實現的方法隨DPU嵌入式支撐系統和HMI運行系統平臺的不同有所不同的;編程人員通常借助于操作系統中所提供的網絡數據通信編程接口實現網上的IP組播通信的功能。下面以在Microsoft Windows環境下的網絡編程接口(Windows Socket,簡稱Winsock)介紹具體的IP組播編程實現的方法。
圖2 Winsock實現IP組播過程流程圖
3.2.1 IP組播數據發送流程(DPU)
● 調用WSAStartup ( )函數,Winsock 服務的初始化。
● 調用socket ( )函數,創建數據報套接口,它是組播組的初始化套接字,并且以后數據的發送在該套接字上進行。
● 調用setsockopt( )函數,設置發送的數據報本地接口(IP_MULTICAST_IF)及設置多播地址(例:239.100.1.1)和端口號(例:20120)。
● 使用sendto()函數,發送數據,目標地址為第二步所設置的多播地址。
● 關閉套接字,釋放Winsock資源。
3.2.2 IP組播數據接收流程(HMI)
● 調用WSAStartup ( )函數,Winsock 服務的初始化。
l 調用socket ( )函數,創建數據報套接口,它是組播組的初始化套接字,并且以后數據的接收在該套接字上進行。
● 調用bind ( )函數,綁定本地地址(如:INADDR_ANY)和端口號(同發送端)。
● 調用setsockopt( )函數,設置IP_ADD_MEMBERSHIP選項,加入多播組。
● 調用recvfrom()函數,接收數據。
● 關閉套接字,釋放Winsock資源。
4 IP組播存在的問題
IP組播數據包典型使用用戶數據報協議(UDP),而UDP是一種“盡力而為”(Best-effort)協議。因此,IP組播應用必定會遇到數據包丟失和亂序問題。
安全組播就是只有注冊的發送者才可以向組發送數據;只有注冊的接收者才可以接收組播數據。然而IP組播很難保證這一點。
Internet是一個異構網絡,所以在設計IP組播網絡時,必須充分考慮到網絡的異構性。
5結束語
IP 組播技術能夠有效地解決單點發送到多點、多點發送到多點的問題,實現了 IP 網絡中點到多點的高效數據傳送,能夠有效地節約網絡帶寬、降低網絡負載。在實際應用過程中,只要正視組播存在的問題,充分考慮到網絡的異構性,通過設計合理網絡架構和數據交換協議,一樣可以構造出安全可靠的系統。科遠股份NT6000分散控制系統成功研制充分證明這一點;NT6000分散控制系統在應用推廣過程中,IP組播通信技術在NT6000分散控制系統的應用也充分得到客戶的肯定。
參考文獻:
[1] TCP/IP網絡互聯技術(1)原理,協議和體系結構(第3版)清華大學出版社,2001.
[2] IP組播與安全(第1版) 國防工業出版社,2006
[3]中國大型火電廠DCS應用現狀 CONTROL ENGINEERING China,2009
[4] IP組播通信及其在VxWorks操作系統下的實現計算機與數字工程,2003