解析 ARMxy 嵌入式工业计算机中 ModbusTCP 与 MQTT 通信操作
<div><strong>引言</strong></div><div>在工业自动化领域,实时数据采集对于优化生产流程和提高设备效率至关重要。Modbus RTU作为一种广泛应用的工业通信协议,因其简单可靠而备受青睐。Node-Red作为一款强大的可视化编程工具,能够极大地简化数据流的创建与管理,使其成为实现设备间互联互通的理想选择。</div>
<div>本文将详细介绍如何在钡铼技术的ARMxy工业计算机上使用Node-Red工具,通过Modbus RTU协议来采集M160T IO模块的数据。通过具体的步骤演示,我们将展示从配置环境到成功读取IO模块信息的全过程。无论您是刚刚接触工业物联网的新手,还是寻求提升现有系统功能的专业技术人员,本文都将为您提供实用的操作指南,帮助您快速掌握这一关键技术的应用技巧<strong>。</strong></div>
<div>1 案例说明</div>
<div>案例功能:使用 node-red 工具通过 Modbus/RTU 协议采集 M160T IO 模块数据,再经过 MQTT 协议的转换上传到上位机Ubuntu。基于 node-red 部署程序,实现获取 M160T IO 模块数据上传到上位机。</div>
<div></div>
<div>图 1</div>
<div>7.2 案例测试</div>
<div>本案例使用 node-red 工具、M160T IO 模块和上位机 Ubuntu 通信。请通过网线将设备 ETH1、上位机和 M160T 模块 连接至公网,确保可正常访问互联网。</div>
<div>下表提供了可用的在线公共 MQTT 服务器,可根据需要自行切换。</div>
<div>表 1</div>
<table border="1">
<tbody>
<tr>
<td>服务器名称</td>
<td>Broker地址</td>
<td>TCOPP端口</td>
<td>web socket</td>
</tr>
<tr>
<td>HiveMQ</td>
<td>broker.hivemq.com</td>
<td>1883</td>
<td>8000</td>
</tr>
<tr>
<td>Mosquitto</td>
<td>test.mosquitto.org</td>
<td>1883</td>
<td>80</td>
</tr>
<tr>
<td>Eclipse</td>
<td>mqtt.eclipseprojects.io</td>
<td>1883</td>
<td>80/443</td>
</tr>
<tr>
<td>EMQX(国内)</td>
<td>Broker-cn.e mqx.io</td>
<td>1883</td>
<td>8083/8084</td>
</tr>
</tbody>
</table>
<div>请按下图所示使用网线连接 M160T ETHERNET 网口,并将电源连接到 DC/IN 接口。</div>
<div></div>
<div><strong>图</strong> <strong>2</strong></div>
<div>1)获取从机 IP 地址及端口号</div>
<div>打开“ MxxxT_E 配置软件 V1.5.1_t ”软件,执行以下操作查询到 M160T 设备的 IP 地址和配置端口号。本次查询 到的 IP 地址是 192.168.1.4,端口号配置为 502。我司提供的“ MxxxT_E 配置软件 V1.5.1_t ”软件位于产品资料 “ 程序相关\Tools\Windows ”目录下。</div>
<div></div>
<div><strong>图</strong> <strong>3</strong></div>
<div></div>
<div><strong>图</strong> <strong>4</strong></div>
<div>找到并双击 M160T 设备。</div>
<div></div>
<div><strong>图</strong> <strong>5</strong></div>
<div>设备默认密码为 1234。</div>
<div></div>
<div><strong>图</strong> <strong>6</strong></div>
<div>弹出窗口点击确定。</div>
<div></div>
<div><strong>图</strong> <strong>7</strong></div>
<div>点击读取配置选项,获取当前设备信息。</div>
<div></div>
<div><strong>图</strong> <strong>8</strong></div>
<div>弹出窗口,点击确定。</div>
<div></div>
<div><strong>图</strong> 9</div>
<div>选取网络配置选项。</div>
<div></div>
<div><strong>图</strong> <strong>10</strong></div>
<div>获取到当前设备 IP 地址为 192.168.1.4,将监听端口配置为 502,连接模式选择Modbus TCP 模式。</div>
<div></div>
<div><strong>图</strong> <strong>11</strong></div>
<div>点击写入配置选项,将配置信息写入设备。</div>
<div></div>
<div><strong>图</strong> <strong>1</strong><strong>2</strong></div>
<div>弹出窗口,提示数据保存成功。</div>
<div></div>
<div><strong>图</strong> <strong>13</strong></div>
<div>点击重启设备,重新载入配置。</div>
<div></div>
<div><strong>图</strong> <strong>1</strong><strong>4</strong></div>
<div></div>
<div><strong>图</strong> <strong>15</strong></div>
<div>2) <strong>Mosquitto</strong><strong>工具安装</strong></div>
<div>Mosquitto 是一款开源的 MQTT 消息代理(服务器)软件,提供轻量级的、支持可发布/可订阅的的消息推送模 式。本文 node_mqtt.json 案例采用 node-red 与 Mosquitto 工具演示 MQTT 通信协议的通信功能。由于上位机 Ubun tu 系统作为通信对象,因此需在 Ubuntu 终端执行如下命令安装 Mosquitto 工具。</div>
<div><strong>Host#</strong> sudo apt-get install mosquitto-clients</div>
<div></div>
<div><strong>图</strong> <strong>1</strong><strong>4</strong></div>
<div>3)<strong>设备发布/上位机订阅</strong></div>
<div>设备启动,执行 node-red 程序,将上位机登录到 node-red 部署系统。</div>
<div>使用的依赖模块有:“ node-red-dashboard ”、“ node-red-contrib-modbus ”以及自带的 mqtt 模块。请参考上方“安装依赖模块 ”步骤安装上相应依赖模块。</div>
<div>在上位机执行如下命令,使用mosquitto_sub 工具订阅 MQTT 主题。</div>
<div><strong>Host#</strong> mosquitto_sub -h broker.hivemq.com -p 1883 -t modbus/data</div>
<div>参数解析:</div>
<div>-h: 指定 MQTT 服务器;</div>
<div>-p: 指定 MQTT 服务器 TCP 端口;</div>
<div>-t: 定义 MQTT 主题,可自定义命名。</div>
<div></div>
<div><strong>图</strong> <strong>1</strong><strong>5</strong></div>
<div>为便于测试,我司提供的经验证的 Modbus/TCP 与 MQTT 通信协议为案例“ node-red\node_red_mqtt\ ”目录下的 modbus_mqtt.json 文件。请参考上方“导入节点文件 ”步骤导入对应节点文件。</div>
<div>导入文件成功后,点击右上角部署按钮,启动程序。</div>
<div></div>
<div><strong>图</strong> <strong>1</strong><strong>6</strong></div>
<div>部署成功后,node-red 将通过 modbus/tcp 协议采集 M160T IO 模块数据上传到 MQTT 服务器,上位机将从 MQTT 服务器接收到对应的消息。</div>
<div></div>
<div><strong>图</strong> <strong>1</strong><strong>7</strong></div>
<div><strong>引言</strong></div>
<div>在工业自动化领域,实时数据采集对于优化生产流程和提高设备效率至关重要。Modbus RTU作为一种广泛应用的工业通信协议,因其简单可靠而备受青睐。Node-Red作为一款强大的可视化编程工具,能够极大地简化数据流的创建与管理,使其成为实现设备间互联互通的理想选择。</div>
<div>本文将详细介绍如何在钡铼技术的ARMxy工业计算机上使用Node-Red工具,通过Modbus RTU协议来采集M160T IO模块的数据。通过具体的步骤演示,我们将展示从配置环境到成功读取IO模块信息的全过程。无论您是刚刚接触工业物联网的新手,还是寻求提升现有系统功能的专业技术人员,本文都将为您提供实用的操作指南,帮助您快速掌握这一关键技术的应用技巧<strong>。</strong></div>
<div>1 案例说明</div>
<div>案例功能:使用 node-red 工具通过 Modbus/RTU 协议采集 M160T IO 模块数据,再经过 MQTT 协议的转换上传到上位机Ubuntu。基于 node-red 部署程序,实现获取 M160T IO 模块数据上传到上位机。</div>
<div></div>
<div>图 1</div>
<div>7.2 案例测试</div>
<div>本案例使用 node-red 工具、M160T IO 模块和上位机 Ubuntu 通信。请通过网线将设备 ETH1、上位机和 M160T 模块 连接至公网,确保可正常访问互联网。</div>
<div>下表提供了可用的在线公共 MQTT 服务器,可根据需要自行切换。</div>
<div>表 1</div>
<table border="1">
<tbody>
<tr>
<td>服务器名称</td>
<td>Broker地址</td>
<td>TCOPP端口</td>
<td>web socket</td>
</tr>
<tr>
<td>HiveMQ</td>
<td>broker.hivemq.com</td>
<td>1883</td>
<td>8000</td>
</tr>
<tr>
<td>Mosquitto</td>
<td>test.mosquitto.org</td>
<td>1883</td>
<td>80</td>
</tr>
<tr>
<td>Eclipse</td>
<td>mqtt.eclipseprojects.io</td>
<td>1883</td>
<td>80/443</td>
</tr>
<tr>
<td>EMQX(国内)</td>
<td>Broker-cn.e mqx.io</td>
<td>1883</td>
<td>8083/8084</td>
</tr>
</tbody>
</table>
<div>请按下图所示使用网线连接 M160T ETHERNET 网口,并将电源连接到 DC/IN 接口。</div>
<div></div>
<div><strong>图</strong> <strong>2</strong></div>
<div>1)获取从机 IP 地址及端口号</div>
<div>打开“ MxxxT_E 配置软件 V1.5.1_t ”软件,执行以下操作查询到 M160T 设备的 IP 地址和配置端口号。本次查询 到的 IP 地址是 192.168.1.4,端口号配置为 502。我司提供的“ MxxxT_E 配置软件 V1.5.1_t ”软件位于产品资料 “ 程序相关\Tools\Windows ”目录下。</div>
<div></div>
<div><strong>图</strong> <strong>3</strong></div>
<div></div>
<div><strong>图</strong> <strong>4</strong></div>
<div>找到并双击 M160T 设备。</div>
<div></div>
<div><strong>图</strong> <strong>5</strong></div>
<div>设备默认密码为 1234。</div>
<div></div>
<div><strong>图</strong> <strong>6</strong></div>
<div>弹出窗口点击确定。</div>
<div></div>
<div><strong>图</strong> <strong>7</strong></div>
<div>点击读取配置选项,获取当前设备信息。</div>
<div></div>
<div><strong>图</strong> <strong>8</strong></div>
<div>弹出窗口,点击确定。</div>
<div></div>
<div><strong>图</strong> 9</div>
<div>选取网络配置选项。</div>
<div></div>
<div><strong>图</strong> <strong>10</strong></div>
<div>获取到当前设备 IP 地址为 192.168.1.4,将监听端口配置为 502,连接模式选择Modbus TCP 模式。</div>
<div></div>
<div><strong>图</strong> <strong>11</strong></div>
<div>点击写入配置选项,将配置信息写入设备。</div>
<div></div>
<div><strong>图</strong> <strong>1</strong><strong>2</strong></div>
<div>弹出窗口,提示数据保存成功。</div>
<div></div>
<div><strong>图</strong> <strong>13</strong></div>
<div>点击重启设备,重新载入配置。</div>
<div></div>
<div><strong>图</strong> <strong>1</strong><strong>4</strong></div>
<div></div>
<div><strong>图</strong> <strong>15</strong></div>
<div>2) <strong>Mosquitto</strong><strong>工具安装</strong></div>
<div>Mosquitto 是一款开源的 MQTT 消息代理(服务器)软件,提供轻量级的、支持可发布/可订阅的的消息推送模 式。本文 node_mqtt.json 案例采用 node-red 与 Mosquitto 工具演示 MQTT 通信协议的通信功能。由于上位机 Ubun tu 系统作为通信对象,因此需在 Ubuntu 终端执行如下命令安装 Mosquitto 工具。</div>
<div><strong>Host#</strong> sudo apt-get install mosquitto-clients</div>
<div></div>
<div><strong>图</strong> <strong>1</strong><strong>4</strong></div>
<div>3)<strong>设备发布/上位机订阅</strong></div>
<div>设备启动,执行 node-red 程序,将上位机登录到 node-red 部署系统。</div>
<div>使用的依赖模块有:“ node-red-dashboard ”、“ node-red-contrib-modbus ”以及自带的 mqtt 模块。请参考上方“安装依赖模块 ”步骤安装上相应依赖模块。</div>
<div>在上位机执行如下命令,使用mosquitto_sub 工具订阅 MQTT 主题。</div>
<div><strong>Host#</strong> mosquitto_sub -h broker.hivemq.com -p 1883 -t modbus/data</div>
<div>参数解析:</div>
<div>-h: 指定 MQTT 服务器;</div>
<div>-p: 指定 MQTT 服务器 TCP 端口;</div>
<div>-t: 定义 MQTT 主题,可自定义命名。</div>
<div></div>
<div><strong>图</strong> <strong>1</strong><strong>5</strong></div>
<div>为便于测试,我司提供的经验证的 Modbus/TCP 与 MQTT 通信协议为案例“ node-red\node_red_mqtt\ ”目录下的 modbus_mqtt.json 文件。请参考上方“导入节点文件 ”步骤导入对应节点文件。</div>
<div>导入文件成功后,点击右上角部署按钮,启动程序。</div>
<div></div>
<div><strong>图</strong> <strong>1</strong><strong>6</strong></div>
<div>部署成功后,node-red 将通过 modbus/tcp 协议采集 M160T IO 模块数据上传到 MQTT 服务器,上位机将从 MQTT 服务器接收到对应的消息。</div>
<div></div>
<div><strong>图</strong> <strong>1</strong><strong>7</strong></div>
<p><!--importdoc--></p>
页:
[1]