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(シーケンサ)・ラダーがフリーで使える!おすすめ入門ソフト」を紹介します。フリー(無料)でラダーのプログラムを実際に動かす手順を解説しています。「無料で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...

 

まとめ

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

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

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

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

 

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

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

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

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

コメント