DIY编程器网

标题: 自动化控制系统中多现场总线兼容性问题探讨 ——以太网和现场总线的互连(四) [打印本页]

作者: admin    时间: 2015-4-27 23:34
标题: 自动化控制系统中多现场总线兼容性问题探讨 ——以太网和现场总线的互连(四)
现场总线与以太网的互连
          4.1互连模型
          以往以太网进入现场总线系统的最大障碍是以太网的不确定性,因为以太网在数据链路层采用CSMA/CD介质访问控制协议,这种协议在轻载的情况下,效率极高,但在负载较重的情况下,由于协议在有冲突时会暂停一段随机时间后重试发送,这样就影响数据的实时性。这对实时性要求非常严格的工业控制网络来说是不能容忍的,而且以太网所用的设备,包括接插件(connector)、集线器(hub)、交换机(switcher)和电缆等是为办公室应用而设计的,不符合工业现场恶劣环境的要求。还有以太网抗干扰性能较差,不具备本质安全性能,且不能向现场仪表供电。但是随着技术的发展,100M的以太网目前成为主流,万兆的以太网也投入实际运行,以及交换式以太网技术的发展,从根本上解决了以太网因碰撞而产生的传输时间随机性较大的问题。并且以太网设备生产厂商也在开发符合工业现场要求的设备,以满足要求。同时,它还具备以下特点:
           
          1、以太网是目前应用最为广泛的计算机网络技术,受到广泛的技术支持。几乎所有的编程语言都支持Ethernet的应用开发,如Java、Visual C++、Visual Basic等。这些编程语言由于使用广泛,并受到软件开发商的高度重视,具有很好的发展前景。因此,如果采用以太网作为现场总线,可以保证多种开发工具、开发环境供选择。
       
        2、成本低廉。由于以太网的应用最为广泛,因此受到硬件开发与生产厂商的高度重视与广泛支持,有多种硬件产品供用户选择,而且由于应用广泛,硬件价格也相对低廉。目前以太网网卡的价格只有Profibus、FF等现场总线的十分之一,并且随着集成电路技术的发展,其价格还会进一步下降[34]。
       
        3、通信速率高。目前100M的快速以太网已开始广泛应用,1000M以太网技术逐渐成熟,万兆以太网也已经投入使用,其速率比目前的现场总线快得多。以太网可以满足对带宽的更高要求。
       
        4、软硬件资源丰富。由于以太网已应用多年,人们对以太网的设计、应用等方面有很多的经验,对其技术也十分熟悉。大量的软件资源和设计经验可以显著降低系统的开发和培训费用,从而可以显著降低系统的整体成本,并大大加快系统的开发和推广速度。
       
        5、可持续发展潜力大。由于以太网的广泛应用,使它的发展一直受到广泛的重视和大量的技术投入。并且,在这信息瞬息万变的时代,企业的生存与发展在很大程度上依赖于一个快速而有效的通信管理网络,信息技术与通信技术的发展将更加迅速,更加成熟,由此保证了以太网技术不断地持续向前发展。
       
        因此,如果工业控制领域采用以太网作为现场设备之间的通信网络平台,可以避免现场总线技术游离于计算机网络技术的发展主流之外,从而使现场总线技术和其它网络技术互相促进、共同发展,并保证技术上的可持续发展,在技术升级方面无需单独的研究投入。今后,工业控制网络必然向图4.1发展。
           
         
         
        这种网络结构有如下几个方面的优点:
          1、整个系统完全建立在网络上,系统的各种功能由各组成部分通过一致的标准和协议共同完成,整个实现全开放,用户不会受任一厂家产品的限制。用户所需的各种系统组成部分,例如控制软件、操作软件、数据库软件等,都可以从不同的厂商那里购买,并自主地实现系统集成,从而实现了整个系统的真正全开放。
       
        2、由于通过交换以太网和路由器实现了计算机之间以及计算机和现场仪表、设备的高速互连,系统复杂控制功能可以安排在网络中的任意一台甚至同时安排在几台计算机上实现,实现控制功能的全分散和互相备份、冗余,系统可靠性大大提高。
       
        3、由于控制算法可以分散在多个计算机上,大大增强了整个系统的计算能力,可以实现以前难以实现的复杂控制算法,如神经网络控制等。甚至可以让一台计算机只用于实现某一特别复杂的控制算法。
       
        4、系统功能可以同时分布到几台计算机上实现,为系统操作带来很大的灵活性。几个操作人员可在几台计算机上同时工作,如果任何一台出现故障,操作人员可以立即转移到其他计算机上继续进行操作。
       
        5、系统中,现场总线上的仪表、设备主要用于数据的采集和控制的输出以及实现简单的控制算法。计算机则可以利用软件设计的高度灵活性,虚拟实现多种标准的现场总线站点,并在整个系统中起核心作用。这样可以将不同的现场总线集成在一个分布式控制系统中,从而缓解不同现场总线标准统一和互操作的压力,保护生产厂家和用户的既有投资。当用户需要扩充系统规模时,可以采用任一种类的现场总线,实现多种类型现场总线的系统集成。
       
        6、由于以太网和互连网能够方便地实现互连,系统能够方便地支持通过互连网络进行远程访问。
       
        4.2使用隧道技术实现互连
          现场总线和以太网是有很大不同的:FF基金会现场总线的互连模型中包括物理层、数据链路层、应用层、用户层等结构;而以太网、TCP/IP互连参考模型则包括物理层、数据链路层、IP层、传输控制层、应用层。二者物理层、数据链路层完全不同,并且基金会现场总线没有IP层和传输控制层,但FF对应用层有详细的规定,而以太网、TCP/IP互连参考模型中,应用层协议是由程序自定义的。
       
        以太网和现场总线的互连,可以采用类似隧道技术的方法,如图4.2所示,这样对于应用程序而言是透明的,应用程序只知道不在同一网段上,不会感觉系统是由两种网络构成的。
           
         
           
          隧道技术是通过将待传输的原始数据经过加密和协议封装处理后再嵌套装入另一种协议的数据包中,像普通数据包一样发送到网络中进行传输,实现跨越公共网络转送私有数据包的目的,是一种用于异型网络之间互连并传输数据的技术。当数据帧到达两种异型网络连接之间的路由器时,路由器并不象一般的路由器对帧头部进行协议转换和地址判断并转发,而是将数据帧作为分组再加上自己的帧头部,向同样位于中间网络的另一路由发送。另一路由收到数据后,和刚才的路由器所作的相反,去掉帧头,继续向后继网络发送,数据和到达第一个路由器时完全一样。整个过程中,中间网络可以被看成是两种网络互相通讯的隧道,分组完全不必关心中间经过什么样的网络,因此大大简化了路由转发和寻址的工作。
       
        在模型中的路由器现场总线接口处,只有物理层和数据链路层,这是网络协议中最基本的层次。路由器采用地址掩码的形式进行目的地址判断。
       
        当路由器总线接口处的数据链路层,把从物理层得到的数据帧传给以太网接口时,以太网接口将数据帧加入到有效的IP分组载荷字段中,向以太网广播。需要从现场总线接收数据的计算机对网络进行监听,如果收到相符的报文,则从中取出数据提交给上层[39]。数据报文在以太网上的广播和接收,可以通过套接字Socket来轻易地实现。Socket是用于TCP/IP协议下通讯的一个服务接口,它实现了TCP/IP协议在传输层定义的几个常用服务原语。使用Socket时,IP地址和一个Socket绑定,因此一个Socket是面向一个应用程序的。用户只需要对Socket进行发送或接收操作,就可以实现两台机器点对点的Socket通信。这种操作对于用户来说是完全透明的,用户不必关心传输层以下各层的工作情况。
       
        整个系统的通信建立在Ethernet、TCP/IP和现场总线的混合通信协议之上,通过隧道技术实现高速Ethernet与相对低速的现场总线的互连,以实现上层监控单元和现场智能设备的互连和互操作。系统的信息传输机制如下:当上层监控单元需要向现场设备发送信息时,它首先基于Ethernet和TCP/IP协议将信息发送给路由器,让路由器对设置命令及参数进行加密、打包,并加上现场总线协议相应的帧头部,再传到现场总线上;现场设备向上层监控单元发送信息的过程与此相反。
       
        在本协议模型中,还有一个重要的功能模块——系统管理模块。该模块负责整个互联网络的组态工作,并对现场总线上的预留地址进行管理和分配。任何一台计算机想要和现场总线进行互连,都必须由系统管理模块分配一个在现场总线上的虚拟地址。
       
        该模型能够实现现场总线接入以太网,同时所采用的是所必需的最小协议层次集合,可以保证转发时间最小,从而满足实时性方面的要求。
        4.3以太网和现场设备间的通讯过程
          当以太网计算机需要控制现场设备,并获得现场设备的数据。首先需要在系统管理模块处登记,获得现场总线上的虚拟地址,以及该设备的信息。通过这个虚拟地址及设备信息,以太网计算机可以以隧道技术来与现场设备进行通信。登记后,计算机就根据需要把需要发送给现场设备的数据利用Socket在以太网内部传输到路由器。路由器接收到数据后,把这些数据先去掉以太网传输所需的以太网协议头部,再加上与现场设备通讯所需的帧头部,加密、打包,转发给现场总线。这样对于现场总线上的设备来说,这些数据和其他现场总线上传输的数据是一致的,不需要额外处理。反之,现场设备把数据传送给以太网计算机时,只需向计算机的虚拟地址发送,路由器根据地址判断数据是否是向以太网计算机传输的,若是则去掉现场总线协议的帧头部,再加上以太网传输数据所需的帧头部,并向以太网广播,而以太网计算机通过监听以太网接收到数据后,提交计算机上层对数据进行处理。
       
        数据在实际站点与计算机上虚拟站点层间的传输过程,类似与两个同构网络使用隧道技术通过中间异构网络传输数据的过程。数据在传输过程中各位置的结构格式如图4.3所示:
         
          通过上图能清楚地看到,真正有用的数据在各个网段被封装在不同的包中,加上各自网段特定的帧头部。在现场总线上,所需要传输的数据,一般是现场设备的属性及测量的数据或是控制返回的信息,这些数据加上现场总线协议的附加部分,包括中间层协议控制,现场总线帧头,以及校验部分,这就是一个完整的现场总线数据包,可以在现场总线中传输。当这个数据包发送到路由器上,路由器根据这个包所包含的地址,如果地址是以太网计算机在现场总线中所对应的虚拟地址,表明这个数据包是发送给以太网计算机的,路由器就会对这个包进行拆装处理,去掉在现场总线中传输所需要的帧头部以及校验等部分,再加上数据在以太网中传输所需的部分,包括以太网的帧头,IP地址,TCP控制以及以太网的帧校验等,这样,现场设备的数据就被封装成在以太网中传输的帧。当以太网计算机读取到这个数据,判断IP地址是否与自己相符,如果相符,则把附加部分去除,最后就得到用户数据就是现场设备传过来的数据,如果不符则丢弃。而在路由器部分,通过查询地址并不是以太网计算机在现场总线的虚拟地址,则表明该设备发出的数据不是向以太网发送的,而是向其他现场总线上的设备发送的,因此没必要进行数据处理。这样能对有效的数据进行及时地处理,其它的数据则不用处理。这样处理能减少路由器的负担,避免路由器对每个数据包都进行处理而导致响应速度慢,甚至丢失包的问题。
       
        4.4不同种类现场总线间设备的通信过程
          要想实现两种不同现场总线上设备间的通讯,图4.1所示的网络模型还必须具有以下功能模块:
         
          在图4.4中,出现了一个新的功能模块——异构互连模块。它的主要工作是管理异类总线间的互联,并负责解决异类总线数据格式不兼容的问题。
       
        异构互联模块主要功能如下:
          1、维护一张异构总线间通讯节点的地址对应表。这个表的表项是由一些地址对应结构组成。结构的定义,在下文中有详细描述。通过这张表,可以完成在异构总线间传输报文的地址转换。
       
        2、除了地址间的转换,还要负责报文格式的转换。因为两种异构总线间的报文格式往往不同,所以,它需要对报文的长度、内容等做适当的修改。
       
        在异构互连模块下面,还要有各种不同总线的虚拟站点层。这些虚拟站点层主要负责报文的拆装工作。
       
        地址对应结构定义如下:typedef struct {
                                  int nSourceAddr; //发送站点在其总线上的实际地址,
                                  int nSourceVirtualAddr; //发送站点在接收站点所在
                                                           //总线上的虚拟地址
                                  int nSourceRouterPort; //发送站点所在总线与以
                                                          //太网互连的路由端口号
                                          int nDestAddr; //接收站点在其总线上的实际地址
                                   int nDestVirtualAddr; //接收站点在发送站点所
                                                          //在总线上的虚拟地址
                                    int nDestRouterPort; //接收站点所在总线与以
                                                          //太网互联的路由端口号
                                      }ADDR_STRUCT;
          在上面结构定义中,定义路由的端口号,实际上就是定义了路由的地址。因为采用的是在以太网上广播的形式向路由发送信息,实际上各个计算机是通过端口号来判别是否接收的。
       
        两个设备的通讯过程:假设现场设备甲需要和另一个总线上的现场设备乙进行数据交换。首先需要分别为甲乙在系统管理板块中申请一个在对方现场总线中的虚拟地址,并根据甲乙的实际地址和分配的虚拟地址完成在异构互联模块中的注册。这个过程实际上是在地址对应表里添加新的表项,也就是添加新的地址对应结构。这样,甲乙分别在自己的现场总线和对方的现场总线都有一个地址,它们可以通过向这个地址发送数据来实现相互之间的通讯。这时,对于两个现场总线上的节点来说,只是简单的增加了个节点而已。当设备甲需要发送数据给设备乙时,只要向设备乙在设备甲所在总线中申请的虚拟地址发送即可。在这里,为了描述数据传输的过程,我们做以下称呼上的定义:
           

           
          当虚拟站点层甲从TCP层上收到数据后,它从地址对应表中查找与目的地址相对应的表项。如果没有此项,则把此报文简单扔掉;如果有,则把报文内容拆出提交异构互联模块。异构互联模块对数据格式进行转换后,将之提交虚拟站点层乙。虚拟站点层乙再根据地址对应结构,对报文重新进行装配。经过重新装配后的数据帧,目的地址由设备乙在设备甲所在总线上申请的虚拟地址变为设备乙的实际地址,源地址则从设备甲的实际地址变为设备甲在设备乙所在总线中申请的虚拟地址。这样,数据包再经过Socket发送给路由器乙,由路由乙转发给节点乙(这个过程与上节所述相同)。最后,当设备乙收到数据时,它只知道有数据从总线上的某个节点发来,中间复杂的转换过程对它来说是完全透明的。
       
        4.5本模型的优点
          本模型的优点在于将复杂性由硬件转移到软件。众所周知,目前计算机的处理能力越来越强,高性能的处理器和大容量的存储器的价格越来越便宜,这使得用软件处理复杂性在速度和成本上都能够得到比较满意的结果。同时,现在以太网传输方面的性能得到了极大地提高,使现场总线接入以太网能很好地满足实时性的要求。采用隧道技术使现场总线与以太网互连,可以使以太网和现场总线结合起来组成全分散、全开放的控制网络,能够实现多现场总线的系统集成。




欢迎光临 DIY编程器网 (http://diybcq.com/) Powered by Discuz! X3.2