AWS IoTとPLCの事例!ゲートウェイ無しで接続してみた

本サイトはアフィリエイト広告を利用しています。
AWS

AWS IoTとPLCを接続してみました。細かい設定方法含めて紹介します。

ラズベリーパイをPLCにして、クラウドのAWSに直接MQTT通信しています。

誰でも同様にPLCとクラウドを繋げることが可能です。

 

スポンサーリンク
  1. AWS IoTとPLCの事例!ゲートウェイ無しで接続してみた
    1. AWSが初めての方は登録から
    2. ラズベリーパイをPLCにする方法
  2. PLCとクラウドを接続する方法
    1. 産業用・IoTゲートウェイからクラウドに接続
    2. メーカのPLCからクラウドに直接接続
    3. CODESYSでクラウドに直接接続
  3. AWSにMQTTで接続する
  4. CODESYSにIoTのライブラリをインストール
    1. 最新のソフトVerに更新するのをおすすめします
    2. CODESYS Development System V3
    3. CODESYS Control for Raspberry Pi MC SL
    4. IIoT libraries SL
    5. CODESYS Security Agent
  5. CODESYSとAWSを接続してみる
    1. AWSに通信するプロジェクト・ライブラリを用意する
      1. CFCのプロジェクトを作成する
      2. デバイスはラズベリーパイにしておく
      3. AWSのライブラリを追加する
      4. Visualizationの機能を追加する
    2. AWSにMQTTでPub/Subするプログラムを作成する
      1. AWSIoTClientを作成する
      2. AWSIoTSubscribeを作成する
      3. AWSIoTPublishを作成する
      4. 各パラメータの設定
      5. Visualizationの設定
      6. ビルドしてエラー無いことを確認します。
  6. CODESYSでAWS用のCSRを発行する
    1. ラズベリーパイにログインする
    2. CSRファイルを作成する
  7. OpenSSLでCSR証明書を変換する
  8. AWS IoTでCSRから証明書を作成する
    1. AWS IoTでCODESYSで使うラズパイを登録
    2. CSRをアップロードして証明書を作る
    3. 証明書とルート証明書をダウンロードする
      1. 証明書をダウンロードする
      2. ルートCAをダウンロードする
      3. AWSのエンドポイントを確認しておく
  9. CODESYSに証明書をインストールする
  10. AWSとPLC(CODESYS)の通信テスト
    1. AWSIoTClientをテストする
    2. AWSIoTPublishをテストする
    3. AWSIoTSubscribeをテストする
  11. AWS経由のMQTT通信テスト
  12. まとめ

AWS IoTとPLCの事例!ゲートウェイ無しで接続してみた

AWS(アマゾンのクラウド)とPLC(工場で使われるコントローラ)を繋げてみました。

AWSとMQTTでPLCがメッセージをPub(発行)/Sub(購読)できています。

 

本来、PLCにはMQTT通信する機能はなくゲートウェイ(中継器)が必要です。

今回はラズパイをPLC化することで、ゲートウェイ無しで直接AWSに接続しています。

 

今回のテストレベルならば無料枠内で十分に実施出来ました。

クラウド(AWS)とPLCを繋げてテストしたい人向に良い事例かと思います。

PLC・AWSの設定方法からテストプログラムまで詳細を紹介していきます。

 

また今回の内容を「第3回 FA設備技術勉強会オンライン」で発表させていただきました。

その際の説明スライドが下記となっています。

AWSにPLCに繋げるメリット・概要含めて説明しています。

 

実際のテスト動画も紹介していますので是非一緒にご覧ください。

AWSとPLCの間でMQTTのPub/Subの通信が実際に出来ています。

 

AWSが初めての方は登録から

AWSのサービス利用が初めての方は下記記事を参考に登録からお願いします。

AWSに登録して、ラズパイのGPIOの信号をクラウドに送信するまでの手順を紹介しています。

AWSにラズパイを接続!GPIOの信号をクラウドに送信してみた

AWSにラズパイを接続!GPIOの信号をクラウドに送信してみた
AWSに入門したくなり、ラズベリーパイで始めてみました。 ラズパイとAWSを接続して、PythonでGPIOの信号をクラウドに送信しています。 無料枠の範囲内で実施出来ますので、AWSを始めてみたい人におすすめします。

 

最終的にはラズパイからのメッセージをMQTTでAWSに通知させています。

AWSの登録・設定方法から、テストプログラム含めて記載しています。(リンク先はこちら)

 

ラズベリーパイをPLCにする方法

ラズベリーパイをPLCに設定する方法に関しては下記記事でまとめています。

シーケンス制御とラダーの始め方 ラズパイとCODESYSで入門

シーケンス制御とラダーの始め方 ラズパイとCODESYSで入門
初心者が簡単にシーケンス制御・ラダーを始める・勉強できるための資料をまとめてみました。 無料でラダープログラムを書けてシミュレーション・デバッグ動作できる方法を一から紹介します。 シーケンス制御とラダーの始め方 ラズパイとCODESYSで入...

 

CODESYSというソフトを使うことでラズベリーパイをPLCにすることが可能です。

ラダーやシーケンス制御を簡単に始めることができます。(リンク先はこちら)

テストレベルならば無料で実施できます。

実際に今回のテストを同様に実施する方はラズパイにCODESYSのインストールをお願いします。

 

PLCとクラウドを接続する方法

「PLC」と「(AWSなどの)クラウド」を接続する方法に関しては多種多様です。

おそらく一概に「この接続方法が正しい」というものは無いと思います。

あくまで今回のテストも一例ということをご了承ください。

 

下記のようにハード・ソフトで様々なシチュエーションが考えられます。

  • 使用するPLCで接続IF(LAN?、RS-485?、フィールドバス?…)が異なる
  • 使用するプロトコル(OPC UA?、MQTT?、https?)が異なる

 

別記事になりますが、OPC UAでクラウド(AWS)を接続する方法も紹介しています。

AWSでOPC UAの使い方!Greengrassで接続してみた

 

産業用・IoTゲートウェイからクラウドに接続

工場で使われている標準的なPLC(シーケンサ)ではクラウドと「直接」の接続は難しいです。

例えば、筆者所有のPLCの三菱FX3Gにはクラウドと直接接続できるIFはありません。

何かしらオプション対応が必要になります。

 

そのため、中継器(ゲートウェイ)を挟んでクラウドに接続するのが一つの手段かと思います。

下記のような専用のIoTゲートウェイを使えば、IFを集約してクラウドにデータを送れます。

 

しかし専用のゲートウェイ単体で数万~数十万するので一個人では購入するのが難しいです。

 

メーカのPLCからクラウドに直接接続

最新のPLCにはOPC UAやMQTTといったIoT関連のプロトコル通信ができるものもあります。

但し、基本的には「最新」かつ「高機能」なPLCにしか搭載しておりません。

最新のPLCに関しても一個人で購入するのがコスト的に非常に厳しいです。

 

CODESYSでクラウドに直接接続

今回は個人のテスト的にPLCからクラウドに接続できる環境が欲しいだけです。

そのためソフトウェアPLCの「CODESYS」で対応していきます。

CODESYSならば最新の高い機器を購入しなくとも、ソフトを修正するだけです。

 

ラズパイの無線機能を使い、ゲートウェイ無しで直接クラウドと接続していきます。

 

AWSにMQTTで接続する

ラズベリーパイ+CODESYSでクラウドに接続するにしても色々選択肢があります。

  • クラウド先…AWS(アマゾン)、GCP(グーグル)、Azure(マイクロソフト)、…等々
  • プロトコル…OPC UA、MQTT、…等々

 

今回のテストでは「AWS」に「MQTT」で接続していきます。

「MQTT」に関してはPub/Sub型で軽量のデータ配信を行います。

ざっくり言うと、今回はAWS介してPLC含めて多くの機器にメッセージを渡せるようになります。

 

CODESYSにIoTのライブラリをインストール

ソフトウェアPLCのCODESYSもデフォルト設定ではクラウドに接続できません。

必要なライブラリなどダウンロード・インストールして対応していきます。

 

今回使うソフトもテストレベルならば無料で実施できます。

AWSと接続するIoTのパッケージも30分の接続までは無料です。

30分後も自動的に接続が切れるだけで、再度接続すればまた無料でテストが出来ます。

 

最新のソフトVerに更新するのをおすすめします

筆者も結構躓いたのですが、最新のソフトVerで無いとエラーが出る場合が多いです。

(ビルド通らず苦戦していたところが、最新のソフトVerだと通った例も多数ありました)

 

エラーログの一例が下記です。(あくまで一例です。これ以外にも沢山出ました)

 

他のソフトもですが、近年IoT関連のライブラリ・パッケージの更新は非常に速いです。

ソフトウェアは最新のVerでテストすることをおすすめします。

筆者はCODESYS本体含めて必要ソフトウェア・ライブラリを全て最新Verにしました。

  • CODESYS本体(CODESYS Development System V3)
  • ラズベリーパイのパッケージ(CODESYS Control for Raspberry Pi MC SL)
  • IOT関連のパッケージ(IIoT libraries SL)
  • セキュリティのパッケージ(CODESYS Security Agent)

 

CODESYS Development System V3

CODESYS本体のダウンロード・インストール方法は下記記事をご参考ください。

ラズベリーパイのパッケージのインストール方法まで記載しています。

PLC(シーケンサ)・ラダーがフリーで使える!おすすめ入門ソフト

PLC(シーケンサ)・ラダーがフリーで使える!おすすめ入門ソフト
ラズベリーパイをPLC(シーケンサ)として使う準備編の記事です。 「PLC(シーケンサ)・ラダーがフリーで使える!おすすめ入門ソフト」を紹介します。 フリー(無料)でラダーのプログラムを実際に動かす手順を解説しています。 「無料でPLC(シ...

 

CODESYS Control for Raspberry Pi MC SL

CODESYSをラズベリーパイで動かす方法に関しては下記記事をご参考ください。

ラズパイのGPIOをラダーで制御しています。

ラズベリーパイでPLC(シーケンサ)・ラダーの使い方を学んでみた

ラズベリーパイでPLC(シーケンサ)・ラダーの使い方を学んでみた
ラズベリーパイをPLC(シーケンサ)として使う実践編です。 無料かつラズベリーパイでラダーのプログラムを実際に動かす手順を紹介しています。 「自分でPLC(シーケンサ)・ラダーを触ってみたい!」という方におすすめな記事です。 ラズベリーパイ...

 

IIoT libraries SL

CODESYSにクラウドと接続できるIoT関連のライブラリがあるのでインストールします。

ライブラリのダウンロード先は下記です。

 https://store.codesys.com/application/iiot-libraries-sl.html

 

CODESYS Security Agent

AWS関連の証明書を発行するにはセキュリティのパッケージのインストール必要でした。

ライブラリのダウンロード先は下記です。

 https://store.codesys.com/codesys-security-agent.html

 

CODESYSとAWSを接続してみる

CODESYSの本体を起動して、AWSの接続するためのプログラムを作ります。

今回はライブラリ本体のサンプルプログラムを参考にさせていただきます。

恐らくIoT関連のライブラリをインストール後には下記フォルダが作成されています。

「C:\Users\***\AWS IoT Core Client SL\」

 

AWSのサンプルプログラムは入っていますが、下記理由でそのままの使用は難しいです。

  • ラズベリーパイ用のプロジェクトでない
  • (Pub/Sub以外の)余分なアプリケーションまで入っている
  • AWSの設定などは各個人のパラメータを入力する必要がある

 

あくまでサンプルプログラムは参考にする形で、新規でプログラムを作成していきます。

 

AWSに通信するプロジェクト・ライブラリを用意する

サンプルプログラムがラダー言語やST言語ではなく「CFC」で作成されています。

他の言語でも作れるとは思いますが、まずは最初ということで同様にCFCでプログラムします。

※CFC…Continuous Function Chart_コンティニュースファンクション・チャート

 

CFCはファンクションブロックを繋げることでPLCのプログラムを作成していきます。

CFCのプログラム作成方法に関しては下記記事でも紹介しています。ご参考ください。

ソフトウェアPLC「CODESYS」の使い方まとめ

ソフトウェアPLC「CODESYS」の使い方まとめ
実質フリー(無料)で使えるのソフトウェアPLC「CODESYS」の使い方をまとめました。 「CODESYS」はラズベリーパイでデバッグできるため「自分でPLC(シーケンサ)を色々触ってみたい!」という方におすすめな記事となっています。 IE...

 

CFCのプロジェクトを作成する

最初にプロジェクトを作成します。「ファイル」→「新規作成プロジェクト」を選びます。

標準プロジェクトを選択して、任意のプロジェクト名を入力します。

 

デバイスはラズベリーパイにしておく

使用するデバイスはラズベリーパイ、またPLCの言語はCFCに設定します。

  • デバイス…「CODESYS Control for Raspberry Pi MC SL」
  • PLC_PRGの言語…「コンティニュースファンクション・チャート(CFC)」

 

AWSのライブラリを追加する

AWSのライブラリをプロジェクトに追加します。

「ライブラリマネージャー」→「ライブラリの追加」を選択します。

 

そこで「aws」検索すると「AWS IoT Client SL」のライブラリ出てきますので選択します。

 

Visualizationの機能を追加する

AWSと通信テストの際に、状態が分かるHMI(画面)を作れるように設定します。

「Application」を右クリック⇒「オブジェクトの追加」⇒「ビジュアリゼーション」を選択します。

 

「ビジュアリゼーションのオブジェクトの作成」のウインドウが出ます。

チェックを入れて進めば、CODESYSでHMI(画面)を作成できるようになります。

 

CODESYSでのHMI画面の作り方(Visualization)に関しては下記記事でも紹介しています。

自由に入出力画面も作成できます。(リンク先はこちら)

PLC(シーケンサ)を無線化!遠隔操作・監視した事例を試してみた

PLC(シーケンサ)を無線化!遠隔操作・監視した事例を試してみた
PLC(シーケンサ)をパソコン・スマートフォンから(有線・無線の両方で)遠隔操作・監視してみました。汎用的なラズベリーパイ(raspberry pi)をPLC化していますので誰でも同様に試すことができます。 PLC(シーケンサ)のスイッチを...

 

AWSにMQTTでPub/Subするプログラムを作成する

AWSでMQTTに通信させるにも手段が複数あります。(「Pub/Sub」か「DeviceShadow」)

今回は一番基本的な「Pub/Sub」でプログラムを作成していきます。

※Pub/Sub…Publish(発行)/Subscribe(購読) メッセージの通信ができるプロトコル

 

これからPLCの(CFC)プログラミングを実施していきます。

2個CODESYSを開いて、片方でサンプルプログラムを開いた方が良いと思います。

※適宜必要なプログラム・ブロックをコピーしたり、参考にすると(筆者は)楽できました。

 

AWSIoTClientを作成する

PLC_PRG(PRG)箇所でCFCのプログラミングが出来ます。

ツールボックスの「ボックス」をドラッグ&ドロップします。

 

そして「???」をクリックすると、どのファンクションブロックを使うかを選択できます。

入力アシスタントで「AWS_IOT」の中から「AWSIoTClient」を選びます。

 

サンプルプログラム同様にパラメータの必要箇所は入力ブロックで埋めておきます。

AWSIoTClientで一番重要なパラメータとしては下記辺りだと思います。

AWSの各個人の登録内容を入力する必要があります。

  • Clientid(クライアントID)…AWSで登録するモノの名前
  • Hostname(ホストネーム)…AWSのエンドポイントのURL

 

一応筆者はWillTopic(トピック)…AWSで使うトピックも合わせておきました。

他はサンプルプログラムと基本同じです。

未接続の箇所関してはオプション箇所か、画面のVisualization側で対応しています。

 

AWSIoTSubscribeを作成する

「AWSIoTClient」と同様に「AWSIoTSubscribe」も作成します。

「AWSIoTSubscribe」でメッセージを受信します。

サンプルプログラム同様にパラメータの必要箇所は入力ブロックで埋めておきます。

 

AWSIoTPublishを作成する

「AWSIoTPublish」も作成します。「AWSIoTPublish」でメッセージを送信します。

サンプルプログラム同様にパラメータの必要箇所は入力ブロックで埋めておきます。

 

各パラメータの設定

どのTopic(トピック)にメッセージをPub/subするのか含めてパラメータ設定しておきます。

ブロックを編集していた上の箇所に各変数・パラメータを定義・設定できる箇所があります。

 

今回筆者が設定したパラメータは下記です。サンプルプログラムから少し修正したレベルです。

 

Visualizationの設定

AWS IOTのファンクションブロック用にHMIの画面(Visualization)が用意されています。

「デバイス」→「Visualization」を選択します。

そして右側のツールボックスのタブを「ビジュアライゼーション ツールボックス」にします。

 

「AWS_IOT」のツールボックスが確認できます。

CFCで作ったブロックの3つに対応したツールボックスを選択していきます。

  • AWSIoTClient…Visu_AWSIoTClient
  • AWSIoTSubscribe…Visu_AWSIoTSubscribe
  • AWSIoTPublish…Visu_AWSIoTPublish

 

 

ドラッグ&ドロップするとき、CFCのどのブロックを参照するか確認されます。

※~パラメータを貼り付けというウインドウが出てくるはずです。

値の箇所に、CFCでプログラミングしたものを選択します。

 

ビルドしてエラー無いことを確認します。

Visualizationの設定まで終えたら、一度ビルトしてプログラムとして問題ないか確認します。

「ビルド」のタブから「ビルド」を選びます。問題なければ0個のエラーになるはずです。

 

CODESYSでAWS用のCSRを発行する

現在の状態だと、ラズパイ+CODESYSとしてはAWSと通信できる状態になっています。

但しAWS側からは接続して良いデバイスか不明のため、証明書をやりとりする必要があります。

イメージとしては下記形のようにCSRとCRTを受け渡しします。

 

AWSで証明書を作成するためにもCODESYSでCSRを発行していきます。

 

この手順に関してはCODESYSのIOT関連のライブラリパッケージのデータシートに載っています。

下記リンク先に「Download all Product Data Sheets (.zip)」があります。

その中の「AWS IoT Core Client SL_en.pdf」に記載がありました。

 https://store.codesys.com/application/iiot-libraries-sl.html

 

ラズベリーパイにログインする

ラズベリーパイへのログイン方法に関しては下記記事を参照ください。

一度ラズベリーパイにCODESYSをインストールする必要があります。

CODESYSをラズベリーパイにインストールします

ラズベリーパイでPLC(シーケンサ)・ラダーの使い方を学んでみた
ラズベリーパイをPLC(シーケンサ)として使う実践編です。 無料かつラズベリーパイでラダーのプログラムを実際に動かす手順を紹介しています。 「自分でPLC(シーケンサ)・ラダーを触ってみたい!」という方におすすめな記事です。 ラズベリーパイ...

 

ラズベリーパイに電源を入れて、CODESYSからログインします。

正常なプログラムでラズパイと通信できていればプログラムがダウンロードされます。

 

CSRファイルを作成する

ログイン後に「デバイス」→「PLCシェル」を選びます。

その後右下にある「…」から「cert-getapplist」を選ぶと証明書リストが出てきます。

 

証明書リストが出来た後に、右下の「…」から「cert-createcsr」を選択します。

ラズベリーパイ内にCSR証明書が作成されます。

 

今回CSR証明書を必要としているのは、CFCのクライアントIDの名前になっています。

筆者の場合「codesys」と入力しているため4番が該当します。

(現時点ではCert Availableが「False」となっています)

 

その後「デバイス」→「ファイル」のタブを選択して「cert/export」を開きます。

ラズベリーパイの該当のCSRファイルをPC側にコピーします。

 

OpenSSLでCSR証明書を変換する

ラズべリーパイからコピーしたCSR証明書はそのままではAWSに使えないということです。

OpenSSLで一度変換する必要があります。

 

正式な手順書では下記OpenSSLの大元のHPが紹介されていました。

但し、下記サイトからだとWindows用のOpenSSLのリンク先はありません。

 https://www.openssl.org/

今回は下記サイトからWindows用のOpenSSLをダウンロードして実行します。

 https://slproweb.com/products/Win32OpenSSL.html

 

データシートの手順書だと下記の参考コマンドでした。

openssl.exe req -in YOUR.csr -inform der -out YOUR.csr

そのためコマンドプロンプトで上記同様なコマンドを入力することで対応しました。

無事に変換されたCSR証明書が作成されました。

 

AWS IoTでCSRから証明書を作成する

AWSで証明書を作成していきます。

AWSの中でもサービスは多くありますが、今回は「AWS IoT」というサービスを使います。

冒頭でも紹介しましたが、AWS IoTの基本的な設定方法は下記記事をご参考ください。

AWSにラズパイを接続!GPIOの信号をクラウドに送信してみた

 

AWS IoTでCODESYSで使うラズパイを登録

AWS IoTの画面を開いたら、左の一覧から「管理」→「モノ」を選択します。

 

モノの画面の右上にある「作成」をクリックして進めていきます。

 

そしてAWS IOTモノを作成する画面で「単一のモノを作成する」を選択します

 

CFCで作成したプログラムのクライアントIDと同じ名前で登録しています。

 

CSRをアップロードして証明書を作る

次に「モノに証明書を追加」の画面が出てきます。

今回は「CSRによる作成」で先ほどOpenSSLで作成したCSRをアップロードします。

 

ポリシーに関しては、下記記事で作成したものを使っています。

※アクションに「iot:*」リソースAPNに「*」に設定したものです。

AWSにラズパイを接続!GPIOの信号をクラウドに送信してみた

 

ポリシーとはざっくりいうと、AWSへのアクセス権限を管理するリストみたいなものです。

今回はテスト用にAWS IoT関連ならば、何でもできるポリシーを使っています。

 

証明書とルート証明書をダウンロードする

登録は基本的に終わりましたので、後は証明書をダウンロードを行います。

 

証明書をダウンロードする

AWS IoTの画面の左一覧から「管理」→「モノ」を選び、今回登録したものを選択します。

そしてセキュリティの画面で証明書が出来ていますのでクリックします。

 

証明書の画面で右上のアクションで「ダウンロード」を選択します。

これでCODESYSのCSRからAWSの証明書を発行できました。

 

ルートCAをダウンロードする

あとルートCAという証明書もダウンロードしておきます。

ルートCAに関して今回は「RSA 2048 bit key: Amazon Root CA 1」をダウンロードしました。

下記AWSのリンク先からダウンロードが出来ます。

 https://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/server-authentication.html

 

AWSのエンドポイントを確認しておく

※既にプログラム作成中に対応済の方は読み飛ばしてください

AWSのエンドポイントのURLを控えておきます。AWS IoTを使う際に必要な情報となります。

左一覧にある「設定」を選ぶと、エンドポイントのURLがあります。

 

CFCのプログラムでエンドポイントURLをHostname(ホストネーム)として使っています。

 

CODESYSに証明書をインストールする

CODESYSにAWSからの証明書をインストールしていきます。

ラズベリーパイにログインした状態でセキュリティ画面を開きます。

証明書の管理画面が出てきますので下記2個の証明書をインストールしていきます。

  • Own Certificates…CSRからAWSで作成した証明書(***-certificate.pem.crt)
  • Trusted Certificates…ルートCA(AmazonRootCA1.pem)

 

PC側のファイルをラズパイにダウンロードしていきます。

その後は一度ラズパイとCODESYSをリセットさせるか、再起動させます。

 

AWSとPLC(CODESYS)の通信テスト

ラズベリーパイにログインしてプログラムを起動します。

実際にAWSと通信テストを行います。CFCのプログラム画面は下記形になります。

AWSIoTとMQTT(Pub/sub)通信するためにClientとSubscribeとPublishの3つがあります。

 

Visualization(HMI)の画面は下記形になります。

 

冒頭でも紹介しましたが、動画で見ると実際にMQTTのPub/Subの様子が分かります。

AWS⇔CODESYS間でメッセージがやり取りされていることが確認できます。

是非一緒にご覧ください。

 

AWSIoTClientをテストする

プログラム起動して、最初にAWSIoTClientを動作させます。

xEnable箇所をクリックすると「xBusy」と「xConnectedToBroker」のランプが点灯します。

※「xConnectedToBroker」のランプが点灯しない場合はAWSと通信が出来ていません。

 

AWSIoTPublishをテストする

次にAWSIoTPublishを動作させます。

PLC(CODESYS)側からAWSにメッセージをPub(発行)します。

今回は「Hello AWS from CODESYS」というメッセージを送ります。

 

PLC側からPub(発行)させますのでAWSのテスト画面で確認しています。

AWS IoTの画面で左の一覧から「テスト」を選択します。

MQTTクライアントの画面が出てきます。

 

そしてPLC(CODESYS)の画面でPubのスイッチ(xExecute)をONします。

AWSの画面で「Hello AWS from CODESYS」と表示されます。

 

AWSIoTSubscribeをテストする

最後にAWSIoTSubscribeを動作させます。

PLC(CODESYS)側がAWSからメッセージをSub(購読)します。

 

PLC(CODESYS)の画面でAWSIoTSubscribeのxEnableをONします。

正常に動作している場合は「xBusy」と「xSubscribeActive」が点灯します。

 

その後AWS側からメッセージを送るとPLCのパラメータ箇所に値が入っています。

「sSubscribeMessage」の箇所がSub(購読)したメッセージが表示されます。

 

AWS経由のMQTT通信テスト

今回の応用としてAWS(クラウド)を経由したMQTTの通信を行い、PLCを制御してみました。

具体的には特定のメッセージが来たらラズパイのGPIOをON/OFFしています。

 

PLCプログラムの改造方法含めて下記記事で紹介しています。(リンク先はこちら)

MQTTでPLCを制御!AWS(クラウド)経由で通信してみた

MQTTでPLCを制御!AWS(クラウド)経由で通信してみた
MQTTを使ってPLCを制御してみました。 AWS(クラウド)を経由していますので、世界中の何処のPLCにでも繋げれます。 設定方法からプログラム含めて紹介します。 MQTTでPLC制御!AWS(クラウド)経由で通信してみた AWS(クラウ...

 

まとめ

今回はAWS IoTとPLCの接続に関して紹介させていただきました。

記事をまとめますと下記になります。

ラズパイとCODESYSの環境ならばゲートウェイ無しでAWSに接続できます
(今回の)通信テストでは無料枠内で実施出来ます。
PLCとAWSをMQTTでPub/Subすることが出来ました

 

PLCとクラウドを勉強するにもラズベリーパイ(raspberry pi)はちょうど良いデバイスかと思います。

是非皆さまも試してみて下さい。

コメント