这篇文章主要介绍“MQTT协议和Modbus协议的比较”,在日常操作中,相信很多人在MQTT协议和Modbus协议的比较问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MQTT协议和Modbus协议的比较”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
协议就是通信双方的一个约定,即,表示第1位传输的什么、第2位传输的什么……。
Modbus协议主要构成是地址码/标识码,功能码,寄存器地址,数据报文等内容。由于modbus协议是请求/应答通信协议,其其中功能码主要用于表述该数据报文执行的功能,当服务器对客户机进行响应时,它使用功能码域来指示正常响应(无差错)或者异常响应(即出现某种差错),其中的modbus协议的功能码众多,在此不能一一列出。
我们以Modbus RTU协议为例,地址码为0x01,写操作0x10,寄存器地址为0x018E,CRC校验。如寄存器可读写的话,返回正常,如寄存器只读,返回异常。
下发指令:01 10 01 8E 00 01 02 00 00 69 BE(向寄存器0x018E写入一个数值为0的数据)
正确回应指令:01 10 01 8E 00 01 60 1E(向寄存器地址0x018E写操作一个寄存器)
错误回应指令:01 90 01 8D C0(写操作非法功能,可能是向输入寄存器写数据)
在MQTT
协议中,一个MQTT
数据包由:固定头(Fixed header)
、 可变头(Variable header)
、 消息体(payload)
三部分构成。
MQTT
固定头
1.1 MQTT
数据包类型
1.2 标识位
1.3 剩余长度(Remaining Length)
MQTT
可变头
Payload
消息体
MQTT 数据包结构
固定头(Fixed header)
,存在于所有MQTT
数据包中,表示数据包类型及数据包的分组类标识
可变头(Variable header)
,存在于部分MQTT
数据包中,数据包类型决定了可变头是否存在及其具体内容
消息体(Payload)
,存在于部分MQTT
数据包中,表示客户端收到的具体内容
到此,关于“MQTT协议和Modbus协议的比较”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。