WebサービスのアーキテクチャスタイルとしてIT分野で幅広く使用されているREST API(RESTful API) は、産業アプリケーションでの使用も広がりつつあります。フエニックス・コンタクトでも、産業用無線LAN機器やエネルギー測定ユニットなどの製品にREST APIが搭載されています。PLCnextコントローラは、JavaScriptやNode-RED、PythonなどでREST APIが使用可能です。
PLCnext Storeからは、REST APIを使って産業用無線WLANの設定やステータス読み込みができるファンクションブロックライブラリFL_WLAN_Basicが入手できます。このライブラリをPLCnext Engineerにインポートすることで、IEC61131-3のラダー言語やST言語を使って、WLANの設定変更やステータス管理が可能です。WLANは無人搬送車(AGV)に使用されることがありますが、このライブラリを使用することで、WLANのステータスを搬送車の制御で参照したり、WLANの設定を変えたりすることができます。
ここでは、このライブラリを使ったWLANのステータス読み出しと設定書き込みの例を記載します。 PLCnextの基本的な操作方法についてはこちら、ライブラリのインポート方法についてはこちらを参照してください。
使用する製品
- PLCnextコントローラ : AXC F 2152 ×1台
- コントローラはファームウェアVer. 2021.0.5 LTS、 PLCnext EngineerはVer. 2021.3.1を使用しています。
- 無線LANモジュールWLAN : FL WLAN 1100 ×2台(ファームウェアVer.2.63)
- WLANは1台を無線アクセスポイント、もう一台を無線クライアントとして使用します。
構成
WLANのRESTインターフェイス確認
RESTで使用するJSONキーとURLは、WLANデバイスから取得できます。そのためには、PCをWLANに接続し、WEBブラウザでSwagger Appを起動させる必要があります。
WEBブラウザでhttp://192.168.1.21//api/v1/ にアクセスすると、WLANデバイスのSwagger Appが起動します。パラメータは、WLAN、networkなどの機能グループに分かれています。
グループごとに、GET, PATCH, POST, DELETEなどのREST メソッドがサポートされています。
各メソッドを選択し、“Try it out”, “Execute”を押します。
そうすると、WLANサーバーのレスポンスを確認できます。ここでは、コード200が表示されています。このレスポンスはJSONフォーマットです。WLANのパラメータは、文字列はダブルクオーテーションを使って、“ip_address”,”192.168.1.21”のように記載されています。ライブラリのファンクションブロックでは、これらのパラメータを使用します。
WLANの親機MACアドレスを読み出す
ファンクションブロックを使って、下図のようなプログラムを作成します。FLWLRST_COMにより、PLCnextコントローラは、strIPSrvrに設定されたIPアドレスのサーバーに対し、TCPクライアントとして接続します。FLWLRST_GETはWLAN(サーバー)に対してHTTP GETリクエストを実行します。このプログラムは、WLANが無線クライアントとして現在接続しているアクセスポイントのMACアドレスとRSSIを、ローカル変数strGETValue1、strGETValue2に読み込む例となります。
アクセスポイントのMACアドレスとRSSIはSwagger Appで下図のように確認できます。
プロジェクトをダウンロードし、実行します。usiJSONOBjNameARNr=1(配列のエレメントが1)、xActive=TRUE(ファンクションブロック有効)、xReq=TRUE(GETリクエスト実行)を入力すると、strGETValue1にMACアドレス、strGETValue2にRSSIの値が出力されます。
WLAN の無線出力を変更する
WLANはWEB設定画面で下図のように無線出力を設定できます。
この値をライブラリのファンクションブロックを使って変更するため、下図のようなプログラムを作成します。FLWLRST_COMにより、PLCnextコントローラは、strIPSrvrに設定されたIPアドレスのサーバーに対し、TCPクライアントとして接続します。FLWLRST_PATCHはWLAN(サーバー)に対してHTTP PATCHリクエストを実行します。このプログラム例では、WLANの無線出力”tx_power_conf”をローカル変数diJSON_Value_Numの値に変更します。
無線出力”tx_power_conf”はSwagger Appで下図のように確認できます。”tx_power_conf”: 0,と記載されているため、FLWLRST_PATCHの入力パラメータは、数値変更に使用する“strJSON_Key5_Num”を使用する必要があります。
プロジェクトをダウンロードし、実行します。diJSON_Value_Num=5(無線出力5dBm)、xActive=TRUE(ファンクションブロック有効)、xReq=TRUE(PATCHリクエスト実行)を入力し、xRequestDone=TRUE(リクエスト送信成功)になると、無線出力値が変更されます。下図のように、WLANの設定画面で値が更新されていることを確認できます。