DELPHI MSCOMM 串口通讯接收数据延时如何设置

DELPHI MSCOMM 串口通讯接收数据延时如何设置,第1张

换成spcomm吧 好处理些

至于接收判断

1 是判断数据的有效性 如果根据规约没有接收完 那就等待

2 是有的控件本身有设置,间隔XX ms之内的数据都当做一帧来接收

如果非要用你说的延时方法,每次接收数据就记录在数组里

那我用个傻办法吧

方法1

每次接收数据都记录接收的时间 T1

然后在定时器里设置间隔为N毫秒 定时判断当前时间和T1的间隔

如果间隔大于XX毫秒 就取接收的数组作为接收的数据。

方法2

用while等待 也记录接收时间 判断多少时间没有接收到数据 就停止接收

while循环中可以用delay延时

procedure Delay(const uDelay: DWORD)

var

n: DWORD

begin

n := GetTickCount

while ((GetTickCount - n) <= uDelay) do

Application.ProcessMessages

end

原因如下

1、本身串口通讯的RS485,数据传输速率很慢,可以设定较快的波特率。(治标不治本)

2、触摸屏中的数据地址不连续(当前画面的数据地址),触摸屏在向PLC获取数据的时候,需要分好几个数据包多次发送,无形中增加了反应时间。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/575221.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-04
下一篇2023-07-04

发表评论

登录后才能评论

评论列表(0条)

    保存