深入解析ProfiNet IO系统启动前寻址的实时报文
2018-03-01和淑芬范雄涛王镜程
和淑芬 沈 勇 范雄涛 王镜程
(云南民族大学电气信息工程学院,昆明 650500)
ProfiNet是基于工业以太网用于工业自动化创新的、开放的现场总线协议,支持分散式现场设备和对时间苛求的系统,以及基于组件的分布式自动化系统的集成。
本文详细分析了ProfiNet协议构架、网络拓扑、网络组建和协议性能。通过搭建ProfiNet实时以太网网络通信平台模拟工厂自动化现场情况,采用了西门子 Scalance交换机的独特的网络端口镜像功能,实现了完整的实时以太网报文的抓取、保存和统计,结合Wireshark网络报文统计和分析工具,对ProfiNet网络协议进行了详细分析,对ProfiNet网络性能进行研究和评估,深入解析 ProfiNet IO系统启动前寻址前所有的实时报文,精确分析到每个数据的剖析。包含用于名称解析和分配地址解析的所有服务。在系统工程期间,控制器更容易标识现场设备以及在协议栈中有利于上下文管理。同时也将DCP与LLDP服务结合使用,高层控制器就能够再现系统拓扑,并实现替换设备无需额外工具。
1 ProfiNet IO协议构架
实时协议保证了周期数据和事件控制消息(警报)的高性能传输。其分为以下3种类型(RTC:Real Time Class,实时类型),如图1所示。
标准的TCP/IP通信遵循IEEE 802.1标准,采用4层的网络模型结构,包括物理层、数据链路层、网络层和传输层,见表1。在进行TCP/IP通信时,协议栈需要在模型的第3层和第4层对数据帧进行打包和解包。另外,増加的报头信息会加长通信帧的长度,使得数据处理和传输的时间变长,也会加重处理器的负担。ProfiNet通过对标准TCP/IP通信进行优化,提髙了通信的实时性。
如图2所示,ProfiNet实时协议去掉了TCP/ IP通信的第3层和第4层,也就省去了打包和解包的环节,同时也使得帧的长度大为减少。由于没有使用第3层的网络协议,所以ProfiNet实时通信并不具备路由的功能。
图1 ProfiNet通信协议
表1 ProfiNet与ISO/OSI模型的对应关系
图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所示:Scalance交换机端口P1接PLC S7-1500,端口 P2接 SIMATIC-PC,端口 P3接Sniffer,端口P4接ET200SP。
本文通过以上的网络拓扑结构和连接方式,深入分析启动前网络配置报文、循环周期数据报文以及网络故障报文等信息[2]。实时以太网的结构决定了网络监听的复杂性,因此,网络数据监听的重要任务就是捕获以太网络上的所有数据包[3]。
图4 ProfiNet网络监听结构
2.3 ProfiNet报文监听
标准以太网数据报文,在数据传递过程中最常遇到的是交换机。交换机接收来自各个端口的数据,以最优的传输路径、最快的转发数据到目的端口。这样就避免了数据碰撞,使得每个端口都拥有最大得传输速率。因此,本文引入了高级Scalance X208交换机,利用其特有的端口映射功能,改变网络的数据走向。
Scalance X208是一款多端口的高级交换机,具备多种网络管理功能,并提供强大的数据路由功能[4]。该交换机具有8个10/100Mbit/s RJ45端口,设计适合新型拓扑,具备集成的SNMP访问、Web诊断以及ProfiNet诊断。端口映射功能,就可以通过默认的Web网页方式进行管理[5]。
西门子工业交换机的配置软件,主要用来配置西门子Sacanlace交换机,Primary Setup Tool(PST)软件用于为 SIMATIC NET网络组件、以太网 CP及网关分配地址(比如 IP地址)[6]。使用 PST软件,进入交换机管理,里面设置交换机 IP地址。在这里把交换机的地址设置为192.168.0.203。固有的MAC地址:00-1B-1B-4E-E5-92,如图5所示。
用这个软件给交换机设置IP地址,之后可以用IE浏览器访问交换机内部的WEB管理页面对交换机进行配置。在Switch设置中Switch Configuration中设置映射端口。把实时以太网ProfiNet实时报文,通过西门子 ProfiNet主站 PLCS7-1500将由物理接口传送到Scalance Switch交换机的第4号端口,发送到第 1号端口,传送到 ET200SP从站,同时交换机将数据实时报文复制后发送到第3号端口,从而完成Wireshark对报文数据的抓取整理过程。使得所有流入、流出端口4的所有数据,都全部传输到端口3,交给Sniffer监控计算机进行处理,根据数据流可以进行ProfiNet网络的数据监控和分析[7]。
用Wireshark抓取的“连接过程数据帧”分别如图6和图7所示。
图5 PST配置
图6 P N-DCP的报文
图7 启动前寻址的报文
数据帧5224:ProfiNet DCP,Set Req(IO控制器向IO设备发送请求),将参数写入设备[8]。
数据帧 5225:对确认请求的响应(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(寻找一个名称)”的顺序一样。然而,在这个阶段,控制器直接请求所组态的名称(“Name Of Station”度大于零)。仅具有指定名称的设备才做出应答。Identify服务是DCP协议的一部分,用于地址分配并默认集成在ProfiNet中见表3。“DCP.Identify.req”帧是实时帧,其 Ethertype为 0x8892。
帧中相关数据的解释如下。
Identify Request:是一个多播帧因为其目的地址不确定。当 Dest.Addr(目的地址)使用 01-0EFC-00-00-00时标识PNO组播地址。仅ProfiNet设备响应这个地址。
DCP Data:IO设备的名字为ioxadevicexb1652a;Identify服务是DCP协议的一部分,用于地址分配并默认集成在ProfiNet中。PLC通过PNO多播地址(01-0E-CF-00-00-00)发送的,控制器直接请求所组态的名称(ioxadevicexb1652a),仅具有指定名称的设备才做出应答。
表3 “DCP.Identify”的帧结构
DCP Header头部:包含服务标识符、事务编号、参数化长度,以及应答某个搜索条件的超时值。
DCP Data数据:该字段更详细地规定了通信的数据,但不包含用于标识的状态信息。
2)标识(Identify)响应
“DCP.Identify.res”帧是实时帧,其 Ethertype为0x8892。控制器通过它来接收满足搜索条件的相应站点的应答。必须包含以下数据见表4:IP参数、“Name Of Station”、设备ID、设备角色和设备选项;寻求一个特定的名称(已经搜索到需要寻找的设备名字)。
3.2 地址解析
1)地址解析协议(ARP)
ARP请求:通过ARP,控制器发出Identify服务询问 IP地址是否已经存在于系统中。控制器向所有节点发送一个广播呼叫(目的地址=FF-FF-FFFF-FF-FF),仅具有指定IP地址的节点做出应答。该呼叫通过“ARP”超时进行时间监视。“ARP”是标准的IT服务。见表5。
2)设置(Set)请求
“ARP”服务超时后,控制器开始为设备分配IP。控制器通过“DCPSet.req”将参数写入设备,见表6。
3)设置(Set)响应
通过“DCPSet.res”帧,控制器接收对“DCPSet.req”的确认,见表7。
表4 “DCP.Identify.res”数据帧结构
表5 ARP数据帧结构
表6 “DCPSet.req”数据帧
表7 “DCPSet.res”数据帧结构
4 现场设备的编址
DCP协议用作名称/地址解析的基础,也是实现“设备更换无需编程设备”全部概念的一部分。能够利用LLDP服务来确定基于端口到端口的邻居设备的数据,在这种情况下,DCP仅提供允许该功能与LLDP(链路层发现协议,即邻居探测)结合使用的基本机制[11]。通过组合这两种服务,可以在控制器或工程工具中再现系统拓扑,并实现设备替换而无需其他工具。
ProfiNet采用了符合IEEE802.1AB的LLDP协议来探测邻居,如图9所示。因此,系统操作员必须确保所有的现场设备与交换机都具有 LLDP功能,能够通过每个交换机端口与相连的邻居设备交换现有的地址信息。因此,相邻设备可以被明确标识并确定其物理位置。LLDP帧的数据单元至少包含以下信息:发送端口的Port ID;设备MAC地址或设备名称;向目的端口发送LLDP帧的周期时间;OID(组织标识符)值为24686,标识该帧为ProfiNet发出的帧。
图9 ProfiNet采用LLDP交换邻居信息
结合使用默认集成在 ProfiNet中的 DCP协议或使用 SNMP,控制器可以从现场设备中读出LLDP信息。这样,就可能在高层控制器中再现完整的自动化系统,并方便在工程系统中显示系统诊断。此外,在出现故障的情况下,如果新的现场设备中具有正确的名称或没有名称,具有新MAC地址的替换设备就可以自动启用。
5 结论
本文建立一个简单的ProfiNet网络组态,通过搭建实时以太网ProfiNet通信网络来模拟工厂自动化现场的实际情况,虽然实际工业现场会使用更多的设备,采用更多复杂的拓扑结构,但是在通信通道内,数据报文内容和结构是一致的,因此本文将能够帮助自动化工程师加深对ProfiNet IO通信的理解,从而更好选择 ProfiNet产品。采用西门子Scalance交换机的独特的网络端口镜像功能,采用以太网分析软件Wireshark进行分析,对已有大量的数据报文数据进行各类独立的分析和统计,给出ProfiNet实时以太网网络实际启动前的性能结果。为将来的ProfiNet对实时以太网数据的侦听、网络诊断和网络实时性分析等奠定基础,同时,现场设备开发人员和系统操作人员对于标准报文以及制造商特定报文会具有良好的协调性。本文还分析了ProfiNet采用LLDP协议和DCP协议结合使用,通过LLDP探测邻居,无需组态工具就可以进行设备替换。方便系统操作员遇现场设备故障时,进行短时间内替换。因此,需要深入研究ProfiNet技术的方向和课题。
[1] RaimondPigan, Metter M, 汤亚锋译, et al. ProfiNet工业通信指南[M]. 北京: 人民邮电出版社, 2007.
[2] 白硕. ProfiNet技术的研究与开发[D]. 北京: 北京化工大学, 2010.
[3] 刘喜梅, 李程. ProfiNet I/O通信实时性分析[J]. 微型机与应用, 2010(2): 37-39.
[4] 彭杰, 李秀元, 应启戛. ProfiNet及其同步通信协议分析[J]. 微计算机信息, 2006, 22(188): 208-209.
[5] 王秀莲, 刘昭明, 毕大强. 基于CANopen的DSP和ABB变频器的通信与实现[J]. 电气技术, 2016, 17(3): 60-63.
[6] 梁伟光. PROFINET的实时通信技术分析[J]. 中国仪器仪表, 2011: 104-105.
[7] 李明强, 刘小河, 田雨聪. Profibus-DP智能从站的设计[J]. 电气技术, 2015, 16(4): 77-80.
[8] 丁冠军, 兰海滨, 樊邦奎, 等. 智能电网应用中的PLC技术[J]. 电工技术学报, 2013, 28(S2): 378-382.
[9] 李程. 基于 ProfiNet协议的现场总线设备研究[D].青岛: 青岛科技大学, 2010.
[10] 金儒衡, 郑国军. 基于Profibus_DP的主从通信在加热炉改造系统中的应用[J]. 电气技术, 2016, 17(10): 96-98.
[11] 张晓虎, 罗隆福, 李勇, 等. 基于光纤以太网通信的大功率工业整流系统多点测量与能效分析[J]. 电工技术学报, 2014, 29(4): 111-120.
[12] 孙凡金, 刘彦呈, 潘新祥. ProfiNet工业以太网实时通信协议分析[J]. 低压电器, 2008(21): 30-33.