TwinCATデータをMQTTにブリッジング:概要と実践チュートリアル
このブログでは、TwinCATデータをMQTTにブリッジングする包括的なガイドを提供します。TwinCATからデータを収集し、収集したデータをEMQXにアップロードし、MQTTXを使用してデータを表示します。
TwinCATからMQTTへのブリッジングのアーキテクチャ
TwinCATをMQTTに変換するためのNeuronEX
NeuronEXは、産業用IoTゲートウェイソフトウェアであり、産業用デバイスに重要なIoT接続機能を提供します。NeuronEXはリソースの最小限の利用で、標準または専用のプロトコルを介してさまざまな産業用デバイスと通信し、工業用IoTプラットフォームに複数のデバイス接続を実現します。
NeuronEXは、最初からMQTTをその通信プロトコルの1つとしてサポートしています。NeuronEX MQTTプラグインを使用すると、デバイスとクラウド間のMQTT通信を素早く構築できます。
NeuronEXは、バージョン2.2.0からBeckhoff ADSプラグインを提供しています。NeuronEX Beckhoff ADSプラグインは、TCP上でADSプロトコルを実装しています。これにより、Beckhoff TwinCAT PLCとの通信をサポートし、NeuronEXの接続能力をさらに豊かにし、ユーザーのニーズを解決します。
Beckhoff ADSプラグインを使用すると、ユーザーはTwinCAT PLCから簡単にデータを収集できます。MQTTプラグインと組み合わせることで、収集したデータをEMQXプラットフォームなどの産業用IoTプラットフォームにプッシュしたり、TwinCAT PLCにメッセージを公開してライト、モーター、およびその他の機器のオン/オフなどのデバイスアクションをトリガーすることができます。
MQTTメッセージの処理にはEMQXを使用します
EMQXは、高性能でスケーラブルな世界最先端のオープンソース分散型IoT MQTTブローカーです。EMQXは、大量のIoTデバイスに効率的で信頼性の高い接続を提供し、メッセージとイベントフローデータの高性能なリアルタイム移動と処理を可能にし、ユーザーが迅速に重要なビジネス向けのIoTプラットフォームとアプリケーションを構築できるよう支援します。
EMQXはブリッジングアーキテクチャのブローカーコンポーネントであり、NeuronEXはTwinCAT PLCからデータを収集し、データをMQTTメッセージとしてブローカーに転送します。NeuronEXからMQTTメッセージを受信した後、EMQXはデータを転送したり、さらなる処理を行ったりします。
EMQXには、SQLベースのルールエンジンやデータ統合などの豊富でパワフルな機能セットがあり、リアルタイムでIoTデータを抽出し、フィルタリング、豊富にするためのもので、データ統合を使用してEMQXをデータベースなどの外部データシステムに接続することができます。
NeuronEXを使用したTwinCATからMQTTへのブリッジング
ここでは、ローカルエリアネットワークに接続された2つのPCを使用します。1つはEMQX、MQTTX、およびNeuronEXをインストールするためのLinuxマシンで、もう1つはTwinCAT 3がインストールされたWindowsマシンです。
PC 1 | PC 2 | |
---|---|---|
オペレーティングシステム | Linux | Windows |
IPアドレス | 192.168.1.152 | 192.168.1.107 |
AMS Net ID | 192.168.1.152.1.1 | 192.168.1.107.1.1 |
ソフトウェア | EMQX、MQTTX、NeuronEX | TwinCAT 3 |
ネットワーク | 接続済み | 接続済み |
EMQXクイックスタート
EMQXは複数のインストールメソッドを提供しており、詳細なインストール方法はドキュメンテーションで確認できます。この例では、Dockerコンテナのデプロイメントを使用してEMQXを素早く体験します。
次のコマンドでDockerイメージを取得します:
docker pull emqx/emqx:5.1.0
次のコマンドでDockerコンテナを起動します:
docker run -d --name emqx -p 1883:1883 -p 8081:8081 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx:5.1.0
EMQXダッシュボードにアクセスするには、ウェブブラウザを使用してhttp://localhost:18083/
にアクセスします(「localhost」を実際のIPアドレスに置き換えてください)。これにより、デバイスの接続を管理し、関連するメトリクスを監視できます。このチュートリアルではDockerコンテナを実行したままにしておいてください。ドキュメンテーションを参照して、ダッシュボードの他の機能を体験できます。
初期のユーザー名:admin
、初期のパスワード:public
TwinCATのセットアップ
Beckhoff TwinCATのウェブサイトを参照して、TwinCATをダウンロードしてインストールしてください。
NeuronEXとTwinCAT PLCが互いに通信できるようにするためには、まずTwinCATにNeuronEXのための静的ルートを追加する必要があります。TwinCAT Static Routesダイアログを開き、次の画像でハイライトされている情報を提供します。AmsNetIdはNeuronEX PCのIPアドレスに".1.1"を追加したものです。
デモンストレーション目的の十分な変数を定義するTwinCAT PLCプログラムを使用します。
TwinCATプロジェクトディレクトリ内のTPYファイルを開きます。このファイルにはPLCプログラムで定義された各変数のインデックスグループとインデックスオフセットが含まれており、これはNeuronEXでのタグアドレスに使用されます。
NeuronEXクイックスタート
NeuronEXのインストール方法については、インストール手順を参照してください。NeuronEXがインストールされたら、ブラウザを使用してhttp://localhost:7000
にアクセスしてダッシュボードにアクセスできます。
ステップ1. ログイン
初期のユーザー名とパスワードでログインします:
- ユーザー名:
admin
- パスワード:
0000
ステップ2. 「Southbound」デバイスを追加
NeuronEXダッシュボードで、Configuration -> South Devices -> Add Device をクリックしてadsノードを追加します。
ステップ3. adsノードを設定
次に示すように、新しく作成されたadsノードを設定します。
ステップ4. adsノードにグループを作成
adsノードをクリックしてGroup Listページに入り、CreateをクリックしてCreate Groupダイアログを表示します。パラメータを入力して送信します:
- グループ名:grp。
- インターバル:1000。
ステップ5. グループにタグを追加
前述のTwinCAT PLCプログラムのいくつかの変数に対して、adsノードのgrpグループに対応するタグを追加します。タグアドレスは、変数のインデックスグループとインデックスオフセットで構成されます。
ステップ6. データ監視
NeuronEXダッシュボードで、Monitoring -> Data Monitoringをクリックし、タグ値が正しく読み取られていることを確認します。
ステップ7. 「Northbound」アプリにMQTTを追加
NeuronEXダッシュボードで、Configuration -> North Apps -> Add Appをクリックしてmqttノードを追加します。
ステップ8. mqttノードを設定
先にセットアップしたEMQXブローカーに接続するために、mqttノードを設定します。
ステップ9. mqttノードをadsノードにサブスクライブ
新しく作成されたmqttノードをクリックしてGroup Listページに入り、Add subscriptionをクリックします。成功したサブスクリプションの後、NeuronEXはトピック/neuron/mqtt/ads/grp
にデータを公開します。
MQTTXを使用してデータを表示
これで、MQTTクライアントを使用してEMQXに接続し、報告されたデータを表示できます。ここでは、公式ウェブサイトからダウンロードできる強力なクロスプラットフォームMQTTクライアントツールであるMQTTXを使用します。
MQTTXを起動し、先に設定したEMQXブローカーに新しい接続を追加し、トピック/neuron/mqtt/ads/grp
にサブスクリプションを追加します。サブスクリプションが成功すると、MQTTXはNeuronEXが収集し、報告したデータを継続的に受信します。次の図に示すように。
まとめ
このブログでは、NeuronEXを使用してTwinCATデータをMQTTにブリッジングする全体的なプロセスを紹介しました。
産業用オートメーションの広く使用されているプラットフォームであるTwinCATは、自動車、航空宇宙、食品および飲料などのさまざまな業界で採用されています。産業用IoTのための強力な接続性を備えたNeuronEXは、TwinCAT PLCからのデータ収集と、必要に応じてリモート制御および監視のためのクラウドへの取得データのシームレスな転送を容易にします。
NeuronEXは、Modbus、OPC UA、SIEMENSなどの他の産業用プロトコルもサポートしています。他のブリッジングチュートリアルについては、当社の投稿をお読みください:IIoTのためのModbusデータをMQTTにブリッジングする:ステップバイステップチュートリアル。