由于各种各样的原因,MODBUS是今天大家使用的工业协议当中最受欢迎的一种。它简单、便宜、通用性强并且使用方便。
MODBUS的另一个优点是它实际上可以通过任何传输媒介进行通讯,其中包括双绞线、无线通讯、光导纤维、以太网、电话调制解调器、移动电话以及微波等。这样就意味着可以很容易的在一个新的或者是现有的工厂里面建立起MODBUS连接。事实上,一个正在MODBUS应用领域不断成长的应用就是在老旧的工厂里面利用现有的双绞线连接提供MODBUS数字通讯。
在这份白皮书当中,我们将会对MODBUS的工作方式进行研究,并且看一看在新老工厂里面使用MODBUS的一些巧妙方法。
图1:一个由一台“主站(一台PLC或DCS)”以及最多247个“从站”设备构成的MODBUS RTU网络。其网络架构是多分支网络连接。
表1:功能代码
什么是MODBUS?
MODBUS是Modicon公司(即现在的Schneider Electric公司)于1979年开发的一种通讯协议,其目的是采用一根双绞线与许多设备进行通讯。最初的方案使用RS232接口,但是MODBUS也适合于
RS485接口以便获得更高的通讯速率、更长的通讯距离以及实现真正的多分支网络结构。MODBUS很快就成了一种自动化工业领域的事实上的标准,Modicon公司也把它向社会进行了公开发布,不收任何版税。
今天,最大的MODBUS 用户和供应商组织MODBUS_IDA(www.MODBUS.org)仍然在继续为全世界的MODBUS协议提供支持。
MODBUS是一种“主-从”结构的系统,在这里“主设备”与一个或是多个“从设备”进行通讯。比较典型的主设备一般是PLC(可编程逻辑控制器)、PC、DCS(分散控制系统)或者RTU(远程终端单元)。MODBUS-RTU的从设备一般是现场仪表设备,所有这些现场仪表设备都以多分支网络的方式连接到系统当中,参见图1。当一个MODBUS-RTU主设备想要从一台从设备得到数据的时候,这个主设备会发送一条包含该设备地址、所需要数据以及一个用于检测错误的求和校验码的信息。网络上的所有其它设备都可以看到这一条信息,但是只有地址被指定的设备才会作出反应。
MODBUS网络上的从设备不能够发起通讯联络,它们只能作出反应。换句话说,它们只能在别人对它说话的时候说话。有一些制造商正在开发“混合”型的MODBUS设备,它们平常的运行模式和MODBUS从设备相似,但是却具备“写”的能力,因此有时候这些设备会作为“伪主设备”运行。
目前大家使用的三种最常见的MODBUS版本是:
■ MODBUS ASC II
■ MODBUS RTU
■ MODBUS/TCP
所有的MODBUS信息都以相同的格式进行传送。在这三种不同类型的MODBUS版本之间的唯一差别就是:信息是怎样进行编码的。
在MODBUS RTU协议里面,数据以二进制进行编码,而且每一个字节的数据只需要一个字节的通讯量。对于通讯速度在1200到115K波特率的RS232或者多分支网络的RS485网络来说,MODBUS RTU是一种理想的通讯协议。MODBUS RTU最为常见的通讯速率为9600和19200波特率。MODBUS RTU是得到最为广泛应用的工业化协议,因此这份白皮书的主要部分将会集中讨论MODBUS RTU的基本概念和应用。
MODBUS RTU基础
为了与一台从设备进行通讯,主设备将会发送一个包含如下内容的讯息:
■ 设备地址
■ 功能代码
■ 数据
■ 错误检查
设备地址是一个从0到247的数字。发送给地址0(广播讯息)的讯息可以被所有从设备接收到,但是数字1到247是特定设备的地址。在这个讯息广播当中有一个例外,有一个从设备总是会对MODBUS讯息作出反应,这样主设备就知道这条讯息已经被从设备接收到了。
功能代码定义了从设备应该执行的命令,例如读取数据、接受数据、报告状态等等(参见表1)。功能代码为从1到255的数字。有些功能代码还拥有子功能代码。
数据为读取功能定义了在设备存储器映射当中的地址,它包括被写入设备存储器的数据值,或是包括其它根据功能代码的要求需要被执行的信息。
错误检查是一个描述循环冗余校验(CRC)的16-bit数值。循环冗余校验码(CRC)由主设备产生(通过一个包括对数据进行“或”运算以及移位运算的复杂程序产生),并且由接收设备进行检查。如果CRC值不符,这个设备就会要求重新传送讯息。在有些系统里面,还要对数据进行奇偶校验。
当从设备执行了所要求的功能,它会返回一条讯息给主设备。这条返回的讯息包含了从设备的地址、所要求的功能代码(这样主设备就知道是谁在作出反应)、所要求的数据以及一个错误检查值。
MODBUS存储器映射
每一个MODBUS设备都有存储器,在存储器里面保存着过程变量数据。MODBUS的配置决定了数据怎样被恢复以及什么类型的数据能够被恢复。不过,MODBUS配置并没有规定设备供应商必须怎样映射这些数据以及必须把这些数据映射在存储器的哪个部分。下面是一个比较常见的例子,用来说明理论上一个供应商可能怎样映射不同类型的过程变量数据。
离散量输入和输出是1-bit数值,并且每一个这种变量都有一个明确的地址。模拟量输入(也被称为“输入寄存器”)被存储在16-bit寄存器里面。只需利用这些寄存器当中的两个寄存器,MODBUS就可以支持IEEE 32-bit浮点格式。保持寄存器也是16-bit内部寄存器,可以支持浮点格式。
MODBUS配置定义了在寄存器映射里面的数据。假定设备供应商遵从了MODBUS规格书的要求(并非所有设备供应商都如此),那么MODBUS主设备就可以很容易的获取所有遵从规格书规定的数据。在很多案例当中,设备供应商公布了存储器的映射位置(参见表2),这样就使得编程人员可以很
容易的为主设备与从设备之间的通讯进行编程。
表2:大多数MODBUS兼容设备(例如来自于Moore Industries公司的TMZ温度变送器)的说明书或者操作手册都公布了关键变量在存储器映射里面的地址。TMZ温度变送器的地址遵守了MODBUS规格书的要求。
读取和写入数据
MODBUS拥有最多255个功能代码,但是01(读取输出量)、02(读取离散输入)、03(读取保持寄存器)以及04(读取输入寄存器)是最为常用的读取功能代码,这些代码被用来从MODBUS从设备采集数据。
假如设备遵从了MODBUS配置的要求,那么设定主设备读取和写入数据、检查状态、获取诊断信息以及执行各种控制和监视功能的编程任务就变得非常简单了。
在大多数工厂里,现场仪表采用单独的控制室直连对绞线电缆连接到控制系统(见下图)。当仪表设备被连接到一种分散式I/O系统(例如来自于Moore Industries公司NCS系统)的时候(见中图),你可以增加更多的现场设备,但是仅仅需要一根对绞线电缆就可以把所有数据传送到MODBUS主站。在多个NCS系统以MODBUS网络的方式组网连接的时候(见下图),整个工厂的连接都能够从对绞线电缆控制室直连的方式转变成为MODBUS连接方式。
图2:控制室直连电缆 vs MODBUS
图3:对等网连接模式。在某些案例当中,控制系统不能处理MODBUS信号。在这种情况下,可以采用使用双重NCS设备的对等网解决方案,仅用一根MODBUS电缆就可以替代所有的控制室直连电缆。来自第二个NCS的模拟量输出再通过硬接线直接连接到控制系统的I/O盘。
连接MODBUS设备
最容易的一种把现场设备连接到一个过程控制系统、PLC或是工业计算机系统的方法,就是简单的把数字量以及模拟量I/O连接到一个具有MODBUS通讯能力的分散I/O系统里面。例如来自Moore Industries公司的NCS(Net Concentrator System)系统允许用户对模拟量和数字量信号进行远程连接,然后再通过双绞线连接到一个MODBUS主设备。多个NCS系统可以安装在全厂的几个不同的地点,都通过MODBUS进行连接(参见图2)。
这个解决方案即适合于新的工厂,也适用于现存的工厂。在许多现有的工厂里面,现场仪表设备通常是采用多芯电缆连接到DCS或者PLC系统的,每个设备都通过单独的对绞电缆把模拟信号传送出去。采用NCS系统,只需要这些电缆中的一个用来传送MODBUS信号就可以了。假如工厂想要增加额外的现场仪表设备,却不想安装更多电缆(电缆安装费用通常为每英尺100美元)的时候,这种解决方案就特别有用。一套分散I/O系统就可以满足所有现存仪表I/O的需要,或者仅仅用它来传送来自于所有新增现场仪表设备的数据。
在有些案例当中,控制系统不能处理MODBUS的信号。例如现有的控制系统有可能是为处理4到20毫安模拟量I/O和直接接线的数字量I/O而定制的,并且为现有的老系统进行重新编程使其支持MODBUS也非常困难。通常,用户一般并不倾向于通过铺设新电缆或是购买昂贵的MODBUS接口卡件来将新增加的远程信号接入到系统中,因为对MODBUS接口卡件进行重新编程费用很高。在这种情况下,一种对等网络方案(peer to peer)可以很好的解决问题。例如来自Moore Industries公司的CCS(Cable Concentrator System)和NCS(Net Concentrator System)系统就都具备对等网络通讯能力。
NCS和CCS系统与一套分散I/O模件十分相似,但是具有更强的内建智能。并且NCS和CCS系统既可以被设置成对等网络模式,也可以被设置成主从网络(peer to host)模式。
使用一套对等网络模式的NCS系统(参见图3),配置了两个网络集中器;一个安装在现场,另一个安装在控制室。现场仪表被连接到远程的那个NCS。这个远程NCS与控制室里的NCS之间通过一根双绞线进行连接。然后控制室NCS的输出再通过硬接线接入现有控制系统的模拟I/O盘。采用这种方法,来自新增现场变送器的模拟信号就能够以原来模拟信号的状态通过工厂现有的模拟I/O卡件接入控制系统。这使得新增信号带来的编程和调试工作与新增数字接口卡件相比大大减少。这种对等网络解决方案也能够满足双向式通讯的要求,在这种情况下系统的现场侧和控制室一侧都可以有输入和输出能力。
HART借助MODBUS
老式工厂面临的另一个挑战是找出一种便宜而又方便的方法来发挥已经安装的和“将要安装的”HART智能仪表的优势。HART的意思是可寻址远程传感器高速通道。HART是一种数字化协议,其设计初衷是使变送器能够通过传统工厂安装的铜质对绞线在传送
一路模拟信号的同时传送数字化的数据。这使用户能够通过在这根对绞线上任何一点的连接对变送器进行远程或是本地的组态、测试以及诊断。HART从设备既可以采用点对点的方式连接,也可以采用多分支网络的方式进行连接。点对点连接是最常见的HART连接方式,在这种方式下HART变送器通过改变模拟回路上的电流来表征所需要的过程变量。当然,只监视数字化的HART数据也是可以的;不过在点对点的运行模式下,很少有人这么做。在HART变送器控制电流的同时,它还能够通过HART数据流发送多种数字化的信息包。过程变量数据和数字化信息数据都可以被HART从设备或是变送器传送。这些数据可以被用来监视仪表的完好情况或是被过程控制系统或者资产管理系统用来优化过程,帮助实现更加严密的控制或者防止意外的过程波动。在某些情况下,现有工厂可能有数以百计具有HART能力的仪表。不幸的是,由于种种原因许多工厂从来不开发这些HART仪表的潜在能力。
在目前资产管理系统、远程诊断系统和先进控制获得广泛应用的环境下,许多工厂都希望能够把HART仪表的数字化信息提取出来,但是他们的控制系统和现存的接线方式无法支持这种要求。这些控制系统可能无法从数字信号里面提取HART数据,或是这些控制系统仅仅想要看到硬接线的数字量和模拟量I/O信号。一台HART仪表可以通过HART信号发送多达四个过程变量:PV(第一变量)、SV(第二变量)、TV(第三变量)、FV(第四变量)。另外还有各种比特和字节的状态数据也可以被HART信号所传送。但是,如果控制系统不能够从数字化的HART信号里面读取这些额外的过程变量数据或是任何其它诊断信息和状态信息,那么这些数据就被白白浪费了。
用户当然也可以选择利用这些HART数据,即使对现有工厂里的老式系统也是如此。有些DCS公司能够提供新型的升级版本的模拟量I/O卡板,这种卡板有能力“辨认出”这些HART数据。不过这样的卡板通常会比传统的模拟量I/O卡板昂贵三到五倍。此外还有一些HART信号混合单元可以安装在现有的模拟量I/O回路里面,这种接口单元具备RS422和RS485输出端口,可以被连接到资产管理系统或者DCSes系统。当然,这类HART信号混合单元的价格也是令人望而却步的。另一个选择项就是使用一种HART到MODBUS的转换器,就像来自Moore Industries公司的HIM(HART信号接口模件),这是一种效费比较高而且具有灵活性的解决方案,它能够以合理的价格选择性的监视仅仅少数回路或者很多回路。
采用一个支持MODBUS RTU通讯的HART接口模件,就能够简单而且便宜的把所有HART数据都采集到控制系统里面(参见图4)。这种HIM是智能化的设备,它即可以作为HART主站在前端运行,同时又可以作为MODBUS RTU的从设备在后端运行。HIM可以从变送器的模拟量信号里面提取出所有HART数据,却不会影响或者干扰连接到控制系统去的4到20毫安信号。HIM还可以提供一个液晶显示窗口、三路4到20毫安信号、两个继电器输出和一个可选的双路MODBUS RTU输出。当用户使用MODBUS选择项的时候,HART数据被数字化的映射在HIM的MODBUS存储器映射里面,然后作为MODBUS RTU主站的PLC或者DCS就可以从这个存储器映射得到需要的数据了。将多个HIM采用多分支网络方式连接起来并通过RS485接口传送HART数据,这种架构从本质上来说几乎就是一个小规模的资产管理系统,而费用却只有其几分之一。
无线MODBUS
一个MODBUS网络可以相当容易的设置成通过无线连接进行工作(参见图5)。从本质上来说,任何无线连接所作的都只不过是用布置在网络各端的发射器/接收器来替代双绞线电缆而已。很多无线电台的制造商都支持MODBUS协议。但是由于无线电台和调制解调器使用了一些加密和时间延迟方案,所以有一点非常重要:在你假定某些无线设备支持MODBUS协议之前,务必要先咨询这些无线设备的供应商。
图4:一个HART接口模件(HIM)从HART信号里面提取数字化数据并且把它存储在自身的MODBUS存储器映射里面,这样任何MODBUS主设备就都可以读取这些数据了。原始的4-20mA信号仍旧象以前一样被连接到控制系统。
图5:一台无线接口(例如来自于Moore Industries公司的无线连接模件)使用RF连接代替了双绞线。
很明显,无线MODBUS的主要优点就是节约了铺设线路的费用。在以前,为了监视和控制来自于罐区、井口以及各种遥远地点的信号,其费用是及其昂贵的。
幸运的是,无线传送的MODBUS对于控制系统或是主站、从站来说是透明的。例如上面提到的现有工厂里面的老式系统等,这类主机系统甚至都不知道存在着一个无线MODBUS网络,因为它们
根本不需要面对这个无线MODBUS网络。当一个MODBUS主站向从站提出一个要求时,这个讯息包被传送到无线电发射台。通常无线电发射台会在发射之前对讯息包进行重新排队和加密。一旦这个RF(无线电射频)讯息包被从电台接收到,从电台会对它们进行解密并且把它们排序,使其重新代表一个有效的MODBUS讯息包。如果这个讯息包没有被损坏或者发生混乱,它就会被发送到所要求的从站。这个从站将会对主站的要求作出相应的反应,刚才的过程就会再次重复一遍。
有些时候你必须特别注意一个被叫做“timeout”的MODBUS通讯参数,这一点很重要。Timeout表示:在尝试重新发送讯息之前,MODBUS主站将会等待一个从站作出反应的时间的长短。根据无线电台通讯情况好坏的不同,讯息包的发送可能会被延误,这有可能造成一些不必要的重试和重新发送。采用今天的FHSS(跳频扩频)无线电台,这些参数当中的大多数都可以进行修改以便高效率的传送MODBUS讯息包。而对电台的选址进行恰当的分析研究通常可以避免许多通讯受阻的现象,其中需要进行的研究包括信号强度分析以及频带噪声分析等。
以太网上的MODBUS
MODBUS/TCP常常被理解为以太网上的MODBUS。其实总的来说MODBUS/TCP不过是采用TCP/IP标准简单的把MODBUS讯息包打包压缩而已。这使得MODBUS/TCP设备马上就可以方便的通过现有以太网和光纤网络进行连接和通讯。与RS485接口相比,MODBUS/TCP还允许使用多得多的地址、可以采用多主站架构、传送速率可以达到GB水平。虽然MODBUS RTU有每个网络不能超过247个节点的限制,但是MODBUS/TCP网络的从站数量仅受限于网络物理层的能力。通常从站的数量一般在1024个左右。以太网在过程控制和自动化工业领域的迅速普及已经使得MODBUS/TCP成为应用最广泛、增长速度最快的被以太网支持的工业协议。
虽然各家大小PLC供应商都有自己的以太网协议,但是他们几乎全部都支持MODBUS/TCP。即便是对那些目前不支持MODBUS/TCP的PLC供应商来说,他们也可以找到很多家类似于Prosoft Technologies和SST的公司可以为他们的PLC产品提供底板安装型的MODBUS/TCP通讯卡以及独立安装的网关等配件。
MODBUS/TCP的另一个优点是它的多主站能力。不像MODBUS RTU和MODBUS ASC II,MODBUS/TCP允许多个主站同时从同一个从站获取数据。为什么MODBUS/TCP会具备这样的能力呢?这是因为通过使用TCP/IP的以太网,无需令牌传递或是取得总线的完全控制权就可以发送、缓冲和递交多个讯息。这对于许多RS485和RS422协议是很常见的情况。
通过MODBUS把控制放到现场去
到目前为止,我们仅仅涉及到了简单的MODBUS数据采集系统。还有一种方案也是可能的,那就是把控制设备安装在现场,然后通过MODBUS使其与中央控制系统进行通讯。前边提到过的网络集中器NCS同时也拥有功能强大的CPU(中央处理器单元)和实时控制内核,它也可以被编程用来执行控制功能,例如PID控制、ON/OFF控制、现场报警、复杂算术运算、诊断以及报警监视等。
因为它具有类似PLC的逻辑、PID类型的控制功能以及先进的计算能力,一台NCS通常能够满足对一台PLC、工业计算机或者一套小型DCS的功能要求,其价格却只是后者的几分之一。虽然MODBUS协议并不具备诸如基金会现场总线和CIP(通用工业协议)等其它协议的能力,但是它确实满足了许多应用的需要。在这些应用里面,用户喜欢在现场进行控制,同时可以通过以太网对现场进行监视和上位控制。而MODBUS协议就是满足这种需要的最具效费比和最便捷的解决方案。
另一种“智能化”并且具有控制能力的MODBUS设备是来自于Moore Industries公司的MDS方程站。这是一种多功能控制器,它能够执行很多种类型的控制功能和运算。有了MDS方程站,在实现简单控制任务、多变量控制任务(例如监视和控制一个蒸煮器里的纸浆液位或者使用来自多个流量、温度和压力变送器的输入信号实现质量流量计算)时就不再需要PLC或者大型控制器了。最多可以有127个MDS模件被安装在一个MODBUS网络上面来实现对工厂的控制或是采集整个工厂的信号。
PID(比例、积分和微分)控制器最初都是单机独立运行的无通讯控制器。由于PLC和DCS都已经智能化,因此现在PID控制器也智能化了。今天,许多终端用户依然青睐那些直接读出和编程简单的单回路控制器。诸如MODBUS等数字化通讯协议能够给这些一直单机运行的仪表注入一些新的活力。通过对这些控制器进行多分支网络连接,你可以创造一个你自己的小型分散控制系统,参见图6。
MODBUS:通用的接口
图6:具有MODBUS功能的设备(例如1/4 DIN 545双回路PID控制器)能够把控制功能布置到现场。将这些MODBUS设备连接成多分支网络,并且把它们的输出发送到一个基于WINDOWS的SCADA系统,这样就创建了一个小型的分散控制系统。
当现代的控制领域持续不断的产生和应用诸如现场总线和网状网络等先进概念的时候,MODBUS的简单性以及它的便于在许多通讯媒介上实施应用的特点一直使它受到最广泛的支持,并且成为全球应用最广泛的工业协议。当使用现有老式控制系统的用户发现自己需要扩充现场仪表或者增加远程控制器的时候,他们都会采用MODBUS作为一个能够解决复杂问题的简单解决方案。当用户试图把一个外来设备连接到控制系统里面的时候,使用这个设备的MODBUS接口总被证明是最为容易的办法。虽然MODBUS已经是最为古老的通讯方法之一,由于非常多的原因它也是最普及的通讯方法。MODBUS便于使用、非常可靠、价格低廉并且可以连接到控制工业领域几乎所有的传感器和控制设备。