PLCnext の GDS(Global Data Space、リアルタイムシステム内のグローバルデータスペース)のデータを、外部デバイス、または PLCnext の Linux へのデータインターフェースとして、REST API によるデータアクセス方法をこれまでいくつかご紹介してきました。
- PythonとREST APIによるPLCnext Runtime変数の操作 | PLCnext Technology
- 産業用無線WLANとのREST API接続:ファンクションブロック編
- PLCnext と AWS IoT Core を Python でつなげてみた (2)
- Python を使ったデータ分析(2)
ここでは、Node-RED の REST API ノードを介してPLCnextコントローラと通信できるようにする PLCnext コネクタノードについて説明します。この Node-RED ノードを使用することによって、プログラム言語で http クエリを作成するよりも比較的簡単に、REST インターフェイスを提供します。
Node-RED : PLCnext コネクタノード
PLCnext コネクタノードは、PLCnext コントローラとの接続を認証および承認するだけでなく、接続を維持し、接続が失われたときに再接続を試みるノードです。他のすべてのノードは、このノードをエディタで設定できるパラメータとして実装します。1 つのコネクタ ノードを他の複数のノードで使用できますが、1 つのノードに実装できるコネクタ ノードは 1 つだけです。
PLCnext コネクタノードのインストール方法
Node-RED に PLCnext コネクタノードをインストールするには、次の手順で実施します。
1.Node-RED の右上の三本線 [三] をクリックして、 「パレットの管理をクリック」
2. パレットマネージャーを開き、「ノードを追加」タブをクリックして、検索欄に「plc-next」を入力して@kjgalr/node-red-plc-next-connector を検索して、「ノードを追加」ボタンをクリックしてインストール
7つの PLCnext コネクタ
PLCnext コネクタは、次の7つのノードがあります。詳細は、「こちら」に仕様を説明しています。
1.Read Variables
変数とその値のリストを返します。 コントローラーから 1 つまたは複数の変数を読み取ります。
入力で定義された変数は、エディターで設定された変数と組み合わせて使用できます。
2.Browse Items
現在使用されているパブリック変数とその型をコントローラーから返します。
3.Report Sessions
現在アクティブなすべてのセッションの一覧を返します。
4.Report Groups
現在アクティブなすべてのグループの一覧を返します。
5.Create Groups
変数をグループ化して、groupID のみを使用して変数の読み取りまたは書き込みができるようにします。
グループ内のすべての変数を要求するために必要なのは groupID だけなので、要求が簡略化されます。
6.Read Group Variables
groupID を使用して特定のグループに割り当てられたすべての変数を読み取ります。
7.Write Variables
変数とその新しい値のリストを返します。選択した変数の値を変更します。変数は、空白が無視されるコンマ区切りリストです。
使用例(Read Variables)
PLCnext のデータを読み込んで、デバッグノードで読み込んだデータを出力する例について説明します。
1.PLCnext Engineer で 入力する変数の変数リストの「HMI」欄にチェックを入れてプロジェクトを実行します
2. Node-RED で Read Variables で PLCnext のデータを読み出し
3. 「Read Variables」ノードを Node-RED のフローに置き、読み出す変数をチェックします
「Injection」ノード、「Read Variables」ノード、「Debug」ノード を Node-RED のフローに置いて接続し、「Read Variables」ノードのパラメータで、PLCnext の IPアドレスの設定、読み出す変数にチェックをして「完了」ボタンをチェックします
4.Node-RED で データを定周期で読み出してデバックに出力します
Node-RED のフローを「デプロイ」してフローを実行します
まとめ
Node-RED で REST API を介してPLCnextコントローラと通信できるようにする PLCnext コネクタノードと、その使用例について説明しました。PLCnext に PLCnext StoreからコンテナアプリとしてNode-REDをインストールした場合と、ネットワークに接続したPC上で動作する Node-RED で同じように実行することができます。
Node-RED のノードを接続するだけで、比較的簡単に PLCnext の変数データを読み出すことができるので活用してみてください。