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 型號與現場需求,業務團隊會在一個工作天內回覆導入評估與報價。

聯絡業務詢價