labview编程技巧-----labview与INI文件

发布者:电竞狂人最新更新时间:2015-08-21 来源: eefocus关键字:labview  编程技巧  INI文件 手机看文章 扫描二维码
随时随地手机看文章
在WIN95以前,WINDOWS还没有引入注册表的概念,WINDOWS是利用INI文件来存储计算机相关配置的,在API里,WINDOWS提供了丰富的API函数来操作INI文件,LV里也专门有个子类别封装了这些API函数,使用非常方便。


LV使用INI文件来存储配置,应用非常广泛,生成执行文档后也自动生成一个INI文件。

LV主要在下列情况下使用INI文件:

存储前面板或者前面板特定控件的默认值和当前值

存储本次应用的运行结果供下一次启动是调用

存储硬件配置文件

存储硬件配置是非常重要的,比如一般的板卡都有16个数字输出,外部接继电器来控制外部设备,继电器是比较容易损坏的,而通常16个继电器中是有备用的,如何在不改变软件和硬件的情况下把输出更改到另外的继电器上,这样,只需要简单地改动一下外部接线就可以了那,使用配置文件可以轻松实现。

INI文件结构很简单,装了多操作系统的人都知道,WINDOWS本身有个BOOT.INI

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect



我们看一下LV软件本身也利用了INI文件来保存配置。

[LabVIEW]
server.tcp.port=3363
server.tcp.enabled=TRUE
server.tcp.access="+127.0.0.1"
IsFirstLaunch=False
PaletteHidddenControlCategories_LocalHost="Modern;System;Classic;Control Design & Simulation;.NET & ActiveX;Addons;"
PaletteHidddenFunctionlCategories_LocalHost="Programming;Measurement I/O;Instrument I/O;Vision and Motion;Mathematics;Signal Processing;Data Communication;Connectivity;Control Design & Simulation;SignalExpress;Addons;"
menuSetup="default"
saveFloaterLocations=True
find.viListFlags=4
LastErrorListSize=0,0,379,486
paletteStyle="NamedIcons"
NoAdvice070=",CleanUpWire,FlatSequence"
SaveChanges_ApplyToAll=True
PropPageBounds="398;181;884;636"
RecentFiles.pathList="C:\Program Files\National Instruments\LabVIEW 8.5\examples\DAQmx\Analog In\Measure Voltage.llb\Acq&Graph Voltage-Int Clk.vi;C:\Program Files\National Instruments\LabVIEW 8.5\examples\DAQmx\Analog In\Measure Voltage.llb\Acq&Graph Voltage-Ext Clk-Analog Ref.vi;C:\Documents and Settings\Administrator\Local Settings\Temporary Internet Files\Content.IE5\7M9NS8HF\chart%20right%20to%20left[1].vi;C:\Documents and Settings\Administrator\My Documents\windows_environment_variable_reader_writer\Windows Environment Variable Reader Writer.vi;C:\Documents and Settings\Administrator\My Documents\MDI.llb\Simple MDI Demo.vi;D:\Control 1.ctl;C:\Program Files\National Instruments\LabVIEW 8.5\vi.lib\tree\Tree Sorter.llb\Join.vi;C:\Program Files\National Instruments\LabVIEW 8.5\vi.lib\Utility\notifier.llb\Create Notifier.vi;C:\Program Files\National Instruments\LabVIEW 8.5\vi.lib\Utility\notifier.llb\Wait On Notification.vi;C:\Program Files\National Instruments\LabVIEW 8.5\vi.lib\Utility\inputDevices.llb\Acquire Input Data.vi"
ShowBufferAllocationsArrays=True
ShowBufferAllocationsClusters=True
ShowBufferAllocationsStrings=False
ShowBufferAllocationsPaths=False
ShowBufferAllocationsScalars=False
ShowBufferAllocationsVariants=False
ShowBufferAllocationsOther=False
NewDlgRecentMainTemplates.pathList="C:\Program Files\National Instruments\LabVIEW 8.5\templates\Frameworks\DesignPatterns\ProducerConsumerEvents.vit"
NewDlgBounds="700;480"
NewDlgRecentTemplates.pathList=""
NewDlgLastSelected="8E4D36AD-F776-4C48-97C6-C1D85EFE889F"
NewDlgSmall=False
NewDlgCollapsed="77E350A8-F9AA-43FF-85E2-454279EBB9A7/Frameworks 3F7CF7A8-5E4D-4EDC-AA25-FA4A326988EF 8E4D36AD-F776-4C48-97C6-C1D85EFE889F"
SuperSecretPrivateSpecialStuff=True
colorHistoryItemA=00000BFF
RecentFiles.projectPathList="C:\Documents and Settings\Administrator\My Documents\xcontrol events\xcontrol events\XControl Events Project.lvproj;C:\Program Files\National Instruments\LabVIEW 8.5\examples\general\xcontrols\Dual Mode Thermometer\Simple Dual Mode Thermometer XControl.lvproj;C:\Program Files\National Instruments\LabVIEW 8.5\examples\lvdsc\XControls\Spinner\Spinner.lvproj;C:\Documents and Settings\Administrator\My Documents\Linked_List_Project\Linked List\Linked_List_Project.lvproj;D:\TEST\Untitled Project 1.lvproj;C:\Documents and Settings\Administrator\My Documents\Scripting_Tools_0.16.02\Scripting Tools\Scripting Tools.lvproj;C:\Documents and Settings\Administrator\My Documents\IconEditor_85_V2.2\IconEditor.lvproj;C:\Documents and Settings\Administrator\My Documents\第一名_何凌_公司问题\第一名 何凌 公司问题\Src\VI company.lvproj"
ProjectExplorer.ClassicPosition=143,53,543,415
colorHistoryItemB=009A8574
editRecentPaths="C:\Program Files\National Instruments\LabVIEW 8.5\vi.lib\Utility\sysinfo.llb;C:\Program Files\National Instruments\LabVIEW 8.5\vi.lib\Utility\semaphor.llb;C:\Program Files\National Instruments\LabVIEW 8.5\vi.lib\Utility\miscctls.llb;C:\Program Files\National Instruments\LabVIEW 8.5\vi.lib\Utility\GetType.llb;C:\Program Files\National Instruments\LabVIEW 8.5\vi.lib\Utility\inputDevices.llb;C:\Program Files\National Instruments\LabVIEW 8.5\vi.lib\Utility\notifier.llb;C:\Program Files\National Instruments\LabVIEW 8.5\vi.lib\tree\Tree Sorter.llb"
LLBMgr_ActivePlugins=""
LLBMgr_RecentPath="C:\Documents and Settings\Administrator\My Documents\MDI.llb"
colorHistoryItemC=00FF8242
autoerr=2
colorHistoryItemD=00000FDC
colorHistoryItemE=003100DC
colorHistoryItemF=00FFFFFF
colorHistoryItemG=00FF3D00
colorHistoryItemH=000F00DC
colorHistoryItemI=004AFF42
colorHistoryItemJ=00C88E00
colorHistoryItemK=000025FF
exoticControls=TRUE
NoAdvice080=",ClassBrowser"
SuperPrivateScriptingFeatureVisible=True 
SuperSecretPrivateSpecialStuff=True
superPrivateScriptingFeatureSichtbar=True

FPFont="0" 18
BDFont="0" 18
toolPaletteLoc=494,22,645,100
LVLibraryThemeColor=006699FF[page]

ini文件非常简单,是文本文件,可以用WINDOWS记事本直接打开,组成结构是一个简单的树型结构,说明如下:

[section1]

key1_section1=VALUE
key2_section2=VALUE
key3_section3=VALUE

[section2]
key1_section2=value
key2_section2=value
key3_section2=value


可以看出结构非常简单,每个INI文件又一个或者多个SECTION组成,每个SECTION又一系列键和键值组成,值的类型可以是BOOLEAN ,DOUBLE,I32,U32,STIRNG,PATH等等

LV专门提供了一组节点来处理INI文件:



上排的是操作INI的节点,下排的是读取INI本身信息的节点

操作INI节点包括:打开,读键值,写键值,删除键值,删除分类(SECTION),关闭。
信息节点包括:    取得所有分类中的键名称,取得所有分类名称,判断文件是否是配置文件。

具体操作和其他文件操作类似,打开(注意路径问题)---》读或者写-----》关闭

LV提供的INI节点非常基本,数据类型也是基本的数据类型,我们实际工作更常用的是数组和簇类型,OPENG为我们作好了这些,并且是开放原代码,看看它提供的节点:



这里的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中的元素的键值



看一下a.ini的内容:
关键字:labview  编程技巧  INI文件 引用地址:labview编程技巧-----labview与INI文件

上一篇:labview编程技巧-----chart 如何不连续显示数据
下一篇:labview编程技巧-----xcontrol如何发送用户事件

推荐阅读最新更新时间:2024-03-30 23:03

USB接口多路高速数据采集系统在LABVIEW平台的设计
   引言   在日常的测试测量中,经常使用数据采集卡采集数据。但是很多数据采集卡往往通过PCI总线完成数据的传输,它有诸多弊端,例如操作不便,受限于计算机插槽数量和中断资源,现场信号对计算机安全有威胁,计算机内部的强电磁干扰对被测信号也会造成很大的影响,最耗时最复杂的数据分析却由用户通过第三方软件(如VC,VB等) 在PC机上编写上位机软件来完成,因此用户不得不在这方面花费大量精力。这些问题都遏制了基于PCI总线的数据采集系统的进一步开发和应用,因此迫切需要设计一种更为简便通用的高速数据采集通信系统来完成数据采集以及与计算机的数据交互。   近年来通用串行总线(USB)以即插即用等技术优势得到了广泛的应用,INTEL等公司最
[测试测量]
USB接口多路高速数据采集系统在<font color='red'>LABVIEW</font>平台的设计
labview的深入探索之事件结构中的TIMEOUT进行数据采集合适吗?
最近看到利用事件结构中超时TIMEOUT事件进行数据采集的方法,过去我也过这种方法. 优点:不再需要单独的数据采集循环,使用SHFIT REGISTER就可以在其他事件中共享数据. 但是这种用法是存在一定缺陷的,假如TIMEOUT的设定值是100MS,那么事件结构在100MS内如果没发生事件,则产生一次超时事件,但是如果100MS内有任何其他事件发生时,将不会响应本次的超时事件,如果在100MS内一直有其他事件发生,那么事件结构将永远不会产生超时事件. 看一下测试程序 由于下面的循环每隔10MS触发一次事件,导致根本不会产生TIMEOUT事件. 如果去掉下面的循环,则TIMETOUT事件正常产生,误差是1MS,这也是LV
[测试测量]
<font color='red'>labview</font>的深入探索之事件结构中的TIMEOUT进行数据采集合适吗?
如何从LabVIEW中调用动态链接库DLL
问题: 如何从LabVIEW中调用动态链接库DLL 解答: 要从LabVIEW中调用动态链接库(DLL),你需要首先确定是哪种类型的DLL。 基本上有两种类型的DLL需要考虑:C/C++ DLL 和Microsoft .NET assembly. C/C++ DLL 用C, C++, 或其他编程语言生成(除了 .NET 语言) 比如 Java, Fortran, 或Visual Basic 6.0. .NET DLL 也被称为 .NET assembly 或者就是 assembly . 这个术语的区别在于 .NET DLL 与其他DLL的工作方式不同. .NET DLL使用 Common Language Runtime
[测试测量]
利用LabVIEW和CompactRIO设计研究飞虫的机器人
  挑战:   开发一个灵活的高带宽机器人设备,以便测量和仿真有翼昆虫的飞行方式。   解决方案:   利用NI的LabVIEW软件和CompactRIO硬件制造一个快速、模块化、易于使用的仿生机器人平台,它涉及各种工业协议和实时闭环激励信号生成。   苍蝇能够高速追逐,并精确地降落在盘子的边缘,这其中的机动性令人非常感兴趣。我们可以利用苍蝇作为模型系统研究神经信息处理、空气动力学和遗传学,此外,它们还可以快速、精确地使用它们的生物传感器、控制器和执行机构。人们对它们这样的能力很感兴趣但是难以进行研究。测量和激励装置必须具有高带宽、低延迟,并拥有灵活的界面。同时,易用性和模块化特性也是跨学科和合作研究的关键。   我们利
[测试测量]
利用<font color='red'>LabVIEW</font>和CompactRIO设计研究飞虫的机器人
基于LabVIEW的胎心率(FHR)检测系统
胎心率(FHR)检测是一种用于胎儿出生前判断胎儿健康状况,并帮助识别胎儿缺氧或受压迫等潜在危险的主要方法。早期检测的目的是为了降低胎儿发病率和死亡率。   目前,胎心率探测最常用的方式是多普勒超声波,标准的产前胎儿健康测试为胎儿无负荷试验(NST)。这些测试通常在有连续波仪器的医院内完成。   尽管目前的超声波胎心率检测仪有了很大的改进,价格不断降低,体积也更加小巧,我们仍然需要精确的传感器校准和一定的专业知识,从而正确地操作检测仪。此外,此类仪器对移动相当敏感,而且胎儿长期暴露在超声波下可能导致的安全性问题目前还未有定论。因此,现在对检测仪的使用还仅限于进行短时间测试。   另外一种测量胎心率的方法是胎儿心电图(FEC
[工业控制]
基于<font color='red'>LabVIEW</font>的胎心率(FHR)检测系统
基于LabVIEW平台的任意波形发生器计算机控制
基于LabVIEW平台的任意波形发生器计算机控制 摘要:本文介绍了运用GPIB接口和虚拟仪器开发平台LabVIEW设计开发的AFG320任意波形发生器的计算机控制软件,实现了AFG320的计算机控制,扩展了AFG320的功能。 关键词:任意波形发生器 GPIB LabVIEW 中图分类号:TP123 文献标识码:B 1.引言 飞速发展的现代科学技术对测试测量提出越来越高的要求,主要表现在测试任务多、精度高、速度快等方面,例如汽车驾驶室模拟仿真测试,传统仪器手工操作、单台使用的工作方式已经不能满足其需求,有效的解决方法就是组建自动测试系统。为了将目前广泛使用的台式任意波形发生器仪器集成到自动测试系统中,我们为泰克公司的A
[模拟电子]
基于<font color='red'>LabVIEW</font>平台的任意波形发生器计算机控制
为什么要使用LabVIEW
[测试测量]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新测试测量文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved