博客统计信息

51cto推荐博客
用户名:genreeze
文章数:20
评论数:48
访问量:41633
无忧币:183
博客积分:1118
博客等级:5
注册日期:2008-02-20

        最近换用Windows7系统了,可是在用LabVIEW发布可执行文件后出现了一个新的问题。那就是在进行一些文档的读写操作时提示权限不够。究其原因,是Win7采用了比XP更严格的权限等级。
        Win7把可执行文件的执行等级分为3级:
asInvoker:以普通用户权限运行程序,不会提示需要取得管理员权限,不能读写受保护的文档。这也是LabVIEW发布exe文件的默认等级。
highestAvailable:以能够取得的最高权限运行程序。如果当前用户只有普通用户权限,则不会..
整理手机中的照片,选了3张
 
奥林匹克森林公园.北园.秋

 
 
 

 
      上一篇文章说了说标准状态机,这种模型在自动测试系统(ATS)和自动控制系统(ACS)的编程应用中应用非常方便。因为在ATS和ACS系统运行的过程中几乎不需要与用户互动,只要按照事先设定好的逻辑来判断程序的走向,直到程序结束。但是,在大部分桌面应用和部分工业应用中,程序都需要和用户互动。比如说,需要用户输入参数、下达命令甚至判断程序走向。
     如果程序的用户互动环节比较多,用标准状态机来实现就回比较困难,即使实现了也会使程序代码臃肿、结构混乱。
 &nb..
      画好状态转换图,我们就可以清晰的看到程序要实现的所有状态以及状态之间的关系。下面的工作就是用LabVIEW来实现这个状态机。
      状态机是由一个While循环、一个条件结构和一个移位寄存器组成的。其中While循环用来保证程序可以连续的运行;条件结构的各种分支中的代码用来描述状态机的各种状态,以及下一状态的选择;移位寄存器用来将之前状态所作出的选择传递到下一次循环的选择端子。
      下面我们就一步一步的实现这个状态机。
 &..
         状态机是在工程应用中使用最多的设计模型。使用状态机,我们可以很容易的实现程序流程图中的判断、分支。
         状态机是由一系列的状态构成的,其中包括一个“初始化”状态,和一个“停止”状态。程序油“初始化”状态开始,由“停止”状态结束。一般来说,在“初始化”状态中进行控件与变量的初始化、打开文件以及创建引用等操作,而在“停止”状态中进行清除临时数据、关闭文件和结束引用等操作。在状态机中,每一个状态都可能导致..
顺序模型之数据流
顺序结构有这样那样的缺陷,那么如何实现顺序模型呢?答案就是使用数据流的思想进行编程。一个节点开始执行,那么就需要该节点获得所有必要数据。
在LabVIEW中,数据由前面的节点流向后面的节点,程序随着数据的流动而执行。这就形成了一个自然的顺序结构。
数据流示意图
上图就是一个典型的由数据流控制的顺序模型。Simulate Signal节点产生一个波形数据,然后数据沿连线流动到Spectral Measurements节点做频谱分析,分析得到的频谱数据沿连线流动到Write To Measurement File节点,将节点存储到数据文件。整个程序,随着数据的流动一步一步的执行,形成了一个完美的顺序模型。
如果两个节点之间没有数据联系,我们也想要他们顺序执行怎么办呢?那就要利用错误簇和条件结构。
错误簇,是LabVIEW设置的特殊的数据结构,由status(错误状态)、code(错误代码)、source(错误信息)三部分组成。它是用来在节点之间传输错误信息的。(如下图所示)
错误簇
其实,错误簇除了可以传递错误信息以外,还有一个重要的功能就是通过错误簇中数据的流动来确定程序的执行顺序。当节点含有错误簇端子时,我们就要把前一个节点的error out端子和后一个节点的error in端子连接起来,已确定执行的顺序,以及保证错误信息的传递。
错误簇确定执行顺序
上图所示的VI由3个用户输入节点构成。三个节点之间本没有数据联系,也就是说执行顺序不确定。但是,通过错误簇的连接使它们形成了数据依赖,从而能够顺序执行。
如果在节点中没有错误簇,有该如何用数据流来确定执行顺序呢?看看下面的例子:
2009-09-20 11:12:29

我的手机是索爱的k858c,前几天打电话时突然死机。拔电池后重启,发现键盘灯和镜头的蓝色光圈亮起,但机器仍然无法启动,就死在了这个状态。所有的共能都无法使用,几千快钱的东西,瞬间就便成了板砖。
第二天驱车到公主坟的索爱维修点,被告知由于购买时间已经超过了一年,需要自费。没办法,自费就自费吧。服务员把机器拿进为修建检测。检测的倒是很快,没几分钟就来通知我说是芯片烧毁需要更换,报价20元检测费+280元维修费。心中暗想,这也太坑人了,换个芯片要300元。芯片的价格撑死了也就几十元啊,再加上就算100元的手工费,..
类别:生活|阅读(629)|回复(7)|(0)阅读全文>>
        顺序模型之顺序结构

在任何编程语言中顺序模型都是最基本的设计模型,LabVIEW也不例外。
顺序模型从程序开始到初始化,到模块1、模块2……一直到程序的结束,都是严格按照编程者事先指定的顺序依次执行的。这种模型简单、易懂,是编写小程序的理想模型,如下图。
顺序模型流程图
在LabVIEW中,一提到顺序模型就会很自然的想到顺序结构。没错,使用顺序结构是实现顺序模型的一种方法。
在LabVIEW中,顺序结构就像是电影胶片,不论是外观和应用形式都很像(如下图所示)。它是严格按照从左到右的顺序将各个帧中的模块依次执行的。前面的帧执行完毕之前,后面帧中的内容是无法开始的。顺序结构看上去很清晰,容易理解。
顺序结构示意图
然而,顺序结构有两个致命的缺陷,以至于我们在实际应用中应该尽量避免使用它:
1. 顺序结构破坏了数据流系统规则。在LabVIEW中一个节点开始执行的充要条件是节点获得了所有必要数据,这就是数据流系统规则。而顺序结构的使用,强行规定了各个节点的执行顺序,破坏了这一规则。也阻止了并行处理的进行,降低了程序的效率。
2.顺序结构降低了程序的可控性。顺序结构一旦开始执行就无法中止,它一定要等到最后一帧执行完毕后才会停止。这也是顺序结构最大的缺陷,导致了程序在它执行的过程中无法控制。
由于以上的原因,我们在工程应用中对于顺序结构的使用一定要慎之又慎。
顺便说一下,还有一种层叠式的顺序结构。样子如下:
层叠顺序结构 
这种结构貌似节省空间,但是它不但拥有平铺式顺序结构所有的缺陷,而且我们无法一眼看出各个帧的情况,使得程序不够清晰。更严重的是,在各帧之间传递数据的端子,使得数据的流向混乱,难以读懂,不易维护。所以应该绝对避免使用层叠式的顺序结构。[/img]..

       LabVIEW是一种图形化的编程语言,也就是所谓的G语言。它与传统的编程语言最大的不同就在于它不需要你去一行一行的书写代码,而是将不同输入输出端子和函数模块用线链接起来。从表面上看,他更像是一种画图工具。而且可以很快的写出一些用传统语言实现起来非常复杂小程序。这通常会让我们非常兴奋,并且自信心迅速膨胀。
       于是,开始写一些功能复杂程序,这时候往往有一种无从下手的感觉。即使下得手去,也是开始写的很顺利,但是写着写着就写不下去了。..
2009-09-08 20:38:04

       从接触LabVIEW到现在,已经有5年的时间了。从刚开始对各种函数的尝试,到系统的对LabVIEW进行学习;从最简单的“Hello Wowld!”, 到大型的测试测量项目。积累了一些开发经验,也有很多教训,最近工作不算太忙,就把之前的经验教训总结总结。
       LabVIEW是一门易学易用的编程语言,特别是对于没有什么编程经验的人来说,非常容易上手。这一点,传统的文本式的编程语言是无法与LabVIEW相比拟的。但是在经过一段时间的学习使用后就会发现遇到了一个瓶颈,很难..
2009-04-22 21:42:52
经过一年的忙碌,终于搬进了自己的家。
 
房间虽然不大,但它是属于我的。
 
不用再每天每天花费3个小时在上下班的路上了。
真爽!
 
不用再忍受中年不见阳光的背阴卧室了。
真爽!
 
躺在属于自己的沙发上看着爱看的节目。
真爽!
 
能够余出点时间来写写博客。
真爽!
2008-02-28 08:41:50
自定义控件制作的视频教程



 
 
                                                                           ..
类别:转载|阅读(1613)|回复(0)|(0)阅读全文>>
艳照门事件应证了电影《无极》里的故事。
 
 
1、 《无极》里面满神对倾城(张柏芝)说:“你永远都得不到真爱,就算得到也会马上失去。”这一句害死了张柏芝,她以前一直喜欢霆锋,却一直得不到霆锋的爱,几经波折得到后,竟被艳照门事件给毁了,尽管他们现在还没离婚,但问题的存在不可能当没发生过,霆锋如果是个正常的男人都会无法忍受,分开都是迟早的事了!


2、 《无极》里面无欢(谢霆锋)对倾城(张柏芝)说:“你毁了我做一个好人的机会。”霆锋现在本来已经收性做个好爸爸,好丈夫,这次被这件事一逼,看吧..
类别:转载|阅读(246)|回复(2)|(0)阅读全文>>
还是vihome论坛上的问题:
 
我做了个数字键盘,然后想点一下数字显示控件“数值”就可以使用做的数字键盘往里面输入数值,按数字键盘上的“Enter”键表示输入完毕,接着鼠标再点击数字显示控件“数值2”就可以使用数字键盘往里面输入数值。而且“数值”和“数值2”必须是数字显示控件。
       这里我只用了两个数字显示控件,以后在应用中还要用到同样功能的数字显示控件。

 
 
 
 
要解决这个问题首先想到的就是要用到“键选择”属性而且用到事件结构来判断,但在点选了数值控件后还要点击数字键,这就使得数值控件的这一属性又变为faulse,所以就想到了要找到一个变量来存储所有数值空间的选中状态,并且只是在属性变为Ture时才影响该变量的值,而变为Faulse不会影响。然后用移位寄存器将该变量的值传递到下次循环。由此来判定当前选中了哪个数值控件。然后将数字键盘得到的值写到相应的控件中。简单写了一下程序:
 
本文转自VI之家论坛 [url]http://www.vihome.com.cn/bbs[/url]
 
1、  如何用LV与可编程仪器通信,该仪器没有GPIB接口,但有COM口,能否用LV操作?A:可以通过LV的串口通信来解决仪器控制问题,参看FIND EXAMPLE的BASIC 2 PORT SERIAL WRITE AND READ.VI

2、  如何将EVENTSTRUCT中捕获的时间传递到STATE DIAGRAM?A:使用VENTSTRUCT捕获面板事件后,将不同的事件对应于不同的字符串和其他,再通过QUEUE将VENTSTRUCT中的字符串传递到STATEDIAGRAM中,再根据得到的字符串进行相应的处理。

3、  ..
类别:转载|阅读(3619)|回复(2)|(1)阅读全文>>
 <<   1   2   >>   页数 ( 1/2 )