我正在尝试测试从设备仿真器执行单个寄存器的简单 TCP MODBUS 读取。运行代码时,它显示 0 字节的响应,我收到消息“对等方重置连接”。关于为什么它不起作用的任何想法?更新,我的请求不正确,正确的 MODBUS TCP 轮询代码是:package mainimport ( "fmt" "net")// TCP MODBUS clientfunc main() { conn, err := net.Dial("tcp", "192.168.98.114:502") if err != nil { fmt.Println(err) } numRegs := 1 # make a MODBUS TCP request (be careful, the format is different to MODBUS serial) request := []byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x01, 0x03, 0x00, 0x01, 0x00, 0x01} n, err := conn.Write(request) if err != nil { fmt.Println(err) } expectedResponseLen := 5 + 2 * numRegs response := make([]byte, expectedResponseLen) n, err = conn.Read(response) conn.Close() if err != nil { fmt.Println(err) } for i := 0; i < n; i++ { fmt.Printf("%02x ", response[i]) } fmt.Println("\n")}
1 回答
- 1 回答
- 0 关注
- 440 浏览
添加回答
举报
0/150
提交
取消