본문 바로가기
디지털 전환 솔루션/HMI & SCADA

전문적인 산업용 HMI를 개발한다면

by eplus 2026. 8. 3.

전문적인 HMI는 단순히 PLC 값을 화면에 표시하는 프로그램이 아니다.

사용자가 화면을 설계하는 HMI Designer, 현장에서 화면을 실행하는 HMI Runtime, PLC와 통신하는 통신 드라이버, 알람·이력·레시피를 처리하는 실시간 엔진이 하나의 플랫폼으로 구성되어야 한다.

MES Lite의 설비관리와 결합한다면 다음과 같은 제품 구조가 적합하다.

MES Lite의 설비·품목·작업지시를 기반으로 다양한 PLC와 연결하고, 사용자가 화면을 자유롭게 설계할 수 있는 산업용 HMI 플랫폼

1. 전문 HMI의 제품 구성

전문 HMI는 최소한 다음 프로그램으로 분리해야 한다.

프로그램역할
HMI Designer 화면과 태그 설계
HMI Runtime 현장 HMI 실행
Communication Service PLC·계측기 통신
Tag Engine 실시간 태그 처리
Alarm Engine 알람 판정과 이력
Historian 실시간 데이터 저장
Project Manager 프로젝트와 버전 관리
Device Manager 설비·PLC·통신 설정
Deployment Manager 현장 장비에 프로젝트 배포
Simulation Tool PLC 없이 화면 시험
 
 
 

2. HMI Designer

전문 제품의 핵심은 드래그 앤 드롭 방식의 화면 편집기다.

기본 편집 기능

  • 컴포넌트 선택과 배치
  • 이동과 크기 변경
  • 복사·붙여넣기
  • 실행 취소·다시 실행
  • 여러 개 선택
  • 정렬과 간격 맞춤
  • 그룹화와 그룹 해제
  • 앞·뒤 순서 변경
  • 확대·축소
  • 격자와 스냅
  • 잠금과 숨김
  • 속성 일괄 변경
  • 화면 미리보기

지원 컴포넌트

  • 텍스트와 라벨
  • 숫자 표시
  • 숫자 입력
  • 문자열 입력
  • 상태 램프
  • 운전·정지 버튼
  • 토글 스위치
  • 선택 스위치
  • 게이지
  • 슬라이더
  • 진행률
  • 탱크와 배관
  • 밸브와 모터
  • 펌프와 팬
  • 실시간 그래프
  • 과거 트렌드
  • 알람 목록
  • 레시피 선택
  • 이미지와 애니메이션
  • 카메라 영상
  • 표와 데이터 그리드

각 컴포넌트는 태그값에 따라 색상, 크기, 위치, 회전, 표시 여부와 이미지가 변경될 수 있어야 한다.

3. 속성 편집기

컴포넌트를 선택하면 속성창에서 다음 항목을 설정한다.

일반 속성

  • 이름
  • 위치와 크기
  • 글꼴
  • 전경색과 배경색
  • 테두리
  • 정렬
  • 투명도
  • 표시 여부

태그 연결

  • 표시 태그
  • 쓰기 태그
  • 활성화 조건
  • 점멸 조건
  • 표시 조건
  • 애니메이션 조건
  • 권한 조건

동작 설정

  • PLC 값 쓰기
  • 화면 이동
  • 팝업 열기
  • 레시피 호출
  • 알람 확인
  • 프로그램 실행
  • API 호출
  • 스크립트 실행

입력 제한

  • 최소값과 최대값
  • 소수점
  • 단위
  • 확인 메시지
  • 관리자 승인
  • 변경 사유 입력
  • 쓰기 후 값 재확인

4. 태그 엔진

전문 HMI에서 태그는 단순히 PLC 주소를 저장하는 항목이 아니다.

태그 종류

  • 실시간 장치 태그
  • 내부 메모리 태그
  • 계산 태그
  • 시스템 태그
  • 알람 태그
  • 레시피 태그
  • MES 연동 태그
  • 누적값 태그
  • 통계 태그

태그 속성

속성설명
TagName 태그 고유 이름
DeviceID 연결 장치
Address PLC 주소
DataType Bool·Int·Float·String
AccessMode 읽기·쓰기 권한
ScanRate 수집주기
Deadband 저장할 최소 변화량
Scale 원시값 변환
Unit 표시 단위
Quality 데이터 품질
Timestamp 최종 수집시간
History 이력 저장 여부
Security 변경 가능 권한

계산 태그

PLC 값을 조합하여 새로운 값을 만들 수 있어야 한다.

가동률 = 실제 가동시간 / 계획시간 × 100
생산속도 = 1분간 생산수량
전력원단위 = 사용전력 / 생산수량
설비상태 = RUN과 ALARM 조합
 

계산식은 C# 코드에 직접 작성하지 않고 수식 엔진으로 처리해야 한다.

5. 데이터 품질

전문 HMI는 태그값과 함께 데이터의 상태를 관리해야 한다.

  • Good: 정상값
  • Bad: 유효하지 않은 값
  • Uncertain: 신뢰하기 어려운 값
  • Disconnected: 통신 끊김
  • Timeout: 응답시간 초과
  • Stale: 오래된 값
  • ConfigurationError: 주소 설정 오류

통신이 끊겼는데 마지막 정상값을 계속 표시하면 작업자가 현재값으로 오해할 수 있다.

따라서 다음과 같이 표시해야 한다.

  • 값 대신 --- 표시
  • 통신장애 색상 적용
  • 마지막 수집시간 표시
  • 조작 버튼 비활성화
  • 통신 알람 발생

6. 통신 드라이버 플랫폼

PLC 제조사별 코드를 HMI 본체에 직접 포함하지 않고 플러그인 방식으로 분리해야 한다.

 
public interface IHmiDeviceDriver
{
    string DriverName { get; }
    bool IsConnected { get; }

    Task ConnectAsync(DeviceConnection settings);
    Task DisconnectAsync();

    Task<IReadOnlyList<TagResult>> ReadAsync(
        IReadOnlyList<TagRequest> tags);

    Task<WriteResult> WriteAsync(
        TagWriteRequest request);
}
 

우선 지원할 프로토콜

  1. Modbus TCP
  2. Modbus RTU
  3. OPC UA
  4. LS XGT
  5. Mitsubishi MC Protocol
  6. Siemens S7
  7. Omron FINS
  8. MQTT
  9. EtherNet/IP

처음부터 모든 PLC를 지원하기보다 MES Lite 고객층을 고려하여 LS, Mitsubishi, Modbus, OPC UA부터 개발하는 것이 현실적이다.

7. 통신 최적화

전문 HMI는 태그마다 개별 요청을 보내지 않는다.

PLC 주소가 가까운 태그를 묶어 한 번에 읽는 블록 읽기 기능이 필요하다.

예를 들어 다음 주소가 등록되어 있다고 가정한다.

D100, D101, D102, D110, D111
 

이를 다섯 번 읽는 대신 다음처럼 그룹화한다.

D100~D111 블록 읽기 → 필요한 값만 분리
 

필요한 기능은 다음과 같다.

  • 주소 자동 그룹화
  • 장치별 수집 스레드 분리
  • 수집주기별 태그 그룹
  • 우선순위 태그
  • 통신 요청 대기열
  • Timeout
  • 자동 재연결
  • 재시도 횟수 제한
  • 통신량과 응답시간 측정
  • 장치별 오류 격리

8. 알람 관리

전문 HMI의 알람은 조건 판단과 생명주기를 관리해야 한다.

알람 종류

  • 비트 알람
  • 상한·하한 알람
  • 상상한·하하한 알람
  • 변화율 알람
  • 통신 알람
  • 설비상태 알람
  • 복합 조건 알람
  • 시스템 알람

알람 상태

  • 정상
  • 발생
  • 미확인
  • 확인
  • 복구
  • 일시 억제
  • 비활성
  • 유지보수 제외

알람 정보

  • 발생시간
  • 확인시간
  • 복구시간
  • 작업자
  • 당시 태그값
  • 알람 중요도
  • 원인
  • 조치방법
  • 조치 결과
  • 관련 설비
  • 관련 작업지시
  • 반복 횟수

알람 폭주를 막기 위한 지연시간, 히스테리시스, 반복 억제와 우선순위 기능도 필요하다.

9. 트렌드와 Historian

실시간 트렌드

  • 여러 태그 동시 표시
  • 축 확대·축소
  • 시간범위 변경
  • 자동 스크롤
  • 상한·하한선
  • 단위별 Y축
  • 커서 위치 값 표시

과거 트렌드

  • 기간과 설비 선택
  • 데이터 집계
  • 최소·최대·평균
  • 알람 발생지점 표시
  • CSV·Excel 내보내기
  • 이미지·PDF 출력

저장 정책

  • 값이 변할 때 저장
  • 일정 주기로 저장
  • Deadband 초과 시 저장
  • 알람 전후 고속 저장
  • 장기 데이터 집계
  • 보관기간 경과 후 삭제

대량 이력은 MES 업무 테이블과 분리해야 한다.

10. 레시피 관리

레시피는 단순한 설정값 묶음이 아니라 생산조건의 버전이다.

필요한 기능은 다음과 같다.

  • 제품별 레시피
  • 설비별 레시피
  • 버전 관리
  • 변경 승인
  • 변경 전후 비교
  • PLC 업로드·다운로드
  • 전송 결과 검증
  • 작업지시와 자동 연결
  • 사용 이력
  • 권한 관리

레시피를 PLC로 전송한 후 다시 읽어 동일한 값이 반영됐는지 검증해야 한다.

11. 스크립트 기능

전문 HMI에는 간단한 사용자 로직을 작성할 수 있는 스크립트 기능이 필요하다.

예를 들면 다음과 같다.

생산수량이 계획수량 이상이면 완료 메시지 표시
압력이 기준을 넘으면 관련 버튼 비활성화
제품이 변경되면 해당 레시피 불러오기
작업 종료 시 MES에 실적 전송
 

스크립트에는 다음 제한이 필요하다.

  • 실행시간 제한
  • 메모리 제한
  • 허용 API 제한
  • 파일·네트워크 접근 제한
  • 무한 반복 방지
  • 실행 오류 격리
  • 변경 이력 관리

일반 C# 코드를 그대로 실행하게 하면 보안과 안정성 문제가 발생할 수 있다. 제한된 명령식이나 샌드박스형 수식 엔진부터 시작하는 것이 안전하다.

12. 심벌 라이브러리

전문 HMI에는 제조현장에서 재사용할 수 있는 산업용 심벌이 필요하다.

  • 모터
  • 펌프
  • 밸브
  • 컨베이어
  • 탱크
  • 배관
  • 실린더
  • 로봇
  • 센서
  • 계측기
  • 전력설비
  • 경광등

심벌은 단순 이미지보다 태그가 포함된 사용자 정의 컴포넌트로 구성하는 것이 좋다.

예를 들어 모터 심벌에는 다음 태그를 연결한다.

RUN
STOP
FAULT
AUTO
CURRENT
START_COMMAND
STOP_COMMAND
 

이 심벌을 화면에 배치하고 설비만 선택하면 관련 태그가 자동 연결되도록 한다.

13. 사용자 정의 컴포넌트

사용자가 만든 설비 블록을 라이브러리에 저장할 수 있어야 한다.

예를 들어 프레스 설비 블록을 등록하면 다음 요소를 함께 포함한다.

  • 설비 이미지
  • 운전상태
  • 현재 생산수량
  • 압력
  • 알람
  • 상세화면 이동
  • 운전·정지 버튼

새로운 프레스 설비를 화면에 추가할 때 설비 ID만 지정하면 모든 태그가 자동으로 연결되는 구조다.

14. 화면 탐색과 팝업

전문 HMI에서는 다음 화면 방식을 지원해야 한다.

  • 전체화면
  • 공통 메뉴
  • 상세화면
  • 모달 팝업
  • 설비 정보 팝업
  • 알람 팝업
  • 설정값 입력창
  • 이전·다음 화면
  • 즐겨찾기 화면
  • 사용자별 시작화면

설비 심벌을 선택하면 해당 설비의 상세화면을 자동으로 열도록 한다.

15. 해상도와 화면 배율

현장에는 다양한 해상도의 모니터가 사용된다.

  • 7인치 패널
  • 10인치 패널
  • 15인치 패널PC
  • 24인치 모니터
  • 대형 관제 모니터

따라서 화면 크기를 픽셀로만 고정하지 말고 기준 해상도와 배율을 사용해야 한다.

WPF는 벡터 기반 화면과 확대·축소에 유리하다. 전문적인 HMI Designer와 Runtime을 새로 개발한다면 WinForms보다 WPF가 적합하다.

다만 MES Lite의 업무관리 화면은 기존 WinForms를 유지하고, HMI Designer와 Runtime만 WPF로 별도 개발하는 방식이 현실적이다.

16. HMI 프로젝트 관리

하나의 HMI 프로젝트에는 다음 정보가 포함된다.

HMI Project
 ├─ 프로젝트 설정
 ├─ 통신 장치
 ├─ 태그
 ├─ 화면
 ├─ 팝업
 ├─ 심벌
 ├─ 알람
 ├─ 레시피
 ├─ 사용자 권한
 ├─ 스크립트
 ├─ 보고서
 └─ 배포 설정
 

프로젝트는 하나의 폴더 또는 패키지 파일로 내보낼 수 있어야 한다.

예를 들어 다음과 같은 확장자를 사용할 수 있다.

FactoryLine01.ehmi
 

내부 구조는 JSON, 이미지, 심벌, 스크립트와 설정파일로 구성하고 배포 시 무결성 검사를 적용한다.

17. 버전과 배포관리

현장 HMI는 개발 PC에서 작성한 프로젝트를 실행 PC로 안전하게 배포해야 한다.

필요한 기능은 다음과 같다.

  • 프로젝트 버전
  • 개발·검증·운영 구분
  • 변경내용
  • 배포 승인
  • 실행 전 유효성 검사
  • 현재 버전 백업
  • 실패 시 자동 복구
  • 원격 배포
  • 여러 HMI 일괄 배포
  • 배포 결과 확인

운영 중인 프로젝트를 바로 덮어쓰지 않고 다음 순서로 배포해야 한다.

프로젝트 업로드
→ 문법·태그·화면 검사
→ 기존 버전 백업
→ 신규 버전 적용
→ Runtime 재시작
→ 동작 확인
→ 실패 시 이전 버전 복구
 

18. 시뮬레이터

전문 HMI는 실제 PLC가 없어도 시험할 수 있어야 한다.

시뮬레이션 기능

  • Bool 값 자동 전환
  • 숫자값 증가·감소
  • 사인파·랜덤값 생성
  • 알람 강제 발생
  • 통신장애 재현
  • 생산수량 자동 증가
  • 설비상태 시나리오
  • 레시피 전송 시험
  • 작업지시 연동 시험

예를 들어 다음 시나리오를 구성할 수 있다.

정지 5초
→ 운전 30초
→ 온도 상승
→ 생산수량 증가
→ 모터 과부하 알람
→ 작업자 확인
→ 알람 복구
→ 정상 운전
 

이는 MES Lite의 테스트 시나리오 자동화와도 연결할 수 있다.

19. 사용자와 보안

권한 구분

사용자주요 권한
작업자 운전과 상태 확인
반장 생산조건 일부 변경
보전담당자 수동조작과 점검
생산관리자 작업지시와 실적
HMI 설계자 화면과 태그 편집
시스템 관리자 통신·사용자·배포

보안 기능

  • 사용자 인증
  • 역할 기반 권한
  • 자동 로그아웃
  • 중요 명령 재확인
  • 변경 사유 입력
  • 조작 이력
  • 프로젝트 암호화
  • 설정 무결성 검사
  • 인증서 기반 통신
  • 원격접속 제한
  • 허용 IP 관리

20. 산업용 안정성

전문 HMI는 24시간 연속 운전을 전제로 해야 한다.

  • 메모리 누수 방지
  • 통신 드라이버 장애 격리
  • 자동 재연결
  • 수집 서비스 자동 재시작
  • Watchdog
  • 데이터베이스 장애 대응
  • 로컬 임시저장
  • 네트워크 복구 후 재전송
  • 로그 용량 자동 관리
  • 디스크 부족 감시
  • CPU·메모리 사용량 감시
  • 비정상 종료 후 자동 복구

HMI 화면이 멈춰도 PLC 제어와 데이터 수집은 계속되어야 한다.

21. 안전 제어의 한계

전문 HMI라도 다음 기능을 담당해서는 안 된다.

  • 비상정지 회로
  • 안전문 인터록
  • 과속 방지
  • 압력 안전제어
  • 안전 PLC 기능
  • 인명 관련 보호회로

이러한 기능은 안전 릴레이, 안전 PLC와 하드웨어 회로에서 처리해야 한다. HMI는 상태 표시와 승인된 명령 전달 역할만 담당한다.

22. MES Lite와의 전문적인 연동

MES Lite의 다음 정보를 HMI에서 활용할 수 있다.

  • 공장·라인·공정
  • 설비 마스터
  • 사원과 권한
  • 품목
  • 작업지시
  • 작업자 배정
  • LOT
  • 생산계획
  • 레시피
  • 품질기준
  • 설비점검
  • 고장·보전
  • 작업표준서

HMI에서 발생한 정보는 MES Lite로 전달한다.

  • 작업 시작·종료
  • 생산수량
  • 불량수량
  • 설비상태
  • 비가동시간
  • 알람
  • 레시피 적용
  • 작업자 조작
  • 설비보전 요청

23. 권장 솔루션 구조

eHMI Solution
 ├─ eHMI Designer       화면 설계
 ├─ eHMI Runtime        현장 실행
 ├─ eHMI Collector      PLC 수집
 ├─ eHMI Driver SDK     통신 드라이버
 ├─ eHMI Historian      이력 저장
 ├─ eHMI Simulator      가상 PLC
 ├─ eHMI Deployment     배포·버전
 ├─ eHMI Web Monitor    원격 조회
 └─ MES Lite Connector  MES 연동
 

24. 개발 우선순위

1단계: 전문 Runtime 기반

  • 태그 엔진
  • 통신 서비스
  • 데이터 품질
  • 알람 엔진
  • 이력 저장
  • 공용 HMI 화면
  • 사용자 권한
  • 자동복구

2단계: HMI Designer

  • 드래그 앤 드롭
  • 속성 편집기
  • 태그 연결
  • 기본 컴포넌트
  • 화면 미리보기
  • 프로젝트 저장

3단계: 산업용 기능

  • 심벌 라이브러리
  • 사용자 컴포넌트
  • 레시피
  • 트렌드
  • 보고서
  • 시뮬레이터
  • 스크립트

4단계: 제품화

  • 프로젝트 패키징
  • 라이선스
  • 원격 배포
  • 버전 복구
  • 드라이버 SDK
  • 다국어
  • 도움말과 교육자료

5단계: SCADA 확장

  • 다중 HMI 통합
  • 중앙 서버
  • 웹 관제
  • 서버 이중화
  • 대용량 Historian
  • 다공장 관리
  • MES·FEMS 연계

25. 예상 개발기간

단계예상기간
통신·태그 엔진 2~3개월
기본 Runtime 2~3개월
기본 Designer 3~5개월
알람·트렌드·레시피 2~4개월
시뮬레이터·배포 2~3개월
제품 안정화 3~6개월

핵심 개발자 1명 기준으로 전문 제품의 초기 버전은 약 12~18개월이 현실적이다. 현장 검증과 PLC 종류 확대까지 포함하면 2년 이상의 지속적인 개발이 필요하다.

26. 가장 현실적인 개발 전략

처음부터 Pro-face나 Siemens와 동일한 범용 HMI를 목표로 하면 개발범위가 지나치게 커진다.

MES Lite의 강점을 살려 다음 분야에 집중하는 것이 좋다.

중소 제조업체의 생산관리와 설비관리를 하나로 연결하는 MES 연동형 전문 HMI

차별화 기능은 다음과 같다.

  • MES 설비정보 자동 연계
  • 작업지시 기반 HMI 화면
  • 생산실적 자동수집
  • 설비상태와 비가동 자동분석
  • 알람에서 보전요청 자동 생성
  • 품목별 레시피 연계
  • 작업표준서 즉시 조회
  • FEMS 에너지 데이터 동시 수집
  • AI 기반 설비 이상징후 분석
  • 고객사 내부 운영자가 화면 수정 가능

결론

전문적인 HMI를 개발하려면 Designer + Runtime + 통신 서비스 + 태그 엔진 + 알람 + Historian + 시뮬레이터 + 배포관리가 필요하다.

권장 기술 구성은 다음과 같다.

  • MES Lite 업무화면: 기존 C# WinForms
  • HMI Designer: C# WPF
  • HMI Runtime: C# WPF
  • 수집기: .NET Worker Service
  • 중앙관제: ASP.NET Core
  • 실시간 전송: SignalR
  • 업무 데이터: MariaDB
  • 고속 이력: 전용 Historian 구조
  • 초기 통신: LS·Mitsubishi·Modbus·OPC UA

이 방향으로 개발하면 MES Lite는 생산업무 시스템을 넘어 설비 제어·생산관리·보전·에너지 관리가 연결되는 제조 실행 플랫폼으로 확장할 수 있다.

반응형