야간 교대에 chilled water pump popup 두 개가 나란히 열려 있었다. 둘 다 제목은 Pump Detail, 둘 다 정지 상태, 둘 다 Start 버튼. 운전원은 duty pump를 올린다고 생각했고, 실제로 돈 것은 standby였다.
화면에 틀린 값은 하나도 없었다. 어느 화면이 어느 pump인지만 안 적혀 있었다.
이런 건 graphic 문제로 잡으면 안 고쳐진다. Navigation 문제로 잡아야 고쳐진다.
화면 이동은 운전 기능이다
HMI navigation은 운전원이 지금 어디에 있다고 믿는지, 어느 장비에 명령을 보낸다고 믿는지, 이상 상황에서 몇 초 만에 overview로 돌아오는지를 결정한다. Breadcrumb와 area label은 그 믿음을 화면에 적어 두는 장치다.
항상 세 가지에 답이 되어 있어야 한다.
- 지금 보는 곳이 어느 site, area, line, cell인가.
- 선택된 장비가 무엇인가.
- 이 버튼이 어디로 가고, 이 명령이 어느 범위에 걸리는가.
세 번째를 빼먹는 프로젝트가 제일 많다.
ISA-101의 4단계가 breadcrumb의 뼈대다
ISA-101.01-2015 Human Machine Interfaces for Process Automation Systems는 운전 화면을 네 단계로 나눈다. Level 1 area overview, Level 2 unit control, Level 3 unit detail, Level 4 진단·지원 화면이다. Breadcrumb는 결국 이 hierarchy 안에서 운전원의 현재 좌표를 적는 한 줄이다.
ISA-101이 같이 요구하는 것이 HMI Style Guide다. 화면을 어떻게 그리고 어떻게 이동할지 프로젝트 문서로 남기라는 것인데, 거기에 navigation 규칙까지 적는 프로젝트는 드물다. 안 적으면 화면마다 back button 동작이 달라진다. 그 차이를 결국 운전원이 외우게 된다.
폴더 구조가 아니라 공정 계층을 따른다
운전원은 HMI 프로젝트 폴더로 생각하지 않는다. 공정 area와 설비 이름으로 생각한다.
Plant 1 > Utilities > Chilled Water > CHW Pump 02
아래는 같은 화면인데 도움이 안 된다.
Main Menu > Pumps > Detail Screen > Object 17
첫 번째는 공정 위치를 알려 준다. 두 번째는 HMI 내부 구현을 보여 준다.
이름은 tag, alarm message, 작업 절차서, 현장 명판과 맞춘다. Alarm에는 UTIL-CHW-P02 Trip으로 뜨는데 detail 화면 제목이 Pump B면, 새벽에 부른 정비원이 두 번 묻는다.
길이도 관리한다. 나는 화면에 보이는 path를 40자 안쪽으로 자르고, 줄일 때는 상위 계층부터 줄인다. Area와 asset 이름은 안 자른다. 길어서 안 읽히는 breadcrumb는 없는 것과 같다.
Detail 화면은 자기 정체를 스스로 밝혀야 한다
Faceplate와 popup에서 context가 가장 자주 사라진다. 명령을 보낼 수 있는 화면이라면 최소한 이것들이 보여야 한다.
- equipment tag 또는 asset name
- area 또는 line name
- 현재 mode와 running state
- 명령이 걸리는 범위
- 원래 overview로 돌아가는 길
- 필요하면 active trip 요약이나 alarm count
제목에 식별자를 넣는다. CHW Pump 02 - Detail이 Pump Detail보다 안전하다. Popup이 parameter를 받아 자기 target을 확인하는 방법은 재사용 faceplate의 context 전달에 따로 정리해 뒀다.
응답 속도도 여기 걸린다. Detail 화면이 1초 안에 안 열리면 운전원은 한 번 더 누른다. Popup 두 개가 겹쳐 뜨고, 위에 있는 게 어느 asset인지 다시 알 수 없게 된다.
넓은 범위의 명령은 label에 범위를 적는다
Reset, Start, Acknowledge는 그 자체로 범위가 없는 단어다. Motor 하나인지 line 전체인지 화면이 말해 주지 않으면 운전원이 추측한다.
| 적용 범위 | 더 나은 label |
|---|---|
| Motor 하나 | Reset CHW-P02 |
| Skid 하나 | Reset Skid A Faults |
| Area 하나 | Acknowledge Utilities Alarms |
| Line 하나 | Start Line 3 Conveyor Sequence |
Area 단위 명령은 label만으로 부족하다. 누를 수 있는 사람도 제한한다. IEC 62443-3-3 SR 2.1 Authorization enforcement가 요구하는 것이 그것이고, HMI에서는 보통 버튼 단위 권한으로 내려온다. Confirmation dialog도 계속하시겠습니까?로 끝내지 말고 실제 target을 다시 적는다.
Alarm에서 화면까지 안 이어지면 대응 절차는 종이에만 있다
ISA-18.2-2016은 모든 alarm에 정의된 운전원 대응이 있다는 전제 위에 서 있다. Alarm banner를 눌렀는데 parameter가 안 넘어가서 default asset이 뜨는 HMI에서는, 그 대응 절차가 실제로 실행되지 않는다. 운전원은 엉뚱한 trend를 보고 판단한다.
그래서 시운전 때 alarm-to-detail 이동은 asset 하나만 보고 넘기면 안 된다. 복사해서 만든 장비, 다른 area의 장비, 이름이 긴 장비를 섞어서 본다.
막다른 화면을 만들지 않는다
Dead-end screen은 상세 정보는 많은데 운전 화면으로 빨리 돌아갈 길이 없는 화면이다. 프로젝트 후반에 diagnostic page를 급히 얹을 때 자주 생긴다. Level 4 화면을 engineering folder 아래에 만들고 back button을 그 folder 기준으로 걸어 두면, 운전원이 configuration menu로 튕겨 나간다. Return target은 폴더 위치가 아니라 공정 위치로 정한다.
확인할 것은 다섯 가지다.
- 모든 detail 화면에서 해당 area overview로 바로 돌아간다.
- Alarm이나 trend에서 점프해도 선택된 장비 context가 유지된다.
- Popup에서 popup을 열어도 최종 장비 식별자가 보인다.
- 어떤 운전 화면에서도 alarm summary로 갈 수 있다.
- Platform이 지원한다면 refresh나 client 재접속 후에도 navigation state가 남는다.
시운전 시나리오로 이렇게 시킨다. Alarm에서 시작해서 관련 trend를 보고, 장비 detail을 열고, 다시 area overview로 돌아온다. 도중에 "지금 어느 area입니까"라고 물었을 때 2초 안에 답이 안 나오면 breadcrumb가 일을 안 하는 것이다. 경로를 머리로 외워야 한다면 더 나쁘다.
복사한 화면은 link와 label을 따로 본다
대부분의 HMI 프로젝트는 화면을 복사해서 만든다. 효율적이지만 parameter 처리가 빠지면 navigation defect가 그대로 복사된다.
- Breadcrumb에 이전 area 이름이 남는다.
- Back button이 다른 line overview로 간다.
- Popup 제목에 static equipment name이 박혀 있다.
- Alarm jump가 맞는 template을 열지만 parameter가 틀리다.
- Trend button이 선택된 asset이 아니라 default pen group을 연다.
- Command confirmation에 generic object name이 나온다.
같은 template을 서로 다른 asset 두 개로 동시에 띄워 보는 게 제일 빠른 시험이다. 두 화면이 한눈에 구분 안 되면 label이 부족한 것이다. 화면 요소 자체를 어떻게 읽히게 만드는지는 faceplate 설계 체크리스트에 있다.
인수 전에
- 운전원이 2초 안에 현재 area를 말할 수 있는가.
- 명령 가능한 모든 화면에 정확한 target asset이 보이는가.
- Alarm, trend, faceplate jump가 context를 유지하는가.
- 복사한 화면에 오래된 label과 잘못된 return link가 없는가.
- 넓은 범위의 command가 실제 범위로 표시되는가.
- Browser history나 숨은 menu 없이 process overview로 돌아올 수 있는가.
FAT에서 화면 목록만 넘겨 보면 navigation 품질은 안 드러난다. 실제로 움직이는 경로를 punch list에 일찍 넣어야 한다.
다음에 HMI 앞에 앉으면 값은 보지 말고 제목과 breadcrumb만 읽어 보자. 지금 어느 area의 어느 asset인지 두 줄 안에서 안 나오면, 그 부분은 지금 운전원이 기억으로 메우고 있다는 뜻이다.