This is an old revision of the document!
Table of Contents
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.
