完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
先说一下通讯的目的:读取PLC中保持寄存器(MD)的值,通讯方式采用Modbus 485串口,波特率设置为19200;
我采用VISA写函数将Modbus读指令写入串口中,再延时10ms后,采用VISA读函数读到串口返回的指令,经过计算读到的值正确 后将以上过程放入While循环中,出现了问题,如果While循环的延时设置大于30ms,则读取的数据正确,反之则数据产生了错位,因此我很不解,我已经正确读取到串口返回的值,为什么要延时一段时间后才能正确进行下一次的循环,由于对串口的内部工作机理不是特别了解,所以还请大家指教 |
|
相关推荐
2个回答
|
|
这种情况我这边也遇到过的,据设备厂商技术支持说,主要跟仪器本身的数据处理/通信频率有关的,而不同仪器的数据处理又不同,所以导致的延时的不确定性。
|
|
|
|
请不要用延时,直接设定 VISA读取的 字节数。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
807 浏览 2 评论
NI Vision有个图片打不开其他图都能打开(用NI Vision Assistant也打开不了)
1209 浏览 1 评论
labview2015使用Excel报表程序打包生成后打开程序要选一个vi才能使用,否则软件就会报错,这是什么问题?
1776 浏览 2 评论
LabVIEW与单片机无法串口通信 提示串口打开错误 端口设置有问题吗?
1688 浏览 3 评论
1994 浏览 2 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 11:07 , Processed in 0.551753 second(s), Total 75, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号