OPC UAのPub SubをCODESYSで検討したメモ

OPC UA

CODESYSでOPC UAのPub Subを使った通信を試みました。

ただドキュメントが揃っていない、また他手段も少し手間のため一旦放置中です。

筆者自身の忘備録のためにも検討したメモ残しておきます。

 

スポンサーリンク

OPC UAのPub SubをCODESYSで検討したメモ

CODESYSでOPC UAのPub Subが使えないか検討してみました。

ただ細かいパラメータなど設定方法が分からず、一旦放置しています。

あくまで検討途中のメモレベルの記事です。ご参考程度にお願いします。

 

CODESYSのOPC UA

CODESYS(PLCソフト)でOPC UAの使い方に関しては下記記事で紹介しています。

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

OPC UAでPLC(シーケンサ)と接続!サーバーの環境構築してみた
OPC-UAでPLCと接続して、クライアント側からデータ取集まで試してみました。無料で対応可能です。 汎用的なラズベリーパイで「OPC UAサーバー」かつ「PLC(シーケンサ)」にする手順を紹介します。 OPC UAでPLC...

 

CODESYSではOPC UAの機能を簡単に使うことができます。

「OPC UA機能をサポート」にチェックを入れて、設定するだけでOKでした。

 

OPC UA PubSubのライブラリ

CODESYSでOPC UA PubSubのライブラリがあります。

 https://store.codesys.com/en/opc-ua-pubsub-sl.html

 

パッケージをダウンロードするか、インストーラーで使えるようになります。

下記記事で紹介していますが、最新のCODESYSではインストーラーを使います。

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

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

 

但し、PubSubのパッケージ自体も特に更新されていないようです。

(2020年頃にVer1.00 が出てからは更新無し…)

まずは一度インストールして、正常動作できるか確認してみました。

 

PubSubの参考となるサンプルプロジェクト

PubSubのライブラリをインストールすると、サンプルプロジェクトも入ります。

恐らく、デフォルトだと下記フォルダが出来ていると思います(***はユーザ名です)

C:\Users\***\CODESYS OPC UA PubSub SL\1.0.0.0

 

ただ、このプロジェクトと概要が掛かれたデータシートしか資料がありませんでした。

(細かいアドレス・パラメータ設定などの情報が少ない…)

 

Publishのプロジェクトを作ってみる

まずはPubSubのパッケージを使って、Publish側を作ってみました。

プロジェクトはCFCで作成しています。(パッケージがFB(ファンクションブロックのため))

(多分FBのプロジェクトでも出来ると思いますが、そこまでは確認できておらず)

 

ライブラリマネージャ→ライブラリの追加→PubSubのパッケージを追加します。

Pubと検索すれば、OPC UA PubSub SLのパッケージが出てくるはずです。

 

あとはUADPのブロックをCFCで繋げていきます。

OPC UAのPubSubにはUADPのメッセージマッピングが必要です。

 

データシート・サンプルを見る限り、基本的なPubの形は下記になると思われます。

PubSub型のメッセージ(UADP)の設定するには多くの対応が必要になります。

  • UADP.Configuration;
  • UADP.Connection;
  • UADP.WriterGroup;
  • UADP.Writer;
  • UADP.DataSet;

 

但しDatasetに関しては直接使えず、拡張してファンクションブロックを作りました。

(そのまま使ってビルドするとインスタンスの関係でエラーになります。)

Application→POU→ファンクションブロックでUADP.DataSetを拡張。

 

一応ビルドは通ったのでOPC UA PubSubのブロックのつなぎ方としては良さそうです。

ただこれ以降の設定方法の情報が少なすぎてギブアップしました。

  • コンフィグレーション含めてUADPブロックをEnableにする手順
  • IPアドレス・ポート・IDなどの設定

 

サンプルプログラムはメインプログラムCFCに記述する形で対応していました。

ただそれを真似してもエラーが出て、ちょっと分からずです。

 

open62541のCから実装した方が速いかも…

現時点ではCODESYSでのOPC UA PubSubの実行は少し難しそうです。

(誰か上手くできた人がいましたら教えてほしい…ぐらい)

 

どうしてもOPC UA PubSubをテストしたいのであれば、

OPC UAのオープンソース元であるopen62541 のCで実装した方が速そうです。

PubSub含めてソースのExampleは数多くあります。

open62541/examples/pubsub at master · open62541/open62541
Open source implementation of OPC UA (OPC Unified Architecture) aka IEC 62541 licensed under Mozilla Public License v2.0 - open62541/examples/pubsub at master ·...

 

まとめ

今回はCODESYSでのOPC UAのPubSubに関して紹介させていただきました。

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

CODESYSのOPC UA PubSubのパッケージはあります

ただ現時点ではPubSubの細かい設定が分からず、一旦ギブアップです

 

OPC UAの使い方の例に関しては下記記事でまとめています。

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

OPC UAとは?使い方・入門方法をまとめてみた

OPC UAとは?使い方・入門方法をまとめてみた
OPC UAの簡単な使い方をまとめてみました。 個人の環境でサーバー・クライアントを作ってテストすることが可能です。 「OPC UAを試してみたい!」という方にフリー(無料)で実施できる内容を紹介します。

コメント