今回の記事ではFX5-OPCの使い方やOPC UAセキュリティなどに関するコンセプトを紹介します。さ、はじめよう!
FX5-OPC
OPC UAは、アプリケーションや機器間で情報を交換するためのアーキテクチャです。
FX5-OPCがサポートする形態では、OPC UAクライアント(外部のアプリケーションや機器)とOPC UAサーバー(FX5-OPC)の間で情報を交換します。
交換される情報は、オブジェクトと参照のセットとしてモデル化される。情報伝達には、TCP/IPネットワーク層上に構築された専用プロトコルが使用されます。OPC UA通信は、強力なエンドツーエンドのセキュリティにより、インターネットを含むあらゆる種類のネットワークに適しています。
Server start/stop
FX5-OPCは起動時にOPC UAサーバー機能を自動的に起動します。それは、OPC UAモジュール設定ツールで任意のタイミングで停止・再開が可能です。モジュールの停止を要求する場合、FX5-OPCはまず全てのOPC UAクライアントのTCPセッションを閉じてから「停止」状態に移行します。
OPC UAサーバーのポートに割り当てられたTCPソケットは、サーバーが停止している間はクローズされます。
Security
FX5-OPCは、transport層とアApplication層のOPC UA仕様のフルセキュリティスタックをサポートしています。
Security configuration
FX5-OPCのセキュリティは、GX Works3およびOPC UA Module Configuration Toolで設定でき、OPC UAモジュール設定ツールのセキュリティ・パラメータでは、OPC UAの一部として様々な設定をオフラインで編集することができます。
さらに、管理者パスワードを設定することで、プロジェクトに保存されたセキュリティパラメータを不正アクセスから保護することができます。
セキュリティパラメータは、OPC UAモジュール設定ツールのオンライン機能を使ってFX5-OPCに書き込むことができます。
Certificates
公開鍵とそれに対応する秘密鍵が埋め込まれた証明書は、OPC UAのセキュリティにおいて二重の役割を果たします。
第一に、OPC UAクライアントとOPC UAサーバー間の安全な接続を確立するために使用される非対称暗号化とメッセージ署名を実現するために必要です。
第二に、クライアントとサーバーの相互認証のためにPKI(公開鍵基盤)内でも使用されます。
セキュリティ強化のため、FX5-OPCサーバー証明書は、オフラインで編集し、OPC UAモジュール設定ツールのプロジェクトファイルに保存できるセキュリティ設定の一部ではありません。なので、サーバ証明書とその秘密鍵はFX5-OPC内にのみ格納されています。
OPC UAモジュール設定ツールをFX5-OPCに接続すると、FX5-OPCから読み込んだサーバ証明書の詳細情報が表示され、サーバー証明書は、OPC UA Module Configuration Toolで再生成または削除できます。
さらに、サーバー証明書には一定の有効期間があります。OPC UAサーバーが動作中にサーバー証明書の有効期間の80%が経過した場合、FX5-OPCはイベント(0902H)を通知します。
Rejected certificate
モジュールに拒否された証明書はFX5-OPCに保存される。これは、OPC UA Module Configuration Toolで読み込んで表示することができる。リストに表示されている証明書はすべて、trusted certificate listに移動できる。
接続中のOPC UAクライアントの認証に失敗した場合、そのクライアント証明書は拒否された証明書リストに追加される。
以下は、接続認証に失敗する例です。
- 接続中のOPC UAクライアントが自己署名証明書を提示したが、一致する証明書が現在の信頼済み証明書リストにない。
- 接続中のOPC UAクライアントがCA署名証明書を提示したが、認証局の証明書が現在の信頼済み証明書リストにない。
Operations when using self-signed certificates
証明書は、自己署名または外部の認証局によって署名される。
すべてのOPC UAクライアントとOPC UAサーバーが自己署名証明書を持っている場合、サーバーはクライアントとの安全な接続を確立するために、信頼できる証明書リストにクライアント証明書を格納する必要があります。
- OPC UAクライアントがサーバーに接続する際、クライアントは接続要求で自身の証明書を送信する。
- 次に、サーバはクライアント証明書が信頼済み証明書リストに存在するかどうかをチェックする。
- 証明書が信頼済み証明書リストに存在すれば、安全な接続を確立できる。そうでなければ、証明書は拒否された証明書リストに格納される。
OPC UAクライアントの操作は同じです。OPC UAクライアントは、サーバーと通信するために、サーバー証明書を自身の信頼済み証明書リストに保存する必要があります。
User authentication
FX5-OPCへのアクセスは、ユーザー名とパスワードを設定することで、権限のないユーザーによるアクセスを防ぐことができます。ユーザー名とパスワードは、PC UA Module Configuration Toolで設定可能です。
Endpoint
FX5-OPCには、セキュリティ設定に従ってセキュリティプロファイルのセットと組み合わせることができるURLがあります。
URLは以下の形式です。
opc.tcp://(IP address of an FX5-OPC):4840/Mitsubishi/FX5-OPC. |
Address space
FX5-OPCはOPC UA仕様のCore Server Interfaceをサポートしています。
Overview
FX5-OPC のAddress spaceは、GX Works3 プロジェクトのデータ(ラベル、データタイプ、POU など)にマッピングされた変数とオブジェクトが含まれ、PLCopen 情報モデルに従って整理されています。
アドレス空間には、サーバー・インスタンスの基本情報を提供する必須のサーバー・オブジェクトも含まれています。
User nodes
以下に、ユーザー定義プロジェクト・エレメントのインスタンスが存在するAddress spaceの例になります。
この部分の構造は PLCopen 情報モデルによって定義され、PLCのリソースの構造に従います。
Download Tools
FX5-OPCのセキュリティ設定を構築するにはOPC UA Module Configuration Tool が必要で、下記のLinkでDownloadしてください。
Installation Tools
先ほどDownloadしたSetup fileを解凍し、Setup.exeをダブルクリックします。
インストールする言語を設定し、OKで進みます。
Next>で進みます。
ライセンスに同意し、Next>で進みます。
個人情報を入力し、Next>で進みます。
ツールのインストール先を設定し、Next>で進みます。
Installを開始します。
しばらく待ちます…
Done!
Implemetation
Module Configuration
Module Configurationを開き、プロジェクトにFX5-OPCを追加しましょう。
FX5-OPCをDropします。
Done!FX5-OPCを追加しました。
Check Parameters
最初に追加されたモジュールをParameterのCheckを行い、Tool>Check Parameterします。
Done!
Program
OPC UA ServerのNodeとしてネットワークに公開する変数を定義します。Global Labelに2つのGlobal Label Listを追加します。
中にSimple Data Typeと構造体を定義します。
同時に、プログラムの中にOPC UA Nodeとして公開する変数をLocal Labelシートで定義します。
Add Module Label
もしFX5-OPCの状態を取得したい場合、Buffer Memoryをアクセスするか、もしくはModule Labelを追加してください。
Module Parameters
FX5-OPCモジュールの設定を行います。
Basic SettingsのTabを開きます。
IP addressなどをネットワーク構成に合わせて設定してください。
Address Space Parameter
今度はFX5-OPCモジュールのAddress Spaceを設定します。
こちらはAddress Spaceの設定画面です。
Updateボタンをクリックし変数リストを更新します。
アプリケーションに合わせて、OPC UA Serverに公開したい変数をCheck入れてください。
Max Ageは最小の更新周期を設定します。
また、各変数もしくは構造体変数に対して読み専用・もしくは読み書き可能を別々に設定できます。
Toolの一番下に現在の設定で占有したメモリサイズを確認できます。
Security Parameter
次はSecurity Parameterの設定を行います
こちらの画面でOPC UAに関するセキュリティの設定画面になります。
Create User
User Management>Create Userで新しいUserを作成します。そのUserはOPC UA ClientがFX5-OPCのOPC UA ServerにLoginするときに必要なLogin情報です。
User NameとPasswordの設定画面が表示します。
アプリケーションに合わせてUser NameとPasswordを設定しましょう。
Done!
Write to Module
GXWORKS3でパラメータを変更したあと、Online Operation>WriteでパラメータをFX5-OPCに書き込みます。
Yesでパラメータをモジュールに書き込みます。
YesでFX5-OPCモジュールを再起動します。
Done!
Module Diagnostics
Module Diagnostics Tabで現在のFX5-OPC モジュールの稼働状態を確認できます。
Server Certificate
次はFX5-OPCモジュールの証明証を管理するには”Server Certificate”の画面で行います。
Generate Certificate
Online Operation>Generate a New Self-Signed Certificateで新規証明証を生成します。
証明証に関するう情報を入力し、証明証を生成しましょう。
しばらく待ちます…
YesでFX5-OPC モジュールにあるOPC UA Serverを停止し、証明証をモジュールにDownloadしましょう。
YesでOPC UA Serverを再起動します。
Done!
証明証が発行されました!
Download
プロジェクトをCPU にDownloadします。
FX5-OPCモジュールのパラメータ書き込みするのCheckboxも忘れずに!
Result
PCから先程GXWORKSで設定した、FX5-OPCモジュールのIPをPingしてみます。
次はUaExpertを起動し、+ボタンで新規接続を追加します。
Add Server画面が表示されます。
Advanced TabをクリックしFX5-OPCモジュールの接続設定を行いましょう。
Endpoint Urlは下記のFormatに従って設定しましょう。
opc.tcp://(IP address of an FX5-OPC):4840/Mitsubishi/FX5-OPC
UsernameとPasswordを先ほど設定したUserを入力しましょう。
先ほど追加したServerを右クリック>Connectをクリックします。
FX5-OPCの証明証をTrustします。
もしFX5 CPUが時間設定してない場合、証明証の日付は合わなくなります。
例えば下記のように日付は1980から1990までなので、その証明証は使えないんです。
GXWORKS3に戻り、Online>Set Clockをクリックします。
CPUの時間調整画面が表示され、”Get time from PC”をクリックし、Executeで時間変更します。
Done!
Get Time from PLCをクリックし、現在CPUの時間を取得し、再確認しましょう。
CPUの時間を再設定しましたので、もう一回OPC UA Module Configuration Toolsから証明書を生成します。
今度UaExpertからFX5-OPCにアクセスするとき、FX5-OPCの証明書の時間は有効であり、使えるようになります。
ですが、FX5-OPCに接続拒否されるはずです。FX5-OPCはすべてのOPC UA Clientの初期接続に対して、手動で証明書を”Rejected List”から”Trust List”に移動する必要があります。
下記はOPC UA Module Configuration toolの画面ですが、Rejected ListのTabをRefreshボタンで更新すると、私たちのUaExpertの証明書が拒否リストに入ってるとわかります。
その証明書を選び>Move To Trustedをクリックします。
Done!現在私たちのUaExpertの証明書はTrust Listに移行しました。
最後はConfigurationをModuleに書き込むを忘れずに。
UaExpertとFX5-OPCが接続できました。
Done!私たちが先ほど定義した変数をOPC UA Server Nodeとしてアクセスできました。