完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
一台RS485通讯的三相电力表,用串口助手可以很快读到返回数。但用附图所示的程序,不能正确读到,出错时会有返回数。不知什么原因。哪位高手请指教一下,谢谢!
|
|
相关推荐
7个回答
|
|
你这用法都不对呀 顺序应该是 串口写入—》 延时—》 Bytes at port—》串口读取
你这延时跟Bytes at port 怎么并行了 最主要的是Bytes at port跟串口读取的接法都不对呀 肯定报错的呀
|
|
|
|
用了Bytes at port 为什么读取的时候又抛弃了,而且我 搞不太明白为啥用那么多人喜欢用打开串口和关闭串口,你用助手的时候也是发一条指令时就执行这两个运作吗?
|
|
2 条评论
|
|
很棒棒哦,加油,努力学习中
|
|
|
|
多谢各位支持,就在刚才,已成功返回计数,这里把操作细节描述一下,供和我遇到同样问题的朋友参考。
以下两点很重要: 1。VISA读取字节总数很重要,如果设置成固定字节数,必须和RS485返回的一样,不能多也不能少,这和RS232不同,RS232可以设置多点,但不能少,我原来就是设置多了,才不成功的。设置为固定字节数的好处是返回数据速度快,在写和读之间不需要等待就可以获得正确返回数。当然,最可靠的方法还是在写和读之间加一个获取端口字节数,这样就不会错了。 2。当你在写和读之间加一个获取端口字节数,必须加一个足够的等待时间。我读取13个字节返回数时,当等待时间设置到30ms以下时,没有任务返回数,当设置到40ms时,可以返回8-10个左右字节,设置到50ms,就可以全部返回。时间长短也许和使用的硬件设备有关。 读取问题成功解决,也是一大进步。 接下来又有一个新的挑战:我买的这块三相电表,厂家没有做二次开发,返回的数是16进制原始数据,要用IEEE-754的计算公式算出来才能得到正确计数,我通过手动算出来了,可是用labview最难的一点是要把握16进制转换成二进制,然后取前8转10进制,再减127,值做为2的指数,把后24位转成10进制,除以2的23次方,再加1,再。。。。。我觉得这也不是事,只要有办法把16进制转成2进制,成功分离前8位和后24位,就搞定了。有其它好办法的朋友请指教一下,谢谢! |
|
1 条评论
|
|
特别鸣谢王志博的提醒。
|
|
|
|
知悉看看小草手把手教串口的帖子,那个延时改怎么加
|
|
|
|
今天在论坛上终于找到了IEEE754的16进制转浮点数的方法,原来这么简单,用一个强制转换,将字符转换成单精度就对了
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
用udl里的字符串信息在局域网内其他电脑连接sql数据库为什么为出现连接失败拒绝访问?
1796 浏览 2 评论
为什么同一个队列引用的全局变量,运行在两个子vi中发现队列数据丢失了
1407 浏览 0 评论
1610 浏览 0 评论
关于labview2024版本的lvanlys.dll出错的问题
3477 浏览 3 评论
1527 浏览 2 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 17:55 , Processed in 0.832404 second(s), Total 109, Slave 84 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号