[Modbus]
Description
Write to the Input Registers.
Syntax
node1.writeInputRegister(address, value)
node2.writeInputRegister(address, size, buffer)
Parameters
node1/node2
: ModbusSlaveNode object.address
: The address of the Input Registers to write to.value
: The value of the single Input Registers that you want to write to.size
: The number of plural Input Registers you want to write to.buffer
: Copy the data of the array in the array space pointed to by the buffer to the Input Registers.
Returns
int: If it succeeds, send back MODBUS_SUCCESS
, and vice versa send back EXCEPTION_CODE.
Example
#include <Modbus86.h> ModbusSlave bus; ModbusSlaveNode node; uint8_t read_input_registers( uint8_t function, uint16_t address, uint16_t length) { int sensorPin = A2; if (address <= 2 && address + length > 2) node.writeInputRegister(2, analogRead(sensorPin)); return MODBUS_SUCCESS; } void setup() { Serial485.begin(115200); /* Modbus RTU Mode via RS485. */ bus.begin(MODBUS_RTU, Serial485); /* Slave node with ID 11. */ node.attach(11, bus); /* Set the callback function of Read Input Registers (0x04). */ node.cbFunc[MODBUS_CB_READ_INPUT_REGISTERS] = read_input_registers; } void loop() { node.poll(); }
Libraries Reference Home
The text of the 86Duino reference is a modification of the Arduino reference and is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.