OPC UAローカル検出サーバー(LDS)を活用した効率的なサーバー登録とクライアント接続
検出サーバーを使用すると、OPC UAクライアントは単一のポイントから1つ以上のOPC UAサーバーの詳細を取得できます。
OPC UA検出サーバーには2種類あります:
- ローカル検出サーバー(LDS)
- グローバル検出サーバー(GDS)
この記事では、OPC UAサーバーをLDSに登録する方法と、OPC UAクライアントがそのLDSを使用してOPC UAサーバーに接続する方法を紹介します。
導入
名前が示す通り、ローカル検出サーバー(LDS)は、1つ以上のOPC UAサーバーと同じデバイス上で実行できます。たとえば、PLCnext Controlデバイス上に、PLCnext Runtimeに含まれるOPC UAサーバーとともに、1つ以上のOPC UAサーバーをインストールできます。そのPLCnext Controlデバイス上にLDSもインストールされている場合、そのデバイス上のすべてのOPC UAサーバーをLDSに登録できます。すると、リモートOPC UAクライアントは、そのLDSに問い合わせるだけで、そのPLCnext Controlデバイス上で実行されているすべてのOPC UAサーバーの詳細を取得し、それらの詳細を使用して1つ以上のOPC UAサーバーに直接接続できます。
やや混乱を招くかもしれませんが、OPC UAサーバーをリモートマシン上で実行されているLDSに登録することも可能です。これにより、単一のLDSを使用して、デバイスのネットワーク全体で実行されているすべてのOPC UAサーバーをOPC UAクライアントが発見できるようになります。
OPC UA検出サーバーの優れた導入については、Unified Automationの以下の記事を参照してください:
https://documentation.unified-automation.com/uasdkdotnet/2.5.2/html/L2UaDiscoveryConnect.html
背景
この記事の手順を実行する前に、以下を理解しておく必要があります:
- 基本的なOPC UAサーバー設定
- PLCnext Controlデバイス上のOPC UAサーバーへのクライアント接続方法
- PLCnext Controlデバイスでのセキュリティ証明書の格納と管理方法
手順
この例では、ネットワーク構成は以下の通りです:
OPC UAサーバー: AXC F 2152 FW 2020.6.1 IPアドレス: 192.168.1.10 DNS名: axc-f-2152-1
ローカル検出サーバー: Windows 10 PC IPアドレス: 192.168.1.42 DNS名: mypc.mycompany.com
OPC UAクライアント: Debian 10 PC IPアドレス: 192.168.1.3
これらのIPアドレスとDNS名はこの記事全体で使用しますが、もちろん独自のアプリケーションに合わせて変更してください。
DNS名を設定
ネットワークにDNSサーバーが含まれていない場合、各デバイスのhostsファイルを編集します。
hostsファイルは以下のディレクトリにあります:
- Windows:
C:\Windows\System32\drivers\etc\ - Linux:
/etc/
以下の新しいDNSエントリを追加します(お使いのアプリケーションのIPアドレスとDNS名に置き換えてください):
PLCにLDSを追加:
192.168.1.42 mypc.mycompany.com
LDSマシンにPLCを追加:
192.168.1.10 axc-f-2152-1
OPC UAクライアントマシンにLDSとPLCの両方を追加:
192.168.1.42 mypc.mycompany.com
192.168.1.10 axc-f-2152-1
各デバイスで設定したDNS名(IPアドレスではない)にpingを実行して、すべてのエントリが正しいか確認します。
ローカル検出サーバーをインストール
OPC Foundationは、Windowsベースの実行ファイルの形でローカル検出サーバーを提供しています。これは以下のページから無料でダウンロードできます(登録が必要):
https://opcfoundation.org/developer-tools/samples-and-tools-unified-architecture/local-discovery-server-lds/
このLDSをWindowsマシンにダウンロードしてインストールします。
OPC UAクライアントをインストール
この例では、Unified AutomationのUaExpertを使用します:
https://www.unified-automation.com/products/development-tools/uaexpert.html
OPC UAクライアントマシンにUaExpertをダウンロードしてインストールします。
証明書を特定
さまざまなOPC UAコンポーネント(サーバー、クライアント、LDS)は、安全な通信を確保するために互いを信頼する必要があります。信頼は、公開証明書を交換することで達成されます。つまり、あるコンポーネントの公開証明書を、それを信頼する必要があるコンポーネントの「トラストストア」に配置します。
各コンポーネントの公開証明書は以下の場所で見つかります:
OPC UAサーバー
デバイス証明書は、デフォルトで「OPC UA-self-signed」Identity Storeにあります。独自の証明書を使用している場合は異なります。
OPC UAサーバー証明書は、PLCのWebベースド管理ページからダウンロードできます。他のコンポーネントで使用するために、PEM形式からDER形式に変換する必要があります。この変換には多数の無料ツールが使用できます。openssl Linuxコマンドラインツールもその一つです。使用する可能性のあるbashコマンドの例:
openssl x509 -outform der -in OPC\ UA-self-signed_certificate.crt -out uaserver.der
LDSサーバー
デフォルトでは、LDSの証明書は以下にあります:
C:\ProgramData\OPC Foundation\UA\pki\own\certs\ualdscert.der
OPC UAクライアント
- UaExpertで、Settings → Manage Certificates を選択。
- 「Copy Application Certificate To...」ボタンをクリック。
- 証明書を便利な場所に保存。
証明書をトラストストアにコピー
各証明書(.der形式)を、他の2つのコンポーネントのトラストストアにコピーします。
各コンポーネントのトラストストアは以下の場所にあります:
OPC UAサーバー(PLC)
トラストストアはフォルダ /opt/plcnext/Security/TrustStores/Empty/trusted です。
LDS
トラストストアはフォルダ C:\ProgramData\OPC Foundation\UA\pki\trusted\certs です。
OPC UAクライアント(UaExpert)
- UaExpertで、Settings → Manage Certificates を選択。
- 「Open Certificate Location」ボタンをクリック。これがUaExpertのトラストストアです。
すべてのファイアウォールを確認
最低限、LDSサーバーのファイアウォールがポート4840でのトラフィックを許可していることを確認してください。
PLCnext EngineerでOPC UAサーバーを設定
PLCnext EngineerのOPC UA設定ウィンドウで:
- 以下を確認:
- DNS名が前述で設定したものと同じであること
- 「変数の可視性」が「None」ではないこと
- 検出登録を有効化
- サーバーURLを
opc.tcp://mypc.mycompany.com:4840に設定(お使いのLDSマシンのDNS名に置き換えてください)
PLCnext EngineerプロジェクトをPLCに書き込みます。
PLCはOPC UAサーバーをLDSに自動的に登録しようとします。
OPC UAサーバーを検出して接続
- UaExpertで、ツールバーの+(プラス)ボタンをクリック。
- ツリービューの「Local」ブランチを右クリックし、「Edit Discovery URL」を選択。
- テキストボックスに
opc.tcp://mypc.mycompany.com:4840を入力(お使いのLDSマシンのDNS名に置き換えてください)、OKをクリック。
OPC UAサーバーがツリーのLocalブランチに表示されるはずです。これらの詳細を使用して、通常の方法でOPC UAサーバーに接続できます。
トラブルシューティング
- LDSログファイルはここにあります:
C:\ProgramData\OPC Foundation\UA\Discovery\opcualds.logLogLevel(およびその他多くのパラメータ)は以下のファイルで変更可能:C:\ProgramData\OPC Foundation\UA\Discovery\ualds.iniLogLevel = debugで最も詳細なログ情報が得られます。LDS設定を変更した後、Windowsの「サービス」コンソールでLDSを再起動する必要がある場合があります。LDSの表示名は「OPC UA Local Discovery Server」です。 - LDSがOPC UAサーバーのURLを、DNS名に
.local.を付加して返す場合があります。このDNS名はマルチキャストmDNSサーバーで解決可能である必要があります。このDNS名が解決できない場合、URLを含むエラーメッセージがUaExpertのログウィンドウに表示されます。.local.サフィックス付きDNS名を解決するマルチキャストDNSサーバーのインストールと設定については、このチュートリアルの範囲外です。
結論
ネットワーク上にOPC UAサーバーが1つしかない場合、LDSを使用するメリットはほとんどありません。しかし、多数のOPC UAサーバーを含むネットワークでは、LDSがそれらのサーバーをブラウズして接続する便利な方法を提供します。
産業技術
- 地元の金属加工業者と提携することで信頼性とコスト効率が向上する理由
- ディスカバリーフェーズの極意:開発プロジェクト成功を導く理由
- ローカルvsグローバル生産制御:どちらのシステムが効率を推進するか
- B2B企業のための実証済みSEO戦略:可視性と成長を加速させる
- GDSプッシュ管理によるOPC UA証明書の一元展開
- OPC UAクライアント経由でPLCファンクションブロックを呼び出し:実践ガイド
- 地元工作機械工場との提携:試作から量産へ
- DiscoveryのIoTソリューションがサプライチェーン管理を変革
- C++変数のスコープを理解する:ローカル変数とグローバル変数
- Python グローバル・ローカル・非ローカル変数を理解する
- Java 10のローカル変数型推論(var)をマスターする