找回密码
 注册
LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡《LabVIEW宝典》
LabWindows/CVI论坛精华贴NET0816以太网数据采集卡RC0210远程设备授权系统 关闭关停锁定打开设备 户外分布式数据采集
NET1624低速高精度以太网数据采集卡WIFI0824SD无线WIFI网络数据采集卡脱机运行 SD存储 小尺寸微型 串口采集远程采集 安卓 手持移动采集 纪录仪
查看: 2165|回复: 20

关于用labview程控仪器的一些灵活性问题

[复制链接]
发表于 2007-6-5 15:05:12 | 显示全部楼层 |阅读模式
      比如说你已经用labview编好了测试软件,并且写好了配置文档
      但是在实际应用中,你可能会遇到先执行哪一步,后执行哪一步,这些步骤能否在labview中实现,也就是我之前就发帖提到的关于描述文件和配置文档的问题
      准确的说就是你自己先定义好描述文件,配置文档,甚至还有一个执行文件
      用户只需看懂描述文件中的定义,修改相应的配置文档,再在执行文件中根据自己的需要进行编辑
      打个比方:你编好软件去控制AgilentE4407B频谱分析仪,可能你需要在不同模式下进行测量,或者你第二步测量需要用到第一步的结果,所以这些最好可以在执行文件中详细描述出来,并且直接调用就行,而且当你需要添加新的参数,也直接在里面修改就行
      这样相当灵活,方便用户使用,不知道这里面有人做过这样的功能么?
      本来如何加载配置文档,以及在不修改程序的基础上添加新的参数,这些功能我都可以实现,但是描述文件以及执行文件该如何去链接一直困惑着我,或者说labview里面有查询文本文件的功能吗?
       希望大家能够给我点提示,非常感谢!
发表于 2007-6-6 11:08:05 | 显示全部楼层
看你说到的相信你对LV也有一定的功底啦,我就简单的说吧
你的意思也就是说做个脚本文件,可以通过修改这个件,来改变程序的执行情况
首先你要规划好你的程序,然后将须要改变的列出来并做个归类
将这些规划写入到配置文档里,通过LV读取出来做相应处理使用即可
例如,想让程序的执行顺序按配置文档进行,就可以使用状态机按配置信息来做,
再例如你现用AgilentE4407B,可能以后换同类的其它型号,有些指令难免会变,你就可以将这些写入到文档,通过程序处理得到须要的
回复 顶

使用道具 举报

 楼主| 发表于 2007-6-6 11:27:30 | 显示全部楼层

回复 #2 lgh269 的帖子

您好!
非常感谢你的回复,我还只是个初学者,让你见笑了!
嗯,你说的我有点明白是什么意思了
好,去试一下
有问题再向您请教
谢了啊
回复 顶

使用道具 举报

 楼主| 发表于 2007-6-7 17:51:28 | 显示全部楼层

回复 #2 lgh269 的帖子

您好:
     非常感谢您的回复,对我启发很大,不过我现在觉得还有一个问题,那就是如何在事先不知道用户执行顺序的情况下实现呢
     意思就是,比如说你已经编好了你的软件,拿给别人用,别人只需要改变你的脚本文件,就可以随意按照他自己的想法去编写,而且是在不改变源程序的情况下。
     这种功能可以实现吗?比如说用户需要改变一个参数测三组数据,他想直接对照写一个执行文档,然后加载进去,就能得到他想要的结果
     这样能否实现?
     还有你说的在配置文档里面设置状态机,除非我知道用户想以哪种顺序执行,我才好设置,是这样吗?
     非常抱歉打搅你宝贵的时间,还请帮忙指教一下,谢谢!

[ 本帖最后由 anjiu 于 2007-6-7 17:52 编辑 ]
回复 顶

使用道具 举报

发表于 2007-6-20 11:50:58 | 显示全部楼层
anjiu,我现在也遇到了这个问题,请问你能不能传一个例子给我看一下。谢谢!
回复 顶

使用道具 举报

发表于 2007-6-20 12:59:52 | 显示全部楼层

回复 #4 anjiu 的帖子

其实呢,状态机也不只有一种的,上次我本来想在我给你回的帖子后面加下的,但我想你应该能想到,或者说自己懒,就没动手。。。。
要实现你说的功能,其实很简单的。。。比如你在你的脚本上写着这样的命令:
step1
step3
step8
step4
.......
那么,你把这些基于ascii的信息读取进来,做成一个1D的数组,元素0对应step1,元素1对应step3........,这样,你就得到一个数组了。。。。接下来,你把数组连接到一个for循环,用for的自动索引,for里面是case结构,来依次处理你的问题,不知道说明白没。


或者纯粹用labview template里面的状态机也是可以的,它下一个状态是在当前状态里改变的,那么你可以读文件指定位置的数据进来,不也是可以按照自己的脚本来改变执行次序了吗?

[ 本帖最后由 飞雨天 于 2007-6-20 13:21 编辑 ]
回复 顶

使用道具 举报

 楼主| 发表于 2007-6-21 14:24:21 | 显示全部楼层

回复 #6 飞雨天 的帖子

感谢飞雨天大哥的指导!

其实偶想实现的脚本文件是这样的,比如说:
[Test Sequence]
Test case1
Test case2
Test case3
。。。。
[Test case1]
1、Load configfile
2、Judge/Timer
3、Save/Exit
4、Fail/Pass
[Test case2]
1、。。
2、。。。

类似于这样的脚本文件,labview可以实现吗?
你说的通过for+case结构的索引方法,确实可以实现部分功能,但对整体测试脚本来说
像上面我举的那个例子,文档内部关键字的索引调用,可以实现吗?
回复 顶

使用道具 举报

发表于 2007-6-21 15:12:26 | 显示全部楼层
可以啊,就是对file进行数据读取和对读取进来的数据进行下分析罢了,提取出有用的信号,建议做成子vi的形式
回复 顶

使用道具 举报

 楼主| 发表于 2007-6-21 17:08:47 | 显示全部楼层

回复 #8 飞雨天 的帖子

“对file进行数据读取和对读取进来的数据进行下分析罢了”?

其实我的意思就是怎么分析,你可以把脚本文件里面的内容读出来,但读出的这些内容都是独立的
而实际上我写这脚本文件时,下面和上面的内容都是相关的
比如说:
[Test Sequence]
Test case1
Test case2
[Test case1]
load configfile1
Run
Save
Fail/Pass (Pass就继续执行,Fail就跳出来不执行下去)   
[Test case2]
load configfile2
Run
Save
Exit

这样的脚本文件,在labview里面如何实现呢?
回复 顶

使用道具 举报

发表于 2007-6-22 08:20:55 | 显示全部楼层
这个好象可以用labview中的选择条件分支来完成,也要用刚才飞鱼老大说的那种数组绑定和解绑定来实现,而且这个也要建立在你的所有的case结构是确定的才可以,至于脚本的语言是可以自己定义的
回复 顶

使用道具 举报

发表于 2007-6-22 10:10:59 | 显示全部楼层
做成子vi的情况下使用vi server的方式,更灵活,而且占用资源少,每个任务你只要将vi文件路径赋予它就可以了,可以实现顺序结构或者跳转,当然了任意跳转的话还是状态机方便些,当然也就是一个case+while loop.
回复 顶

使用道具 举报

 楼主| 发表于 2007-6-27 10:22:27 | 显示全部楼层

回复 #6 飞雨天 的帖子

把这些基于ascii的信息读取进来,做成一个1D的数组,元素0对应step1,元素1对应step3........,这样,你就得到一个数组了

这个怎么实现???
开始以为很简单,但试过几次都不行
是以行为单位吗?还是其他什么方式实现的

该问题我已经解决了
不过这是在事先知道脚本文件内容的情况下实现的
但是
实际中,脚本文件是使用者定义的
内容未知,这样的话,数组大小如何定义呢

[ 本帖最后由 anjiu 于 2007-6-27 18:12 编辑 ]
回复 顶

使用道具 举报

发表于 2007-7-2 18:17:54 | 显示全部楼层

回复 #12 anjiu 的帖子

先传给你读取文件的部分,我周末有点事情,没到公司来,不好意思。。。


居然没人看,嘿,来得及补上,结果放在array5里面了,然后自己处理下

[ 本帖最后由 飞雨天 于 2007-7-2 20:23 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
回复 顶

使用道具 举报

发表于 2007-7-3 09:30:24 | 显示全部楼层
昨天这个小程序花了我3小时,当然主要是一边写一边和MM聊天的缘故。。。
不过回去后越想越不对,其实你的配置文档应该改成下面这样结构,比较好处理些:

每一个sub sequence就对应一个单独的文件,命名比如是sequence1.dat这样的,然后写一个main.dat,里面描述你调用sub sequence的次序。

换句话说就是把你原先文件中的每一个节分开成单独的文件,这样处理起来就方便多了
回复 顶

使用道具 举报

 楼主| 发表于 2007-7-3 10:01:01 | 显示全部楼层

回复 #14 飞雨天 的帖子

呵呵
老大太牛了,这个问题困扰我很久了
先回帖子感谢你,再去慢慢学习你的程序
嗯
分开成单独的文件是好处理些,但老板希望脚本文件是那样的格式
所以先这样试试
非常感谢你无私的教导!
回复 顶

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cpubbs论坛. ( 粤ICP备09171248号 )

GMT+8, 2026-9-30 14:10 , Processed in 0.067992 second(s), 12 queries , Gzip On, File On.

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表