쓰기 태그 + 보낼 값 · 토글 / 순간접점 / 확인 대화상자 중 선택설명
읽기 바인딩이 값을 화면으로 가져온다면, 쓰기는 반대로 화면에서 설비로 값을 보냅니다. 같은 요소에 읽기와 쓰기를 함께 걸어 두는 것이 보통입니다 — 펌프 심볼이 가동 상태를 색으로 보여 주면서, 누르면 기동/정지가 되는 식입니다.
누를 때 무엇을 보낼지는 세 가지 중에 고릅니다.
- 그냥 보내기 — 정해 둔 값을 그대로. 리셋 신호나 특정 모드 지정처럼 한 방향인 것.
- 토글 — 지금 읽고 있는 값을 뒤집어서. 기동/정지, 개폐처럼 두 상태를 오가는 것.
- 순간접점 — 누르는 동안만 값을 주고 떼면 되돌립니다. 점동(조그)처럼 손을 떼면 멈춰야 하는 것.
한 번 눌러 여러 값 바꾸기. 함께 쓸 값을 채우면 한 번의 클릭으로 값 여러 개가 나갑니다. "정지하면 팬을 멈추고 냉수밸브와 댐퍼도 닫는다" 같은 조작이 버튼 하나로 끝납니다. 확인 문구는 하나로 묶입니다. 값마다 대화상자가 뜨면 무엇을 승인하는지 알 수 없으므로, 한 창에 쓸 값을 전부 나열하고 한 번만 묻습니다. 예를 들면 이렇게 묻습니다.
AHU-1 를 정지하시겠습니까? 급기팬이 멈추고 냉수밸브·외기댐퍼가 닫힙니다.local:ahu1.fan_hz← 0local:ahu1.cv_open← 0local:ahu1.oa_damp← 0
값 입력(키패드). 키보드가 없는 터치 패널에서 설정값을 넣는 길입니다. 값 입력(키패드) 를 켜면 누를 때 숫자 키패드가 뜨고, 거기서 넣은 값이 나갑니다.
자판을 화면에 그리기. 키패드를 화면 안에 그려 팝업 없이 받을 수도 있습니다. 숫자 버튼마다 자판 입력을 켜고 넣을 숫자를 지정하면, 누를 때마다 값에 한 자씩 붙습니다. 지움(전체)과 한 자 지움도 같은 방식으로 만듭니다. 손으로 그리지 않아도 됩니다 — 한글 자판 한 벌은 요소 70개에 바인딩 35개입니다. 부품 팔레트에서 골라 넣으면 한 번에 들어옵니다. 자리 하나가 어긋나 눌리지 않는 키가 생기는 일도 없습니다.
한글은 자모를 이어 붙이기만 해서는 안 됩니다 — ㄱㅣㅁ 은 김 이 되지 않습니다. 그래서 한글 자판 입력은 누를 때마다 글자를 다시 조합합니다. 받침이 될 자음이라도 뒤에 모음이 오면 다음 글자의 첫소리로 넘어갑니다(강 + ㅏ → 가아). 지움도 자모 단위라 김 에서 한 번 누르면 기 가 됩니다 — 이름을 고칠 때 통째로 사라지지 않습니다.
접수 키오스크처럼 입력이 화면의 주인공일 때 씁니다 — 모달이 뜨면 단계 표시나 앞서 고른 내용이 통째로 가려집니다. 반대로 설비 화면에서 설정값 하나를 고칠 때는 팝업(값 입력) 쪽이 낫습니다. 자판을 늘 띄워 둘 자리가 없기 때문입니다.
토글과 값 입력형은 주 값에만 적용됩니다. 함께 쓸 값은 늘 고정값입니다 — 무엇이 토글될지가 여럿이면 누르는 사람이 결과를 예측할 수 없습니다.
설정 항목
| 이름 | 값 | 기본 | 설명 |
|---|---|---|---|
| 쓰기 태그 | tagId | — | 값을 쓸 대상. 읽기 태그와 다른 태그여도 됩니다. local: 이면 서버로 나가지 않습니다. |
| 보낼 값 | number | bool | string | 0 | 누를 때 보낼 값. 순간접점에서는 기본값이 true 입니다. |
| 토글 | boolean | false | 켜면 현재 읽기값을 뒤집어 보냅니다. 보낼 값은 무시됩니다. |
| 순간접점 | boolean | false | 누르는 동안만 값을 유지하고 떼면 되돌립니다(점동·조그). |
| 뗄 때 값 | number | bool | string | false | 순간접점에서 손을 뗄 때 보낼 값. |
| 확인 문구 | string | (없음) | 적어 두면 누를 때 이 문구로 확인 대화상자를 띄웁니다. |
| 함께 쓸 값 | 목록 | (없음) | 한 번 눌러 여러 값을 바꿉니다(정지하면 팬·밸브를 같이 닫는 식). 확인 창에 전부 나열됩니다. |
| 값 입력(키패드) | on·off | (꺼짐) | 누르면 숫자 키패드가 떠서 그때 넣은 값을 보냅니다. 보낼 값 대신 쓰입니다. |
| 최소 / 최대 | number | (제한 없음) | 범위를 벗어나면 전송을 막고 이유를 보여 줍니다. |
| 단위 | string | (없음) | 키패드에 함께 보여 줄 단위 — 무엇을 넣는지 헷갈리지 않게. |
| 키패드 제목 | string | (태그 id) | 비워 두면 태그 id 가 그대로 뜹니다. 손님 앞 화면에는 반드시 사람 말로 적으세요. |
| 현재값 보이기 | boolean | true | 고치는 값에는 켜 두고, 새로 넣는 값(전화번호 등)에는 끕니다. |
| 자판 입력(숫자) | 숫자 \| 지움 \| 한 자 지움 | (꺼짐) | 누를 때마다 값에 한 자씩 이어 붙입니다. 자판을 화면에 직접 그릴 때 씁니다. |
| 자판 입력(한글) | 자모 \| 지움 \| 한 자 지움 | (꺼짐) | 자모를 눌러 글자를 조합합니다(ㄱ+ㅣ+ㅁ → 김). 지움은 자모 단위입니다. |
| 최대 자릿수 | number | 32 | 자판 입력에서 이 길이를 넘으면 더 들어가지 않습니다. |
동작
전송하고 나면 반영을 확인합니다. 요소가 "보내는 중" 표시를 달고, 게이트웨이에서 그 태그의 값이 실제로 바뀌어 돌아오면 "반영됨"으로 바뀝니다. 3초 안에 안 돌아오면 미확인으로 표시합니다. 각 단계마다 알림도 함께 뜹니다.
미확인은 실패가 아닙니다. 쓰기 요청 자체는 나갔고 설비가 받았을 수도 있습니다 — 값이 되돌아오는 것만 3초 안에 확인하지 못한 것입니다. 폴링 주기가 긴 태그는 정상인데도 미확인이 뜹니다. "안 되었으니 다시 누르자"는 위험합니다 — 토글이라면 두 번 눌러 원위치가 되고, 그냥 보내기라면 같은 명령이 두 번 나갑니다.
되돌릴 수 없는 조작에는 확인 문구를 반드시 넣으세요. 운전 화면은 터치로 쓰이는 일이 많고, 손이 스치면 그대로 나갑니다. 확인 문구에는 "실행하시겠습니까?" 대신 무엇이 일어나는지를 적으세요 — "1호 펌프를 정지합니다" 처럼.
권한이 없으면 아무 일도 일어나지 않습니다. 보기 전용(viewer) 계정은 누를 때 권한 없음 알림만 뜨고 값은 나가지 않습니다(게이트웨이도 viewer 의 쓰기를 거절합니다). 화면 자체는 똑같이 보이므로, 보기 전용 계정으로 시험하면 "버튼이 안 먹는다"로 읽힐 수 있습니다. 운전자(operator)·관리자(admin)는 씁니다.
토글은 읽기값을 보고 뒤집습니다. 그 태그의 현재 값을 아직 한 번도 못 받았다면 꺼진 것으로 보고 켜는 쪽으로 보냅니다. 읽기 태그와 쓰기 태그가 다른 경우, 뒤집을 대상은 쓰기 태그의 값입니다.
순간접점은 클릭이 아니라 누름/뗌으로 동작합니다. 그래서 클릭 경로로는 값이 나가지 않고, 키보드로도 됩니다(누르고 있는 동안 자동 반복은 무시합니다). 손을 뗄 때뿐 아니라 포인터가 요소 밖으로 나가도 되돌림 값이 나갑니다.
그룹으로 묶은 버튼은 한 번만 보냅니다. 도형·글자·아이콘 여러 개를 묶어 버튼 하나로 만들었을 때, 어느 조각을 눌러도 전송은 한 번입니다. 조각마다 바인딩을 복제할 필요가 없습니다.
키패드 제목을 꼭 적으세요. 비워 두면 태그 id 가 그대로 뜹니다. 설비 화면에서는 그게 오히려 정확하지만, 손님이 보는 키오스크에 local:opt.phone 같은 글자가 떠 있으면 안 됩니다.
새로 넣는 값에는 ‘현재값 보이기’를 끄세요. 설정온도처럼 고치는 값에는 지금 얼마인지가 판단 근거지만, 전화번호 같은 식별자에는 뜻이 없습니다 — 미입력을 나타내는 내부 초기값이 손님에게 현재 -1 로 보이게 됩니다.
키패드는 숫자만 받습니다. 그래서 앞자리 0 이 사라집니다 — 0123 을 넣으면 123 이 됩니다. 전화번호처럼 0 으로 시작할 수 있는 값은 전체를 받지 말고 뒷자리만 받거나, 자릿수가 고정이면 화면에 가려서(●) 보여 주는 편이 낫습니다. 글자를 받는 입력은 아직 없습니다.
값이 문자열로 쌓입니다. 그래서 앞자리 0 이 살아남습니다(0126). 대신 보여 줄 때 그대로 보기를 켜야 합니다 — 켜지 않으면 숫자로 해석해 126 이 됩니다.
빈 값은 두 모습입니다. 처음의 초기값(-1 같은 표시값)과, 다 지운 뒤의 빈 문자열입니다. "아직 안 넣음" 안내를 붙일 때 둘 다 조건에 넣으세요 — 하나만 보면 다 지웠을 때 빈 칸만 남고 안내가 뜨지 않습니다.
확인 대화상자는 걸리지 않습니다. 한 자 누를 때마다 물으면 쓸 수 없기 때문입니다. 확인은 마지막 ‘보내기’ 버튼에 거세요.
게이트웨이 태그는 원자적이지 않습니다. 한 요청으로 보내지만(왕복을 하나로 줄이려는 것이지 트랜잭션이 아닙니다) 장치에 나간 쓰기는 되돌릴 수 없어, 중간에 실패하면 앞의 것은 이미 적용된 채로 남습니다 — "팬은 멈췄는데 댐퍼는 열린 채". 그래서 부분 실패는 성공으로 처리하지 않고 무엇이 실패했는지 이름까지 알려 줍니다.
안전 인터록을 화면에 두지 마세요. 화면이 값 세 개를 쓰는 순간, 그 인터록은 그 화면을 연 사람에게만 존재합니다. 다른 화면에서 정지하거나, 다른 클라이언트에서 쓰거나, 현장 조작반에서 멈추면 걸리지 않습니다. 어디서 조작하든 걸려야 하는 규칙은 게이트웨이나 PLC 쪽에 두세요. 이 기능은 조작 편의를 위한 것입니다.