Empess iData OPC UA Serverのコンフィグ

uaserver.config.xmlは、UAServerの起動時に読み込まれるEmpess iData OPC UA Serverのコンフィグファイルです。下記の設定項目を定義することが可能です。デフォルト値は、このページの最後に記載されています。

通信暗号化と認証方法の設定

OPC UAでは、ServerのClient認証で使用するOpenSSLのCertificateはCertificate Storeのものを使用することをお薦めしていますが、現実はFA機器をインターネットに接続できないために、自己署名のCertificateなどを使用する場合があります。その場合は下記に注意して下さい。

・暗号化を使用しかつ自己署名のCertificate(つまりVeriSign, Comodo, GeoTrustなどからCertificateを購入しない)を使用する場合は、ClientのCertificateをServerのCertificate信頼フォルダーに書き込まないとClientはServerに接続できません。

・ServerのCertificateが自己署名の場合は以下で対応して下さい。ServerのCertificateを信頼フォルダーに書き込む、ClientがServerのCertificateを検証する場合はClient側でServerのCertificateを信頼する必要があります。

上記に注意しuaserver.config.xmlファイルの<AdditionalSecurity>の暗号化と認証方法の定義します。<AdditionalSecurity>のタグ内で下記を定義します。

<ServerSecurity>
  <PolicyUri>*1</PolicyUri>
  <UserToken>*2</UserToken>
  <PolicyId>*3</PolicyId>
</ServerSecurity>

*1のPolicyUriは下記にある4つURLのうち1つを選択し、記載します。この記載により通信の暗号化の設定を定義します。

http://opcfoundation.org/UA/SecurityPolicy#None
http://opcfoundation.org/UA/SecurityPolicy#Basic128Rsa15
http://opcfoundation.org/UA/SecurityPolicy#Basic256
http://opcfoundation.org/UA/SecurityPolicy#Basic256Sha256
デフォルトはhttp://opcfoundation.org/UA/SecurityPolicy#Noneです。

*2のUserTokenは以下の2つの設定の使用が可能です。

1.Anonymousを使用する場合はAnonymousを指定します。
ユーザ名とパスワードなし(=つまりユーザの認証はしない)
2.UserNameを使用する場合はUserNameを使用します。
デフォルトはUserNameです。

認証できるユーザ名とパスワードは<UserList>内の定義を使用します。ユーザとパスワードを守るために通信暗号化のポリシーが http://opcfoundation.org/UA/SecurityPolicy#Noneの場合、Serverは自動的にAnonymous認証方法を用います。

*3のPolicyIdの設定条件は以下です。

1.0は使用できません。
2.AdditionalSecurityの中は一意でなければなりません。

ユーザとパスワードの設定

uaserver.config.xmlの<UserList>は認証するユーザ名とパスワードを設定します。現在の仕様では認証できるユーザは1023名でユーザの定義方法は以下の通りです。パスワードはプレーンテキストとして入力します。

<User>
  <UserNamer>ユーザ名 </UserNamer>
  <PlainPassword>ユーザのパスワード</PlainPassword>
</User>


動作リミットの設定

Serverの動作には下記の制限があります。

<SessionTimeout>

1.ミリ秒単位のセッションのタイムアウトまでの時間です。
2.要求が来たらタイムアウト時間をリセットします。
3.要求がないとタイムアウトを過ぎたらSeverはセッションを閉じます。

<MaxSessionCount>

1.同時にいくつのセッションを開くかの設定、つまり、同時アクセスデバイス数の設定です。

<MinPublishingInterval>

1.イベントによるデータ交換に関する変数です。
2.Nodeを観察できる最も短い時間を定義します。


<MaxPublishingInterval>

1.イベントによるデータ交換に関する変数です。
2.Nodeを観察できる最も長い期間です。
つまりNodeの観察時間はMinPublishingInterval<=観察時間=<MaxPublishingIntervalという関係が成立します。

<MaxSubscriptionCount>

1.同時にSeverはいくつSubscriptionを作るかの設定(全てのセッションの合計)です。

<MaxSamplingQueueSize>

1.Node情報が更新された場合通知します。
2.値は一時的に保存する通知の数です。通知が出て一時保存が制限値を超えた場合、設定により一番古い通知を消して新しい通知を入れます。Clientからの通知を受けたらServerは一時保存から一番古い通知を検索し消去します。

追加する情報モデルXMLファイルの設定

<AdditionalNodesetFile>は読み込む情報モデルのXMLファイルを定義します。<Nodeset2>の定義値はXMLインフォメーションファイルのパスで、UAServerと同じ階層に設定されています。

Empess iData OPC UA ServerではMeta ModelとBuilt-in Information Modelはデフォルトでロードされているので、Companion Information ModelとVender Specific Extensionsを追加で記述します。Serverは定義した順番に従ってロードするので依存関係に注意が必要です。例は以下の通りです。

<AdditionalNodesetFile>
  <Nodeset2>./a.xml</Nodeset2>
  <Nodeset2>./b.xml</Nodeset2>
  <Nodeset2>./c.xml</Nodeset>
</AdditionalNodesetFile>

Severは最初にa.xmlをAddressSpaceに読み込み、その後b.xmlとc.xmlと順番にAddressSpaceに情報を上書きで追加します。ロードされる情報モデルのxmlの指定がない場合はOpc.Ua.NodeSet2.xmlのみがロードされます。

ヒストリカルデータベースの設定

対象となるVariableのValue AttributeのヒストリカルモードがONの場合、ヒストリカルデータはuaserver.config.xmで指定されたデータベースに保存されます。OPC UAの仕様ではヒストリカルデータを保存する場合、データベースを使用することが規定されていますが、どのデータベースを使用するかなどの指定はありません。OPC UAの仕様ではヒストリカルモードがONのNodeごとにデータベーステーブルが作成されます。ClientのBrowse Service(検索)はFA機器のデータ受信時のタイムスタンプだけが検索可能です。

<SmEnableHistorian>

Trueの場合はヒストリカルデータを保存します。コンフィグ値は必ず全て小文字でtrueもしくはfalseを記述します。

<SmWriteSec>

1.ヒストリカルDBを管理するための内部情報です。
2.内部情報をファイルに登録する際の待ち時間です。

<SmValueLength>

1.単位はバイトです。
2.VariableNodeのデータをDBに保存するバイナリフィールドの大きさです。

<SmDatabaseDriver>

1.ヒストリカルDBが使用するODBCのドライバーです。

<SmDatabaseUserID>

1.ヒストリカルDBが使用するユーザ名です。

<SmDatabaseUserPassword>

1.ヒストリカルDBが使用するパスワードです。

<SmMaxResultsPerHistoryRead>

1.HistoryReadが返すデータ数の制限です。

<SmMaxOperationsPerHistoryUpdate>

1.HistoryUpdateする時の動作数の制限値です。

<SmThreadWritecount>

1.HistoryUpdateか高速データ登録動作をする場合の制限値です。

<SmThreadReadcount>

1.ThreadがHistoryReadの動作をする場合の制限値です。

Empess iData OPC UA ServerのヒストリカルデータはEmpress暗号化組込みデータベースに保存します。Empress暗号化組込みデータベースを使用することで以下を可能とします。

・Empressのフットプリントは2MB程度ですがデータの大量蓄積を可能とします。
・データの暗号化を可能とします。Empressは組込みデータベースで唯一AES256ビットの透過性暗号化が実装されています。データの漏洩を防止できます。

・Empress高速登録APIによりヒストリカルデータ用のEmpress組込み暗号化データベースに直接データの登録、更新を可能とします。通常の APIではClientのNodeIDの検索後に登録しますので登録スピードが遅くなります。
・Server内部でEmpress組込み暗号化データベースを利用しているため、ヒストリカルデータ保存用に他社製のデータベースを並行使用することが可能です。

Empressはデータベースベンダーです。ヒストリカルデータベースから正規化したRBDMSのテーブル設計へのコンサルティング、ヒストリカルデータベースからERPへのデータ連携ツールなどサポートを提供します。お気軽にご相談下さい。

AddressSpaceに関する設定

AddressSpaceに関する設定は以下の通りです。

<OutputAddressSpaceFile>

1.AddressSpaceをどのファイルに書き出すかの設定です。

<WriteAddressSpaceIntervalSeconds>

1.何秒間、AddressSpaceをファイルに書き出すかの設定です。もし0に設置した場合はシャットダウン時のみファイルにAddressSpaceを書き出します。

その他の設定

その他の設定は以下があります。

<EndpointUrl>

1.Serverが使用するIPアドレスです。

<ApplicationUri>

1.ServerのNamespaceUriとして使用します。
2.ClientがDiscovery要求時に返すのがApplicationUriです。
3.必ずCertificateのSANに格納します。

<ProductUri>

1.Discovery Seviceに返すUriです。

<ApplicationName>

1.Discovery Seviceに返すApplicationNameです。

デフォルトの設定

もし設定値がNullの場合はEmpess iData OPC UA Serverは下記のデフォルトの値を使用します。デフォルトの設定は以下の通りです。

             
名称 説明
EndpointUrl opc.tcp://127.0.0.1:4840   
ApplicationUri http://idata/UA/
ProductUri opc-ua.server.idata
TrustCertPath 1.Linux上では/home/esj/PKI/certs/
2.Windows上ではC:\PKI\certs
RevokedCertPath 1.Linux上では/home/esj/PKI/crl/
2.Windows上ではC:\PKI\crl
UntrustedCertPath 1.Linux上では/home/esj/PKI/crl/
2.Windows上ではC:\PKI\crl
ServerCertificate 1.Linux上では/home/esj/PKI/certs/server.der
2.Windows上ではC:\PKI\certs/server.der
ServerPrivateKey 1.Linux上では/home/esj/PKI/private/server.pfx
2.Windows上ではC:\PKI\private\server.pfx
ServePrivateKeyPass server
SessionTimeout 120000
SessionTimeout 120000
MaxSessionCount 100
MinPublishingInterval 100
MaxPublishingInterval 3600000
MaxSubscriptionCount 500
MaxSamplingQueueSize 1000
SmWriteSec 300
SmThreadcount 3
SmValueLength 4096
SmDatabaseDriver Empress Local Driver 10.20 (UTF8)