在工业互联网领域,设备数据的双向流动对于实现智能制造至关重要。NeuronEX 作为一款部署在工业边缘的实时数采和智能分析软件,不仅能够实现工业设备协议采集、边端数据过滤分析等功能,还提供了多种灵活的方式实现对设备的反向控制(反控)能力,满足不同工业场景的需求。本文将详细介绍 NeuronEX 支持的多种反控功能,帮助用户优化工业生产流程,进一步提升自动化水平。设备反控是指通过向下游自动化设备发送指令,控制设备行为或修改设备参数的过程。为了满足不同应用场景的需求,NeuronEX 提供了多种设备反控方式:
- MQTT 反控:通过 MQTT 协议向设备发送控制指令。
- 数据处理模块反控:利用 NeuronEX 的数据处理引擎实现智能反控。
- API 反控:通过 RESTful API 接口实现程序化控制。
仪表盘反控是最直观的人机交互方式,适合运维人员进行日常操作和临时调试。具体操作步骤如下:
1. 访问 NeuronEX 的 Web 界面,进入「数据采集 -> 数据监控」页面。
2. 选择相应的南向设备和组名称,找到具有写属性的点位,点击其末尾的「Write」按钮。
3. 在弹出的对话框中输入新值,点击「提交」完成设备反控。

MQTT 反控允许任何支持 MQTT 协议的客户端程序向 MQTT Broker 的对应主题发送指令数据。其中,NeuronEX 通过北向 MQTT 插件订阅该主题接收数据,并将控制指令发送给南向驱动节点实现设备控制。在用户选择 EMQX Platform 作为企业统一数据接入平台时,这种方式尤为合适。具体操作步骤如下:- 在 NeuronEX 配置北向 MQTT 插件,并设置「写请求主题」和「写响应主题」。
以下通过一个示例进行详细说明,示例中采用 EMQX 和 MQTTX 作为 MQTT 客户端。在 NeuronEX 中配置 ModbusTCP 南向驱动 modbus1,采集组名称为 group1,并添加好 3 个数据点位 tag1、tag2、tag3(支持可读可写),modbus1 驱动从 Modbus 模拟器读取数据。在 NeuronEX 中新建北向 MQTT 插件,在插件配置项中,可使用以下默认主题进行 MQTT 反控指令的接收:写请求主题:/neuron/HgihrB/write/req
写响应主题:/neuron/HgihrB/write/resp
由于我们使用 EMQ 提供的公共 MQTT 服务器 broker.emqx.io 作为 MQTT Broker,因此无需单独部署或配置 EMQX Platform。在 MQTTX 中添加一个新的连接,接入公共 MQTT 服务器 broker.emqx.io。查阅 NeuronEX MQTT 数据反控格式,了解到单个数据点的反控 JSON 消息格式如下:- uuid 为 NeuronEX 生成的唯一标识,用于接收反控响应时匹配响应数据。
- node 为南向驱动节点名称,在本例中为 modbus1。
- group 为南向驱动组名,在本例中为 group1。
- tag 为南向驱动点位名称,在本例中为 tag1。
{
"uuid": "cd32be1b-c8b1-3257-94af-77f847b1ed3e",
"node": "modbus1",
"group": "group1",
"tag": "tag1",
"value": 1234
}
关于 NeuronEX MQTT 数据反控格式,如需多点位写入或了解反控相应格式,请查阅 MQTT 数据上下行格式:https://docs.emqx.com/zh/neuronex/latest/configuration/north-apps/mqtt/api.html。在 MQTTX 中,填入上述 JSON 消息,并配置发送主题:点击发送按钮,即可向 MQTT Broker 发送反控指令。如需查看反控是否执行成功,可通过 MQTTX 的 + New Subscription
按钮。订阅 /neuron/HgihrB/write/resp
主题,查看响应数据。在 NeuronEX 的「数据采集 -> 数据监控」页面,可以看到点位 tag1 的值被更新为 1234,表示通过 MQTT 客户端 MQTTX 反控 NeuronEX 南向驱动节点 modbus1 中的点位 tag1 成功。- 只通过 MQTT 驱动进行设备控制,则无需将南向驱动采集组配置到 MQTT 驱动的订阅组。
- 如需要同时通过 MQTT 驱动上报南向驱动数据到 MQTT Broker,则需要将南向驱动采集组配置到 MQTT 驱动的订阅组。
NeuronEX 的数据处理模块提供了强大的数据分析和处理能力,可以根据业务逻辑自动触发设备反控,实现自动化控制和闭环反馈。以下通过一个示例进行详细说明,示例中我们使用 NeuronEX 南向驱动节点 modbus1 采集到的点位 tag1 的值,自动反控写入到南向驱动节点 modbus1 的点位 tag2。 数据处理模块反控示例
在「数据处理 -> 规则」页面,点击「新建规则」,进入该页面。点击「运行测试」按钮,即可看到数据处理模块每秒都会收到来自 modbus1 驱动的采集数据,这表示前序步骤配置成功,之后可以停止规则测试。在当前页面编辑 SQL 编辑器,输入以下 SQL 语句,这段 SQL 语句的作用是,将 tag1 的值重命名为 tag2, SQL 的数据结果为 {tag2: 1234}
。此处同样可以开启规则调试,进行规则 SQL 输出的测试查看。SELECT
values.tag1 as tag2
FROM
neuronStream
选择规则 action 为 Neuron 类型,并进行如下配置:表示将 SQL 输出的数据结果写入到南向驱动节点 modbus1 采集组 group1 的点位 tag2。回到「数据采集 -> 数据监控」页面,可以看到点位 tag2 的值被更新为 1234,表示通过数据处理模块反控 NeuronEX 南向驱动节点 modbus1 中的点位 tag2 成功。此时,我们通过点击点位 tag1 的 Write 按钮,写入新的值 5678,可以看到点位 tag2 的值也被更新为 5678,表示通过数据处理模块反控 NeuronEX 南向驱动节点 modbus1 中的点位 tag2 成功。通过 NeuronEX 数据处理模块反控,可以实现更复杂的控制逻辑,如根据不同的条件触发不同的反控操作,或者根据多个条件组合触发反控操作,可快速构建工业场景下智能化应用。NeuronEX 提供了完善的 RESTful API 接口,允许第三方应用程序通过 HTTP 协议实现设备反控。这种方式灵活性更高,适合与其他系统进行集成。通过调用 NeuronEX 的 RESTful API,可以实现读写设备点位数据。详情可参考 NeuronEX API 文档:https://docs.emqx.com/zh/neuronex/latest/api/api-docs.html以下通过一个示例进行详细说明,示例中采用了 POSTMAN 作为 API 测试工具,通过调用 NeuronEX 的 RESTful API 实现设备反控。 POSTMAN 反控示例
- 调用
localhost:8085/api/login
接口。 - 点击发送按钮,即可获取 NeuronEX 的 Token。
- 调用
localhost:8085/api/neuron/write
接口。 - 设置请求头为 Authorization,值为
Bearer ${Token}
。 - 设置请求体为 JSON 格式,输入反控的 JSON 消息体。
/api/neuron/write 接口的详细说明,请参考 NeuronEX API 文档。{
"node": "modbus1",
"group": "group1",
"tag": "tag1",
"value": 12
}
在 NeuronEX 的「数据采集 -> 数据监控」页面,可以看到点位 tag2 的值被更新为 12,表示通过 API 反控 NeuronEX 南向驱动节点 modbus1 中的点位 tag2 成功。NeuronEX 提供的多种反控功能,为工业设备的智能化控制提供了强大支持。无论是人工操作、远程控制还是自动化控制,都能通过 NeuronEX 反控功能的灵活组合实现,极大提升了工业生产的智能化水平和运营效率。基于本文介绍的四种反控方式,用户可以根据自己的实际需求选择最适合的反控方案,通过 NeuronEX 实现从边缘到云端的全方位设备管理和控制。