PLCnext と AWS IoT Core を Python でつなげてみた (2)

前回 PLCnext コントローラを人気プログラミング言語である Python により AWS IoT Core へ接続しました。今回は PLCnext コントローラ上のデータ(変数) を AWS IoT Core へ送信するデモの手順を紹介したいと思います。産業機器やセンサなどからのデータを AWS を使い監視・管理したいという方ぜひご参照ください。

* Amazon Web Services、“Powered by Amazon Web Services”ロゴ、および本投稿記事で使れるその他の AWS 商標は、米国その他の諸国における、Amazon.com, Inc. またはその関連会社の商標です。

前回と同様に、この投稿では AWS アカウント作成方法や AWS IoT Core 設定方法などについて、解説していませんので、予めご了承ください。

AWS IoT Core へのデータ送信手順

本手順を進めるにあたり、以下の準備が必要となります。
 ・ PLCnext 本体
 ・ PC (PLCnext Engineer、SSH 接続ソフト、SFTP 接続ソフトが必要となります)
 ・ インターネット接続環境(インターネット接続用ルーターも含みます)
 ・ AWS アカウント、AWS IoT Core モノの登録

本手順内では、前回の投稿 「PLCnext と AWS IoT Core を Python でつなげてみた (1)」を実施していることを前提に解説を進めています。そのため、前回の投稿内容をお試しでない方は、一度内容をご確認の上(できれば一度動作を試していただいた上で)、本手順をご参照いただければと思います。

STEP 1: ライブラリのインストール
   1-1 Python ライブラリ ”Paho MQTT” と “PyPLCn” のインストール

STEP 2: ファイルの準備
   2-1 サンプルデモコードの準備
   2-2 ファイルの転送

STEP 3: PLCnext コントローラの設定
   3-1 REST API 設定

STEP 4: Python コードの実行
   4-1 Python コードの実行

STEP
ライブラリのインストール

1-1 Python ライブラリ ”Paho MQTT” と “PyPLCn” のインストール

今回のデモコードを動作させるため2つのライブラリ “Paho MQTT” と “PyPLCn” をインストールします。
“Paho MQTT” は MQTT プロトコルのライブラリで、”PyPLCn” は PLCnext コントローラと REST を使い
データ交換を行うためのサンプルライブラリです。

“Paho MQTT” のインストール方法は前回の投稿2-2 Paho mqtt ライブラリのインストール」をご参照
ください。

<PyPLCn” のインストール方法>
pip install PyPLCn” コマンドを実行します。
(今回 Python 仮想環境上で実行しています。仮想環境でなくても実行できます。
仮想環境の構築方法につきましてはこちらの資料をご参照ください。)

PyPLCn ライブラリのインストールが完了するまで待ちます。

PyPLCn ライブラリインストール成功のメッセージが表示されたら完了です。
(注: PyPLCn ライブラリは、サンプルライブラリです。PLCnext の REST 動作確認用に
作成されているため、長時間動作や負荷環境での動作を保証しているものではありません
のでご注意ください。)

STEP
ファイルの準備

2-1 サンプルデモコードの準備
デモコードをこちらからダウンロードします。
今回のデモコードは、PLCnext コントローラの CPU 使用率を
AWS IoT Core へ送信するデモです。
必要な設定についてはデモコード内に記載してあります。
*注: これらのデモコードは、サンプルコードのため一切の動作を保証するものではありません。
これらデモコードに関して発生するいかなる問題も、使用者の責任および費用負担で解決されるものとします。


2-2 ファイルの転送
AWS IoT Core 接続用の認証ファイルとサンプルコードを
PLCnext コントローラに転送します。
ファイル転送方法については、前回の投稿2-3 ファイル転送方法…
をご参照ください。

STEP
PLCnext コントローラの設定

3-1 REST API 設定
REST API を使い PLCnext コントローラの変数にアクセスするために、
PLCnext Engineer を使い、PLCnext コントローラの設定を変更します。

まず始めに PLCnext Engineer を起動します。
(PLCnext Engineer をインストールされていない方は、こちらのインストール手順
参照し、インストールを完了させてください。
また、PLCnext Engineer の基本操作方法はこちらの資料をご覧ください。)

使用するコントローラのプロジェクトを新規作成します。
次に、PLANT エリアにある “PLC” をダブルクリックし、”Data List” 画面を開きます。

Data List のシステム変数リストから “DEVICE_STATE” を見つけます。
(DEVICE_STATE とは、CPU 使用率や温度の値が保存されているシステム変数です。)
DEVICE_STATE” を右クリックし、メニューの “Add HMI Tag” をクリックします。

DEVICE_STATE の右側にある HMI tag 列に “DEVICE_STATE” と表示されます。

次に PLANT エリアの HMI Web Server > Application を右クリックし、
メニューの “Add HMI Page” をクリックします。

HMI Web Server > Application の下の階層に “Page” と “Login” が追加されます。
Page” を右クリックし、メニューの “Set HMI Page as Startup” をクリックします。
これで設定完了となり、変数 “DEVICE_STATE” に REST API でアクセスすることが
できるようになります。

最後に、プロジェクトを PLCnext コントローラに書き込みます。
PLANT エリアの “axc-f-…” を右クリックし、メニューの “Write and Start Project
をクリックします。

認証画面が表示されるので、上段に “admin” を、下段にパスワードを入力します。
パスワードが正しければ、そのままプロジェクトが書き込まれ、新しいプロジェクト
の動作が開始されます。

STEP
Python コードの実行

4-1 Python コード実行
PLCnext コントローラに転送したデモコードを実行します。

デモコードを実行するため以下のコマンドを実行します。
python3 AWS_MQTT_pub_demo2.py
コマンドが成功すると以下のように表示されます。

AWS IoT Core の画面で確認すると、PLCnext コントローラから送信された CPU 使用率が
表示されていることを確認できます。

今回は PLCnext コントローラ内の変数の値を AWS IoT Core に送信するデモを行いました。
本デモを応用することで、産業機器やセンサなどのデータを AWS IoT Core に送信することも
可能になります。さらに、AWS のサービスを活用することで取得したデータの可視化や AI に
よる分析なども実現できますので、興味のある方はぜひ挑戦してみてください。
次回は PLCnext コントローラが AWS IoT Core からデータを受信し、受信したデータを基に
動作を行うデモを紹介したいと思います。

  • URL Copied!