# 変数のエクスポートとインポート

画面編集ソフトウェアでは、変数編集画面のツールバーからグローバル変数のエクスポートとインポートを実行することができます。アラームおよびロギングのプロパティは、エクスポート項目に含まれています。ローカル変数のエクスポートとインポートは対応していません。

MEMO:

- バージョン 3.3 Service Pack 1 以前の画面編集ソフトウェアから、CSV ファイルまたは TXT ファイルでエクスポートしたデータをバージョン 3.4 以降の画面編集ソフトウェアにインポートすることはできますが、バージョン 3.4 以降からエクスポートしたファイルはファイルバージョンが 2.0 のため、バージョン 3.3 Service Pack 1 以前の画面編集ソフトウェアにインポートすることはできません。
  出力した CSV または TXT ファイルのバージョンは、ファイルの [FileVersion] の行で確認できます。
- Excel ファイルは、変数のエクスポートとインポートにバージョン 4.4 以降で使用できます。

変数のインポートとエクスポートは、以下のファイルフォーマットに対応しています。

- TXT ファイル (.txt、UTF-8 (BOM 無し))
- CSV ファイル (.csv、UTF-8 (BOM 無し))
- Microsoft Excel ファイル (.xlsx)

MEMO:

Microsoft Excel ファイル

- 変数を Excel ファイルでエクスポートおよびインポートするには Microsoft Excel が必要です。画面編集ソフトウェアは Microsoft Excel 2016、2019、および 365 に対応しています。
- 変数を Excel ファイルにエクスポートする場合、パスワードを設定してファイルを暗号化できます。複雑なパスワードを設定することを推奨します。パスワードを忘れた場合、復旧することはできません。
- 画面編集ソフトウェアは、Excel Information Rights Management (IRM) には対応していません。

TXT または CSV ファイル

- 変数を TXT ファイルまたは CSV ファイルにエクスポートする場合、区切り文字を選択します。
- UTF-8 (BOM 無し) 以外のエンコーディングで保存された TXT または CSV ファイルは、正しくインポートできません。
- ファイルフォーマットについては、以下を参照してください。
  保存 (エクスポート) データのファイル設定

エクスポートしたファイルは、Microsoft Excel などのソフトウェアプログラムを使用して表示することができます。

MEMO:

出力データのフォーマットは以下のとおりです。

- 文字列は二重引用符 (") で囲まれます。
  例、"This is a string"
- データの最初の文字が特殊文字 "="、"+"、"-"、"@"、TAB、ENTER の場合は、接頭辞として単一引用符字 (') が付きます。
  例、"'=1+2"

## 変数のインポートに関する注意

- インポート時に、同じ名前のスキャンレートが存在しない場合は、エクスポートされたファイルからの間隔で新しいスキャンレートが作成されます。スキャンレートがプロジェクトにすでに存在する場合、スキャンレートは更新されます。
- 画面編集ソフトウェアバージョン 3.1 Service Pack 1B 以前からエクスポートされたファイルをインポートする場合、外部変数にはデフォルトのスキャンレートが割り当てられます。スキャンレートの詳細については、以下を参照してください。
  外部変数値を読み込む間隔を設定したい (スキャンレート)
- シンボルファイルのインポート機能でインポートした変数は、変数のインポート機能で更新することはできません。シンボルファイルの変数を更新する場合は、以下を参照してください。
  接続機器からのシンボルのインポート - シンボルファイルのインポート後に関する注意
- シンボルファイルを含むプロジェクトに変数をインポートすることはできません。以下の手順で変数をインポートします。
  1. プロジェクトからシンボルファイルを削除します。
  2. プロジェクトから変数をエクスポートします。
  3. プロジェクトに変数をインポートします。
  4. プロジェクトにシンボルファイルをインポートします。

- 画面編集ソフトウェアの変数名には使用できる文字とルールがあります。
  変数名に使用できない文字が含まれている場合、その変数はインポートされません。
  詳細については、以下を参照してください。
  使用できる文字とルール

### Excel ファイルをインポートする場合

- 保護された Excel ファイルをインポートする場合は、パスワードを入力する必要があります。
- Excel ファイルからは値のみがインポートされます。インポート時にマクロや数式の再計算はされません。
- [Summary] シートの FileVersion はインポート時に検証されます。その他のカウント値は無視されます。
- インポートできるファイルの最大サイズは 100 MB です。

## 変数フォーマット

### エクスポートした Excel ファイルの構成

エクスポートした Excel ファイルでは、データは次のシートに分類され、それぞれに特定の情報が含まれます。

- Summary: エクスポートされたすべての変数の概要
- VariableTypes: 配列や構造体などの変数タイプ (存在する場合)
- Variables: 変数データ
- ScanRates: スキャンレート (存在する場合)
- AlarmGroups: すべてのアラームグループ (アラームが設定されていない場合も含む)
- Alarms: アラーム (存在する場合)
- LoggingGroups: すべてのロギンググループ (変数が含まれていない場合も含む)
- LoggingRecords: 変数 (存在する場合)

例: Variables シート

MEMO:

- 青色のテキスト部分のみ編集できます。フォーマットを変更するとインポートできません。すべての列が必要です。
- シートおよび列の順序は問いません。

### エクスポートした CSV ファイルの構成

エクスポートした CSV ファイルを Excel で開くと、次のように構成されています。

MEMO: 青色のテキスト部分のみ編集できます。フォーマットを変更するとインポートできません。

###

## エクスポート項目

エクスポートされた項目に対応するプロパティを表に示します。

プロパティが設定されていない項目は空白として表示されます。

### エクスポートされた Excel ファイルの項目

[VariableTypes]

項目 | プロパティ | プロパティの場所 | 使用可能な値
Name | [名前] | [すべてのユーザーデータタイプ] | 使用できる文字とルールに従います。
Type | [データの種類] | [すべてのユーザーデータタイプ] | サポートされているデータの種類に従います。
ElementTypeName | 配列要素または構造体のメンバーのデータの種類を示します。 | [すべてのユーザーデータタイプ] | サポートされているデータの種類に従います。
Dimensions | [次元] | [すべてのユーザーデータタイプ] | サポートされているプロパティの範囲に従います。

[Variables]

項目 | プロパティ | プロパティの場所 | 使用可能な値
Name | [名前] | [すべての変数] | 使用できる文字とルールに従います。
FolderName | [フォルダー] | [すべての変数] | 使用できる文字とルールに従います。
DataType | [データの種類] | [すべての変数] | サポートされているデータの種類に従います。
Dimension | [次元] | [すべての変数] | サポートされているプロパティの範囲に従います。
Source | [ソース] | [すべての変数] | 編集なし
DeviceAddress | [デバイスアドレス] | [すべての変数] | サポートされているプロパティの範囲に従います。
BaseAddress | [ベースアドレス] (配列または構造体が選択されている場合のみ。) | [すべての変数] | TRUE/FALSE
ScanRate | [スキャンレート] | [すべての変数] | 使用できる文字とルールに従います。
InitialValue | [初期値] | [すべての変数] | サポートされているプロパティの範囲に従います。
InputRange | [入力範囲] | [すべての変数] | TRUE/FALSE
Min | [最小] | [すべての変数] | サポートされているプロパティの範囲に従います。
Max | [最大] | [すべての変数] | サポートされているプロパティの範囲に従います。
EnableVariableLength | [可変長] | [すべての変数] | TRUE/FALSE
NumberOfBytes/NumberOfWords | [バイト数] (STRING が選択されている場合のみ。)/ [ワード数] (WSTRING が選択されている場合のみ。) | [すべての変数] | サポートされているプロパティの範囲に従います。
StringEncode | [文字列エンコード] ([ソース] で接続機器が選択されている場合のみ。) | [すべての変数] | サポートされているエンコードに従います。
Retentive | [保持] | [すべての変数] | TRUE/FALSE
Value | [値] | [すべての変数] | 使用できる文字とルールに従います。
BindingType | 割り当てられたデータのタイプを示します。 | 変数プロパティのプロパティセレクターウィンドウ。 | プロパティで設定可能なオブジェクトのみ。
BindingMode | [方向] | 変数プロパティのプロパティセレクターウィンドウ。 | OneWay/TwoWay
BindingConverter | [コンバーター] | 変数プロパティのプロパティセレクターウィンドウ。 | 使用できる文字とルールに従います。
DataSharing | [データ共有] | [すべての変数] | None/ReadOnly/ReadWrite
Comments | [コメント] | [すべての変数] | 使用できる文字とルールに従います。

[ScanRates]

項目 | プロパティ | プロパティの場所 | 使用可能な値
Name | [名前] | [すべてのスキャンレート] | 使用できる文字とルールに従います。
Interval | [間隔 (100 ms)] | [すべてのスキャンレート] | 1 ～ 600

[AlarmGroups]

項目 | プロパティ | プロパティの場所 | 使用可能な値
Name | [名前] | [AlarmGroup] | 使用できる文字とルールに従います。
***LabelType [1] | ラベル設定を示します。 | [AlarmGroup] | Direct/LanguageTable
***Label [1] | ラベル名を示します。 | [AlarmGroup] | サポートされているプロパティの範囲に従います。
Parameter | [パラメーター] | [AlarmGroup] | サポートされているプロパティの範囲に従います。
AlarmBehavior | [アラーム動作] | [AlarmGroup] | Optional ACK/Mandatory ACK

1.***は、LoLo、Lo、Hi、HiHi、Active、ACK、RTN または UNACK です。

[Alarms]

項目 | プロパティ | プロパティの場所 | 使用可能な値
Variable | [変数] | [ブールアラーム]/[レベルアラーム] | 使用できる文字とルールに従います。
AlarmGroupName | [名前] | [AlarmGroup] | 使用できる文字とルールに従います。
Type | [アラームの種類] | [ブールアラーム]/[レベルアラーム] | HiHi/Hi/Lo/LoLo
Condition | [発報条件] (ブールアラーム) / [値] レベルアラーム() | [ブールアラーム]/[レベルアラーム] | このプロパティが選択されている場合、ブールアラームには TRUE が表示されます。レベルアラームは、プロパティでサポートされている範囲に従います。
Deadband | [デッドバンド] | [レベルアラーム] | サポートされているプロパティの範囲に従います。
Severity | [重要度] | [ブールアラーム]/[レベルアラーム] | サポートされているプロパティの範囲に従います。
Parameter | [パラメーター] | [ブールアラーム]/[レベルアラーム] | サポートされているプロパティの範囲に従います。
MessageType | メッセージの設定を示します。 | [ブールアラーム]/[レベルアラーム] | Direct/Language Table
Message | [メッセージ] | [ブールアラーム]/[レベルアラーム] | サポートされているプロパティの範囲に従います。

[LoggingGroups]

項目 | プロパティ | プロパティの場所 | 使用可能な値
Name | [名前] | [ロギンググループ] | 使用できる文字とルールに従います。
MaxRecord | [最大レコード] | [ロギンググループ] | サポートされているプロパティの範囲に従います。
ConditionType | [条件の種類] | [ロギンググループ] | ValueChange/Periodic/Script
Frequency | [周期] ([条件の種類] で [周期] が選択されている場合のみ。) | [ロギンググループ] | サポートされているプロパティの範囲に従います。
Units | [単位] ([条件の種類] で [周期] が選択されている場合のみ。) | [ロギンググループ] | Secs/Mins/Hours/100ms
Condition | [実行条件] ([条件の種類] で [値の変更] が選択されている場合のみ。) | [ロギンググループ] | ON/OFF/On Change
TriggerVariable | [トリガー変数] ([条件の種類] で [値の変更] が選択されている場合のみ。) | [ロギンググループ] | 使用できる文字とルールに従います。
TriggerVariableBindingConverter | [コンバーター] | 変数プロパティのプロパティセレクターウィンドウ。 | 使用できる文字とルールに従います。
InterlockType | [インターロック] の設定を示します。 | [ロギンググループ] | Direct/Variable
Interlock | [インターロック] | [ロギンググループ] | TRUE/FALSE
InterlockBindingMode | [方向] | 変数プロパティのプロパティセレクターウィンドウ。 | OneWay/TwoWay
InterlockBindingConverter | [コンバーター] | 変数プロパティのプロパティセレクターウィンドウ。 | 使用できる文字とルールに従います。
ExportData | [有効] | [ロギンググループ] | TRUE/FALSE
WriteDataTo | [データストレージ] | [ロギンググループ] | USB Storage/SD Card/Internal
AppendDateTime | [日付/時刻を追加] | [ロギンググループ] | TRUE/FALSE
DetectModification | [変更の検出] | [ロギンググループ] | TRUE/FALSE
FolderNameType | [フォルダー名] の設定を示します。 | [ロギンググループ] | Direct/Variable
FolderName | [フォルダー名] | [ロギンググループ] | サポートされているプロパティの範囲に従います。
FolderNameBindingMode | [方向] | 変数プロパティのプロパティセレクターウィンドウ。 | OneWay/TwoWay
FolderNameBindingConverter | [コンバーター] | 変数プロパティのプロパティセレクターウィンドウ。 | 使用できる文字とルールに従います。
FileNameType | [ファイル名] の設定を示します。 | [ロギンググループ] | Direct/Variable
FileName | [ファイル名] | [ロギンググループ] | サポートされているプロパティの範囲に従います。
FileNameBindingMode | [方向] | 変数プロパティのプロパティセレクターウィンドウ。 | OneWay/TwoWay
FileNameBindingConverter | [コンバーター] | 変数プロパティのプロパティセレクターウィンドウ。 | 使用できる文字とルールに従います。
ExportStatus | [有効] | [ロギンググループ] | TRUE/FALSE
SaveStatus | [保存ステータス] | [ロギンググループ] | サポートされているプロパティの範囲に従います。
SaveStatusBindingMode | [方向] | 変数プロパティのプロパティセレクターウィンドウ。 | OneWay/TwoWay
SaveStatusBindingConverter | [コンバーター] | 変数プロパティのプロパティセレクターウィンドウ。 | 使用できる文字とルールに従います。
ErrorStatus | [エラーステータス] | [ロギンググループ] | サポートされているプロパティの範囲に従います。
ErrorStatusBindingMode | [方向] | 変数プロパティのプロパティセレクターウィンドウ。 | OneWay/TwoWay
ErrorStatusBindingConverter | [コンバーター] | 変数プロパティのプロパティセレクターウィンドウ。 | 使用できる文字とルールに従います。

[LoggingRecords]

項目 | プロパティ | プロパティの場所 | 使用可能な値
VariableName | [変数名] | [ロギングレコード] | 使用できる文字とルールに従います。
LoggingGroupName | [名前] | [ロギンググループ] | 使用できる文字とルールに従います。

### エクスポートした CSV ファイルの項目

項目 | プロパティ | プロパティの場所 | 使用可能な値
Name | [名前] | [すべての変数] | 使用できる文字とルールに従います。
Type | [データの種類] | [すべての変数] | サポートされているデータの種類に従います。
ElementType | 配列要素または構造体のメンバーのデータの種類を示します。 | [すべての変数] | サポートされているデータの種類に従います。
Dimensions | [次元] | [すべての変数] | サポートされているプロパティの範囲に従います。
InitialValue | [初期値] | [すべての変数] | サポートされているプロパティの範囲に従います。
RetentiveEnabled | [保持] | [すべての変数] | TRUE/FALSE
FolderName | [フォルダー] | [すべての変数] | 使用できる文字とルールに従います。
BindType | 割り当てられたデータのタイプを示します。 | 変数プロパティのプロパティセレクターウィンドウ。 | プロパティで設定可能なオブジェクトのみ。
BindObject | 割り当てられたデータの名前を示します。 | 変数プロパティのプロパティセレクターウィンドウ。 | 使用できる文字とルールに従います。
BindField | 割り当てられたデータのプロパティを示します。 | 変数プロパティのプロパティセレクターウィンドウ。 | 割り当てられたオブジェクトのプロパティのみ。
BindIsArray | ユーザー定義変数が値として設定されているかを示します。 | 変数プロパティのプロパティセレクターウィンドウ。 | TRUE/FALSE
BindValue | - | - |
BindDirection | [方向] | 変数プロパティのプロパティセレクターウィンドウ。 | OneWay/Both
BindConverter | [コンバーター] | 変数プロパティのプロパティセレクターウィンドウ。 | 使用できる文字とルールに従います。
HasInputRange | [入力範囲] | [すべての変数] | TRUE/FALSE
MinValue | [最小] | [すべての変数] | サポートされているプロパティの範囲に従います。
MaxValue | [最大] | [すべての変数] | サポートされているプロパティの範囲に従います。
Target | [機種] | システム設定 | 編集なし
Source | [ソース] | [すべての変数] | 編集なし
ScanRate | [スキャンレート] | [すべての変数] | 使用できる文字とルールに従います。
ScanRateInterval | [間隔] | [すべてのスキャンレート] | 1 ～ 600
AddressEnabled | [ベースアドレス] (配列または構造体が選択されている場合のみ。) | [すべての変数] | このプロパティが選択されている場合、TRUE が表示されます。
Address | [デバイスアドレス] | [すべての変数] | サポートされているプロパティの範囲に従います。
HasBinding | 変数プロパティのオブジェクトまたは別の変数を使用する場合は TRUE を示します。 | [すべての変数] | TRUE/FALSE
VariableLength | [可変長] | [すべての変数] | TRUE/FALSE
NumberOfBytes | [バイト数 / ワード数] | [すべての変数] | サポートされているプロパティの範囲に従います。
StringEncode | [文字列エンコード] ([ソース] で接続機器が選択されている場合のみ)。 | [すべての変数] | サポートされているエンコードに従います。
HasAlarm | アラームで変数が使用されている場合は TRUE を示します。 | [すべてのアラーム] | TRUE または空白
AlarmType | レベルアラームで変数を使用する場合は Limit を示します。 | [レベルアラーム] | Limit または空白
***ThresholdState [1] | レベルアラームで変数を使用する場合は有効を示します。 | [レベルアラーム] | Enable または空白
***Threshold [1] | [アラームの種類] | [レベルアラーム] | HiHi/Hi/Lo/LoLo
***ThresholdValue [1] | [値] | [レベルアラーム] | サポートされているプロパティの範囲に従います。
***ThresholdDeadBand [1] | [デッドバンド] | [レベルアラーム] | サポートされているプロパティの範囲に従います。
***ThresholdAlarmGroup [1] | 変数を含むアラームグループ名を示します。 | [レベルアラーム] | 使用できる文字とルールに従います。
***ThresholdMessageMode [1] | メッセージの設定を示します。 | [レベルアラーム] | Direct/Language Table
***ThresholdMessage [1] | [メッセージ] | [レベルアラーム] | サポートされているプロパティの範囲に従います。
***ThresholdSeverity [1] | [重要度] | [レベルアラーム] | サポートされているプロパティの範囲に従います。
***ThresholdParameter [1] | [パラメーター] | [レベルアラーム] | サポートされているプロパティの範囲に従います。
ThresholdState | [発報条件] | [ブールアラーム] | Enabled/Disable
ThresholdType | [アラームの種類] | [ブールアラーム] | Hi/Lo
ThresholdCondition | - | - | WhenHigh/WhenLow 編集なし
ThresholdAlarmGroup | 変数を含むアラームグループ名を示します。 | [ブールアラーム] | 使用できる文字とルールに従います。
ThresholdMessageMode | メッセージの設定を示します。 | [ブールアラーム] | Direct/Language Table
ThresholdMessage | [メッセージ] | [ブールアラーム] | サポートされているプロパティの範囲に従います。
ThresholdSeverity | [重要度] | [ブールアラーム] | サポートされているプロパティの範囲に従います。
ThresholdParameter | [パラメーター] | [ブールアラーム] | サポートされているプロパティの範囲に従います。
DataSharing | [データ共有] | [すべての変数] | None/ReadOnly/ReadWrite
LoggingGroup | ロギングで変数が使用されている場合はグループ名を示します。 | [すべてのロギング] | 使用できる文字とルールに従います。
Comments | [コメント] | [すべての変数] | 使用できる文字とルールに従います。
AlarmGroupId | アラームグループ名を示します。 | [すべての変数] | 使用できる文字とルールに従います。

1.*** は、HiHi、Hi、Lo、または LoLo です。