王蕾 賈利軍 付中濤



摘 要:為了驗證典型活動部件在高低溫真空模擬環境中的轉動特性及運行壽命,分析了典型活動部件測試系統的工作原理與組成部分,并提出了測控軟件測試系統要完成的任務,基于模塊化與層次化設計思想,建立了測控軟件的框架結構,利用.NET技術、多線程技術與數據庫技術,借助C#語言開發了典型活動部件測控軟件,實現了典型活動部件系統的實時通信、數據采集與存儲,實時曲線顯示、動態加載、歷史數據查詢等功能。最后,以防塵密封圈測試為例,驗證了該方法的可行性和有效性。
關鍵詞:測控軟件;設計開發;C#;典型活動部件
中圖分類號:TP2735 文獻標識碼:Adoi:10.14031/j.cnki.njwx.2016.07.001
Abstract: In order to verify the rotational characteristics and service life of typical moving components in the simulative vacuum environment with low and high temperature, this paper analyzes working principle and parts of the typical moving-components testing system, puts forward tasks that the testing system of measuring and controlling software needs to complete, and builds a framework for this testing system based on a modular and hierarchical design concept. Moreover, this paper develops this typical moving-components testing system with the help of C# and technologies of .NET, multi-threading and database, and meanwhile achieves functions of that system such as real-time communication, data acquisition and storage, real-time curve display, dynamic loading, historical data view etc. Finally it takes dust seal testing as an example to verify the feasibility and validity of this study method.
Keywords: measuring and controlling software; design and development; C#; typical moving-components
0 引言(Introduction)
近年來,隨著現代工業的飛速發展以及計算機在工業領域的廣泛普及,對工業測試系統的自動化和信息集成化提出越來越高的要求。而測控軟件作為工業測試系統的核心部分,是工業計算機完成對整個測試系統操作的管理命令集,以及用戶掌握系統工作狀況的最直接手段,其質量直接影響到系統的安全性和控制效果,從而影響到整個測試系統的穩定性和產品性能[1]。因此,所設計開發的測控軟件應該具有實時性、可靠性、通用性、可維護性、易于操作等特點。
月面巡視探測器移動分系統和結構、機構分系統的驅動機構、傳動裝置由驅動電機、傳感器、防塵密封圈、齒輪副、軸承、諧波減速器等多種典型活動部件組成,為驗證活動部件在復雜月面環境下的轉動特性和運行壽命,需要進行模擬極限高低溫、超低真空環境下活動組、部件的性能與壽命測試。測試信息需要包括摩擦阻尼力矩及曲線、測量扭矩及曲線、測量轉速及曲線、加載力矩及曲線、溫度及曲線、轉數與累積運行時間、測試數據實時存儲和輸出、運行狀態提示、運行出錯報警等。
針對典型活動部件測試系統的研制要求,本文在模塊化與層次化的設計思想上,采用.NET技術、多線程技術與ADO數據庫技術[2],開發了基于C#的典型活動部件測控軟件,不僅實現了對該測試系統的實時通信、數據采集、數據存儲、實時曲線顯示、動態加載、數據輸出、歷史數據查詢等功能,還對通用測控軟件的設計開發以及工業測試系統的測量控制具有很重要的指導意義。
1 典型活動部件測試系統的工作原理與組成(Working principle and composition of typical moving components)
1.1 工作原理
典型活動部件測試系統主要是為了驗證典型活動部件的轉動特性以及運行壽命,在高低溫真空模擬環境下進行活動部件的無源、有源及壽命測試。在測試過程中,測控軟件通過MODBUS協議發送各種控制信號和指令給PLC,進行被測部件的驅動或加載以及電機轉速與轉向的設定,進而將高精度傳感器采集被測件的扭矩、轉速及轉角信號存儲在PLC中,然后測控軟件將從PLC中讀取的數據進行顯示、保存和導出,來完成整個測試流程。
1.2 組成
典型活動部件測試系統主要由高低溫真空模擬環境(真空罐)、驅動部分、傳感器、加載部分、數據采集、PLC控制部分、工控機、測控軟件等組成,如圖1所示。
其中,測控軟件作為該測試系統中的核心部分,應當具有美觀友好的人機界面,信息查詢靈活方便,數據存儲安全可靠,極大限度地實現易維護性和易操作性等特點[3]。因此,需研制一套測控軟件來完成測試系統所要求的以下任務:
摘 要:為了驗證典型活動部件在高低溫真空模擬環境中的轉動特性及運行壽命,分析了典型活動部件測試系統的工作原理與組成部分,并提出了測控軟件測試系統要完成的任務,基于模塊化與層次化設計思想,建立了測控軟件的框架結構,利用.NET技術、多線程技術與數據庫技術,借助C#語言開發了典型活動部件測控軟件,實現了典型活動部件系統的實時通信、數據采集與存儲,實時曲線顯示、動態加載、歷史數據查詢等功能。最后,以防塵密封圈測試為例,驗證了該方法的可行性和有效性。
關鍵詞:測控軟件;設計開發;C#;典型活動部件
中圖分類號:TP2735 文獻標識碼:Adoi:10.14031/j.cnki.njwx.2016.07.001
Abstract: In order to verify the rotational characteristics and service life of typical moving components in the simulative vacuum environment with low and high temperature, this paper analyzes working principle and parts of the typical moving-components testing system, puts forward tasks that the testing system of measuring and controlling software needs to complete, and builds a framework for this testing system based on a modular and hierarchical design concept. Moreover, this paper develops this typical moving-components testing system with the help of C# and technologies of .NET, multi-threading and database, and meanwhile achieves functions of that system such as real-time communication, data acquisition and storage, real-time curve display, dynamic loading, historical data view etc. Finally it takes dust seal testing as an example to verify the feasibility and validity of this study method.
Keywords: measuring and controlling software; design and development; C#; typical moving-components
0 引言(Introduction)
近年來,隨著現代工業的飛速發展以及計算機在工業領域的廣泛普及,對工業測試系統的自動化和信息集成化提出越來越高的要求。而測控軟件作為工業測試系統的核心部分,是工業計算機完成對整個測試系統操作的管理命令集,以及用戶掌握系統工作狀況的最直接手段,其質量直接影響到系統的安全性和控制效果,從而影響到整個測試系統的穩定性和產品性能[1]。因此,所設計開發的測控軟件應該具有實時性、可靠性、通用性、可維護性、易于操作等特點。
月面巡視探測器移動分系統和結構、機構分系統的驅動機構、傳動裝置由驅動電機、傳感器、防塵密封圈、齒輪副、軸承、諧波減速器等多種典型活動部件組成,為驗證活動部件在復雜月面環境下的轉動特性和運行壽命,需要進行模擬極限高低溫、超低真空環境下活動組、部件的性能與壽命測試。測試信息需要包括摩擦阻尼力矩及曲線、測量扭矩及曲線、測量轉速及曲線、加載力矩及曲線、溫度及曲線、轉數與累積運行時間、測試數據實時存儲和輸出、運行狀態提示、運行出錯報警等。
針對典型活動部件測試系統的研制要求,本文在模塊化與層次化的設計思想上,采用.NET技術、多線程技術與ADO數據庫技術[2],開發了基于C#的典型活動部件測控軟件,不僅實現了對該測試系統的實時通信、數據采集、數據存儲、實時曲線顯示、動態加載、數據輸出、歷史數據查詢等功能,還對通用測控軟件的設計開發以及工業測試系統的測量控制具有很重要的指導意義。
1 典型活動部件測試系統的工作原理與組成(Working principle and composition of typical moving components)
1.1 工作原理
典型活動部件測試系統主要是為了驗證典型活動部件的轉動特性以及運行壽命,在高低溫真空模擬環境下進行活動部件的無源、有源及壽命測試。在測試過程中,測控軟件通過MODBUS協議發送各種控制信號和指令給PLC,進行被測部件的驅動或加載以及電機轉速與轉向的設定,進而將高精度傳感器采集被測件的扭矩、轉速及轉角信號存儲在PLC中,然后測控軟件將從PLC中讀取的數據進行顯示、保存和導出,來完成整個測試流程。
1.2 組成
典型活動部件測試系統主要由高低溫真空模擬環境(真空罐)、驅動部分、傳感器、加載部分、數據采集、PLC控制部分、工控機、測控軟件等組成,如圖1所示。
其中,測控軟件作為該測試系統中的核心部分,應當具有美觀友好的人機界面,信息查詢靈活方便,數據存儲安全可靠,極大限度地實現易維護性和易操作性等特點[3]。因此,需研制一套測控軟件來完成測試系統所要求的以下任務:
(1)選擇測試產品(防塵密封圈、諧波減速器、無刷直流電機、步進電機、活動部件)及相應的系統配置。
(2)實時曲線(測量摩擦阻尼力矩或測量扭矩及曲線、測量轉速及曲線、加載力矩及曲線、溫度及曲線)的動態顯示。
(3)實時測量數據(累計運行時間、測量扭矩、測量轉速、電機轉速、累計圈數、累計轉角、加載力矩、溫度)的顯示、保存及輸出。
(4)運行狀態的監測(運行狀態、系統故障監測及報警)。
2 測控軟件的設計與實現(Design and Development of Measurement & Control Software)
2.1 設計思想與方法
測控軟件的設計采用模塊化與層次化的思想,各模塊間以及層次間通過接口與協議交互,使得設計的整體邏輯比較容易理解,這樣便于軟件的結構分析、設計、編程與目標實現,極大地提高了程序的重用性、靈活性、可擴展性和可維護性[3]。
.NET作為微軟最新一代的開發工具,是生成、部署和運行應用程序的平臺,以及解決規模應用程序的部署和操作難的問題。采用.NET技術可以簡化開發過程,可提供交互性的編程語言,易于與其他應用程序實現交互操作[4]。
多線程是指Windows系統支持一個進程中執行多個線程的能力。在軟件編寫中,由于需要完成具有不同功能的多個線程,而采用多線程技術,可以使多個線程同時執行,在一段時間內完成更多的任務,這樣可以大大提高CPU的利用率以及程序的運行速度和性能。
數據庫是按照數據結構來組織、存儲和管理數據的倉庫。應用數據庫技術,可以減少數據的冗余度,節省數據的存儲空間,以及使數據具有較高的獨立性和易擴展性,實現數據資源的充分共享。
2.2 軟件的設計框架
根據典型活動部件的需求分析以及軟件的設計思想與方法,開發設計了如圖2所示的測控軟件框架。
其中,設計的各個模塊分別執行不同的任務,易于優化和擴展,也在一定程度上保持良好的性能,具體分析如下:
(1)通訊模塊:通過設置相應的串口與MODBUS協議,實現測控軟件與下位機PLC的通訊。
(2)零點測試模塊:由于傳感器存在零漂現象,故在測試前需采用此模塊矯正傳感器的零點誤差。此外,該模塊還可以在不啟動電機的情況下進行手動測試,來測試系統的性能。
(3)產品信息、歷史數據與幫助文檔查看模塊:可以方便直觀地查看測試產品的信息以及相應的系統配置,根據測試的產品以及測試日期時間等來查看歷史數據,以及以HTML幫助文檔的形式查看軟件的設計流程及使用說明。
(4)運行狀態監測模塊:具有模塊化結構和強大的自診斷功能,方便對系統故障的分析和診斷。
(5)系統操作模塊:通過動態的設定電機的轉速和加載力矩的大小來達到測試效果。
(6)實時曲線顯示及測量值顯示模塊:可以實時動態顯示測試進程及當前測量值的大小,其中曲線能夠顯示當前趨勢和一段時間內的歷史過程。
(7)數據存儲、顯示與輸出模塊:通過連接Access數據庫,實現數據的存儲顯示。然后將測量數據以Excel格式輸出到磁盤上。
2.3 軟件的實現
該測控軟件運行在裝有Windows XP操作系統的工控機上,選用Microsoft Visual Studio 2010(VS2010)和Access2007作為開發平臺,采用的編程語言為C#高級語言。最后將開發設計的測控軟件使用 Visual Studio Installer 創建分發給用戶的安裝程序包,用戶可通過向導來運行安裝文件和執行安裝步驟,以安裝應用程序。以下是測控軟件實現的一些關鍵技術:
(1)串口通訊
采用MODBUS協議,可以完成串口、輸入輸出模塊地址、通訊參數、輸入輸出通道等信息的設置以及對串口的設置,進而實現測控軟件與下位機之間指令與數據的傳送。
(2)實時曲線的繪制
ZedGraph是一個用C#編寫的開源圖形組件,用于繪制任意數據集的二維線型、條型、餅型圖表,支持各種.NET版本。它以簡潔、方便、功能強大和開源等特點而成為程序開發中廣泛使用的圖表控件。通過調用ZedGraph控件實現測量數據的動態圖形化顯示。
(3)多線程的實現
由于該軟件的線程包括:主框架線程,數據采集線程,數據庫的線程,圖形顯示線程等。為避免多個線程同時訪問統一塊內存,可采用線程池。線程池可以同時運行多個任務,還可以使用框架類。對于線程同步的情況來說,它可以限制某一時刻只允許一個線程訪問資源。這種情況相當于給線程實現了鎖機制,可用lock關鍵字保證代碼的安全運行。
3 實驗結果與分析(Experimental result and analysis)
以下以防塵密封圈測試為例來說明測控軟件的實現流程。軟件的運行界面如圖3所示。
根據測試系統的測試原理,PLC通過串行口傳送由傳感器采集的數據,測控軟件實現數據的實時監控和管理。該軟件通過調用組件,實現數據顯示的圖形化;通過Access數據庫實現數據的存儲、顯示與輸出功能。實驗結果表明,基于C#的測控軟件在滿足界面美觀、各項功能運行穩定的同時,并能夠很好的實現測試系統的測試要求。
4 結論(Conclusion)
本文依據典型活動部件測試的測試要求以及軟件的需求分析,提出了基于C#的測控軟件設計開發,實現了對測試系統的實時通信、數據采集與存儲,實時曲線顯示、動態加載、歷史數據查詢等功能。該軟件運行穩定,且實時性較好,具有很好的實用價值。此外,典型活動部件的測試系統類似于單關節機器人控制系統,從而對多關節機器人控制系統的設計與開發具有很好的指導意義。
參考文獻:
[1] 邵彩云. 基于KBE的工業機器人測控軟件的研究[D].杭州:浙江大學, 2011.
[2] 王小科,徐薇.C#從入門到精通[M].2版.北京:清華大學出版社,2010.
[3] 孫傳友,孫曉斌. 測控系統原理及設計[M]. 2版.北京:北京航空航天大學出版社,2007.
[4] Kalleberg Karl Trygve,Visser Eelco, Combining Aspect-Oriented and Strategic Programming,Electronic Notes in Theoretical Computer Science,2006,147(1):5-30.
[5] 崔海全,張春梅,趙志誠. 基于C#液位過程測控軟件的設計與實現[J]. 太原科技大學學報 ,2012,33(1).