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) |