采用Modbus进行过程控制、自动化

最古老的数字通信协议之一也是最受欢迎的,这是有充分理由的。你应该了解Modbus。

通过吉姆·麦康纳,摩尔工业国际公司 2012年3月14日

Modbus是目前最受欢迎的工业协议,这是有原因的。它简单、廉价、通用、易于使用。尽管Modbus早在上个世纪(近30年)就已经存在了,但几乎所有主要的工业仪器仪表和自动化设备供应商都在新产品中继续支持它。

尽管新的分析仪、流量计和plc可能具有无线、以太网或现场总线接口,但Modbus仍然是大多数供应商选择在新老设备中实现的协议。另一个优点是它可以在几乎所有的通信介质上运行,包括双绞线、无线、光纤、以太网、电话调制解调器、移动电话和微波。这意味着Modbus连接可以很容易地在新的或现有的工厂中建立。事实上,一个日益增长的应用是使用现有的双绞线为老工厂提供数字通信。

什么是Modbus?

Modbus由Modicon(现在的施耐德电气)在1979年开发,作为一种通过双绞线与许多设备通信的手段。最初的方案运行在RS232上,但被适应于运行在RS485上,以获得更快的速度,更远的距离和真正的多滴网络。Modbus迅速成为自动化行业的事实上的标准,Modicon将其作为一种免版税的协议发布给公众。今天,Modbus-IDA (www.Modbus.org),最大的有组织的用户和供应商团体,继续在全球范围内支持该协议。

Modbus是一个主从系统,主服务器与一个或多个从服务器通信。主机通常是PLC(可编程逻辑控制器)、PC、DCS(分布式控制系统)或RTU(远程终端单元)。Modbus RTU从站通常是现场设备,所有这些设备都以多点配置连接到网络。当一个Modbus RTU主机想从一个设备获取信息时,它会发送一条消息,其中包含该设备的地址、它想要的数据和一个用于错误检测的校验和。网络上的所有其他设备都可以看到该消息,但只有被寻址的设备才会做出响应。

从设备不能发起通信;他们只能做出回应。换句话说,他们只在别人跟他们说话的时候才会说话。一些制造商正在开发混合设备,这些设备充当奴隶,但也有写入能力,因此有时使它们成为伪主人。

今天最常用的三个版本是:

  • Modbus ASCII
  • Modbus RTU
  • Modbus TCP

所有消息都以相同的格式发送。这三种类型之间的唯一区别是消息的编码方式。

在Modbus ASCII中,所有消息都以十六进制编码,使用四位ASCII字符。对于每一个字节的信息,需要两个通信字节,是Modbus RTU或Modbus TCP的两倍。因此,ASCII是三种协议中最慢的,但适用于使用电话调制解调器或无线电(RF)链路。这是因为ASCII使用字符来分隔消息。因此,传输介质中的任何延迟都不会导致消息被接收设备误解。这在处理慢速调制解调器、手机、有噪声的连接或其他困难的传输介质时非常重要。

在Modbus RTU中,数据以二进制编码,每个数据字节只需要一个通信字节。这是RS232或多滴RS485网络的理想使用,速度从1200到115 Kbaud。最常见的速度是9600波特和19200波特。Modbus RTU是应用最广泛的工业协议,因此本文主要讨论它的基础知识和应用注意事项。

Modbus/TCP就是以太网上的Modbus。不使用设备地址与从设备通信,而是使用IP地址,Modbus数据被简单地封装在TCP/IP数据包中。因此,任何支持TCP/IP的以太网都应该立即支持它。关于这个版本的更多细节将在后面的部分中提供。

Modbus RTU基础

为了与从设备通信,主设备发送一条包含以下内容的消息:

  • 设备地址
  • 函数代码
  • 数据,
  • 错误检查

设备地址为0 ~ 247之间的数字。发送到地址0的消息(广播消息)可以被所有slave接受,但是数字1到247是特定设备的地址。除了广播消息外,从设备总是对消息作出响应,以便主设备知道消息已收到。

功能码定义了从设备要执行的命令,如读取数据、接受数据、报告状态等。功能码为1 ~ 255。有些函数码有子函数码。

数据在设备的内存映射中为读功能定义了地址,包含要写入设备内存的数据值,或包含执行请求的功能所需的其他信息。

错误检查是一个16位的数值,表示循环冗余检查(CRC)。CRC由主机生成(通过涉及ORing和移位数据的复杂程序),并由接收设备检查。如果CRC值不匹配,设备要求重传消息。在某些系统中,还可以应用奇偶校验。

当从设备执行请求的功能时,它向主设备发送一条消息。返回的消息包含从服务器的地址和请求的函数代码(这样主服务器就知道是谁在响应)、请求的数据和错误检查值。

Modbus内存映射

每个Modbus设备都有内存,存储过程变量数据。Modbus规范规定了如何检索数据以及可以检索什么类型的数据。但是,它没有限制设备供应商在其内存映射中映射这些数据的方式和位置。

离散输入和线圈是位值,每个都有一个特定的地址。模拟输入(也称为输入寄存器)存储在16位寄存器中。通过使用其中两个寄存器,Modbus可以支持IEEE 32位浮点格式。持有寄存器也是支持浮点的16位内部寄存器。

内存映射中的数据在Modbus规范中定义。假设设备供应商遵循规范(不是所有都遵循),所有数据都可以很容易地由遵循规范的主机访问。在许多情况下,设备供应商发布内存位置(图2),使得编写主设备编程的人员可以很容易地与从设备通信。

读写数据

Modbus最多有255个功能码,但是01(读取线圈)、02(读取离散输入)、03(读取保持寄存器)和04(读取输入寄存器)是最常用的用于从库收集数据的读函数。例如,要从设备5的内存映射中读取3个16位的模拟数据,主机会发送如下命令:

5 04 2 3 CRC

其中5是设备地址,04表示读取输入寄存器,2是起始地址(地址300002),3表示读取从地址300002开始的三个连续数据值,CRC是此消息的错误检查值。从设备,在收到这个命令后,发送回一个响应,看起来像这样:

5 04 aa bb cc CRC校验

其中5是设备地址;04是重复读命令;Aa、bb、cc为3个16位数据值;和CRC是此消息的错误检查值。

读取和写入数字输入和输出以类似的方式完成,使用不同的读取和写入功能。假设设备遵循规范,设置主机来读取和写入数据、检查状态、获取诊断信息以及执行各种控制和监控功能是一个简单的编程任务。

连接设备

将现场设备引入过程控制系统、PLC或工业计算机的最简单方法之一是简单地将数字和模拟I/O连接到具有Modbus通信能力的分布式I/O系统中。这种技术允许用户远程连接模拟和数字信号,然后通过双绞线连接到主机。像这样的多个数据集中器可以安装在整个工厂的多个位置,所有这些位置都通过Modbus连接(图3)。

这种解决方案适用于新的和现有的工厂。在许多现有的工厂中,现场仪器通常通过自接线连接到DCS或PLC,其中每个设备都与携带模拟信号的单独双绞线连接。使用现场设备数据集中器,其中一个双绞线可以用于Modbus信号。如果工厂想要增加额外的现场仪器,但又不想运行更多的线路,这是特别有用的,因为每英尺的成本很容易达到100美元。分布式I/O系统可以容纳所有现有的I/O,也可以仅用于从所有新的现场仪器发送数据。

在某些情况下,控制系统不能处理Modbus信号。可能是遗留的控制系统习惯于处理4-20 mA的模拟I/O和直接有线的数字I/O,而容纳Modbus数据需要大量的重新编程。类似地,一些用户可能希望在他们的系统中添加新的远程信号,而不必运行线路或购买昂贵的Modbus接口卡,这些接口卡需要大量的重新编程。在这种情况下,点对点解决方案效果最好。一些数据集中设备具有不同级别的内置智能,可以设置为点对点或点对主机配置。

例如,对于点对点系统(图4),使用两个集中器:一个在现场,一个在控制室,作为多路复用器和解复用器。现场仪器连接到远程集中器,远程集中器通过一根双绞线连接到控制室集中器。然后,控制室集中器的输出被连接到控制系统现有的模拟I/O面板。通过这种方式,通过工厂现有的模拟I/O卡,可以看到来自新现场发射器的模拟信号的原始模拟状态。这使得编程和调试新的信号比编程新的数字接口卡更容易。这些点对点解决方案还可以适应双向通信,在这种通信中,系统的双方都可以有输入和输出。

Modbus HART

遗留工厂面临的另一个挑战是找到一种便宜而方便的方式来利用已安装的HART(高速公路可寻址远程传感器)智能设备。HART是一种数字协议,旨在允许发射机通过传统的工厂安装的铜双绞线同时传输数字数据和模拟信号,许多(如果不是大多数)4-20 mA现场设备都包含它。用户可以通过双绞线上的任何一点在本地或远程配置、询问和诊断变送器。HART从站可以采用点对点或多点配置进行布线。在更常见的点对点配置中,HART变送器改变模拟回路上的电流以表示所需的过程变量。虽然可以只监视数字HART数据,但在点到点配置中很少这样做。由于发射机控制电流,它也有能力通过HART数据流发送多个数字信息。过程可变数据和数字数据都可以通过HART从机或发射机进行传输。此数据可用于监视仪器的运行状况,或由过程控制系统或资产管理系统用于优化过程,协助提供更严格的控制,或防止意外的过程中断。在某些情况下,现有的工厂可能有数百个hart支持的仪器。 Unfortunately, for one reason or another, many plants have never exploited the capabilities of HART.

在当今资产管理、远程诊断和高级控制的世界中,许多工厂都想提取这些数字信息,但它们的控制系统和现有的线路无法容纳这些信息。控制系统可能没有设置或没有从模拟回路中提取HART数据的能力。HART仪器可以通过HART信号发送多达四个过程变量:PV(主要变量),SV(次要变量),TV(第三变量)和FV(第四个变量)。此外,还可以传输各种比特和字节的状态数据。然而,如果控制系统不能从数字HART信号中读取附加的过程变量数据或任何其他诊断和状态信息,那么这些数据就会被浪费。

客户可以通过多种方式获取HART数据,即使是在传统和成熟的工厂。一些DCS公司提供了新的升级的模拟I/O卡,能够提取这些HART数据。然而,这些卡的成本通常是传统模拟I/O卡的三到五倍。此外,HART多路复用器可以安装在现有的模拟环路上,这些模拟环路具有RS422和RS485输出到资产管理系统或dcs。同样,这些I/O多路复用模块的成本也很高。一个可选的路径,使用HART到Modbus转换器,可以节省成本,并允许以合理的成本监控几个或多个循环的灵活性。

通过一个支持Modbus RTU的HART接口模块,所有HART数据都可以简单且经济有效地传输到控制系统(图5)。接口模块是一个智能设备,它在前端充当HART主设备,在后端充当Modbus RTU从设备。它可以从4-20 mA信号中提取所有数字HART数据,而不会对环路造成负担。然后,它提供一个显示,以及各种可能的其他输出。当选择一个Modbus输出选项时,HART数据被数字映射到一个内部Modbus内存映射,然后它可以被作为Modbus RTU Master的PLC或DCS轮询。通过通过RS485丢弃各种接口模块设备,这基本上成为一个规模缩小的资产管理系统,成本只有一小部分。

无线网络通讯协议

Modbus网络可以很容易地建立在无线链路上(图6)。从本质上讲,所有的无线链路所做的就是在网络的两端用发射机/接收机取代双绞线。许多无线无线电制造商都支持Modbus协议。然而,由于无线电和调制解调器使用的一些加密方案和时间延迟,在假设支持它之前,咨询您的无线供应商是很重要的。

显然,无线Modbus的主要优势是在布线基础设施上节省成本。从历史上看,需要从油罐场、井口和其他各种偏远地点发出的信号的监控成本过高。

幸运的是,通过无线的Modbus对控制系统或主机和从机都是透明的。就像之前描述的遗留电厂系统一样,主机系统甚至不知道无线Modbus网络的存在,因为它不需要处理它。当主服务器向从服务器发出请求时,数据包到达发射无线电,该无线电通常会重新排序数据包,并在传输之前对其进行加密。一旦从无线电接收到RF(射频)数据包,它将对其进行加密并将其放回以表示有效的Modbus数据包。假设数据包没有被损坏或损坏,它将被发送到命中的slave。从服务器将对主服务器作出响应,进程将再次开始。

有时,特别注意一个称为timeout的Modbus通信参数是很重要的。超时时间是主服务器在尝试重新传输之前等待从服务器响应的时间。根据无线电通信的好坏,数据包可能会延迟,导致不必要的重试和重新传输。使用今天的FHSS(跳频扩频)无线电,大多数这些参数都可以进行有效的数据包传输。然而,适当的无线电现场调查,包括信号强度和频谱噪声分析,通常可以防止许多通信故障。

以太网Modbus

Modbus TCP通常被称为以太网上的Modbus,因为出于所有实际目的,它只是简单地将Modbus数据包封装在标准TCP/IP数据包中。这使得Modbus TCP设备可以通过现有的以太网和光纤网络连接和通信,这些网络可以支持比RS485更多的地址,使用多个master,速度在千兆比特范围内。虽然Modbus RTU每个网络有247个节点的限制,但Modbus TCP网络可以拥有物理层可以处理的尽可能多的从节点。这个数字通常在1024左右。以太网在过程控制和其他自动化应用中的快速采用使得Modbus TCP迅速发展成为以太网上使用最广泛的工业协议。

尽管各种规模的PLC供应商都采用了自己的以太网专有协议,但几乎所有的PLC供应商都支持Modbus TCP。对于那些目前不支持Modbus TCP的PLC供应商,有许多公司提供机箱式滑入通信卡和独立网关。

与Modbus RTU和Modbus ASCII不同,Modbus TCP允许多个主设备同时轮询同一个从设备。这是允许的,因为可以发送、缓冲和传递多个消息,而不需要令牌传递或总总线控制,这通常是许多RS485和RS422协议的情况。

现场控制

到目前为止,我们只处理了简单的Modbus数据采集系统。也可以在现场安装控制设备,通过Modbus与中央控制系统通信。前面提到的一些集中器还具有CPU和实时控制内核,可以通过编程来执行控制功能,如PID、开/关控制、本地报警、复杂的数学方程、诊断和报警监控。

由于它具有PLC类型的逻辑、pid类型的控制功能和先进的计算能力,一个复杂的集中器通常可以以很少的价格消除对PLC、工业计算机或小型DCS的需求。虽然Modbus不具备基金会现场总线、Profibus和CIP等其他协议的功能,但当与合适的设备结合使用时,它通常可以满足许多需要本地控制的应用程序的需求。

PID控制器最初是独立的非通信设备。随着plc和dcs越来越智能,控制器也越来越智能。今天,许多终端用户仍然喜欢单循环控制器的直接读取和易于编程的风格。像Modbus这样的数字通信协议可能为这些曾经独立的仪器增添了一些生命。通过多投控制器,您现在可以创建自己的小型分布式控制系统(图7)。

通用接口

虽然现代控制世界继续与现场总线和网格网络等先进概念作斗争,但Modbus的简单性及其在许多通信媒体上的易于实现使其成为世界上最广泛支持和实现的工业协议。当现有遗留控制系统的用户发现需要扩展现场仪器或添加远程控制器时,他们通常会将Modbus作为复杂问题的简单解决方案。此外,当需要将外来设备连接到控制系统时,使用设备的Modbus接口通常被证明是最简单的方法。虽然它是最古老的交流方式之一,但它也是最受欢迎的——这是有充分理由的。它易于使用,可靠,廉价,并连接到控制行业中几乎所有的传感和控制设备。

McConahey是Moore Industries-International的高级现场应用工程师。欲了解更多信息,请访问www.miinet.com