Modbus 总结学习
Modbus 是一个基于 RS485 的工业标准通讯协议,,,,,普遍的应用在工业控制中,,,,,主要的 应用照旧在 PLC 等等装备中。。。。详细的看法这里就不做说明,,,,,只对使用举行详细说明
1、modbus 的一些特点
(1)、在统一个 modbus 网络中,,,,,只能有 1 台主机,,,,,多台从机。。。。
(2)、modbus 从机才需要地点,,,,,主机没有地点,,,,,不需要初始化地点
(3)、modbus 有的通讯都是由主机提倡的,,,,,也就是说从机不可能自动发数据给从机。。。。modbus 是主从的,,,,,只能主问从答,,,,,从机不可自动上送。。。。
2、modbus 有两种通讯方式:
(1)、RTU 的方式 --- 这个是pp电子使用的方式,,,,,下面说有的介绍都是基于 RTU 这种方式 (2)、ASCLL 码的方式 --- 他的数据字节是 7bit 位,,,,,我们通俗的 mcu 不太好实现。。。。另外市场上 用的较量少。。。。以是这种方式,,,,,这里不做研究
二、RTU 模式
1、RTU 模式的数据帧名堂说明
(1)、起始位和竣事符是一样的
(2)、T1-T2-T3-T4 代表的意思???
这个问题是针关于 modbus rtu 协议的,,,,,这是 modbus rtu 协议的数据名堂。。。。其中 T1-T2-T3-T4 体现 4 个字节的通讯距离。。。。在 modbus rtu 协议中要求每个数据包的前后有至少传输 3.5 个字 节的时间距离,,,,,用来距离多条数据
(3)、CRC16 校验参照别人现成的就可以了,,,,,不详细深究
(4)、装备地点:这个好明确。。。。Modbus 主机的地点不需要设定,,,,,从机的地点可设定为 1~247。。。。
(5)、功效代码:拜见下面的详细说明
(6)、数据:拜见下面详细说明
2、RTU模式下怎样判断数据的最先
三、功效代码说明
1、常用功效代码
(1)、03 功效代码。。。。这个功效代码就是读取指定的寄存器的数据。。。。
==>着实说白了,,,,,这内里的寄存器是自己所界说的。。。。
==>应用到pp电子产品中,,,,,着实就是读取系统的状态、以及文件总数等等数据.
==>也就是我们所说的盘问功效。。。。
(2)、06 功效代码。。。。这个功效代码就是写入数据到寄存器中。。。。
==>着实说白了,,,,,这个就是主机发送数据,,,,,而从机接受到之后,,,,,写入到自己设定的寄存器中。。。。
==>应用到pp电子产品中,,,,,着实就是主机发送一个指令给我们芯片,,,,,而pp电子芯片将这个指令存储到所建设的寄存器 buffer 中,,,,,再对这个指令举行响应的行动
==>也就是我们常说的“控制功效”
四、举例说明
1、06 功效码
如图:pp电子 USB 转 485 ???樾槟獬龅氖 COM5,,,,,波特率 9600,,,,,无校验位,,,,,数据位是 8 位,,,,,
1 位阻止位,,,,,装备地点假设为 1。。。。
(1)、写寄存器的时间,,,,,若是我们要把 01 写到一个地点是 0000 的寄存器地点里,,,,,点一下“写
入”,,,,,就会泛起发送指令:01 06 00 00 00 01 48 0A。。。。 (2)、我们来剖析一下这帧数据,,,,,其中 01 是装备地点,,,,,06 是功效码,,,,,代表写寄存器这个功 能,,,,,后边跟 00 00 体现的是要写入的寄存器的地点,,,,,00 01 就是要写入的数据,,,,,48 0A 就是 CRC 校验码,,,,,这是软件自动算出来了。。。。
(3)、而凭证 Modbus 协议,,,,,当写寄存器的时间,,,,,从机乐成完成该指令的操作后,,,,,会把主机 发送的指令直接返回,,,,,pp电子调试精灵会吸收到这样一帧数据:01 06 00 00 00 01 48 0A。。。。
2、03 功效码
若是我们现在要从寄存器地点 0002 最先读取寄存器,,,,,并且读取的数目是 2 个。。。。如上图
(1)、点一下“读出”,,,,,就会泛起发送指令:01 03 00 02 00 02 65 CB。。。。
(2)、其中 01 是装备地点,,,,,03 是功效码,,,,,代表写寄存器这个功效,,,,,00 02 就是读寄存器的起 始地点,,,,,后一个 00 02 就是要读取 2 个寄存器的数值,,,,,65 CB 就是 CRC 校验。。。。 (3)、而吸收到的数据是:01 03 04 00 00 00 00 FA 33。。。。其中 01 是装备地点,,,,,03 是功效码,,,,,
04 代表的是后边读到的数据字节数是 4 个,,,,,00 00 00 00 划分是地点为 00 02 和 00 03 的寄存 器内部的数据,,,,,而 FA 33 就是 CRC 校验了。。。。751697315
五、设置文件的说明
1、如上图,,,,,我们新建的一个 read.cfg 文件,,,,,内里填入的数字是“030010”,,,,,代表寄义如下
(1)、第1位 0,,,,,代表的意思是按键模式设置为 0,,,,,详细的功效请查找表格
(2)、第二位 3 和第三位 0,,,,,配合组成了音量为 30 级,,,,,若是这里为 21 的话,,,,,是 21 级音量
(3)、第四位 0 和第五位 1,,,,,配合组成了 modbus 的装备地点,,,,,这里地点设定为 01 地点 若是要设定为 10 地点的话,,,,,这里两位填入 10 即可
(4)、后一位代表的是 busy 脚输出信号,,,,,
01 06 00 01 00 00 D8 0A --- 代表下一曲的下令
01 06 00 03 00 02 F8 0B --- 指定播放第二曲
6、测试说明
我们有的 modbus 的指令测试,,,,,都是通过电脑端的工具测试的,,,,,使用的是“MODBUS 调试助手.exe”,,,,,这个软件可以问我们索取
测试说明如下:
我们只需要用到 03 和 06 这两个功效码
测试我们所设定的地点为 02
完全支持 modbus 的标准协议
1、测试 06 功效码
Modbus 关于 06 功效码要求:从机收到数据之后,,,,,将主机发送的数据再次发给主机,,,,,作 为从机收到主机的指令的应答
(1)、0x01 指令测试
这里 modbus 主机发送的数据是“02 06 00 01 00 00 D8 39 ” 代表的寄义是:指定下一曲播放
(2)、0x03 指令测试
这里 modbus 主机发送的数据是“02 06 00 03 00 02 F8 38 ” 代表的寄义是:凭证物理顺序指定第二段语音播放
(3)、0x08 指令测试
这里 modbus 主机发送的数据是“02 06 00 08 00 02 89 FA” 代表的寄义是:凭证物理顺序指定第二段语音循环播放
(4)、0x0F 指令测试
这里 modbus 主机发送的数据是“02 06 00 0F 01 01 79 AA ” 代表的寄义是:指定 01 文件夹下面的 001xxx.mp3 文件播放
联系人:李曙光
手 机:17266260250
邮 箱:Lur@yxin18.com
公 司:广州pp电子电子科技有限公司
地 址:广州市花都区商业大道334号