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