翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
OPC UA ソースをセットアップする
AWS IoT SiteWise コンソールまたは SiteWise Edge ゲートウェイ機能を使用して、ローカル OPC UA サーバーを表す UA ソースを定義して SiteWise Edge OPC ゲートウェイに追加できます。
トピック
OPC UA ソースを設定する (コンソール)
コンソールを使用して、次の手順で OPC UA ソースを設定できます。
AWS IoT SiteWise コンソールを使用して OPC UA ソースを設定するには
-
AWS IoT SiteWise コンソール
に移動します。 -
ナビゲーションペインで、[ Gateways] を選択します。
-
SiteWise エッジゲートウェイを選択して OPC UA ソースを追加します。
-
[Add data source] (データソースを追加する) を選択する。
-
ソースの名前を入力します。
-
データソースサーバーの [Local endpoint (ローカルエンドポイント) ] を入力します。エンドポイントには、IP アドレスまたはホスト名を指定することができます。また、ローカルエンドポイントにポート番号を追加することもできます。例えば、ローカルエンドポイントは次のようになります。
opc.tcp://203.0.113.0:49320
注記
SiteWise Edge ゲートウェイに
Deployment type
Industrial Edge デバイスの - 新しい があり、Edge アプリケーションと同じ Industrial Edge Device で実行されている AWS IoT SiteWise Edge OPC UA Server アプリケーションからデータを取り込む場合は、「」と入力しますopc.tcp://ie-opcua:48010
。 -
(オプション) 選択用のノード ID には、ノードフィルターを追加して、 に取り込まれるデータストリームを制限します AWS クラウド。デフォルトでは、 SiteWise Edge ゲートウェイはサーバーのルートノードを使用してすべてのデータストリームを取り込みます。ノードフィルターを使用すると、 でモデル化するデータへのパスのみを含めることで、 SiteWise エッジゲートウェイの起動時間とCPU使用量を削減できます AWS IoT SiteWise。デフォルトでは、 SiteWise エッジゲートウェイは で始まるものを除くすべての OPC UA パスをアップロードします
/Server/
。OPC UA ノードフィルターを定義するには、ノードパスと*
および**
ワイルドカード文字を使用できます。詳細については、「OPC UA ノードフィルターを使用する」を参照してください。 -
送信先 で、ソースデータの送信先を選択します。
-
AWS IoT SiteWise リアルタイム – データを AWS IoT SiteWise ストレージに直接送信するには、これを選択します。データをリアルタイムで取り込み、モニタリングし、エッジでデータを処理します。
-
AWS IoT SiteWise Amazon S3 を使用してバッファリング — Parquet 形式でデータを Amazon S3 に送信し、 AWS IoT SiteWise ストレージにインポートします。データをバッチで取り込み、履歴データを費用対効果の高い方法で保存するには、このオプションを選択します。任意の Amazon S3 バケットの場所と、Amazon S3 にデータをアップロードする頻度を設定できます。への取り込み後にデータを処理する方法を選択することもできます AWS IoT SiteWise。データと Amazon S3 の両方 SiteWiseで使用できるようにするか、Amazon S3 からデータを自動的に削除するかを選択できます。 Amazon S3
-
Amazon S3 バケットはステージングおよびバッファリングメカニズムであり、parquet 形式のファイルをサポートしています。
-
ストレージ に AWS IoT SiteWise データをインポート チェックボックスをオンにすると、データは最初に Amazon S3 にアップロードされ、次にストレージにアップロード AWS IoT SiteWise されます。
-
Amazon S3 からデータを削除するチェックボックスをオンにすると、データは SiteWise ストレージにインポートされた後に Amazon S3 から削除されます。
-
チェックボックスをオフにすると、Amazon S3 からデータを削除すると、データは Amazon S3 と SiteWise ストレージの両方に保存されます。
-
-
チェックボックスをオフにすると、データをストレージ に AWS IoT SiteWise インポートすると、データは Amazon S3 にのみ保存されます。 SiteWise ストレージにはインポートされません。
AWS IoT SiteWise が提供するさまざまなストレージオプションの詳細については、データストレージの管理「」を参照してください。料金オプションの詳細については、AWS IoT SiteWise 「 の料金
」を参照してください。 -
-
AWS IoT Greengrass ストリームマネージャー – AWS IoT Greengrass ストリームマネージャーを使用して、 の AWS クラウド チャネル AWS IoT Analytics、Amazon Kinesis Data Streams のストリーム、 のアセットプロパティ AWS IoT SiteWise、または Amazon Simple Storage Service (Amazon S3) のオブジェクトにデータを送信します。詳細については、「 AWS IoT Greengrass Version 2 デベロッパーガイド」の AWS IoT Greengrass 「 Core でデータストリームを管理する」を参照してください。
AWS IoT Greengrass ストリームの名前を入力します。
データソースを設定するときに、選択用のノード ID を使用してデータフローの送信先を決定します。
-
Amazon S3 を使用して同じデータがAWS IoT SiteWise リアルタイムとバッファリングの両方に発行される場合は、両方の送信先に発行する 2 つのデータソースを追加する必要があります。 AWS IoT SiteWise Amazon S3
-
データを分割して、その一部をAWS IoT SiteWise リアルタイム に発行し、もう一方の部分を AWS IoT SiteWise Amazon S3 を使用してバッファリングするには、次のデータエイリアスをフィルタリングする必要があります。
/Alias01/Data1 /Alias02/Data1 /Alias03/Data1 /Alias03/Data2
例えば、
/**/Data1
ノードフィルター、AWS IoT SiteWise リアルタイム を指すデータソースと、Amazon S3 を使用して/**/Data2
バッファリングされた を指す別のデータソースを追加できます。 AWS IoT SiteWise Amazon S3
-
-
詳細設定ペインでは、次の操作を実行できます。
-
ソースサーバーと SiteWise Edge ゲートウェイ間で転送中の接続とデータのメッセージセキュリティモードを選択します。このフィールドは、OPCUA セキュリティポリシーとメッセージセキュリティモードの組み合わせです。OPC UA サーバーに指定したものと同じセキュリティポリシーとメッセージセキュリティモードを選択します。
-
ソースで認証が必要な場合は、認証設定リストから AWS Secrets Manager シークレットを選択します。 SiteWise Edge ゲートウェイは、このデータソースに接続するときに、このシークレットの認証情報を使用します。シークレットをデータソース認証に使用するには、 SiteWise エッジゲートウェイの AWS IoT Greengrass コンポーネントにシークレットをアタッチする必要があります。詳細については、「データソース認証の設定」を参照してください。
ヒント
データサーバーに、[Allow anonymous login (匿名ログインを許可) ] というオプションがある場合があります。このオプションが [はい] の場合、ソースは認証を必要としません。
-
(オプション) データストリームプレフィックスを有効にする - オプション を選択して、データストリームプレフィックスをアクティブ化できます。
-
データストリームプレフィックス を入力します。 SiteWise Edge ゲートウェイは、このソースからのすべてのデータストリームにこのプレフィックスを追加します。データストリームのプレフィックスを使用して、異なるソースから同じ名前を持つデータストリームを区別します。各データストリームは、アカウント内で一意の名前を持つ必要があります。
-
-
(オプション) データ型変換オプションを選択すると、サポートされていない OPC UA データ型を に取り込む前に文字列に変換できます AWS IoT SiteWise。単純なデータ型の配列値をJSON文字列に変換し、 DateTime データ型を 8601 ISO 文字列に変換します。詳細については、「サポートされていないデータ型の変換」を参照してください。
-
(オプション) プロパティグループ で、新しいグループを追加 を選択します。
-
プロパティグループの「名前」を入力します。
-
[Properties] (プロパティ) の場合。
-
ノードパス には、OPCUA ノードフィルターを追加して、 にアップロードされる OPC UA パスを制限します AWS IoT SiteWise。形式は、選択 のノード ID に似ています。
-
-
[Group settings] (グループ設定) については、次のようにします。
-
データ品質設定 で、 AWS IoT SiteWise コレクターが取り込むデータ品質のタイプを選択します。
-
スキャンモード設定 では、スキャンモード を使用して標準のサブスクリプションプロパティを設定します。サブスクライブまたはポーリング を選択できます。スキャンモードの詳細については、 OPC UA でデータ取り込み範囲をフィルタリングする を参照してください。
-
-
-
-
[Save] を選択します。
OPC UA ソースを設定する (CLI)
を使用して SiteWise Edge ゲートウェイの OPC UA データソースを定義できます AWS CLI。これを行うには、OPCUA 機能設定JSONファイルを作成し、 update-gateway-capability-configuration
この機能には次の名前空間があります。
-
iotsitewise:opcuacollector:2
リクエストの構文
{ "sources": [ { "name": "
string
", "endpoint": { "certificateTrust": { "type": "TrustAny
" | "X509
", "certificateBody": "string
", "certificateChain": "string
", }, "endpointUri": "string
", "securityPolicy": "NONE
" | "BASIC128_RSA15
" | "BASIC256
" | "BASIC256_SHA256
" | "AES128_SHA256_RSAOAEP
" | "AES256_SHA256_RSAPSS
", "messageSecurityMode": "NONE
" | "SIGN
" | "SIGN_AND_ENCRYPT
", "identityProvider": { "type": "Anonymous
" | "Username
", "usernameSecretArn": "string
" }, "nodeFilterRules": [ { "action": "INCLUDE
", "definition": { "type": "OpcUaRootPath
", "rootPath": "string
" } } ] }, "measurementDataStreamPrefix": "string
", "typeConversions": { "array": "JsonArray
", "datetime": "ISO8601String
" }, "destination": { "type": "StreamManager
", "streamName": "string
", "streamBufferSize":integer
, }, "propertyGroups": [ { "name": "string
", "nodeFilterRuleDefinitions": [ { "type": "OpcUaRootPath
", "rootPath": "string
" } ], "deadband": { "type": "PERCENT
" | "ABSOLUTE
", "value":double
, "eguMin":double
, "eguMax":double
, "timeoutMilliseconds":integer
}, "scanMode": { "type": "EXCEPTION
" | "POLL
", "rate":integer
, "timestampToReturn": "SOURCE_TIME
" | "SERVER_TIME
" }, "dataQuality": { "allowGoodQuality":true
|false
, "allowBadQuality":true
|false
, "allowUncertainQuality":true
|false
}, "subscription": { "dataChangeTrigger": "STATUS
" | "STATUS_VALUE
" | "STATUS_VALUE_TIMESTAMP
", "queueSize":integer
, "publishingIntervalMilliseconds":integer
, "snapshotFrequencyMilliseconds":integer
} } ] } ] }
リクエスト本文
- ソース
-
それぞれに次の情報が含まれている OPC UA ソース定義構造のリスト。
- name
-
ソースの一意のわかりやすい名前。
- エンドポイント
-
次の情報を含むエンドポイント構造。
- certificateTrust
-
次の情報を含む証明書信頼ポリシー構造。
- type
-
ソースに対する証明書信頼モード。以下のうちのひとつを選択します。
-
TrustAny
– SiteWise Edge ゲートウェイは、OPCUA ソースに接続するときに証明書を信頼します。 -
X509
– SiteWise Edge ゲートウェイは、OPCUA ソースに接続するときに X.509 証明書を信頼します。このオプションを選択する場合は、certificateTrust
でcertificateBody
を定義する必要があります。certificateTrust
でcertificateChain
を定義することもできます。
-
- certificateBody
-
(オプション) X.509 証明書の本文。
このフィールドは、
certificateTrust
でtype
にX509
を選択する場合に必須です。 - certificateChain
-
(オプション) X.509 証明書の信頼チェーン。
このフィールドは、
certificateTrust
でtype
にX509
を選択した場合のみ使用されます。
- endpointUri
-
OPC UA ソースのローカルエンドポイント。たとえば、ローカルエンドポイントは
opc.tcp://203.0.113.0:49320
のようになります。 - securityPolicy
-
OPC UA ソースから読み取られるメッセージを保護するために使用するセキュリティポリシー。以下のうちのひとつを選択します。
-
NONE
– SiteWise Edge ゲートウェイは OPC UA ソースからのメッセージを保護しません。別のセキュリティポリシーを選択することをお勧めします。このオプションを選択する場合は、messageSecurityMode
にNONE
を選択する必要もあります。 -
BASIC256_SHA256
-Basic256Sha256
のセキュリティポリシーです。 -
AES128_SHA256_RSAOAEP
-Aes128_Sha256_RsaOaep
のセキュリティポリシーです。 -
AES256_SHA256_RSAPSS
-Aes256_Sha256_RsaPss
のセキュリティポリシーです。 -
BASIC128_RSA15
– (廃止)Basic128Rsa15
セキュリティポリシーは、セキュリティと見なされなくなったため、OPCUA 仕様では非推奨です。別のセキュリティポリシーを選択することをお勧めします。詳しくは、Basic128Rsa15をご覧ください。 -
BASIC256
– (廃止)Basic256
セキュリティポリシーは、セキュリティと見なされなくなったため、OPCUA 仕様では非推奨です。別のセキュリティポリシーを選択することをお勧めします。詳しくは、[Basic256]をご覧ください。
重要
NONE
以外のセキュリティポリシーを選択した場合、messageSecurityMode
はSIGN
またはSIGN_AND_ENCRYPT
を選択する必要があります。Edge SiteWise ゲートウェイを信頼するようにソースサーバーを設定する必要があります。詳細については、「Edge ゲートウェイを信頼するように OPC UA SiteWise ソースサーバーを設定する」を参照してください。 -
- messageSecurityMode
-
OPC UA ソースへの接続を保護するために使用するメッセージセキュリティモード。以下のうちのひとつを選択します。
-
NONE
– SiteWise Edge ゲートウェイは OPC UA ソースへの接続を保護しません。他のメッセージセキュリティモードを選択することをお勧めします。このオプションを選択する場合は、securityPolicy
にNONE
を選択する必要もあります。 -
SIGN
– SiteWise Edge ゲートウェイと OPC UA ソース間で転送中のデータは署名されますが、暗号化されません。 -
SIGN_AND_ENCRYPT
– ゲートウェイと OPC UA ソース間で転送中のデータは署名され、暗号化されます。
重要
メッセージセキュリティモードを
NONE
以外を選択した場合、securityPolicy
はNONE
以外を選択する必要があります。Edge SiteWise ゲートウェイを信頼するようにソースサーバーを設定する必要があります。詳細については、「Edge ゲートウェイを信頼するように OPC UA SiteWise ソースサーバーを設定する」を参照してください。 -
- identityProvider
-
次の情報を含む ID プロバイダ構造。
- type
-
ソースで必要な認証資格情報のタイプ。以下のうちのひとつを選択します。
-
Anonymous
- ソースは接続に認証を必要としません。 -
Username
- ソースに接続するには、ユーザー名とパスワードが必要です。このオプションを選択する場合は、identityProvider
でusernameSecretArn
を定義する必要があります。
-
- usernameSecretArn
-
(オプション) AWS Secrets Manager シークレットARNの 。 SiteWise Edge ゲートウェイは、このソースに接続するときに、このシークレットの認証情報を使用します。シークレットをソース認証に使用するには、 SiteWise エッジゲートウェイの IoT SiteWise コネクタにシークレットをアタッチする必要があります。詳細については、「データソース認証の設定」を参照してください。
このフィールドは、
identityProvider
でtype
にUsername
を選択する場合に必須です。
- nodeFilterRules
-
AWS クラウドに送信する OPC UA データストリームパスを定義するノードフィルタールール構造のリスト。ノードフィルターを使用すると、 でモデル化するデータへのパスのみを含めることで、 SiteWise エッジゲートウェイの起動時間とCPU使用量を削減できます AWS IoT SiteWise。デフォルトでは、 SiteWise エッジゲートウェイは で始まるものを除くすべての OPC UA パスをアップロードします
/Server/
。OPC UA ノードフィルターを定義するには、ノードパスと*
および**
ワイルドカード文字を使用できます。詳細については、「OPC UA ノードフィルターを使用する」を参照してください。リスト内の各構造には、次の情報が含まれている必要があります。
- アクション
-
このノードフィルタルールのアクション。以下のオプションを選択できます。
-
INCLUDE
– SiteWise Edge ゲートウェイには、このルールに一致するデータストリームのみが含まれます。
-
- 定義
-
次の情報を含むノードフィルタルール構造。
- type
-
このルールのノードフィルタパスのタイプ。以下のオプションを選択できます。
-
OpcUaRootPath
– SiteWise Edge ゲートウェイは、OPCUA パス階層のルートに対してこのノードフィルターパスを評価します。
-
- rootPath
-
OPC UA パス階層のルートに対して評価するノードフィルターパス。このパスは
/
から始まる必要があります。
- measurementDataStreamプレフィックス
-
ソースからのすべてのデータストリームの前に付加する文字列。 SiteWise Edge ゲートウェイは、このソースからのすべてのデータストリームにこのプレフィックスを追加します。データストリームのプレフィックスを使用して、異なるソースから同じ名前を持つデータストリームを区別します。各データストリームは、アカウント内で一意の名前を持つ必要があります。
- typeConversions
-
サポートされていない OPC UA データ型で使用できる変換のタイプ。各データ型は文字列に変換されます。詳細については、「サポートされていないデータ型の変換」を参照してください。
- 配列
-
文字列に変換される単純な配列データ型。以下のオプションを選択できます。
-
JsonArray
– 単純な配列データ型を文字列に変換することを選択することを示します。
-
- datetime
-
文字列に変換される DateTime データ型。以下のオプションを選択できます。
-
ISO8601String
– ISO8601 データ型を文字列に変換することを選択することを示します。
-
- 送信先
-
データストリームの送信先の構成。
- type
-
デスティネーションの型。
- streamName
-
ストリームの名前。ストリーム名は一意である必要があります。
- streamBufferSize
-
ストリームのバッファサイズ。これは UA OPC ソースからのデータフローを管理するために重要です。
- propertyGroups
-
(オプション) プロトコルが要求する
deadband
とscanMode
を定義するプロパティグループのリストです。- name
-
プロパティグループの名前です。これは一意な識別子である必要があります。
- デッドバンド
-
deadband
値は、データがクラウドに送信される前に発生する必要があるデータポイントの値の最小変更を定義します。これには、以下の情報が含まれています。- type
-
対応するデッドバンドの種類。以下のオプションを選択できます。
-
ABSOLUTE
– データポイントがクラウドに送信されるのに十分な大きさであると見なすために必要な最小絶対変更を指定する固定値。 -
PERCENT
– 最後に送信されたデータポイントの値に対する最小変更をパーセンテージで指定する動的値。このタイプのデッドバンドは、データ値が時間の経過とともに大幅に変化する場合に便利です。
-
- value
-
デッドバンドの値。
type
がABSOLUTE
のとき、この値は単位なしの 2 倍とななります。type
がPERCENT
の場合、1
と100
の間の 2 倍の値となります。 - eguMin
-
(オプション)
PERCENT
デッドバンドを使用する場合の工学単位の最小値。OPC UA サーバーにエンジニアリングユニットが設定されていない場合は、これを設定します。 - eguMax
-
(オプション)
PERCENT
デッドバンドを使用する場合の工学単位の最大値。OPC UA サーバーにエンジニアリングユニットが設定されていない場合は、これを設定します。 - timeoutMilliseconds
-
タイムアウトまでの時間をミリ秒単位で指定する。最小値は
100
です。
- scanMode
-
次の情報を含む
scanMode
構造体。- type
-
scanMode
の対応型。有効な値は、POLL
およびEXCEPTION
です。 - レート
-
スキャンモードのサンプリング間隔。
- timestampToReturn
-
タイムスタンプのソース。以下のオプションを選択できます。
-
SOURCE_TIME
– デバイスからのタイムスタンプを使用します。 -
SERVER_TIME
– サーバーのタイムスタンプを使用します。
-
- nodeFilterRule定義
-
(オプション) プロパティグループに含めるノードパスのリスト。プロパティグループの重複があってはいけません。このフィールドに値を指定しなかった場合、グループにはルート下のすべてのパスが含まれ、追加のプロパティグループを作成することはできません。
nodeFilterRuleDefinitions
構造体には、以下の情報が含まれています。- type
-
OpcUaRootPath
は、サポートされている唯一のタイプです。これは、 の値が OPC UA ブラウジングスペースのルートに対する相対パスrootPath
であることを指定します。 - rootPath
-
プロパティグループに含めるパス (ルートからの相対パス) を指定したカンマ区切りのリスト。
機能の設定例
次の例では、JSONファイルに保存されているペイロードから OPC UA SiteWise Edge ゲートウェイ機能設定を定義します。
aws iotsitewise update-gateway-capability-configuration \ --capability-namespace "iotsitewise:opcuacollector:2" \ --capability-configuration file://opc-ua-configuration.json
例 : OPC UA ソース設定
次のopc-ua-configuration.json
ファイルは、基本で安全でない OPC UA ソース設定を定義します。
{ "sources": [ { "name": "Wind Farm #1", "endpoint": { "certificateTrust": { "type": "TrustAny" }, "endpointUri": "opc.tcp://203.0.113.0:49320", "securityPolicy": "NONE", "messageSecurityMode": "NONE", "identityProvider": { "type": "Anonymous" }, "nodeFilterRules": [] }, "measurementDataStreamPrefix": "" } ] }
例 : プロパティグループが定義された OPC UA ソース設定
次のopc-ua-configuration.json
ファイルは、定義されたプロパティグループを使用して、基本的で安全でない OPC UA ソース設定を定義します。
{ "sources": [ { "name": "source1", "endpoint": { "certificateTrust": { "type": "TrustAny" }, "endpointUri": "opc.tcp://10.0.0.9:49320", "securityPolicy": "NONE", "messageSecurityMode": "NONE", "identityProvider": { "type": "Anonymous" }, "nodeFilterRules": [ { "action": "INCLUDE", "definition": { "type": "OpcUaRootPath", "rootPath": "/Utilities/Tank" } } ] }, "measurementDataStreamPrefix": "propertyGroups", "propertyGroups": [ { "name": "Deadband_Abs_5", "nodeFilterRuleDefinitions": [ { "type": "OpcUaRootPath", "rootPath": "/Utilities/Tank/Temperature/TT-001" }, { "type": "OpcUaRootPath", "rootPath": "/Utilities/Tank/Temperature/TT-002" } ], "deadband": { "type":"ABSOLUTE", "value": 5.0, "timeoutMilliseconds": 120000 } }, { "name": "Polling_10s", "nodeFilterRuleDefinitions": [ { "type": "OpcUaRootPath", "rootPath": "/Utilities/Tank/Pressure/PT-001" } ], "scanMode": { "type": "POLL", "rate": 10000 } }, { "name": "Percent_Deadband_Timeout_90s", "nodeFilterRuleDefinitions": [ { "type": "OpcUaRootPath", "rootPath": "/Utilities/Tank/Flow/FT-*" } ], "deadband": { "type":"PERCENT", "value": 5.0, "eguMin": -100, "eguMax": 100, "timeoutMilliseconds": 90000 } } ] } ] }
例 : プロパティを含む OPC UA ソース設定
の次のJSON例では、次のプロパティを使用して OPC UA ソース設定opc-ua-configuration.json
を定義します。
-
すべての証明書を信頼します。
-
メッセージの保護に
BASIC256
セキュリティポリシーを使用します。 -
SIGN_AND_ENCRYPT
モードを使用して接続をセキュリティ保護します。 -
Secrets Manager シークレットに保存されている認証資格情報を使用します。
-
パスが
/WindFarm/2/WindTurbine/
で始まるものを除き、データストリームを除外します。 -
この「Wind Farm #2」と別のエリアの「Wind Farm #2」を区別するために、すべてのデータストリームパスの先頭に
/Washington
を追加します。
{ "sources": [ { "name": "Wind Farm #2", "endpoint": { "certificateTrust": { "type": "TrustAny" }, "endpointUri": "opc.tcp://203.0.113.1:49320", "securityPolicy": "BASIC256", "messageSecurityMode": "SIGN_AND_ENCRYPT", "identityProvider": { "type": "Username", "usernameSecretArn": "arn:aws:secretsmanager:
region
:123456789012:secret:greengrass-windfarm2-auth-1ABCDE" }, "nodeFilterRules": [ { "action": "INCLUDE", "definition": { "type": "OpcUaRootPath", "rootPath": "/WindFarm/2/WindTurbine/" } } ] }, "measurementDataStreamPrefix": "/Washington" } ] }
例 : 証明書の信頼を持つ OPC UA ソース設定
の次のJSON例では、次のプロパティを使用して OPC UA ソース設定opc-ua-configuration.json
を定義します。
-
指定された X.509 証明書を信頼します。
-
メッセージの保護に
BASIC256
セキュリティポリシーを使用します。 -
SIGN_AND_ENCRYPT
モードを使用して接続をセキュリティ保護します。
{ "sources": [ { "name": "Wind Farm #3", "endpoint": { "certificateTrust": { "type": "X509", "certificateBody": "-----BEGIN CERTIFICATE----- MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w 0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5 jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw 3rrszlaEXAMPLE= -----END CERTIFICATE-----", "certificateChain": "-----BEGIN CERTIFICATE----- MIICiTCCAfICCQD6m7oRw0uXOjANBgkqhkiG9w 0BAQUFADCBiDELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZ WF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIw EAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5 jb20wHhcNMTEwNDI1MjA0NTIxWhcNMTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBh MCVVMxCzAJBgNVBAgTAldBMRAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBb WF6b24xFDASBgNVBAsTC0lBTSBDb25zb2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMx HzAdBgkqhkiG9w0BCQEWEG5vb25lQGFtYXpvbi5jb20wgZ8wDQYJKoZIhvcNAQE BBQADgY0AMIGJAoGBAMaK0dn+a4GmWIWJ21uUSfwfEvySWtC2XADZ4nB+BLYgVI k60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9TrDHudUZg3qX4waLG5M43q7Wgc/MbQ ITxOUSQv7c7ugFFDzQGBzZswY6786m86gpEIbb3OhjZnzcvQAaRHhdlQWIMm2nr AgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4nUhVVxYUntneD9+h8Mg9q6q+auN KyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0FkbFFBjvSfpJIlJ00zbhNYS5f6Guo EDmFJl0ZxBHjJnyp378OD8uTs7fLvjx79LjSTbNYiytVbZPQUQ5Yaxu2jXnimvw 3rrszlaEXAMPLE= -----END CERTIFICATE-----" }, "endpointUri": "opc.tcp://203.0.113.2:49320", "securityPolicy": "BASIC256", "messageSecurityMode": "SIGN_AND_ENCRYPT", "identityProvider": { "type": "Anonymous" }, "nodeFilterRules": [] }, "measurementDataStreamPrefix": "" } ] }