사용자 도구

사이트 도구


guide:hmi_connection:studio2:modbus

문서의 이전 판입니다!


MPINO STUDIO2 · Modbus RTU로 HMI 연결하기

← STUDIO2 설치와 시작 · 다음: LS산전 Cnet →

설치한 MPINO STUDIO2에서 MPINO-8A4R-S의 내부 메모리만 쓰는 프로그램을 만듭니다. HMI는 Modbus RTU Master, 제품은 Slave입니다. 실제 입출력 단자는 사용하지 않습니다.

1. 새 프로젝트와 내부 메모리

  1. 파일 → 새로 만들기에서 MPINO-8A4R(T)-S를 선택하고 HMI_First_Test.mp2로 저장합니다.
  2. 설정 → 메모리 영역 설정에서 P는 64, M·D·C·T·R은 각각 16으로 설정합니다. 이 숫자는 주소가 아니라 개수입니다.
  3. 설정 → 래더 핀맵 설정에서 물리 입력·출력 핀의 사용을 모두 해제합니다. 이번 프로그램은 내부 M과 D만 사용합니다.

실제 STUDIO2 보드 선택 화면

다른 제품은 통신 단자가 다를 수 있습니다. 제품별 채널 표에서 실제 제품의 포트를 확인합니다.

2. 래더 한 줄과 main 코드

왼쪽 탐색기의 래더 → ladderLoop에서 1행 1열에 NO 접점(F2) M0, 1행 2열에 출력 코일(F9) M1을 넣습니다. M1은 내부 비트이므로 실제 릴레이 출력이 아닙니다.

M0 접점이 M1 내부 코일을 구동하는 실습 회로

Arduino Code → main을 열어 아래 코드를 입력합니다.

#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()를 추가하지 않습니다.

3. 실행 → 통신

실제 STUDIO2 통신 설정 화면. 그림의 기본 115200 대신 아래 9600을 선택

그림 번호 항목 입력값
① 채널 Serial1 — 이 제품의 RS-232
② 프로토콜 Modbus RTU Slave
③ Slave ID 1
④ 통신속도 9600
⑤·⑥·⑦ 데이터 비트·정지 비트·패리티 8 · 1 · 없음

실행 → 통신에서 위 값으로 설정하고 Ctrl+S로 저장합니다. HMI 쪽은 실제 연결한 RS-232 포트에서 Modbus RTU Master로 같은 국번과 통신 조건을 설정합니다.

4. 빌드·업로드와 HMI 주소

  1. 실행 → 빌드(Ctrl+R)를 실행하고 빌드 출력의 성공 메시지를 확인합니다.
  2. 상태바에서 제품용 MP 다운로드 케이블의 PC COM 포트를 고른 뒤 실행 → 업로드(Ctrl+U)를 실행합니다. 업로드 포트와 HMI용 Serial1은 서로 다른 연결입니다.
  3. HMI의 숫자 3개와 비트 스위치·램프를 아래 메모리에 연결합니다. 숫자는 부호 있는 16비트 정수 1워드, 소수점 0, 배율 1로 설정하고 입력 범위는 0~9999로 둡니다.
HMI 요소 STUDIO2 메모리 Modbus 영역 요청 안의 0 기반 주소
1초마다 변하는 숫자 D0 Holding Register 2000
숫자 입력 D1 Holding Register 2001
입력값을 돌려주는 숫자 D2 Holding Register 2002
스위치와 확인 램프 M0 Coil 1000
래더 결과 확인용 램프 M1 Coil 1001

이 주소는 STUDIO2 생성 코드의 0 기반 주소입니다. HMI 편집기가 1 기반 번호나 4xxxx 표기를 쓰면 해당 HMI 드라이버 규칙에 맞춰 입력합니다. HMI 주소 입력 방식에서 변환 순서를 확인할 수 있습니다.

이번 예제의 물리적 HMI 송수신은 사용하는 HMI 모델·케이블에 따라 별도로 확인해야 합니다. 동일 Serial1을 래더 모니터링이나 사용자 시리얼 코드에 중복 지정하지 않습니다.

다음: 같은 프로그램을 LS산전 Cnet으로 전환 →

guide/hmi_connection/studio2/modbus.1791204274.txt.gz · 마지막으로 수정됨: 저자 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki