Modbus 总结学习
Modbus 是一个基于 RS485 的工业标准通讯协议,,,,,,普遍的应用在工业控制中,,,,,,主要的 应用照旧在 PLC 等等装备中。。。。详细的看法这里就不做说明,,,,,,只对使用举行详细说明
1、modbus 的一些特点
(1)、在统一个 modbus 网络中,,,,,,只能有 1 台主机,,,,,,多台从机。。。。
(2)、modbus 从机才需要地点,,,,,,主机没有地点,,,,,,不需要初始化地点
(3)、modbus 有的通讯都是由主机提倡的,,,,,,也就是说从机不可能自动发数据给从机。。。。modbus 是主从的,,,,,,只能主问从答,,,,,,从机不可自动上送。。。。
2、modbus 有两种通讯方法:
(1)、RTU 的方法 --- 这个是LETOU乐投使用的方法,,,,,,下面说有的先容都是基于 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 功效代码。。。。这个功效代码就是读取指定的寄存器的数据。。。。
==>着实说白了,,,,,,这内里的寄存器是自己所界说的。。。。
==>应用到LETOU乐投产品中,,,,,,着实就是读取系统的状态、以及文件总数等等数据.
==>也就是我们所说的盘问功效。。。。
(2)、06 功效代码。。。。这个功效代码就是写入数据到寄存器中。。。。
==>着实说白了,,,,,,这个就是主机发送数据,,,,,,而从机接受到之后,,,,,,写入到自己设定的寄存器中。。。。
==>应用到LETOU乐投产品中,,,,,,着实就是主机发送一个指令给我们芯片,,,,,,而LETOU乐投芯片将这个指令存储到所建设的寄存器 buffer 中,,,,,,再对这个指令举行响应的行动
==>也就是我们常说的“控制功效”
四、举例说明
1、06 功效码
如图:LETOU乐投 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 协议,,,,,,当写寄存器的时间,,,,,,从机乐成完成该指令的操作后,,,,,,会把主机 发送的指令直接返回,,,,,,LETOU乐投调试精灵会吸收到这样一帧数据: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
公 司:广州LETOU乐投电子科技有限公司
地 址:广州市花都区商业大道334号