Remote HMI Tutorial

不用到现场,也能做出 Remote HMI

传统 Remote HMI 开发必须连接实机反复测试。有了 Falcon 的 log 回放,你可以把现场「带回办公室」,再交给 AI Agent 编写并验证 PySide6 界面,几个小时就能完成原本需要好几天的工作。

无需占用产线

开发与测试都在回放数据上进行,不影响生产排程。

真实数据驱动

回放的是现场真实通信,界面行为与上线后一致。

AI 加速开发

JSON-RPC 格式清晰,AI 能准确理解点位并生成 PySide6 代码。

Python 生态

PySide6 跨平台、许可友好,便于扩展数据分析与 AI 功能。

Log → Replay → PySide6 + AI

五个步骤完成 Remote HMI

以下以一条冲压产线为例,演示从录制到上线的完整流程。

  1. 01

    在现场录制通信 log

    将 Falcon 串接在 PLC 与 HMI 之间,调用 log.record 录制一个班次的实际操作。所有点位读写都会以 JSON-RPC 格式保存。

  2. 02

    在办公室回放

    把 log 带回办公室,调用 log.replay。Falcon 会按原始时序把通信重新发布到 MQTT,就像产线正在运行。

    JSON-RPC:回放 logjson
    // Topic: falcon/line-01/rpc/req
    {
      "jsonrpc": "2.0",
      "id": "replay-01",
      "method": "log.replay",
      "params": { "log": "2026-11-03_line01_shift-a", "speed": 1.0, "loop": true }
    }
  3. 03

    交给 AI Agent 开发

    把需求交给 AI coding agent。Agent 会自己订阅回放数据、整理点位、编写 PySide6 代码并运行测试,出错就自动修正。

    给 AI Agent 的任务示例text
    Build a PySide6 window for "Line 01 Press".
    Data arrives as JSON-RPC notifications on MQTT topic
    falcon/line-01/event, method "traffic.observed", params.tags.
    - Show D100 (pressure, bar) as a large gauge-style number
    - Show M20 (motor running) as a green/grey status lamp
    - "Set pressure" spin box sends JSON-RPC "tag.write" for D100
      to falcon/line-01/rpc/req
    Use paho-mqtt in a QThread and Qt signals to update the UI.
  4. 04

    对照回放数据验证

    运行生成的程序,界面会实时反映回放数据。调整布局、报警与数值格式,直到符合操作人员需求。

    Python:PySide6 Remote HMI 示例python
    import json, sys, uuid
    import paho.mqtt.client as mqtt
    from PySide6.QtCore import QObject, Signal
    from PySide6.QtWidgets import (QApplication, QLabel, QPushButton,
                                   QSpinBox, QVBoxLayout, QWidget)
    
    GW = "falcon/line-01"
    
    class Bus(QObject):
        tags = Signal(dict)
    
        def __init__(self):
            super().__init__()
            self.c = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2)
            self.c.on_message = lambda c, u, m: self.tags.emit(
                json.loads(m.payload)["params"]["tags"])
            self.c.connect("broker.local", 1883)
            self.c.subscribe(f"{GW}/event")
            self.c.loop_start()
    
        def write(self, tag, value):
            self.c.publish(f"{GW}/rpc/req", json.dumps({
                "jsonrpc": "2.0", "id": str(uuid.uuid4()),
                "method": "tag.write", "params": {"tag": tag, "value": value}}))
    
    app = QApplication(sys.argv)
    bus, win = Bus(), QWidget()
    pressure, motor = QLabel("--"), QLabel("MOTOR")
    setpoint, apply = QSpinBox(maximum=5000), QPushButton("Set pressure")
    apply.clicked.connect(lambda: bus.write("D100", setpoint.value()))
    
    def update(tags):
        if "D100" in tags: pressure.setText(f"{tags['D100']} bar")
        if "M20" in tags:
            motor.setStyleSheet(f"background:{'#2e7d32' if tags['M20'] else '#555'}")
    
    bus.tags.connect(update)
    layout = QVBoxLayout(win)
    for w in (pressure, motor, setpoint, apply): layout.addWidget(w)
    win.setWindowTitle("Line 01 — Remote HMI"); win.show()
    sys.exit(app.exec())
  5. 05

    切换到实机上线

    把 MQTT 连接改为现场 Broker,Remote HMI 即可监看真实产线;开启授权后,也能通过 tag.write 进行控制介入。

示例中的 Topic、方法与点位名称为示意,请按实际产品文档与现场点位调整。

AI Agent · Development

让 AI Agent 帮你写 Remote HMI

AI coding agent(例如 Claude Code)不只会生成代码,还能自己运行、自己验证、自己修正。Falcon 的 JSON-RPC 消息与 log 回放,正好给 agent 一个不用接触实机就能反复测试的环境。

了解 AI 如何协助 OT 人员开发程序 →

  1. 读取

    Agent 订阅回放中的 MQTT Topic,从 JSON-RPC 消息整理出点位列表与数据类型。

  2. 编写

    按你的需求生成 PySide6 界面与 MQTT 连接代码。

  3. 验证

    调用 log.replay 重现现场数据,检查界面数值、指示灯与报警是否正确。

  4. 修正

    发现问题就修改代码并重新测试,直到检查全部通过才交给你。

ai-agent · remote-hmi

> 按 line-01 的回放 log,做一个冲压机 Remote HMI

● 读取 falcon/line-01/event:找到 D100、D120、M20 等 12 个点位

● 生成 remote_hmi.py(PySide6 + paho-mqtt)

● 执行 log.replay 验证:M20 指示灯正确,D100 数值偏差

↻ 修正:D100 需除以 10 换算为 bar,重新测试

✓ 完成,12 个点位检查全部通过

为什么 Falcon 特别适合 AI Agent

消息自带语义

tag.read、log.replay 这类方法名称,agent 一看就懂,不用猜私有协议。

可重复的测试数据

同一份 log 可以无限次回放,agent 能自己确认修改是否生效。

标准库

MQTT 与 JSON 是 agent 最熟悉的技术,生成的代码可靠性高。

不接触实机

开发与测试都在回放数据上进行,agent 的任何错误都不会影响产线。

让你的产线今天就开始说 MQTT

告诉我们你的 PLC / HMI 型号与现场需求,销售团队会在一个工作日内回复导入评估与报价。

联系销售询价