【触摸屏功能测试】MQTT_STD本地调试说明-测试记录
1、MQTT简介
MQTT是一种基于发布/订阅模式的“轻量级”通讯协议。它是针对受限的、低带宽的、高延迟的、网络不可靠的环境下的网络通讯设备设计的。
发布是指客户端将消息传递给服务器,订阅是指客户端接收服务器推送的消息。每个消息有一个主题,包含若干个数据。客户端A发布某主题的消息后,客户端B通过订阅该主题的消息,即可获取该主题消息的所有数据。在本应用中,TPC为客户端。

消息中的数据与TPC的设备通道相连,实现服务器与TPC之间的数据交换。数据连接通道后,再经由通道连接到实时数据库中的数据对象(变量),从而被画面和策略所使用。

2、MQTT使用
QTT_STD驱动用于使客户端通过MQTT协议向特定服务器发布或订阅消息。要实现消息的发布和订阅,首先需要用户自行搭建好服务器,再将服务器的信息,输入MQTT_STD驱动属性配置界面。
本样例以MQTT_STD驱动与本地服务器的通讯为例进行介绍。
2.1 、驱动属性配置
随本文档打包的方案包中自带已配置好的本地服务器。服务器IP地址为127.0.0.1,端口号为1883,无用户名、用户密码等。稍后的设置需要使用到服务器IP地址和端口号。
使用McgsPro软件新建工程——设备窗口,添加MQTT_STD驱动,如下图所示。

进入“MQTT客户端属性配置”界面,步骤如下图所示。

在“MQTT客户端属性配置”界面的“一般属性”功能页,输入服务器IP、服务器端口号等信息,以实现客户端和服务器的连接。
本样例设置服务器IP为127.0.0.1,服务端口为1883,其他设置保持默认即可。本地IP和端口为空,则驱动不绑定本地IP地址和端口,否则驱动在连接服务之前会绑定本地IP地址。如果用户需要设置用户名和用户密码,需要勾选界面的“验证”复选框才会出现对应的设置界面。

2.3、消息发布/订阅
配置完客户端属性后,客户端TPC就可以和服务器正常连通了,但若想实现消息的发布和订阅,还需要进一步的配置。
1)配置发布、订阅选项卡
首先在MCGS中找到发布和订阅选项卡。
发布选项卡用于编辑发布消息的消息列表,用户可在此处对发布消息进行添加、编辑、删除、清空等操作。
需要添加发布的消息时,将鼠标置于列表视图上,使用右键打开快捷菜单,点击“添加发布主题”进入“发布消息”配置界面。配置完成后,也可通过右键菜单的“编辑发布主题”或直接双击需要修改的主题名进入主题设置界面。

订阅选项卡用于编辑订阅消息的消息列表,用户可在此处对订阅消息进行添加、编辑、删除、清空等操作。
需要添加订阅的消息时,将鼠标置于列表视图上,使用右键打开快捷菜单,点击“添加订阅主题”进入“订阅消息”配置界面。配置完成后,也可通过右键菜单的“编辑发布主题”或直接双击需要修改的主题名进入主题设置界面。

2)发布/订阅消息属性配置界面
在发布消息属性配置界面可以设置消息的主题名、主题别名、传输质量、消息格式、触发方式以及消息编辑等。
其中,“触发方式”只有发布消息配置界面才有,用于指定消息发布的触发方式,支持变数触发和所有报警触发两种方式。
本例设置主题名为“/test”,主题别名为“sample”,其他设置保持默认不变。

在订阅消息属性配置界面可以设置消息的主题名、主题别名、传输质量、消息格式以及消息编辑等。订阅消息没有触发方式选项。
本例设置主题名为“/test”,主题别名为“sample”,其他设置保持默认不变。

“主题名称说明”中的内容,不是必须出现在主题名称中的,仅需要时才使用。使用方法以“%1”为例,它代表客户端ID。将主题名称设置为“/%1/test”,而前面“mqtt客户端属性配置”页面中的客户端ID为“mqtt_client”,则相当于此时主题名称为“/mqtt_client/test”。
3)消息编辑
点击“消息编辑”按钮进入消息编辑界面。
消息编辑界面主要用于编辑消息的数据结构。消息节点可以为对象、数组或普通数据,普通数据可放置在对象或数组之下,对象或数组可以相互嵌套。此处使用到的数据格式为JSON,JSON简介可参考文档《JSON格式简介》(随本说明文档一起打包提供)。
数据结构的编辑方式为从“数据类型选择器”窗口将对应的数据类型拖拽到“消息定义窗口”的指定节点。

右击可对消息节点进行编辑(消息节点名称、类型等)、删除等操作。完成节点编辑后,“JSON格式浏览”窗口会显示当前结构对应的JSON格式。

同时,也可以单击“启用逆向”,将在外部文本编辑器中编辑好的的JSON格式内容粘贴到JSON格式浏览框中,单击逆向生成即可从JSON格式生成对应的消息结构。注意,生成的结构的节点数据类型可能与用户预期的格式存在差异。这时需要在消息定义窗口右键修改节点的数据类型。
设置订阅消息的方法和设置发布消息的方法相同。
设置完成后,选项卡列表中出现刚才定义的消息。点击保存按钮保存配置并退出配置界面。

由于本例中发布和订阅的主题及消息的设置相同,所以工程在本地模拟运行后,客户端将订阅到本机发布的消息。设置为相同仅为本例演示需求,用户使用时,根据自己的需求设置即可。
3)驱动通道
配置完消息的发布和订阅后,驱动根据客户的配置自动生成三种通道:订阅数据通道、发布数据通道和发布触发通道。

a.订阅数据通道
订阅数据通道的通道名以“subscribe”开头,主要用于客户订阅相关主题消息数据,用户通过关联数据变量接收数据包中的各个数据。
b.发布数据通道
发布数据通道的通道名以“publish”开头,主要用于客户关联要发布的数据变量,与要发布的消息数据相关。
c.发布触发通道
发布触发通道的通道名以“trigger”开头,主要用于客户发布消息使能。如果主题触发方式配置为变数触发,那么一旦触发通道所关联变量的值发生改变即可触发一条数据发布。如果主题触发方式配置为报警触发,那么触发通道所关联变量的值符合报警条件即可发布一条数据。
将通道连接变量以便使用。

4)组态画面
为了直观的观察到客户端发布和订阅的效果,我们组态一个简单的窗口画面来显示数据。
a.首先进入用户窗口。

b.然后组态一个简单的画面用以显示变量的值。

3、 MQTT调试
3.1、 数据的发布和订阅
想要测试工程数据的发布和订阅情况,可以使用随本说明文档一起打包提供的本地服务器进行测试。
1)启动本地服务器:进入随本文档一起打包提供的文件夹“MQTT本地服务器”,双击server.bat启动本地MQTT服务器。

2)启动本地客户端:模拟运行刚才组态好的McgsPro工程。

3)发布数据:在关联变量“p_df”的输入框中输入需要的数值,如66,然后点击按钮触发数据的发布。
4)订阅数据:由于本例中发布和订阅的主题及消息的设置相同,所以会订阅到本机发布的消息。此时,“s_df”输入框显示66,表示订阅成功。

3.2、 数据包查看
想要查看发布出来的消息数据包,可以使用mqtt.fx软件(随本说明文档一起打包提供)。
设置mqtt.fx参数:安装mqtt.fx软件,运行软件后设置服务器的IP地址和端口号等参数。本例仅需设置服务器IP地址为127.0.0.1,服务端口为1883即可。

2)连接服务器。

3)查看客户端发布的消息。订阅对应主题后,使用McgsPro模拟工程发布一条消息,就可以从mqtt.fx查看到客户端发布的消息。

4)使用mqtt.fx也可发布消息,可以将Subscribe收到的消息复制到Publish界面,修改对应数据的值后发布给模拟工程,模拟工程收到消息后也会更新数据显示。

能使用mqtt.fx软件订阅和发布模拟工程对应主题的消息,则表示工程组态正确。
3.3、 远端服务器验证
也可以使用mqtt.fx软件验证远端服务器是否部署正确,只需要将设置界面中的服务器通信参数设置为远端服务器的参数,即可对远端服务器进行发布和订阅测试。

2)开启订阅

3)发布消息

4)查看消息:查看是否订阅到发布的消息,若成功则证明服务器正常,不成功则检查服务器。

相关文章:
【触摸屏功能测试】MQTT_STD本地调试说明-测试记录
1、MQTT简介 MQTT是一种基于发布/订阅模式的“轻量级”通讯协议。它是针对受限的、低带宽的、高延迟的、网络不可靠的环境下的网络通讯设备设计的。 发布是指客户端将消息传递给服务器,订阅是指客户端接收服务器推送的消息。每个消息有一个主题,包含若干…...
六十分之十三——黎明前
目录一、目标二、计划三、完成情况四、提升改进(最少3点)五、意外之喜(最少2点)六、总结一、目标 明确可落地,对于自身执行完成需要一定的努力才可以完成的 1.8本技术管理书籍阅读(使用番茄、快速阅读、最后输出思维导图)2.吴军系列硅谷来信1听书、香帅的北大金融…...
【Call for papers】CRYPTO-2023(CCF-A/网络与信息安全/2023年2月16日截稿)
Crypto 2023 will take place in Santa Barbara, USA on August 19-24, 2023. Crypto 2023 is organized by the International Association for Cryptologic Research (IACR). The proceedings will be published by Springer in the LNCS series. 文章目录1.会议信息2.时间节…...
线程的信号量和互斥量
文章目录线程的信号量初始化信号量:sem_init减少信号量:sem_wait增加信号量:sem_post删除信号量:sem_destroy代码示例线程的互斥量初始化互斥量:pthread_mutex_init锁住互斥量:pthread_mutex_lock解锁互斥量…...
关于Linux,开源社区与国产化的本质区别
因为生产力驱动而非理想主义驱动。 开源运动的蓬勃发展来自于GNU(GNU is not unix),RichardMatthewStallman领导着一群黑客,带着对比尔盖茨的鄙视,制定了GPL协议,以后人人都能从伟大的前人身上学习到源代码的精髓,让软…...
Win11下Linux子系统迁移方法及报错解决
Win11 将Linux子系统从C盘迁移到其他盘Win11下Linux子系统迁移方法及报错解决1、下载LxRunOffline2、ERROR:directory is not empty 报错解决参考链接Win11下Linux子系统迁移方法及报错解决 C盘满了,Ubuntu子系统占了100多G怎么办?直接将子系…...
python维护的一些基础方法
1】通过命令行查看python安装库的基本信息 pip show numpy # 查看python中numpy库的安装版本信息 2】python 环境的开发与维护 python的开发与C\MATLAB等最大的不同就是,python中版本的更新不对历史版本负责,就是说你以历史版本开发的python程序&#…...
C语言 数组元素的指针
1.一个变量有地址,一个数组包含若干个元素,每个数组元素都在内存中占用存储单元,它们都有相应的地址。 2.指针变量既然可以指向变量,当然也可以指向数组元素(把某一元素的地址放入一个指针变量中)。 3.所谓…...
(C语言)指针进阶
问:1. ( ),[ ],->,,--,. ,*的操作符优先级是怎么样的?2. Solve the problems:只有一个常量字符串与一个字符指针,该怎么打印常量字符串所有内容…...
DS期末复习卷(三)
选择题 某数据结构的二元组形式表示为A(D,R),D{01,02,03,04,05,06,07,08,09},R{r},r{<01,02>,<01&a…...
Java链表模拟实现+LinkedList介绍
文章目录一、模拟实现单链表成员属性成员方法0,构造方法1,addFirst——头插2,addLast——尾插3,addIndex——在任意位置插入3.1,checkIndex——判断index合法性3.2,findPrevIndex——找到index-1位置的结点…...
MySQL——单表、多表查询
一、单表查询 素材: 表名:worker-- 表中字段均为中文,比如 部门号 工资 职工号 参加工作 等 CREATE TABLE worker ( 部门号 int(11) NOT NULL, 职工号 int(11) NOT NULL, 工作时间 date NOT NULL, 工资 float(8,2) NOT NULL, 政治面貌 varcha…...
关于表的操作 数据库(3)
目录 前期准备工作: 一、单表查询: 二、多表查询: 前期准备工作: 修改数据库的配置文件,,使其可以显示库名,其中//d代表当前使用的数据库名 注:vim /etc/my.cnf.d/mysql-server.c…...
C++:红黑树
红黑树的概念 红黑树是一棵二叉搜索树,但是红黑树通过增加一个存储位表示结点的颜色RED或BLACK。通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出2倍,因而是接近平衡的。 红黑树的性质 ⭐…...
每天一道算法题の中缀表达式
中缀表达式(、-、*、/) :中缀表达式是指操作符位于操作数之间的数学表达式。例如,在中缀表达式"2 3"中,操作符""位于操作数"2"和"3"之间。现给定一个中缀表达式,…...
Dar语法基础-泛型
泛型 如果查看基本数组类型 List 的 API 文档,您会发现该类型实际上是 List<E>。 <…> 表示法将 List 标记为泛型(或参数化)类型——具有正式类型参数的类型。 按照惯例,大多数类型变量的名称都是单字母的࿰…...
rt-thread------串口(一)配置
系列文章目录 rt-thread 之 fal移植 rt-thread 之 生成工程模板 文章目录系列文章目录前言一、串口的配置step1:通过串口名字找到串口句柄step2:配置串口参数step3:设置串口接收回调函数step4:打开串口设备前言 UART(…...
Android - 自动系统签名
一、系统签名 以下是两类应用开发场景: 普通应用开发:使用公司自定义 keystore 进行签名,如:微信、支付宝系统应用开发:使用 AOSP 系统签名或厂商自定义 keystore 进行签名,如:设置、录音 系…...
SSH 服务详解 (八)-- vscode 通过 SSH 远程连接 linux 服务器
vscode 通过 SSH 远程连接 linux 服务器 SSH服务详解(一)–Linux SSH 服务器与客户端的安装与启动 SSH服务详解(二)–使用私钥登录 SSH 服务器(免密登录) SSH 服务详解 (三)-- 使用 SSH 代理 SSH 服务详解 (四)-- 本地调用远程主机的命令 SSH 服务详解 (五)-- 远程文件拷贝…...
【PTA Advanced】1060 Are They Equal(C++)
目录 题目 Input Specification: Output Specification: Sample Input 1: Sample Output 1: Sample Input 2: Sample Output 2: 思路 C 知识点UP 代码 题目 If a machine can save only 3 significant digits, the float numbers 12300 and 12358.9 are considered …...
网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...
剑指offer20_链表中环的入口节点
链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...
【配置 YOLOX 用于按目录分类的图片数据集】
现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...
让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比
在机器学习的回归分析中,损失函数的选择对模型性能具有决定性影响。均方误差(MSE)作为经典的损失函数,在处理干净数据时表现优异,但在面对包含异常值的噪声数据时,其对大误差的二次惩罚机制往往导致模型参数…...
MySQL 8.0 事务全面讲解
以下是一个结合两次回答的 MySQL 8.0 事务全面讲解,涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容,并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念(ACID) 事务是…...
《信号与系统》第 6 章 信号与系统的时域和频域特性
目录 6.0 引言 6.1 傅里叶变换的模和相位表示 6.2 线性时不变系统频率响应的模和相位表示 6.2.1 线性与非线性相位 6.2.2 群时延 6.2.3 对数模和相位图 6.3 理想频率选择性滤波器的时域特性 6.4 非理想滤波器的时域和频域特性讨论 6.5 一阶与二阶连续时间系统 6.5.1 …...
