Documentation
¶
Index ¶
Constants ¶
View Source
const ( // Read Functions FuncReadCoils byte = 0x01 // Read Coils (1-bit) FuncReadDiscreteInputs byte = 0x02 // Read Discrete Inputs (1-bit) FuncReadHoldingRegisters byte = 0x03 // Read Holding Registers (16-bit) FuncReadInputRegisters byte = 0x04 // Read Input Registers (16-bit) // Write Functions FuncWriteSingleCoil byte = 0x05 // Write Single Coil (1-bit) FuncWriteSingleRegister byte = 0x06 // Write Single Register (16-bit) FuncWriteMultipleCoils byte = 0x0F // Write Multiple Coils (1-bit) FuncWriteMultipleRegisters byte = 0x10 // Write Multiple Registers (16-bit) // Diagnostics & Masking FuncMaskWriteRegister byte = 0x16 // Mask Write Register FuncReadWriteMultipleRegs byte = 0x17 // Read/Write Multiple Registers // Custom & Advanced (Some devices support these) FuncReadFIFOQueue byte = 0x18 // Read FIFO Queue FuncEncapsulatedInterface byte = 0x2B // Encapsulated Interface Transport // Error Codes (Modbus Exception Responses) FuncExceptionOffset byte = 0x80 // Add to function code to indicate an error )
Function Codes for Modbus operations.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Modbus ¶
type Modbus interface {
// Disconnect closes the underlying network connection.
Disconnect()
// ReadHoldingRegister reads one or more holding registers from the device.
ReadHoldingRegister(register uint16, quantity uint16, dataType ModbusDataType, factor ScalingFactor) (float64, error)
// ReadInputRegister reads one or more input registers from the device.
ReadInputRegister(register uint16, quantity uint16, dataType ModbusDataType, factor ScalingFactor) (float64, error)
// ReadCoil reads the status of a single coil (digital output).
ReadCoil(register uint16) (bool, error)
// ReadCoils reads the status of multiple coils.
ReadCoils(register uint16, quantity uint16) ([]bool, error)
// ReadDiscreteInput reads the status of a single discrete input (digital input).
ReadDiscreteInput(register uint16) (bool, error)
// WriteRegister writes a single value to a holding register.
WriteRegister(register uint16, value float64, factor ScalingFactor) error
// WriteCoil sets the status of a single coil.
WriteCoil(register uint16, value bool) error
// WriteMultipleRegisters writes a slice of values to consecutive holding registers.
WriteMultipleRegisters(register uint16, values []uint16) error
// Debug enables or disables debug logging to the console.
Debug()
}
Modbus defines the interface for a Modbus RTU over TCP client.
func NewModbusRTUoverTCPClient ¶
func NewModbusRTUoverTCPClient(ip string, port uint, deviceID byte, timeout time.Duration, writeDelay time.Duration) Modbus
NewModbusRTUoverTCPClient creates and configured a new Modbus RTU over TCP client. It does not establish a connection immediately; the connection is made on the first request.
type ModbusDataType ¶
type ModbusDataType string
ModbusDataType represents supported Modbus register data types for parsing.
const ( ModbusDataTypeUint16 ModbusDataType = "uint16" ModbusDataTypeInt16 ModbusDataType = "int16" ModbusDataTypeUint32 ModbusDataType = "uint32" ModbusDataTypeInt32 ModbusDataType = "int32" ModbusDataTypeFloat32 ModbusDataType = "float32" )
Supported Modbus data types for register parsing.
type ScalingFactor ¶
type ScalingFactor uint
ScalingFactor defines a multiplier to convert a fixed-point Modbus value into a floating-point number. For example, a value of 1234 with ScalingFactorMinus_2 becomes 12.34.
const ( // ScalingFactorMinus_0 represents a scaling factor of 1 (10^0). No change. ScalingFactorMinus_0 ScalingFactor = 1 // ScalingFactorMinus_1 represents a scaling factor of 10 (10^1). Divides by 10. ScalingFactorMinus_1 ScalingFactor = 10 // ScalingFactorMinus_2 represents a scaling factor of 100 (10^2). Divides by 100. ScalingFactorMinus_2 ScalingFactor = 100 // ScalingFactorMinus_3 represents a scaling factor of 1000 (10^3). Divides by 1000. ScalingFactorMinus_3 ScalingFactor = 1000 )
Common scaling factors. The names indicate the power of 10.
Click to show internal directories.
Click to hide internal directories.