Documentation
FieldTalk Modbus Slave Library for .NET
MbusDataTableInterfacewriteHoldingRegistersTable Method |
Override this method to implement a Data Provider
function to write Holding Registers.
Namespace: FieldTalk.Modbus.Slave
Assembly: FieldTalk.Modbus.Slave (in FieldTalk.Modbus.Slave.dll) Version: 2.11.0-eval+eb1ecbe71c969eff5d7c05d58da16dade0474678
Parameters
- startRef
- Type: SystemInt32
Start register (Range: 1 - 65536) - regArr
- Type: SystemInt16
Buffer which contains the received data (Length: 0 - 125)
Return Value
Type: Booleantrue indicates a successful access. The Server Engine will send a positive reply to the master.
false indicates that access has been denied or is out of range. The Server Engine will reply to the master with an exception reply message
When a slave receives a write request for the 4:00000 data table it
calls this method to pass the data to the application.
Required: Yes
Default Implementation: Returns false which indicates to Server Engine that this address range is unsupported.
A simple implementation which holds the application data in an array
of Int16 called localRegisters could be:
protected override int writeHoldingRegistersTable(Int32 startRef, Int16[] regArr) { // Adjust Modbus reference counting from 1-based to 0-based startRef--; // Validate range if (startRef + regArr.Length > localRegisters.Length) return false; // Copy registers from Modbus to local data block for (int i = 0; i < regArr.Length; i++) localRegisters[startRef + i] = regArr[i]; return true; }