OPC UAでPLCと接続する (セキュリティあり)
OPC UAでセキュリティを有効にしてPLCへ接続する方法

ここではユーザ認証と暗号化ありで接続してみます
セキュリティなしをベースにセキュリティ部分のみ書いています
正式なやりかたは分かりませんがこの手順で接続できました
全体の流れ
- PLCのセキュリティ設定
- クライアントから一回接続してみる
- PLCのクライアント認証で拒否した証明書から信頼した証明書へ移動
- クライアントからもう一度接続する
PLCのOPC UAセキュリティ設定
OPC UAサーバ設定 - セキュリティ設定
オンラインの状態で
「OPC UAサーバ設定」を右クリックして「セキュリティ設定」を開きます
「匿名ログイン」を禁止にして、「セキュリティポリシー」のNoneのチェックを外して転送します
OPC UA Client から一旦接続(UaExpertの場合)
接続設定を新規作成するときにポリシーを選択してUsernameとPasswordを入力して接続設定を作成します
作成した接続設定でConnectしてみると
Error 'BadSecurityChecksFailed' was returned during OpenSecureChannel
というエラーが出力されます
そのまま次のクライアント認証に進みます
OPC UAクライアント証明書の登録方法
クライアント認証
PLCとオンライン状態でクライアント認証を選択します
信頼した証明書
クライアント認証画面の下の拒否した証明書にUaExpertもしくはProsys OPC UA Clientが拒否された証明書として残っています
「信頼した証明書へ移動」ボタンを押して信頼した証明書へ移します
クライアントからもう一度接続する
接続成功しました
携帯アプリやPCアプリなど
携帯アプリ(Prosys OPC UA Client)の場合
一旦接続
Add new connectionで追加するときにSecure connectionのチェックを入れて作成します
Secure connectionにチェックを入れてAddします
追加した接続設定をタップして接続を試します
エラーが表示されます
クライアント認証へ
そのままクライアント認証に進み「拒否した証明書」から「信頼した証明書」へ移動してもう一度接続します
再接続
接続に成功しました
NOTE
Prosys OPC UA Client のMobile版は匿名(Anonimouse)のみ対応のようなのでPLCの設定をAnonymouseにしてください
python C# などのアプリの場合も
一旦接続 → クライアント認証 → 再接続
よくある質問(FAQ)
BadSecurityChecksFailedとは何ですか?
OPC UAサーバ側でクライアント証明書が信頼されていない場合に発生するエラーです。
UaExpertで接続できない原因は?
クライアント証明書が拒否された証明書に登録されている可能性があります。
OPC UAの匿名ログインは使用できますか?
PLC設定で許可されていれば利用可能です。
