OPC UAでPLC(シーケンサ)と接続!サーバーの環境構築してみた

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

OPC-UAでPLCと接続して、クライアント側からデータ取集まで試してみました。無料で対応可能です。

汎用的なラズベリーパイで「OPC UAサーバー」かつ「PLC(シーケンサ)」にする手順を紹介します。

 

スポンサーリンク

OPC UAでPLC(シーケンサ)と接続!サーバーの環境構築してみた

ラズベリーパイ1台で「OPC UAサーバー」かつ「PLC」にすることができます

 

PLC入出力データをOPC UAクライアントソフト(UaExpert)から確認可能です。

 

実際にOPC UAでラダーの自己保持回路の入出力を監視したデモ動画が下記になります。

 

ソフトのダウンロード方法からテスト手順まで紹介していきます。

 

OPC UAとは

OPC UAに関しては既に多くの記事がネットに上がっていますので概略だけ説明します。

 

産業機器・産業システムには数多くの産業ネットワークの規格が有ります。(PROFINET,EtherCATなど…)

OPC UAは数多くの規格超えて通信・データ収集・機械制御などが可能になる通信規格です。

(下記図はかなり大雑把なイメージ図です)

 

また産業ネットワーク(PRFONET,EtherCAT…)もOPC-UA同様にラズパイで試すことができます。

もし興味がある方は下記記事もご覧ください

PROFINETとPLCを接続!マスターとスレーブをラズパイで作ってみた
Raspberry piで「PROFINET」のマスター・スレーブを作ってみました。 産業用Ethernet・フィールドバスの高価な機器を購入しなくても、接続テスト程度ならばラズパイで無料で簡単に試せる内容を紹介します。 PROFINETと...

 

OPC UAのクライアントとサーバーの環境

今回はOPC UAの環境を構築してサーバー・クライアント間で通信テストを行います。

ラズベリーパイを「PLC」と「OPC UAサーバー」、普通のノートPCを「OPC UAクライアント」として通信します。

 

OPC UAクライアント(普通のノートPC)側からPLCの入出力データを確認するのがゴールとなります。

 

CODESYSでOPC UAサーバー環境を構築する

今回OPC UAサーバーの環境をCODESYSというソフトウェアPLCで対応します。

CODESYSはOPC UAサーバー環境が最初から入っており、ラズベリーパイで無料でテストすることが可能です。

 

ラズベリーパイにCODESYSのインストール方法

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

CODESYSのダウンロード方法含めて詳細な方法については下記記事をご覧ください。

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

 

ラダーの自己保持回路を作る

特にテストプログラムは何でも大丈夫です。筆者はラダーで基本的な自己保持回路を組みました。

 

もし同様な回路を作る方がいれば下記記事をご参考ください。回路図含めて記載しています。

入門編!簡単なPLC・ラダーのプログラムの例を作って動かしてみた
ラズベリーパイをPLC(シーケンサ)として使う実践編で「入門編!簡単なPLC・ラダーのプログラムの例を作って動かしてみた」を紹介します ラズベリーパイでラダーのプログラムを実際に数例動かして紹介しています。「自分でPLC(シーケンサ)・ラダ...

 

OPC UAからPLCの入出力にアクセスできるように設定する

CODESYSの中で持っているPLCの入出力データをOPC UAからアクセスできるように設定します。

最初に「Application」を右クリックして「オブジェクトの追加」⇒「シンボルコンフィグレーション」を選択します。

 

「シンボルコンフィグレーション」の項目で「OPC UA機能をサポート」にチェックがあることを確認して進めていきます。

 

これで「シンボルコンフィグレーション」の設定ができるようになりました。

一度「ビルド」してOPC UAでアクセスしたい入出力(変数)を選択します。

 

これで今回のテストでのOPC UAサーバー側での設定は一旦終了です

 

OPC UAのセキュリティポリシーはCODESYSも対応

OPC UAの特徴として「セキュリティ」機能があります。

産業ネットワークとしての安全性(盗聴・改ざん・攻撃)の対策です。

CODESYSも(Basic256SHA256の暗号化通信で)しっかり対応しています

 

しかしセキュリティの機能を使うにはサーバー・クライアント間で「証明書」などを発行する必要があります。

作業内容を詳細に説明すると少し手間ですので、今回のOPC UAの通信テストではセキュリティは無し(None)で行います。

 

もしセキュリティポリシーを使いたい方はCODESYSのオンラインヘルプページをご参考ください。

実施手順が記載されていました。(リンク先はこちらから)

 

下記記事で実際にセキュリティ有りのOPC UAの通信テストをしています。

OPC UAでセキュリティの証明書を発行してみた

OPC UAでセキュリティの証明書を発行してみた
OPC UAのセキュリティの証明書を実際に発行してみました。 セキュリティポリシーの「Basic256Sha256」を使用しています。 サーバー・クライアント間でのセキュリティの設定方法含めて詳しく紹介します。

 

UaExpertでOPC UAクライアント環境を構築する

OPC UAクライアントソフト・アプリ・API・SDKは多くのメーカが出しています。

今回筆者は一番代表的なソフトのUaExpertの使いました。無料で使用可能です。

 

UaExpertのダウンロードから使い方までを下記記事で紹介しています。

よろしければ一緒にご覧ください。(リンク先はこちらから)

OPC UAクライアントのフリーソフトUaExpertを使ってみた
OPC UAクライアントソフトのUaExpertのダウンロード方法から基本的な使い方まで紹介します。 無料(フリー)で使えて便利なソフトですのでOPC UAを始めてみたい方におすすめな記事となっています。 OPC UAクライアントのフリーソ...

 

OPC UAサーバーとクライアントで通信テストする

OPC UAサーバーの「CODESYS」とOPC UAクライアントの「UaExpert」を立ち上げてテストします。

動画だと分かりやすいと思いますので、冒頭でも紹介しましたが再度貼り付けておきます。

 

OPC UAクライアント側からPLCのデータが取得できている

OPC UAサーバーに接続後、PLCのデータをOPC UAクライアント側から確認できました。

Statusも「Good」で、データ習得の度にタイムスタンプがしっかり更新されています。

 

OPC UAのリアルタイム性を確認してみる

今回のテストプログラムではPLCの入力SW_X001を押下⇒Y001に出力してLEDが点灯します。

 

クライアント側でもY001が「True」になってOPC UA経由でデータが取得できていることが分かります

 

今回はOPC UAを無線で通信していますが、SW押したらすぐにクライアント側でもデータが動いています。

目で見える範囲内では十分にOPC_UAで反応できていました。

(リアルタイム性という意味では大分薄いと思いますが…、個人的なテストでここまで動けば満足です)

 

まとめ・感想

ラズベリーパイ(raspberry pi)1台でPLCもOPC UAサーバーも試すことができます。(しかも無料で!)

クライアントソフトも誰でもダウンロードできて、簡単にOPC UAのテストが可能です。

皆様もぜひ試してみてください

コメント

  1. トム君 より:

    misoji先生の記事でハードが苦手な私でも、何とか
    ラズベリーパイとGPIOを理解し、Codesysを用いて
    ラダーのプログラムでLED、OPCUAまでたどり着けました。

    今回、CODESYSのOPCUA PUBSUB機能を試してみたいのですが
    すごく難しいです。

    misoji先生の解説を頂けますと大変うれしいです。

    • ミソジ ミソジ より:

      お世話になっております。管理人のミソジです。
      ご連絡ありがとうございます。
      私の方でも一度試してみましたが、情報が足りず細かい設定まで出来ませんでした。

      途中までの検討メモレベルですが、下記記事にまとめました。
      https://misoji-engineer.com/archives/opc-ua-pub-sub.html
      ご参考にしていただければと思います。どうかよろしくお願いいたします。