====== HMI 화면 만들기 ====== [[guide:hmi_connection|HMI 연결]] HMI 화면의 표시기와 스위치는 제품의 내부 메모리를 **외부 장치 주소**로 읽고 씁니다. 외부 장치는 HMI가 통신으로 연결한 제품이며, 주소 형식은 제품 프로그램의 개발 방식과 프로토콜에 따라 달라집니다. 이 페이지에서는 외부 장치와 주소를 정한 뒤 마지막에 숫자·입력창·스위치로 간단한 화면을 만듭니다. 실제 편집기 메뉴와 단자 번호는 사용하는 HMI 모델의 설명서를 따릅니다. ===== 1. HMI 프로젝트와 외부 장치 만들기 ===== HMI 프로젝트에는 실제 모델·화면 해상도와 제품에 연결할 시리얼 포트·드라이버를 등록해주시기 바랍니다. 제품 프로그램과 HMI가 같은 프로토콜·국번·통신 형식을 사용해야 외부 메모리를 읽고 쓸 수 있습니다. [[guide:hmi_connection:wiring|결선과 통신 조건]] 및 선택한 [[guide:hmi_connection:arduino|Arduino IDE]] 또는 [[guide:hmi_connection:studio2|STUDIO2]] 문서를 대조해주시기 바랍니다. - HMI 편집기에서 **새 프로젝트**를 만들고 실제 HMI 모델·화면 해상도를 선택해주시기 바랍니다. - 연결할 **외부 장치**를 추가해주시기 바랍니다. 외부 장치는 HMI가 통신으로 읽고 쓸 제품을 뜻합니다. - [[guide:hmi_connection:wiring|실제로 배선한 HMI 시리얼 포트]]와 제품 프로그램에서 선택한 **같은 프로토콜**의 드라이버를 선택해주시기 바랍니다. - 국번·통신속도·데이터 비트·패리티·정지 비트를 제품 프로그램과 동일하게 지정하고 프로젝트를 저장해주시기 바랍니다. ^ 제품에서 사용한 프로토콜 ^ HMI에서 확인할 드라이버 ^ | Modbus RTU | Modbus RTU Master · Coil / Holding Register | | LS산전 Cnet | LS산전 Cnet 시리얼 · M / D 메모리 | | Mitsubishi MC | MELSEC A호환 1C 프레임 Format 1 시리얼 | 요소의 대상은 HMI 내부 변수가 아니라 앞에서 만든 **외부 장치**로 선택해주시기 바랍니다. HMI 모델·편집기가 미지정이므로 이 안내는 화면 버튼의 정확한 이름을 지정하지 않습니다. 메뉴 위치, 외부 장치 등록 방식, 주소 표기, 다운로드 방식은 제조사 설명서에서 확인해주시기 바랍니다. ===== 2. 주소 입력 방식 확인 ===== HMI에 넣는 주소는 **제품에 사용할 프로그램의 개발 방식과 프로토콜**에 따라 다릅니다. 아래에서 해당하는 **한 페이지의 주소표**를 선택해주시기 바랍니다. Cnet·MC 주소는 아래 Modbus 변환표를 사용해서는 안 됩니다. ^ 개발 방식 ^ 주소표 ^ | Arduino IDE | [[guide:hmi_connection:arduino:modbus|Modbus RTU]] · [[guide:hmi_connection:arduino:cnet|Cnet]] · [[guide:hmi_connection:arduino:mc|MC]] | | MPINO STUDIO2 | [[guide:hmi_connection:studio2:modbus|Modbus RTU]] · [[guide:hmi_connection:studio2:cnet|Cnet]] | **Modbus Holding Register 주소 표기 예:** 먼저 해당 프로토콜 페이지의 **요청 안 0 기반 주소**를 확인하고, HMI 드라이버 설명서에서 입력란이 0 기반·1 기반·''4xxxx'' 중 무엇을 받는지 확인한 후 입력해주시기 바랍니다. ^ 대상 ^ 0 기반 주소 ^ 1 기반 번호 ^ 4xxxx 표기 예 ^ | SDK ''D0'' | ''0'' | ''1'' | ''40001'' | | SDK ''D1'' | ''1'' | ''2'' | ''40002'' | | SDK ''D2'' | ''2'' | ''3'' | ''40003'' | | STUDIO2 ''D0'' | ''2000'' | ''2001'' | ''42001'' | | STUDIO2 ''D1'' | ''2001'' | ''2002'' | ''42002'' | | STUDIO2 ''D2'' | ''2002'' | ''2003'' | ''42003'' | ''4xxxx''는 그 표기를 사용하는 드라이버의 예이며 모든 HMI에 같은 숫자를 입력하라는 뜻은 아닙니다. ''M0''는 **Coil** 영역으로 SDK의 0 기반 주소는 ''0'', STUDIO2의 0 기반 주소는 ''1000''입니다. Coil 번호를 1 기반으로 받는 드라이버에서는 각각 ''1'', ''1001''입니다. **Cnet·MC 주소에는 이 Modbus 변환표를 적용해서는 안 됩니다.** HMI에 주소를 입력한 뒤 **읽기/쓰기 대상 영역과 표시된 최종 주소**를 다시 확인해주시기 바랍니다. Modbus 사용 시에는 숫자 표시가 Holding Register를, 스위치·램프가 Coil을 바라보는지 드라이버 설정 화면에서 확인해주시기 바랍니다. ===== 3. 화면에 다섯 요소 배치 ===== 앞에서 선택한 주소 규칙을 확인했다면, 다음의 **간단한 화면 예제**로 내부 메모리 읽기·쓰기를 확인할 수 있습니다. 제품 프로그램을 먼저 업로드하고, HMI에서 연결할 외부 장치를 미리 만들어주시기 바랍니다. {{ :guide:hmi_connection:revision5-dark:practice-screen.svg?420 |숫자 표시 두 개, 숫자 입력, 시험 스위치와 램프의 화면 구성 예 }} ^ 화면 요소 ^ 메모리 ^ 기능 ^ | 통신 확인 숫자 | ''D0'' | 제품의 증가하는 값을 읽어 표시 | | 입력값 | ''D1'' | 숫자를 입력하고 제품에 쓰기 | | 제품에서 돌려준 값 | ''D2'' | 제품이 복사한 결과를 읽어 표시 | | 시험 스위치 | ''M0'' | ON/OFF 유지형 토글 쓰기 | | 시험 램프 | ''M0'' | 제품의 비트 값을 읽어 표시 | ===== 4. 숫자 표시와 입력 설정 ===== - 숫자 표시를 배치하고 선택한 프로토콜 주소표에서 ''D0''에 대응하는 HMI 주소에 연결해주시기 바랍니다. - 숫자 입력을 배치하고 같은 주소표에서 ''D1''에 대응하는 HMI 주소에 연결해주시기 바랍니다. - 입력 범위는 ''0 ~ 9999''로 제한하고 입력 확정 시 제품에 쓰도록 설정해주시기 바랍니다. - 다른 숫자 표시를 배치하고 같은 주소표에서 ''D2''에 대응하는 HMI 주소에 연결해주시기 바랍니다. 세 요소 모두 **16비트 정수 1워드 / 10진수 / 소수점 0자리 / 배율 1**로 맞춰주시기 바랍니다. ''D2'' 표시를 ''D1''에 연결하면 제품이 돌려주는 값을 확인할 수 없습니다. ===== 5. 스위치와 램프 설정 ===== - 비트 스위치의 쓰기 대상은 선택한 프로토콜 주소표에서 ''M0''에 대응하는 HMI 주소로 지정해주시기 바랍니다. - 누를 때마다 ON/OFF가 바뀌는 **유지형 토글**로 설정해주시기 바랍니다. - 별도의 램프도 스위치와 같은 HMI 주소를 **읽도록** 지정해주시기 바랍니다. STUDIO2 실습에서는 ''M1'' 램프를 추가하면 래더의 복사 결과도 확인할 수 있습니다. ===== 6. HMI에 화면 전송 ===== 프로젝트를 저장한 뒤 사용하는 HMI 제조사 설명서의 **프로젝트 다운로드 방법과 지정 케이블·포트**를 확인하여 **실제 HMI**에 전송해주시기 바랍니다. 제품 프로그램 업로드와 HMI 화면 전송은 각각 완료해야 합니다. HMI 화면이 표시되면 아래 동작 시험에서 ''D0'' 읽기부터 확인해주시기 바랍니다. [[guide:hmi_connection:check|다음: 동작 확인과 문제 해결 →]] **특정 편집기 참고 예시 — Comfile Studio:** 새 프로젝트 · 외부 주소 · 숫자 표시 · 숫자 입력기 메뉴. 이러한 메뉴와 주소 입력 방법은 Comfile Studio의 예시이며, 다른 HMI 편집기에 그대로 적용해서는 안 됩니다.