馬 飛
(中國人民解放軍91404部隊,河北秦皇島066000)
摘要:給出了一種便攜式程控電源上位機的方案設計,該系統(tǒng)以運行WinCE操作系統(tǒng)的工業(yè)平板電腦為硬件平臺,利用圖形化編程語言LabVIEW進行編程,通過RS -485方式與電源串行通信,實現(xiàn)對電源的電壓參數調整和輸出控制,監(jiān)測電源的輸出參數和運行狀態(tài)。重點介紹了上位機的工作界面設計和通信程序的圖形化編程。
關鍵詞:程控電源;圖形化編程語言;RS -485;串行通信
中圖分類號:TP319 文章編號:1006 - 2394( 2016)01 - 0019 - 03
0 引言
程控電源配套的上位機一般為PC臺式機或者筆記本電腦外加適當的通信適配器,對于程控電源小型化發(fā)展的今天,已不能很好適應新的市場需求,上位機的小型化已成為未來發(fā)展的趨勢。針對目前這種情況,本文設計了一種配套程控三相交流電源的小型化、便于攜帶的上位機設備。
1硬件平臺和操作系統(tǒng)選擇
考慮到小型化和開發(fā)周期因素,硬件選用深圳揚創(chuàng)科技研發(fā)生產的ePC-A104s工業(yè)平板電腦,該產品是一種采用ARM Cortex A8嵌入式CPU、512MBytes DDR2 SDRAM,基于WinCE操作系統(tǒng)的高性能嵌入式工業(yè)平板電腦;配置了10.4英寸高亮度TFT真彩液晶屏,四線電阻式觸摸屏;具有2路帶隔離RS-232接口和1路帶隔離RS-485接口。
ARM Cortex-A8處理器是第一款基于ARMv7架構的應用處理器,速率可以在600 MHz~1 GHz的范圍內調節(jié),是一款超標量處理器。
Windows CE操作系統(tǒng)與Windows系列具有很好的兼容性,是一種針對小容量、移動式、智能化的實時嵌入式操作系統(tǒng)。模塊化設計是其最大的特點,它可以用于進行專門的工業(yè)控制器設備定制。由于其和Windows系統(tǒng)的相似性,熟悉PC機上Windows編程的設計者可以很快熟悉WinCE應用程序設計,大大縮短了產品的開發(fā)周期和難度,并且利用其控件可以較好地設計出人機界面。WinCE操作系統(tǒng)具有功能強大、兼容性好、開發(fā)周期短,開發(fā)環(huán)境熟悉等優(yōu)勢,本設計中采用WinCE作為嵌入式平臺的操作系統(tǒng)。
2編程工具選擇
目前PC機上編程開發(fā)工具按技術類型可分為兩大類:面向對象的編程技術和圖形編程技術。兩者在編程開發(fā)中都有著廣泛的應用,它們各有所長?梢暬幊陶Z言環(huán)境Visual C++、EVC等屬于面向對象的編程技術,可以用來開發(fā)應用軟件,比起圖形編程語言,其編程難度較大、開發(fā)周期較長且不易進行更改、 升級和維護等。
圖形編程語言與面向對象的編程語言相比,入門比較容易、編程簡單且開發(fā)周期短,能快速開發(fā)出界面美觀的應用程序,且功能強大,具有很強的數據處理功能,這些優(yōu)勢使其正日益成為業(yè)界主流的開發(fā)環(huán)境。其中NI公司的LabVIEW,LabWINDOWS/CVI和HP公司的VEE等軟件使用的比較廣泛。
由于測試軟件是運行在Windows CE操作系統(tǒng)上,所以采用的是NI公司的LabVIEW開發(fā)環(huán)境。Lab-VIEW不同于傳統(tǒng)的編程語言,它是一種圖形化的編程語言,不用編寫程序代碼,而是使用圖形化程序設計語言G。該語言可以大大簡化編程難度,極大縮短軟件的開發(fā)周期,系統(tǒng)操作方便、功能擴展靈活,可以根據用戶的不同需求增加不同的功能模塊。LabVIEW通常運行在PC機中,若實現(xiàn)在WinCE平臺下則需要利用LabVIEW for Touch Panel模塊。LabVIEW運行在嵌入式操作系統(tǒng)的實例還較少,本文利用LabVIEW實現(xiàn)在WinCE下的軟件設計具有重要的意義。
3軟件總體設計
3.1軟件設計
上位機是針對三相交流程控電源專門設計開發(fā),該電源具有RS-485串行通信接口,能夠通過程控命令查詢電源的輸出參數、設置電源的輸出電壓、控制電源輸出接通或斷開。上位機與電源是通過RS-485硬件接口連接。
上位機采用的是WinCE嵌入式操作系統(tǒng),通過LabVIEW2010編寫應用程序,完成對程控電源參數的采集、顯示和處理。在軟件開發(fā)中,為了實現(xiàn)對程控電源的周期性巡檢、設定參數、輸出控制及響應觸摸按鍵等各種功能,軟件結構采用標準狀態(tài)機的設計模式解決處理不同程序模塊的跳轉。狀態(tài)機可以清楚地實現(xiàn)利用狀態(tài)圖描述的方法,在狀態(tài)圖的每個狀態(tài)中完成相應的動作。根據功能的不同分為兩個部分:外界通信模塊、人機界面交互模塊。外界通信模塊負責周期性查詢程控電源的運行參數,并進行正確性校驗,同時轉換為可顯示的字符提供給用戶。人機界面交互模塊負責響應觸摸按鍵,并進行數據和狀態(tài)的顯示。
3.2界面設計
工作主界面設計了四個部分:參數顯示窗口區(qū)、電壓設置調整區(qū)、輸出控制指示區(qū)、狀態(tài)指示區(qū)等,如圖1所示。
上電運行后,工作燈周期性閃爍,當通信正常后,會顯示電源各參數,包括三相電壓、電流、輸出功率和頻率等。電源運行中異常情況的發(fā)生,是通過狀態(tài)燈變紅來指示。要設置調整電壓,只要旋轉面板的觸摸旋鈕即可,電壓值會顯示在上方的窗口內。本電源的設置范圍被限制在31~ 41 V之間。對輸出的控制,是通過控制狀態(tài)指示區(qū)右邊的上下?lián)軇娱_關完成,輸出成功后,開關上方的指示燈會點亮。如果與程控電源通信不正常,右下角的通信故障指示燈會持續(xù)點亮指示,直到通信恢復正常。
4主要程序模塊
4.1初始化模塊
上位機開機后,首先啟動WinCE操作系統(tǒng)內核,然后配置硬件參數,系統(tǒng)準備好后,加載測試系統(tǒng)軟件,進入測試軟件工作界面。在進人工作界面以前需要進行參數初始化,如圖2所示,RS-485串口終端參數初始化,包括端口號(2)、波特率(9600)等,其他參數為默認值。顯示參數變量的初始化包括三相電壓、電流、功率、頻率等。另外,還要初始化系統(tǒng)運行需要的中間狀態(tài)變量、通信故障指示燈等。
4.2參數讀取模塊
上位機需要讀取交流電源11種參數,針對不同參數,需要發(fā)送不同的命令,不同的命令可能數據長度不一樣,但程序結構是相似的。下面僅對讀取A相電壓的程序進行說明。讀取A相電壓的圖形化程序如圖3所示,利用三幀順序結構設計。第一幀發(fā)送讀取電壓的數據序列命令,包含對串口的寫操作,記錄發(fā)送命令的時刻。第二幀循環(huán)等待電源回送指定參數,幀中包 升級和維護等。
圖形編程語言與面向對象的編程語言相比,入門比較容易、編程簡單且開發(fā)周期短,能快速開發(fā)出界面美觀的應用程序,且功能強大,具有很強的數據處理功能,這些優(yōu)勢使其正日益成為業(yè)界主流的開發(fā)環(huán)境。其中NI公司的LabVIEW,LabWINDOWS/CVI和HP公司的VEE等軟件使用的比較廣泛。
由于測試軟件是運行在Windows CE操作系統(tǒng)上,所以采用的是NI公司的LabVIEW開發(fā)環(huán)境。Lab-VIEW不同于傳統(tǒng)的編程語言,它是一種圖形化的編程語言,不用編寫程序代碼,而是使用圖形化程序設計語言G。該語言可以大大簡化編程難度,極大縮短軟件的開發(fā)周期,系統(tǒng)操作方便、功能擴展靈活,可以根據用戶的不同需求增加不同的功能模塊。LabVIEW通常運行在PC機中,若實現(xiàn)在WinCE平臺下則需要利用LabVIEW for Touch Panel模塊。LabVIEW運行在嵌入式操作系統(tǒng)的實例還較少,本文利用LabVIEW實現(xiàn)在WinCE下的軟件設計具有重要的意義。
3軟件總體設計
3.1軟件設計
上位機是針對三相交流程控電源專門設計開發(fā),該電源具有RS-485串行通信接口,能夠通過程控命令查詢電源的輸出參數、設置電源的輸出電壓、控制電源輸出接通或斷開。上位機與電源是通過RS-485硬件接口連接。
上位機采用的是WinCE嵌入式操作系統(tǒng),通過LabVIEW2010編寫應用程序,完成對程控電源參數的采集、顯示和處理。在軟件開發(fā)中,為了實現(xiàn)對程控電源的周期性巡檢、設定參數、輸出控制及響應觸摸按鍵等各種功能,軟件結構采用標準狀態(tài)機的設計模式解決處理不同程序模塊的跳轉。狀態(tài)機可以清楚地實現(xiàn)利用狀態(tài)圖描述的方法,在狀態(tài)圖的每個狀態(tài)中完成相應的動作。根據功能的不同分為兩個部分:外界通信模塊、人機界面交互模塊。外界通信模塊負責周期性查詢程控電源的運行參數,并進行正確性校驗,同時轉換為可顯示的字符提供給用戶。人機界面交互模塊負責響應觸摸按鍵,并進行數據和狀態(tài)的顯示。
3.2界面設計
工作主界面設計了四個部分:參數顯示窗口區(qū)、電壓設置調整區(qū)、輸出控制指示區(qū)、狀態(tài)指示區(qū)等,如圖1所示。
上電運行后,工作燈周期性閃爍,當通信正常后,會顯示電源各參數,包括三相電壓、電流、輸出功率和頻率等。電源運行中異常情況的發(fā)生,是通過狀態(tài)燈變紅來指示。要設置調整電壓,只要旋轉面板的觸摸旋鈕即可,電壓值會顯示在上方的窗口內。本電源的設置范圍被限制在31~ 41 V之間。對輸出的控制,是通過控制狀態(tài)指示區(qū)右邊的上下?lián)軇娱_關完成,輸出成功后,開關上方的指示燈會點亮。如果與程控電源通信不正常,右下角的通信故障指示燈會持續(xù)點亮指示,直到通信恢復正常。
4主要程序模塊
4.1初始化模塊
上位機開機后,首先啟動WinCE操作系統(tǒng)內核,然后配置硬件參數,系統(tǒng)準備好后,加載測試系統(tǒng)軟件,進入測試軟件工作界面。在進人工作界面以前需要進行參數初始化,如圖2所示,RS-485串口終端參數初始化,包括端口號(2)、波特率(9600)等,其他參數為默認值。顯示參數變量的初始化包括三相電壓、電流、功率、頻率等。另外,還要初始化系統(tǒng)運行需要的中間狀態(tài)變量、通信故障指示燈等。
4.2參數讀取模塊
上位機需要讀取交流電源11種參數,針對不同參數,需要發(fā)送不同的命令,不同的命令可能數據長度不一樣,但程序結構是相似的。下面僅對讀取A相電壓的程序進行說明。讀取A相電壓的圖形化程序如圖3所示,利用三幀順序結構設計。第一幀發(fā)送讀取電壓的數據序列命令,包含對串口的寫操作,記錄發(fā)送命令的時刻。第二幀循環(huán)等待電源回送指定參數,幀中包含有一循環(huán)結構,通過不斷地查詢串口接收緩沖區(qū)數據的數量,如果接收到預定的9個數據,則退出該循環(huán);如果長時間收不到足夠的數據,則判斷是否接收超時,超時的判讀依據是通過時間記錄器T3與T1相比較,所得差與預定的最大時間200 ms進行比較,超過則認為發(fā)生超時錯誤;超時錯誤發(fā)生也會導致循環(huán)退出,防止死循環(huán)發(fā)生。第三幀接收電源發(fā)來的數據,幀中包含對串口接收緩沖區(qū)中數據的讀取、對有效數據的分離提取、數據類型轉換和一個case處理結構。case結構中有兩個分支False和True,F(xiàn)alse分支是對故障情況的處理,True分支是把有效電壓值賦予顯示變量,供界面顯示。
4.3設置控制模塊
設置控制模塊包括輸出電壓的設置、輸出通道的通斷等,程序包含了命令合成、通信校驗算法生成等。下面僅對電壓的設置進行介紹,設置電壓命令包括預先設計的固定命令數據、變化的待設置電壓和校驗碼組成。如圖4所示,幀中左邊為命令生成部分,固定設置電壓命令序列通過字符串合成單元完成與設置電壓的合并,把合并后的數據經過后邊由for循環(huán)、while循環(huán)和case結構組成的CRC校驗計算單元計算出相應的校驗碼,經過后邊的字符串合成單元把整個要下達的命令合并,一起寫入串口發(fā)送緩沖區(qū),完成一次電壓的更改命令。
5結束語
本文基于WinCE操作系統(tǒng)和圖形化編程語言LabVIEW,設計了一種便攜式電源上位機,并已經成功用于對交流程控電源的監(jiān)測,通過記錄大量的監(jiān)測數據,可以分析電源的工作情況。試驗證明,該上位機具有運行穩(wěn)定、可靠性高、成本低等優(yōu)點。另外,通過對上位機程序模塊的更改或添加,便可對其他程控電源或設備進行監(jiān)測和控制,可擴展性良好。