Documentation
¶
Index ¶
Constants ¶
View Source
const ( // Bit access - Single bits FuncReadCoils = 0x01 // Read Coils (outputs) FuncReadDiscreteInputs = 0x02 // Read Discrete Inputs // Bit access - Multiple bits FuncWriteSingleCoil = 0x05 // Write Single Coil FuncWriteMultipleCoils = 0x0F // Write Multiple Coils // 16-bit access - Single registers FuncReadHoldingRegisters = 0x03 // Read Holding Registers FuncReadInputRegisters = 0x04 // Read Input Registers FuncWriteSingleRegister = 0x06 // Write Single Register // 16-bit access - Multiple registers FuncWriteMultipleRegisters = 0x10 // Write Multiple Registers FuncReadWriteMultipleRegisters = 0x17 // Read/Write Multiple Registers FuncMaskWriteRegister = 0x16 // Mask Write Register FuncReadFIFOQueue = 0x18 // Read FIFO Queue // File record access FuncReadFileRecord = 0x14 // Read File Record FuncWriteFileRecord = 0x15 // Write File Record // Diagnostics FuncReadExceptionStatus = 0x07 // Read Exception Status FuncDiagnostic = 0x08 // Diagnostic FuncGetCommEventCounter = 0x0B // Get Comm Event Counter FuncGetCommEventLog = 0x0C // Get Comm Event Log FuncReportSlaveID = 0x11 // Report Slave ID FuncEncapsulatedInterface = 0x2B // Encapsulated Interface Transport (includes Read Device Identification) )
Modbus Function Codes (standard functions per Modbus Application Protocol Specification V1.1b3)
View Source
const ( DiagReturnQueryData = 0x00 DiagRestartCommunications = 0x01 DiagReturnDiagnosticRegister = 0x02 DiagChangeASCIIInputDelimiter = 0x03 DiagForceListenOnlyMode = 0x04 DiagClearCountersAndDiagnosticReg = 0x0A DiagReturnBusMessageCount = 0x0B DiagReturnBusCommunicationError = 0x0C DiagReturnBusExceptionErrorCount = 0x0D DiagReturnSlaveMessageCount = 0x0E DiagReturnSlaveNoResponseCount = 0x0F DiagReturnSlaveNAKCount = 0x10 DiagReturnSlaveBusyCount = 0x11 DiagReturnBusCharacterOverrunCount = 0x12 DiagClearOverrunCounter = 0x14 )
Diagnostic sub-function codes
View Source
const ( ExceptionIllegalFunction = 0x01 ExceptionIllegalDataAddress = 0x02 ExceptionIllegalDataValue = 0x03 ExceptionSlaveDeviceFailure = 0x04 ExceptionAcknowledge = 0x05 ExceptionSlaveDeviceBusy = 0x06 ExceptionNegativeAcknowledge = 0x07 ExceptionMemoryParityError = 0x08 ExceptionGatewayTargetNoResponse = 0x0B )
Exception codes
Variables ¶
View Source
var Decoder = &decoder.StreamDecoder{ Type: types.Type_NC_Modbus, Name: serviceModbus, Description: "Modbus is a serial communications protocol for ICS/SCADA PLCs and industrial devices", PostInit: func(d *decoder.StreamDecoder) error { var err error modbusLog, _, err = logging.InitZapLogger( decoderconfig.Instance.Out, "modbus", decoderconfig.Instance.Debug, ) return err }, CanDecode: func(client, server []byte) bool { return canDecodeModbus(client) || canDecodeModbus(server) }, DeInit: func(sd *decoder.StreamDecoder) error { return modbusLog.Sync() }, Factory: &modbusReader{}, Typ: core.TCP, }
Decoder for protocol analysis and writing audit records to disk.
Functions ¶
func GetExceptionCodeName ¶
GetExceptionCodeName returns the human-readable name for a Modbus exception code.
func GetFunctionCodeName ¶
GetFunctionCodeName returns the human-readable name for a Modbus function code.
func IsCriticalFunction ¶
IsCriticalFunction returns true if the function code is a write operation.
func IsDiagnosticFunction ¶
IsDiagnosticFunction returns true if the function code is a diagnostic operation.
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.