Connector
Connector 페이지: 통신 열, 드라이버와 회선과 폴더와 장치와 태그로 이루어진 트리, 모든 태그가 지니는 두 가지 이름, 그리고 편집을 좌우하는 권한과 잠금.
Connector는 현장 장치가 애플리케이션의 나머지 부분이 읽을 수 있는 데이터로 바뀌는 곳입니다. 탐색 막대에 있는 Connector 페이지이며, Connector 보기 권한을 가진 역할이면 누구나 열 수 있습니다. 이 페이지는 왼쪽의 통신 열, 곧 내장 서버가 대화하는 모든 대상을 담은 트리와, 오른쪽의 상세 패널, 곧 선택한 노드를 그 자리에서 편집하는 면을 나란히 놓습니다. 페이지 자신의 설명이 말하는 그대로입니다. "트리에서 노드를 선택하면 그 자리에서 편집할 수 있습니다. 변경한 내용은 자동으로 저장됩니다."
통신 열
이 열은 통신이라는 제목을 달고 있으며, 위에서 아래로 드라이버 행, 4개의 상태 칩이 붙은 검색 상자, 트리, 그리고 열의 명령을 담은 바닥글이 들어 있습니다.
드라이버 행
첫 번째 행은 드라이버 등록부이며, 트리 안이 아니라 트리 위에 그려집니다. 아래에 놓인 드라이버 그룹은 이 행의 자식이 아니라 형제입니다. 이 행에는 드라이버, 사용 중인 드라이버의 개수("드라이버 3개"), 그리고 사용 중인 모든 드라이버를 합친 상태 건전성 점이 차례로 나옵니다. 이 행을 선택하면 드라이버 목록과 드라이버 페이지에서 설명하는 목록이 열립니다.
검색과 상태 칩
| 컨트롤 | 하는 일 |
|---|---|
| 검색 상자("드라이버, 회선, 장치, 태그 검색") | 이름에 입력한 글자가 들어 있는 행만 남도록 트리를 좁힙니다. 대문자와 소문자는 구별하지 않습니다. 드라이버, 시리얼 회선, 폴더가 일치하면 그 아래에 있는 것은 모두 남습니다. 시리얼 회선은 물리적 조합(포트, 보드레이트, 형식, 시간 초과)으로도 일치합니다. 일치한 가지는 입력하는 대로 펼쳐집니다. |
| 전체 | 상태로는 좁히지 않습니다. |
| 정상 | 사용 중이면서 온라인인 장치와 회선, 그리고 사용 중이면서 지금 값을 읽고 있는 태그. |
| 문제 | 사용 중이지만 오프라인이거나 부분 응답인 장치와 회선, 그리고 사용 중이지만 값이 없는 태그. |
| 사용 안 함 | 사용 안 함으로 둔 장치, 회선, 태그. 사용 안 함으로 둔 시리얼 회선 아래의 장치도 여기에 듭니다. |
칩과 검색 글자는 함께 작용합니다. 선택한 노드는 언제나 보이는 채로 남으므로, 패널이 보이지 않는 행을 편집하는 일은 없습니다. 아래에 아무것도 없는 드라이버는 전체일 때만, 또는 자기 이름이 일치할 때만 나타납니다.
트리
모양은 두 가지이며, 드라이버마다 정해집니다.
- Modbus RTU를 제외한 모든 드라이버: 드라이버 > 폴더(최대 두 단계) > 장치 > 태그. 폴더가 이름순으로 먼저 오고, 그다음에 드라이버 자체 단계에 놓인 장치가 옵니다.
- Modbus RTU: 드라이버 > 회선 > 장치 > 태그. 장치는 함께 쓰는 물리 회선에 매달리며 폴더를 가지지 않습니다.
무엇인가를 담고 있는 드라이버는 가나다순으로 평평하게 나열됩니다. 사용 중이지만 아무것도 구성되지 않은 드라이버는 개수가 붙은 장치가 없는 드라이버 행 아래로 접혀 들어가므로, 열여섯 개의 드라이버를 켠 갓 설치한 스테이션이 빈 가지 열여섯 개가 되지는 않습니다. 구성된 것이 전혀 없을 때는 모든 드라이버가 평평하게 나열됩니다. 각 행은 그 아래에 있는 것을 요약합니다.
| 행 | 보여 주는 것 |
|---|---|
| 드라이버 | 이름, "장치 3개"(Modbus RTU는 "회선 1개 · 장치 2개"), 상태 건전성 점. |
| 시리얼 회선 | 이름, 포트가 실패했을 때의 오류 표시, 상태 문구와 장치 개수("온라인 · 장치 2개"), 상태 건전성 점. |
| 폴더 | 이름, "장치 2개" 또는 "비어 있음", 하위 폴더를 포함해 안에 있는 모든 장치를 합친 상태 건전성 점. |
| 장치 | 이름, 마지막 오류를 도구 설명으로 담은 오류 표시, 그다음에 "태그 4개" 또는 "인증서 승인 대기 중" 또는 "이 패키지에 드라이버가 들어 있지 않습니다.", 그리고 상태 건전성 점. |
| 태그 | 데이터 형식(숫자, 부울, 날짜, 텍스트)을 나타내는 글리프, 이름, 마지막 읽기가 실패했을 때의 오류 표시, 그리고 실시간 점: 태그에 값이 있는 동안은 초록, 그렇지 않으면 회색. |
점의 색과 문구는 사용 설정과 상태 건전성에서 설명합니다. 행을 오른쪽 단추로 누르면 그 행이 선택되면서 해당 노드의 명령 모음을 그대로 옮긴 메뉴가 열립니다. 역할이 할 수 있는 일이 하나도 없는 행에서는 메뉴가 열리지 않습니다. 열과 패널 사이의 분할선은 끌어서 크기를 조절합니다.
바닥글: 새로 만들기…, 모두 펼치기, 모두 접기
| 명령 | 하는 일 | 회색이 되는 때(상황) | 그려지지 않는 때(역할) |
|---|---|---|---|
| 새로 만들기… | 이 열을 키울 수 있는 모든 방법을 담은 메뉴를 엽니다. 각 항목은 자기가 놓일 드라이버를 이름으로 밝힙니다. 새 장치(장치를 바로 받는 드라이버마다 "<드라이버> 아래" 항목이 하나씩 있는 하위 메뉴), 시리얼 회선 추가(Modbus RTU), 장치 페어링(Matter), 그리고 구분선 뒤에 새 폴더(항목 하나, 폴더를 받는 드라이버가 여럿일 때는 하위 메뉴). 이 패키지에 들어 있지 않은 드라이버는 제시되지 않습니다. |
실행이 스테이션을 잡고 있거나 런타임이 정지되었을 때(도구 설명이 이유를 담습니다), 또는 장치 검색 스캔이나 Matter 페어링이 진행 중일 때("무엇인가를 추가하기 전에 진행 중인 스캔이나 페어링을 끝내십시오."). 폴더를 받는 드라이버가 하나도 켜져 있지 않으면 새 폴더는 목록에 남은 채 회색이 됩니다. "폴더는 하나의 드라이버에 속합니다. 장치를 폴더에 넣는 드라이버를 먼저 켜십시오." | Connector 구성 권한이 없을 때. |
| 모두 펼치기 / 모두 접기 | 드라이버 그룹을 포함한 모든 가지를 펼치거나 닫습니다. 모두 접기는 열을 드라이버만 남긴 상태로 둡니다. | 없습니다. | 없습니다. |
새로 만들기…가 만드는 것은 모두 드라이버 자체 단계에 놓입니다. 폴더 안에 넣는 일은 그 폴더의 명령이며, 장치 폴더에서 설명합니다.
상세 패널
아무것도 선택하지 않았을 때 패널은 "트리에서 드라이버, 시리얼 회선, 장치, 태그를 선택하면 살펴보고 편집할 수 있습니다. 변경한 내용은 자동으로 저장됩니다."라고 알립니다. 장치가 없는 드라이버 행을 선택하면 같은 방식으로 자신을 설명합니다. "이 드라이버들은 켜져 있지만 아직 장치가 없습니다. 폴더를 펼치고 드라이버를 선택해 첫 장치를 추가하십시오." 그 밖의 모든 노드는 아래 각자의 페이지에서 설명하는 패널을 엽니다.
편집은 자동으로 저장됩니다. 텍스트나 숫자 칸은 칸을 벗어날 때(또는 Enter를 누를 때) 저장되고, 스위치나 확인란은 뒤집을 때, 콤보 상자는 고를 때 저장됩니다. 한 장치에서 빠르게 이어진 편집은 마지막 편집으로부터 약 0.5초 뒤에 한 번의 저장으로 합쳐집니다. 스테이션이 거부한 저장은 데이터베이스가 가진 값으로 되돌려지고 그 이유는 창 아래의 작업 기록 줄에 나타납니다. 장치를 쓸 수 없게 만드는 편집(빈 이름, 범위를 벗어난 슬레이브 id)은 저장되지 않으며, 패널이 무엇이 빠졌는지 말합니다. 페이지가 열려 있는 동안 트리와 패널의 값은 1초에 한 번 새로 고쳐집니다.
버스 식별자와 주소: 태그가 지니는 두 가지 이름
모든 태그는 이름을 둘 가지며, 그 차이가 변경에 드는 비용을 정합니다.
버스 식별자는 <Driver>.<Device>:<Tag>이며, 예를 들면 ModbusTcp.Furnace:Temperature입니다. 내장 서버가 주기적으로 읽고 공개하는 이름이자, Process 채널이 묶이는 이름이며, 외부 OPC UA 클라이언트가 보는 이름입니다. 장치 부분은 드라이버 종류에 장치 이름을 붙인 것으로, 글자나 숫자가 아닌 문자는 모두 밑줄로 바뀝니다. 버스 식별자는 폴더를 무시하므로, 장치를 다른 곳으로 옮겨 넣어도 버스 위에서는 아무것도 달라지지 않습니다.
주소는 Connector.<Driver>.<Folders…>.<Device>.<Tag>이며, 예를 들면 Connector.Simulated.Air.CompressedAir.HeaderPressure입니다. 트리가 보여 주는 경로이며, 각 마디는 같은 방식으로 정리됩니다(숫자로 시작하면 앞에 밑줄이 붙습니다). Logic 수식, 스크립트, 경보 조건, 대시보드 바인딩이 입력하는 것이 바로 이 주소입니다. 장치나 태그의 이름을 바꾸는 일, 장치를 폴더에 넣는 일, 폴더의 이름을 바꾸거나 폴더를 없애는 일은 모두 주소를 바꾸는 일이며, 애플리케이션은 같은 조작 안에서 옛 주소를 쓰던 모든 곳을 고쳐 씁니다. 이름 칸은 확정하기 전에 몇 곳이 따라 바뀌는지 미리 보여 줍니다. Logic 주소 공간도 같은 주소를 읽습니다.
장치 이름은 자기 드라이버 안에서만 대소문자를 구별하지 않고 고유하면 됩니다. Modbus TCP 장치와 OPC UA 장치가 둘 다 Furnace라는 이름을 가져도 되는데, 버스 위의 이름이 각각 ModbusTcp.Furnace와 OpcUa.Furnace이기 때문입니다. 한 드라이버 아래에서 사용 중인 두 장치의 이름이 같은 기술 마디로 정리되면(Line A와 Line-A) 충돌이 일어나며, 한쪽이 이기는 대신 둘 다 주기적 읽기에서 빠집니다. 두 행은 하나의 이름을 바꾸거나 사용 안 함으로 둘 때까지 값을 보여 주지 않습니다. 기술적 장치 이름의 길이는 128자로 제한됩니다. 한 드라이버 아래에서는 같은 단계의 폴더와 장치가 같은 마디로 정리되어도 안 되는데, 하나의 주소가 펼칠 가지이면서 동시에 읽을 지점일 수는 없기 때문입니다.
Connector 트리를 따로 가져오거나 내보내는 기능은 없습니다. 구성은 애플리케이션의 백업과 함께 이동합니다.
엔지니어링의 경계
Connector는 언제나 살아 있는 읽기 면이지만, 두 가지 상황에서는 구성이 거부되며 페이지가 어느 쪽인지 말해 줍니다.
- Process 실행이 스테이션을 잡고 있습니다. "엔지니어링 잠금"이라는 제목의 알림 띠가, 유닛 조작이 진행 중이며 모든 유닛이 끝날 때까지 구성은 읽기 전용으로 남지만 실행 제어와 그 밖의 운전 조작은 계속 쓸 수 있다고 설명합니다. 값을 바꾸는 모든 동사는 그려진 채로 회색이 되며 "유닛이 실행되는 동안에는 구성이 잠깁니다."라는 이유를 답니다.
- 런타임이 정지되었습니다. "런타임 정지"라는 제목의 알림 띠가, 수집과 Logic과 기록이 일시 정지되었으며 런타임을 다시 시작할 때까지 모든 변경이 거부되지만 구성과 기록된 실행은 그대로라고 알립니다. 같은 동사들이 "런타임 정지"라는 이유로 회색이 되고, 통신이 멈추면서 트리의 값은 빈칸이 됩니다.
두 상황 모두에서 읽기, 검색, 선택, 행의 열기 동작, 태그의 값 복사는 계속 쓸 수 있습니다.
권한
권한에 전부 나열된 Connector 관련 비트 세 개가 이 페이지가 무엇을 그릴지 정합니다.
| 권한 | 열어 주는 것 |
|---|---|
| Connector 보기 | 페이지, 트리, 그리고 모든 패널을 읽기 전용으로. 편집기는 위에 붙은 안내와 함께 작동하지 않는 상태로 유지됩니다. "Connector를 바꾸려면 “Connector 구성” 권한이 필요합니다." 역할이 결코 쓸 수 없는 동사는 아예 그려지지 않습니다. 새로 만들기…, 추가와 페어링, 사용과 사용 안 함, 장치 복제, 삭제 무리, 열기를 제외한 행 동작 무리, 태그 추가, 일괄 편집 체크, 쓰기 칸과 바꾸기 장치가 그렇습니다. 새로 고침, 다시 연결, 열기, 값 복사는 남습니다. |
| 태그 교정 | 보기가 주는 모든 것에 더해, 태그의 교정 단계, 곧 확인란과 두 개의 칸과 2점 도우미. 그 밖에는 아무것도 편집할 수 있게 되지 않습니다. 교정을 보십시오. |
| Connector 구성 | 페이지 전체. 드라이버, 회선, 폴더, 장치, 태그를 만들고 바꾸고 사용하고 사용 안 함으로 두고 삭제하는 일, 장치 검색, 페어링, 쓰기, 참조 바꾸기가 모두 포함됩니다. |
모든 명령은 실행할 때 권한을 다시 읽으므로, 그 뒤에 역할이 바뀐 사람에게 이미 그려져 있던 동사는 실행되지 않고 같은 메시지로 거부됩니다.
이 영역의 페이지
| 페이지 | 다루는 내용 |
|---|---|
| 드라이버 목록과 드라이버 페이지 | 드라이버 행의 표, 드라이버를 켜고 끄는 일, 장치 표와 동사를 갖춘 드라이버 노드의 페이지, 그리고 "이 패키지에 드라이버가 들어 있지 않습니다" 상태. |
| 시리얼 회선 | Modbus RTU 회선: 물리적 조합, 타이밍, 상태, 유닛 스캔, 그리고 그 아래에 놓인 장치. |
| 장치 폴더 | 폴더를 만들고 이름을 바꾸고 없애는 일, 장치를 폴더 사이로 옮기는 일, 그리고 폴더가 주소를 어떻게 이루는지. |
| 장치 | 장치 페이지: 머리글과 동사, 드라이버별 장치 카드와 연결 카드, 자격 증명과 인증서, 일괄 편집이 되는 태그 표, 복제와 충돌. |
| 태그 | 태그 페이지를 카드별로: 일반, 드라이버별 신호원, 변환, 실시간 값, 사용하는 곳. |
| 값 변환 경로 | 원시 읽기에서 공학값까지의 형식별 변환과, 읽기가 없을 때 무엇이 보이는지. |
| 교정 | 교정 단계, 2점 도우미의 단계별 진행, 그리고 태그 교정 권한만으로 할 수 있는 일. |
| 장치 검색 | 드라이버에게 장치나 지점을 찾게 하는 일, 후보를 살펴보는 일, 후보를 추가하는 일, 그리고 Matter 장치를 페어링하는 일. |
| 사용 설정과 상태 건전성 | 각 단계에서 무엇이 수집에 참여하는지, 점과 상태 문구와 칩, 상태 표시줄, 마지막 오류, 다시 연결과 새로 고침. |
드라이버 자체는 프로토콜마다 한 페이지씩, 연결 칸과 주소 지정과 형식과 장치 검색과 쓰기 동작을 담아 드라이버 아래에 모여 있습니다.