C#アプリのAPIをOPC UAサーバとして公開したいので下調べ
2022/12/19追記
試した結果をまとめました。 qiita.com
OPC UAサーバを開発するために情報を集めた。C#アプリケーションのRPC的なAPIを公開することが念頭にあるので、C言語向けだったりPLC向けだったり情報を垂れ流すのみ系は無視している。
OPC UAサーバを開発する方法
OPC UA対応を行うには、一般的には専用のハードウェアを使用するか、OPC Foundationが提供するOPC UA StackもしくはSDK(Software Development Kit)を活用してOPC UAを装置に組み込むという2つの方法がある。
OPC UAの技術進化、Pub-Sub通信やセキュリティ技術など実用面強化:いまさら聞けないOPC UA入門(3)(1/2 ページ) - MONOist
OPC UA Stackをまず見てみる。
GitHub - OPCFoundation/UA-.NETStandard: OPC Unified Architecture .NET Standard
サンプルを動かしてみたがなんかややこしい印象。XMLからクラスとか生成するにはUA Model Compilerを使うっぽい。GUIツールなどはなくXMLはベタ書きするらしい。
GitHub - OPCFoundation/UA-ModelCompiler: ModelCompiler converts XML files into C# and ANSI C
情報モデルを自作する方法についてはこちらが参考になりそう。
How to create custom OPC UA Information Models • OPC UA rocks
SDKの必要性
OPC UA SDKs and Toolkits | OPCconnect.com
While a stack and examples provides the basic communications infrastructure, a full SDK adds significant application layer libraries and classes to speed up application development. UA developers are recommended to look to one of the third-party vendors listed on this page.
公式実装は、OPC UA Stackとしてインフラストラクチャを提供するが、アプリケーション層の機能を提供する3rdパーティ製のSDKを使うことが推奨されている。なるほど、公式サンプルでの印象は間違っていなかった。
C#でOPC UAサーバを開発できるSDKを探してみると、Unified Automationのがドキュメント・サポートも含めて評判が良い。
OPC-UA client SDK for C#.NET application development - Stack Overflow
Choose SDK - Unified Automation
確かにOPC UA Stackの上にSDKレイヤが載っている。
SDK以外だと、汎用のOPC UAサーバプロセスの上で追加実装することで、既存インターフェースをOPC UAに変換するソリューションも見つかった。
東芝インフラシステムズのは.NET Framework 4.5と書いてあるので使えるかも。
https://www.toshiba.co.jp/sis/seigyo/cnt/prod/ciemac/opcua/index_j.htm
EmpressのはC/C++っぽいので使えない/使いにくそう。
どう開発するか
私の場合はAPIがまだないアプリケーションにOPC UAのAPIを設けようとしている。選択肢は三つ。
- アプリケーションに別途APIを用意してから、別ハードor別プロセスで動作する3rdパーティOPC UAサーバ製品から繋いで公開する
- アプリケーションに別途APIを用意してから、別プロセスで動作するOPC UAサーバも自分で用意してそこから繋いで公開する
- ローカルでの通信部分はセキュリティを気にしなくて良い
- 原価は抑えられるが自分で考えることも増える
- アプリケーションに直接OPC UAサーバを実装する
バランスが取れるのは2番目か。まず3番目で進めて評価とかして、後でOPC UAサーバ部分を分離する必要が出てから分離しても遅くはないか。
OPC UAの一般的な概要を理解するための記事
インダストリー4.0の推奨規格「OPC UA」、パブサブモデルでスマート工場に対応:産業用ネットワーク(1/2 ページ) - MONOist
インダストリー4.0で重要な役目を果たす、Windows生まれの「OPC UA」:IoT観測所(20)(1/3 ページ) - MONOist
OPC UAはなぜ「安全に」通信が行えるのか:OPC UA最新技術解説(3)(1/3 ページ) - MONOist
OPC UAとは何か?なぜ「製造業とITの橋渡し役」として最適なのか インダストリー4.0採用やOSS化で大注目|ビジネス+IT
オリジナル解説 OPC UAとは?- 第1回 OPC UAの概要 | オムロン制御機器
産業IoT界隈では良く使われるらしい国際規格OPC-UAについて調べた - Qiita
OPC UA Companion Specifications (OPC UA CS) | OPCconnect.com
書籍
概要をつかむ系
https://www.amazon.co.jp/OPC-Unified-Architecture-Information-Technology/dp/1530505119
仕様をきっちり理解する系
https://www.amazon.co.jp/OPC-Unified-Architecture-Wolfgang-Mahnke/dp/3642088422/