您的位置:控制工程论坛网论坛 » 现场总线 » 几种工业以太网协议的传输机制和通信模式比较

chenwh78

chenwh78   |   当前状态:在线

总积分:6174  2024年可用积分:0

注册时间: 2008-10-10

最后登录时间: 2019-06-16

空间 发短消息加为好友

几种工业以太网协议的传输机制和通信模式比较

chenwh78  发表于 2009/4/13 12:34:18      1687 查看 5 回复  [上一主题]  [下一主题]

手机阅读

传统的TCP/IP参考模型被分为四个层次:应用层、传输层、网络互连层和主机到网络层。各个层次上均有相应的标准协议。这些协议的结合使用构成了整个基于TCP/IP模型的网络应用。
  这组广泛的协议中,绝大多数在工业以太网的方案中得到了应用。其中主机到网络层主要涉及到的是OSI模型的第一、二层。之后是相当重要的网络互连层和传输层协议。它们是整个TCP/IP协议簇的核心,在OSI模型中居于第三、四层。
  由于传输机制和通信模式的问题主要关联到OSI网络模型的第四层——网络传输层,所以本文重点讨论在传输层中这几种主流工业以太网的差异,其余各层仅作涉及,不做详细论述。

  UDP和TCP机制
  在工业以太网应用中,网络互连层和传输层协议共同构成了整个系统的通信栈。不同的工业以太网方案在通信栈的构成方式、应用模型上有一定的差别,这种差别也是我们讨论的重点。其中最为典型的一个问题就是:传输层使用TCP还是使用UDP的问题?
  首先我们看一下TCP/IP协议中关于TCP/UDP的说明:
  TCP&UDP分别是Transmission Control Protocol和User Datag

ram Protocol的英文缩写。关于两者之间最广为人知的区别就是:是否面向连接。而从工业以太网的角度,事实上,这种区别所造成的对网络性能的影响才是一个关键。具体说来:
  TCP作为基于连接的协议,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来。而且为确保正确地接收数据,TCP 会为每个封包都加上一个顺序码,  并且要求在目标计算机成功收到数据时发回一个确认(即 ACK)。如果在某个时限内未收到相应的 ACK,将重新传送数据包。如果网络拥塞,这种重新传送将导致发送的数据包重复。但是,接收计算机可使用数据包的序号来确定它是否为重复数据包,并在必要时丢弃它。
  以上的连接、包计数、接收确认握手等机制确实能使TCP协议做到为应用程序提供可靠的通信连接,使一台网络终端发出的字节流无差错地发往网络上的其他终端。但是这些操作却影响到了网络在速度上的性能。
  而UDP是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去!它也没有TCP 的封包所具有顺序码, 接收端亦不会有响应产生及进行检查以确认是否收到重复或遗失的封包。这些都决定了UDP是作为一种不可靠的协议存在的。但是UDP具有TCP所望尘莫及的速度优势。虽然TCP协议中植入了各种安全保障功能,但是在实际执行的过程中会占用大量的系统开销,无疑使速度受到严重的影响。反观UDP由于排除了信息可靠传递机制,将安全和排序等功能移交给上层应用来完成,极大降低了执行时间,使速度得到了保证。
  从工业以太网的角度出发,应当从数据通信的需求上对UDP或TCP的选择问题做一个结论。首先我们来看一看在工业环境中,网络上传输的数据具有的特性。
  工业环境中待传输的信息类型包括实时过程控制数据、设备状态、监控数据、系统故障诊断数据、报警数据等。这些数据通常在量上并不大。这个特点在以往的现场总线体系中有充分的体现,例如,LonWorks现场总线的数据包长度只有12个bit,EIB现场总线数据包长度只有22个bit,等等。
  而这些数据对实时的传输的要求也不尽相同。具体说来,I/O数据对实时性要求最高。而组态、参数设置、诊断等则不太要求过高的实时性而更偏向可靠的数据传输。
  对数据传输的要求不同决定了协议的选择,在工业以太网的方案中,可以采取的方式是:
  对于对实时性要求较高的实时I/O数据,采用UDP/IP协议来传送,这时可以获得UDP的如下几个好处:
  (1) 数据发送前不用建立连接,减少了开销和延迟,这一点控制系统来说是非常重要的。
  (2) UDP没有采用可靠交付,数据收发双方不用维护很多的用于记录连接状态的表。
  (3) UDP 数据报首部很短,只有8字节,处理方便。
  (4) UDP取消了拥塞控制,所以发送方不会降低发送速度,这点在实时应用上非常重要。
  而对实时性要求不太高的显式信息则采用TCP/IP来传送。这样减少了UDP方式的传输负担,也更容易实现。

1楼 0 0 回复
  • chenwh78

    chenwh78   |   当前状态:在线

    总积分:6174  2024年可用积分:0

    注册时间: 2008-10-10

    最后登录时间: 2019-06-16

    空间 发短消息加为好友

    chenwh78   发表于 2009/4/7 16:32:57

    TCP和UDP选择的通信模式
      在工业以太网的关键任务——实时数据传输上,依靠的或者是传输可靠的TCP或者是传输迅速的UDP。基本上比较侧重于其中一者。对具体某一种工业以太网方案而言,在选择TCP还是UDP的问题上,还有一个重要的原因是其方案中所提供的通信模式。
      网络通信模式大体上有以下几种:
      1.Client/Server(客户端/服务器) 模式;
      2.master/slave(主/从)模式;
      3.peer to peer(点对点)模式;
      4.producer/consumer(生产者/消费者)模式;
      5.Publish/subscribe(发布者/预定者)模式。

     

    2楼 回复本楼

    引用 chenwh78 2009/4/7 16:32:57 发表于2楼的内容

  • chenwh78

    chenwh78   |   当前状态:在线

    总积分:6174  2024年可用积分:0

    注册时间: 2008-10-10

    最后登录时间: 2019-06-16

    空间 发短消息加为好友

    chenwh78   发表于 2009/4/7 16:33:46

    基于TCP的工业以太网
      正是基于TCP/IP协议的可靠和稳定性,大多数工业以太网协议,如:Modbus/TCP、PROFInet、INTERBUS、MMS TCP/IP及.NET for Manufacturing等都选择了TCP/IP。由于篇幅有限,下面仅就Modbus/TCP、PROFInet做简单介绍如(图1)。  

      图1

      (1)Modbus/TCP
      回到对于工业以太网数据传输的特点和需求上,我们可以看到并不是所有的工业环境都需要达到微秒级别的时间要求,类似于IDA所采用的RTPS模式虽然能使工业以太网的传输层性能达到相当的标准,但同时又增加了过多的成本。另一方面,某些看上去似乎需要UDP协议来体现其高速性能的场合,其实可以通过在物理层和链路层的优化的基础上(如采用星型交换机等),结合工业以太网数据量小的特点,采用传统方式的TCP协议来实现。这样即省去了在使用UDP协议时必须做增强开发来构造通信的确定性方面所付出的高额代价(TCP本身就是确定性的

    ),又可以实现工业以太网的实时性要求。这方面的一个典型就是施耐德公司的一个相对价格低廉的工业以太网方案——Modbus/TCP协议。
      Modbus/TCP协议是在Modbus协议的基础上发展而来的。为了尽量地使用已有成果,Modbus/ TCP协议的实现是在不改变原有Modbus协议的基础上,只是将它的传输层协议简单的移植到TCP/IP上。因此在TCP/IP网络中Modbus/TCP使用传输控制协议(TCP)进行Modbus应用协议的数据传输。参数和数据使用封装的方法嵌入到TCP报文的用户数据容器中进行传送。另外地址和校验在Modbus/TCP中也由底层的TCP协议来完成。由于传输层以上遵循Modbus协议,所以采用C/S结构,在数据传输前进行之前,需要在客户和服务器之间建立一个TCP/IP连接。服务器使用端口502作为Modbus/TCP连接的端口。连接的建立通常由TCP/IP的Socket接口的软件协议自动实现的,因此对应用完全透明。
      一旦客户和服务器之间的TCP/IP连接建立,同样的连接可以根据要求的方向用来传输任意数量的用户数据。客户和服务器还可以同时建立多个TCP/IP连接,最大的连接数量取决于TCP/IP接口的规范。在输入输出数据循环传输的情况下,永久的连接通常维持在客户和服务器之间,只有在发生特殊事件而有必要传送参数和诊断报文时,连接才能在每一次数据传送后被关闭,需要时再次建立。这也是Modbus/TCP在工业以太网中采用TCP做为传输层协议而不采用速度更快的UDP协议的原因所在。
      虽然Modbus/TCP由于在传输层采用TCP协议,而使其不得不在传输层协议以下的诸层采取更有效的实时性策略。但与PROFINet,Ethemet/IP和IDA等方案相比,Modbus/TCP在其开放性、简单和稳定的性能上具有优势,是一个具有较高的性能价格比的工业以太网方案。

      (2)ProfiNet
      事实上,在工业以太网应用中,网络互连层和传输层协议并非仅仅局限在TCP/IP之上。在由Profibus Internationa(PI)组织提出的基于以太网的自动化标准——PROFINET实时以太网中,就采用了独立的实时通道来扩展系统的实时性能。  

    图2
      PROFINET通信模型如(图2)。可以看到,在PROFINET应用中,其标准参数(如设备参数、组态和读取的诊断数据)是由传统的TCP/UDP+IP+以太网来传送的。与之对就的是非实时的数据传输标准通道。但其实时数据则由PROFINET提供的两类实时通信通道RT和IRT完成。实时通道RT是软实时SRT(Software RT)方案,主要用于过程数据的高性能循环传输、事件控制的信号与报警信号等。它位于旁路第3层和第4层,可以提供精确通信能力。为进一步优化通信功能,PROFINET根据IEEE802.1p定义了报文的优先级,最多可用7级。而实时通道IRT采用了IRT(isochronous realtime)等时同步实时的ASIC芯片解决方案,以进一步缩短通信栈软件的处理时间,特别适用于高性能传输、过程数据的等时同步传输、以及快速的时钟同步运动控制,其可以在1毫秒时间周期内,实现对100多个轴的控制,而抖动不足1微秒。
    3楼 回复本楼

    引用 chenwh78 2009/4/7 16:33:46 发表于3楼的内容

  • chenwh78

    chenwh78   |   当前状态:在线

    总积分:6174  2024年可用积分:0

    注册时间: 2008-10-10

    最后登录时间: 2019-06-16

    空间 发短消息加为好友

    chenwh78   发表于 2009/4/7 16:35:11

    目前,至少有基金会现场总线的HSE、Ethernet/IP、iDA以及ADS-net在传输层协议中或部分或全部的采用了UDP。由于篇幅有限,以下仅就HSE和Ethernet/IP在传输机制和通信模式作简单比较。   
    HSE通信模型
      HSE通信模型

      ETHERNET/IP
      在EtherNet/IP中,对于对实时性要求较高的实时I/O数据,采用UDP/IP协议来传送,而对实时性要求不太高的显式信息(如组态、参数设置和诊断等)则采用TCP/IP来传送。EtherNet/IP 有两种形式的报文连接:
      ■  显示报文连接:是一种点对点的关系,用于促进两个节点之间的请求应答连接。这种连接是最通用的并且能无所不及。
      ■  隐式报文:主要用于以常规的时间间隔传送特定应用的I/O数据。这种连接自然是多播方式,即建立一对多的关系用以发挥生产消费模式的优点。
      在网络层和传输层EtherNet/IP 采用的是INTERNET标准的TCP/IP协议族在单个或多个设备之间传送信息,同样,在这些层标准的CIP信息被打包成TCP/IP包,TCP/IP包允许网上的

    节点将他们作为以太网信息的一部分。节点发送这些TCP/IP协议包到数据链路层。利用TCP/IP , EtherNet/IP可以传送用于节点之间主/从类型事务的显示报文。
      对于实时报文,EtherNet/IP 通过基于IP的UDP协议采用组播方式实现,组播针对一组地址的目标站。这就是CIP的隐式报文在EtherNet/IP 上的传送方式。隐式报文通常只有I/O数据,没有协议信息。这就意味着通讯一建立数据已被提前定义了,自然处理的时间就是最小的。UTP无须建立通道也不对通讯做保证,但尽管如此,UDP的隐式报文比显式报文更小更快捷。所以EtherNet/IP通过 UDP/IP传送I/O数据典型地包含了关键时间控制信息。CIP的连接机制包含了提供超时机制,即可以检测数据发送错误,这对于可靠的控制系统是很关键的。
      EtherNet/IP 利用TCP/IP资源在以太网上传送报文,为了满足ODVA组织一致性要求宣言,EtherNet/IP 的产品都要求能完成UCMM接收其他设备的请求。比如像少有的显示报文传输或者实时的I/O数据传输。通过UCMM的通讯服务连接资源被保留。打开一个连接的过程被称为连接生成。而主动提出连接生成的节点就叫做连接生成器。相反,响应该节点的节点就叫做连接目标。
      总结一下,也就是说,隐示报文是通过以太网实体采用UDP/IP资源以多播方式传送数据。

      Ethernet/IP的HSE  

      基于UDP的工业以太网比较
      下面将结合一个实例来说明通信模式对TCP/UDP协议选择问题的影响,研究目标是现场总线基金会旗下的工业以太网标准——HSE。
      HSE协议中一个重要的组成部分是:现场设备访问代理(FDA),FDA将整个HSE从概念上分为两个部分。FDA及其以下的部分,包括HSE管理代理(HMA),它们一起提供HSE通信服务,构成了HSE通信栈。其功能主要相对于OSI七层参考模型一到四层间的部分;FDA以上的实体包括系统管理内核、虚拟现场设备,局域网冗余实体等,统一称为HSE应用进程,它们利用通信栈提供的服务,和对等实体通信。它们可以看做是通信栈的用户层。接下来将重点讨论FDA以下的部分涉及到的HSE的通信模型和通信方式等问题,而HSE的用户层等方面的其它内容将在下一章中讨论。HSE通信模型图示如图。
      FDA代理在通信模型中主要提供下列服务:
      ■  作FDA Session的代理;
      ■  FDA Session 和FMS VCR的接口;
      ■  TCP /UDP 和 FDA Session之间的接口;
      ■  转发上面 4种 应用层的消息.
      而FDA Session是一种应用关系,提供和FDA代理的通信,HSE VCR提供对HSE VFD的访问,用于传递FMS报文。有三种不同的FDA Session:
      Client/Server(客户/服务器)
      Sesions,Publisher/Subscriber(公布/订阅)
      Sessions,Report Source/Sink(报告源/接收)Sessions.       
      HSE Session位于TCP/IP协议之上,利用以太网和TCP/IP协议传输HSE总线的服务报文,是FF HSE现场总线通信的核心模块。
      Session与 它所支持的VCR端点具有相同的类型,HSE基于业界广泛使用TCP/IP协议簇一共提供了两种通信方式::客户机/服务器(C/S),采用单播通信模式;
      ■  发布者/预定者(P/S),报文源服文接收,采用多播通信模式;
      其中单播方式提供确认性的FMS服务,而多播提供的FMS服务是无确认的。具体实现中,以套接字方式为基础。
      对于 C/S服务类型的通信,底层采用基于流的套接字,提供有确认的通信服务,故传输层基于TCP协议构建。虽然C/S也可以基于数据报的套接字来实现,但一般不采用这种方式(DCOM是个例外)。
      对于采用发布者/预定者、报文源/报文接收两种采用多播的通信模式,底层采用基于数据的套接字,提供无确认的通信服务,故传输层基于UDP协议构建。同时,在发送和接收两端,VCR和Session节点是预先组态好的。这样,多播方式的通信过程比客户机/服务器类型的方式要简单许多。这样使得在多数场合,HSE使用的是多播方式的通信模式更具优势。以至于在一些资料中,HSE和Ethernet/IP、IDA等一块被认为是基于UDP的工业以太网实施方案如图。
      通过以上实例,我们可以总结如下:
      ■  当通信模型采用C/S模式,或点对点模式时,采用面向连接的TCP协议较为合适。
      
    ■  而当通信模型采用P/S模式,即发布者/预定者或生产者/消费者模式时,采用支持多播、组播的UDP协议更合适。
      关于几种工业以太网的互联
      最后,我们简单讨论关于这几种主流工业以太网的互联。
      正如上面所述,这同种主流的工业以太网协议相互是不兼容的。尽管广大工业自动化用户希望需要一种开放的通用的系统平台,但是自动化厂商们却因各自的利益导致这一理想平台将来很长时间也不会出笼。因此,就只能诞生一种新的中间件技术能解决这个问题——OPC  DX(如表)。  

      大多数工业以太网协议选择了支持OPC DX
      OPC基金会组织已经积极地推出了其数据交换(OPC  Data  Exchange)与以太网的标准,OPC DX很好地汲取了工业以太网应用层开放而且可以针对不同厂家的产品定义,其中间件任其能相互操作兼容的优点,相当于在几种工业以太网协议中创建了一个可以互操作的兼容层面。  

      OPC基金会组织已经积极地推出了其数据交换与以太网的标准
      总而言之, 其实研发并推广一个开放的,通用的工业以太网协议,一直就是自动化用户的共同愿望。但现场总线标准的混乱现象被延续到了如今的工业以太网的应用上,这就自然产生了这几种主流工业以太网协议的差异。Profinet、Ethernet/IP、Modbus/TCP、HSE等是当今主流的几种的工业以太网协议,都声称兼容于或完全兼容于以太网协议,或“基于”以太网基础,或完全采用以太网标准,但是事实上这几种主流的工业以太网协议本身却不能相互联接。随着工业以太网的应用越来越成熟,一个开放的,通用的工业以太网协议标准的共同愿望会慢慢可期。
    4楼 回复本楼

    引用 chenwh78 2009/4/7 16:35:11 发表于4楼的内容

  • lthlycyj

    lthlycyj   |   当前状态:在线

    总积分:2346  2024年可用积分:0

    注册时间: 2007-09-03

    最后登录时间: 2019-06-23

    空间 发短消息加为好友

    lthlycyj   发表于 2009/4/7 20:34:04

    ico
    5楼 回复本楼

    引用 lthlycyj 2009/4/7 20:34:04 发表于5楼的内容

  • chenwh78

    chenwh78   |   当前状态:在线

    总积分:6174  2024年可用积分:0

    注册时间: 2008-10-10

    最后登录时间: 2019-06-16

    空间 发短消息加为好友

    chenwh78   发表于 2009/4/13 12:34:18

    现场总线的种类很多,据不完全统计,目前国际上有40多种现场总线。导致多种现场总线同时发展的原因有两个,一是工业技术的迅速发展,使得现场总线技术在各种技术背景下得以快速发展,并且迅速得到普及,但是普及的层面和程度受到不同技术发展的侧重点不同而各不相同;另一方面,工业控制领域“高度分散、难以垄断”,这和家用电器技术的普及不同,工业控制所涵盖的领域往往是多学科、多技术的边缘学科,一个领域得以推广的总线技术到了另一个新的领域有可能寸步难行。控制系统的层次  控制系统是有不同的层次的,简明地表示出控制系统的金字塔结构。左边的文字表示系统的逻辑层次,由上到下分别为协调级、工厂级、车间级、现场级和操作器与传感器级。现场总线涉及的是最低两级。右边文字表示系统的物理设备层次,由上到下依次为主计算机、可编程序控制器、工业逻辑控制器、传感器与操作器(如感应开关、位置开关、电磁阀、接触器等等)。现场总线的应用范围  对应不同的系统层次,现场总线有着不同的应用范围。例举了几种主要现场总线的应用范围。纵坐标由下往上表示设备由简单到复杂,即由简单传感器、复杂传感器、小型PLC或工业控制机到工作站、中型PLC再到大型PLC、DCS监控机等,数据通信量由小到大,设备功能也由简单到复杂。横坐标表示通信数据传输的方式,从左到右,依次为二进制的位传输、8位及8位以上的字传输、128位及以上的帧传输以及更大数据量传输的文件传输。  ASI、Sensorloop、Seriplex等总线适用于由各种开关量传感器和操作器组织的底层控制系统,而Devicenet、Profibus-DP和WorldFIP适用于字传输额的各种设备,至于Profibus-PA、FieldbusFoundation等更多地适用于帧传输的仪表自动化设备。所以对我们适用的总线在Sensor和Equipment的区域内。

    6楼 回复本楼

    引用 chenwh78 2009/4/13 12:34:18 发表于6楼的内容

总共 , 当前 /