我用vc的Api串口读写函数,通过Rs232口和CQM1H-CPU51用hostlink码进行通信,每读PLC一个字的时间要50mm左右,请问有哪些可能原因造成的通信时间需要这么长?
COMMTIMEOUTS timeouts;
timeouts.ReadIntervalTimeout = 30;
timeouts.ReadTotalTimeoutMultiplier = 3;
timeouts.ReadTotalTimeoutConstant = 50;timeouts.WriteTotalTimeoutMultiplier = 3;
timeouts.WriteTotalTimeoutConstant = 30;
COMMTIMEOUTS timeouts;
timeouts.ReadIntervalTimeout = 30;
timeouts.ReadTotalTimeoutMultiplier = 3;
timeouts.ReadTotalTimeoutConstant = 50;timeouts.WriteTotalTimeoutMultiplier = 3;
timeouts.WriteTotalTimeoutConstant = 30;
1 计算机串口UART 16550有硬件数据缓冲FIFO,这样会造成数据包发送延时,如果是编程控制少量数据发送,且发送频率高就会造成速度非常慢,win2000下可关闭这个硬件缓冲来提高数据发送的实时性
2 线程延时,线程切换会造成你的程序等待20ms或更长时间.
===========================================================
所以说你的这种方式肯定会很慢,首先线程信号机制肯定达不到你要求的频率,唯一可改的只能是硬件缓冲区设置方法如下,
2000设备管理器->串口->串口设置->高级
我的电脑-属性-硬件-设备管理器-端口-com1你说的2000设备管理器->串口->串口设置->高级在哪儿?