没有合适的资源?快使用搜索试试~ 我知道了~
MODBUS通讯协议-RTU.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 174 浏览量
2022-06-13
23:27:05
上传
评论
收藏 1.09MB PDF 举报
温馨提示
试读
24页
。。。
资源推荐
资源详情
资源评论
页眉内容
Modbus
通讯协议
(
RTU
传输模式)
本说明仅做内部参考,详细请参阅英文版本。
15
页眉内容
第一章 Modbus 协议简介
Modbus 协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、
控制器经由网络(例如以太网)和其它设备之间可以通信。它已经成为一通用工业标准。有
了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。
此协议定义了一个控制器能认识使用的消息结构,而不管它们是经过何种网络进行通信
的。它描述了一控制器请求访问其它设备的过程,如果回应来自其它设备的请求,以及怎样
侦测错误并记录。它制定了消息域格局和内容的公共格式。
当在一 Modbus 网络上通信时,此协议决定了每个控制器须要知道它们的设备地址,识
别按地址发来的消息,决定要产生何种行动。如果需要回应,控制器将生成反馈信息并用
Modbus 协议发出。在其它网络上,包含了 Modbus 协议的消息转换为在此网络上使用的帧
或包结构。这种转换也扩展了根据具体的网络解决节地址、路由路径及错误检测的方法。
协议在一根通讯线上使用应答式连接(半双工),这意味着在一根单独的通讯线上信号
沿着相反的两个方向传输。首先,主计算机的信号寻址到一台唯一的终端设备(从机),然
后,在相反的方向上终端设备发出的应答信号传输给主机。 协议只允许在主计算机和终端
设备之间,而不允许独立的设备之间的数据交换,这就不会在使它们初始化时占据通讯线路,
而仅限于响应到达本机的查询信号。
1. 1 传输方式
传输方式是一个信息帧内一系列独立的数据结构以及用于传输数据的有限规则,以 RTU
模式在 Modbus 总线上进行通讯时,信息中的每 8 位字节分成 2 个 4 位 16 进制的字符,每
个信息必须连续传输下面定义了与 Modebus 协议– RTU 方式相兼容的传输方式。
代码系统
8 位二进制,十六进制数 0...9,A...F
消息中的每个 8 位域都是一个两个十六进制字符组成
15
页眉内容
每个字节的位
1 个起始位
8 个数据位,最小的有效位先发送
1 个奇偶校验位,无校验则无
1 个停止位(有校验时),2 个 Bit(无校验时)
错误检测域
CRC(循环冗长检测)
1.2 协议
当信息帧到达终端设备时,它通过一个简单的“口”进入寻址到的设备,该设备去掉
数据帧的“信封”(数据头),读取数据,如果没有错误,就执行数据所请求的任务,然后,
它将自己生成的数据加入到取得的“信封”中,把数据帧返回给发送者。返回的响应数据
中包含了以下内容:终端从机地址(Address)、被执行了的命令(Function)、执行命令生成的
被请求数据(Data)和一个校验码(Check)。发生任何错误都不会有成功的响应。
1.2.1
Address
8-Bits
信息帧
Function
8-Bits
Data
N x 8-Bits
图 1 – 1 . 信息帧格式
特注:Modbus 信息帧所允许的最大长度为 256 个字节,即 N 的范围是大于等于零且小
于等于 252(N{0,252})。
即,所有的数据一共 256 个,数据剩下 253 个。
1.2.2 地址(Address)域
Check
16-Bits
信息帧地址域 (信息地址 )在帧的开始部分,由 8 位组成,有效的从机设备地址范围
0-247(十进制),各从机设备的寻址范围为 1-247。主机把从机地址放入信息帧的地址区,并
向从机寻址。从机响应时,把自己的地址放入响应信息的地址区,让主机识别已作出响应的
从机地址。
15
页眉内容
地址 0 为广播地址,所有从机均能识别。当 Modbus 协议用于高级网络时,则不允许广
播或其它方式替代。
1.2.3 功能(Function)域
信息帧功能域代码告诉了被寻址到的终端执行何种功能。有效码范围 1-225(十进制) ,
有些代码是适用于所有控制器,有些适应于某种控制器,还有些保留以备后用。有关功能代
替码的全部内容见附录 A。
当主机向从句发送信息时,功能代码向从机说明应执行的动作。如读一组离散式线圈或
输入信号的 ON/OFF 状态,读一组寄存器的数据,读从机的诊断状态,写线圈(或寄存器),
允许下截、记录、确认从机内的程序等。当从机响应主机时,功能代码可说明从机正常响应
或出现错误(即不正常响应),正常响应时,从句简单返回原始功能代码;不正常响应时,从
机返回与原始代码相等效的一个码,并把最高有效位设定为“1”。
如,主机要求从机读一组保持寄存器时,则发送信息的功能码为:
0000 0011 (十六进制 03)
若从机正确接收请求的动作信息后,则返回相同的代码值作为正常响应。发现错时,
则返回一个不正常响信息:
1000 0011(十六进制 83)
从机对功能代码作为了修改,此外,还把一个特殊码放入响应信息的数据区中,告诉主
机出现的错误类型和不正常响应的原因,不正常响应见附录 B。主机设备的应用程序负责处
理不正常响应,典型处理过程是主机把对信息的测试和诊断送给从机,并通知操作者。表 1
– 1 列出了所有设备常用的功能码、它们的意义及它们的初始功能。
表 1 – 1 常用功能码
代
码
0
1
0
2
0
3
态
读取保持寄
存器
在一个或多个保持寄存器中取得当前的二进制值
态
读 取 输 入 状 取得一组开关输入的当前状态(ON/OFF)
读 取 线 圈 状 取得一组逻辑线圈的当前状态(ON/OFF)
名称 作用
15
页眉内容
0
4
0
5
0
6
0
7
1
5
1
6
1
7
识
器
态
器
读取输入寄
存器
强置单线圈
预 置 单 寄 存
在一个或多个输入寄存器中取得当前的二进制值
强置一个逻辑线圈的通断状态
放置一个特定的二进制值到一个单寄存器中
读取异常状
取得 8 个内部线圈的通断状态
强置多线圈
预 置 多 寄 存
强置一串连续逻辑线圈的通断
放置一系列特定的二进制值到一系列多寄存器中
报 告 从 机 标 可使主机判断编址从机的类型及该从机运行指示灯的
状态
1.2.4 数据域
数据域包含了终端执行特定功能所需要的数据或者终端响应查询时采集到的数据。这些
数据的内容可能是数值、参考地址或者极限值。他由数据区有 2 个 16 进制的数据位(2 的 8
次方 256),数据范围为 00-FF(16 进制)。例如:功能域码告诉终端读取一个寄存器,数据域
则需要指明从哪个寄存器开始及读取多少个数据,内嵌的地址和数据依照类型和从机之间的
不同能力而有所不同。若无错误出现,从机向主机的响应信息中包含了请求数据,若有错误
出现,则数据中有一个不正常代码,使主机能判断并作出下一步的动作。数据区的长度可为
“零”以表示某类信息。
1.2.5 错误校验域
该域允许主机和终端检查传输过程中的错误。有时,由于电噪声和其它干扰,一组数据
在从一个设备传输到另一个设备时在线路上可能会发生一些改变,出错校验能够保证主机或
者终端不去响应那些传输过程中发生了改变的数据,这就提高了系统的安全性和效率,出错
校验使用了 16 位循环冗余的方法,即 CRC 校验。
错误检测域包含一 16Bits 值(用两个 8 位的字符来实现)。错误检测域的内容是通过对消
息内容进行循环冗长检测方法得出的。CRC 域附加在消息的最后,添加时先是低字节然后是
高字节。故 CRC 的高位字节是发送消息的最后一个字节。
15
剩余23页未读,继续阅读
资源评论
苦茶子12138
- 粉丝: 1w+
- 资源: 6万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功