Labview串口读写的延时问题
时间:10-02
整理:3721RD
点击:
先说一下通讯的目的:读取PLC中保持寄存器(MD)的值,通讯方式采用Modbus 485串口,波特率设置为19200;
我采用VISA写函数将Modbus读指令写入串口中,再延时10ms后,采用VISA读函数读到串口返回的指令,经过计算读到的值正确
后将以上过程放入While循环中,出现了问题,如果While循环的延时设置大于30ms,则读取的数据正确,反之则数据产生了错位,因此我很不解,我已经正确读取到串口返回的值,为什么要延时一段时间后才能正确进行下一次的循环,由于对串口的内部工作机理不是特别了解,所以还请大家指教
我采用VISA写函数将Modbus读指令写入串口中,再延时10ms后,采用VISA读函数读到串口返回的指令,经过计算读到的值正确
后将以上过程放入While循环中,出现了问题,如果While循环的延时设置大于30ms,则读取的数据正确,反之则数据产生了错位,因此我很不解,我已经正确读取到串口返回的值,为什么要延时一段时间后才能正确进行下一次的循环,由于对串口的内部工作机理不是特别了解,所以还请大家指教
这种情况我这边也遇到过的,据设备厂商技术支持说,主要跟仪器本身的数据处理/通信频率有关的,而不同仪器的数据处理又不同,所以导致的延时的不确定性。
请不要用延时,直接设定 VISA读取的 字节数。