Modbus 总结进建
Modbus 是一个基于 RS485 的工业尺度通讯和谈,宽泛的利用在工业节造中,重要的 利用还是在 PLC 等等设备中。具体的概想这里就不做注明,只对使用进行具体注明
1、modbus 的一些特点
(1)、在统一个 modbus 网络中,只能有 1 台主机,多台从机。
(2)、modbus 从机才需腹地址,主机没有地址,不必要初始化地址
(3)、modbus 有的通讯都是由主机提议的,也就是说从机不成能自动发数据给从机。modbus 是主从的,只能主问从答,从机不能自动上送。
2、modbus 有两种通讯方式:
(1)、RTU 的方式 --- 这个是AG真人国际使用的方式,下面说有的介绍都是基于 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 职能代码。这个职能代码就是读取指定的寄放器的数据。
==>其实说白了,这里面的寄放器是自己所界说的。
==>利用到AG真人国际产品中,其实就是读取系统的状态、以及文件总数等等数据.
==>也就是我们所说的查问职能。
(2)、06 职能代码。这个职能代码就是写入数据到寄放器中。
==>其实说白了,这个就是主机发送数据,而从机接受到之后,写入到自己设定的寄放器中。
==>利用到AG真人国际产品中,其实就是主机发送一个指令给我们芯片,而AG真人国际芯片将这个指令存储到所成立的寄放器 buffer 中,再对这个指令进行相应的作为
==>也就是我们常说的“节造职能”
四、举例注明
1、06 职能码
如图:AG真人国际 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 和谈,当写寄放器的时辰,从机成功实现该指令的操作后,会把主机 发送的指令直接返回,AG真人国际调试精灵会接管到这样一帧数据: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
公 司:昭通悦欣电子科技有限公司
地 址:昭通市花都区贸易大路334号