User Tools

Site Tools


en-us_commands:communication

This is an old revision of the document!


Industrial Communication

Modbus RTU Slave

Set the M and D memory sizes with ImodbusRTUMem() and the start addresses with ImodbusRTUAdr(). After ImodbusRTUInit(serial, slaveId, baudrate), keep calling ImodbusRTU() in loop().

Modbus RTU Master

Initialize the port with ImodbusRTUmasterInit(). Use ImodbusRTUmaster() for a single request, or ImodbusRTUmasterAdd() and ImodbusRTUmasterRun() for registered requests. Check the returned status against constants such as IMODBUS_RTU_SUCCESS, Timeout and CRC error.

LS Industrial Systems Cnet Slave

Set the M, D and R areas with ICnetMem() and ICnetAdr(), then call ICnetInit(serial, slaveId, baudrate) and call ICnet() in loop().

Mitsubishi MC Protocol Slave

Set the X, Y, M and D areas with IMcMem() and IMcAdr(), then call IMcInit(serial, stationNo, baudrate) and call IMcProtocol() in loop().

void setup() {
  ImodbusRTUMem(128, 64);
  ImodbusRTUAdr(0, 0);
  ImodbusRTUInit(Serial2, 1, 9600);
}
void loop() { ImodbusRTU(); }

Command Prototypes

Return Type Command Prototype
void ImodbusRTUMem(uint16_t m_size, uint16_t d_size)
void ImodbusRTUAdr(uint16_t m_offset, uint16_t d_offset)
void ImodbusRTUInit(HardwareSerial& serialPort, uint8_t slaveId, long baudrate)
void ImodbusRTU()
void ImodbusRTU(HardwareSerial& serialPort)
void ImodbusRTUmasterInit(HardwareSerial& serialPort, long baudrate)
void ImodbusRTUmasterInit(HardwareSerial& serialPort, long baudrate, uint8_t config)
uint8_t ImodbusRTUmaster(HardwareSerial& serialPort, uint8_t slaveId, uint8_t functionCode, uint16_t address, uint16_t quantity, uint16_t* data, uint16_t timeoutMs = 100)
bool ImodbusRTUmasterAdd(HardwareSerial& serialPort, uint8_t slaveId, uint8_t functionCode, uint16_t address, uint16_t quantity, uint16_t* data, uint16_t timeoutMs = 100)
uint8_t ImodbusRTUmasterRun()
uint8_t ImodbusRTUmasterRun(HardwareSerial& serialPort, uint8_t slaveId, uint8_t functionCode, uint16_t address, uint16_t quantity, uint16_t* data, uint16_t timeoutMs = 100)
void ICnetMem(uint16_t m_size, uint16_t d_size, uint16_t r_size = 100)
void ICnetAdr(uint16_t m_offset, uint16_t d_offset, uint16_t r_offset = 0)
void ICnetInit(HardwareSerial& serialPort, uint8_t slaveId, long baudrate)
void ICnet()
void IMcMem(uint16_t x_size, uint16_t y_size, uint16_t m_size, uint16_t d_size)
void IMcAdr(uint16_t x_offset, uint16_t y_offset, uint16_t m_offset, uint16_t d_offset)
void IMcInit(HardwareSerial& serialPort, uint8_t stationNo, long baudrate)
void IMcProtocol()

Check the product-specific Serial number, RS-232/RS-485 interface, baud rate, station number, parity, termination resistors and DIP switches. Configure each port so that multiple protocols do not use it simultaneously.

← Built-in Command List

en-us_commands/communication.1788785564.txt.gz · Last modified: by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki