0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

手把手LabVIEW 项目实践 2020-08-11 17:10 次阅读

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
    +关注

    关注

    1917

    文章

    3619

    浏览量

    316945
收藏 人收藏

    评论

    相关推荐

    labview文档教程资料(四)

    电子发烧友网站提供《labview文档教程资料(四).zip》资料免费下载
    发表于 04-23 09:29 0次下载

    labview文档教程资料(三)

    电子发烧友网站提供《labview文档教程资料(三).zip》资料免费下载
    发表于 04-23 09:29 0次下载

    labview文档教程资料(二)

    电子发烧友网站提供《labview文档教程资料(二).zip》资料免费下载
    发表于 04-23 09:28 0次下载

    labview文档教程资料(一)

    电子发烧友网站提供《labview文档教程资料(一).zip》资料免费下载
    发表于 04-23 09:27 0次下载

    能够生成java文档注释的命令

    生成Java文档注释的命令是通过使用Java的自带工具Javadoc来实现的。Javadoc是一个能够从源代码中提取注释并生成文档的工具。下面是使用Javadoc生成Java文档注释的命令
    的头像 发表于 11-29 14:12 304次阅读

    java怎么注释整个文档

    java中可以使用特殊的注释格式来注释整个文档,这种格式被称为JavaDoc注释。JavaDoc注释可以用于生成HTML格式的文档,包含类、方法、字段、参数等的详细说明。下面是注释整个文档的详细步骤
    的头像 发表于 11-28 17:14 400次阅读

    NANO2用户文档

    电子发烧友网站提供《NANO2用户文档.pdf》资料免费下载
    发表于 11-16 10:44 0次下载
    NANO2用户<b class='flag-5'>文档</b>

    如何使用Keil生成汇编文档

    如何使用Keil IDE环境中生成汇编文档使用Keil IDE环境中生成汇编文档
    发表于 10-19 07:31

    如何搭建 Swagger API文档平台

    , TurnAPI , Swagger 。今天我就来教大家如何使用 Swagger 搭建 API 文档,并且配置权限使用。毕竟开发文档还是内容使用的为好,万一上线到生产环境,没有关swagger 又没有
    的头像 发表于 10-09 15:37 235次阅读
    如何搭建 Swagger API<b class='flag-5'>文档</b>平台

    PetaLinux工具文档

    电子发烧友网站提供《PetaLinux工具文档.pdf》资料免费下载
    发表于 09-15 10:43 0次下载
    PetaLinux工具<b class='flag-5'>文档</b>

    金山文档结合龙芯3C5000/3D5000系列服务器满足文档处理场景需求

    近日,金山文档中心与龙架构成功适配。金山文档中心结合龙芯3C5000/3D5000系列服务器,为用户提供强大便捷的文档存储管理服务、安全可靠的文档权限管控服务,以及高效协同的在线
    的头像 发表于 09-12 11:26 660次阅读

    Arm PCI配置空间访问固件接口1.0BET1平台设计文档

    文档为调用方(如操作系统或系统管理程序)定义了访问PCI配置空间的标准固件接口。 该接口可用作增强配置访问机制(ECAM)硬件机制的替代方案,该机制在PCIe规范[1]中进行了定义。 第2节中描述的接口使调用者能够: •访问P
    发表于 08-11 07:55

    基于JAVA+SQL电子通讯录带系统托盘(源代码及配置文档)

    基于JAVA+SQL电子通讯录带系统托盘(源代码及配置文档)
    发表于 06-09 16:07 0次下载

    ChatGPT API文档

    准备调用ChatGPT接口,过了一遍官方接口文档,由于没有学过AI相关知识,有些参数和术语还是不 太了解,有些单词使用很生僻的意思,翻译的很生硬,先大致翻译一遍,后面再看下手册理解下,回 过头
    发表于 06-06 17:38 0次下载

    缺少VGlite字体渲染api文档,求分享

    我试图使用 vglite api 在 MIMXRT1166/1176 上使用 verisilicon gpu 渲染图形,并且特别缺乏关于此的文档。 我能够很好地初始化 GPU 并渲染矢量和光栅对象
    发表于 04-24 06:42