writeInputRegister()
描述
寫入 Input Registers 暫存器。
語法
node1.writeInputRegister(address, value)
node2.writeInputRegister(address, size, buffer)
參數
node1/node2
: ModbusSlaveNode
物件。
address
:欲寫入的 Input Registers 暫存器位址。
value
:欲寫入的單一 Input Registers 暫存器數值。
size
:欲寫入的複數 Input Registers 暫存器數量。
buffer
:將 buffer 指向的陣列空間內的陣列資料複寫至 Input Registers 暫存器內。
回傳
int
:如果成功回傳 MODBUS_SUCCESS
,反之回傳 EXCEPTION_CODE 。
範例
#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(); }
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.