我正在嘗試測(cè)試從設(shè)備仿真器執(zhí)行單個(gè)寄存器的簡(jiǎn)單 TCP MODBUS 讀取。運(yùn)行代碼時(shí),它顯示 0 字節(jié)的響應(yīng),我收到消息“對(duì)等方重置連接”。關(guān)于為什么它不起作用的任何想法?更新,我的請(qǐng)求不正確,正確的 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")}
golang :來自 ioutil.ReadAll() 的網(wǎng)絡(luò)響應(yīng)為空,連接由對(duì)等方重置
慕標(biāo)琳琳
2021-07-08 18:53:54