[OPC UA] C#でPLCと接続する

UA-.NETStandard

OPC FOUNDATION のサンプルを使って接続してみます
OPC FOUNDATION のホームページ

ダウンロード
ダウンロードはこちら GitHub OPCFoundation/UA-.NETStandard-Samples

サンプルの実行
  1. ダウンロードしたファイルを展開してVisualStudioで UA Sample Applications.sln を開きます
  2. ソリューション エクスプローラでUA Sample Clientをスタートプロジェクトに設定して実行します
  3. 表示されたフォームのアドレス記入枠にURLを記入して[Connect]ボタンを押すとセキュリティポリシーを選択するダイアログが表示されます (例: opc.tcp://192.168.0.21:4840)
  4. 接続が成功するとオブジェクトが表示されるのでPLC名称の下のGlovalVarsを開きます
  5. GlovalVarsの変数のいづれかで右クリックしてReadを選択するとReadダイアログが表示されます

  6. ReadダイアログのGlovalVarsの変数のうちモニタしたい変数を右の窓にドラッグして[Next>]ボタンを押します

  7. 変数の値が表示されます


コードの解析
解析中・・・

OPC UA .NET SDK

SDKを使って接続してみます
こちらは有償のSDKですがテストで使う分なら連続30分間の使用が可能です
アプリを再起動したらまた30分間テストできます

ダウンロード
OPC UA .NET SDK

参照に追加
  1. ダウンロードしたファイルを展開しておきます
  2. VisualStudioで新規でWindowsフォームアプリを作成します
  3. ソリューションマネージャで参照の追加を開いて展開したフォルダの下のnet471フォルダ(.NET framework 4.6.1の場合)のファイルを追加します
    (Opc.UaFx.Client.dllだけでもよさそうです)

SDKを使ったフォームを作成して実行
  1. フォームにボタンとテキストボックスを配置します

  2. コードはこんな感じです
    OpcClient("opc.tcp://192.168.0.21:4840")でインスタンスを作成して
    client.Connect()で接続して
    client.ReadNode("ns=4;s=uaInt")で変数の値を読み出します

  3. ボタンを押すと変数の値を読み出せます