您现在所在的是:

无线通信

回帖:2个,阅读:359 [上一页] [1] [下一页]
-90
cdebyte
文章数:20
年度积分:-90
历史总积分:-90
注册时间:2020/5/12
发站内信
发表于:2022/12/2 18:17:14
#0楼
【干货】超详细!TPC7062封装MQTT协议教程

一.功能简介
通过将报文分解为16进制格式的字符串(比如:101C00044D51545404C2),再通过TPC-7062进行组包,利用串口服务器的TCP/IP协议栈连接服务器,实现TCP客户端透明传输连接MQTT服务器。

实现MQTT协议直连的前提是设备本身具有或者是外接串口联网设备实现,比如笔者所使用的TPC7062是不具备TCP/IP协议栈的纯串口控制屏,可通过连接亿佰特公司所生产的串口服务器(NB114)实现TCP客户端连接服务器。

NB114串口服务器本身就具对MQTT协议进行封装,可直接实现串口设备连接MQTT服务器,本文为了分析MQTT报文将不使用MQTT模式连接服务器,仅使用TCP客户端模式连接MQTT服务器通过MCGS脚本对数据进行组包发送。

二.报文详解
TPC驱动使用和字符转换:
TPC7062使用官方提供的扫码枪设备驱动,实现该功能不可使用Modbus等具有协议的驱动需,要使用支持串口数据透明传输的设备驱动。由于设备多处会使用到字符转换,因此独立配置三个“用户策略”用于字符转换:MQTT协议报文中TPC驱动和字符转换教程

MQTT字符长度计算:PC7062封装MQTT协议字符长度计算教程

连接报文:PC7062封装MQTT协议链接报文步骤教程

心跳报文:
PINGREQ:C0 00

服务器返回:D0 00

心跳报文基于MCGS的循环策略周期发送,

TPC7062封装MQTT协议1
TPC7062封装MQTT协议2

订阅报文
SUBSCRIBE:82 +字符总长度(遵循剩余字符算法)+00 00+订阅地址长度(2字节)+订阅地址+服务等级(00、01、02).....+订阅地址+服务等级(00、01、02)(可同时订阅多个主题)。

服务器响应:9003000000(最大Qos0),9003000001(最大QoS1)。

MCGS脚本配置如下:

TPC7062封装MQTT协议3

第一步:初始化发送缓存变量;

第二步:为发送缓存变量写入报文标识符(0000);

第三步:传入SUB-TOPIC字符到计算缓存变量,用于计算和字符转换(调用前文提到的长度计算脚本和ASCII转HEX脚本);

第四步:保存计算结果;

TPC7062封装MQTT协议4

第五步:封装服务等级仅支持0、1;

TPC7062封装MQTT协议5

第六步:将之前的缓存的字符串传入长度计算算出字符总长;

TPC7062封装MQTT协议6

第七步:封装报文头及可变长度;

TPC7062封装MQTT协议7

第八步:等待服务器响应;

TPC7062封装MQTT协议8

若订阅请求报文发送错误(非服务器许可主题和服务等级)服务器会断开连接,因此超时后发送心跳更新在线状态;

发布报文:PC7062封装MQTT协议发布报文教程

三.实例演示
通过连接阿里云MQTT服务器,并使用阿里云NTP服务获取当前时间,请求格式参考阿里云用户手册NTP服务。

TPC7062封装MQTT协议9
[此贴子已经被jint于2022/12/5 14:02:11编辑过]
50
penny2023
文章数:2
年度积分:50
历史总积分:50
注册时间:2023/4/26
发站内信
发表于:2023/11/15 16:54:14
#1楼
射频前端芯片设计原厂三伍微电子的产品有WIFI FEM、IOT FEM、PA和开关。
25007
ytleaderplc
文章数:10560
年度积分:1433
历史总积分:25007
注册时间:2008/6/7
发站内信
发表于:2024/8/26 14:24:23
#2楼
现在是定义好mqtt参数
json做好数据格式 。服务器就收到了
PLC 文本显示器 触摸屏 变频 伺服 编程电缆 plc触摸屏编程 维修等
email:  ytleader@126.com

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

62.4004