圖片:
圖片:
圖片:
圖片:
寫在最前:今日特殊,銘記歷史,吾輩自強(qiáng)。
今天受項(xiàng)目啟發(fā)來做一個(gè)觸屏查表功能。背景是一個(gè)異形容器,我們很容易測(cè)得它的液位信號(hào),但是不容易及時(shí)得到液體的體積信息。當(dāng)然它的對(duì)應(yīng)關(guān)系我們也是能通過試驗(yàn)獲得的,也可以由設(shè)計(jì)部門給出對(duì)應(yīng)表。
本文重點(diǎn)關(guān)注由一個(gè)數(shù)據(jù)查表獲得另一個(gè)數(shù)據(jù)的方法,免去了PLC中復(fù)雜的運(yùn)算。因?yàn)閷?duì)應(yīng)關(guān)系可能成百上千條,且無規(guī)律。老規(guī)矩,先看上面效果圖。
接下來跟隨小編的腳步,開搞嘍~~
第一步,準(zhǔn)備兩個(gè)浮點(diǎn)型變量。一個(gè)作為原始數(shù)據(jù)(類比液位),另一個(gè)作為查表數(shù)據(jù)(類比體積)。其它變量是方便監(jiān)控查表過程的,輔助變量,可有可無。
第二步,做一個(gè)畫面,把剛才的變量顯示出來。注意第一個(gè)浮點(diǎn)數(shù)要可輸入的,其它顯示即可。在下載到真實(shí)觸屏前,需要加上導(dǎo)入導(dǎo)出按鈕,方便把處理好的對(duì)應(yīng)表放到觸屏里。應(yīng)用文件復(fù)制腳本,詳細(xì)請(qǐng)?jiān)谲浖䞍?nèi)查看幫助文件,不多介紹了。
第三步,也是最重要的一步,處理數(shù)據(jù)對(duì)應(yīng)表。它是要導(dǎo)入到觸屏里并被我們后續(xù)腳本查閱的。詳見第一張示例圖里右側(cè)的處理后數(shù)據(jù),它的有效數(shù)據(jù)位是5位。例如2.963/11.26/101.5。請(qǐng)自行理解一下。再新建一個(gè)文本文檔,格式編碼是UTF8,最后把數(shù)據(jù)列(注意只粘貼有效數(shù)據(jù))復(fù)制到文本文檔中保存即可。這樣文本文檔中每行數(shù)據(jù)由8個(gè)字節(jié)組成,5位有效數(shù)據(jù)+空格+2個(gè)字節(jié)換行符。當(dāng)然根據(jù)您數(shù)據(jù)的長短可任意組合長度,但是數(shù)據(jù)長度要統(tǒng)一,方便后續(xù)腳本查閱。
第四步,建立查表邏輯和數(shù)據(jù)處理。核心腳本如圖。我們首先對(duì)小于查表第一行的數(shù)據(jù)賦值0。之后判斷數(shù)據(jù)正常后,取原數(shù)據(jù)的整數(shù)部分進(jìn)行判斷,例如96.3我們就查閱第96行起的8個(gè)有效字符。它的查詢起始地址偏移量就是96*8-8=760。當(dāng)然要注意format函數(shù)有四舍五入的屬性,例如96.7取整就是97。所以查詢地址偏移量要做調(diào)整。最后思考表格分辨率的問題,剛才舉例的數(shù)據(jù)都不在表格的整行上,那我們就直接查出相鄰兩行數(shù)據(jù),中間線性轉(zhuǎn)換一下就行。這樣就保證了數(shù)據(jù)的連續(xù)性。
到這里,所有知識(shí)點(diǎn)都已經(jīng)講解完畢。歡迎作為同行的看官們多多參與測(cè)試并討論。
寫在最后:如果您在看完圖文講解后還無法測(cè)試成功或者確實(shí)有類似功能需求的,請(qǐng)移步同名公眾號(hào)文末處贊賞小編一杯奶茶,私聊小編獲得原測(cè)試文件。