PLCnextコントローラでローコードIoTアプリを構築
PLCnextコントローラは、クラウドサービスへの接続を複数の方法でサポートしています。IOTライブラリのIECファンクションブロックを使用したり、独自の.NETアプリケーションを構築したり、Pythonスクリプトを書いたり、Go言語でコネクタをコンパイルしたりできます。コードを書きたい場合、選択肢はたくさんあります。しかし、何らかの理由でコードを書きたくない場合はどうでしょう?初めてのプロジェクトだったり、久しぶりだったりするかもしれません。このブログでは、1行もコードを書かずにIoT Webアプリケーションを構築する方法を紹介します!
コードを1行も書かないと言ったとき、少し大げさだったかもしれません。もちろん、PLCnextコントローラとクラウドサービスに何を望むかを伝える方法は必要です。そのためにグラフィカルインターフェースのみを使用するので、技術的には「1行もコードを書かない」と言えるでしょう?とにかく、このアプローチは「ローコード」と見なされます。
まず、このブログで使用するさまざまな要素やサービスを紹介します。
導入
PLCnextコントローラ、これはそれ以上の紹介は不要でしょう。機能についてまだ不安な場合は、PLCnext Infocenterをご覧ください。
Node-RED、公式Node-RED WebサイトではNode-REDを以下のように説明しています:
以前のメーカーズブログでもNode-REDは何度か言及されています。Node-REDの始め方がわからない場合は、この記事を読むことをお勧めします。
Azure IoT Centralは、AzureクラウドにおけるSAAS(Software As A Service)ソリューションで、コードレスなIoTソリューションを構築できます。定義されたインターフェースを持つデバイステンプレートを作成し、可視化は作成されたテンプレートから派生します。
このテンプレートでは、3種類の「変数の種類」を定義できます。テレメトリ、プロパティ、コマンド。テンプレートでこれらの種類を使用します。プロパティとテレメトリの区別が使用後に明確になることを期待します。まだ曖昧な場合は、参考資料セクションのリンク先記事をお読みください。
簡単にするため、非常に基本的なポンプコントローラーに例を限定します。ポンプを異なるモードに設定し、ポンプにセットポイントを与えることができます。
アプリケーションの構築
コントローラの準備
コントローラを最新のファームウェアに更新し、OCIコンテナ用のbalena-engineをインストールします。Balenaのインストール手順はこちら。Balena Engineが正常にインストールされたら、次のコマンドを実行します(時間がかかります)。
balena-engine run -it -p 1880:1880 --name nodered --restart always pxcbe/node-red:azureiot
Azure IoT Centralサービスの作成
Azureアカウントにログインし、リソースグループを作成します。このリソースグループで新しいAzure IoT Centralアプリケーションを作成できます。アプリケーションを作成する前に、さまざまなティアを確認してください。
新しく作成したAzure IoT Centralサービスに移動し、すべてが順調なら、新しいデバイステンプレートの作成を促されます。IoTデバイスとして新しいカスタムテンプレートの作成を選択します。この演習に適したテンプレートを作成するために、以下の手順を実行します。
デバイステンプレートの作成
- デバイステンプレートに「pump」という名前を割り当て
- カスタムモデルを作成
- 「機能の追加」を押す
- プロパティ「Pump status」を作成
- テレメトリ「Flow Rate」を作成
- コマンド「Change Mode」を作成
- コマンド「Set Power」を作成
- 新しく作成した機能を保存
- ビューに移動し、「デフォルトビューの生成」を選択(後でビューを変更可能)
- デバイステンプレートを公開
(問題がある場合は、リポジトリからテンプレートをインポートしてください)
新しいデバイスの作成
新しく作成したテンプレートに基づいてデバイスを作成します。「接続」をクリックし、後でNode-REDで使用する「ID scope」「Device ID」「Primary key」をメモします。
PLCnext Engineer
ポンプを制御するロジックが必要です。リポジトリにPLCnext Engineerプロジェクトを用意しました。自由にこのプロジェクトに機能を追加して、ポンプに新しい機能を与えてください!
Node-RED
この間にコンテナが作成され、Node-RED環境が稼働しているはずです。リポジトリからflow.jsonをインポートします。「Device」ノードをクリックし、「Device ID」「Scope ID」を設定し、「Device Provisioning Service」を選択してプライマリキーをコピー&ペーストします。
READまたはWRITEノードをクリックしてOPC UAサーバーを設定し、コントローラに合わせて設定を変更し、ノードをデプロイしてアプリケーションを完成させます。
アプリケーションのテスト
アプリケーションのテストの準備ができました。ポンプのステータスを変更し、新しいセットポイントを設定することでポンプを制御できるはずです。アプリケーションは意図的に基本的なものに留めています。ここから構築を続けて、インターフェース設定で可能なさまざまな設定を理解してください。ポンプの場所を示すマップを作成することもできます!
参考資料
Node-RED
https://nodered.org/docs/user-guide/editor/workspace/import-export
https://nodered.org/docs/user-guide/writing-functions
Azure-IoT-Central
https://docs.microsoft.com/en-us/azure/iot-central/
https://docs.microsoft.com/en-us/azure/iot-central/core/concepts-architecture
https://docs.microsoft.com/en-us/azure/iot-central/core/quick-monitor-devices
産業技術
- Raspberry Pi で自作セグウェイ(自己平衡ロボット)を構築
- ABB、中規模商業ビル自動化向け直感的IoTダッシュボードを発表
- Rockwell AutomationとAccenture、Industry X.0デジタルプラットフォームで産業企業変革へ提携
- 産業IoTセキュリティ:課題の克服と堅牢なソリューションの実装
- 自動車生産の革新:IoTソリューションで製造課題を克服
- PLCnext CLIテンプレートでC++開発を効率化
- ADLINKとGoogle Cloudが協業し、シームレスなIoTソリューションを提供
- 消防の革命:IoTが安全性、対応、救助をどう高めるか
- IoTネットワークソリューションで都市洪水に立ち向かう
- 境界を越え運用卓越性を導く次世代IoTソリューションのエンジニアリング
- IoTでHVACビッグデータを活用:エネルギー、快適性、空気質の最適化──第2部