User Tools

Site Tools


en-us_commands:reference:icnet

ICnet()

ICnet() checks incoming requests and handles Cnet Slave responses.

ICnet command operation flow

void ICnet()

Commands

Command Arguments Return Value Operation
ICnet() None void Checks incoming requests and handles Cnet Slave responses.

Example

This example uses the MPINO-16A8R8T RS-485 port Serial2, input D22, and transistor output D39.

void setup() {
  ICnetMem(64, 64, 16);  // Set the M·D·R memory sizes used by Cnet Slave.
  ICnetAdr(0, 0, 0);  // Set the start addresses of M·D·R memory.
  ICnetInit(Serial2, 1, 9600);  // Set the communication port, station number and baud rate.
  if (M != nullptr) M[0] = false;
}
 
void loop() {
  ICnet();  // Check incoming requests and process Cnet Slave responses.
  if (M != nullptr) M[0] = digitalRead(22) == HIGH;
  if (D != nullptr) digitalWrite(39, D[0] ? HIGH : LOW);
}

Precautions

  • Keep calling ICnet() in loop().
  • Set M/D/R sizes within the available SRAM.
  • When sharing memory with Modbus, check for duplicate allocation and address conventions. Both ICnetMem() and ImodbusRTUMem() reallocate shared M/D. Assign final size management to only one of them and initialize both protocols after the last reallocation.
  • Allocation functions do not return success status. Check whether M, D and R are nullptr before accessing them in user code.

Built-in Commands in the Same Category

en-us_commands/reference/icnet.txt · Last modified: by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki