黃 莉,李晨韻
(上海市計(jì)量測試技術(shù)研究院,上海 201203)
在對壓力傳感器及壓力儀表的采集測試中,不同激勵(lì)方式下,傳感器響應(yīng)特性曲線各不相同。為了更好地模擬和測試出壓力儀表的計(jì)量特性,應(yīng)用數(shù)學(xué)信號處理技術(shù)將壓力激勵(lì)和壓力響應(yīng)信號進(jìn)行數(shù)字化處理,以更好地實(shí)現(xiàn)壓力傳感器及相關(guān)儀表的采集測試[1,2]。
信號與信息處理時(shí)利用計(jì)算機(jī)或?qū)S锰幚碓O(shè)備,以數(shù)值計(jì)算的方法對信息進(jìn)行變換、分析、綜合、濾波、估計(jì)、識別等加工處理,以達(dá)到提取信息和便于利用的目的。由于數(shù)字信號處理技術(shù)具有精度高、抗干擾性強(qiáng)、易于集成等優(yōu)點(diǎn),因而20多年來在語音、圖像、通信、雷達(dá)、聲吶、自動控制、地震勘探、生物醫(yī)學(xué)、遙感測控、振動工程等領(lǐng)域得到了廣泛的應(yīng)用。這里是將數(shù)學(xué)信號處理技術(shù)應(yīng)用在壓力采集測試中[3]。
均勻分布隨機(jī)數(shù)、正態(tài)分布隨機(jī)數(shù)、指數(shù)分布隨機(jī)數(shù)、拉普拉斯分布隨機(jī)數(shù)、瑞利分布隨機(jī)數(shù)、對數(shù)正態(tài)分布隨機(jī)數(shù)、柯西分布隨機(jī)數(shù)、韋伯分布隨機(jī)數(shù)、愛爾朗分布隨機(jī)數(shù)、貝努里分布隨機(jī)數(shù)、貝努里高斯分布隨機(jī)數(shù)、二項(xiàng)式分布隨機(jī)數(shù)、泊松分布隨機(jī)數(shù)。
均勻分布的概率密度函數(shù)為:
正態(tài)分布的概率密度函數(shù)為:
其中,μ是均值;σ2是方差。正態(tài)分布也稱為高斯分布。類似上述兩種隨機(jī)函數(shù),將所有的隨機(jī)數(shù)函數(shù)進(jìn)行組合并進(jìn)行曲線顯示,得到圖1。
圖1 多種隨機(jī)函數(shù)的曲線接口圖Fig.1 Curve interface diagram of various random functions
曲線/波形控件是串口屏諸多功能控件里面的其中一個(gè),用于在串口屏上顯示波形或者曲線。在USART HMI軟件左側(cè)工具箱里面,該控件涉及到指令為add指令、cle指令、addt指令。曲線/波形控件只能在當(dāng)前頁面添加數(shù)據(jù)點(diǎn)。例如,命令randset 0, 255 add 1,0,rand add 1,1,255 add 1,2,100,randset指令是隨機(jī)數(shù)范圍設(shè)置。通過add指令是給曲線添加點(diǎn),該工程是用定時(shí)器設(shè)定一定時(shí)間,每隔一段時(shí)間給3個(gè)信道曲線添加一個(gè)點(diǎn)。曲線一是添加隨機(jī)值,曲線二是添加固定值255,曲線三是添加固定值100。串口屏所有控件操作的實(shí)質(zhì)都是對屬性的修改。曲線/波形控件具有的屬性,用戶可以隨時(shí)調(diào)整、編輯列表中的屬性參數(shù)。其中,type和id屬性由開發(fā)環(huán)境指定,用戶不可修改。id可通過軟件左上方置頂置底間接修改。曲線波形控件屬性列表,可以在設(shè)備運(yùn)行中隨時(shí)讀取。sys0=s0.id將數(shù)據(jù)記錄控件s0的id號賦值給sys0變數(shù),s0.x+=10將控件在屏幕上的位置向右移動10個(gè)像素點(diǎn)。prints s0.gdc,0將s0的網(wǎng)格顏色從串口發(fā)送出去,objname屬性不可以讀取。比如,在事件代碼中寫"t0.txt=s0.objname"編譯將報(bào)錯(cuò),其中所有綠色控件可以在運(yùn)行中實(shí)時(shí)修改。
曲線波形的x,y屬性描述控件在屏幕上的像素坐標(biāo)位置。以屏幕左上角為觸摸屏像素坐標(biāo)原點(diǎn)(x=0,y=0)。x,y屬性只能從0~最大分辨率,不能超出屏幕顯示區(qū)域。如果x,y屬性可以超出屏幕坐標(biāo)范圍(-6000~+6000),但是超出屏幕將被裁減,不會顯示出來。研發(fā)人員如果想做一個(gè)控件,但是不想讓使用者看到、觸摸到,可以把該控件放在屏幕顯示區(qū)域以外。開發(fā)人員使用的時(shí)候,使用click指令,或者綁定用戶IO。w,h屬性描述控件在屏幕上的寬度和高度。w,h屬性只能從0~最大分辨率,不能超出屏幕顯示區(qū)域。x+w,y+h的值可以超出屏幕坐標(biāo)范圍,但是超出屏幕將被裁減,不會顯示出來。gdc屬性,網(wǎng)格顏色,RGB565的顏色值,僅當(dāng)sta=單色時(shí),才存在該屬性。bco屬性,控件背景色屬性,RGB565的顏色值,僅當(dāng)sta=單色時(shí),才存在該屬性。pic屬性,控件背景圖片屬性,選擇控件背景圖片的ID號,僅當(dāng)sta=圖片時(shí),才存在該屬性。picc屬性,控件背景切圖圖片屬性,選擇控件背景切圖圖片的ID號,僅當(dāng)sta=切圖時(shí),才存在該屬性。選擇的被切圖圖片尺寸必須等于對應(yīng)串口屏的分辨率,否則,可能會導(dǎo)致顯示花屏。sta屬性,背景填充方式屬性[4-6]。
支持4種背景方式:①切圖,從指定與串口屏分辨率相同的全屏圖片上,自動竊取控件窗口區(qū)域的圖片內(nèi)容作為控件背景;②單色,指定單一的RGB565顏色值作為控件背景;③圖片,用戶指定一張圖片作為控件的背景;④透明,即無背景,以透明的方式直接在控件區(qū)域?qū)懽址畔?。time屬性,控件特效運(yùn)行時(shí)間屬性。effect設(shè)置不為0以后,才存在該屬性。當(dāng)設(shè)置了控件的加載特效以后,控件在time的時(shí)間內(nèi),以設(shè)置的特效方式飛到控件所在屏幕的坐標(biāo)位置。first屬性,控件加載特效的優(yōu)先級屬性。effect設(shè)置不為0以后,才存在該屬性。first可設(shè)置的值為0~100,支持多個(gè)有特效的控件為同一級別優(yōu)先級。同一優(yōu)先級的控件,將在同時(shí)被加載到屏幕上顯示。不同的優(yōu)先級中,將根據(jù)設(shè)置值從大到小依次完成載入。effect屬性,控件加載特效屬性,一共支持9種效果,僅X系列支持該屬性。0-立即載入;1-上邊飛入;2-下邊飛入;3-左邊飛入;4-右邊飛入;5-左上角飛入;6-右上角飛入;7-左下角飛入;8-右下角飛入。aph屬性,控件半透明屬性。aph可設(shè)置的值范圍為0~127 。為0時(shí)控件將全透明(效果為不顯示),為127時(shí)全顯示(沒有半透明效果)。drag屬性,控件運(yùn)行過程中是否支持拖動屬性。vscope屬性,控件內(nèi)存占用屬性,控件支持私有和全局屬性。當(dāng)設(shè)置為全局時(shí),控件分配的內(nèi)存在所有頁面都可以訪問。離開當(dāng)前頁面后,控件屬性數(shù)據(jù)也不會丟失,缺點(diǎn)是占用系統(tǒng)總內(nèi)存。objname屬性,控件名稱屬性,該屬性在運(yùn)行中不能獲取。id屬性,控件id是每個(gè)控件在當(dāng)前頁面的唯一標(biāo)識號,由系統(tǒng)分配,不可修改,可通過軟件左上角置頂置底間接修改。type屬性,控件類型屬性。由系統(tǒng)分別固定數(shù)據(jù),比如曲線/波形控件屬性為0。disup屬性,產(chǎn)生拖動后是否禁用彈起事件:0-否;1-是。默認(rèn)為否,即拖動的時(shí)候是會觸發(fā)彈起事件。僅當(dāng)drag=是時(shí),才存在該屬性。dir屬性,平推方向:0-從左往右;1-從右往左;2-靠右對齊。設(shè)置靠右對齊曲線/波形圖才會從右往左開始打點(diǎn);設(shè)置從右往左,是從右邊開始打點(diǎn),曲線從左往右不斷打點(diǎn)。ch屬性,信道數(shù)量(最小1,最大4):1-0;2-1;3-2;4-3。gdw屬性,網(wǎng)格寬度,0為無網(wǎng)格。gdh屬性,網(wǎng)格高度,0為無網(wǎng)格。pco0屬性,通道0前景色。pco1屬性,通道1前景色,當(dāng)ch的值大于1的時(shí)候存在。pco2屬性,通道2前景色,當(dāng)ch的值大于2的時(shí)候存在。pco3屬性,通道3前景色,當(dāng)ch的值大于3的時(shí)候存在。dis屬性,數(shù)據(jù)縮放百分比(最小10,最大1000)。disup屬性,產(chǎn)生拖動后是否禁用彈起事件:0-否;1-是。默認(rèn)為否,即拖動的時(shí)候是會觸發(fā)彈起事件。僅當(dāng)drag=是時(shí),才存在該屬性[7,8]。
圖2 觸摸屏曲線接口圖Fig.2 Touch screen curve interface diagram
打開一個(gè)新的空白接口,點(diǎn)擊左側(cè)<工具箱>里面的<文本>按鈕,當(dāng)前頁面出現(xiàn)一個(gè)文本框,創(chuàng)建了一個(gè)文本控件,現(xiàn)在編輯文本控件的外觀(顯示效果)。調(diào)整位置和尺寸,將文本控件移置顯示區(qū)中心位置,并調(diào)大到能放下。新添加上“文本控件”預(yù)覽II.擺放到指定位置并調(diào)整到需要尺寸預(yù)覽,移動位置:鼠標(biāo)選中控件,拖到需要擺放的位置。重設(shè)大?。菏髽?biāo)指針選中控件的任意一條邊,或任意一個(gè)角,拖動即可重設(shè)大小。如果不想使用鼠標(biāo),也可以通過修改屬性列表中的“x、y坐標(biāo)”來調(diào)整位置,修改屬性列表中的“寬度和高度”來重設(shè)大小。文本控件背景顯示指定的“單一顏色”。鼠標(biāo)單擊選中控件,拉動屬性列表滑塊 →找到背景色屬性,完成此文本控件的背景色修改成藍(lán)色??丶紊尘疤畛鋾r(shí)還能設(shè)置邊框效果,根據(jù)屬性列表里面相應(yīng)的屬性項(xiàng)進(jìn)行設(shè)置。當(dāng)顏色被使用過后,下次點(diǎn)擊選擇顏色的時(shí)候,使用過的顏色會直接出現(xiàn)在“選擇顏色”的下拉選項(xiàng)中。鼠標(biāo)單擊選中控件,拉動屬性列表滑塊完成控件設(shè)置圖片填充背景。串口屏支持PNG圖片,并完美抗鋸齒,圖片內(nèi)容如果不是矩形,請使用PNG格式圖片。文本控件背景顯示指定的“一張圖片中的某一部分”。鼠標(biāo)單擊選中控件,拉動屬性列表滑塊找到背景圖片切圖選擇屬性,點(diǎn)擊要添加的圖片完成了為控件設(shè)置切圖填充背景??丶尘斑x擇切圖填充時(shí),用于切圖填充的圖片必須是全屏圖片(即圖片分辨率和屏分辨率相同、顯示方向相同)。
MCU發(fā)正弦波給HMI屏顯示曲線波形,具體的實(shí)現(xiàn)代碼如下所示:
串口指令執(zhí)行成功或失敗的通知格式,只有當(dāng)系統(tǒng)變量bkcmd為非0的時(shí)候才會返回指令執(zhí)行成功或者失敗數(shù)據(jù),每次上電后bmcmd默認(rèn)為2,即只返回指令執(zhí)行出錯(cuò)的結(jié)果。上位軟件編輯時(shí)寫進(jìn)資源文件的代碼不受bkcmd影響,執(zhí)行有錯(cuò)誤時(shí)一定會返回錯(cuò)誤數(shù)據(jù),成功時(shí)不返回?cái)?shù)據(jù)。設(shè)備返回?cái)?shù)據(jù)的結(jié)束符為“0XFF 0XFF 0XFF”3個(gè)字節(jié)。0X00無效指令,0X00+結(jié)束符,當(dāng)收到用戶發(fā)來的無效指令時(shí)返回此數(shù)據(jù)。0X01,指令成功執(zhí)行,0X01+結(jié)束符,用戶發(fā)來的指令被成功執(zhí)行完畢時(shí)返回此數(shù)據(jù)。0X02控件ID無效,0X02+結(jié)束符,用戶發(fā)來的指令中包含無效控件ID或者無效控件名稱時(shí)返回此數(shù)據(jù)。0X03頁面ID無效,0X03+結(jié)束符,用戶發(fā)來的指令中包含無效頁面ID或者無效頁面名稱時(shí)返回此數(shù)據(jù)。0X04圖片ID無效,0X04+結(jié)束符,用戶發(fā)來的指令中包含無效圖片ID時(shí)返回此數(shù)據(jù)。0X05字庫ID無效,0X05+結(jié)束符,用戶發(fā)來的指令中包含無效字庫ID時(shí)返回此數(shù)據(jù)。0x06檔操作失敗,0X06+結(jié)束符,操作檔失敗的時(shí)候返回。0x09 CRC校驗(yàn)失敗,0X09+結(jié)束符,帶校驗(yàn)的指令通不過的時(shí)候返回此數(shù)據(jù),指令校驗(yàn)說明。0X11波特率設(shè)置無效,0X11+結(jié)束符,用戶發(fā)來的波特率配置指令中包含無效波特率參數(shù)。設(shè)備支持的波特率有:2400 4800 9600 19200 38400 57600 115200,0X12曲 線 控 件ID號或信道號無效,0X12+結(jié)束符,用戶使用add指令往曲線控件添加數(shù)據(jù)的時(shí)候,曲線控件ID號或信道號無效時(shí)返回此數(shù)據(jù)。0X1A變量名稱無效。0X1A+結(jié)束符,當(dāng)串口收到的變量名稱為無效名稱時(shí)返回此數(shù)據(jù)。注:控件屬性也稱為變量,比如您設(shè)置一個(gè)控件的屬性的時(shí)候,輸入的是一個(gè)它沒有的屬性名稱,也會返回此數(shù)據(jù)。0X1B變量運(yùn)算無效,0X1B+結(jié)束符,比如文本控件t0的txt屬性賦值時(shí)應(yīng)該寫成t0.txt=“abc”。0X1C賦值操作失敗,0X1C+結(jié)束符,屬性賦值失敗的時(shí)候返回此數(shù)據(jù)。0X1DEEPROM操作失敗,0X1D+結(jié)束符,操作EEPROM失敗時(shí)返回此數(shù)據(jù)。0X1E參數(shù)數(shù)量無效,0X1E+結(jié)束符,用戶輸入的指令中參數(shù)數(shù)量錯(cuò)誤的時(shí)候返回此數(shù)據(jù)。0X1FIO操作失敗,0X1F+結(jié)束符,操作IO失敗時(shí)返回此數(shù)據(jù)。0X20轉(zhuǎn)義字符使用錯(cuò)誤,0X20+結(jié)束符,轉(zhuǎn)義字符使用錯(cuò)誤時(shí)返回此數(shù)據(jù)。0X23變量名稱太長,0X23+結(jié)束符,變量名稱長度最大29個(gè)字符,超出就會返回此數(shù)據(jù)。0X24串口緩沖區(qū)溢出,0X24+結(jié)束符當(dāng)串口緩沖區(qū)被占滿以后會返回此數(shù)據(jù)。緩沖區(qū)溢出以后,緩沖隊(duì)列里的指令執(zhí)行完成后會為緩沖區(qū)騰出空間以繼續(xù)接收指令,在此之前,串口收到的數(shù)據(jù)將會丟棄。
應(yīng)用數(shù)學(xué)信號處理技術(shù)編輯均勻分布、正態(tài)分布等隨機(jī)函數(shù),以模擬壓力儀表的隨機(jī)激勵(lì)信號進(jìn)行系統(tǒng)性的采集測試。調(diào)用USART HMI觸摸屏進(jìn)行壓力數(shù)據(jù)的實(shí)時(shí)曲線顯示,經(jīng)過壓力傳感器及觸摸屏的實(shí)物測試,此方法可以有效提升壓力計(jì)量儀表和設(shè)備的測試效率,達(dá)到了預(yù)期的設(shè)計(jì)效果。