1几种典型工业以太网技术比较21工业以太网总览表1给出了常见的几种工业以太网及其管理组织。表1-1常见工业以太网及其管理组织列表序号名称管理组织1Modbus/TCPModbus-IDA(Modbus-InterfaceforDistributedAutomation)2Ethernet/IPODVA(OpenDevicenetVendorsAssociation)3EthernetPowerlinkEPSG(EthernetPowerlinkStandardizationGroup)4PROFInetPI(ProfibμsInternational)5SERCOS-IIISI(SERCOSInternational)6EtherCATETG(EtherCATTechnologyGroup)上述各种工业以太网管理组织的标识如图1所示。图1-1工业以太网管理组织标识根据从站设备的实现方式,可将工业以太网分为三种类型:(1)类型A——通用硬件、标准TCP/IP协议Modbus/TCP、Ethernet/IP、PROFInet/CbA(版本1)采用这种方式。使用标准TCP/IP协议和通用以太网控制器,结构如图1-2所示。这种方式下,所有的实时数据(如过程数据)和非实时数据(如参数配置数据)均通过TCP/IP协议传输。其优点是成本低廉,实现方便,完全兼容通用以太网。在具体实现中,某些产品可能更改/优化了TCP/IP协议以获得更好的性能,但其实时性始终受到底层结构的限制。3通用以太网控制器IPTCP/UDP自动化API工业应用IT应用HTTPSNMPFTP…非实时数据实时数据图1-2工业以太网类型A结构(2)类型B——通用硬件、自定义实时数据传输协议EthernetPowerlink、PROFInet/RT(版本2)采用这种方式。采用通用以太网控制器,但不使用TCP/IP协议来传输实时数据,而是定义了一种专用的包含实时层的实时数据传输协议,用来传输对实时性要求很高的数据,结构如图1-3所示。TCP/IP协议栈可能依然存在,用来传输非实时数据,但是其对以太网的读取受到实时层(Timing-Layer)的限制,以提高实时性能。这种结构的优点是实时性较强,硬件与通用以太网兼容。通用以太网控制器IPTCP/UDP自动化API工业应用非实时数据实时数据实时层实时数据传输协议IT应用HTTPSNMPFTP…图1-3工业以太网类型B结构(3)类型C——专用硬件、自定义实时数据传输协议EtherCAT、SERCOS-III、PROFInet/IRT(版本3)采用这种方式。这种方式在类型B的基础上底层使用专有以太网控制器(至少在从站侧),以进一步4优化性能。其优点是实时性强,缺点是成本较高,需使用专有协议芯片、交换机等。专用以太网控制器IPTCP/UDP自动化API工业应用非实时数据实时数据实时层实时数据传输协议IT应用HTTPSNMPFTP…图1-4工业以太网类型C结构52Modbus/TCP国家标准GB/T19582-2008《基于Modbus协议的工业自动化网络规范》中给出的Modbus协议模型如图2-1所示,其中白色部分表示已有标准/规范,如Modbus串行链路基于现有TIA/EIA标准:TIA/EIA-232-F和TIA/EIA-485-A,Modbus/TCP基于IETF文件:RFC793和RFC791,灰色部分表示该标准中所定义的内容。Modbus应用层TCP/IP上的Modbus映射TCPIETFRFC793IPIETFRFC791串行链路主站/从站TIA/EIA-232-FTIA/EIA-485-A以太网物理层EthernetII/802.3IEEE802.2图2-1Modbus协议模型可以看出,Modbus/TCP只是将Modbus应用层协议简单地移植(映射)到TCP/IP网络上。2.3Modbus/TCPADU格式ModbusPDU(协议数据单元)与基础通信层无关,在串行链路和TCP/IP上都是相同的。区别在于,在TCP/IP上使用一种专用报文头来识别Modbus应用数据单元,称为MBAP报文头(Modbus应用协议报文头)。Modbus/TCP协议数据单元格式如图2-2所示。MBAP报文头功能码数据Modbus/TCPADUModbusPDU图2-2Modbus/TCP协议数据单元MBAP报文头长度为7字节,格式如表2-1所示。其中,事务处理标识符、协议标识符和单元标识符都由客户机在请求报文中设置,服务器在响应报文相应域中返回相同内容。6表2-1MBAP报文头格式域长度描述事务处理标识符2字节Modbus请求/响应事务处理的识别码协议标识符2字节0代表Modbus协议长度2字节单元标识符和数据域总字节长度单元标识符1字节串行链路或其它总线上连接的远程从站的识别码与串行链路上使用的Modbus/RTU应用数据单元相比,Modbus/TCP应用数据单元有如下区别:(1)MBAP报文头中的单元标识符取代了Modbus串行链路上使用的从站地址域,这使得单个IP地址可支持多个Modbus终端单元,如Modbus/TCP-串行链路网关可支持多个串行链路从站设备;(2)MBAP报文头中增加了附加长度信息,以便接收节点识别报文边界;(3)Modbus/TCPADU中去掉了CRC校验域,这是因为以太网帧中已经包含了CRC-32差错校验域。Modbus协议规定,通过注册502端口上的TCP接收所有Modbus/TCPADU。2.2Modbus/TCP组件结构模型Modbus协议规范中提供了一个通用的Modbus/TCP组件结构模型,如图2-12所示。用户应用通信应用层Modbus客户接口Modbus客户接口Modbus客户机Modbus服务器TCP管理层栈参数化连接管理访问控制TCP/IP协议栈资源管理与流量控制图2-12Modbus/TCP组件结构模型该组件结构模型包括以下几个部分:(1)用户应用:用户特定应用程序,位于组件结构顶层。7(2)通信应用层:一个Modbus设备可以提供一个客户机和/或一个服务器Modbus接口,并提供Modbus客户接口,使用户应用可以生成各类Modbus服务请求。(3)TCP管理层:负责全面管理报文传输TCP连接,并控制未知IP地址的访问连接以保证数据安全。TCP502端口是为Modbus/TCP保留的,每个Modbus服务器必须在502端口提供监听服务,允许建立连接和交换数据,而Modbus客户机端口必须大于1024。(4)TCP/IP协议栈:底层的TCP/IP协议栈主要包括TCP/IP/ICMP/ARP等协议及以太网MAC子层。83Ethernet/IPEtherNet/IP是ODVA推出的一种开放的工业网络标准,充分利用了现有的商用以太网技术、芯片以及物理介质。与DeviceNet和ControlNet一样,EtherNet/IP在应用层也使用CIP(CommonIndustrialProtoco1,通用工业协议)协议,具有相同的应用对象库和设备描述。CIP协议族模型如图3-1所示。Ethernet/IP将CIP附加在标准的TCP/IP协议之上。对于面向控制的实时I/O数据,采用UDP/IP协议来传送,其优先级较高。而对于显式信息(如组态、参数设置和诊断等),则采用TCP/IP来传送,其优先级较低。为进一步提高实时性,ODVA组织将IEEE1588精确时间同步协议用于Ethernet/IP,制定了CIPsync标准。该标准要求每秒钟由主控制器广播一个同步化信号到网络上的各个节点,使所有节点的同步精度准确到微秒级。94EthernetPowerlinkEthernetPOWERLINK(以下有时简称为EPL)自2001年由贝加莱公司推出以来,存在三个版本,如图4-1所示。图4-1EPL版本4.1技术特点(贝加莱宣称)(1)单个网段最多连接240个实时站点;(2)真正的确定性通信;达到IAONA实时等级4级(最高等级);快速,100Mbit/s,最小循环周期200us;网络站点之间精确同步,抖动小于1us。(3)标准化;底层技术采用IEEE802.3u,快速以太网;支持IP协议(TCP,UDP…);集成CANopen行规EN50325-4,实现设备的互操作性;基于标准的以太网芯片,不需要特别的ASICs。(4)直接点到点通信;(5)支持热插拔;(6)支持多CPU解决方案,优化负载,使之大体平衡。4.2工作原理首先需要说明的是,Powerlink存在三个版本,三个版本互不兼容,下面所述的工作原理仅适用于版本2(现行版本)。10EthernetPowerlink参考模型如图4-3所示。图4-3EPL参考模型(1)物理层/MAC层EthernetPOWERLINK帧在以太网帧的数据域里传输,格式如图4-4所示。图4-4EPL帧格式数据域位场含义如表4-1所示。表4-1EPL帧说明位场名称含义SIDServiceIdentifier标识数据类型。包括下面的EthernetPowerlink帧:SoC(StartofCyclic,周期起始)EoC(EndofCyclic,周期结束)PollReq(轮询请求)PollRes(轮询响应)AsyncInviteAsyncSendAsyncAckNackDADestinationAddress目标地址11SASourceAddress源地址为避免冲突、尽量利用带宽,EPL在时间上重新组织了网络中站间信息交换机制,在CSMA基础上引入时间槽管理机制。网络其中一个站点充当管理站管理网络通信,对其他所有站点给定同步节拍,分别分配各站发布权限,各站只能在得到发布权限后才可发布信息。(2)数据链路层EPL数据链路层以标准的以太网CSMA/CD技术(IEEE802.3)为基础,但是CSMA/CD的工作原理决定了它不能实现通信的确定性,于是EPL引入SCNM(SlotCommunicationNetworkManagement)机制,实现了数据通信的确定性。SCNM有时也被称为时间槽通信管理机制。SCNM给同步数据和异步数据分配时槽,保证了在同一时间只有一个设备可以占用网络媒介,从而彻底杜绝了网络冲突的发生。SCNM由EPL网络中的管理节点MN(ManagingNode)来管理,其他的节点称为控制节点控制节点(ControlledNode)。SCNM规定在一个EPL网络中只有一个激活的管理节点,管理节点配置网络中所有可用的节点。只有管理节点可以独立地发送数据,控制节点只有在得到管理节点允许的情况下发送数据。图4-5SCNM概念SCNM协议按照一定的规则预先计划并组织了消息组,一个消息组设为一个EPL循环(见图4-6)。在每个循环中可以分为同步阶段和异步阶段,同步阶段每个同步节点占有固定间隔的时槽,由管理节点轮流访问,从而实现通信的确定性。异步阶段发送非实时数据,数据传送由管理节点调度。12EPL循环可以分为4个阶段:开始阶段,同步阶段,异步阶段和空闲阶段。每个阶段的时间由管理节点预先配置,长度可以不同。管理节点随时监控循环时间,以保证预设的时间不发生冲突。一旦冲突发生,管理节点自动延续到下一个循环的开始位置。图4-6EPL循环图4-7循环时间冲突时管理节点的处理方式开始阶段:管理节点广播发送Start-of-Cyclic(SoC)帧开始通信周期。它的发送接收时间作为所有站点时序的基础。只有SoC帧由时间控制,其他帧由事件控制。同步阶段:管理节点发送SoC帧后开始同步数据交换。管理节点发送指定地址的单向请求帧PollRequest给控制节点,目标控制节点广播发送响应帧PollResponse给其他所有的节点,允许其他所有的节点监控该帧。PollRequest和PollResponse都可以传输应用数据。管理节点循环访问完同步节点后,管理节点广播发送响应帧PollResponse。异步阶段:管理节点发送SoA(Start-of-Asynchronous)帧表示异步阶段的