新闻中心

EEPW首页>嵌入式系统>设计应用> MODBUS在过程控制系统中的应用

MODBUS在过程控制系统中的应用

作者: 时间:2012-06-14 来源:网络 收藏

  目前大家使用的三种最常见的版本是:

  ■ASC II

  ■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规格书的要求。



评论


相关推荐

技术专区

关闭