User Tools

Site Tools


en-us_commands:reference:imcprotocol

IMcProtocol()

IMcProtocol() checks incoming requests and handles MC Protocol responses.

IMcProtocol command operation flow

void IMcProtocol()

Commands

Command Arguments Return Value Operation
IMcProtocol() None void Checks incoming requests and handles MC Protocol responses.

Example

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

void setup() {
  IMcMem(32, 32, 64, 64);  // Set the X·Y·M·D memory sizes used by MC Protocol.
  IMcAdr(0, 0, 0, 0);  // Set the start addresses of X·Y·M·D memory.
  IMcInit(Serial2, 1, 9600);  // Set the communication port, station number and baud rate.
}
 
void loop() {
  IMcProtocol();  // Check incoming requests and process MC Protocol responses.
  if (X != nullptr) X[0] = digitalRead(22) == HIGH;
  if (Y != nullptr) digitalWrite(39, Y[0] ? HIGH : LOW);
}

Precautions

  • Keep calling IMcProtocol() in loop().
  • Do not confuse hexadecimal addressing for X/Y with decimal addressing for M/D.
  • Do not use X/Y/M/D before allocating the pointers.
  • If Cnet or Modbus reallocates shared M/D memory at runtime, the addresses used by MC Protocol change. Complete all memory size settings in setup() and do not call them again at runtime.
  • Allocation functions do not return success status. For nonzero sizes, verify the corresponding global pointer is not nullptr before accessing it.

Built-in Commands in the Same Category

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

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki