在工业以太网系统中,PROFINet、 Ethernet/IP 和IDA 经常被讨论但是真正得到应用的却很少。而Modbus-TCP 却不同,由于其开放、易于理解和稳定的性能,加之易于使用的技术和广泛的应用,它正在悄悄地成为通过以太网进行工业通讯的标准。
自动化领域经过近三年的“以太网热”,至今还没有一个标准化的应用层协议成为结论,而且恐怕未来也不会有。尽管IAONA所有的工作组还在各自的领域进行着相互的协作,真正意义上的结果仅仅是安装导则和通过OPC-DX进行系统间的通讯。目前的各种解决方案可以归纳为两类:
·分布式自动化系统 ·基于现场总线的以太网解决方案
PROFINet和IDA是分布式自动化系统的典型实例。它们都提出了一个全新的概念,自动化任务在分布的、智能的设备之间完成。分布式系统从根本上区别于当前的集散式系统,需要全新的手段实现系统设计和编程。但事实是市场上并没有很多这样的设备,用户也不情愿进行这样的变革。其结果是PROFINe和IDA的标准迄今为止仅仅在少量的工程中得到应用。
而基于现场总线的解决方案则全然不同。在这里,各种现场总线协议基本没有进行改变而以太网-TCP/IP简单地作为一种新的数据传输技术。这类方案的典型代表是Ethernet/IP (罗克维尔自动化, ODVA)和Modbus-TCP (施奈德自动化, Modbus.org)。这类系统的一个重要优点是其规范已使用多年,用户易于进行学习。“简单可能成为丰富”是这类方案的写照。因为它的数据传递是在自动化设备和现场设备之间而不是分布式控制,这意味着快速和可靠。
Modbus 解决方案 伴随着评论家的鄙视和使用者的赞扬,Modbus-TCP已不再是新生事物。相反,作为诞生于1979年的Modbus协议,经过附加的数据传输技术达到以太网TCP/IP级别是非常必要的。Modbus-TCP已成为当今开放的互联网标准草本,最近已由施奈德集团提交给负责制定互联网标准的组织IETF(互联网工程任务委员会)。由于Modbus协议部分未经改动,众所周知的Modbus服务和对象模式依然有效,只是将它的作为传输层协议简单地移植到TCP/IP上。这个扩展使得Modbus家族增加了新的成员,目前包括Modbus-RTU (通过RS-232或RS-485进行的异步数据传输),Modbus-Plus (高速令牌环网的通讯) 和Modbus-TCP (基于以太网-TCP/IP的客户/服务器结构通讯)。所有这些版本使用着共同的应用层协议,应用层协议规定了通用的对象模块用于数据和通讯服务。(图 1)
图 1: Modbus-TCP 是Modbus协议家族的最新成员
Modbus 应用层协议 应用层协议是独立于通讯媒介,根据客户/服务器原理组织的。客户发送请求帧来请求服务,服务器回应响应帧。请求帧和响应帧包含了参数和/或数据。在图 2中显示了标准Modbus帧和Modbus-TCP帧格式的不同。标准的Modbus通讯中从站地址和CRC校验的处理优先于功能码,但在Modbus-TCP中地址和校验由底层的TCP协议完成。
图 2: 使用Modbus-TCP,命令和用户数据可不经任何修改而封装在TCP/IP的数据容器中 下面以“读离散输入”功能来解释客户和服务器之间的数据交换。客户使用这个命令从服务器读取数字输入。功能码和参数在请求帧中进行了发送。
如果服务器接受到此功能且无任何错误,数字输入信息便通过响应帧发回给客户。响应帧为以下结构:
N 是输入的总数除以8。如果余数非零则N要加1,剩余的位通过最后一个字节发送。无用的位以0填充。如果服务器无法提供所需的信息,会发送一个错误帧以代替响应帧。
除了“读离散输入”以外,Modbus协议还提供了其它丰富的标准功能。功能码65-72和100-110为用户自定义服务预留。表1为标准(公开)的Modbus服务一览表。
Modbus 数据模式 Modbus数据模式(图3)结构非常简单,它分为四种数据类型:离散输入、线圈(输出)、数据寄存器(输入数据)和保持寄存器(输出数据)。从这些类型和名称中可以看出Modbus协议的起源。现在这些定义已经被灵活地运用在拥有大量数据类型的现代自动化设备中。数据的意义和地址在设备制造商所提供的手册中有相应的规定。Modbus目前还没有类似于其它现代现场总线中的电子设备描述文件和制造商无关的设置工具。
图 3: 数据模式为简单的数据结构并分为四种数据类型
映射到TCP/IP 在以太网TCP/IP网络中 Modbus-TCP使用传输控制协议(TCP)进行Modbus应用协议的数据传输。参数和数据使用封装的方法嵌入到TCP报文的用户数据容器中。经过封装,客户生成一个Modbus应用帧头(MBAP),它运行服务器唯一地解释接收到的Modbus参数和功能。每一个TCP/IP报文仅包括一个Modbus帧。下表显示了MBAP头的结构:
在通过Modbus-TCP/IP传送数据成为可能之前,需要在客户和服务器之间建立一个TCP/IP连接(图 4)。服务器使用端口502作为Modbus-TCP。连接的建立通常由TCP/IP Scoket接口的软件协议自动实现的,因此对应用完全透明。一旦客户和服务器之间的TCP/IP连接建立,同样的连接可以根据要求的方向用来传输任意数量的用户数据。客户和服务器还可以同时建立多个TCP/IP连接。最大的连接数量取决于TCP/IP接口的规范。在输入输出数据循环传输的情况下,永久的连接通常维持在客户和服务器之间。只有在发生特殊事件而有必要传送参数和诊断报文时,连接才能在每一次数据传送后被关闭,需要时再次被建立。
图 4: 一个TCP/IP连接必须在传送用户数据之前被建立 系统方面 通过RS-232/485 Modbus接口进行串行通讯已经在整个工业界使用了许多年。目前的Modbus产品目录(www.Modbus.org)列出了约300种不同的设备使用RS232/485 Modbus接口。作为标准化应用协议的结果,这样的设备也可以通过协议转换的方式集成在Modbus-TCP网络中,例如使用HMS公司的网关(图 5)。几乎所有具有以太网-TCP/IP的新设备都将Modbus-TCP作为工业以太网应用协议的标准版本提供。其广泛的产品系列包括标准的PLC附加通讯处理器。还有支持Modbus-TCP的PC卡和OPC服务器。域PROFINet和IDA相比,Modbus-TCP获得了相当大的增长并得到了国际认可。
图 5: 老的Modbus 设备可以通过例如HMS公司的通讯网关之类的协议转换器集成至Modbus-TCP网络 性能 Modbus-TCP网络的性能很大程度上依赖于所使用以太网的设计以及相关设备中通讯接口的微处理器性能。Modbus-TCP协议本身的效率高达60%。这是因为协议允许一个TCP/IP帧传送多个寄存器,而TCP/IP协议本身只增加几个字节的协议头。在100M位/秒交换的以太网中,理论上每秒传输最大可达360万个16位寄存器。由于网络上的数据传输延时,实际的速率要低得多。现场设备通讯接口的协议处理时间并非无关紧要,而是限制了整体的性能。在一台Momentum PLC上进行的测试表明,每秒能够传送4000个远程I/O设备,每个有32个数字I/O和16个模拟I/O值。这大致相当Profibus系统工作在1.5M位/秒时的性能。
认证 一个专业化的测试实验室已经在Michigan大学建立,可以进行Modbus-TCP设备的认证。认证包括协议测试和互操作性测试。具体的测试过程和实施方法在Modbus互联网站上有介绍。经过认证的设备会打上如同Modbus目录中产品一样的标志。这样这些产品就具有一定的优势,因为与其它设备通讯的问题在产品面市之前的测试过程中已经得到了发现和更正。
展望 Modbus-TCP 是自动化应用将以太网作为传输媒介一种实用方法。其附加的网络设备(星型拓扑智能交换机)费用会因为以太网的大量使用而得到降低。由于使用同样的媒介获得IT功能,用户还可以得到其它的实际利益(嵌入式Internet、电子邮件和文件传输)。与其它工业以太网系统相比,Modbus-TCP具有相当的市场份额,并在起始费用以及设备制造商和用户现有资源的利用上具有重要优势。然而,与PROFINet和IDA相比,作为下一代分布式控制系统的通讯系统,Modbus-TCP在功能和系统设计工具方面有所不足。
作者 Michael Volz HMS工业网络公司德国分公司总经理,公司位于德国卡尔斯鲁厄。 | |