hi-way / go-modbus

modbus rtu、tcp、ascii、rtu_over_tcp、ascii_over_tcp
BSD 3-Clause "New" or "Revised" License
6 stars 2 forks source link

client.Packager #2

Open ailen1002 opened 8 months ago

ailen1002 commented 8 months ago
st := modbus.NewSerialTransporter("COM3")
st.Mode = serial.Mode{BaudRate: 19200}
defer func() { _ = st.Close() }()
// slave1
c1 := modbus.NewClient(modbus.NewRtuPackager(1), st)
_, results1, err1 := c1.ReadHoldingRegisters(1, 10)

// change slave ID
c1.Packager.SlaveId = 2

// slave2
_, results2, err2 := c1.ReadHoldingRegisters(1, 10)

// change slave ID
c1.Packager.SlaveId = 3

// slave3
_, results3, err3 := c1.ReadHoldingRegisters(1, 10)

client.Packager Can modify SlaveId externally with uppercase first letter. Communicate with different slave stations

hi-way commented 8 months ago

change slave ID c2 := modbus.NewClient(modbus.NewRtuPackager(2), st)

ailen1002 commented 8 months ago

I have modified my usage code according to your method, and everything seems to be working well now, thank you