MODBUS协议(功能码及报文解析)_第1页
MODBUS协议(功能码及报文解析)_第2页
MODBUS协议(功能码及报文解析)_第3页
MODBUS协议(功能码及报文解析)_第4页
MODBUS协议(功能码及报文解析)_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、MODBUS协议 Modbus是一种串行通信协议,是于 年,为使用可编程逻辑控制器(PLC) 而发表的。事实上,它已经成为工业领域通信协议,并且现在是工业电子设备 之间相当常用的连接方式。Modbus比其他通信协议使用的更广泛的主要原因 有: 公开发表并且无版税要求 相对容易的工业网络部署 对供应商来说,修改移动原生的位或字节没有很多限制 Modbus允许多个设备连接在同一个网络上进行通信,举个例子,一个由测 量温度和湿度的装置,并且将结果发送给计算机。在数据采集与监视控制系统 (SCADA中,Modbus通常用来连接监控计算机和 remote terminal unit (RTU)。 Mod

2、bus协议目前存在用于串口、以太网以及其他支持互联网协议的网络的 版本。 大多数Modbus设备通信通过串口物理层进行。 对于通过(例如)的连接,存在多个 Modbus/TCP变种,这种方式不需要校 验和的计算。 对于所有的这三种通信协议在数据模型和功能调用上都是相同的,只有封 装方式是不同的。 Modbus有一个扩展版本 Modbus Plus(Modbus+或者MB+),不过此协定是 Modicon专有的,和 Modbus不同。它需要一个专门的协处理器来处理类似的高 速令牌旋转。它使用1Mbit/s的,并且每个节点都有转换隔离装置,是一种采用 转换/边缘触发而不是电压/水平触发的装置。连接

3、Modbus Plus到计算机需要 特别的接口,通常是支持ISA(SA85 ,PCI或者PCMCIA总线的板卡。 Modbus协议是一个 master/slave架构的协议。有一个节点是 master节点, 其他使用Modbus协议参与通信的节点是 slave节点。每一个slave设备都有一 个唯一的地址。在串行和MB+网络中,只有被指定为主节点的节点可以启动一 个命令(在以太网上,任何一个设备都能发送一个Modbus命令,但是通常也只 有一个主节点设备启动指令)。 一个ModBus命令包含了打算执行的设备的 Modbus地址。所有设备都会收 到命令,但只有指定位置的设备会执行及回应指令(地址

4、 0例外,指定地址0 的指令是广播指令,所有收到指令的设备都会执行,不过不回应指令) 。所有的 Modbus命令包含了检查码,以确定到达的命令没有被破坏。基本的 ModBus命 令能指令一个RTU改变它的寄存器的某个值,控制或者读取一个 I/O端口,以及 指挥设备回送一个或者多个其寄存器中的数据。 有许多modems和网关支持Modbus协议,因为Modbus协议很简单而且容 易复制。它们当中一些为这个协议特别设计的。有使用有线、无线通信甚至短 消息和GPRS勺不同实现。不过设计者需要克服一些包括高延迟和时序的问题。 MODBUS通信过程如下图 MODBUS RTU报文格式 MODBUS AS

5、CII报文格式 MODBUS TCP艮文 实际上MODBUS RTI与ASCI啲内容是完全相同的,不同的的 ASCI方式用 :”标识帧起始,用“ CR L标识帧结束。校验采用LRC把RTU帧中一个字节的 内容换成了 2个ASCII字符。比如在RTU方式下设备地址01只有一个字节,在 ASCI方式下转换成字符串“ 01(16进制的30 31 )。 MODBUS TCP中的设备标识,功能码等与 MODBUS RTUI同,可以认为是 在MODBUS RTU艮文的前边加了一个头,去掉了 CRC校验这个尾。 MODBUS协议定义了 4种基本数据类型:可读写位数据,只读位数据,只读 16位数据,可读写16

6、位数据。这些数据分别被称为线圈状态,输入状态,输入 寄存器,保持寄存器。 MODBUS协议中定义的这些数据都是一个从地址 1开始的数组,访问时需要 指明从哪个地址开始访问,访问多少个数据。下表是MODBUS的功能码。 ModBus功能码 各个功能码对应的数据类型 MODBUS协议相当复杂,但是常用的命令也就简单的几个,01, 02, 03, 04, 05,06,15,16号命令。 各个命令的功能和报文如下: 01命令读取线圈状态 MODBUS地址00001 MODBUS请求 MODBUS响应 N =读取数量/8 如果余数不为0则N二N+1 错误响应 举例 02命令 读取输入状态 MODBUS地

7、址10001 MODBUS请求 MODBUS响应 N =读取数量/8 如果余数不为0则N二N+1 错误响应 举例 03读保持寄存器MODBUS地址40001 MODBUS请求 MODBUS响应 错误响应 举例 04输入寄存器 MODBUS地址30001 MODBUS请求 MODBUS响应 错误响应 举例 05设置单个继电器状态 MODBUS请求 MODBUS响应 错误响应 举例(吸合6号继电器) 06设置单个保持寄存器 MODBUS请求 MODBUS响应 错误响应 举例 设置9号保持寄存器内容为25 15设置多个继电器状态 MODBUS请求 MODBUS响应 错误响应 举例 设置继电器 16设置多个保持寄存器 MODBUS请求 MODBUS响应 错误响应 举例 设置多个保持寄存器 MODBUS协议在智能设备中的应用 上面讲述了 MODBUS协议的报文以及命令,那么在智能设备中如何使用这 6 / 6 个协议呢? 如果智能设备有开关量输入输出, 开关量输入可以映射到10001地址, 10002, 开关量输出映射到00001地址, 模拟量输入映射到30001地址, 模拟量输出和计数器输入映射到 40002, 模拟量输入输出,有计数器等。很明显 第一路开关量输入为10001,第二路为 第一路为00

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论