由于各种各样的原因,MODBUS是今天大家使用的工业协议当中最受欢迎的一种。它简单、便宜、通用性强并且使用方便。
MODBUS的另一个优点是它实际上可以通过任何传输媒介进行通讯,其中包括双绞线、无线通讯、光导纤维、以太网、电话调制解调器、移动电话以及微波等。这样就意味着可以很容易的在一个新的或者是现有的工厂里面建立起MODBUS连接。事实上,一个正在MODBUS应用领域不断成长的应用就是在老旧的工厂里面利用现有的双绞线连接提供MODBUS数字通讯。
在这份白皮书当中,我们将会对MODBUS的工作方式进行研究,并且看一看在新老工厂里面使用MODBUS的一些巧妙方法。
图1:一个由一台“主站(一台PLC或DCS)”以及最多247个“从站”设备构成的MODBUS RTU网络。其网络架构是多分支网络连接。
表1:功能代码
什么是MODBUS?
MODBUS是Modicon公司(即现在的Schneider Electric公司)于1979年开发的一种通讯协议,其目的是采用一根双绞线与许多设备进行通讯。最初的方案使用RS232接口,但是MODBUS也适合于
今天www.cechina.cn,最大的MODBUS 用户和供应商组织MODBUS_IDA(www.MODBUS.org)仍然在继续为全世界的MODBUS协议提供支持。
MODBUS是一种“主-从”结构的系统,在这里“主设备”与一个或是多个“从设备”进行通讯。比较典型的主设备一般是PLC(可编程逻辑控制器)、PC、DCS(分散控制系统)或者RTU(远程终端单元)。MODBUS-RTU的从设备一般是现场仪表设备,所有这些现场仪表设备都以多分支网络的方式连接到系统当中,参见图1。当一个MODBUS-RTU主设备想要从一台从设备得到数据的时候,这个主设备会发送一条包含该设备地址、所需要数据以及一个用于检测错误的求和校验码的信息。网络上的所有其它设备都可以看到这一条信息,但是只有地址被指定的设备才会作出反应。
MODBUS网络上的从设备不能够发起通讯联络CONTROL ENGINEERING China版权所有,它们只能作出反应。换句话说,它们只能在别人对它说话的时候说话。有一些制造商正在开发“混合”型的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的数字。有些功能代码还拥有子功能代码。
数据为读取功能定义了在设备存储器映射当中的地址CONTROL ENGINEERING China版权所有,它包括被写入设备存储器的数据值,或是包括其它根据功能代码的要求需要被执行的信息。
错误检查是一个描述循环冗余校验(CRC)的16-bit数值。循环冗余校验码(CRC)由主设备产生(通过一个包括对数据进行“或”运算以及移位运算的复杂程序产生),并且由接收设备进行检查。如果CRC值不符,这个设备就会要求重新传送讯息。在有些系统里面CONTROL ENGINEERING China版权所有,还要对数据进行奇偶校验。
当从设备执行了所要求的功能www.cechina.cn,它会返回一条讯息给主设备。这条返回的讯息包含了从设备的地址、所要求的功