HMI에서 프로젝트 배포는 Builder에서 설계한 화면과 설정을 Runtime이 실행할 수 있는 형태로 변환해 현장 PC에 설치하는 과정입니다.
핵심은 다음처럼 구분하는 것입니다.
| eHMI Builder | 프로젝트 설계·검증·배포 |
| 배포 패키지 | Runtime용 화면과 설정 |
| eHMI Runtime | 패키지를 읽어 감시·제어 |
| 운영 데이터 | 알람·로그·레시피·작업이력 |
1. 프로젝트 파일 구분
Builder 원본과 Runtime 배포 파일은 분리하는 것이 좋습니다.
Builder 프로젝트
개발자가 편집할 수 있는 원본입니다.
확장자 예:
Builder에서만 열고 수정할 수 있습니다.
Runtime 배포 패키지
실제 실행에 필요한 내용만 포함한 파일입니다.
확장자 예:
배포 패키지에는 다음 항목이 포함됩니다.
Builder의 편집정보, 선택상태, 안내선 등은 배포 패키지에서 제외할 수 있습니다.
2. 프로젝트 배포 절차
1단계: 프로젝트 저장
Builder에서 현재 편집 내용을 저장합니다.
저장하지 않은 변경내용이 있으면 배포 전에 다음 메시지를 표시합니다.
2단계: 프로젝트 검증
배포 전에 전체 프로젝트를 검사합니다.
검사항목:
- 존재하지 않는 태그
- 중복 태그
- 잘못된 PLC 주소
- 통신장치 누락
- 없는 화면으로 전환
- 이미지 파일 누락
- 알람 조건 오류
- 스크립트 문법 오류
- 권한 설정 오류
- 태그 자료형 불일치
- Runtime 미지원 오브젝트
- 화면 밖에 배치된 오브젝트
오류는 배포를 중단하고, 경고는 사용자가 확인 후 계속할 수 있도록 합니다.
3단계: Runtime 호환성 검사
프로젝트가 대상 Runtime에서 실행 가능한지 검사합니다.
Runtime 버전이 낮으면 배포를 차단하거나 Runtime 업데이트를 안내합니다.
4단계: 배포 패키지 생성
프로젝트를 Runtime용으로 변환합니다.
처리 과정:
- JSON 유효성 검사
- 불필요한 편집정보 제거
- 이미지 최적화
- 스크립트 검사
- 프로젝트 압축
- 파일 해시 생성
- 전자서명 또는 암호화
- 버전정보 기록
5단계: 대상 Runtime 선택
배포할 현장 PC 또는 HMI 단말기를 선택합니다.
- 현재 PC
- 네트워크 Runtime
- USB 저장장치
- 지정 폴더
- 중앙 배포 서버
6단계: 배포 실행
Runtime의 임시 배포 영역으로 파일을 전송합니다.
파일을 현재 실행 폴더에 바로 덮어쓰지 않고 먼저 임시 폴더에 저장해야 합니다.
- Active: 현재 실행 프로젝트
- Staging: 새 배포 패키지
- Backup: 이전 프로젝트
- Data: 운영 데이터
7단계: 설치와 활성화
Runtime이 새 패키지를 검사한 후 활성화합니다.
- 파일 해시 확인
- 프로젝트 ID 확인
- 버전 확인
- 패키지 압축 해제
- 기존 프로젝트 백업
- 신규 프로젝트 적용
- 통신 재시작
- 초기화면 표시
- 실행상태 확인
8단계: 배포 결과 기록
다음 정보를 배포이력에 기록합니다.
- 프로젝트명
- 프로젝트 버전
- 배포 대상
- 배포 사용자
- 배포 일시
- 배포 방식
- 성공·실패
- 이전 버전
- 오류내용
- 파일 해시
3. 전체 배포와 부분 배포
전체 배포
프로젝트 전체를 다시 설치합니다.
다음 경우에 사용합니다.
- 최초 설치
- 프로젝트 구조 변경
- 통신 드라이버 변경
- Runtime 버전 변경
- 화면과 태그의 대규모 변경
- 프로젝트 ID 변경
부분 배포
변경된 파일만 전송합니다.
예:
- 특정 화면 수정
- 이미지 교체
- 알람 메시지 수정
- 태그 설명 변경
- 문자열표 수정
초기 버전에서는 전체 배포만 구현하는 것이 안전합니다. 제품이 안정된 후 부분 배포를 추가하는 것이 좋습니다.
4. Runtime에서 프로젝트 설치
Runtime에서는 다음 두 가지 방법을 지원할 수 있습니다.
자동 설치
Builder가 네트워크로 패키지를 전송하면 Runtime이 자동으로 설치합니다.
수동 설치
USB 또는 파일을 이용합니다.
Runtime 메뉴:
수동 설치는 네트워크 연결이 어려운 현장에서 유용합니다.
5. Runtime 프로젝트 실행 순서
Runtime이 시작되면 다음 순서로 실행합니다.
1단계: Runtime 환경 확인
- Runtime 버전
- 라이선스
- 저장공간
- 로컬 DB
- 로그 폴더
- 네트워크 상태
2단계: 활성 프로젝트 확인
Active 폴더의 프로젝트를 확인합니다.
활성 프로젝트가 없으면 프로젝트 선택 또는 설치 화면을 표시합니다.
3단계: 프로젝트 무결성 검사
- 필수 파일 존재 여부
- 프로젝트 해시
- JSON 형식
- 화면 정의
- 태그 정의
- 통신장치 정의
오류가 있으면 실행하지 않고 이전 버전 복원을 제안합니다.
4단계: 통신 엔진 시작
프로젝트에 등록된 통신 드라이버를 생성합니다.
연결 실패 시 Runtime 전체를 종료하지 않고 통신오류 상태로 표시합니다.
5단계: 태그 엔진 시작
등록된 태그를 주기별로 수집합니다.
6단계: 알람·로깅 시작
- 알람 조건 감시
- 알람 발생·복구 기록
- 주기 데이터 로깅
- 통신상태 기록
- 저장공간 관리
7단계: 초기화면 표시
프로젝트에서 지정한 초기화면을 표시합니다.
8단계: Runtime 운영 시작
- 실시간 화면 갱신
- 버튼 명령 처리
- 사용자 인증
- 레시피 적용
- 트렌드 조회
- 스크립트 실행
6. 프로젝트와 운영 데이터 분리
가장 중요한 설계 원칙입니다.
프로젝트 데이터
Builder에서 만들어 배포하는 정보입니다.
- 화면
- 태그
- 통신 설정
- 알람 정의
- 로깅 정의
- 레시피 기본값
- 사용자 권한 정의
운영 데이터
Runtime 사용 중 생성되는 정보입니다.
- 알람 이력
- 로깅 데이터
- 사용자 작업이력
- 생산실적
- 실제 레시피값
- 통신 장애이력
- 감사로그
운영 데이터는 다음처럼 별도 폴더에 저장합니다.
프로젝트를 새로 배포해도 운영 데이터는 삭제하면 안 됩니다.
7. 배포 시 데이터 처리 옵션
배포 화면에서 다음 옵션을 제공하면 좋습니다.
기본값은 모두 유지입니다.
운영 데이터 초기화는 관리자 권한과 재확인을 요구해야 합니다.
XP-Builder의 기존 모니터 데이터 모두 삭제와 같은 기능이지만 자체 HMI에서는 데이터 종류별로 세분화하는 것이 안전합니다.
8. 레시피 배포 정책
레시피는 기본값과 운영값을 분리해야 합니다.
프로젝트 레시피
Builder에서 설계한 표준값입니다.
운영 레시피
현장에서 수정해 실제 사용하는 값입니다.
배포 시 선택할 수 있도록 합니다.
- 운영 레시피 유지
- 신규 레시피만 추가
- 프로젝트 기본값으로 교체
- 사용자에게 비교 후 선택
권장 기본 동작은 다음과 같습니다.
기존 레시피를 자동으로 덮어쓰면 설비 설정값이 갑자기 바뀔 수 있습니다.
9. Runtime 프로젝트 전환
하나의 Runtime에 여러 프로젝트를 설치할 수도 있습니다.
프로젝트 전환 순서:
- 사용자 권한 확인
- 현재 작업 종료 확인
- PLC 쓰기 작업 중지
- 로깅 데이터 저장
- 통신 연결 종료
- 새 프로젝트 검사
- 새 통신 설정 적용
- 태그·알람 엔진 시작
- 초기화면 표시
설비 가동 중에는 프로젝트 전환을 제한하는 것이 좋습니다.
10. 배포 실패와 자동 복원
신규 프로젝트 실행에 실패하면 이전 프로젝트로 자동 복구해야 합니다.
백업 폴더 예:
최근 3~5개 버전을 보관하는 방식이 적당합니다.
11. Runtime 프로젝트 관리화면
Runtime의 시스템 설정에 다음 화면을 구성합니다.
현재 프로젝트
- 프로젝트명
- 프로젝트 ID
- 버전
- 배포일시
- 배포자
- Runtime 요구 버전
- 현재 상태
설치된 프로젝트
- 프로젝트 목록
- 버전
- 설치일시
- 활성 여부
- 삭제
- 활성화
배포이력
- 배포 성공·실패
- 이전 버전
- 오류내용
- 복원 여부
프로젝트 가져오기
- USB
- 로컬 파일
- 네트워크
- 중앙 서버
이전 버전 복원
복원할 버전을 선택하고 프로젝트만 복원할지 운영 데이터도 함께 복원할지 선택합니다.
12. Builder 배포화면 구성
Builder 메뉴는 다음과 같이 구성할 수 있습니다.
배포 설정 항목
| 프로젝트 | 배포 프로젝트 |
| 버전 | 1.2.0 |
| 대상 Runtime | 현장 HMI PC |
| 접속 방식 | 로컬·네트워크·USB |
| 배포 방식 | 전체·부분 |
| 적용 시점 | 즉시·재시작 시 |
| 기존 데이터 | 유지·초기화 |
| 이전 버전 백업 | 사용 |
| 실패 시 복원 | 자동 |
13. 권장 배포 패키지 정보
manifest.json에는 다음 정보가 필요합니다.
Runtime은 이 정보를 먼저 읽고 설치 가능 여부를 판단합니다.
14. C# 배포 서비스 구조
Runtime에는 설치 서비스를 둡니다.
15. 초기 개발 권장범위
1단계
- Builder 프로젝트 저장
- 프로젝트 검증
- .ehpkg 패키지 생성
- 로컬 폴더 배포
- Runtime 프로젝트 읽기
- Runtime 재시작
- 이전 프로젝트 백업
2단계
- USB 배포
- 네트워크 배포
- Runtime 상태 확인
- 배포이력
- 자동 롤백
- 운영 데이터 유지
3단계
- 부분 배포
- 여러 Runtime 일괄 배포
- 원격 업데이트
- 중앙 배포 서버
- 전자서명
- 예약 배포
결론
HMI 프로젝트 배포는 단순히 파일을 복사하는 기능이 아닙니다.
프로젝트 검증, 패키지 생성, 버전 확인, 기존 프로젝트 백업, Runtime 활성화와 실패 시 복원까지 하나의 절차로 구성해야 합니다.
가장 중요한 원칙은 다음 세 가지입니다.
- Builder 원본과 Runtime 패키지 분리
- 프로젝트와 운영 데이터 분리
- 배포 실패 시 이전 버전 자동복원
초기 버전에서는 전체 패키지를 로컬 또는 USB로 배포하고 Runtime을 재시작하는 방식으로 개발하는 것이 안정적입니다. 이후 네트워크 배포와 부분 업데이트를 추가하면 전문 HMI 제품으로 확장할 수 있습니다.
'디지털 전환 솔루션 > HMI & SCADA' 카테고리의 다른 글
| PLC의 종류와 통신 프로토콜 완벽 정리 (1) | 2026.08.20 |
|---|---|
| HMI와 LS·미쓰비시 PLC 통신 (0) | 2026.08.19 |
| HMI 화면 편집기 상세 설명 (0) | 2026.08.18 |
| HMI란? 핵심 기능과 자체 개발방법 (1) | 2026.08.18 |
| LS 의 XP-Builder 핵심 기능 요약 (0) | 2026.08.18 |