完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
caucyangzhang 发表于 2017-2-25 17:19 嗯..不过,你这个程序框图,我在脑袋里想了下,感觉有点问题,不知道你有没有调试运行过。 当第一次运行程序,点击保存后(初始值为F,假设你“保存”按钮的机械动作是按下后切换,即之后变为T),进入条件真分支,这时候,事件结构在100ms内等待“‘保存’值改变”,怎么触发?或许你“保存”按钮设置的动作只是按下时切换,即只有按下时候才为T,虽然这样应该是可以的,但个人认为程序上不严谨。因为,你最外层的while循环,并没有延时VI,所以内部的条件结构判断在不断循环判断,并且由于全速占用CPU,所以快速,所以你鼠标释放前肯定进入到条件真分支内了,而当你鼠标释放的时候,可能就刚好触发了事件结构。然而如果机械动作设置成这样,那么下次while循环则只进入假分支。另一方面,如果释放的速度大于100ms,那么则先进入超时分支,如果程序初始运行,“添加的路径”局部变量如果为空,则会提示新建or直接报错。所以,不论你的“保存”按钮机械动作怎么设置,好像都有问题。 另一方面,前面有提到,假设初始值为F,在你奇数次点击“保存”按钮之前,即第0次、第2次等,这时候假分支循环如果为空,那么while循环不断循环,非常占用CPU,容易造成其它线程卡顿。如果假分支有延时等函数,那么又可能导致你事件结构错过“保存”按钮响应等操作? 没有你具体程序,只是脑袋中想象的,可能有问题,你看看就好。 另外,像楼上说到的动态注册事件应该是可以的,而且应该比你现在这个程序要严谨可靠,可以试试。 最后提下,你的后面几次回帖时候,EXCEL写成EXCLE了。
最佳答案
|
|
|
|
循环前面用一个事件结构,负责响应“数据保存”按钮按下操作。然后,把你图中上面那些新建文件的放在事件结构分支里面,把文件引用连到后面的循环里写入文本文件。循环里剩余的不需要改变即可。
|
|
|
|
条件结构外面套个事件结构就OK
|
|
|
|
ChE_Li 发表于 2017-2-24 13:47 感谢您的回复,我按照您说的,改了下,能够实现程序运行时点击保存按钮按照当前时间以及机器号建立EXCLE,将数据按照设定时间间隔保存到该EXCLE,但在第一次点击保存按钮保存文件后,在本次运行状态下,再次点击保存按钮,却没有反应,保存按钮无法被选中,麻烦您帮我看一下是什么原因 |
|
|
|
试过了,不能实现,时间结构套在外面,只能实现点击按钮时动作,不能按照设定的保存间隔连续保存数据 |
|
|
|
自顶,希望大家能帮我看一下
|
|
|
|
caucyangzhang 发表于 2017-2-24 20:37 把事件结构后面的循环做成子VI,事件结构按按钮的时候调用子VI运行。 |
|
|
|
如果直接按照你说的这样做,估计会出现卡死:子VI无法停止,无法跳出循环。 |
|
|
|
caucyangzhang 发表于 2017-2-24 20:37 你高亮看下你的程序就应该明白。前面的事件结构没有循环,所以一旦触发之后,就不会进入对应分支,然后进行后续程序,而这块程序不会再得到响应了,所以你第二次按保存按钮不会有反应。 我但是这样给你建议,是因为你的控件名称叫“数据保存”,而且你想要当控件按下之后持续间隔写入文本,所以,我不太明白为什么你有要在当前保存没有停止的情况下进行再次按下“数据保存”按钮呢?按照正常思路,如果要记录另一个文件,不应该先按下“退出程序”按钮么,否则我程序怎么知道什么时候停止?然后再重新运行VI,或者总体最外面加个循环。 除非,你想要,每次按下“数据保存”就新增一个写入文本?即同时写入多个文本文件? |
|
|
|
caucyangzhang 发表于 2017-2-24 20:37 如果要想进一步改进,可以自己学习下队列+生产者/消费者循环+状态机。 如果要实现多个写入过程同时实现,自己再补充下多线程的编程思路。 |
|
|
|
ChE_Li 发表于 2017-2-25 16:29 感谢您的回复,之所以没先退出,又进行下次保存是这样的,我用的生产者-消费者结构来进行数据采集,消费者部分进行数据的保存,需要实现生产者部分采集开始后,当需要保存数据时点击保存按钮,以当前的时间和机器编号新建一个EXCLE,把之后的数据按照当前设定的保存间隔,比如说10s保存到这个EXCLE,保存过程中当我更换机器,机器号发生改变,或者想用20s的间隔保存数据时不用停止程序,只需再次点击数据保存按钮使其弹起,数据保存暂停,输入新的机器编号和保存间隔,再次点击保存按钮即可,下面是修改后的 程序框图 |
|
|
|
感谢您的回复,这样做比较麻烦,我已经用另外的方法实现 |
|
|
|
用注册事件结构就可以
|
|
|
|
|
|
|
|
感谢楼主,楼主大神!
|
|
|
|
谢谢分享
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
452 浏览 1 评论
NI Vision有个图片打不开其他图都能打开(用NI Vision Assistant也打开不了)
915 浏览 1 评论
labview2015使用Excel报表程序打包生成后打开程序要选一个vi才能使用,否则软件就会报错,这是什么问题?
1496 浏览 2 评论
LabVIEW与单片机无法串口通信 提示串口打开错误 端口设置有问题吗?
1428 浏览 3 评论
1707 浏览 2 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 14:57 , Processed in 0.897440 second(s), Total 107, Slave 88 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号