사용자 도구

사이트 도구


commands:reference:imcprotocol

IMcProtocol()

IMcProtocol()는 수신 요청을 확인하고 MC Protocol 응답을 처리합니다.

IMcProtocol 명령어 동작 흐름

void IMcProtocol()

명령어

명령어 인수 반환값 동작
IMcProtocol() 없음 void 수신 요청을 확인하고 MC Protocol 응답을 처리합니다.

예제

이 예제는 MPINO-16A8R8T의 RS-485 포트 Serial2, 입력 D22, 트랜지스터 출력 D39를 사용합니다.

void setup() {
  IMcMem(32, 32, 64, 64);  // MC Protocol에서 사용할 X·Y·M·D 메모리 크기를 설정합니다.
  IMcAdr(0, 0, 0, 0);  // X·Y·M·D 메모리의 시작 주소를 설정합니다.
  IMcInit(Serial2, 1, 9600);  // 통신 포트, 국번과 보레이트를 설정합니다.
}
 
void loop() {
  IMcProtocol();  // 수신 요청을 확인하고 MC Protocol 응답을 처리합니다.
  if (X != nullptr) X[0] = digitalRead(22) == HIGH;
  if (Y != nullptr) digitalWrite(39, Y[0] ? HIGH : LOW);
}

주의사항

  • IMcProtocol()을 loop()에서 계속 호출해야 합니다.
  • X/Y는 16진수, M/D는 10진수 주소를 사용합니다. 서로 다른 주소 기준을 혼동하지 않도록 확인해주시기 바랍니다.
  • 포인터를 할당하기 전에는 X/Y/M/D를 사용하지 않아야 합니다.
  • Cnet 또는 Modbus가 실행 중 공유 M/D를 재할당하면 MC Protocol이 보던 주소가 바뀝니다. 모든 메모리 크기 설정은 setup()에서 마쳐야 하며 실행 중에는 다시 호출하지 않아야 합니다.
  • 할당 함수는 성공 여부를 반환하지 않으므로 크기가 0이 아니면 해당 전역 포인터가 nullptr이 아닌지 확인한 뒤 접근해야 합니다.

같은 카테고리의 내장 명령어

commands/reference/imcprotocol.txt · 마지막으로 수정됨: 저자 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki