內蒙古西門子觸摸屏代理商
內蒙古西門子觸摸屏代理商
支持分散式現場設備和對時間苛求的系統,以及基于組件的分布式自動化系統的集成。
本文詳細分析了PROFINET協議構架、網絡拓撲、網絡組建和協議性能。通過搭建PROFINET實時以太網網絡通信平臺模擬工廠自動化現場情況,采用了西門子Scalance交換機的*的網絡端*像功能,實現了完整的實時以太網報文的抓取、保存和統計。
結合Wireshark網絡報文統計和分析工具,對PROFINET網絡協議進行了詳細分析,對PROFINET網絡性能進行研究和評估,深入解析PROFINET IO系統啟動前尋址前所有的實時報文,精確分析到每個數據的剖析。包含用于名稱解析和分配地址解析的所有服務。
在系統工程期間,控制器更容易標識現場設備以及在協議棧中有利于上下文管理。同時也將DCP與LLDP服務結合使用,高層控制器就能夠再現系統拓撲,并實現替換設備無需額外工具。
1 PROFINET IO協議構架
實時協議保證了周期數據和事件控制消息(警報)的高性能傳輸。它分為以下三種類型(RTC:Real TimeClass,實時類型)(見圖1)。
圖1PROFINET 通信協議
標準的TCP/IP通訊遵循IEEE802.1標準,采用4層的網絡模型結構,包括物理層、數據鏈路層、網絡層和傳輸層,如表1所示。在進行TCP/IP通訊時,協議棧需要在模型的第3層和第4層對數據幀進行打包和解包。
另外,増加的報頭信息會加長通信幀的長度,使得數據處理和傳輸的時間變長,也會加重處理器的負擔。PROFINET通過對標準TCP/IP通訊進行優化,提髙了通信的實時性。
表1 PROFINET與ISO/OSI模型的對應關系
如圖2所示,PROFINET實時協議去掉了TCP/IP通信的第3層和第4層,也就省去了打包和解包的環節,同時也使得幀的長度大為減少。由于沒有使用第3層的網絡協議,PROFINET實時通信并不具備路由的功能。
圖2 PROFINET對標準TCP(UDP)/IP協議的優化
2 PROFINET IO系統工程
2.1配置系統
用SIMATIC STEP 7進行PROFINET IO組態,創建新項目,利用GSD文件,導入新PROFINET IO設備,IO控制器的組態,PROFINET IO系統的組態,IO設備的插入和組態,PROFINET IO設備名字的分配/檢查,生成用戶程序,加載組態和用戶程序,對項目形成文檔并存檔[1],如圖1 所示:
采用CPU 1516-3 PN/DP和ET200SP為系統核心,創建ProfiNet實時以太網, ET200SP 從站模塊,采集現場數字量和模擬量信號。通過采用Scalance交換機,ProfiNet主站與Profinet IO從站進行通信,監聽計算機通過交換機接入該網絡,具體網絡配置如圖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網絡組成
圖4 Profinet網絡監聽結構
如圖4所示:Scalance交換
用這個軟件給交換機設置IP地址,之后可以用IE瀏覽器訪問交換機內部的WEB管理頁面對交換機進行配置。在Switch設置中SwitchCon
圖7 啟動前尋址的報文
如圖6和圖7所示:用Wireshark抓取的“000000000000000000連接過程數據幀”中:
數據幀5224:PROF認請求的響應(PROFINET DCP,Set Ok,Response Ok),已經搜索到需要的設備。
數據幀5226:PLCS7-1500向所有節點發送一個廣播呼叫(目的地址:FF-FF-FF-FF-FF-FF),僅具有IP地址的節點做出應答。之后的數據幀,給ARP請求提供響應,找到對應的子網中具有該IP地址的的ET200 SP。設置請求,向IO設備寫入一個參數(此時是IP地址),設置響應(請求確認)。
3 PROFINET I/O 系統啟動前的尋址
基于下載的組態數據,控制器在分配IP地址時首先檢查所組態的名稱是否存在。如果具有有所請求名稱的相應IO現場設備作出回答,則控制器檢查IP地址是否已經存于該設備中[9]。在分配IP地址前另一個順序是使用標準IP服務ARP(地址解析協議)進行地址解析[10]。
IP地址設置好后,I/O控制器利用設置的IP地址發送AR-Setup數據進行應用關系組態,PROFINET現場設備在可以開始通信之前,必須在系統啟動前基于“NameOfStation”被分配IP地址。在真正建立連接之前,IO設備就已經分配了名字,IO設備的名字為ioxadevicexb1652a。這個順序如圖8所示:
圖8 用DCP給IO設備分配IP地址的序列
3.1 名稱解析
設備名稱(“Name Of Station”)必須分配給每個PROFINET設備,且必須記憶性地保存在現場設備中。該名稱可以由工程工具使用DCP協議(默認集成PROFINET現場設備中)在系統調試前分配。
發現和基本配置協議如表2所示:
表2 給IO設備分配名字的服務
1)標識(Identify)請求(系統啟動前的名稱解析)
在為設備分配IP地址的順序中,“DCP.Identify.req”務與“Search for a name(尋找一個名稱)”的順序一樣。然而,在這個階段,控制器直接請求所組態的名稱(“NameOfStation”度大于零)。僅具有名稱的設備才做出應答。如表3所示,Identify服務是DCP協議的一部分,用于地址分配并默認集成在PROFINET中。“DCP.Identify.req”幀是實時幀,其Ethertype為0x8892。
幀中相關數據的解釋如下:
Identify Request:是一個多播幀因為其目的地址不確定。當Dest.Addr(目的地址)使用01-0E-FC-00-00-00時標識PNO組播地址。僅PROFINET設備響應這個地址。
DCP Data:IO設備的名字為ioxadevicexb1652a;
Identify 服務是DCP協議的一部分,用于地址分配并默認集成在PROFINET中。PLC通過PNO多播地址(01-0E-CF-00-00-00)發送的,控制器直接請求所組態的名稱(ioxadevicexb1652a),僅具有名稱的設備才做出應答。
DCP Header頭部:包含服務標識符、事務編號、參數化長度,以及應答某個搜索條件的超時值。
DCP Data數據:該字段更詳細地規定了通信的數據,但不包含用于標識的狀態信息。
2)標識(Identify)響應
“DCP.Identify.res”幀是實時幀,其Ethertype為0x8892。控制器通過它來接收滿足搜索條件的相應站點的應答。必須包含以下數據如表4所示:IP參數、“NameOfStation”、設備ID、設備角色和設備選項;尋求一個特定的名稱(已經搜索到需要尋找的設備名字)。
表3“DCP.Identify”的幀結構
表4 “DCP.Identify.res”數據幀結構
3.2地址解析
1)地址解析協議(ARP)