목차

Arduino IDE · Mitsubishi MC 1C로 HMI 연결

HMI 연결 전체 순서 · Arduino IDE 방식 선택

이 SDK의 MC Slave는 MELSEC A호환 1C 프레임 Format 1 직렬 ASCII 요청을 처리합니다. HMI 드라이버에서 프레임 형식과 Sum Check 사용을 맞춰야 합니다. 일반적인 MC 3E/4E 프레임 또는 MC TCP 드라이버로는 이 예제를 연결할 수 없습니다. M·D는 1C 요청의 디바이스 문자와 번호로 지정합니다.

이 페이지 뒤쪽의 간단한 사용 예는 MPINO-8A4R-S · RS-232 Serial1 · 국번 1 · 9600 bps · 8N1 기준이며 Arduino IDE용입니다. 채널·결선과 SDK 설치·보드 선택을 확인해주시기 바랍니다. STUDIO2에 같은 MC 설정이 있다고 가정하지 않습니다.

1. HMI 화면에 지정할 주소

화면 요소 SDK 메모리 1C 요청의 디바이스·주소 요청 명령
통신 확인 숫자 D0 D0000 워드 읽기 WR, 0~99 반복
숫자 입력 D1 D0001 워드 쓰기 WW, 0~9999
되돌린 값 D2 D0002 워드 읽기 WR, D1과 같음
시험 스위치·램프 M0 M0000 비트 쓰기 BW·읽기 BR

표의 D0000·M0000은 코어가 수신하는 1C 요청의 디바이스 코드와 4자리 10진 주소입니다. HMI 편집기의 표시 형식은 드라이버마다 다르므로 실제 요청이 이 주소를 가리키는지 확인해주시기 바랍니다. Modbus 주소 변환표는 MC에 적용하지 않습니다. 숫자 형식·스위치·램프의 공통 설정은 HMI 화면 만들기에서 안내합니다.

2. 새 스케치에 전체 코드 입력

다음은 위 1C 주소로 내부 메모리 값을 주고받는 간단한 예제입니다. 이 코드는 실제 입력·릴레이 출력 핀을 사용하지 않습니다.

#include <Arduino.h>
 
unsigned long lastTick = 0;
 
void setup() {
  IMcMem(0, 0, 16, 16);     // X/Y 미사용, M0, D0~D2 포함
  IMcAdr(0, 0, 0, 0);        // 외부 주소도 0부터
  IMcInit(Serial1, 1, 9600);
  lastTick = millis();
}
 
void loop() {
  if (M == nullptr || D == nullptr) return;
  IMcProtocol();
 
  unsigned long now = millis();
  if (now - lastTick >= 1000UL) {
    lastTick = now;
    D[0] = (D[0] >= 99) ? 0 : D[0] + 1;
  }
 
  if (D[1] > 9999) D[1] = 9999;
  D[2] = D[1];
}

IMcMem()은 시작할 때 메모리를 만들고, IMcProtocol()은 매 반복에서 HMI 요청을 처리합니다. 이 스케치는 실제 입력·릴레이 핀을 사용하지 않습니다.

3. 검증·업로드 후 HMI 화면 만들기

제품 스케치를 업로드한 뒤 아래 화면 구성 예와 주소표를 참고하여 HMI 요소를 배치해주시기 바랍니다.

D0 통신 확인 숫자, D1 입력, D2 되돌린 값, M0 시험 스위치와 램프

  1. 스케치를 저장하고 Arduino IDE의 검증을 실행해주시기 바랍니다.
  2. 도구 → 보드와 업로드 COM 포트를 확인한 뒤 업로드해주시기 바랍니다. 설치·업로드 안내
  3. HMI 화면 만들기에서 위의 D0000~D0002와 M0000을 외부 장치 요소에 지정하고 HMI 프로젝트를 전송해주시기 바랍니다.
  4. 제품과 HMI 전원을 켜고 동작 확인과 문제 해결에서 읽기 → 쓰기 → 비트 순서로 시험해주시기 바랍니다.

HMI가 D1과 M0를 쓰고 제품의 D2와 M0를 다시 읽어 결과를 확인

먼저 HMI 드라이버가 1C Format 1·Sum Check 요청을 보내는지 확인해주시기 바랍니다. 정상 결과와 증상별 확인 위치는 동작 확인과 문제 해결에 정리되어 있습니다.