LabVIEW 项目实践篇
配置文档(ini文档)的应用
(V1.0)
LabVIEW 项目实践篇:配置文档(ini文档)的应用
(V1.0)
1. 项目工况:
在楼主做项目的时候,经常会遇到这样一种工况,就是需要把一些参数记下来,下次打开软件的时候,还是这个状态。比如说,楼主做一些试验台的时候,需要做一些报警。例如温度高报警,温度低报警,液位高报警,液位低报警等,就需要把各个报警值计下来。再比如说,要做一些传感器的标定,需要把传感器的标定参数记下来。在试验元件的时候,需要把一些常用参数记下来等等。下面谈一谈楼主楼主用过的几种方法。
2. 实现方案:
1.当前值设置为默认值:用过Labview的同学,最先想到的应该就是 LV自带的默认值功能了。在一下工况下,默认值确实是个很方便的功能。这个功能,就相当于咋们常说的缺省值。
举个例子:一个数字控件,比如楼主最常用的电机转速。在项目中常用到变频器,用一个控件控制变频器的转速。
众所周知,电机转速不能太低。当不设置 默认值的时候,LV数值控件默认值为0 ,所以这时候,就需要给 控件来个默认值,当程序刚打开的时候,让电机转速设置为400/min。
设置如下:
当设置完成时,程序打包以后,每次程序打开以后,此控件的默认值就是400。
这种用法楼主还经常用在一下缺省值的设定上。比如说,楼主经常要做一些报表,报表要填写 姓名,日期等。通常会把最常用的一个状态设置为缺省值,方便用户来填写。再比如说在填一些电子表格的时候,国际:中国,名族:汉。你来一个缺省值,默认值就会很方便。如果对方部是中国,不是汉族,只要一改就可以了。
下面举例:一批被试阀 型号为TT-112543-XXX,前面的值都一样,只有XXX需要改变。这时候,就可以把TT-112543-001设置为缺省值,只需要改变后几位就可以了。用户也不容易输错。
这种办法在以上这种,不经常变动的工况下适用。一旦默认值确定下来,再就不好改。
2.用PLC记录值:这是一种偷懒的方法,在一定场合,可以用一下,但弊端很大。
楼主经常做一些测控项目,最常用到的硬件配置就是工控机+板卡+PLC这样的上下位机结构。在一些时候工控下,可以用一下。
具体做法就是,在PLC开辟一块存储控件。比如西门子PLC中设置一个DB数据块。然后把一些变量和变量绑定就可以了。比如说,温度高报警值:DB1.DBD0,温度低报警值:DB1.DBD4。然后在PLC里面给两个值设置一个初始值,如温度高报警DB1.DBD0 初始值70,温度低报警DB1.DBD4初始值0,然后变量绑定就可以了。
需要更改值的时候,在上位机更改就可以了。比如要把温度低报警改为10度。只要更改这个控件值就可以了,PLC自动记录此值。下次开机时,由于控件和PLC通讯一般都是先读后写的,上位机会自动读取PLC存储的值,这样就起到了数据记录的作用。
但这种用法不可靠,在一些不是很重要的场合可以偷懒用一下,但经常会遇到数据丢失的情况。
3. 其余:还用很多记录的方式。楼主经常在QQ群里面看到,还有用Excel记录参数的。还有用别的文本方式记录的。但都不是很理想。
今天给大家推荐一种,用来记录配置参数的文本ini文档。楼主目前每一个项目都会写一个INI文档,非常方便。
4. 什么是ini文件
ini文件又称配置文件,它是一种以特定方式组织操作系统或软件配置信息的文本文件。它最早出现于Windows操作系统中,用于统管Windows的各项配置,后来,其理念被广泛使用到其它操作系统和各种应用软件中,常用于保存程序的一些配置参数。
这种配置文件的文件扩展名多为INI,故得此名。INI是英文“初始化”(initialization)的缩写。正如该术语所表示的,INI文件常被用来对操作系统或特定程序初始化或进行参数设置。由于ini配置文件使用方便简单直观,越来越多的编程语言都支持了ini文件的生成和读取。
Q:长什么样?
是不是很熟系,咋们在装一些程序的时候,经常碰到。一方面就长上面这样。另一方面扩展名为ini。第三,在windos系统下可以用txt直接打开,不需要额外的软件。
Q:怎么创建?
创建一个txt,改名称,改扩展名为INI就可以了。
如下图所示:当更改完扩展名后,图标也会相应的改变。
5. INI文档怎么读写?存储规则?
ini文件由段(Section)、键(Key)和键值(Value)三部分组成。
每个ini文件由一个或多个段组成,由“[ ]”内部的字符串来区别不同的段,同一个ini文件中的段名必须唯一。702注:这个很重要,必须唯一,程序才能检索,避免张冠李戴。
每个段由一系列由“=”隔开的一对键和键值组成,键名代表配置选项,值代表该选项的设置,同一个段内键名必须唯一,但不同段之间的键名并无关系。
等号左边的字符串为键名,右边的字符串为键值,在LabVIEW中,键值的类型可以是布尔、I32、U32、双精度浮点数、字符串和路径等。
初学者碰到段,键,键值这几个名次就晕,先别晕,举个例子就知道。
比如说,上面举过的例子——报警值的设定。
有液位高,液位低,液位极低,温度高,温度低,温度极高。
配置文档中参数很多,需要分组管理好一些,起个名子吧,就叫报警值。用[]括起来。
[报警值] [段]
液位低 = 10 键 = 键值
液位高 = 60
···
这就可以了。就这么简单。
6. LabVIEW中怎么读写?难不难?实例看
Q:难不难?
不难。很简单。
以楼主的习惯,先用起来,后介绍规则。
先创建一个VI,起名为配置文档(INI文档应用)。
放6个数值控件,分别命名为液位高,位移低等,分别设置初始值,此方法在前面介绍过,没认真看的朋友去前面看看。放两个按钮,一个命名为参数修改。另一个命名为恢复默认值。
编程思路:1.以上参数为默认值,或称为出厂设置。
2.需要修改参数时,修改参数,并点击参数修改,系统询问:是否确认修改,确认后,跳出对话框,参数修改完成。
3.需要恢复出厂设置时,点击恢复出厂设置按钮,并弹出对话框,恢复出厂设置完成。
为了便与介绍,先写一个值:段名:液位报警 键:液位高 键值:液位报警值。程序如下图所示。
功能,点击参数修改 >>跳出对话框“确认参数修改?”,点击确认,把液位高的新值存起来。然后对话框:参数配置完成!。
程序运行正常,来看一看配置文档。
自动新建了一个配置文档.ini文件。
双击打开:如图所示,段[液位报警],液位高 = 600.00 702注:600.00这个精度可以设置,不设置时,默认为6位。
如图所示,写的程序就这么简单:
总结起来就三条:1.打开 2.写 3.关闭。
Q:写完以后,什么时候读?
当然是,程序打开的时候就让读。程序一打开,自动把液位高的值,读取到控件值,下面写一个读的程序。
为了便与读者观察,我们先在《配置文档》中把液位高报警值修改为 800,然后,跳出对话框“读取成功”。打开程序,观察是否读取成功。
打开程序,看看。
程序的读写就是这么简单。
楼主喜欢先介绍实例,再介绍用法。一般实例介绍万,用法也就大差不差的明白了。
下面介绍INI 文档的几个VI和主要事项。
7. INI 子VI介绍
Q:在哪?
702注:在存储,写入时,把“必要时创建文件(T)”设置为T,找不到此文档时,直接创建一个即可。
楼主的做法一般是:先事先创建一个,避免读写时出错。创建的方法,前面说了。
Q: 需不需要单独装工具包?
不需要,在安装LV运行环境时,都会自带INI 子VI。
8. INI OPENG函数
LV自带的INI子VI很好用,理解起来也很简单。但是,每一个读,或每一个写,只能读写一个值。当有很多值要读写的时候就比较麻烦了,如一个段里面既有数字量,又有布尔量等时,就需要一个一个的读,一个一个的写。
下面介绍一中,一次读写的例子。
如图所示,这是openG 中INI文档的读写。还是上面的例子,读写试试。
这里的OPEN和CLOSE就是LV本身提供的节点,其它的分别介绍一下:
Read INI Cluster: 读取簇的配置
Write INI Cluster: 写簇的配置
这两个VI读写INI时,SETION部分就是簇的名称
Read Section Cluster:读取指定SECTION下的簇配置
Write Setion Cluster:写入指定SECTION的簇配置
这两个VI同上面的类似,但是可以指定SETION名称,这样可以在同一SECTION下,写入或者读取多个CLUSTER配置。
Read Panel: 读取指定的控件面板(恢复上次值)
Write Panel:写入指定的VI的控制面板当前值到配置文件(供下次调用)
这两个VI的输入是VI参考,既可以写入或者读本身,又可以在一个VI中来操作另一个VI
READ KEY:可以读取特定SECTION下特定CLUSTER中的元素的键值
WRITE KEY:写入特定SECTION下特定CLUSTER中的元素的键值
从上面的介绍就可知,为什么简单,一次就可以读、写很多值,现在明白了,就是用簇。
从上图可知:1.簇名 就是段名 。2.簇内的控件标签名为键名。 3.控件值为键值。
下面写读取程序。
还是老办法,改几个值,然后验证一下。每个值加50,看运行后的控件值。
运行成功。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
-
LabVIEW
+关注
关注
1971文章
3654浏览量
323517
发布评论请先 登录
相关推荐
评论