概要
Field IoT Editorについて
Field IoT Editor OPC UA Modeling Toolは、OPC UAアプリケーションのためのモデリングを支援するツールです。
ファイラーに近い操作でアドレス空間の構築を行うことができます。
構築したデータはXMLファイルにエクスポートすることができるほか、既存の情報モデルのXMLを読み込むこともできます。
エクスポートしたXMLファイルをOPC UAサーバーで読み込むことでアドレス空間を利用できます。

用語説明
本文中で登場する用語について説明します。
-
ノード
OPC UAアドレス空間における個々のデータ要素やオブジェクトを意味し、すべてのデータはノードとして構造化されます。
ノードには以下の種類があり、それぞれが異なる機能や役割を持ちます。
- Object
- Variable
- Method
- ObjectType
- VariableType
- DataType
- ReferenceType
- View
ViewノードについてはField IoT Editorでは対応していません。
-
アドレス空間
OPC UAで管理されるすべてのノードが存在する仮想的な空間で、ノード同士がツリー構造で管理されます。
ユーザーやシステムがデータにアクセスする際には、このアドレス空間を介してノードに接続します。
アドレス空間のルート直下にはObjectsとTypesというフォルダがあり、Types下にObjectTypeやVariableTypeなどデータ型を定義するノード、Objects下にTypes下で定義されたデータ型の実体となるノードが配置されます。
-
Reference
OPC UAアドレス空間におけるノード同士の関係を意味します。
ツリー構造を表すHierarchicalReferenceとツリー構造以外の関係性を表すNonHierarchicalReferenceがあります。
-
情報モデル
ノードとReferenceによって定義されるデータの構造や振る舞いを表したモデルを意味します。
-
ノードID
すべてのノードが持つ一意の識別子です。
NamespaceIndexとIdentifierで構成され、Identifierには以下の種類(IdentifierType)があります。
- Numeric 32bit符号無し整数
- String 文字列
- GUID
- Opaque 任意のバイナリデータ(基本的にBase64エンコードで管理)
GUIDとOpaqueの新規設定および編集には対応していません。(読み込んだXMLでの設定値は維持されます)
NamespaceIndexについてはNamespaceの項を参照ください。
-
Namespace
OPC UAアドレス空間におけるノード識別のための名前空間を意味し、異なるベンダーや用途の情報モデルを区別するために使用されます。
ノードIDのNamespaceIndexはノードがどのNamespaceに属するかを識別するために使用されます。
OPC UAの用語や仕様についてはOPC Foundationのリファレンスも参照ください。
画面説明
画面全体
基本的な情報のみを表示するシンプルモードと詳細な設定が可能なエキスパートモードを切り替えることができます。
シンプルモードとエキスパートモードを切り替えるにはボタンをクリックします。
また、エキスパートモードで追加される3つのビューはそれぞれウィンドウから切り離し、タブ化、非表示化できます。
シンプルモード
エキスパートモード
ツールバー
ウィンドウ左側のツールバーには以下のボタンがあります。
アドレス空間の新規作成(初期化)
情報モデル(XML)のインポート
情報モデル(XML)のエクスポート
Field IoT Gatewayの情報モデル(XML)をインポート
Field IoT Gatewayの情報モデル(XML)をエクスポート
シンプルモードとエキスパートモードの切り替え
OPC UAサーバーの作成
OPC UAサーバーの実行
設定ダイアログの表示
アプリケーションの終了
OPC UAサーバーの作成と実行についてはOPC UAサーバーの作成の項を参照ください。
Field IoT GatewayについてはField IoT Gatewayとの連携設定の項を参照ください。
Namespaceビュー
ウィンドウ上部にはNamespaceの設定を行うウィジェットがあります。
初期状態で存在するNamespace0(http://opcfoundation.org/UA/)とそれ以外のNamespaceでは表示内容が異なります。


プルダウンメニューで編集の対象となるNamespaceを選択します。
ボタンでNamespaceを新規作成できます。
ボタンで選択中のNamespaceの設定を変更できます。
ボタンで選択中のNamespaceを削除できます。
ボタンで選択中のNamespaceのロック(編集不可)状態を切り替えできます。
ボタンで選択中Namespaceに属するノードの数をツリー上で表示できます。
Namespace設定ダイアログ
Namespaceビューのボタンまたは
ボタンをクリックするとNamespace設定ダイアログが開きます。

Lockedのチェックボックスを外すとNamespaceに属するノードを編集可能になります。
初期状態で存在するNamespace0(http://opcfoundation.org/UA/)は常にロックされた状態となっています。
XMLからインポートしたNamespaceはロックされた状態で追加されますが、ロック解除可能です。
PublicationDateのタイムゾーンは変更できません。新規作成したNamespaceではUTCとなり、XMLからインポートしたNamespaceでは当初設定されていたタイムゾーンが引き継がれます。
ツリービュー
ウィンドウ中央にはノードのツリー構造を表したツリービューがあります。
ツリーは2つに分かれており、左側にObjectsフォルダ配下、右側にTypesフォルダ配下のノードが表示されます。

ノードはそれぞれ以下のアイコンで表示されます。
Object
Folder (FolderTypeに設定されたObject)
Variable
Property (PropertyTypeに設定されたVariable)
Method
ObjectType, VariableType, DataType, ReferenceType (以下「Typeノード」と記載)
パス
ツリービューの上にはノードのパスを表示するテキストボックスがあります。
パスはObjectsまたはTypesから始まり、"/"区切りで階層順にノードのBrowseNameを繋げたものです。

ツリービューでノードをクリックすると、クリックしたノードのObjectsまたはTypesからのパスがテキストボックスに表示されます。
テキストボックスにパスを入力してEnterを押すと、ツリー上で当該ノードが選択されます。
検索
ツリービューの右上には検索ボックスがあります。

検索条件を入力してEnterを押すと、ツリービューの表示内容が該当するノードと親ノードのみに絞り込まれます。
検索は部分一致で、対象はBrowseName、ノードID、データ型です。正規表現にも対応しています。
ただし、以下の条件ではノードIDについてのみ完全一致での検索となります。
- "i=1"のようにノードIDに用いられる書式で入力した場合 Identifier完全一致
- "ns=1;i=1"のようにNamespaceIndexも含めノードID書式で入力した場合 Namespaceも含め完全一致
テキストボックス右の×ボタンをクリックすると検索フィルタは初期化されツリー表示が元に戻ります。
「アドレス空間の新規作成」を行った場合にも検索フィルタは初期化されます。
Attributesビュー
エキスパートモードを有効にするとウィンドウ右上にノードの詳細情報を設定するAttributesビューが表示されます。
ノードの種類によって設定できるAttributeは異なります。下図はVariableノードの場合の表示例です。

各行を右クリックして「値をコピー」を選択するとValue列の内容を文字列としてクリップボードにコピーできます。
Variable及びVariableTypeノードの場合、DataTypeの行を右クリックして「ノードにジャンプ」を選択するとツリービューで当該DataTypeノードを表示できます。
編集操作についてはAttributeの設定の項を参照ください。
Referencesビュー
エキスパートモードを有効にするとウィンドウ右中央にノード間のReferenceを設定するReferencesビューが表示されます。
Referencesビューには選択中のノードに設定されたReferenceが一覧表示されます。

プルダウンメニューで表示するReferenceの方向を絞り込みできます。
- Forward 選択中のノードから他のノードを指すReferenceを表示(Forward列にチェックが入っているもの)
- Inverse 他のノードから選択中のノードを指すReferenceを表示(Forward列にチェックが入っていないもの)
- Both すべての参照を表示
ReferenceType及びTarget列のセルを右クリックして「ノードにジャンプ」を選択するとツリービューで当該ノードを表示できます。
編集操作についてはReferenceの設定の項を参照ください。
Logビュー
エキスパートモードを有効にするとウィンドウ下部にログが表示されます。

プルダウンメニューで表示するログの範囲を絞り込みできます。
ボタンでログをファイルに保存できます。
ボタンで全てのログを消去できます。
操作説明
Namespaceの作成・選択
ノードを作成する前に、Namespaceを作成するかインポートしたNamespaceをロック解除する必要があります。
Namespaceの作成方法は以下の通りです。
- Namespaceが0(http://opcfoundation.org/UA/)しか存在しない状態でノードを右クリックしノードの作成メニューを選択する
- Namespaceビューのプルダウンメニュー右にある
ボタンをクリックする
また、Namespaceビューのプルダウンメニュー右にあるボタンをクリックすると既存のNamespaceを編集できます。
上記の操作を行うとNamespace設定ダイアログが表示されます。
ダイアログの各項目を入力した後、Lockedのチェックボックスを外した状態でOKをクリックしてください。
Namespaceの削除
Lock解除されたNamespaceを選択してボタンを押すとNamespaceを削除できます。

Namespaceを削除すると、そのNamespaceに属するノードが全て削除されます。この操作は取り消しできません。
削除されるノードの配下に他のNamespaceのノードがあった場合や削除されるノードが他のノードから参照されていた場合、削除できません。
ノードの作成
ノードを作成するには以下の方法があります。
-
ノードを右クリックし、「追加」「変数を追加」「宣言済みメンバを追加」「フォルダを追加」「空の変数を追加」のいずれかを選択する
- ノードを選択した状態で、「Ctrl+N(空の変数を追加)」または「Ctrl+Shift+N(フォルダを追加)」を押下する
-
右側のTypesツリー下にあるTypeノードを左側のObjectsツリー下にあるノードにドラッグ&ドロップする
この時、ドロップできない(配下にノードを作成できない)ノードは名前がグレーに表示されます。
ノードの種類によって配下に作成できるノードの種類は異なります。
- PropertyノードおよびMethodノードの配下にノードを作成することはできません。
- Typeノードは同種のノードの配下にしか作成できません。
ノードの作成および後述のコピー・移動を行ったとき、同じノードの配下に同名のノードがあった場合には名前(BrowseNameとDisplayName)の最後に(1)や(2)のように数字が自動的に付加されます。
ノードの基本操作
シンプルモードで行うことができるノードへの操作について解説します。
ツリービューは基本的にファイラーと同様の操作で扱うことができます。
-
ブラウズ
- 上下矢印キー 選択するノードを上下に移動
- ノードをダブルクリックまたはスペースキー 配下ノードを展開/格納
- 選択中のノードをクリックまたはF2キー ノードの名前(BrowseNameとDisplayName)を変更
- *キー 配下ノードを再帰的にすべて展開
- /キー 配下ノードを再帰的にすべて格納
-
コピー
ノードを右クリックして「コピー」を選択するかノードを選択して「Ctrl+C」を押すと、ノードをコピーできます。
その状態で他のノードを右クリックして「貼り付け」を選択すると右クリックしたノードの配下に、「Ctrl+V」を押すと選択中のノードと同階層にノードが複製されます。
以下のような特殊な条件があります。
- PropertyノードおよびMethodノードの配下にノードを貼り付けすることはできません。
- ReferenceTypeノードはコピーできません。
- ReferenceType以外のTypeノードをコピーした場合、Objectsフォルダ配下に貼り付けすることでノードの実体(ObjectTypeの場合はObject、VariableType/DataTypeの場合はVariable)を作成する操作となります。(Typeノードの複製はできません)
-
切り取り
ノードを右クリックして「切り取り」を選択するかノードを選択して「Ctrl+X」を押すと、ノードを切り取り候補に設定できます。
その状態で他のノードを右クリックして「貼り付け」を選択すると右クリックしたノードの配下に、「Ctrl+V」を押すと選択中のノードと同階層にノードが移動されます。
以下のような特殊な条件があります。
- PropertyノードおよびMethodノードの配下にノードを貼り付けすることはできません。
- ReferenceTypeノードは切り取りできません。
- Typeノードは同種のノードの配下にのみ貼り付けできます。
- ロックされたNamespaceのノードは切り取りできません。
-
連続貼り付け
コピーまたは切り取りをした状態でノードを右クリックして「連続貼り付け」を選択すると、ノードを任意の個数貼り付けできます。
また、「Ctrl+V」での貼り付けを連続して5回行うと「連続貼り付け」のダイアログが表示されます。
-
ドラッグ&ドロップでの移動/コピー
左側のObjectsツリーにあるノードを同じくObjectsツリー上のノードにドラッグ&ドロップすると、ノードを移動できます。
また、Ctrlキーを押しながらドラッグ&ドロップするとノードをコピーできます。
この時、ドロップできない(配下にノードを作成できない)ノードは名前がグレーに表示されます。
ロックされたNamespaceのノードは移動できないため、Ctrlを押しているときのみドロップできます。
-
パスのコピー
ノードを右クリックして「パスのコピー」を選択すると、ノードIDとノードのパスをコピーできます。
パスはObjectsまたはTypesから始まり、"/"区切りで階層順にノードのBrowseNameを繋げたものです。
複数のノードを選択していた場合、ノードごとに改行で区切られた内容がクリップボードに保存されます。
ノードIDとパスはTAB文字で区切られているため、Excelシートなどにそのまま列に分かれたデータとして貼り付けることができます。
-
削除
ノードを右クリックして「削除」を選択するか「Delete」を押すと、ノードを削除できます。
-
元に戻す/やり直す
「編集」メニューから「元に戻す」を選択するか「Ctrl+Z」を押すと、直前の操作を元に戻せます。
「元に戻す」を実行した直後に「編集」メニューから「やり直す」を選択するか「Ctrl+Y」を押すと、元に戻した処理をやり直しできます。
以下の操作は取り消しできません。
- アドレス空間の新規作成(初期化)
- XMLのインポート
- Namespaceの作成・削除
- Namespaceの設定変更
- ノードの作成・削除・コピー
Attributeの設定
編集可能なノードを選択しているときエキスパートモードのAttributesビューで行うことができる操作について解説します。
- ツリーになっている行をダブルクリックすると展開/格納を切り替えます。
- ツリーになっていない行のValue列をダブルクリックすると値を編集できます。
- 値が真偽値の場合はValue列がチェックボックスになっていてワンクリックで値を変更できます。
Referenceの設定
編集可能なノードを選択しているときエキスパートモードのReferencesビューで行うことができる操作について解説します。
- ReferenceType列のセルをダブルクリックするとReferenceTypeを変更できます。
- ReferenceTypeがHasTypeDefinitionまたはHasModellingRuleのときにTarget列のセルをダブルクリックすると対象ノードを変更できます。
- ReferenceType列のセルにReferenceTypeノードをドラッグ&ドロップするとReferenceTypeを変更できます。
- Target列のセルにTargetのノードと同じ種類のノードをドラッグ&ドロップすると対象ノードを変更できます。
Referenceの新規追加および削除については現時点で対応していません。
Objectノードの設定
エキスパートモードで行うことができるObjectノードへの操作について解説します。
-
HasTypeDefinitionの設定
Objectノードはツリー構造のReferenceのほかにObjectの種類を示すHasTypeDefinitionというReferenceを持ちます。
HasTypeDefinitionが指すノード(以下、この項ではTypeノードと記載)はObjectTypeです。
指すノードの具体的な変更方法はReferenceの設定の項目を参照ください。
TypeノードがFolderTypeまたはその配下にあるTypeノードの場合にはObjectノードはフォルダとして特別に扱われます。
Typeノードまたは上位にあるTypeノードの配下にObject,Variable,Methodノードがあった場合、 ModellingRuleに応じてノードが自動作成されるか「定義済みメンバの作成」から作成できるようになります。 ModellingRuleごとの動作についてはObjectTypeの設定の項目を参照ください。
Variableノードの設定
エキスパートモードで行うことができるVariableノードへの操作について解説します。
-
HasTypeDefinitionの設定
Variableノードはツリー構造のReferenceのほかにVariableの種類を示すHasTypeDefinitionというReferenceを持ちます。
HasTypeDefinitionが指すノード(以下、この項ではTypeノードと記載)はVariableTypeです。
指すノードの具体的な変更方法はReferenceの設定の項目を参照ください。
TypeノードがPropertyTypeまたはその配下にあるTypeノードの場合にはVariableノードはプロパティとして特別に扱われます。
Typeノードまたは上位にあるTypeノードの配下にObject,Variable,Methodノードがあった場合、 ModellingRuleに応じてノードが自動作成されるか「定義済みメンバの作成」から作成できるようになります。 ModellingRuleごとの動作についてはObjectTypeの設定の項目を参照ください。
-
DataValueの設定
Variableノードの初期値を設定できます。
DataType行の値に応じてDataValueの入力欄は変化します。
-
ValueRankとArrayDimensionsの設定
Variableノードの持つ値が配列かどうか、配列の場合はどのような配列かをValueRankで設定できます。
ValueRankには以下の設定値があります。
- Scalar スカラ(配列でない値)を示します。ValueRankのデフォルト値です。
- ScalarOrOneDimension スカラもしくは1次元配列を示します。
- OneOrMoreDimensions 1以上の次元の配列を示します。
- Any スカラ及び任意の次元配列のいずれも設定できることを示します。
- 任意の自然数 指定した次元数の配列を示します。プルダウンメニューで"Dimensions"を選択すると値を入力できます。
ValueRankが自然数のとき、ArrayDimensionsを設定できます。ArrayDimensionsはValueRankの値を要素数とする配列で、各次元の要素数を指定できます。
たとえばValueRankに2、ArrayDimensionsに(2,2)を設定した場合には2x2の2次元配列となり、入力欄は以下のようになります。
Methodノードの設定
エキスパートモードで行うことができるMethodノードへの操作について解説します。
-
InputArguments/OutputArgumentsの設定
Methodノード自体には特別な設定項目はありませんが、配下に持つInputArgumentsとOutputArgumentsというプロパティの値を設定することでメソッド呼び出し時の引数と戻り値を設定できます。
値の具体的な設定方法についてはVariableノードの設定の項目も参照ください。
InputArguments/OutputArgumentsの値はArgumentという構造体であり、要素は以下の通りです。
- Name 引数または戻り値の名前を示します。
- DataType 引数または戻り値の種類を示します。DataTypeノードのIDを指定する形であり、独自のDataTypeを指定することもできます。
- ValueRank 引数または戻り値が配列かどうか、配列の場合はどのような配列かを示します。詳細はValueRankとArrayDimensionsの設定の項目を参照ください。
- ArrayDimensions ValueRankが自然数のとき、配列の各次元の要素数を示します。詳細はValueRankとArrayDimensionsの設定の項目を参照ください。
- Description 引数または戻り値の説明文を示します。
InputArguments/OutputArgumentsのノードは削除可能です。
InputArguments/OutputArgumentsが削除などにより存在しない場合、Methodノードを右クリックして「追加」メニューから作成することができます。
ObjectTypeノードの設定
エキスパートモードで行うことができるObjectTypeノードへの操作について解説します。
-
InstanceDeclarationの設定
ObjectTypeノード配下のObject,Variable,MethodノードはInstanceDeclarationとして扱われます。
InstanceDeclarationノードはObjectTypeの実体ノード(HasTypeDefinitionが当該ObjectTypeを指すObjectノード)を作成するとき実体ノードの配下に生成されるノードの雛形です。
InstanceDeclarationノードはツリー構造のReferenceのほかに実体ノード生成時の挙動について示すHasModellingRuleというReferenceを持ちます。
HasModellingRuleに指定される値(ModellingRule)とField IoT Editorにおける挙動を以下に記載します。
- Mandatory 実体ノードの作成時に自動的に生成されます。
- Optional 実体ノードを右クリックして「定義済みメンバの作成」から1つのみ生成できます。
- MandatoryPlaceholder 実体ノードの作成時に1つ生成され、「定義済みメンバの作成」から複数生成できます。
- OptionalPlaceholder 実体ノードを右クリックして「定義済みメンバの作成」から複数生成できます。
- ExposesItsArray Field IoT Editor上では生成できません。
OPC UAの仕様上は上記のほかに独自のModellingRuleを定義することも可能ですが、Field IoT Editorは独自のModellingRuleをサポートしていません。独自のModellingRuleが指定された場合はOptionalと同じ動作となります。
HasModellingRuleがなかった場合の挙動はOPC UAの仕様において未定義でありサーバーやツールに依存しますが、Field IoT Editorで操作をする際はOptionalと同じ動作になります。
MandatoryPlaceholderまたはOptionalPlaceholder(以下、Placeholderと記載)が指定されたノードを生成した場合、"Property_1"のようにDeclarationノードの名前に連番の数字を付加した名前になります。
PlaceholderのDeclarationノードには"<>"で囲まれた名前(BrowseName)を設定することが推奨されています。実体ノード生成時には"<>"は無視されます。
VariableTypeノードの設定
エキスパートモードで行うことができるVariableTypeノードへの操作について解説します。
-
DataValueの設定
Variableノードの設定を参照ください。 -
ValueRankとArrayDimensionsの設定
Variableノードの設定を参照ください。 -
InstanceDeclarationの設定
ObjectTypeノードの設定を参照ください。
DataTypeノードの設定
エキスパートモードで行うことができるDataTypeノードへの操作について解説します。
-
Definitionの設定(Structureの場合)
Structureノード配下のDataTypeノードには構造体の要素(Field)を定義できます。
該当するノードには以下のようなDefinition入力欄が表示されます。
Fieldsの値を変更することでFieldの数を増減できます。
SymbolicNameはDataTypeやFieldに付けられる一意の識別子です。
ValueRankとArrayDimensionsについてはValueRankとArrayDimensionsの設定の項目を参照ください。
IsOptionalがTrueの場合、Fieldが必須ではないことを示します。
AllowSubTypesがTrueの場合、Fieldの値としてDataTypeで指定した型の配下にあるDataTypeの値を格納できることを示します。
-
Definitionの設定(Enumerationの場合)
Enumerationノード配下のDataTypeノードには列挙型の選択肢(Field)を定義できます。
該当するノードには以下のようなDefinition入力欄が表示されます。
Fieldsの値を変更することで選択肢の数を増減できます。
SymbolicNameはDataTypeや選択肢に付けられる一意の識別子です。
Valueは選択肢に割り当てられる値を示します。
ReferenceTypeノードの設定
エキスパートモードで行うことができるReferenceTypeノードへの操作について解説します。
-
InverseNameとSymmetricの設定
InverseNameはReferenceを逆にたどった時の名称を示します。
たとえばHasComponentのInverseNameはComponentOfになっています。
逆にたどっても同じ意味になる場合にはInverseNameを指定する代わりにSymmetricをTrueに設定します。
たとえばAssociatedWithというReferenceTypeはどちらから見ても同じ名称のためSymmetricがTrueでInverseNameが空になっています。
設定ダイアログ
ノードIDの設定
ノードを新規作成したときどのようにノードIDを割り振るかを設定ダイアログの「アドレス空間」タブにある「ノードID」のセクションから指定できます。
-
Numericの場合
ノードIDをNumericで割り振りたい場合は「デフォルトのIdentifierType」をNumericに設定してください。
ノードの種類ごとに自動割り当ての開始値を設定できます。
NumericノードIDの最大値は4,294,967,295ですが、開始値として指定できる最大値は2,147,483,647です。0および負の値は指定できません。
-
Stringの場合
ノードIDをStringで割り振りたい場合は「デフォルトのIdentifierType」をStringに設定してください。
ノードIDはパスの文字列となり、「名前の変更に追従する」にチェックが入っている場合ツリービューからノードの名前を変更すると追従してノードIDも変更されます。(AttributesビューからBrowseName,DisplayNameを変更した場合には追従されません)
たとえば下図のように子を持つノードを"New Object"から"A"に名前を変更した場合、ノードID(パス)は右のようになります。名前を変更すると配下ノードのノードIDも変わるため、配下の多いノードの名前を変更する場合には処理に時間がかかることがあります。
パスの区切り文字は"/"ですが、他の任意の区切り文字でノードIDを割り振ることもできます。
Namespace0の設定
アドレス空間作成時に初期状態で存在するNamespace0(http://opcfoundation.org/UA/)には複数のバージョンがありますが、Field IoT Editorではデフォルトでバージョン1.05.01を使用しています。
Namespace0を他のバージョンに差し替えるには、「独自の定義ファイルを使用する」にチェックを入れてXMLファイルのパスを指定します。
指定したファイルがNamespace0の定義ファイルでない場合には正常に動作しなくなるためご注意ください。

OPC UAサーバーの作成
オープンソースのOPC UA実装であるopen62541(v1.3.14)を使用してサンプルサーバーを作成できます。
この機能はβ版のため、アドレス空間の構成によっては作成に失敗する場合があります。
open62541はWindows以外にLinux等のPOSIXシステムおよびVxWorks、freeRTOS、eCosで動作するため、組み込み環境でOPC UAサーバーを開発する上での土台として利用可能です。
作成の途中でOPC FoundationのUA-ModelCompilerを使用しています。
-
MSYS2の導入
サンプルサーバーの作成にはMSYS2を利用します。
MSYS2の公式サイトから"msys2-x86_64-xxxxxxxx.exe"のリンクをクリックしてインストーラーをダウンロードしインストールしてください。
デフォルトのインストール場所(C:\msys64)以外にインストールした場合、「Field IoT Editorの設定ダイアログで「MSYS2のインストール場所」を修正してください。
-
ビルドツールの導入
"MSYS2 MINGW64"を起動して以下のコマンドを実行し、サンプルサーバーのビルドに必要なソフトウェアをインストールしてください。
pacman -Syu pacman -S base-devel mingw-w64-x86_64-toolchain mingw-w64-x86_64-cmake libxml2 jsoncpp
-
サーバーの作成(ビルド)
Field IoT Editorのツールバーから
アイコンをクリックするとその時点のアドレス空間でサーバー作成を実行します。
以前に作成したサーバーがあった場合は上書きされます。
ビルドを実行するとウィンドウ下部にビルドログが表示されます。
[100%] Built target SampleServer
と表示されたらビルド成功です。 -
サーバーの起動
ビルド成功するとツールバーに表示される
アイコンをクリックするとサーバーを起動できます。
起動に成功すると下記のようなログが表示されるため、太字にあたる部分のURLをOPC UAクライアントのエンドポイントURLに入力して接続してください。
TCP network layer listening on opc.tcp://xxxxx:4840/
作成したサーバーはField IoT Editorの実行ファイルと同じフォルダ内の「server/build」配下に作成されます。
サンプルサーバーでは、ロックされていないNamespaceのVariableノードのうちDataTypeが数値(Int、UInt、Float/Double)のものの値はReadごとにランダムな値が設定されます。 また、AccessLevelのHistoryReadが有効かつHistorizingがTrueの場合にはヒストリカルアクセスを利用可能です。
アナザーウェアではOPC UAサーバーの開発受託やサポートを提供しています。 サーバーの開発に関してサポートの必要な点があれば公式サイトよりお問い合わせください。
Field IoT Gatewayとの連携設定
アナザーウェアの提供する"Field IoT Gateway"は、工場の既存設備を変更せずにノーコードでデータ収集とIoT化を可能にするソリューションです。
Webブラウザで簡単に設定でき、OPC UA対応で長期的な互換性と拡張性を提供します。
Field IoT EditorにはField IoT Gatewayとの連携機能が搭載されており、XMLファイルを介してアドレス空間の設定を直接行うことができます。

Field IoT Gatewayの最新版がインストールされて起動していれば基本的にツールバーのボタンをクリックするだけで連携機能が利用可能ですが、 Field IoT Gatewayのインストール場所を変更していた場合には設定ダイアログから指定しないとインポートを行うことができません。
インストール場所を指定するには設定ダイアログの「その他」タブから「インストール場所」にパスを入力するか
アイコンをクリックしてフォルダを選択してください。
トラブルシューティング
制約事項
Field IoT Editorの使用に際して発生する制約や既知の問題について説明します。
-
Viewノードの取り扱い
Viewノードの扱いには対応していません。
Viewノードが存在するXMLファイルをインポートした場合、当該ノードは消失します。
-
PublicationDateのタイムゾーン
NamespaceのPublicationDateを編集する際、タイムゾーンを変更することはできません。
新規作成したNamespaceではUTCとなり、XMLからインポートしたNamespaceでは当初設定されていたタイムゾーンが引き継がれます。
-
取り消しとやり直しの制約
以下の操作は取り消しできません。
- アドレス空間の新規作成(初期化)
- XMLのインポート
- Namespaceの作成・削除
- Namespaceの設定変更
- ノードの作成・削除・コピー
-
ノードIDのGUIDとOpaque
ノードIDのIdentifierとしてGUIDとOpaqueの値を新規設定することはできません。
インポートしたXMLにGUIDまたはOpaqueのノードIDがあった場合には、編集はできませんがIdentifierTypeを変更しない限り値は維持されます。
-
ExposesItsArrayへの対応
ModellingRuleのExposesItsArrayには対応していません。
ExposesItsArrayが指定されていた場合、Optionalとして扱われます。
-
独自ModellingRuleへの対応
独自のModellingRuleには対応していません。
独自のModellingRuleが指定されていた場合、Optionalとして扱われます。
-
Referenceの追加と削除
ノードのReferenceを追加または削除することはできません。
今後のバージョンで対応する予定です。
-
Extension
情報モデルまたはノードのExtensionを設定することはできません。
ノードのExtensionについては今後のバージョンで対応する予定です。