# 导出和导入变量

在屏幕编辑软件中，您可以通过使用变量编辑器工具栏执行全局变量的导出和导入。导出项目中包含报警和记录的属性。不支持导出和导入本地变量。

注：

- 尽管您可以将屏幕编辑软件 3.3 Service Pack 1 或更早版本中以 CSV 或 TXT 文件形式导出的数据导入版本 3.4 或更高版本的屏幕编辑软件中，但从版本 3.4 或更高版本导出的文件不能导入 3.3 Service Pack 1 或更早版本中，因为文件版本是 2.0。
  在输出文件的 [FileVersion] 行中检查 CSV 或 TXT 输出的文件版本。
- 从版本 4.4 开始支持 Excel 文件用于变量导出和导入。

导出和导入变量支持以下文件格式：

- TXT文件（.txt，UTF-8 (without BOM)）
- CSV文件（.csv，UTF-8 (without BOM)）
- Microsoft Excel 文件 (.xlsx)

注：

Microsoft Excel 文件

- 要以 Excel 文件格式导出和导入变量，需要 Microsoft Excel。屏幕编辑软件支持 Microsoft Excel 2016、2019 和 365。
- 将变量导出到 Excel 文件时，可以设置密码进行加密。建议设置复杂密码。如果忘记密码，则无法恢复。
- 屏幕编辑软件不支持 Excel 信息权限管理 (IRM)。

TXT 或 CSV 文件

- 将变量导出到 TXT 或 CSV 文件时，请选择分隔符。
- 使用 UTF-8 (无 BOM) 以外的编码保存的 TXT 或 CSV 文件不能被导入。
- 有关文件格式的信息，请参阅以下内容。
  保存数据 (导出) 文件设置

可以使用 Microsoft Excel 等软件程序查看导出的文件。

注：

数据输出格式如下:

- 字符串由双引号 (") 封装。
  例如，"这是一个字符串"
- 出现在条目开头的特殊字符 "="、"+"、"-"、"@"、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 工作表

注：

- 只能编辑蓝色文本的数据。如果修改格式，将无法导入文件。所有列均为必填项。
- 工作表和列可以任意顺序排列。

### 导出的 CSV 文件结构

在 Excel 中打开时，导出的 CSV 文件组织如下所示。

注：只能编辑蓝色文本的数据。如果修改格式，将无法导入文件。

###

## 导出项目

此表指示与导出项目对应的属性。

属性未设置的项目将为空。

### 导出的 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 | [变量] | [Bool 报警]/[级别报警] | 遵循命名规范。
AlarmGroupName | [名称] | [AlarmGroup] | 遵循命名规范。
Type | [报警类型] | [Bool 报警]/[级别报警] | HiHi/Hi/Lo/LoLo
Condition | [触发条件] (Bool 报警) / [值] (级别报警) | [Bool 报警]/[级别报警] | 如果选择该属性，则显示 TRUEBool 报警。级别报警遵循该属性支持的范围。
Deadband | [死区] | [级别报警] | 遵循支持的属性范围。
Severity | [严重级别] | [Bool 报警]/[级别报警] | 遵循支持的属性范围。
Parameter | [参数] | [Bool 报警]/[级别报警] | 遵循支持的属性范围。
MessageType | 指示消息设置。 | [Bool 报警]/[级别报警] | Direct/Language Table
Message | [消息] | [Bool 报警]/[级别报警] | 遵循支持的属性范围。

[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 或空白
***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 | [触发条件] | [Bool 报警] | Enabled/Disable
ThresholdType | [报警类型] | [Bool 报警] | Hi/Lo
ThresholdCondition | - | - | WhenHigh/WhenLow 无编辑
ThresholdAlarmGroup | 指示包含变量的报警组名称。 | [Bool 报警] | 遵循命名规范。
ThresholdMessageMode | 指示消息设置。 | [Bool 报警] | Direct/Language Table
ThresholdMessage | [消息] | [Bool 报警] | 遵循支持的属性范围。
ThresholdSeverity | [严重级别] | [Bool 报警] | 遵循支持的属性范围。
ThresholdParameter | [参数] | [Bool 报警] | 遵循支持的属性范围。
DataSharing | [数据共享] | [全部变量] | None/ReadOnly/ReadWrite
LoggingGroup | 指示在记录中使用变量时的组名称。 | [全部记录] | 遵循命名规范。
Comments | [注释] | [全部变量] | 遵循命名规范。
AlarmGroupId | 表示报警组名称。 | [全部变量] | 遵循命名规范。

1.*** 是指 HiHi、Hi、Lo 或 LoLo。