← STUDIO2 설치와 시작 · 다음: HMI 화면 만들기 → · 선택: LS산전 Cnet →
MPINO STUDIO2에서 통신 방식을 Modbus RTU Slave로 설정하면 제품의 요청 처리 코드는 앱이 생성합니다. HMI는 Modbus RTU Master로 요청합니다. HMI가 읽고 쓸 내부 D 워드는 Holding Register, M 비트는 Coil에 대응하며, STUDIO2 생성 코드의 주소는 Arduino IDE SDK 예제와 다릅니다.
아래 표는 STUDIO2 생성 코드가 받는 Modbus 요청의 0 기반 주소입니다. HMI가 1 기반 Coil 번호를 받으면 M0는 1001로 표시될 수 있습니다. 1 기반 번호나 4xxxx 표기의 실제 입력 숫자는 HMI 드라이버 설명서에서 확인하고 HMI 주소 입력 방식을 따라주시기 바랍니다.
| HMI 요소 | STUDIO2 메모리 | Modbus 영역 | 요청 안의 0 기반 주소 |
|---|---|---|---|
| 1초마다 변하는 숫자 | D0 | Holding Register | 2000 |
| 숫자 입력 | D1 | Holding Register | 2001 |
| 입력값을 돌려주는 숫자 | D2 | Holding Register | 2002 |
| 스위치와 확인 램프 | M0 | Coil | 1000 |
| 래더 결과 확인용 램프 | M1 | Coil | 1001 |
다음은 MPINO-8A4R-S · RS-232 Serial1 · 국번 1 · 9600 bps · 8N1에서 내부 메모리만 사용하는 간단한 예제입니다. 실제 입출력 단자는 사용하지 않습니다. 제품 채널·결선과 설치·제품 선택은 HMI 연결방법과 STUDIO2 시작을 참고해주시기 바랍니다.
MPINO-8A4R(T)-S를 선택하고 HMI_First_Test.mp2로 저장해주시기 바랍니다.64, M·D·C·T·R은 각각 16으로 설정해주시기 바랍니다. 이 숫자는 주소가 아니라 개수입니다.M과 D만 사용합니다.다른 제품은 통신 단자가 다를 수 있습니다. 제품별 채널 표에서 실제 제품의 포트를 확인해주시기 바랍니다.
왼쪽 탐색기의 래더 → ladderLoop에서 1행 1열에 NO 접점(F2) M0, 1행 2열에 출력 코일(F9) M1을 넣어주시기 바랍니다. M1은 내부 비트이므로 실제 릴레이 출력이 아닙니다.
Arduino Code → main을 열어 아래 코드를 입력해주시기 바랍니다. 이 코드는 STUDIO2 프로젝트의 main에 넣는 내용이며, Arduino IDE에서 독립 스케치로 업로드하는 코드가 아닙니다.
#include "mpino_runtime.h" #include "ladder_generated.h" unsigned long lastTick = 0; void setup() { M[0] = false; M[1] = false; D[0] = 0; D[1] = 0; D[2] = 0; lastTick = millis(); } void loop() { ladderLoop(); unsigned long now = millis(); if (now - lastTick >= 1000UL) { lastTick = now; D[0] = (D[0] + 1) % 100; } D[2] = D[1]; }
D0는 1초마다 0~99를 반복합니다. HMI가 D1에 숫자를 쓰면 D2가 그 값을 따라갑니다. M0을 켜면 래더가 M1을 켭니다. 통신 초기화·요청 처리 코드는 STUDIO2가 통신 설정에서 생성하므로 이 코드에 ImodbusRTUInit()이나 ImodbusRTU()를 추가하지 않습니다.
실습에 입력할 값은 아래 표입니다. 그림은 항목 위치를 보여 주는 초기 화면으로, 그림 속 프로토콜 없음과 속도 115200은 이 실습값이 아닙니다. Modbus RTU Slave와 9600으로 바꿔 저장해주시기 바랍니다.
| 그림 번호 | 항목 | 입력값 |
|---|---|---|
| ① | 채널 | Serial1 — 이 제품의 RS-232 |
| ② | 프로토콜 | Modbus RTU Slave |
| ③ | Slave ID | 1 |
| ④ | 통신속도 | 9600 |
| ⑤·⑥·⑦ | 데이터 비트·정지 비트·패리티 | 8 · 1 · 없음 |
실행 → 통신에서 위 값으로 설정하고 Ctrl+S로 저장해주시기 바랍니다. HMI 쪽은 실제 연결한 RS-232 포트에서 Modbus RTU Master로 같은 국번과 통신 조건을 설정해야 합니다.
Ctrl+R)를 실행하고 빌드 출력의 성공 메시지를 확인해주시기 바랍니다.Ctrl+U)를 실행해주시기 바랍니다. 하단 패널의 업로드 로그가 정상 종료되는지 확인해주시기 바랍니다. 업로드 포트와 HMI용 Serial1은 서로 다른 연결입니다. 자세한 화면과 순서는 포트 선택과 업로드를 참고해주시기 바랍니다.0~9999로 설정해주시기 바랍니다.이번 예제의 물리적 HMI 송수신은 사용하는 HMI 모델·케이블에 따라 별도로 확인해야 합니다. 동일 Serial1을 래더 모니터링이나 사용자 시리얼 코드에 중복 지정해서는 안 됩니다.
먼저 HMI 화면 만들기에서 이 페이지의 Modbus 주소를 지정하고 동작 확인과 문제 해결을 진행해주시기 바랍니다. Cnet 실습도 하려면 같은 프로그램을 LS산전 Cnet으로 전환 →해주시기 바랍니다.