← 전체 글
프로젝트 노트/약 7분 읽기/— 조회

HMI/SCADA 프로젝트에서 되돌리기 비싼 결정 다섯 가지

태그 이름, 알람 개수, 화면 계층, 단선 처리, 재시작 후 명령 상태. 프로젝트 후반에 고치면 비싼 다섯 가지 결정과 ISA-18.2, ISA-101.01, NAMUR NE 43이 정해 놓은 기준.

SCADAHMI체크리스트문제 해결

시운전 3주 차에 태그 120개 이름을 바꿨다. 화면은 30분 만에 고쳤다. 리포트 쿼리, 트렌드 즐겨찾기, 스크립트, 운전원 교육자료까지 따라가는 데 이틀 걸렸다. 히스토리안은 더 나빴다. 옛 이름으로 쌓인 3주치 데이터는 새 이름 아래로 옮겨오지 않는다. 트렌드에 끊긴 구간이 그대로 남았다.

기술이 어려워서 생긴 문제가 아니다. 초기에 30분이면 끝나는 결정을 미뤄서 생긴 문제다. 아래 다섯 개는 내가 실제로 값을 치른 것들이고, 넷은 이미 표준에 답이 적혀 있다.

1. 태그 이름은 인프라다

태그 이름은 화면에만 쓰이지 않는다. 히스토리안 키, 리포트 컬럼, OPC UA browse path, 스크립트 문자열, 알람 메시지, 스크린샷에 동시에 박힌다. 그래서 이름 바꾸기는 문자열 치환이 아니라 마이그레이션이다.

계측 태그라면 ISA-5.1 function letter를 그대로 쓰는 편이 낫다. FIC-101은 어느 벤더 화면에서도 flow indicating controller로 읽힌다. 사내에서 새로 만든 약어는 그렇지 않다.

규칙보다 중요한 건 예외 기록이다. 규칙은 어차피 깨진다. 깨진 자리를 적어 두지 않으면 다음 사람이 규칙을 믿고 자동 생성 스크립트를 돌린다. 자세한 규칙은 SCADA 태그 이름 짓기 가이드에 정리해 뒀다.

2. 알람 개수는 취향이 아니라 숫자다

"알람이 좀 많다"는 말로 회의하면 결론이 안 난다. ISA-18.2와 같은 내용의 IEC 62682, 그리고 EEMUA 191은 운전원 콘솔 한 대 기준으로 숫자를 준다.

지표목표상한
하루 알람 수약 150건300건
10분당 알람 수1건 이하2건

10분에 10건을 넘으면 ISA-18.2는 그것을 alarm flood라고 부른다. flood 구간에서 운전원이 알람을 읽는다는 가정은 버려야 한다.

이 숫자를 시운전 전에 합의해 두면 논쟁이 측정으로 바뀐다. 하루 4,000건이 나오는 시스템에서 상위 20개 태그가 보통 절반 이상을 만든다. 거기부터 손대면 된다. 절차는 알람 합리화 워크숍 체크리스트에 있다.

3. 화면 계층은 첫 화면을 그리기 전에 정한다

ISA-101.01은 화면을 Level 1(공장 개요)부터 Level 4(상세·진단)까지 네 단계로 나눈다. 이걸 나중에 정하면 화면을 다시 그리는 게 아니라 내비게이션을 다시 그린다. 버튼 위치, 권한, 북마크, 교육자료가 전부 계층에 묶여 있다.

실무에서는 Level 2와 Level 3 경계가 제일 자주 흔들린다. 나는 "운전원이 이 화면에서 조작을 하는가"로 자른다. 조작하면 Level 2, 보기만 하면 Level 3.

4. 단선을 어디서 판단할지 정한다

NAMUR NE 43은 420 mA 신호의 고장 표시를 정해 뒀다. 3.820.5 mA가 유효 측정 구간이고, 3.6 mA 이하는 failure low, 21 mA 이상은 failure high다.

여기서 결정이 필요하다. 스케일링을 하는 쪽이 이 판정을 하는가, 화면이 하는가. 드라이버가 3.6 mA를 그냥 -2.5 %로 환산해서 올려 보내면, 끊어진 배선이 유효한 0에 가까운 값으로 영원히 보인다. 알람도 안 뜬다. 값이 정상 범위 안이니까.

판정은 태그 하나당 한 번, 스케일링 계층에서 해야 한다. 화면 30장에서 각자 하면 한 장은 반드시 빠진다. 이건 태그 1,000개짜리 프로젝트에서 나중에 고치면 정말 비싸다.

5. 재시작 후 명령이 살아 있는지 정한다

PLC가 재시작하면 명령 비트가 어떤 상태로 깨어나는지는 IEC 61131-3의 RETAIN 속성이 정한다. RETAIN이면 전원 복구 후 이전 값으로 살아난다. 아니면 초기값이다.

문제는 HMI 쪽 래치와 PLC 쪽 RETAIN이 서로 다르게 정해져 있을 때다. 운전원이 누른 적 없는 펌프 기동 명령이 재시작 직후 실행된다. 실제로 본 적 있다. 자세한 건 PLC 재시작 후 HMI 명령 리셋 동작 설계에 적어 뒀다.

시운전 로그는 이 다섯 개보다 오래 남는다

이상한 장비 동작, 프로토콜 특이사항, 임시로 넣은 bypass, 최종 수정 내용을 날짜와 함께 적어 둔다. 1년 뒤 장애의 출발점은 거의 항상 이 로그다. 화려한 화면은 안 남는다.

다음에 확인할 것 하나. 백업이 깨끗한 장비에서 복원되는지 재 본 적 있는가. 없으면 그건 백업이 아니라 희망이다 — 백업 복원 드릴에 측정 방법을 적어 뒀다.