没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
MODBUS 协议
是一种串行通信协议,是 于 年,为使用可编程
逻辑控制器()而发表的。事实上,它已经成为工业领域通信协议标准,
并且现在是工业电子设备之间相当常用的连接方式。 比其他通信协议
使用的更广泛的主要原因有:
公开发表并且无版税要求
相对容易的工业网络部署
对供应商来说,修改移动原生的位或字节没有很多限制
允许多个设备连接在同一个网络上进行通信,举个例子,一个由
测量温度和湿度的装置,并且将结果发送给计算机。在数据采集与监视控制系
统()中, 通常用来连接监控计算机和
。
协议目前存在用于串口、以太网以及其他支持互联网协议的网络
的版本。
大多数 设备通信通过串口 !"#$ 物理层进行%&。
对于串行连接,存在两个变种,它们在数值数据表示不同和协议细节上略
有 不 同 。 是 一 种 紧 凑 的 , 采 用 二 进 制 表 示 数 据 的 方 式 ,
是一种人类可读的,冗长的表示方式。这两个变种都使用串行
通讯()方式。 格式后续的命令/数据带有循环
冗余校验的校验和,而 格式采用纵向冗余校验的校验和。被配置为
变种的节点不会和设置为 变种的节点通信,反之亦然。
对于通过 ' (例如以太网)的连接,存在多个 ' 变种,
这种方式不需要校验和的计算。
对于所有的这三种通信协议在数据模型和功能调用上都是相同的,只有封
装方式是不同的。
有一个扩展版本 (或者 )(,不过
此协定是 专有的,和 不同。它需要一个专门的协处理器来
处理类似 * 的高速令牌旋转。它使用 ' 的双绞线,并且每个节点
都有转换隔离装置,是一种采用转换/边缘触发而不是电压/水平触发的装置。
连 接 到 计 算 机 需 要 特 别 的 接 口 , 通 常 是 支 持
(#$)+ 或者 总线的板卡。
协议是一个 ',架构的协议。有一个节点是
节点,其他使用 协议参与通信的节点是 ,节点。每一个 ,
设备都有一个唯一的地址。在串行和 )(网络中,只有被指定为主节点的节
点可以启动一个命令(在以太网上,任何一个设备都能发送一个 命令,
但是通常也只有一个主节点设备启动指令)。
一个 ) 命令包含了打算执行的设备的 地址。所有设备都
会收到命令,但只有指定位置的设备会执行及回应指令(地址 - 例外,指定地
址 -的指令是广播指令,所有收到指令的设备都会执行,不过不回应指令)。
所有的 命令包含了检查码,以确定到达的命令没有被破坏。基本的
) 命令能指令一个 改变它的寄存器的某个值,控制或者读取一个
'. 端口,以及指挥设备回送一个或者多个其寄存器中的数据。
有许多 和网关支持 协议,因为 协议很简单而
且容易复制。它们当中一些为这个协议特别设计的。有使用有线、无线通信甚
至短消息和 / 的不同实现。不过设计者需要克服一些包括高延迟和时序的
问题。
.) 通信过程如下图
.)报文格式
起始位 设备地址 功能代码 数据 校验 结束符
!0!1!
"
#) #)
个 #)
2) !0!1!"
.) 报文格式
起始位 设备地址 功能代码 数据 校验 结束符
个字符 0 个字符 0 个字符 个字符 0 个字符 0 个字符
.) 报文
交互标识 协议标识 报文长度 设备标识 功能代码 数据
0 字节
一般为 -
0 字节
一般为 -
0 字节
高字节在前
字节
也就 是 设 备
地址
个字符 个字符
实际上 .) 与 的内容是完全相同的,不同的的
方式用“:”标识帧起始,用“34标识帧结束。校验采用 ,把 帧
中一个字节的内容换成了 0 个 字符。比如在 方式下设备地址 -
只有一个字节,在 方式下转换成字符串“-4(2 进制的 1-1)。
.)中的设备标识,功能码等与 .) 相同,可以
认为是在 .) 报文的前边加了一个头,去掉了 校验这个尾。
.) 协议定义了 " 种基本数据类型:可读写位数据,只读位数据,
只读 2 位数据,可读写 2 位数据。这些数据分别被称为线圈状态,输入状态,
输入寄存器,保持寄存器。
.) 协议中定义的这些数据都是一个从地址 开始的数组,访问时
需要指明从哪个地址开始访问,访问多少个数据。下表是 .) 的功能码。
ModBus 功能码
功能码 名称 作用
-
读取线圈状态 取得一组逻辑线圈的当前状态(.5'.33
-0
读取输入状态 取得一组开关输入的当前状态(.5'.33
-1
读取保持寄存器 在一个或多个保持寄存器中取得当前的二进制值
-"
读取输入寄存器 在一个或多个输入寄存器中取得当前的二进制值
-$
强置单线圈 强置一个逻辑线圈的通断状态
-2
预置单寄存器 把具体二进值装入一个保持寄存器
-
读取异常状态
取得 # 个内部线圈的通断状态,这 # 个线圈的地址由控制器决定,用
户逻辑可以将这些线圈定义,以说明从机状态,短报文适宜于迅速读取状
态
-#
回送诊断校验 把诊断校验报文送从机,以对通信处理进行评鉴
-
编程(只用于 "#") 使主机模拟编程器作用,修改 从机逻辑
-
控询(只用于 "#")
可使主机与一台正在执行长程序任务从机通信,探询该从机是否已完
成其操作任务,仅在含有功能码 的报文发送后,本功能码才发送
读取事件计数
可使主机发出单询问,并随即判定操作是否成功,尤其是该命令或其
他应答产生通信错误时
0
读取通信事件记录
可是主机检索每台从机的 ) 事务处理通信事件记录。如果某
项事务处理完成,记录会给出有关错误
1
编 程 ( #"'1#" "#" 可使主机模拟编程器功能修改 从机逻辑
剩余12页未读,继续阅读
资源评论
shuimanting520
- 粉丝: 351
- 资源: 16
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功