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.