完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
设计了一个闭环反馈程序。
我的思路是: 一、首先使用串口和一系列子VI(这里称仪器VI0)向仪器发送命令,但是我想要这部分程序只在启动程序的最开始运行一次(简单来说,就是向仪器发送一次命令,让仪器开始运行产生数据) 二、仪器接收到命令后开始运行,产生的数据由DAQ助手接收,再利用生产者消费者模式将数据处理后反馈给控制仪器的子VI(这里称仪器VI1)(消费者模式中的VI1用来接收处理后的数据,再将其反馈给仪器,因此相当于构成了一个闭环)。 我的问题是: 仪器VI0只需要运行一次(仪器的初始启动),因此把它放在生产者消费者模式之外;仪器启动之后就会产生反馈数据,所以仪器VI1放在消费者框中来不断的对仪器进行反馈控制。这样就需要两次调用VISA资源名,运行程序会报错。 请问应该怎样解决这个问题,或者有没有其他方法可以实现相同的功能? |
|
相关推荐
2 条评论
5个回答
|
|
首先可以确定的是多次、依次调用INIT.VI来打开仪器资源、进行操作、再关闭时不会出错的。其次我这边不能确定您这边的错误讯息,所以只能暂时提两点问题。
1、一般的仪器init都会有reset和query,且默认是“T”,可以考虑在初始运行时做reset,之后再次进行调用时,可将其设为“F”。 2、针对您这边描述的“两次调用会出错”,进行猜测,是否是因为两次的调用会有重叠部分,可以考虑使用顺序结构或者错误簇(推荐)进行顺序控制试一下
最佳答案
|
|
1 条评论
|
|
方法有很多,你的程序主要是打开和关闭有两个,打开后直到结束程序时再关闭,而且你都用生产消费了,为啥还在循环外搞事情
|
|
5 条评论
|
|
用一个while循环里放一个条件结构。添加3个移位寄存器,分别连接VISA资源、错误簇和真常量。真常量用于第一次循环运行VI0(条件结构真),然后赋值该移位寄存器右端成假。(相当于第一次循环运行条件真,之后都运行条件结构假)。条件结构假里放顺序结构,先运行你的生产者结构部分,在运行VI1。循环结束记得关闭VISA,不然下次运行会报错。由于我公司电脑文件加密的原因上传不了图片。
|
|
5 条评论
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1237 浏览 2 评论
NI Vision有个图片打不开其他图都能打开(用NI Vision Assistant也打开不了)
1642 浏览 1 评论
labview2015使用Excel报表程序打包生成后打开程序要选一个vi才能使用,否则软件就会报错,这是什么问题?
2186 浏览 2 评论
LabVIEW与单片机无法串口通信 提示串口打开错误 端口设置有问题吗?
2071 浏览 3 评论
2421 浏览 2 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-4 06:49 , Processed in 1.314188 second(s), Total 156, Slave 119 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号