配置文档(ini文档)的应用

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,看运行后的控件值。
运行成功。

《2019物联网行业100强》榜单新鲜出炉,SIMBOSS荣登100强
室外光缆冷接技术存在明显缺陷
STM32U5系列TIMER+DMA+DAC应用演示
阿甘精神加持 华米科技8月27日召开年度新品发布会
OpenHarmony C++公共基础类库应用案例:Thread
配置文档(ini文档)的应用
简单介绍一下什么是微波通讯?
比特币早期历史简介
美政府“激励”,中国推进本国芯片产业的发展
库存与价格调整完毕,锂电产业渐入佳境
通信基站是否会对信号屏蔽器的效果造成影响
外资车企的未来布局:一场针对中国电池企业的争夺战
磁电式传感器结构示意图(转速转矩传感器结构原理图)
PCB设计领域的DRC和MRC之间有什么区别?
氮化镓用途和性质
中电科南京外延材料产业基地投产,一期投资19.3亿元
三星8个系列电视机通过TÜV莱茵"产品碳减排"核查
裸视式3D显示技术详解
芯片上车之如何跑好质量管控“马拉松”
RA2L1上手优化BSP占用