1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

TwinCATデータをMQTTにブリッジング:概要と実践チュートリアル

Posted at

TwinCATデータをMQTTにブリッジングする:概要と実践チュートリアル

目次

このブログでは、TwinCATデータをMQTTにブリッジングする包括的なガイドを提供します。TwinCATからデータを収集し、収集したデータをEMQXにアップロードし、MQTTXを使用してデータを表示します。

TwinCATからMQTTへのブリッジングのアーキテクチャ

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 PLCプログラム

TwinCATプロジェクトディレクトリ内のTPYファイルを開きます。このファイルにはPLCプログラムで定義された各変数のインデックスグループとインデックスオフセットが含まれており、これはNeuronEXでのタグアドレスに使用されます。

TwinCATプロジェクトディレクトリ内のTPYファイルを開く

NeuronEXクイックスタート

NeuronEXのインストール方法については、インストール手順を参照してください。NeuronEXがインストールされたら、ブラウザを使用してhttp://localhost:7000にアクセスしてダッシュボードにアクセスできます。

ステップ1. ログイン

初期のユーザー名とパスワードでログインします:

  • ユーザー名:admin
  • パスワード:0000

ステップ2. 「Southbound」デバイスを追加

NeuronEXダッシュボードで、Configuration -> South Devices -> Add Device をクリックしてadsノードを追加します。

デバイスを追加

ステップ3. adsノードを設定

次に示すように、新しく作成された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ノードを追加します。

MQTT「Northbound」アプリを追加

ステップ8. mqttノードを設定

先にセットアップしたEMQXブローカーに接続するために、mqttノードを設定します。

mqttノードを設定

ステップ9. mqttノードをadsノードにサブスクライブ

新しく作成されたmqttノードをクリックしてGroup Listページに入り、Add subscriptionをクリックします。成功したサブスクリプションの後、NeuronEXはトピック/neuron/mqtt/ads/grpにデータを公開します。

mqttノードをadsノードにサブスクライブ

MQTTXを使用してデータを表示

これで、MQTTクライアントを使用してEMQXに接続し、報告されたデータを表示できます。ここでは、公式ウェブサイトからダウンロードできる強力なクロスプラットフォームMQTTクライアントツールであるMQTTXを使用します。

MQTTXを起動し、先に設定したEMQXブローカーに新しい接続を追加し、トピック/neuron/mqtt/ads/grpにサブスクリプションを追加します。サブスクリプションが成功すると、MQTTXはNeuronEXが収集し、報告したデータを継続的に受信します。次の図に示すように。

image.png

まとめ

このブログでは、NeuronEXを使用してTwinCATデータをMQTTにブリッジングする全体的なプロセスを紹介しました。

産業用オートメーションの広く使用されているプラットフォームであるTwinCATは、自動車、航空宇宙、食品および飲料などのさまざまな業界で採用されています。産業用IoTのための強力な接続性を備えたNeuronEXは、TwinCAT PLCからのデータ収集と、必要に応じてリモート制御および監視のためのクラウドへの取得データのシームレスな転送を容易にします。

NeuronEXは、ModbusOPC UA、SIEMENSなどの他の産業用プロトコルもサポートしています。他のブリッジングチュートリアルについては、当社の投稿をお読みください:IIoTのためのModbusデータをMQTTにブリッジングする:ステップバイステップチュートリアル

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?