MR right 写:我学LabVIEW也有两个月了,自认为学的还挺到家的。但是最近发现LabVIEW的一个致命的缺陷,不知道是我还没会用还是LabVIEW本身就有这么个缺陷。就是当我在输入框内(例如数组,表格,数值控件等等)好不容易输入了一些数据,以便运行测试。当时还挺好的。但是关闭后重新打开,这些数据就无影无踪了,全恢复成0了!!
不知道NI工程师出于什么目的这样设计的,但是这样感觉很不方便。
请NI工程师给个解决方案。谢过!
1、即便是用了LV多年,也不敢说学的很到家。
2、运行时数据存储与内存之中,程序退出内存,临时数据自然消失,这不是LV的缺陷,计算机本来如此。
3、任何编程语言都是如此,长期保存数据只能保存在磁盘之中,EXE文件不可能在自身保存临时可变的数据,只能存储在数据文件中。
4、LV控件(其它语言控件也是如此)都存在默认值的问题。对于一般的数值型控件,默认值是0,字符串控件默认值是空。
5、开发环境中,可以修改控件的默认值,不存储在VI之中。对于大型数据结构,一般不设默认值。
6、运行环境中,无法修改控件的默认值。
7、通过INI文件、注册表、XML文件或者其它数据文件都可以解决运行数据的存储。
=======================================================
不知道是我还没会用还是LabVIEW本身就有这么个缺陷
=======================================================
答:你还不会用。1、录入数据后,前面板右键控件,在数据高级选项中设置当前值为默认值;2、录入输入后,后面板选中对应终端,右击,选择创建常量。两种方法都可以保存数据,建议使用第二种;该方法对于一些查表一类的应用还是比较方便的。3、文件读取,一般实验性质的谈不上工程的应用有点杀鸡用牛刀的感觉。4、注册表比较高级,小心使用,可能弄坏系统。
对于每次启动需要相同的值,当然可以用常量或者默认值,我说的是运行时中间输入的数据,再次启动时需要保持,比如游戏在中间存储的问题,在再次启动游戏时需要继续。
控件的默认值或者常量是存储在VI之中,因此每次加载VI时,必然是相同的。控件的当前值指的是运行时控件的运行数据,运行数据存储在内存之中,所以VI退出内存时,运行数据自然消失,再次加载时,VI的控件重新初始化为默认值。
对于运行时的数据,如果需要再次加载,只能通过文件记录上次的值,然后读回。默认值和常量可以成为静态数据。控件当前值为动态数据,我以为你说的当前值的问题,控件的默认值是LV常识性的东西,我理解成动态数据了。
学海无涯,唯勤是岸.
It is alright to ask anything here but one should be humble in order to learn 😉
Using the words "不可取" is harsh and impolite 🙂