Skip to content

Repository files navigation

go modbus Build StatusGoDoc

Fault-tolerant, fail-fast implementation of Modbus protocol in Go.

Supported functions

Bit access:

  • Read Discrete Inputs
  • Read Coils
  • Write Single Coil
  • Write Multiple Coils

16-bit access:

  • Read Input Registers
  • Read Holding Registers
  • Write Single Register
  • Write Multiple Registers
  • Read/Write Multiple Registers
  • Mask Write Register
  • Read FIFO Queue

Supported formats

  • TCP
  • Serial (RTU, ASCII)

Usage

Basic usage:

// Modbus TCPclient:=modbus.TCPClient("localhost:502")
// Read input register 9results, err:=client.ReadInputRegisters(8, 1)
// Modbus RTU/ASCII// Default configuration is 19200, 8, 1, evenclient=modbus.RTUClient("/dev/ttyS0")
results, err=client.ReadCoils(2, 1)

Advanced usage:

// Modbus TCPhandler:=modbus.NewTCPClientHandler("localhost:502")
handler.Timeout=10*time.Secondhandler.SlaveId=0xFFhandler.Logger=log.New(os.Stdout, "test: ", log.LstdFlags)
// Connect manually so that multiple requests are handled in one connection sessionerr:=handler.Connect()
deferhandler.Close()
client:=modbus.NewClient(handler)
results, err:=client.ReadDiscreteInputs(15, 2)
results, err=client.WriteMultipleRegisters(1, 2, []byte{0, 3, 0, 4})
results, err=client.WriteMultipleCoils(5, 10, []byte{4, 3})
// Modbus RTU/ASCIIhandler:=modbus.NewRTUClientHandler("/dev/ttyUSB0")
handler.BaudRate=115200handler.DataBits=8handler.Parity="N"handler.StopBits=1handler.SlaveId=1handler.Timeout=5*time.Seconderr:=handler.Connect()
deferhandler.Close()
client:=modbus.NewClient(handler)
results, err:=client.ReadDiscreteInputs(15, 2)

References

About

Fault-tolerant implementation of modbus protocol in Go (golang)

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages