許敏影
(杭州水表有限公司,杭州 310000)
LabVIEW作為常見的圖形化編程語言,在測試儀器、數(shù)據(jù)采集、工業(yè)環(huán)境下的系統(tǒng)控制和仿真領(lǐng)域的應(yīng)用頗為廣泛。開發(fā)流程基本分為需求收集、設(shè)計、編碼、測試、發(fā)布與維護等。本文所開發(fā)了測試系統(tǒng)軟件——動力單元總成測試系統(tǒng),采用虛擬儀器LabVIEW 13.0設(shè)計開發(fā),基于界面操作事件結(jié)構(gòu)與隊列狀態(tài)機架構(gòu)模式設(shè)計了動力單元泵源與電動機相關(guān)的性能測試[1]。該軟件系統(tǒng)在功能設(shè)計上可實現(xiàn)傳統(tǒng)工業(yè)PLC在數(shù)據(jù)采集、流程控制、數(shù)據(jù)存儲等方面的需求;圖形化編程語言,在界面設(shè)計、邏輯控制等方面優(yōu)勢明顯。
叉車系列噸位動力單元作為供油裝置可集成控制回路、回油過濾回路,采用齒輪泵為動力源,可集成閥塊、電動機、油箱等,通過閥塊管路系統(tǒng)與外部液壓油缸、控制閥組等液壓元件相連,組成閉式回路控制系統(tǒng)。動力單元可集成多元化功能平臺,模塊化設(shè)計方便采用標(biāo)準(zhǔn)元件。
動力單元性能測試采用裝機模擬實測方式,測試項目主要圍繞齒輪泵電動機組、換向閥等開展以下測試項目包括負(fù)載特性試驗、比例特性試驗、耐久特性試驗、油路機能試驗等4個項目。
圖1 動力單元外型與原理圖
上位機軟件設(shè)計基于LabVIEW 13.0虛擬儀器平臺開發(fā),為了便于管理和配置設(shè)置,采用測試功能模塊化并基于Project工程管理程序[2]。
首先,關(guān)鍵參數(shù)設(shè)置放置在配置文件,供主程序Main調(diào)用。這樣可在日后關(guān)鍵參數(shù)變更時直接修改配置程序,而不必修改主程序,配置文件需放置在指定文件夾并加密。其次,完整程序必須有相應(yīng)的錯誤處理機制。針對不同類別的錯誤,例如測試設(shè)備出錯、偶然因素中斷測試、產(chǎn)品測試參數(shù)不合格等,做好有效錯誤和無效錯誤的分類判斷。最后,設(shè)計者需要將功能相似的模塊編寫為子VI形式,方便程序后期的可擴展性等。
圖2為本項目的Project列表,其中,NI USB-6000系列采集卡作為數(shù)據(jù)采集硬件,軟件采用與之配合對應(yīng)的驅(qū)動NI-DAQmx[3],DAQmx函數(shù)配有VI函數(shù)和開發(fā)工具,設(shè)計者可利用面板現(xiàn)有的封裝函數(shù)編寫底層驅(qū)動程序,并結(jié)合DAQ采集硬件,便可實現(xiàn)多線程實時數(shù)據(jù)采集工作。
圖2 Project-項目樹列表
圖3中AI/AO數(shù)據(jù)采集調(diào)用了DAQmx任務(wù)形式,采集流程按照配置采集端口、開始數(shù)據(jù)采集、讀取/寫入數(shù)據(jù)循環(huán)及停止數(shù)據(jù)采集構(gòu)成。程序的數(shù)據(jù)流傳遞采用了For循環(huán)結(jié)合順序結(jié)構(gòu),可實現(xiàn)按照配置文件要求執(zhí)行完所有程序要求讀取或?qū)懭氲乃邢到y(tǒng)模擬信號。其中AO任務(wù)主要實現(xiàn)了對液壓系統(tǒng)比例電磁鐵控制命令信號的輸出與控制[4]。
圖3 AI/AO數(shù)據(jù)采集與控制程序圖
該測試系統(tǒng)的被測對象主要是適用于不同噸位叉車的動力單元。主界面設(shè)置如圖4所示,主要包含了儀表顯示區(qū)、主要控制參數(shù)輸入窗口區(qū)、人機交互操作區(qū)等幾部分。首欄菜單由文件、測試項目、表格數(shù)據(jù)及幫助組成,其中測試項目下拉菜單包含了負(fù)載特性試驗、比例特性試驗、耐久特性試驗、油路機能試驗。其他菜單功能便于人機交互與試驗數(shù)據(jù)設(shè)置與保存。
圖4 操作主界面示圖
主界面由Main程序控制,底層程序設(shè)計如圖5所示,數(shù)據(jù)流采用基于事件的生產(chǎn)者/消費者設(shè)計模式[5]。其中生產(chǎn)者循環(huán)基于用戶界面處理模式,用戶事件主要包含[0]前面板關(guān)閉、[1]菜單選擇(用戶)、[2]“打印報表”:值改變、[3]“保存”:值改變、[4]“測試結(jié)果、型號”:值改變、[5]“查詢型號”:值改變、[6]“查詢隱藏”:鼠標(biāo)進入、[7]“查詢型號”:鼠標(biāo)離開等等。消費者循環(huán)基于通知器讀取數(shù)據(jù),執(zhí)行相應(yīng)的指令任務(wù),例如初始化、保存、耐久特性試驗等,并開始在本循環(huán)內(nèi)按照程序設(shè)定執(zhí)行或調(diào)用子VI設(shè)定執(zhí)行完相應(yīng)的測試命令。以子VI2為例,在生產(chǎn)者循環(huán)內(nèi)基于用戶事件[1]菜單選擇,執(zhí)行“負(fù)載特性試驗”;VI2為負(fù)載特性試驗的獨立設(shè)計模塊,以子VI形式按照順序結(jié)構(gòu)調(diào)用執(zhí)行;此時的消費者循環(huán)讀取到通知器內(nèi)“負(fù)載數(shù)據(jù)”的相關(guān)執(zhí)行命令,并在消費者循環(huán)內(nèi)調(diào)取執(zhí)行對于負(fù)載數(shù)據(jù)如電動機的電流、電壓,系統(tǒng)壓力、流量;負(fù)載上升、下降速度等相關(guān)測試參數(shù)的采集與顯示[6]。
圖5 Main底層程序設(shè)計框圖及部分菜單
負(fù)載特性試驗基于生產(chǎn)者/消費者(事件)模式[7],操作運行界面-程序框圖設(shè)計如圖6所示。啟動后,需要設(shè)置實驗負(fù)載參數(shù),系統(tǒng)與采集實際負(fù)載進行對比,并給出相關(guān)提示。然后按照測試順序,負(fù)載上升-停止-負(fù)載下降執(zhí)行。其中“復(fù)位”是為確認(rèn)測試系統(tǒng)初始位置設(shè)置,“比例閥”用來調(diào)節(jié)上升下降速率,以測試不同工況下的負(fù)載特性參數(shù)。
圖6 負(fù)載特性操作運行部分界面
該底層程序如圖7所示,采用常用的生產(chǎn)者/消費者(事件)設(shè)計模式進行編輯。生產(chǎn)者程序設(shè)計首先由“負(fù)載試驗-初始化”開始,循環(huán)內(nèi)基于用戶界面事件模式執(zhí)行相應(yīng)測試流程的參數(shù)設(shè)置或試驗進程,當(dāng)出現(xiàn)誤操作時以彈窗形式提示后續(xù)正確操作流程[8]。消費者循環(huán)內(nèi)基于通知器讀取數(shù)據(jù),并執(zhí)行相關(guān)指令任務(wù)。各指令任務(wù)程序內(nèi)嵌套層疊順序結(jié)構(gòu),可有序執(zhí)行“開始測試-傳感器數(shù)據(jù)讀取-測試數(shù)據(jù)數(shù)據(jù)寫入顯示”。
圖7 負(fù)載特性試驗底層程序設(shè)計框圖
耐久特性試驗?zāi)K為自動測試模式,主要針對動力單元裝機后按照預(yù)定負(fù)載,設(shè)置邊界條件如電動機溫度上限、油溫,叉車在最低位與最高位的停止時長等,進行耐久測試。如圖8所示,主界面以曲線形式實時顯示系統(tǒng)壓力、流量、電流、電動機溫度、油溫。
圖8 耐久特性試驗主界面
底層程序框圖如圖9所示,采用隊列消息處理嵌套用戶界面事件處理器模式,并通過移位寄存器實現(xiàn)狀態(tài)跳轉(zhuǎn)。最外層隊列消息處理模式按照“初始化、讀取測試序列、執(zhí)行測試序列、退出”測試流程運行。前置的嵌套用戶界面事件處理器用于耐久測試總體參數(shù)設(shè)置,并將設(shè)置結(jié)果傳遞至順序結(jié)構(gòu)內(nèi),以支持完整測試流程的進行。該程序框架內(nèi)采用了屬性節(jié)點、全局變量的典型設(shè)置方式,以實現(xiàn)程序的簡化。
圖9 樣品照片
圖9 耐久特性試驗底層程序設(shè)計框圖
本文基于圖形化編程方式,對叉車動力單元總成測試系統(tǒng)軟件進行了開發(fā),得出以下結(jié)論:
1)程序設(shè)計按照Project項目管理方式進行,主要包括主界面、DAQ數(shù)據(jù)采集、報表、文件等類別子VI的程序設(shè)計,更有益于程序的后續(xù)擴展和可讀性。
2)依據(jù)測試內(nèi)容進行模塊化程序設(shè)計,主要包含負(fù)載特性試驗、比例特性試驗、耐久特性試驗、油路機能試驗等4個項目。模塊化架構(gòu)設(shè)計可實現(xiàn)更復(fù)雜的邏輯控制。
3)生產(chǎn)者/消費者模式在人機互動測試系統(tǒng)中更有利于響應(yīng)用戶界面操作與數(shù)據(jù)流傳遞。
4)上位機采用圖形化編程較其他傳統(tǒng)編程語言工具更便捷。