MES Lite의 설비관리 정보를 기준으로 HMI를 개발하면 설비마다 화면을 새로 만드는 방식에서 벗어날 수 있다.
핵심은 다음과 같다.
설비별 HMI 화면을 프로그램으로 고정하지 않고, 설비·태그·화면·컴포넌트·알람 정보를 설정하여 자동 생성한다.
이러한 방식을 적용하면 신규 설비가 추가되더라도 프로그램을 다시 개발하지 않고 설비 등록과 화면 설정만으로 HMI를 구성할 수 있다.
1. MES Lite 설비관리와 HMI의 관계
MES Lite 설비관리에는 일반적으로 다음 정보가 있다.
- 공장
- 작업장
- 생산라인
- 공정
- 설비
- 설비 유형
- PLC 정보
- 설비 상태
- 점검 항목
- 고장 이력
- 보전 이력
HMI에서는 이 정보를 그대로 활용하고 통신에 필요한 태그와 화면정보를 추가한다.
MES와 HMI에서 설비정보를 따로 등록하면 설비 코드나 명칭이 서로 달라질 수 있다. 따라서 MES Lite의 설비 마스터를 HMI의 기준정보로 사용하는 것이 좋다.
2. 기본 설계 원칙
설비를 프로그램이 아닌 데이터로 정의한다
좋지 않은 방식은 설비마다 전용 폼을 만드는 것이다.
frmPress01
frmPress02
frmInjection01
frmCompressor01
이 구조는 설비가 추가될 때마다 프로그램 수정과 배포가 필요하다.
유연한 구조에서는 하나의 공용 화면을 사용한다.
frmHmiMonitor
└─ EquipmentID에 따라 화면 자동 구성
예를 들어 다음과 같이 실행한다.
OpenHmi("PRESS-001");
OpenHmi("PRESS-002");
OpenHmi("COMPRESSOR-001");
frmHmiMonitor는 설비에 등록된 화면 템플릿과 태그정보를 읽어 자동으로 화면을 구성한다.
3. 전체 구조
HMI 화면은 PLC를 직접 읽지 않는다. 별도의 수집 서비스가 PLC 데이터를 읽어 실시간 태그 캐시에 저장하고, HMI는 캐시된 값을 표시한다.
이를 통해 화면이 종료되더라도 수집과 알람 감시는 계속된다.
4. MES Lite 설비정보 확장
기존 설비 마스터에는 다음 항목을 추가할 수 있다.
| EquipmentID | 설비 고유번호 |
| EquipmentName | 설비명 |
| EquipmentType | 프레스·사출기·콤프레서 등 |
| LineID | 소속 생산라인 |
| ProcessID | 적용 공정 |
| HmiEnabled | HMI 사용 여부 |
| HmiTemplateID | 적용할 화면 템플릿 |
| DeviceID | 연결할 PLC 또는 계측기 |
| StatusTagID | 설비 상태 태그 |
| ProductionTagID | 생산수량 태그 |
| AlarmTagID | 대표 알람 태그 |
| UseRemoteControl | 원격제어 허용 여부 |
기존 설비관리의 기본정보를 변경하기 어렵다면 HMI 전용 확장정보를 별도 구조로 연결해도 된다.
5. 핵심 데이터 구조
설비 유형
같은 종류의 설비가 여러 대라면 설비별 설정을 반복 등록할 필요가 없다.
예를 들어 프레스 설비 유형을 만든다.
설비 유형: PRESS
화면 템플릿: PRESS_BASIC
공통 태그:
- 운전상태
- 자동운전
- 생산수량
- 금형번호
- 모터전류
- 현재압력
- 고장상태
PRESS-001과 PRESS-002는 같은 유형을 사용하고 PLC 주소만 다르게 설정한다.
통신 장치
| DeviceID | PLC-LINE01 |
| 장치 종류 | LS XGT |
| 통신 방식 | Ethernet |
| IP | 192.168.10.21 |
| Port | 2004 |
| 수집주기 | 1초 |
| Timeout | 3초 |
| 재연결주기 | 5초 |
| 사용 여부 | 사용 |
비밀번호나 인증정보는 평문으로 저장하지 않고 암호화해야 한다.
태그 정의
태그는 HMI 시스템의 핵심이다.
| RUN | M100 | Bool | 운전상태 | |
| AUTO | M101 | Bool | 자동운전 | |
| COUNT | D100 | Int | EA | 생산수량 |
| TEMP | D110 | Float | ℃ | 온도 |
| PRESSURE | D120 | Float | bar | 압력 |
| ALARM | M200 | Bool | 고장상태 |
태그에는 다음 속성을 추가한다.
- 읽기·쓰기 구분
- 최소·최대 입력값
- 표시 소수점
- 값 변환 배율
- 수집주기
- 이력 저장 여부
- 변경 이력 기록 여부
- 알람 사용 여부
- 통신 실패 시 처리방법
- 쓰기 권한
- 중요 명령 재확인 여부
6. 태그 주소의 유연화
동일한 설비 유형이라도 PLC 주소는 다를 수 있다.
절대주소 방식
PRESS-001.RUN = M100
PRESS-002.RUN = M200
구현은 간단하지만 설비마다 모든 주소를 등록해야 한다.
기준주소 방식
설비별 기준주소를 등록하고 상대 위치로 계산한다.
PRESS-001 기준주소 = 100
PRESS-002 기준주소 = 200
RUN = M{BASE+0}
AUTO = M{BASE+1}
ALARM = M{BASE+10}
COUNT = D{BASE+0}
PRESSURE = D{BASE+10}
이 방식은 동일한 PLC 프로그램 구조를 사용하는 설비가 여러 대일 때 효율적이다.
변수 치환 방식
{Device}.RUN
{Device}.COUNT
{Device}.TEMP
OPC UA처럼 논리적인 태그 이름을 사용하는 환경에 적합하다.
세 방식을 모두 지원하도록 설계하면 현장별 차이에 대응하기 쉽다.
7. 화면 템플릿
HMI 화면도 설비마다 직접 만들지 않고 템플릿으로 관리한다.
예를 들어 다음 템플릿을 만들 수 있다.
- 공통 설비
- 프레스
- 사출기
- 가공기
- 콤프레서
- 전력계
- 보일러
- 생산라인
- 에너지 모니터
템플릿에는 다음 항목을 등록한다.
| TemplateID | 화면 템플릿 번호 |
| 화면명 | 프레스 기본화면 |
| 기준 해상도 | 1280×800 |
| 배경색 | 화면 기본색 |
| 화면 종류 | 운전·상태·트렌드 |
| 설비 유형 | PRESS |
| 버전 | 템플릿 버전 |
| 사용 여부 | 현재 사용 여부 |
8. 동적 컴포넌트
화면에는 여러 종류의 컴포넌트를 배치한다.
- 텍스트
- 숫자 표시
- 상태 램프
- 운전·정지 버튼
- 토글 스위치
- 게이지
- 진행률
- 실시간 차트
- 이미지
- 설비 아이콘
- 알람 목록
- 생산수량
- 레시피 선택
- 다른 화면 이동 버튼
각 컴포넌트는 다음과 같이 설정한다.
| ComponentType | StatusLamp |
| TagKey | RUN |
| X·Y | 화면 위치 |
| Width·Height | 크기 |
| OnColor | Green |
| OffColor | Gray |
| OnText | 운전 |
| OffText | 정지 |
| BlinkCondition | ALARM=true |
| WriteValue | true |
| RequiredRole | EquipmentOperator |
화면 엔진은 이 설정을 읽어 WinForms 또는 WPF 컨트롤을 동적으로 생성한다.
9. 상태 표현 규칙
설비 상태를 프로그램 코드에 직접 작성하지 않고 규칙으로 관리한다.
| 통신 끊김 | 통신장애 | 보라색 |
| ALARM = true | 고장 | 빨간색 |
| RUN = true | 운전 | 녹색 |
| RUN = false | 정지 | 회색 |
| SETUP = true | 준비·교체 | 파란색 |
| WAIT = true | 대기 | 노란색 |
판정 우선순위도 필요하다.
통신장애 → 고장 → 비상정지 → 운전 → 대기 → 정지
고장과 운전 신호가 동시에 들어오더라도 고장 상태가 먼저 표시되어야 한다.
10. 설비 유형 상속
설비 유형은 공통 기능을 상속하도록 설계할 수 있다.
공통 설비
├─ 프레스
├─ 사출기
├─ CNC
├─ 콤프레서
└─ 전력계
공통 설비에는 다음 태그가 포함된다.
- 통신상태
- 운전상태
- 고장상태
- 자동·수동
- 가동시간
- 현재 작업지시
프레스 유형에는 다음을 추가한다.
- 압력
- 스트로크
- 금형번호
- 타발수량
콤프레서에는 다음을 추가한다.
- 토출압력
- 운전온도
- 부하·무부하
- 누적 운전시간
이 구조를 사용하면 공통 기능을 반복해서 등록할 필요가 없다.
11. MES 작업지시와 연결
HMI는 단순히 설비 상태만 보여주는 것이 아니라 MES Lite의 작업지시와 연결할 수 있다.
HMI 화면에서는 다음 정보를 표시한다.
- 작업지시 번호
- 제품 코드와 제품명
- 계획수량
- 생산수량
- 양품수량
- 불량수량
- 작업자
- LOT 번호
- 시작시간
- 예상 종료시간
- 달성률
작업자가 HMI에서 작업 시작을 누르면 MES Lite에 작업 시작정보를 전달하고 설비 상태를 생산 중으로 변경한다.
12. 설비상태 자동수집
PLC 태그를 MES Lite의 설비상태로 변환한다.
| RUN = 1 | 가동 |
| RUN = 0, ALARM = 0 | 정지 |
| ALARM = 1 | 고장 |
| SETUP = 1 | 준비·교체 |
| 통신 실패 | 통신장애 |
상태가 변경될 때마다 시작시간과 종료시간을 기록하면 다음 정보를 계산할 수 있다.
- 가동시간
- 정지시간
- 고장시간
- 준비시간
- 설비 가동률
- MTBF
- MTTR
- 비가동 주요 원인
13. 알람과 설비보전 연결
HMI 알람을 MES Lite 설비관리와 연결하면 단순 경고를 넘어 보전업무로 확장할 수 있다.
알람 화면에서 보전요청 버튼을 누르면 다음 정보를 자동으로 전달한다.
- 설비
- 알람 코드
- 발생시간
- 당시 측정값
- 작업지시
- 작업자
- 알람 메시지
- 화면 캡처 또는 첨부파일
14. 레시피 관리
제품별 설비조건은 MES Lite 품목과 HMI 레시피를 연결한다.
| PRODUCT-A | 온도 | 180℃ |
| PRODUCT-A | 압력 | 45bar |
| PRODUCT-A | 속도 | 120rpm |
| PRODUCT-B | 온도 | 195℃ |
| PRODUCT-B | 압력 | 52bar |
작업지시의 제품이 변경되면 해당 레시피를 불러온다.
PLC로 값을 전송할 때는 반드시 다음 절차를 적용한다.
- 현재값과 새 값을 비교한다.
- 권한을 확인한다.
- 작업자의 전송 확인을 받는다.
- PLC에 값을 기록한다.
- 다시 읽어 정상 반영 여부를 확인한다.
- 변경 전후 값과 작업자를 기록한다.
15. 화면 편집기 개발
유연한 HMI의 최종 단계는 사용자용 화면 편집기다.
편집기에서는 다음 기능을 제공한다.
- 컴포넌트 드래그 앤 드롭
- 위치와 크기 조정
- 태그 연결
- 색상과 글꼴 설정
- 상태별 표시 규칙
- 버튼 명령 설정
- 정렬과 그룹화
- 화면 미리보기
- 템플릿 복사
- 버전 저장과 복원
- 설비에 화면 배포
다만 초기 버전부터 완전한 편집기를 개발하면 범위가 지나치게 커진다.
초기에는 관리 프로그램에서 템플릿과 컴포넌트를 등록하고, 화면 엔진이 이를 자동 생성하는 방식이 적합하다. 운영이 안정된 후 드래그 앤 드롭 편집기를 추가할 수 있다.
16. 권장 프로그램 구성
MES Lite에 다음 프로그램을 추가할 수 있다.
설비관리
- 설비 유형관리
- 설비 기본정보
- 설비 통신설정
- 설비 상태현황
- 설비 고장·보전이력
HMI 설정관리
- 통신장치 관리
- 태그 관리
- 태그 그룹관리
- 화면 템플릿 관리
- 화면 컴포넌트 관리
- 상태표시 규칙
- 명령·제어 규칙
- 알람 조건관리
- 레시피 관리
HMI 운영
- 설비 HMI
- 라인 모니터링
- 전체 설비현황
- 실시간 트렌드
- 과거 트렌드
- 현재 알람
- 알람 이력
- 통신상태
- 작업지시·실적
시스템관리
- 수집 서비스 상태
- 통신 로그
- 조작 이력
- 설정 변경 이력
- 프로젝트 백업·복원
- 설정 배포관리
17. 기존 eData 구조 활용 범위
MES Lite의 eClass, eCode, eData, eFile 구조는 유연한 설정관리에 활용할 수 있다.
활용하기 좋은 데이터
- 설비 유형
- 화면 템플릿
- 컴포넌트 설정
- 상태표시 규칙
- 알람 정의
- 레시피 정의
- 화면 버전
- 이미지와 도면
- 사용자별 화면 설정
분리해야 하는 데이터
다음과 같은 대량 실시간 데이터는 일반 업무용 eData에 저장하지 않는 것이 좋다.
- 초 단위 태그 측정값
- 고속 설비 데이터
- 실시간 파형
- 장기간 시계열 데이터
- 대량 통신 원시 로그
이력 데이터는 전용 TagHistory 구조나 별도의 Historian 데이터베이스에 저장해야 한다.
즉, eData는 유연한 정의와 설정에 사용하고 대량 측정값은 전용 이력 구조로 분리하는 것이 적합하다.
18. 권장 개발 순서
1단계: MES 설비정보 연동
- 기존 설비 마스터 사용
- 설비 유형 추가
- PLC 통신정보 연결
- 설비별 HMI 사용 여부 설정
2단계: 태그 기반 수집
- LS PLC 또는 Modbus부터 지원
- 공용 통신 드라이버
- 실시간 캐시
- 통신 장애 처리
- 테스트용 가상 PLC
3단계: 동적 HMI
- 공용 HMI 화면
- 숫자·문자·램프·버튼
- 템플릿 기반 자동 구성
- 화면 확대와 해상도 대응
4단계: 알람과 트렌드
- 알람 조건
- 확인·복구 이력
- 실시간 차트
- 기간별 이력조회
5단계: MES 업무 연동
- 작업지시
- 작업 시작·종료
- 생산수량
- 비가동 사유
- 설비보전 요청
6단계: 화면 편집기
- 드래그 앤 드롭
- 태그 연결
- 미리보기
- 템플릿 버전관리
- 현장 배포
19. 가장 현실적인 제품 구성
기존 MES Lite에 다음 3개 모듈을 추가하는 구성이 좋다.
eCollector
- PLC·센서 데이터 수집
- Windows Service 운영
- 통신 자동복구
- 실시간 캐시와 이력 저장
eHMI Designer
- 설비 유형 설정
- 태그 등록
- 화면 템플릿 구성
- 알람과 상태 규칙 설정
eHMI Runtime
- 현장 설비 화면
- 운전과 상태 확인
- 작업지시 연동
- 알람·트렌드
- 생산실적 입력
MES Lite는 설비, 작업지시, 작업자, 품목, 보전업무를 담당하고 eHMI는 실시간 설비정보와 현장조작을 담당한다.
결론
MES Lite의 설비관리를 기반으로 HMI를 개발하면 설비정보를 중복 관리하지 않고 생산업무와 설비제어를 자연스럽게 연결할 수 있다.
가장 중요한 설계 원칙은 다음 네 가지다.
- 설비와 태그를 코드가 아닌 데이터로 정의한다.
- 설비 유형별 화면 템플릿을 사용한다.
- PLC 수집 서비스와 HMI 화면을 분리한다.
- 실시간 이력은 업무 데이터와 분리한다.
이 구조로 개발하면 신규 설비 추가 시 프로그램을 수정하는 대신 다음 작업만 수행하면 된다.
설비 등록 → 통신 연결 → 설비 유형 선택 → 태그 주소 지정 → HMI 화면 자동 생성
따라서 단순한 MES 부가기능이 아니라 중소 제조업용 MES Lite + 유연형 HMI·SCADA 플랫폼으로 발전시킬 수 있다.
'디지털 전환 솔루션 > HMI & SCADA' 카테고리의 다른 글
| eHMI 전문 HMI 시스템 개괄 설계 (0) | 2026.08.03 |
|---|---|
| 전문적인 산업용 HMI를 개발한다면 (0) | 2026.08.03 |
| HMI + SCADA를 C#으로 개발한다면... (1) | 2026.08.03 |
| SCADA란? (0) | 2026.08.03 |
| HMI란 무엇인가? 주요 기능·제품·가격 정리 (0) | 2026.08.03 |