云南民族大學(xué)電氣信息工程學(xué)院的研究人員和淑芬、沈勇、范雄濤、王鏡程,在2018年第2期《電氣技術(shù)》雜志上撰文指出,PROFINET是基于工業(yè)以太網(wǎng)的用于工業(yè)自動化的創(chuàng)新的、開放的現(xiàn)場總線協(xié)議,支持分散式現(xiàn)場設(shè)備和對時間苛求的系統(tǒng),以及基于組件的分布式自動化系統(tǒng)的集成。 本文詳細(xì)分析了PROFINET協(xié)議構(gòu)架、網(wǎng)絡(luò)拓?fù)?、網(wǎng)絡(luò)組建和協(xié)議性能。通過搭建PROFINET實(shí)時以太網(wǎng)網(wǎng)絡(luò)通信平臺模擬工廠自動化現(xiàn)場情況,采用了西門子Scalance交換機(jī)的獨(dú)特的網(wǎng)絡(luò)端口鏡像功能,實(shí)現(xiàn)了完整的實(shí)時以太網(wǎng)報(bào)文的抓取、保存和統(tǒng)計(jì)。 結(jié)合Wireshark網(wǎng)絡(luò)報(bào)文統(tǒng)計(jì)和分析工具,對PROFINET網(wǎng)絡(luò)協(xié)議進(jìn)行了詳細(xì)分析,對PROFINET網(wǎng)絡(luò)性能進(jìn)行研究和評估,深入解析PROFINET IO系統(tǒng)啟動前尋址前所有的實(shí)時報(bào)文,精確分析到每個數(shù)據(jù)的剖析。包含用于名稱解析和分配地址解析的所有服務(wù)。 在系統(tǒng)工程期間,控制器更容易標(biāo)識現(xiàn)場設(shè)備以及在協(xié)議棧中有利于上下文管理。同時也將DCP與LLDP服務(wù)結(jié)合使用,高層控制器就能夠再現(xiàn)系統(tǒng)拓?fù)?,并?shí)現(xiàn)替換設(shè)備無需額外工具。 1 PROFINET IO協(xié)議構(gòu)架 實(shí)時協(xié)議保證了周期數(shù)據(jù)和事件控制消息(警報(bào))的高性能傳輸。它分為以下三種類型(RTC:Real TimeClass,實(shí)時類型)(見圖1)。 圖1PROFINET 通信協(xié)議 標(biāo)準(zhǔn)的TCP/IP通訊遵循IEEE802.1標(biāo)準(zhǔn),采用4層的網(wǎng)絡(luò)模型結(jié)構(gòu),包括物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層和傳輸層,如表1所示。在進(jìn)行TCP/IP通訊時,協(xié)議棧需要在模型的第3層和第4層對數(shù)據(jù)幀進(jìn)行打包和解包。 另外,増加的報(bào)頭信息會加長通信幀的長度,使得數(shù)據(jù)處理和傳輸?shù)臅r間變長,也會加重處理器的負(fù)擔(dān)。PROFINET通過對標(biāo)準(zhǔn)TCP/IP通訊進(jìn)行優(yōu)化,提髙了通信的實(shí)時性。 表1 PROFINET與ISO/OSI模型的對應(yīng)關(guān)系 如圖2所示,PROFINET實(shí)時協(xié)議去掉了TCP/IP通信的第3層和第4層,也就省去了打包和解包的環(huán)節(jié),同時也使得幀的長度大為減少。由于沒有使用第3層的網(wǎng)絡(luò)協(xié)議,PROFINET實(shí)時通信并不具備路由的功能。 圖2 PROFINET對標(biāo)準(zhǔn)TCP(UDP)/IP協(xié)議的優(yōu)化 2 PROFINET IO系統(tǒng)工程 2.1配置系統(tǒng) 用SIMATIC STEP 7進(jìn)行PROFINET IO組態(tài),創(chuàng)建新項(xià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)和用戶程序,對項(xiàng)目形成文檔并存檔[1],如圖1 所示: 采用CPU 1516-3 PN/DP和ET200SP為系統(tǒng)核心,創(chuàng)建ProfiNet實(shí)時以太網(wǎng), ET200SP 從站模塊,采集現(xiàn)場數(shù)字量和模擬量信號。通過采用Scalance交換機(jī),ProfiNet主站與Profinet IO從站進(jìn)行通信,監(jiān)聽計(jì)算機(jī)通過交換機(jī)接入該網(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 2.2網(wǎng)絡(luò)組成 圖4 Profinet網(wǎng)絡(luò)監(jiān)聽結(jié)構(gòu) 如圖4所示:Scalance交換機(jī)端口P1接PLC S7-1500,端口P2接SIMATIC-PC,端口P3接 Sniffer,端口P4接ET200SP。 本文通過以上的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)和連接方式,深入分析啟動前網(wǎng)絡(luò)配置報(bào)文、循環(huán)周期數(shù)據(jù)報(bào)文以及網(wǎng)絡(luò)故障報(bào)文等信息[2]。實(shí)時以太網(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]。 2.3 PROFINET報(bào)文監(jiān)聽 標(biāo)準(zhǔn)以太網(wǎng)數(shù)據(jù)報(bào)文,在數(shù)據(jù)傳遞過程中最常遇到的是交換機(jī)。交換機(jī)接收來自各個端口的數(shù)據(jù),以最優(yōu)的傳輸路徑、最快的轉(zhuǎn)發(fā)數(shù)據(jù)到目的端口。這樣就避免了數(shù)據(jù)碰撞,使得每個端口都擁有最大得傳輸速率。因此,本文引入了高級Scalance X208交換機(jī),利用其特有的端口映射功能,改變網(wǎng)絡(luò)的數(shù)據(jù)走向。 Scalance X208是一款多端口的高級交換機(jī),具備多種網(wǎng)絡(luò)管理功能,并提供強(qiáng)大的數(shù)據(jù)路由功能[4]。該交換機(jī)具有8個10/100Mbit/s RJ45端口,設(shè)計(jì)適合新型拓?fù)洌邆浼傻?/span>SNMP訪問、Web診斷以及PROFINET診斷。端口映射功能,就可以通過默認(rèn)的 Web 網(wǎng)頁方式進(jìn)行管理[5]。 西門子工業(yè)交換機(jī)的配置軟件,主要用來配置西門子Sacanlace交換機(jī),Primary SetupTool (PST) 軟件用于為SIMATIC NET網(wǎng)絡(luò)組件、以太網(wǎng)CP及網(wǎng)關(guān)分配地址(比如 IP地址)[6]。使用PST軟件,進(jìn)入交換機(jī)管理,里面設(shè)置交換機(jī)IP地址。在這里把交換機(jī)的地址設(shè)置為192.168.0.203。固有的MAC地址:00-1B-1B-4E-E5-92,如圖5所示。 圖5 PST 配置 用這個軟件給交換機(jī)設(shè)置IP地址,之后可以用IE瀏覽器訪問交換機(jī)內(nèi)部的WEB管理頁面對交換機(jī)進(jìn)行配置。在Switch設(shè)置中SwitchConfiguration中設(shè)置映射端口。 把實(shí)時以太網(wǎng)Profinet實(shí)時報(bào)文,通過西門子Profinet主站PLCS7-1500將由物理接口傳送到Scalance Switch交換機(jī)的第4號端口,發(fā)送到第1號端口,傳送到ET200SP從站,同時交換機(jī)將數(shù)據(jù)實(shí)時報(bào)文復(fù)制后發(fā)送到第 3 號端口,從而完成Wireshark對報(bào)文數(shù)據(jù)的抓取整理過程。 使得所有流入、流出端口4的所有數(shù)據(jù),都全部傳輸?shù)蕉丝?/span> 3,交給Sniffer監(jiān)控計(jì)算機(jī)進(jìn)行處理,根據(jù)數(shù)據(jù)流可以進(jìn)行Profinet網(wǎng)絡(luò)的數(shù)據(jù)監(jiān)控和分析[7]。 圖6 PN-DCP的報(bào)文 圖7 啟動前尋址的報(bào)文 如圖6和圖7所示:用Wireshark抓取的“連接過程數(shù)據(jù)幀”中: 數(shù)據(jù)幀5224:PROFINET DCP,Set Req(IO控制器向IO設(shè)備發(fā)送請求),將參數(shù)寫入設(shè)備[8]。 數(shù)據(jù)幀5225:對確認(rèn)請求的響應(yīng)(PROFINET DCP,Set Ok,Response Ok),已經(jīng)搜索到需要的設(shè)備。 數(shù)據(jù)幀5226:PLCS7-1500向所有節(jié)點(diǎn)發(fā)送一個廣播呼叫(目的地址:FF-FF-FF-FF-FF-FF),僅具有指定IP地址的節(jié)點(diǎn)做出應(yīng)答。之后的數(shù)據(jù)幀,給ARP請求提供響應(yīng),找到對應(yīng)的子網(wǎng)中具有該IP地址的的ET200 SP。設(shè)置請求,向IO設(shè)備寫入一個參數(shù)(此時是IP地址),設(shè)置響應(yīng)(請求確認(rèn))。 3 PROFINET I/O 系統(tǒng)啟動前的尋址 基于下載的組態(tài)數(shù)據(jù),控制器在分配IP地址時首先檢查所組態(tài)的名稱是否存在。如果具有有所請求名稱的相應(yīng)IO現(xiàn)場設(shè)備作出回答,則控制器檢查IP地址是否已經(jīng)存于該設(shè)備中[9]。在分配IP地址前另一個順序是使用標(biāo)準(zhǔn)IP服務(wù)ARP(地址解析協(xié)議)進(jìn)行地址解析[10]。 IP地址設(shè)置好后,I/O控制器利用設(shè)置的IP地址發(fā)送AR-Setup數(shù)據(jù)進(jìn)行應(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地址的序列 3.1 名稱解析 設(shè)備名稱(“Name Of Station”)必須分配給每個PROFINET設(shè)備,且必須記憶性地保存在現(xiàn)場設(shè)備中。該名稱可以由工程工具使用DCP協(xié)議(默認(rèn)集成PROFINET現(xiàn)場設(shè)備中)在系統(tǒng)調(diào)試前分配。 發(fā)現(xiàn)和基本配置協(xié)議如表2所示: 表2 給IO設(shè)備分配名字的服務(wù) 1)標(biāo)識(Identify)請求(系統(tǒng)啟動前的名稱解析) 在為設(shè)備分配IP地址的順序中,“DCP.Identify.req”務(wù)與“Search for a name(尋找一個名稱)”的順序一樣。然而,在這個階段,控制器直接請求所組態(tài)的名稱(“NameOfStation”度大于零)。僅具有指定名稱的設(shè)備才做出應(yīng)答。如表3所示,Identify服務(wù)是DCP協(xié)議的一部分,用于地址分配并默認(rèn)集成在PROFINET中。“DCP.Identify.req”幀是實(shí)時幀,其Ethertype為0x8892。 幀中相關(guān)數(shù)據(jù)的解釋如下: Identify Request:是一個多播幀因?yàn)槠淠康牡刂凡淮_定。當(dāng)Dest.Addr(目的地址)使用01-0E-FC-00-00-00時標(biāo)識PNO組播地址。僅PROFINET設(shè)備響應(yīng)這個地址。 DCP Data:IO設(shè)備的名字為ioxadevicexb1652a; Identify 服務(wù)是DCP協(xié)議的一部分,用于地址分配并默認(rèn)集成在PROFINET中。PLC通過PNO多播地址(01-0E-CF-00-00-00)發(fā)送的,控制器直接請求所組態(tài)的名稱(ioxadevicexb1652a),僅具有指定名稱的設(shè)備才做出應(yīng)答。 DCP Header頭部:包含服務(wù)標(biāo)識符、事務(wù)編號、參數(shù)化長度,以及應(yīng)答某個搜索條件的超時值。 DCP Data數(shù)據(jù):該字段更詳細(xì)地規(guī)定了通信的數(shù)據(jù),但不包含用于標(biāo)識的狀態(tài)信息。 2)標(biāo)識(Identify)響應(yīng) “DCP.Identify.res”幀是實(shí)時幀,其Ethertype為0x8892??刂破魍ㄟ^它來接收滿足搜索條件的相應(yīng)站點(diǎn)的應(yīng)答。必須包含以下數(shù)據(jù)如表4所示:IP參數(shù)、“NameOfStation”、設(shè)備ID、設(shè)備角色和設(shè)備選項(xiàng);尋求一個特定的名稱(已經(jīng)搜索到需要尋找的設(shè)備名字)。 表3“DCP.Identify”的幀結(jié)構(gòu) 表4 “DCP.Identify.res”數(shù)據(jù)幀結(jié)構(gòu) 3.2地址解析 1)地址解析協(xié)議(ARP) ARP請求:通過ARP,控制器發(fā)出Identify服務(wù)詢問IP地址是否已經(jīng)存在于系統(tǒng)中??刂破飨蛩泄?jié)點(diǎn)發(fā)送一個廣播呼叫(目的地址= FF-FF-FF-FF-FF-FF),僅具有指定IP地址的節(jié)點(diǎn)做出應(yīng)答。該呼叫通過“ARP”超時進(jìn)行時間監(jiān)視。“ARP”是標(biāo)準(zhǔn)的IT服務(wù)。如表5所示。 2)設(shè)置(Set)請求 “ARP”服務(wù)超時后,控制器開始為設(shè)備分配IP??刂破魍ㄟ^“DCPSet.req”將參數(shù)寫入設(shè)備,如表6所示。 3)設(shè)置(Set)響應(yīng) 通過“DCPSet.res”幀,控制器接收對“DCPSet.req”的確認(rèn),如表7所示。 表5 ARP數(shù)據(jù)幀結(jié)構(gòu) 表6 “DCPSet.req”數(shù)據(jù)幀 表7“DCPSet.res”數(shù)據(jù)幀結(jié)構(gòu) 4現(xiàn)場設(shè)備的編址 DCP協(xié)議用作名稱/地址解析的基礎(chǔ),也是實(shí)現(xiàn)“設(shè)備更換無需編程設(shè)備”全部概念的一部分。能夠利用LLDP服務(wù)來確定基于端口到端口的鄰居設(shè)備的數(shù)據(jù),在這種情況下,DCP僅提供允許該功能與LLDP(鏈路層發(fā)現(xiàn)協(xié)議,即鄰居探測)結(jié)合使用的基本機(jī)制[11]。通過組合這兩種服務(wù),可以在控制器或工程工具中再現(xiàn)系統(tǒng)拓?fù)?,并?shí)現(xiàn)設(shè)備替換而無需其他工具。 PROFINET采用了符合IEEE802.1AB的LLDP協(xié)議來探測鄰居(如圖9)。因此,系統(tǒng)操作員必須確保所有的現(xiàn)場設(shè)備與交換機(jī)都具有LLDP功能,能夠通過每個交換機(jī)端口與相連的鄰居設(shè)備交換現(xiàn)有的地址信息。因此,相鄰設(shè)備可以被明確標(biāo)識并確定其物理位置。LLDP幀的數(shù)據(jù)單元至少包含以下信息: 發(fā)送端口的Port ID;設(shè)備MAC地址或設(shè)備名稱;向目的端口發(fā)送LLDP幀的周期時間; OID(組織標(biāo)識符)值為24686標(biāo)識該幀為PROFINET發(fā)出的幀。 圖9 PROFINET采用LLDP交換鄰居信息 結(jié)合使用默認(rèn)集成在PROFINET中的DCP協(xié)議或使用SNMP,控制器可以從現(xiàn)場設(shè)備中讀出LLDP信息。這樣,就可能在高層控制器中再現(xiàn)完整的自動化系統(tǒng),并方便在工程系統(tǒng)中顯示系統(tǒng)診斷。此外,在出現(xiàn)故障的情況下,具有新MAC地址的替換設(shè)備可以自動啟用,如果新的現(xiàn)場設(shè)備中具有正確的名稱或沒有名稱。 5 小結(jié) 本文建立一個簡單的PROFINET網(wǎng)絡(luò)組態(tài),通過搭建實(shí)時以太網(wǎng)PROFINET通信網(wǎng)絡(luò)來模擬工廠自動化現(xiàn)場的實(shí)際情況,雖然實(shí)際工業(yè)現(xiàn)場會使用更多的設(shè)備,采用更多復(fù)雜的拓?fù)浣Y(jié)構(gòu),但是在通信通道內(nèi),數(shù)據(jù)報(bào)文內(nèi)容和結(jié)構(gòu)是一致的,因此本文將能夠幫助自動化工程師加深對PROFINET IO通信的理解,從而更好選擇PROFINET產(chǎn)品。 采用西門子Scalance交換機(jī)的獨(dú)特的網(wǎng)絡(luò)端口鏡像功能,采用以太網(wǎng)分析軟件Wireshark進(jìn)行分析,對已有大量的數(shù)據(jù)報(bào)文數(shù)據(jù)進(jìn)行各類獨(dú)立的分析和統(tǒng)計(jì),給出PROFINET實(shí)時以太網(wǎng)網(wǎng)絡(luò)實(shí)際啟動前的性能結(jié)果。 為將來的PROFINET對實(shí)時以太網(wǎng)數(shù)據(jù)的偵聽、網(wǎng)絡(luò)診斷和網(wǎng)絡(luò)實(shí)時性分析等奠定基礎(chǔ),同時,現(xiàn)場設(shè)備開發(fā)人員和系統(tǒng)操作人員對于標(biāo)準(zhǔn)報(bào)文以及制造商特定報(bào)文會具有良好的協(xié)調(diào)性。 還分析了PROFINET采用LLDP協(xié)議和DCP協(xié)議結(jié)合使用,通過LLDP探測鄰居,無需組態(tài)工具就可以進(jìn)行設(shè)備替換。方便系統(tǒng)操作員遇現(xiàn)場設(shè)備故障時,進(jìn)行短時間內(nèi)替換。因此,這需要進(jìn)行深入研究PROFINET技術(shù)的方向和課題。 |
|