사용자 도구

사이트 도구


guide:hmi_connection:studio2:cnet

문서의 이전 판입니다!


MPINO STUDIO2 · LS산전 Cnet으로 HMI 연결하기

← Modbus RTU 실습 · STUDIO2 시작으로

앞의 HMI_First_Test.mp2를 LS산전 Cnet Slave로 바꿉니다. 보드, 내부 래더, main 코드는 그대로 사용하고 HMI 쪽 드라이버와 주소도 Cnet에 맞춥니다.

1. 통신 프로토콜 변경

  1. Modbus RTU 실습을 마친 프로젝트를 열어 파일 → 다른 이름으로 저장에서 HMI_Cnet_Test.mp2로 저장합니다.
  2. 실행 → 통신을 열고 Serial1의 프로토콜을 LS산전 Cnet Slave로 바꿉니다.
  3. Slave ID 1, 통신속도 9600, 데이터 비트 8, 정지 비트 1, 패리티 없음을 확인하고 Ctrl+S로 저장합니다.

실제 STUDIO2 통신 설정 화면. 그림의 예시 프로토콜과 기본 115200을 이 페이지의 Cnet·9600으로 변경

HMI 쪽은 공통 HMI 통신 설정에서 Cnet 드라이버와 연결 포트를 확인합니다.

2. 내부 래더와 코드 확인

설정 → 메모리 영역 설정은 P 64, M·D·C·T·R 각각 16이고, 래더 핀맵 설정의 물리 핀 사용은 모두 해제한 상태입니다. 래더 → ladderLoop는 NO 접점 M0 → 출력 코일 M1 한 줄입니다.

실제 출력 없이 내부 M0을 M1로 복사하는 래더

Arduino Code → main의 전체 코드는 다음과 같습니다. 통신 함수는 STUDIO2가 생성하므로 ICnetMem()·ICnetInit()·ICnet()을 직접 넣지 않습니다.

#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초마다 증가하고, HMI가 쓴 D1은 D2로 복사됩니다. HMI가 M0을 바꾸면 래더 결과 M1을 확인할 수 있습니다. D는 부호 있는 16비트 정수입니다.

3. Cnet HMI 주소

STUDIO2가 생성하는 Cnet 프레임 처리기는 % 뒤의 메모리 영역·자료형·10진 주소를 읽습니다. 이번 실습에서는 비트에 MX, 16비트 워드에 DW를 사용합니다.

HMI 요소 내부 메모리 Cnet 변수 문자열 동작
1초마다 변하는 숫자 D0 %DW0 읽기
숫자 입력 D1 %DW1 읽기·쓰기
입력값을 돌려주는 숫자 D2 %DW2 읽기
스위치와 확인 램프 M0 %MX00000 쓰기·읽기
래더 결과 확인용 램프 M1 %MX00001 읽기

예를 들어 %MX00001의 숫자 00001은 내부 M[1]을 가리킵니다. %DW1은 D[1]입니다. HMI 편집기가 %를 자동으로 붙이거나 자릿수를 지정하는 경우에는 실제 요청의 변수 문자열이 위와 같아지도록 HMI 드라이버 설명서를 확인합니다. Modbus의 Coil 1000·Holding Register 2000은 Cnet 주소가 아닙니다.

숫자 3개는 16비트 정수 1워드·소수점 0·배율 1로 설정하고 입력값 범위는 0~9999로 제한합니다. 스위치는 M0을 토글로 쓰고 별도 램프로 다시 읽습니다. 이 프로그램은 물리 출력을 제어하지 않습니다.

4. 다시 빌드하고 확인

  1. 실행 → 빌드(Ctrl+R)에서 오류가 없는지 확인합니다.
  2. 상태바에서 제품용 다운로드 케이블의 PC COM 포트를 선택하고 실행 → 업로드(Ctrl+U)합니다.
  3. HMI도 Cnet 드라이버, 국번 1, 9600/8N1로 저장·전송합니다. 제품의 Serial1은 HMI 통신에만 사용합니다.
  4. 실물 연결 후 D0가 1초마다 변하는지, D1을 쓰면 D2가 따라가는지, M0 스위치와 M1 램프가 함께 변하는지 확인합니다.

STUDIO2 설치본 SDK를 사용한 코드 생성·컴파일까지 확인한 예제입니다. 실물 HMI의 특정 드라이버와 케이블 동작은 별도 검증 대상입니다.

STUDIO2 프로그램 작성 순서로 돌아가기

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

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki