# 변수 내보내기 및 불러오기

화면 편집 소프트웨어에서 변수 편집기 도구 모음을 사용하여 전역 변수 내보내기와 가져오기를 실행할 수 있습니다. 알람과 로깅 속성이 내보내기 항목에 포함됩니다. 지역 변수 내보내기 와 가져오기는 지원되지 않습니다.

메모:

- 화면 편집 소프트웨어 버전 3.3 서비스 팩 1 이하 버전에서 CSV나 TXT 파일로 내보낸 데이터는 화면 편집 소프트웨어 버전 3.4 이상으로 가져올 수 있지만, 버전 3.4 이상에서 내보낸 파일은 파일 버전이 2.0이므로 버전 3.3 서비스 팩 1 이전으로 가져올 수 없습니다.
  출력 파일의 [FileVersion] 줄에서 CSV나 TXT 출력의 파일 버전을 확인합니다.
- Excel 파일은 버전 4.4 이상에서 변수 내보내기와 가져오기가 지원됩니다.

변수 들여오기 및 내보내기에는 다음 파일 형식이 지원됩니다.

- TXT 파일 (.txt, BOM (제외 UTF-8))
- CSV 파일 (.csv, BOM (제외 UTF-8))
- 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 서비스 팩 1B 이하에서 내보낸 파일을 가져오는 경우, 외부 변수에 기본 스캔 속도가 할당됩니다. 스캔 속도에 관한 자세한 내용은 다음을 참조하십시오.
  외부 변수 값 읽기 간격(스캔 속도) 설정
- 기호 파일 가져오기로 가져온 변수는 변수 가져오기 명령으로 업데이트할 수 없습니다. 기호 파일의 변수를 업데이트하려면 다음을 참조하십시오.
  외부 장치에서 기호 가져오기 - 기호 파일 가져오기 후 메모
- 기호 파일이 들어 있는 프로젝트에는 변수를 가져올 수 없습니다. 변수를 가져오려면 다음 단계를 따르십시오.
  1. 기호 파일을 프로젝트에서 제거합니다.
  2. 변수를 프로젝트에서 내보냅니다.
  3. 변수를 프로젝트로 가져옵니다.
  4. 기호 파일을 프로젝트로 가져옵니다.

- 화면 편집 소프트웨어에는 변수명에 대한 명명 규칙이 있습니다.
  변수명에 명명 규칙을 따르지 않는 문자가 있으면 해당 변수는 가져오기가 되지 않습니다.
  자세한 내용은 다음을 참조하십시오.
  명명 규칙

### Excel 파일을 가져올 때

- 보호된 Excel 파일을 가져올 때는 암호를 입력해야 합니다.
- Excel 파일에서 값만 가져옵니다. 매크로와 수식은 가져오기 중에 다시 계산되지 않습니다.
- [Summary] 시트의 FileVersion은 가져오기 중에 확인됩니다. 다른 계수 값은 무시됩니다.
- 가져올 수 있는 최대 파일 크기는 100MB입니다.

## 변수 형식

### 내보낸 Excel 파일 구조

내보낸 Excel 파일에서 데이터는 다음 시트로 구성되며, 시트마다 특정 정보가 들어 있습니다.

- Summary: 내보낸 모든 변수의 개요입니다.
- VariableTypes: 배열 또는 구조체 같은 변수 유형(있는 경우)입니다.
- Variables: 변수 데이터입니다.
- ScanRates: 스캔 속도(있는 경우)입니다.
- AlarmGroups: 알람이 설정되어 있지 않더라도 모든 알람 그룹입니다.
- Alarms: 알람(있는 경우)입니다.
- LoggingGroups: 변수가 들어 있지 않아도 모든 로깅 그룹입니다.
- LoggingRecords: 변수(있는 경우)입니다.

예: Variables 시트

메모:

- 파란색 텍스트의 데이터만 편집할 수 있습니다. 형식을 수정하면 파일을 들여올 수 없습니다. 모든 열은 필수입니다.
- 시트와 열은 어떤 순서로도 정렬할 수 있습니다.

### 내보낸 CSV 파일 구조

내보낸 CSV 파일은 Excel에서 열면 아래와 같이 구성되어 있습니다.

메모: 파란색 텍스트의 데이터만 편집할 수 있습니다. 형식을 수정하면 파일을 들여올 수 없습니다.

###

## 항목 내보내기

이 표는 내보낸 항목에 해당되는 속성을 나타냅니다.

속성이 설정되지 않은 항목은 비어 있게 됩니다.

### 내보낸 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 | [바이트수](문자열만 선택하는 경우) / [워드수](WSTRING만 선택하는 경우) | [모든 변수] | 지원되는 속성 범위를 따릅니다.
StringEncode | [문자열 인코드] ([소스]에서 외부 장치를 선택한 경우만 해당.) | [모든 변수] | 지원하는 인코딩을 따릅니다.
Retentive | [보존] | [모든 변수] | TRUE/FALSE
Value | [값] | [모든 변수] | 명명 규칙을 따릅니다.
BindingType | 할당된 데이터의 유형을 가리킵니다. | 변수 속성용 속성 선택기 창 | 속성에 설정할 수 있는 오브젝트만 해당됩니다.
BindingMode | [방향] | 변수 속성용 속성 선택기 창 | OneWay/TwoWay
BindingConverter | [컨버터] | 변수 속성용 속성 선택기 창 | 명명 규칙을 따릅니다.
DataSharing | [데이터 공유] | [모든 변수] | None/ReadOnly/ReadWrite
Comments | [코멘트] | [모든 변수] | 명명 규칙을 따릅니다.

[ScanRates]

항목 | 속성 | 속성이 있는 위치 | 사용 가능한 값
Name | [이름] | [모든 스캔 속도] | 명명 규칙을 따릅니다.
Interval | [간격(100ms)] | [모든 스캔 속도] | 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 알람]/[레벨 알람] | 속성을 선택하면 Bool 알람에 대해 TRUE를 표시합니다. 레벨 알람은 지원되는 속성 범위를 따릅니다.
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를 참조하십시오.