前 言:
實(shí)時(shí)數(shù)據(jù)庫(kù)在HMI應(yīng)用中必不可少,傳統(tǒng)的Intouch,組態(tài)王等組態(tài)軟件早期都是利用本機(jī)的二進(jìn)制文件來(lái)做實(shí)時(shí)數(shù)據(jù)庫(kù)存儲(chǔ)。今天我將帶領(lǐng)大家利用2行代碼完成一個(gè)最簡(jiǎn)單的實(shí)時(shí)數(shù)據(jù)庫(kù)。讓大家了解實(shí)時(shí)數(shù)據(jù)庫(kù)的基本運(yùn)行機(jī)制和原理。在一臺(tái)windows 10的機(jī)器上,創(chuàng)建兩個(gè)bat(批處理)文件,一個(gè)名為set-db.bat,另外一個(gè)名為get-db.bat。這兩個(gè)批處理文件,顧名思義一個(gè)是數(shù)據(jù)庫(kù)插入數(shù)據(jù),另外一個(gè)是數(shù)據(jù)庫(kù)查詢數(shù)據(jù)。見(jiàn)下圖:
接下來(lái)跟我一起寫(xiě)兩行最簡(jiǎn)單的代碼,實(shí)現(xiàn)這個(gè)世界上最簡(jiǎn)單的實(shí)時(shí)數(shù)據(jù)庫(kù)。
01首先用記事本打開(kāi)set-db.bat文件,寫(xiě)入如下的代碼:
這一行代碼為實(shí)時(shí)數(shù)據(jù)庫(kù)的插入數(shù)據(jù)。
注釋:echo 為文本插入指令,可以看到就是把當(dāng)前日期和時(shí)間按照特定格式化后加上/帶上時(shí)間,%1和%2為外部bat運(yùn)行時(shí)候的參數(shù)1和參數(shù)2,然后把這組數(shù)據(jù)插入到db.txt文件,而這個(gè)db.txt就是我們今天的主角,最簡(jiǎn)單的實(shí)時(shí)數(shù)據(jù)庫(kù),而這個(gè)db.txt如果程序發(fā)現(xiàn)沒(méi)有的話會(huì)自動(dòng)建立,同時(shí)這個(gè)db.txt實(shí)時(shí)數(shù)據(jù)庫(kù)文件會(huì)在同一級(jí)目錄中。
02然后我們?cè)俅蜷_(kāi)get-db.bat文件,寫(xiě)入如下代碼:
這一行代碼為實(shí)時(shí)數(shù)據(jù)庫(kù)查詢數(shù)據(jù)
注釋:findstr是dos下查詢命令,其中/i為不區(qū)分大小寫(xiě),而%2為參數(shù)2,%1為參數(shù)1,db.txt則是我們這個(gè)實(shí)時(shí)數(shù)據(jù)庫(kù)。
03接下來(lái),就讓我們看看如何使用這兩個(gè)bat文件測(cè)試我們最簡(jiǎn)單實(shí)時(shí)數(shù)據(jù)庫(kù)這2個(gè)bat文件使用方法:Set-db.bat 空格 (參數(shù)1) (參數(shù)2)參數(shù)1(必須)為數(shù)據(jù)變量的名字,例如 tag1 或者 FIT1001,不能以數(shù)字開(kāi)頭并且不能包含空格和特殊字符。參數(shù)2(必須)為這個(gè)變量的數(shù)值,例如整型 100,或者浮點(diǎn)型98.5,或者文字 劍指工控,是以文本形式存儲(chǔ)。以上兩個(gè)參數(shù)為必須,如果忽略任何一個(gè)參數(shù),實(shí)時(shí)數(shù)據(jù)庫(kù)的參數(shù)列將插入空數(shù)值。
這個(gè)時(shí)候打開(kāi)db.txt可以看到我們剛剛插入的那些數(shù)據(jù)和變量。
Get-db.bat 空格(參數(shù)1)(參數(shù)2)參數(shù)1(必須)為變量名字,例如tag1或者FIT1001,必須是實(shí)時(shí)數(shù)據(jù)庫(kù)中存在的變量名參數(shù)2(可選)為日期和時(shí)間,這個(gè)屬于模糊參數(shù),從日期到時(shí)間。例如2022-02-15 或者 2022-02-15/09 或者2022-02-15/09:30 或者 2022-02-15/09:30:05
注釋:如果查詢某一天數(shù)據(jù),可以寫(xiě)成2022-02-15,如果查詢某一小時(shí)數(shù)據(jù)可以寫(xiě)成2022-02-15/09
如果想要看實(shí)時(shí)數(shù)據(jù)庫(kù)全部變量和數(shù)據(jù),可以把參數(shù)1寫(xiě)為* 而參數(shù)2為空
至此我?guī)Т蠹彝ㄟ^(guò)2行代碼完成了一個(gè)最簡(jiǎn)單實(shí)時(shí)數(shù)據(jù)庫(kù),如果大家對(duì)此有什么需要討論歡迎大家加入劍指工控技術(shù)群討論,如果大家對(duì)這個(gè)代碼比較感興趣,可以入群后找群管理員獲取。