ARMxy工控机使用Node-Red教程:实现Modbus转MQTT协议二次开发(8)

news2024/11/15 13:04:16
  1. Modbus/TCP与MQTT通信案例

7.1 案例说明

案例功能:使用node-red工具通过Modbus/RTU协议采集M160T IO模块数据,再经过MQTT协议的转换上传到上位机Ubuntu。基于 node-red 部署程序,实现获取 M160T IO 模块数据上传到上位机。

图 98

7.2 案例测试

本案例使用node-red工具、M160T IO模块和上位机Ubuntu通信。请通过网线将设备ETH1、上位机和M160T模块连接至公网,确保可正常访问互联网。

下表提供了可用的在线公共 MQTT 服务器,可根据需要自行切换。

表 1

服务器名称

Broker 地址

TCP 端口

WebSocket

HiveMQ

broker.hivemq.com

1883

8000

Mosquitto

test.mosquitto.org

1883

80

Eclipse

mqtt.eclipseprojects.io

1883

80/443

EMQ X(国内)

Broker-cn.e mqx.io

1883

8083/8084

请按下图所示使用网线连接M160T ETHERNET网口,并将电源连接到DC/IN接口。

图 99

7.2.1 获取从机IP地址及端口号

打开“ MxxxT_E配置软件V1.5.1_t ”软件,执行以下操作查询到M160T设备的IP地址和配置端口号。本次查询到的 IP 地址是 192.168.1.4,端口号配置为502。我司提供的“ MxxxT_E配置软件V1.5.1_t ”软件位于产品资料“ 程序相关\Tools\Windows ”目录下。

图 100

101

找到并双击M160T设备。

图 102

设备默认密码为1234。

图 103

弹出窗口点击确定。

图 104

点击读取配置选项,获取当前设备信息。

图 105

弹出窗口,点击确定。

图 106

选取网络配置选项。

图 107

获取到当前设备IP地址为192.168.1.4,将监听端口配置为502,连接模式选择Modbus TCP模式。

图 108

点击写入配置选项,将配置信息写入设备。

图 109

弹出窗口,提示数据保存成功。

图 110

点击重启设备,重新载入配置。

图 111

图 112

7.2.2 Mosquitto 工具安装

Mosquitto 是一款开源的 MQTT 消息代理(服务器)软件,提供轻量级的、支持可发布/可订阅的的消息推送模式。本文node_mqtt.json案例采用node-red与 Mosquitto 工具演示 MQTT 通信协议的通信功能。由于上位机 Ubuntu系统作为通信对象,因此需在 Ubuntu 终端执行如下命令安装 Mosquitto 工具。

Host# sudo apt-get install mosquitto-clients

图 113

7.2.3 设备发布/上位机订阅

设备启动,执行node-red程序,将上位机登录到node-red部署系统。

使用的依赖模块有:“ node-red-dashboard ”、“ node-red-contrib-modbus ”以及自带的mqtt模块。请参考上方“安装依赖模块”步骤安装上相应依赖模块。

在上位机执行如下命令,使用mosquitto_sub工具订阅MQTT主题。

Host# mosquitto_sub -h broker.hivemq.com -p 1883 -t modbus/data

参数解析:

-h: 指定 MQTT 服务器;

-p: 指定 MQTT 服务器 TCP 端口;

-t: 定义 MQTT 主题,可自定义命名。

图 114

为便于测试,我司提供的经验证的Modbus/TCP与MQTT通信协议为案例“ node-red\node_red_mqtt\ ”目录下的 modbus_mqtt.json 文件。请参考上方“导入节点文件”步骤导入对应节点文件。

导入文件成功后,点击右上角部署按钮,启动程序。

图 115

部署成功后,node-red将通过modbus/tcp协议采集M160T IO模块数据上传到MQTT服务器,上位机将从 MQTT 服务器接收到对应的消息。

图 116

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1982294.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TeleVis:基于NLP的新冠新闻舆情可视化项目

关联比赛: 疫情数据可视化公益行动 一、项目名称 TeleVis:基于NLP的新冠新闻舆情可视化项目 二、团队信息 团队名称:TeleVis 单 位:金融壹账通大数据研究院 成 员:杨镭、郭凌峰、王天宇、黄北辰、齐婧含 三、项目介绍 政企机构的…

AST 基础

目录 AST 的基本结构安装 babel 库babel 中的组件parse 与 generatorparsegenerator完整代码 traverse 与 visitortraversevisitor 的定义方式path 对象中的 traverse types判断节点类型生成新的节点valueToNode(方便的生成字面量) path 对象(重点)path …

C++——多态经典案例(三)计算器

案例:使用多态实现一个简单的计算器,计算两个数的加减乘除结果 分析:定义一个抽象类AbstractCalc ,其内部定义一个纯虚函数getResult,用于得到计算结果 定义加减乘除四个类,分别继承这个抽象类AbstractCal…

prometheus 简单监控etcd

确保etcd已经开启/metrics如下: curl --cert /etc/kubernetes/pki/etcd/server.crt --key /etc/kubernetes/pki/etcd/server.key https://192.168.0.54:2379/metrics -k | more创建证书的secret资源 kubectl -n istio-system create secret generic etcd-certs --f…

C++中的string的介绍(从string到STL)

C中的string的介绍 文章目录 C中的string的介绍1. 从string到STL2. string 的构造函数3. string 的iterator(迭代器)4. string 中的元素访问5. string 中容量相关6. string 中的插入删除7. string 中的查找8. string 的剩余函数 1. 从string到STL 严格来…

crm客户管理系统有哪些?盘点大家使用最广泛的15款

将对比的客户管理CRM系统包括:纷享销客、Zoho CRM、销售易、用友CRM、Salesforce、Microsoft Dynamics 365、销帮帮CRM、HubSpot、Oracle CRM、悟空CRM、神州云动CRM、红圈CRM、SAP CRM、Odoo、OroCRM。 一个合适的CRM系统可以极大地提高你的销售效率和客户满意度&a…

C语言——预处理和指针

C语言——预处理和指针 预处理宏宏定义宏的作用域带参的宏 文件包含条件编译 指针指针的概念指针的定义 预处理 编程的流程分为:编辑、编译、运行、调试四个阶段; 预处理属于编译阶段,编译过程又可以分为:预处理、编译、汇编、链…

新160个crackme - 022-CM_2

运行分析 需破解Name和Serial,输入的小写字母都会变为大写字母 PE分析 C程序,32位,无壳 静态分析&动态调试 发现关键字符串 ida动态调试,发现Name和Serial长度需要大于5,且Serial前6位明文爆出,6287-A …

YOLOv8新版本支持实时检测Transformer(RT-DETR)、SAM分割一切

原文:YOLOv8新版本支持实时检测Transformer(RT-DETR)、SAM分割一切 - 知乎 (zhihu.com) 一、SAM 分割任何模型 (Segment Anything Model - SAM) 是一种突破性的图像分割模型,可实现具有实时性能的快速分割。 项目地址 https://github.com/facebookresearch/segment-…

第 8 章 虚拟文件系统(5)

目录 8.4 处理VFS对象 8.4.1 文件系统操作 本专栏文章将有70篇左右,欢迎关注,查看后续文章。 8.4 处理VFS对象 8.4.1 文件系统操作 文件系统可以编译为模块。 使用文件系统前需先注册。 1. 注册文件系统 int register_filesystem( struct file_…

Scrapy爬虫框架介绍、创建Scrapy项目

Scrapy官网:https://scrapy.org/ 什么是Scrapy Scrapy 是一个基于 Python 的快速的高级网页抓取和网页爬取框架,用于抓取网站并从其页面中提取结构化数据。它可用于多种用途,从数据挖掘到监控和自动化测试。 Scrapy核心组件 1. Scrapy Engin…

【Linux学习】文件系统 - 第二篇

🍑个人主页:Jupiter. 🚀 所属专栏:Linux从入门到进阶 欢迎大家点赞收藏评论😊 文章目录 💡文件操作的系统接口🍑open系统调用⚡close系统调用🦈write系统调用🦅read系统调…

在开关电源转换器中充分利用碳化硅器件的性能优势

在过去的几十年中,半导体行业已经采取了许多措施来改善基于硅 MOSFET (parasitic parameters),以满足开关转换器(开关电源)设计人员的需求。行业效率標準以及市场对效率技术需求的双重作用,导致了对于可用于构建更高效…

Mysql中事务的读一致性问题,以及如何用MVCC解决

事务四大特性的实现: 原子性事务具有回滚的能力,InnoDB引擎使用undo log日志表来进行回滚操作。 持久性InnoDB引擎使用redo log日志表来保证数据的持久性。 事务的隔离性产生的问题: 脏读:一个事务读取到了另一个事务未提交的数…

Qt WebEngine播放DRM音视频

Qt WebEngine播放DRM受保护视频,前提是Qt WebEngine开启音视频编码器,能够支持网页上普通视频的播放。开启音视频编码器需要自己编译源码,这里不做介绍。 什么是DRM音视频 DRM视频是指数字版权管理(Digital Rights Management&a…

70.加载功能菜单功能设计

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于:易道云信息技术研究院 上一个内容:69.搭建分析工具界面 以 69.搭建分析工具界面 它的代码为基础进行修改 效果图&#xf…

gif压缩大小但不改变画质?为网站性能加速的必备知识

在互联网时代,GIF 动图以其生动的表现力和视觉效果,在社交媒体、网站设计、数字营销等领域被广泛应用。然而,随之而来的一个问题是,GIF 文件的体积往往较大,这可能会导致网站加载速度变慢,影响用户体验。因…

练习实践-基础设施:搭建时钟同步服务器-基于chrony软件在centos7系统上的实现

参考来源:B站视频:up主:林哥讲运维 【一分钟学会:使用 chrony 部署企业 NTP 时间服务器】 https://chrony-project.org/comparison.html --chrony组织的比较 https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/…

Milvus 向量数据库进阶系列丨构建 RAG 多租户/多用户系统 (上)

本系列文章介绍 在和社区小伙伴们交流的过程中,我们发现大家最关心的问题从来不是某个具体的功能如何使用,而是面对一个具体的实战场景时,如何选择合适的向量数据库解决方案或最优的功能组合。在 “Milvus 向量数据库进阶” 这个系列文章中&…

基于全切片图像的结直肠癌肿瘤浸润性淋巴细胞和肿瘤-基质比率自动量化技术|文献精析·24-08-05

小罗碎碎念 今天分享的这一篇文章是一篇20年发表的文章,研究的是免疫组化相关的病理AI课题,当时用的是还是支持向量机和随机森林,在展望的部分提出CNN是未来的发展趋势。但是根据时间节点来看,当时Transformer已经发表了&#xf…