OPC UAサーバを実装してみた

cactuaroid.hatenablog.com

これの続き。チャットサーバとして、OPC UAサーバのサンプル実装をした。その際UA-.NETStandardのサンプルや各所に散らばっている資料を理解する必要があったので、それらのメモを含めて実装ガイドとしてQiitaに記事を公開した。

github.com

qiita.com

gRPCのprotoファイルからOPC UAサーバのデザインXMLを生成できると良いかもと思ったのでそれも作った。

github.com

以下雑感。

OPC UAはかなり色々なことができる仕組みなので、公式サンプルには色々な実装が含まれていたり、組み込み機器のインターフェースっぽい雰囲気になるよう意識しているのかサンプルとしては冗長な部分も多かった。私としてはRPCサーバ的な実装をしたかったので、それに必要な部分だけエッセンスを抽出してサンプルを書いたところ、シンプルにそぎ落とせたと思う。

UA-.NETStandardを使ってサーバ実装した感想としては、すべてをノードで扱うにあたってなんというか全部手書きする感覚で、やはりgRPCサーバのようなサクサク作れる感はまったくなかった。とはいえ、ちょっとしたものを作るのであれば有償SDKを使うまでもなさそう。

私が関わっているプロジェクトでgRPCとOPC UAのどっちでサーバを用意する?という話が出た時には、選べるならgRPCにしましょうということで進めた。OPC UAじゃないとダメなプロジェクトが出てきたときに改めて製品開発レベルの知見が得られればまとめたいと思う。