先说一下通讯的目的:读取PLC中保持寄存器(MD)的值,通讯方式采用Modbus 485串口,波特率设置为19200;
我采用VISA写函数将Modbus读指令写入串口中,再延时10ms后,采用VISA读函数读到串口返回的指令,经过计算读到的值正确
后将以上过程放入While循环中,出现了问题,如果While循环的延时设置大于30ms,则读取的数据正确,反之则数据产生了错位,因此我很不解,我已经正确读取到串口返回的值,为什么要延时一段时间后才能正确进行下一次的循环,由于对串口的内部工作机理不是特别了解,所以还请大家指教
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>