# 다른 페이지에서 오는 것

> Logic 열이 보여 주는 System, Server, Connector, Process 뿌리, 뜻이 붙은 모든 고정 포인트, 읽기 전용 포인트 패널과 가지 패널, 그리고 각 뿌리를 편집하는 페이지를 밝히는 알림.

Logic 열의 두 번째 제목인 **다른 페이지에서 옴**에는 이 페이지가 보여 주기만 하는 네 뿌리가 그 순서대로 놓입니다. **System**, **Server**, **Connector**, **Process**입니다. 그 포인트는 모든 수식과 스크립트와 대시보드 바인딩과 에이전트 도구가 읽을 수 있지만, 그 아래의 어떤 것도 여기에서 만들거나 편집하거나 삭제하지 않습니다. 그 행 가운데 하나를 고르면 동사가 있었을 자리에 한 줄짜리 알림이 놓이고, 그것을 가진 페이지를 여는 단추가 함께 놓입니다.

## 다른 곳에서 편집한다는 알림 {#the-edited-elsewhere-notice}

| 뿌리 | 모음이 담는 줄 | 단추 | 역할이 가졌을 때 그려짐 |
| --- | --- | --- | --- |
| Connector | 여기에서는 읽기만 합니다. 드라이버, 장치, 태그는 Connector 페이지에서 편집합니다. | Connector 열기, [Connector](connector) 페이지 | Connector 보기 |
| Process | 여기에서는 읽기만 합니다. 모델, 유닛, 채널은 Process 페이지에서 편집합니다. | Process 열기, [Process](process) 페이지 | 모델 열람, 절차 실행, 이력 보기 |
| Server | 여기에서는 읽기만 합니다. OPC UA 서버는 Connector 페이지에서 구성합니다. | Connector 열기이며 [OPC UA 서버](connector-opcua-server)의 행으로 갑니다 | Connector 보기 |
| System | 읽기 전용입니다. 앱이 스스로에 대해 내보내는 진단 값이며 어디에서도 편집하지 않습니다. | 없음 | |

이 줄은 그 뿌리 아래의 모든 마디에서 아무리 깊어도 나옵니다. 단추는 이 창의 역할이 그 목적지를 열 수 있을 때에만 나오므로, 보기만 하는 사람은 문장을 읽을 뿐 거부로 답하는 문을 만나지 않습니다. 그 권한을 가진 역할로 로그인하면 단추가 함께 옵니다.

## System {#system}

| 주소 | 형식 | 읽는 것 |
| --- | --- | --- |
| `System.Now` | 날짜와 시간 | 현재 시점입니다. 수식이나 스크립트 안에서는 평가하는 그 시점이므로, 한 번의 실행 안에서 그것을 참조하면 모두 같은 시각을 읽습니다. |
| `System.StartTime` | 날짜와 시간 | 애플리케이션 프로세스가 시작한 때입니다. |
| `System.Uptime` | 실수 | 애플리케이션이 시작한 뒤로 지난 초입니다. |
| `System.Version` | 텍스트 | 애플리케이션 버전입니다. |

이 네 포인트는 언제나 정상입니다.

## Server {#server}

| 주소 | 형식 | 읽는 것 |
| --- | --- | --- |
| `Server.Running` | 부울 | 내장 OPC UA 서버가 올라와 있는지입니다. 언제나 정상입니다. |
| `Server.StartTime` | 날짜와 시간 | 서버가 시작한 때입니다. 시작하기 전까지는 나쁜 빈 값입니다. |
| `Server.Uptime` | 실수 | 서버가 시작한 뒤로 지난 초입니다. 시작하기 전까지는 나쁜 빈 값입니다. |
| `Server.SessionCount` | 정수 | 접속해 있는 OPC UA 세션입니다. 서버가 내려가 있는 동안에는 나쁩니다. |

같은 수치가 서버의 [상태](connector-opcua-server) 구역에도 나옵니다.

## Connector {#connector}

`Connector` 뿌리는 [Connector](connector) 페이지가 설정하는 실시간 트리를 그립니다. 드라이버 갈래마다 폴더 하나(`Simulated`, `ModbusTcp`, …), 그다음 장치가 놓인 폴더, 그다음 장치, 그다음 그 태그입니다. 켜져 있고 태그가 Connector에 올라와 있는 장치만 나옵니다. 꺼진 장치와, 올라온 태그가 없는 장치는 자기 주소와 함께 나오지 않습니다. 태그의 주소는 그 별칭이며 `Connector.<Driver>.<Folders…>.<Device>.<Tag>`이고 마디마다 다듬어집니다([장치 폴더](connector-folders)). 시리얼 회선도 MQTT 브로커도 단계를 더하지 않습니다. 드라이버와 폴더는 폴더 표시를, 장치는 장치 표시를, 태그는 자기가 공개하는 값 범주의 표시(부울, 숫자, 텍스트, 날짜)를 답니다. 찾아보기… 선택기에서 태그를 펼치면 그 읽기 표면이 나열됩니다. 열은 태그에서 멈추고, 태그를 고르면 포인트 패널이 열립니다.

## Process {#process}

`Process` 뿌리는 모델마다 폴더 하나를, 그 유닛을 순서대로 폴더로, 그리고 유닛마다 고정된 폴더 여섯을 그립니다.

| 폴더 | 포인트 | 형식 |
| --- | --- | --- |
| Channels | 모델의 채널마다 포인트 하나이며 유닛의 바인딩으로 읽습니다. 태그에 묶인 채널은 태그의 표면을, 변수에 묶인 채널은 변수의 표면을, 묶이지 않은 채널은 아무것도 내놓지 않습니다. | 그 채널의 데이터 형식 |
| Procedure | `Status`, `Running`, `Busy`, `Verdict`, `Mode`, `ActiveProcedure`, `SegmentIndex`, `CycleIndex`, `CycleCount`, `Cycle`, `FailedCycles`, `SamplesEvaluated`, `SamplesOut`, `SamplesUnavailable`, `SamplesInvalid`, `Elapsed`, `StartedAt`입니다. | 이름이 말해 주는 대로 텍스트, 부울, 정수, 실수, 날짜와 시간입니다 |
| LastRun | 유닛이 마지막으로 끝낸 실행의 기록입니다. `RunId`, `Procedure`, `Status`, `Verdict`, `StartedAt`, `FinishedAt`, `Elapsed`, `CycleCount`, `FailedCycles`, `Metadata`(메타데이터 필드마다 포인트 하나), `Evaluations`(평가마다 폴더 하나, 그 아래 판정 기준마다 하나이며 각각 `Outcome`, `Passed`, `Value`, `MinValue`, `MaxValue`, `Limits`, `WorstExcursion`, `FailedCycles`를 지닙니다). 유닛의 실행이 하나 끝날 때까지는 품질 나쁨의 결측입니다. | 이름이 말해 주는 대로 텍스트, 부울, 정수, 실수, 날짜와 시간입니다 |
| Productivity | `Today`와 `Rolling`이며 각각 `Summary`(`ProductivityPercent`, `YieldPercent`, `TypicalElapsedSeconds`, `Finalized`, `OK`, `NOK`, `Indeterminate`, `Unclassified`, `Aborted`, `Failed`), `Outputs`(생산 출력마다 폴더 하나이며 `Quantity`와 `RatePerHour`를 담습니다), `Procedures`(생산성을 켠 절차마다 폴더 하나이며 `Quantity`와 `RatePerHour`와 요약 포인트를 담습니다)를 가집니다. | 속도와 백분율과 시간은 실수, 개수는 정수 |
| Commands | `Start`, `Hold`, `Resume`, `Stop`, `Abort`(저마다 지금 그 명령을 실행할 수 있는지 읽습니다)와 `Comment`(읽는 값이 없습니다)입니다. | 부울이며 Comment는 텍스트입니다 |
| Next | `Procedure`(준비된 절차의 이름)와 준비된 절차의 메타데이터 칸마다 포인트 하나입니다. 다른 절차를 준비하면 이 가지의 모양이 바뀌고, 순번 칸은 다음 값을 미리 보여 줍니다. | 텍스트 |

각 읽기의 뜻은 [유닛 주소 공간](process-addresses)에 있습니다. 생산성 포인트는 자기 값이 있을 때에만 정상입니다. 완료가 없는 수량은 진짜 0이지만, 차지한 시간이 없는 속도나 기준이 없는 백분율은 나쁜 빈 값입니다. 명령 포인트는 어디에서나 읽기 전용입니다. 대시보드 [버튼](component-button)이 명령을 보내고 그 포인트를 읽어 스스로를 흐리게 만듭니다. 그것을 부르는 스크립트는 검사에서 거부됩니다. Logic에서는 어떤 Process 포인트에도 쓸 수 없습니다. 레시피와 준비와 코멘트는 [실행 화면](process-runs)에 속합니다.

## 포인트 패널 {#the-point-panel}

네 뿌리 가운데 어디에서든 포인트(진단, 태그, 채널, 실행 상태나 생산성 포인트)를 고르면 읽기 전용 패널이 열립니다. 머리에는 그 포인트의 표시와 이름, 그리고 "주소 공간이 내보내는 읽은 값입니다. 지금 담고 있는 값과, 수식이나 스크립트가 부를 주소를 보여 줍니다."라는 줄이 있습니다.

| 칸 | 보여 주는 것 |
| --- | --- |
| 주소 | 뿌리에서 시작하는 주소이며, 고르고 복사할 수 있는 읽기 전용 텍스트 상자에 있습니다. |
| 값 | 지금 읽은 값을 크게 보여 줍니다. 주소가 더 이상 풀리지 않으면 "?", 빈 값이면 짧은 줄입니다. |
| 품질 | 양호 또는 확인 불가입니다. |
| 갱신 시각 | 태그라면 그 애플리케이션 시각(그것이 없으면 원본 시각)이고, 변수라면 마지막으로 쓰이거나 평가된 때이며, 계산된 포인트라면 지금입니다. |

읽기 표시는 1초에 두 번 새로 고쳐집니다. 그 아래에는 "이 주소를 수식이나 스크립트에서 쓰십시오(자동 완성 또는 찾아보기…)."가 있습니다. 이 패널에는 동사가 없습니다. 여기의 어떤 것도 태그를 쓰지 않고([태그 페이지](connector-tags)에서, 스크립트에서, 또는 대시보드 조작으로 쓰십시오), 글자를 고르는 것 말고는 대신 복사해 주는 것도 없습니다.

## 가지 패널 {#the-branch-panel}

드라이버나 폴더나 장치나 모델이나 유닛이나 고정된 폴더 가운데 하나를 고르면 가지 패널이 열립니다. 그 가지의 표시와 이름, 필로 놓인 그 주소, "주소 공간의 한 가지입니다. 무엇을 담고 있는지와 각 포인트가 지금 읽는 값을 보여 줍니다."라는 줄, 그리고 바로 아래 자식들을 이름과 주소와 값으로 담은 표(빈 값이나 나쁜 읽기는 짧은 줄, 더 이상 풀리지 않는 행은 "?")가 있으며 1초에 두 번 새로 고쳐집니다. 각 행의 끝에는 **열기**가 있어 트리의 그 행과 똑같이 그 행이 가리키는 것을 열 안에서 선택합니다. 행을 누르면 그 행이 강조 표시될 뿐입니다.

## 이 마디에 동사가 없는 이유 {#why-these-nodes-have-no-verbs}

드라이버와 장치와 태그는 Connector 페이지에서 설정합니다. 그 칸과 사용 스위치와 삭제가 거기에 있습니다. 모델과 유닛과 채널은 Process 페이지에서, OPC UA 서버는 마찬가지로 Connector 페이지의 서버 폴더에서 설정하며, 애플리케이션 진단은 어디에서도 설정하지 않습니다. 열을 거르고 펼치고 접고 주소를 복사하는 것이 이 행이 받는 유일한 동작이며, 오른쪽 단추를 눌러도 메뉴가 열리지 않습니다.
