# 스크립트용 텍스트 모드

## 텍스트 모드 정보

텍스트 모드를 사용하면 블록 모드 스크립트와 동일한 스크립트를 설정할 수 있습니다. 블록 모드 스크립트에서 화면 편집 소프트웨어가 지원하는 모든 연산은 수학 연산(사인, 코사인 등), 논리 연산(&&, || 등), 비교 연산(==, != 등) 같은 텍스트 모드 스크립트로도 지원됩니다. [도구 서랍장]에 기재되지 않은 스크립트는 지원되지 않습니다.

### 스크립트 편집기

텍스트 모드에서, 스크립트 편집기는 스크립트를 구역으로 나누며, 각 스크립트 구역에는 트리거와 하나 이상의 작업이 있습니다.

터치, 기간/일정, 조건 같은 트리거는 함수의 형태를 취합니다. 트리거에 매개 변수가 필요하면 매개 변수를 함수 매개 변수로 전달합니다.

연산은 쌍반점(;)이 있는 문의 형식을 취하여 문을 종료합니다.

텍스트 모드 형식은 다음 예제와 같습니다.

- 'onClick'은 클릭 트리거에 대한 트리거 처리기입니다.
- 첫 번째 매개 변수 '$GraphicObject'는 트리거의 소스입니다.
- 두 번째 매개 변수 '$Math.max(EXPRESSION1, EXPRESSION2);'는 트리거로 실행되는 연산 집합입니다. 연산은 화살표 '=>'로 식별됩니다.

#### 개체와 변수

키워드를 추가하여 참조된 개체나 변수를 식별합니다. 키워드 앞에 '$' 기호를 붙입니다. (다음 표를 참조하십시오.)

모듈 식별자

키워드 | 설명 | 예
$Alarm | 알람 속성에 액세스합니다. | $Alarm.AlarmGroup1.Var1_HiHi.Message
$AlarmGroup | 알람 그룹 속성에 액세스합니다. | $AlarmGroup.AlarmGroup1.CurrentActiveCount
$AllAlarm | 모든 알람의 속성에 액세스합니다. | $AllAlarm.MaxRecord
$SystemErrorGroup | 시스템 오류 그룹으로 식별합니다. |
$OperationLog | 오퍼레이션 로그 속성에 액세스합니다. | $OperationLog.ExportData.FolderName
$RecipeControl | 레시피 제어 속성에 액세스합니다. | $RecipeControl.RecipeControl1.RecipeID
$Ingredient | 재료 속성에 액세스합니다. | $Ingredient.RecipeFamily1.RecipeGroup1.Ingredient1.Value
$Local | 지역 변수 속성에 액세스합니다. | $Local.Var1.Value
$GraphicObject | 그래픽 개체 속성에 액세스합니다. | $GraphicObject.NumericDisplay1.CurrentValue
$Screen | 화면 속성에 액세스하거나 특정 화면에 있는 항목의 속성에 액세스합니다. 이 식별자를 사용하여 화면/콘텐츠 및 개체 이름 지정 충돌을 방지합니다. | $Screen.Screen1
$Device | 드라이버나 장비 속성에 액세스합니다. | $Device.Driver1.Equipment1.OnScanMode
$Target | 대상 속성에 액세스합니다. | $Target.Preferences.ColorSetID
$Math | 수학 연산에 액세스합니다. | $Math.abs(-100)
$Enums | 파일 작업, 데이터 서식 등 스크립트로 지정할 수 있는 작업과 값에 액세스합니다. | $Enums.FileOperation.CopyPaste $Enums.DataFormat.Float

스크립트에서 개체와 변수를 참조하여 개체나 변수의 속성을 사용할 수 있습니다. 예: 'Var1.Quality', '$GraphicObject.Ellipse1.Thickness'.

스크립트에 그래픽 개체나 변수, 알람 그룹, 사용자 그룹, 로깅 그룹, 레시피의 이름을 입력하면 그 이름이 강조 표시됩니다.

#### 스크립트 모드 변경

스크립트 편집기에서 [블록] 모드나 [텍스트] 모드를 사용할 수 있습니다. 스크립트를 두 모드에서 동시에 편집할 수는 없습니다.

기본값은 [블록] 모드입니다.

스크립트 모드를 변경하려면 [프로젝트] ➞ [설정]으로 이동한 다음 [속성] 창 ➞ [기본] ➞ [스크립트] ➞ [스크립트 모드]에서 [블록] 또는 [텍스트]를 선택합니다.

메모: 스크립트 중 하나라도 유효하지 않으면 스크립트 모드를 변경할 수 없습니다. 그러나 데이터 오류가 있더라도 스크립트 모드를 변경할 수 있습니다.

## 텍스트 모드에서 스크립트 작업하기

### 함수 추가

텍스트 모드에서 스크립트로 작업할 때는 도구 서랍장에 트리거, 작업, 논리, 식이 나열됩니다. 트리거를 두 번 클릭하면 새 스크립트 구역이 스크립트 편집기에 만들어지고 선택한 트리거에 대한 기본 코드도 만들어집니다.

함수도 다음 방법으로 추가할 수 있습니다.
트리거를 도구 모음에서 추가할 수 있습니다.

- 텍스트 모드에서 완전히 새로운 빈 스크립트를 편집하려면 도구 모음에서 [공백]을 추가하거나 바로 가기 키 Ctrl+Shift+N을 사용합니다.

- 화면의 개체로 트리거되는 스크립트를 만들려면, 화면을 열고 개체를 선택합니다. 그러면 [이벤트] 창에 해당 개체에 사용할 수 있는 트리거들이 나열됩니다. 연결된 트리거를 새 스크립트 구역에 추가하려면 [+]를 클릭합니다.

### 소스와 대상 추가

- 텍스트 모드에서는 스크립트 편집기에 IntelliSense가 구비되어 있습니다. 스크립트 편집기에서 입력할 때 스크립트 키워드이든 개체 이름이든 함수 이름이든 사용 가능한 일치 옵션이 나타납니다. 원하는 항목을 선택하여 키워드나 개체 이름, 함수를 삽입합니다.
  개체 이름과 마침표(.)를 입력하고 나면 사용 가능한 개체 속성이 나타납니다. 원하는 속성을 선택하여 스크립트에 삽입합니다.

- 텍스트 모드에서는 지역 변수와 전역 변수도 즉시 만들 수 있습니다. 다른 개체는 스크립트에서 만들 수 없습니다.

1. 정의되지 않은 변수가 스크립트에 사용되는 경우 마우스 커서를 그 변수 위에 놓습니다.

   메모: 지역 변수를 만들 때는 변수 이름 앞에 "$Local"을 붙입니다.

2. 아이콘을 클릭하고 팝업 메뉴에서 [변수 만들기]나 [지역 변수 만들기]를 선택합니다.

3. 하위 메뉴에서 변수 데이터 형식을 선택하여 지정된 변수를 만듭니다.

### 도구 서랍장

- 도구 서랍장에서, 연관된 스크립트의 구문을 보려면 </>를 클릭합니다.

### 코멘트

텍스트 모드에서는 이중 슬래시 “//”로 스크립트에 주석을 추가할 수 있으며, “/*”와 “*/” 사이에 여러 줄 주석을 추가할 수 있습니다. 문의 끝이나 자체 줄에 주석을 추가할 수 있습니다.

메모:

- [스크립트 모드]를 [블록]에서 [텍스트] 모드로 변경하면 주석 블록이 “//” 주석으로 변환됩니다.

- [스크립트 모드]를 [텍스트]에서 [블록] 모드로 변경하는 경우

- 트리거 수준에 있는 “//”와 “/*” “*/” 주석은 주석 블록으로 변환됩니다.

- 트리거 수준 밖에 있는 다른 “//” 문이나 “/*” “*/”는 변환되지 않으며, 이는 블록 모드가 [코멘트] 블록을 트리거에서만 지원하기 때문입니다.

### 찾기 및 바꾸기

- 찾기: 바로 가기 키 Ctrl+F로 찾기 컨트롤을 텍스트 모드 스크립트 편집기의 오른쪽 위에 표시합니다. 필드에 검색할 텍스트를 입력합니다. 다음 또는 이전 일치 항목을 찾으려면 아래 또는 위 화살표를 클릭합니다. 또는 아이콘을 선택하여 일치하는 대/소문자 또는 일치하는 전체 단어를 찾습니다.

- 바꾸기: 바로 가기 키 Ctrl+H로 찾기 및 바꾸기 컨트롤을 텍스트 모드 스크립트 편집기의 오른쪽 위에 표시합니다. 필드에 검색할 텍스트와 대체 텍스트를 입력합니다. 다음 또는 이전 일치 항목을 찾으려면 아래 또는 위 화살표를 클릭합니다. 또는 아이콘을 선택하여 일치하는 대/소문자 또는 일치하는 전체 단어를 찾습니다. 현재 일치 항목을 바꾸려면 바꾸기 아이콘 를 클릭합니다. 일치하는 텍스트의 모든 인스턴스를 바꾸려면 모두 바꾸기 아이콘 을 클릭합니다.

다음 표에는 찾기 및 바꾸기 작업에 대한 바로 가기 키가 수록되어 있습니다.

바로 가기 아이콘 | 바로 가기 키 | 설명
– | Ctrl+F | 찾기
– | Ctrl+H | 찾기 및 바꾸기
| F3 | 다음 찾기
| Shift+F3 | 이전 찾기
| Alt+R | 바꾸기
| Alt+A | 모두 바꾸기
| Alt+C | 대/소문자 구분
| Alt+W | 전체 단어 일치

바로 가기 키를 입력하거나 [찾기] 필드 왼쪽에 있는 위 또는 아래 아이콘을 클릭하여 찾기와 바꾸기 간에 전환할 수 있습니다.

## 제한 사항

#### 스크립트 모드

- 스크립트 중 어느 하나라도 유효하지 않으면 스크립트 모드를 변경(블록 모드를 텍스트 모드로 또는 텍스트 모드를 블록 모드로)할 수 없습니다. 그러나 데이터 오류가 있다고 해서 스크립트 모드를 변경할 수 없는 것은 아닙니다.

- 블록 모드 스크립트는 트리거 블록의 주석 블록에 있는 주석만 지원합니다. 따라서 텍스트 모드에서 [스크립트 모드]를 [블록] 모드로 변경하면 트리거 이외의 스크립트 영역에 추가된 주석은 저장되지 않습니다.

#### 이름

- 프로젝트에서 개체가 삭제되거나 이름이 바뀌면 스크립트에서 해당 개체에 대한 참조가 정의되지 않은 오류로 나타납니다.