和淑芬 沈 勇 范雄濤 王鏡程
(云南民族大學(xué)電氣信息工程學(xué)院,昆明 650500)
ProfiNet是基于工業(yè)以太網(wǎng)用于工業(yè)自動化創(chuàng)新的、開放的現(xiàn)場總線協(xié)議,支持分散式現(xiàn)場設(shè)備和對時間苛求的系統(tǒng),以及基于組件的分布式自動化系統(tǒng)的集成。
本文詳細分析了ProfiNet協(xié)議構(gòu)架、網(wǎng)絡(luò)拓撲、網(wǎng)絡(luò)組建和協(xié)議性能。通過搭建ProfiNet實時以太網(wǎng)網(wǎng)絡(luò)通信平臺模擬工廠自動化現(xiàn)場情況,采用了西門子 Scalance交換機的獨特的網(wǎng)絡(luò)端口鏡像功能,實現(xiàn)了完整的實時以太網(wǎng)報文的抓取、保存和統(tǒng)計,結(jié)合Wireshark網(wǎng)絡(luò)報文統(tǒng)計和分析工具,對ProfiNet網(wǎng)絡(luò)協(xié)議進行了詳細分析,對ProfiNet網(wǎng)絡(luò)性能進行研究和評估,深入解析 ProfiNet IO系統(tǒng)啟動前尋址前所有的實時報文,精確分析到每個數(shù)據(jù)的剖析。包含用于名稱解析和分配地址解析的所有服務(wù)。在系統(tǒng)工程期間,控制器更容易標識現(xiàn)場設(shè)備以及在協(xié)議棧中有利于上下文管理。同時也將DCP與LLDP服務(wù)結(jié)合使用,高層控制器就能夠再現(xiàn)系統(tǒng)拓撲,并實現(xiàn)替換設(shè)備無需額外工具。
實時協(xié)議保證了周期數(shù)據(jù)和事件控制消息(警報)的高性能傳輸。其分為以下3種類型(RTC:Real Time Class,實時類型),如圖1所示。
標準的TCP/IP通信遵循IEEE 802.1標準,采用4層的網(wǎng)絡(luò)模型結(jié)構(gòu),包括物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層和傳輸層,見表1。在進行TCP/IP通信時,協(xié)議棧需要在模型的第3層和第4層對數(shù)據(jù)幀進行打包和解包。另外,増加的報頭信息會加長通信幀的長度,使得數(shù)據(jù)處理和傳輸?shù)臅r間變長,也會加重處理器的負擔(dān)。ProfiNet通過對標準TCP/IP通信進行優(yōu)化,提髙了通信的實時性。
如圖2所示,ProfiNet實時協(xié)議去掉了TCP/ IP通信的第3層和第4層,也就省去了打包和解包的環(huán)節(jié),同時也使得幀的長度大為減少。由于沒有使用第3層的網(wǎng)絡(luò)協(xié)議,所以ProfiNet實時通信并不具備路由的功能。
圖1 ProfiNet通信協(xié)議
表1 ProfiNet與ISO/OSI模型的對應(yīng)關(guān)系
圖2 ProfiNet對標準TCP(UDP)/IP協(xié)議的優(yōu)化
用SIMATIC STEP 7進行ProfiNet IO組態(tài),創(chuàng)建新項目,利用GSD文件,導(dǎo)入新ProfiNet IO設(shè)備,IO控制器的組態(tài),ProfiNet IO系統(tǒng)的組態(tài),IO設(shè)備的插入和組態(tài),ProfiNet IO設(shè)備名字的分配/檢查,生成用戶程序,加載組態(tài)和用戶程序,對項目形成文檔并存檔[1],如圖1所示。
采用CPU 1516-3 PN/DP和ET200SP為系統(tǒng)核心,創(chuàng)建ProfiNet實時以太網(wǎng),ET200SP從站模塊,采集現(xiàn)場數(shù)字量和模擬量信號。通過采用Scalance交換機,ProfiNet主站與ProfiNet IO從站進行通信,監(jiān)聽計算機通過交換機接入該網(wǎng)絡(luò),具體網(wǎng)絡(luò)配置如圖3所示。
圖3 ProfiNet的測試硬件工程配置
其軟件配置如下。
PLC S7-1500:
IP地址:192.168.0.100
MAC地址:28-63-36-88-07-E1
SIMATIC-PC:
IP地址:192.168.0.201
MAC地址:D4-3D-7E-40-9B-3B
Sniffer:
IP地址:192.168.0.103
MAC地址:04-7D-7B-91-DE-08
ET200SP:
IP地址:192.168.0.101
MAC地址:28-63-36-2B-94-0C
如圖4所示:Scalance交換機端口P1接PLC S7-1500,端口 P2接 SIMATIC-PC,端口 P3接Sniffer,端口P4接ET200SP。
本文通過以上的網(wǎng)絡(luò)拓撲結(jié)構(gòu)和連接方式,深入分析啟動前網(wǎng)絡(luò)配置報文、循環(huán)周期數(shù)據(jù)報文以及網(wǎng)絡(luò)故障報文等信息[2]。實時以太網(wǎng)的結(jié)構(gòu)決定了網(wǎng)絡(luò)監(jiān)聽的復(fù)雜性,因此,網(wǎng)絡(luò)數(shù)據(jù)監(jiān)聽的重要任務(wù)就是捕獲以太網(wǎng)絡(luò)上的所有數(shù)據(jù)包[3]。
圖4 ProfiNet網(wǎng)絡(luò)監(jiān)聽結(jié)構(gòu)
標準以太網(wǎng)數(shù)據(jù)報文,在數(shù)據(jù)傳遞過程中最常遇到的是交換機。交換機接收來自各個端口的數(shù)據(jù),以最優(yōu)的傳輸路徑、最快的轉(zhuǎn)發(fā)數(shù)據(jù)到目的端口。這樣就避免了數(shù)據(jù)碰撞,使得每個端口都擁有最大得傳輸速率。因此,本文引入了高級Scalance X208交換機,利用其特有的端口映射功能,改變網(wǎng)絡(luò)的數(shù)據(jù)走向。
Scalance X208是一款多端口的高級交換機,具備多種網(wǎng)絡(luò)管理功能,并提供強大的數(shù)據(jù)路由功能[4]。該交換機具有8個10/100Mbit/s RJ45端口,設(shè)計適合新型拓撲,具備集成的SNMP訪問、Web診斷以及ProfiNet診斷。端口映射功能,就可以通過默認的Web網(wǎng)頁方式進行管理[5]。
西門子工業(yè)交換機的配置軟件,主要用來配置西門子Sacanlace交換機,Primary Setup Tool(PST)軟件用于為 SIMATIC NET網(wǎng)絡(luò)組件、以太網(wǎng) CP及網(wǎng)關(guān)分配地址(比如 IP地址)[6]。使用 PST軟件,進入交換機管理,里面設(shè)置交換機 IP地址。在這里把交換機的地址設(shè)置為192.168.0.203。固有的MAC地址:00-1B-1B-4E-E5-92,如圖5所示。
用這個軟件給交換機設(shè)置IP地址,之后可以用IE瀏覽器訪問交換機內(nèi)部的WEB管理頁面對交換機進行配置。在Switch設(shè)置中Switch Configuration中設(shè)置映射端口。把實時以太網(wǎng)ProfiNet實時報文,通過西門子 ProfiNet主站 PLCS7-1500將由物理接口傳送到Scalance Switch交換機的第4號端口,發(fā)送到第 1號端口,傳送到 ET200SP從站,同時交換機將數(shù)據(jù)實時報文復(fù)制后發(fā)送到第3號端口,從而完成Wireshark對報文數(shù)據(jù)的抓取整理過程。使得所有流入、流出端口4的所有數(shù)據(jù),都全部傳輸?shù)蕉丝?,交給Sniffer監(jiān)控計算機進行處理,根據(jù)數(shù)據(jù)流可以進行ProfiNet網(wǎng)絡(luò)的數(shù)據(jù)監(jiān)控和分析[7]。
用Wireshark抓取的“連接過程數(shù)據(jù)幀”分別如圖6和圖7所示。
圖5 PST配置
圖6 P N-DCP的報文
圖7 啟動前尋址的報文
數(shù)據(jù)幀5224:ProfiNet DCP,Set Req(IO控制器向IO設(shè)備發(fā)送請求),將參數(shù)寫入設(shè)備[8]。
數(shù)據(jù)幀 5225:對確認請求的響應(yīng)(ProfiNet DCP,Set Ok,Response Ok),已經(jīng)搜索到需要的設(shè)備。
數(shù)據(jù)幀5226:PLCS7-1500向所有節(jié)點發(fā)送一個廣播呼叫(目的地址:FF-FF-FF-FF-FF-FF),僅具有指定IP地址的節(jié)點做出應(yīng)答。之后的數(shù)據(jù)幀,給 ARP請求提供響應(yīng),找到對應(yīng)的子網(wǎng)中具有該IP地址的的ET200 SP。設(shè)置請求,向IO設(shè)備寫入一個參數(shù)(此時是IP地址),設(shè)置響應(yīng)(請求確認)。
基于下載的組態(tài)數(shù)據(jù),控制器在分配 IP地址時首先檢查所組態(tài)的名稱是否存在。若具有所請求名稱的相應(yīng)IO現(xiàn)場設(shè)備作出回答,則控制器檢查IP地址是否已經(jīng)存于該設(shè)備中[9]。在分配 IP地址前另一個順序是使用標準IP服務(wù)ARP(地址解析協(xié)議)進行地址解析[10]。
IP地址設(shè)置好后,I/O控制器利用設(shè)置的 IP地址發(fā)送 AR-Setup數(shù)據(jù)進行應(yīng)用關(guān)系組態(tài),ProfiNet現(xiàn)場設(shè)備在可以開始通信之前,必須在系統(tǒng)啟動前基于“NameOfStation”被分配IP地址。在真正建立連接之前,IO設(shè)備就已經(jīng)分配了名字,IO設(shè)備的名字為 ioxadevicexb1652a。這個順序如圖8所示。
圖8 用DCP給IO設(shè)備分配IP地址的序列
設(shè)備名稱(“Name of Station”)必須分配給每個ProfiNet設(shè)備,且必須記憶性地保存在現(xiàn)場設(shè)備中。該名稱可以由工程工具使用 DCP協(xié)議(默認集成ProfiNet現(xiàn)場設(shè)備中)在系統(tǒng)調(diào)試前分配。
發(fā)現(xiàn)和基本配置協(xié)議見表2。
表2 給IO設(shè)備分配名字的服務(wù)
1)標識(Identify)請求(系統(tǒng)啟動前的名稱解析)
在為設(shè)備分配IP地址的順序中,“DCP.Identify.req”務(wù)與“Search for a name(尋找一個名稱)”的順序一樣。然而,在這個階段,控制器直接請求所組態(tài)的名稱(“Name Of Station”度大于零)。僅具有指定名稱的設(shè)備才做出應(yīng)答。Identify服務(wù)是DCP協(xié)議的一部分,用于地址分配并默認集成在ProfiNet中見表3?!癉CP.Identify.req”幀是實時幀,其 Ethertype為 0x8892。
幀中相關(guān)數(shù)據(jù)的解釋如下。
Identify Request:是一個多播幀因為其目的地址不確定。當 Dest.Addr(目的地址)使用 01-0EFC-00-00-00時標識PNO組播地址。僅ProfiNet設(shè)備響應(yīng)這個地址。
DCP Data:IO設(shè)備的名字為ioxadevicexb1652a;Identify服務(wù)是DCP協(xié)議的一部分,用于地址分配并默認集成在ProfiNet中。PLC通過PNO多播地址(01-0E-CF-00-00-00)發(fā)送的,控制器直接請求所組態(tài)的名稱(ioxadevicexb1652a),僅具有指定名稱的設(shè)備才做出應(yīng)答。
表3 “DCP.Identify”的幀結(jié)構(gòu)
DCP Header頭部:包含服務(wù)標識符、事務(wù)編號、參數(shù)化長度,以及應(yīng)答某個搜索條件的超時值。
DCP Data數(shù)據(jù):該字段更詳細地規(guī)定了通信的數(shù)據(jù),但不包含用于標識的狀態(tài)信息。
2)標識(Identify)響應(yīng)
“DCP.Identify.res”幀是實時幀,其 Ethertype為0x8892??刂破魍ㄟ^它來接收滿足搜索條件的相應(yīng)站點的應(yīng)答。必須包含以下數(shù)據(jù)見表4:IP參數(shù)、“Name Of Station”、設(shè)備ID、設(shè)備角色和設(shè)備選項;尋求一個特定的名稱(已經(jīng)搜索到需要尋找的設(shè)備名字)。
1)地址解析協(xié)議(ARP)
ARP請求:通過ARP,控制器發(fā)出Identify服務(wù)詢問 IP地址是否已經(jīng)存在于系統(tǒng)中??刂破飨蛩泄?jié)點發(fā)送一個廣播呼叫(目的地址=FF-FF-FFFF-FF-FF),僅具有指定IP地址的節(jié)點做出應(yīng)答。該呼叫通過“ARP”超時進行時間監(jiān)視?!癆RP”是標準的IT服務(wù)。見表5。
2)設(shè)置(Set)請求
“ARP”服務(wù)超時后,控制器開始為設(shè)備分配IP??刂破魍ㄟ^“DCPSet.req”將參數(shù)寫入設(shè)備,見表6。
3)設(shè)置(Set)響應(yīng)
通過“DCPSet.res”幀,控制器接收對“DCPSet.req”的確認,見表7。
表4 “DCP.Identify.res”數(shù)據(jù)幀結(jié)構(gòu)
表5 ARP數(shù)據(jù)幀結(jié)構(gòu)
表6 “DCPSet.req”數(shù)據(jù)幀
表7 “DCPSet.res”數(shù)據(jù)幀結(jié)構(gòu)
DCP協(xié)議用作名稱/地址解析的基礎(chǔ),也是實現(xiàn)“設(shè)備更換無需編程設(shè)備”全部概念的一部分。能夠利用LLDP服務(wù)來確定基于端口到端口的鄰居設(shè)備的數(shù)據(jù),在這種情況下,DCP僅提供允許該功能與LLDP(鏈路層發(fā)現(xiàn)協(xié)議,即鄰居探測)結(jié)合使用的基本機制[11]。通過組合這兩種服務(wù),可以在控制器或工程工具中再現(xiàn)系統(tǒng)拓撲,并實現(xiàn)設(shè)備替換而無需其他工具。
ProfiNet采用了符合IEEE802.1AB的LLDP協(xié)議來探測鄰居,如圖9所示。因此,系統(tǒng)操作員必須確保所有的現(xiàn)場設(shè)備與交換機都具有 LLDP功能,能夠通過每個交換機端口與相連的鄰居設(shè)備交換現(xiàn)有的地址信息。因此,相鄰設(shè)備可以被明確標識并確定其物理位置。LLDP幀的數(shù)據(jù)單元至少包含以下信息:發(fā)送端口的Port ID;設(shè)備MAC地址或設(shè)備名稱;向目的端口發(fā)送LLDP幀的周期時間;OID(組織標識符)值為24686,標識該幀為ProfiNet發(fā)出的幀。
圖9 ProfiNet采用LLDP交換鄰居信息
結(jié)合使用默認集成在 ProfiNet中的 DCP協(xié)議或使用 SNMP,控制器可以從現(xiàn)場設(shè)備中讀出LLDP信息。這樣,就可能在高層控制器中再現(xiàn)完整的自動化系統(tǒng),并方便在工程系統(tǒng)中顯示系統(tǒng)診斷。此外,在出現(xiàn)故障的情況下,如果新的現(xiàn)場設(shè)備中具有正確的名稱或沒有名稱,具有新MAC地址的替換設(shè)備就可以自動啟用。
本文建立一個簡單的ProfiNet網(wǎng)絡(luò)組態(tài),通過搭建實時以太網(wǎng)ProfiNet通信網(wǎng)絡(luò)來模擬工廠自動化現(xiàn)場的實際情況,雖然實際工業(yè)現(xiàn)場會使用更多的設(shè)備,采用更多復(fù)雜的拓撲結(jié)構(gòu),但是在通信通道內(nèi),數(shù)據(jù)報文內(nèi)容和結(jié)構(gòu)是一致的,因此本文將能夠幫助自動化工程師加深對ProfiNet IO通信的理解,從而更好選擇 ProfiNet產(chǎn)品。采用西門子Scalance交換機的獨特的網(wǎng)絡(luò)端口鏡像功能,采用以太網(wǎng)分析軟件Wireshark進行分析,對已有大量的數(shù)據(jù)報文數(shù)據(jù)進行各類獨立的分析和統(tǒng)計,給出ProfiNet實時以太網(wǎng)網(wǎng)絡(luò)實際啟動前的性能結(jié)果。為將來的ProfiNet對實時以太網(wǎng)數(shù)據(jù)的偵聽、網(wǎng)絡(luò)診斷和網(wǎng)絡(luò)實時性分析等奠定基礎(chǔ),同時,現(xiàn)場設(shè)備開發(fā)人員和系統(tǒng)操作人員對于標準報文以及制造商特定報文會具有良好的協(xié)調(diào)性。本文還分析了ProfiNet采用LLDP協(xié)議和DCP協(xié)議結(jié)合使用,通過LLDP探測鄰居,無需組態(tài)工具就可以進行設(shè)備替換。方便系統(tǒng)操作員遇現(xiàn)場設(shè)備故障時,進行短時間內(nèi)替換。因此,需要深入研究ProfiNet技術(shù)的方向和課題。
[1] RaimondPigan, Metter M, 湯亞鋒譯, et al. ProfiNet工業(yè)通信指南[M]. 北京: 人民郵電出版社, 2007.
[2] 白碩. ProfiNet技術(shù)的研究與開發(fā)[D]. 北京: 北京化工大學(xué), 2010.
[3] 劉喜梅, 李程. ProfiNet I/O通信實時性分析[J]. 微型機與應(yīng)用, 2010(2): 37-39.
[4] 彭杰, 李秀元, 應(yīng)啟戛. ProfiNet及其同步通信協(xié)議分析[J]. 微計算機信息, 2006, 22(188): 208-209.
[5] 王秀蓮, 劉昭明, 畢大強. 基于CANopen的DSP和ABB變頻器的通信與實現(xiàn)[J]. 電氣技術(shù), 2016, 17(3): 60-63.
[6] 梁偉光. PROFINET的實時通信技術(shù)分析[J]. 中國儀器儀表, 2011: 104-105.
[7] 李明強, 劉小河, 田雨聰. Profibus-DP智能從站的設(shè)計[J]. 電氣技術(shù), 2015, 16(4): 77-80.
[8] 丁冠軍, 蘭海濱, 樊邦奎, 等. 智能電網(wǎng)應(yīng)用中的PLC技術(shù)[J]. 電工技術(shù)學(xué)報, 2013, 28(S2): 378-382.
[9] 李程. 基于 ProfiNet協(xié)議的現(xiàn)場總線設(shè)備研究[D].青島: 青島科技大學(xué), 2010.
[10] 金儒衡, 鄭國軍. 基于Profibus_DP的主從通信在加熱爐改造系統(tǒng)中的應(yīng)用[J]. 電氣技術(shù), 2016, 17(10): 96-98.
[11] 張曉虎, 羅隆福, 李勇, 等. 基于光纖以太網(wǎng)通信的大功率工業(yè)整流系統(tǒng)多點測量與能效分析[J]. 電工技術(shù)學(xué)報, 2014, 29(4): 111-120.
[12] 孫凡金, 劉彥呈, 潘新祥. ProfiNet工業(yè)以太網(wǎng)實時通信協(xié)議分析[J]. 低壓電器, 2008(21): 30-33.