楊光,衣志強,范志華,鐘文才,蘇成貴,于新雨,肖戟,劉洋
(吉林省農業(yè)機械研究院,長春 130022)
國內常用的井用潛水電泵的測試系統(tǒng)多在非圖形化編程語言的基礎上進行編程,近些年虛擬技術與通訊技術的快速成熟與發(fā)展,給測試工程師提供了更好的編程平臺。
本文對圖形化編程語言LabVIEW開發(fā)井用潛水電泵的測試系統(tǒng),包括信號選擇與處理、數(shù)據(jù)通訊、數(shù)據(jù)分析、曲線擬合、結果判定、報告輸出等關鍵環(huán)節(jié)進行了設計與實現(xiàn)。
(1)設計控制系統(tǒng)界面,要求可對井泵進行計算機啟動、停機、讀數(shù)、自動互鎖測電阻與啟動功能。
(2)讀取串口的水力性能參數(shù):流量Q、揚程H。三相電機性能參數(shù):電壓U、電流I、功率P、轉速n、頻率f、三相電阻R。試驗條件參數(shù):水溫T1及室溫T2。
(3)軟件編程實現(xiàn)以下功能:井用潛水電泵電氣控制,井泵各數(shù)據(jù)及儀表圖形化顯示,數(shù)據(jù)表的形成與曲線的實時繪制,井泵各數(shù)據(jù)的保存、計算與輸出。
(1)技術路線的設計圖,如圖1所示。
(2)傳感器類型的選擇。傳感器的大小決定了測量范圍,本文以測試井用潛水電泵175QJ20-54為例選擇的傳感器,如表1所示。
表1 傳感器選擇Tab.1 Sensor selection
圖1 技術路線設計Fig.1 Technical route design
(1)在“菜單編輯器”中確定測試軟件的菜單項目,編寫各個子菜單中的子VI并進行調用程序,利用一個while主循環(huán)和事件(Event)結構組成主程序,通過菜單事件的調用相應的VI,執(zhí)行相應的程序。如圖2所示。
圖2 井用潛水電泵菜單調用程序Fig.2 Well use of submersible pumps menu called program
(2)編寫各個子VI程序面板
VI前面板是VI程序的用戶操作界面,是VI程序的交互式輸入和輸出端口,通常使用輸入控件和顯示控件來創(chuàng)建前面板[1]。如圖3所示。
圖3 泵性能及電機負載試驗面板Fig.3 Pump performance and motor load test panel
井用潛水電泵的測試工作有4項:“采冷態(tài)溫度、電阻”“泵性能及電機負載試驗”“空載試驗”“溫升試驗”。以“空載試驗”為例介紹其程序結構,該結構采用LABVIEW中的隊列狀態(tài)機的結構模式。
隊列狀態(tài)機是把要執(zhí)行的狀態(tài)排隊,然后把他們的狀態(tài)名存在列隊里,列隊里的狀態(tài)名與狀態(tài)機的各個狀態(tài)一一對應,用來控制狀態(tài)的轉換順序。執(zhí)行了的狀態(tài),其名稱會從隊列中刪除,同時根據(jù)運行時狀態(tài)的動作和碰到的時間,新的狀態(tài)又會被添加到隊列中[2]。
LabVIEW中的狀態(tài)機由一個while主循環(huán)和一個case結構組成。While循環(huán)保證狀態(tài)機的連續(xù)運行;case結構的分支與系統(tǒng)的狀態(tài)(State)一一對應,即case結構的分支名稱對應狀態(tài)名稱,分支里執(zhí)行代碼的功能對應著狀態(tài)的行為(Action);而case結構的條件變量與系統(tǒng)的時間(Event)相對應,引發(fā)狀態(tài)的變遷以及決定狀態(tài)遷移的方向[2]。
出隊列程序有“采電阻”、“顯示”2個動作,當“啟動”按鈕按下時執(zhí)行“啟機”事件程序,同時輸出“顯示”隊列,進入顯示狀態(tài);當按下“停機”“退出”命令時執(zhí)行相應事件程序,同時輸出“空隊列”;當按下“采電阻”命令時,首先讀取儀表電壓命令,判斷是否退出強電,如退出方可輸出“采電阻”隊列。如沒有任何操作則輸出“空隊列”,等待前面板“啟動”、“停機”等事件按鈕的變化,響應相應的事件程序。
(1)串口數(shù)據(jù)的接收
傳感器的信號通過儀表進行顯示的同時采用Modbus通信協(xié)議經過RS485接口與計算機的串口進行通訊,數(shù)據(jù)傳輸給PC機。在Modbus RTU模式下,每一個數(shù)據(jù)幀之間的間隔至少是3.5個字符位。
PC機發(fā)送可讀寫數(shù)字量寄存器的命令:[設備地址][命令][起始寄存器地址高8位][低8位][讀取的寄存器數(shù)高8位][低8位][CRC校驗的低8位][CRC校驗的高8位]
通過VISA設置串口,向串口發(fā)出數(shù)據(jù)讀取命令:[01][03][01][04][00][01][C4][37]
含義如下:
A、[01]:流量顯示儀的地址。
B、[03]:讀取寄存器的命令。
C、[01]:讀取寄存器的高8位。
D、[04]:讀取寄存器的低8位。
E、[00]:寄存器數(shù)據(jù)長度數(shù)高8位。
F、[01]:寄存器數(shù)據(jù)長度數(shù)低8位。換算成10進制數(shù)為1個數(shù)據(jù)量。
G、[C4][37]:CRC校驗碼。
(2)誤碼率的產生與解決
誤碼率的產生:誤碼率=傳輸中的誤碼/所傳輸?shù)目偞a數(shù)100%。在利用串口進行通信時,誤碼要么是數(shù)據(jù)長短不對,要么是讀表錯誤,為了避免此類問題的產生就要進行讀表地址的判斷以及數(shù)據(jù)長度的判斷。
誤碼率的解決:誤碼本身是客觀存在的,在無法進行消除的情況下,只能避免,以電量采集為例,電量讀取的字節(jié)數(shù)應該是55字節(jié),在判斷數(shù)據(jù)是55字節(jié)無誤后再截取其數(shù)據(jù)來源地址,并判斷是否是該表的地址?!?2”為電量表的地址。如果儀表地址也正確,那么就可以證明采集的數(shù)據(jù)是正確的,隨后就可以截取字符串中的數(shù)據(jù)并對其進行處理。
(3)后臺數(shù)據(jù)處理與分析
對采集后試驗數(shù)據(jù)進行適當計算,最終得出判定結果。計算涵蓋:電機性能與水利性能計算,按照標準“GB/T 12785潛水電泵 試驗方法”,“GB/T 3216回轉動力泵 水力性能驗收與實驗”,“GB/T 2818井用潛水異步電動機”中的公式運用Lab-VIEW中的計算模塊搭建計算程序。
(4)曲線擬合及結果判定
以空載測試為例,在空載測試中的電流I0與功率P0數(shù)據(jù)測量有15組,在擬合過程中選用最小二乘法,多項式系數(shù)選擇3,利用廣義多項式進行程序擬合,將擬合前后的曲線利用數(shù)組捆綁表達在一個EXCEL圖表中(見圖4)。
圖4 空載的曲線擬合程序Fig.4 Unloaded curve fitting program
表2 測量數(shù)據(jù)比對表Tab.2 Measurement data comparison table
該系統(tǒng)測量的關鍵數(shù)據(jù)與通過認證的水泵質檢站的測量數(shù)據(jù)比對(見表2),其測量精度符合國家二級實驗室的標準要求,數(shù)據(jù)的采集速度快,系統(tǒng)界面靈活直觀。對井用潛水電泵系統(tǒng)的研發(fā)與試制過程中給圖形化的測試工作提供了參考方向與案例。
[1]龍脈工作室,豈興明,周建興,等.LabVIEW8.2中文版入門與典型實例[M].北京人民郵電出版社,2008.
[2]侯伯亨,顧新.VHDL硬件描述語言與數(shù)字邏輯電路設計(修訂版)[M].西安;西安電子科技大學出版社.2003
[3]聶影,馮向軍.基于LabVIEW的狀態(tài)機模型研究[J].計算機測量與控制,2007(15):116-118.