사용자 도구

사이트 도구


commands:reference:icnet

문서의 이전 판입니다!


ICnet()

ICnet()는 수신 요청을 확인하고 Cnet Slave 응답을 처리합니다.

ICnet 명령어 동작 흐름

void ICnet()

명령어

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

예제

void setup() {
  ICnetMem(64, 64, 16);  // Cnet Slave가 사용할 M·D·R 메모리 크기를 설정합니다.
  ICnetAdr(0, 0, 0);  // M·D·R 메모리의 시작 주소를 설정합니다.
  ICnetInit(Serial2, 1, 9600);  // 통신 포트, 국번과 보레이트를 설정합니다.
  if (M != nullptr) M[0] = false;
}
 
void loop() {
  ICnet();  // 수신 요청을 확인하고 Cnet Slave 응답을 처리합니다.
  if (M != nullptr) M[0] = IdigitalRead(0, 5);  // 입력을 여러 번 연속으로 읽고, 모든 값이 같을 때만 상태를 갱신합니다. HIGH와 LOW가 섞이면 이전 안정 상태를 유지합니다.
  if (D != nullptr) digitalWrite(32, D[0] ? HIGH : LOW);
}

주의사항

  • ICnet()loop()에서 계속 호출합니다.
  • M/D/R 크기는 SRAM 범위 안에서 설정합니다.
  • Modbus와 메모리를 공유할 때 중복 할당과 주소 기준을 확인합니다. ICnetMem()ImodbusRTUMem()은 둘 다 공유 M/D를 재할당하므로 둘 중 하나만 최종 크기 정책의 소유자로 정하고, 마지막 재할당 뒤에 두 프로토콜을 초기화합니다.
  • 할당 함수는 성공 여부를 반환하지 않으므로 M, D, Rnullptr인지 확인한 뒤 사용자 코드에서 접근합니다.

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

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

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki