사용자 도구

사이트 도구


guide:hmi_connection:arduino:cnet

문서의 이전 판입니다!


Arduino IDE · LS Cnet으로 HMI 연결

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

MPINO-8A4R-S · RS-232 Serial1 · 국번 1 · 9600 bps · 8N1 실습입니다. HMI에는 LS Cnet 직렬 요청을 보내는 드라이버를 선택하고 제품은 Cnet Slave로 실행합니다.

1. HMI 화면에 지정할 주소

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

화면 요소 SDK 메모리 코어가 받는 Cnet 변수 동작
통신 확인 숫자 D0 %DW0 16비트 워드 읽기, 0~99 반복
숫자 입력 D1 %DW1 16비트 워드 0~9999 쓰기
되돌린 값 D2 %DW2 16비트 워드 읽기, D1과 같음
시험 스위치·램프 M0 %MX00000 비트 토글 쓰기·읽기

HMI의 숫자는 16비트 정수, 소수점 0자리, 배율 1로 설정합니다. D1 입력 범위는 0~9999, M0는 유지형 토글 스위치와 별도의 읽기 램프로 만듭니다. 편집기의 주소 표시가 %를 생략하더라도 실제 Cnet 요청 대상이 표와 같은지 HMI 드라이버 설명에서 확인합니다.

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

#include <Arduino.h>
 
unsigned long lastTick = 0;
 
void setup() {
  ICnetMem(16, 16, 0);       // M0, D0~D2를 포함; R 영역 미사용
  ICnetAdr(0, 0, 0);          // 외부 주소도 0부터
  ICnetInit(Serial1, 1, 9600);
  lastTick = millis();
}
 
void loop() {
  if (M == nullptr || D == nullptr) return;
  ICnet();
 
  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];
}

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

3. 검증·업로드 후 동작 확인

  1. 스케치를 저장하고 Arduino IDE의 검증을 실행합니다.
  2. 도구 → 보드와 업로드 COM 포트를 확인한 뒤 업로드합니다. 설치·업로드 안내
  3. HMI 프로젝트를 HMI에 전송한 뒤 제품과 HMI 전원을 켭니다.

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

확인 정상 동작
D0 숫자가 약 1초마다 바뀌고 99 다음 0이 표시됨
D1 → D2 예를 들어 1234를 입력하면 D2에도 1234가 표시됨
M0 스위치를 누를 때마다 별도 램프가 ON/OFF로 바뀜

통신이 안 되면 HMI가 Cnet %DW·%MX 요청을 보내는 드라이버인지 먼저 확인하고, 동작 확인과 문제 해결의 결선·국번·속도를 대조합니다.

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

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki