QEC MQTT Publish Control — HMIから設定してメッセージをパブリッシュ

QEC MQTT Publish Controlは、QECプラットフォーム(86Duino + 86HMI)上で動作するグラフィカルなMQTTパブリッシュツールです。電源投入後、タッチスクリーン上でLocal IP、Broker IP、Client ID、Topic、Payloadを直接編集でき、コードを再編集することなく任意のMQTT Brokerへメッセージをパブリッシュできます。

MQTT-banner-qec

1. 概要

  • タッチスクリーンから Local IP、Broker IP、Client ID を再設定可能
  • 任意の Topic / Payload をワンタップでパブリッシュし、ライブプレビューと視覚的なステータス表示に対応
  • 一時的な Broker 接続切れから自動復旧。次回のパブリッシュ時に再接続し、デバイス情報を再通知

2. 5つのデモで実際のベンチテスト手順を紹介

2.1 Demo 1 — 電源投入後に自動接続し、数秒でデバイスを識別

まず、ユニットの電源を入れます。次に、 setup() がデフォルトの Local IP、Broker IP、Client ID を読み込み、 Ethernet.begin()を呼び出します。そして最後に実行されるのが mqttConnectOnce(true).
数秒以内に、HMI ヘッダーの MQTT ステータスバッジが緑色に変わり、MQTT Connected と表示されます。同時に、デバイスは QEC/test/device に Client ID と IP を含む retained メッセージをパブリッシュします。これにより、サブスクライバーはポーリングを行わなくても、デバイスがオンラインになったことを確認できます。

mqtt-demo-1

efore / After: 起動時、HMI ヘッダーには黄色の MQTT Checking…. が表示されます。Ethernet 接続が確立し、Broker とのハンドシェイクに成功すると、表示は緑色の MQTT Connectedに切り替わります。同時に、 clientId=QEC_01, ip=192.168.2.230 を含む retained デバイスメッセージがパブリッシュされます。送信先の Topic は QEC/test/device.

2.2 Demo 2 — 再書き込みなしで MQTT Broker を切り替え

Broker IP の各オクテットをタップし、新しいアドレスを入力します。必要に応じて、Local IP と Client ID も編集できます。最後にタップするボタンは APPLYapplyNetworkSettings() は現在のセッションを切断し、変更後の Local IP(変更されている場合)を使用して Ethernet.begin() を再実行します。その後、 PubSubClient の接続先を新しい Broker に変更し、再接続してデバイス情報を再度パブリッシュします。 

mqtt-demo-2

Before / After: タッチスクリーン上で Broker IP 192.168.2.145 を別のサブネットのアドレスに変更し、 APPLY をタップします。MQTT ステータスバッジは一時的に Checking に戻り、その後、新しい Broker への接続に成功すると再び緑色に変わります。

2.3 Demo 3 — ワンタップで任意の Payload を送信

ネットワーク接続が確立された状態で、Topic フィールドをタップし、 factory/line1/eventのような Topic を入力します。次に Payload をタップし、任意の文字列を入力します。入力中は、Preview パネルに Topic と Payload の内容がリアルタイムで反映されます。最後にタップするボタンは PUBLISHpublishSimpleMessage() はテキストエリアの内容を読み取り、Topic または Payload が空の場合は事前に送信を停止します。内容が有効な場合は client.publish()を呼び出し、結果を Status パネルに表示します。表示される結果は Publish Success または Publish Failed.

mqtt-demo-3

Before / After: Topic と Payload のフィールドに入力すると、Preview パネルにも同じ内容が表示されます。 PUBLISHをタップすると、Status パネルに Publish Successと表示されます。その後、その Topic を購読している任意のサブスクライバーにメッセージが届きます。

2.4 Demo 4 — 一時的なネットワーク切断後も自動復旧

Broker との接続が切れた場合、またはケーブルを再接続した場合、次回の PUBLISH 時に !client.connected()を検知します。Status パネルには MQTT Reconnecting… と表示され、 mqttConnectOnce(true) を呼び出してセッションを復旧します。その後、ユーザーの Payload を送信する前に retained デバイス情報を再度パブリッシュします。

mqtt-demo-4

Before / After: ケーブルが抜かれると、MQTT ステータスは赤色の MQTT Failed に切り替わります。オペレーターが PUBLISHをタップすると、同じ操作の中でステータスバッジが緑色に戻り、Status パネルに Publish Success と表示されます。

2.5 Demo 5 — 自動生成される一意の Client ID で複数台を展開

Client ID フィールドは空欄にしておき、各ユニットごとに一意の Local IP を設定します。最後にタップするボタンは APPLYgenerateClientIdFromLocalIp() は、Local IP から QEC_<a>_<b>_<c>_<d> 形式の一意な Client ID を生成し、テキストエリアに書き戻します。その後、各デバイスは自身の Client ID と IP を含む情報を retained メッセージとして QEC/test/device に通知します。
任意の MQTT Client から一度サブスクライブするだけで、リアルタイムに更新されるデバイス一覧を取得できます。各 Client ID は IP に基づいて一意に生成されるため、Broker 上でデバイス同士の Client ID が衝突することはありません。

mqtt-demo-5

Before / After: Client ID を空欄のままにし、Local IP を 192.168.2.231, APPLY をタップします。Client ID のテキストエリアに表示される値は QEC_192_168_2_231.


3. なぜエンジニアリング時間を節約できるのか

  • 単一ファームウェアで柔軟に展開。Local IP、Broker IP、Client ID は HMI から直接編集できるため、同じファームウェアを異なるネットワーク環境に合わせて簡単に適用できます。
  • 分かりやすい HMI フィードバック。MQTT Connected、Invalid Local IP、Topic Empty、Publish Failed などの重要な結果は、画面上に直接表示されます。
  • より速いパブリッシュテスト。APPLY と PUBLISH は分けて設計されているため、Topic や Payload を変更しても Ethernet は再起動されません。
  • デバイス情報を自動通知。QEC/test/device の retained デバイス情報により、サブスクライバーは接続後に最新のデバイス識別情報と IP を受け取ることができます。

4. 必要なもの

部件要件
Main deviceQEC プラットフォーム(86Duino 本体 + 86HMI パネル)
Network到達可能な MQTT Broker(例:Mosquitto、EMQX、HiveMQ)へ接続するための標準 Ethernet
BrokerMQTT v3.1.1 broker on port 1883
コードライブラリEthernetPubSubClientlvgl 7.11
オプションサブスクリプションを確認するための MQTT Client(MQTT Explorer、mosquitto_sub など)

5. Resources

  • QEC プラットフォーム(86Duino 本体 + 86HMI パネル): 概要
  • EtherCAT MainDeviceのサンプルコード: ダウンロード
  • エンジニアリング部門に相談する: お問い合わせ

詳細情報やサンプルのご要望については、info@icop.com.tw までメールをお送りいただくか、最寄りの ICOP 支店 までお電話いただくか、ワールドワイド正規販売代理店までお問い合わせください。

上部へスクロール