func main() {
provider := modbus.NewTCPClientProvider("192.168.1.100:502", modbus.WithTCPTimeout(time.Second*3), modbus.WithEnableLogger())
client := modbus.NewClient(provider)
if err := client.Connect(); err != nil {
log.Fatalf("modbus连接失败:%v", err)
return
}
defer func() {
if err := client.Close(); err != nil {
log.Println("modbus关闭失败:", err)
}
}()
for {
results, err := client.ReadInputRegisters(1, 0, 2)
log.Println(results)
if err != nil {
log.Printf("modbus读取失败:%v", err)
continue
}
log.Printf("设备%v, 温度: %v", 1, results[0])
log.Printf("设备%v, 湿度: %v", 1, results[1])
log.Printf("客户端状态: %v\n", &client)
}
}
为什么我这样会出现tcp 192.168.1.200:43477->192.168.1.100:502: i/o timeout但是本地使用modbus 调试工具是可以得到值的