在发送您的请求之前等待一段时间。当您使用 F5 进行调试时,您无需等待。但是使用 F11,您不可避免地要等待。这也表明您的程序在等待时运行得更好:) 使用诸如“免费串行端口监视器”之类的监视程序通过首先运行科勒自己的程序来找出这些等待时间。
您可以使用流式读取器和流式写入器与仪表进行通信。喜欢
writer = new StreamWriter(((System.IO.Ports.SerialPort)serialPort).BaseStream);
reader = new StreamReader(((System.IO.Ports.SerialPort)serialPort).BaseStream);
不要忘记在用户写入命令之后使用 writer.Flush() 命令。有时要等待,然后再将命令发送到仪表使用 System.Threading.Thread.Sleep(250);
代码。250 以毫秒为单位。我不建议您在发送请求后等待。在发送新请求、ACK 消息等之前等待。如果科勒自己的程序在命令之间等待太多,请设置串行端口超时值...
(serialport).ReadTimeout = xxx;
(serialport).WriteTimeout = xxx;