LabVIEW 項目實踐篇
配置文檔(ini文檔)的應(yīng)用
(V1.0)
LabVIEW 項目實踐篇:配置文檔(ini文檔)的應(yīng)用
(V1.0)
1. 項目工況:
在樓主做項目的時候,經(jīng)常會遇到這樣一種工況,就是需要把一些參數(shù)記下來,下次打開軟件的時候,還是這個狀態(tài)。比如說,樓主做一些試驗臺的時候,需要做一些報警。例如溫度高報警,溫度低報警,液位高報警,液位低報警等,就需要把各個報警值計下來。再比如說,要做一些傳感器的標(biāo)定,需要把傳感器的標(biāo)定參數(shù)記下來。在試驗元件的時候,需要把一些常用參數(shù)記下來等等。下面談一談樓主樓主用過的幾種方法。
2. 實現(xiàn)方案:
1.當(dāng)前值設(shè)置為默認(rèn)值:用過Labview的同學(xué),最先想到的應(yīng)該就是 LV自帶的默認(rèn)值功能了。在一下工況下,默認(rèn)值確實是個很方便的功能。這個功能,就相當(dāng)于咋們常說的缺省值。
舉個例子:一個數(shù)字控件,比如樓主最常用的電機(jī)轉(zhuǎn)速。在項目中常用到變頻器,用一個控件控制變頻器的轉(zhuǎn)速。
眾所周知,電機(jī)轉(zhuǎn)速不能太低。當(dāng)不設(shè)置 默認(rèn)值的時候,LV數(shù)值控件默認(rèn)值為0 ,所以這時候,就需要給 控件來個默認(rèn)值,當(dāng)程序剛打開的時候,讓電機(jī)轉(zhuǎn)速設(shè)置為400/min。
設(shè)置如下:
當(dāng)設(shè)置完成時,程序打包以后,每次程序打開以后,此控件的默認(rèn)值就是400。
這種用法樓主還經(jīng)常用在一下缺省值的設(shè)定上。比如說,樓主經(jīng)常要做一些報表,報表要填寫 姓名,日期等。通常會把最常用的一個狀態(tài)設(shè)置為缺省值,方便用戶來填寫。再比如說在填一些電子表格的時候,國際:中國,名族:漢。你來一個缺省值,默認(rèn)值就會很方便。如果對方部是中國,不是漢族,只要一改就可以了。
下面舉例:一批被試閥 型號為TT-112543-XXX,前面的值都一樣,只有XXX需要改變。這時候,就可以把TT-112543-001設(shè)置為缺省值,只需要改變后幾位就可以了。用戶也不容易輸錯。
這種辦法在以上這種,不經(jīng)常變動的工況下適用。一旦默認(rèn)值確定下來,再就不好改。
2.用PLC記錄值:這是一種偷懶的方法,在一定場合,可以用一下,但弊端很大。
樓主經(jīng)常做一些測控項目,最常用到的硬件配置就是工控機(jī)+板卡+PLC這樣的上下位機(jī)結(jié)構(gòu)。在一些時候工控下,可以用一下。
具體做法就是,在PLC開辟一塊存儲控件。比如西門子PLC中設(shè)置一個DB數(shù)據(jù)塊。然后把一些變量和變量綁定就可以了。比如說,溫度高報警值:DB1.DBD0,溫度低報警值:DB1.DBD4。然后在PLC里面給兩個值設(shè)置一個初始值,如溫度高報警DB1.DBD0 初始值70,溫度低報警DB1.DBD4初始值0,然后變量綁定就可以了。
需要更改值的時候,在上位機(jī)更改就可以了。比如要把溫度低報警改為10度。只要更改這個控件值就可以了,PLC自動記錄此值。下次開機(jī)時,由于控件和PLC通訊一般都是先讀后寫的,上位機(jī)會自動讀取PLC存儲的值,這樣就起到了數(shù)據(jù)記錄的作用。
但這種用法不可靠,在一些不是很重要的場合可以偷懶用一下,但經(jīng)常會遇到數(shù)據(jù)丟失的情況。
3. 其余:還用很多記錄的方式。樓主經(jīng)常在QQ群里面看到,還有用Excel記錄參數(shù)的。還有用別的文本方式記錄的。但都不是很理想。
今天給大家推薦一種,用來記錄配置參數(shù)的文本ini文檔。樓主目前每一個項目都會寫一個INI文檔,非常方便。
4. 什么是ini文件
ini文件又稱配置文件,它是一種以特定方式組織操作系統(tǒng)或軟件配置信息的文本文件。它最早出現(xiàn)于Windows操作系統(tǒng)中,用于統(tǒng)管Windows的各項配置,后來,其理念被廣泛使用到其它操作系統(tǒng)和各種應(yīng)用軟件中,常用于保存程序的一些配置參數(shù)。
這種配置文件的文件擴(kuò)展名多為INI,故得此名。INI是英文“初始化”(initialization)的縮寫。正如該術(shù)語所表示的,INI文件常被用來對操作系統(tǒng)或特定程序初始化或進(jìn)行參數(shù)設(shè)置。由于ini配置文件使用方便簡單直觀,越來越多的編程語言都支持了ini文件的生成和讀取。
Q:長什么樣?
是不是很熟系,咋們在裝一些程序的時候,經(jīng)常碰到。一方面就長上面這樣。另一方面擴(kuò)展名為ini。第三,在windos系統(tǒng)下可以用txt直接打開,不需要額外的軟件。
Q:怎么創(chuàng)建?
創(chuàng)建一個txt,改名稱,改擴(kuò)展名為INI就可以了。
如下圖所示:當(dāng)更改完擴(kuò)展名后,圖標(biāo)也會相應(yīng)的改變。
5. INI文檔怎么讀寫?存儲規(guī)則?
ini文件由段(Section)、鍵(Key)和鍵值(Value)三部分組成。
每個ini文件由一個或多個段組成,由“[ ]”內(nèi)部的字符串來區(qū)別不同的段,同一個ini文件中的段名必須唯一。702注:這個很重要,必須唯一,程序才能檢索,避免張冠李戴。
每個段由一系列由“=”隔開的一對鍵和鍵值組成,鍵名代表配置選項,值代表該選項的設(shè)置,同一個段內(nèi)鍵名必須唯一,但不同段之間的鍵名并無關(guān)系。
等號左邊的字符串為鍵名,右邊的字符串為鍵值,在LabVIEW中,鍵值的類型可以是布爾、I32、U32、雙精度浮點數(shù)、字符串和路徑等。
初學(xué)者碰到段,鍵,鍵值這幾個名次就暈,先別暈,舉個例子就知道。
比如說,上面舉過的例子——報警值的設(shè)定。
有液位高,液位低,液位極低,溫度高,溫度低,溫度極高。
配置文檔中參數(shù)很多,需要分組管理好一些,起個名子吧,就叫報警值。用[]括起來。
[報警值] [段]
液位低 = 10 鍵 = 鍵值
液位高 = 60
···
這就可以了。就這么簡單。
6. LabVIEW中怎么讀寫?難不難?實例看
Q:難不難?
不難。很簡單。
以樓主的習(xí)慣,先用起來,后介紹規(guī)則。
先創(chuàng)建一個VI,起名為配置文檔(INI文檔應(yīng)用)。
放6個數(shù)值控件,分別命名為液位高,位移低等,分別設(shè)置初始值,此方法在前面介紹過,沒認(rèn)真看的朋友去前面看看。放兩個按鈕,一個命名為參數(shù)修改。另一個命名為恢復(fù)默認(rèn)值。
編程思路:1.以上參數(shù)為默認(rèn)值,或稱為出廠設(shè)置。
2.需要修改參數(shù)時,修改參數(shù),并點擊參數(shù)修改,系統(tǒng)詢問:是否確認(rèn)修改,確認(rèn)后,跳出對話框,參數(shù)修改完成。
3.需要恢復(fù)出廠設(shè)置時,點擊恢復(fù)出廠設(shè)置按鈕,并彈出對話框,恢復(fù)出廠設(shè)置完成。
為了便與介紹,先寫一個值:段名:液位報警 鍵:液位高 鍵值:液位報警值。程序如下圖所示。
功能,點擊參數(shù)修改 >>跳出對話框“確認(rèn)參數(shù)修改?”,點擊確認(rèn),把液位高的新值存起來。然后對話框:參數(shù)配置完成!。
程序運(yùn)行正常,來看一看配置文檔。
自動新建了一個配置文檔.ini文件。
雙擊打開:如圖所示,段[液位報警],液位高 = 600.00 702注:600.00這個精度可以設(shè)置,不設(shè)置時,默認(rèn)為6位。
如圖所示,寫的程序就這么簡單:
總結(jié)起來就三條:1.打開 2.寫 3.關(guān)閉。
Q:寫完以后,什么時候讀?
當(dāng)然是,程序打開的時候就讓讀。程序一打開,自動把液位高的值,讀取到控件值,下面寫一個讀的程序。
為了便與讀者觀察,我們先在《配置文檔》中把液位高報警值修改為 800,然后,跳出對話框“讀取成功”。打開程序,觀察是否讀取成功。
打開程序,看看。
程序的讀寫就是這么簡單。
樓主喜歡先介紹實例,再介紹用法。一般實例介紹萬,用法也就大差不差的明白了。
下面介紹INI 文檔的幾個VI和主要事項。
7. INI 子VI介紹
Q:在哪?
702注:在存儲,寫入時,把“必要時創(chuàng)建文件(T)”設(shè)置為T,找不到此文檔時,直接創(chuàng)建一個即可。
樓主的做法一般是:先事先創(chuàng)建一個,避免讀寫時出錯。創(chuàng)建的方法,前面說了。
Q: 需不需要單獨裝工具包?
不需要,在安裝LV運(yùn)行環(huán)境時,都會自帶INI 子VI。
8. INI OPENG函數(shù)
LV自帶的INI子VI很好用,理解起來也很簡單。但是,每一個讀,或每一個寫,只能讀寫一個值。當(dāng)有很多值要讀寫的時候就比較麻煩了,如一個段里面既有數(shù)字量,又有布爾量等時,就需要一個一個的讀,一個一個的寫。
下面介紹一中,一次讀寫的例子。
如圖所示,這是openG 中INI文檔的讀寫。還是上面的例子,讀寫試試。
這里的OPEN和CLOSE就是LV本身提供的節(jié)點,其它的分別介紹一下:
Read INI Cluster: 讀取簇的配置
Write INI Cluster: 寫簇的配置
這兩個VI讀寫INI時,SETION部分就是簇的名稱
Read Section Cluster:讀取指定SECTION下的簇配置
Write Setion Cluster:寫入指定SECTION的簇配置
這兩個VI同上面的類似,但是可以指定SETION名稱,這樣可以在同一SECTION下,寫入或者讀取多個CLUSTER配置。
Read Panel: 讀取指定的控件面板(恢復(fù)上次值)
Write Panel:寫入指定的VI的控制面板當(dāng)前值到配置文件(供下次調(diào)用)
這兩個VI的輸入是VI參考,既可以寫入或者讀本身,又可以在一個VI中來操作另一個VI
READ KEY:可以讀取特定SECTION下特定CLUSTER中的元素的鍵值
WRITE KEY:寫入特定SECTION下特定CLUSTER中的元素的鍵值
從上面的介紹就可知,為什么簡單,一次就可以讀、寫很多值,現(xiàn)在明白了,就是用簇。
從上圖可知:1.簇名 就是段名 。2.簇內(nèi)的控件標(biāo)簽名為鍵名。 3.控件值為鍵值。
下面寫讀取程序。
還是老辦法,改幾個值,然后驗證一下。每個值加50,看運(yùn)行后的控件值。
運(yùn)行成功。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
-
LabVIEW
+關(guān)注
關(guān)注
1961文章
3651瀏覽量
322076
發(fā)布評論請先 登錄
相關(guān)推薦
評論