王蕾 賈利軍 付中濤
摘 要:為了驗證典型活動部件在高低溫真空模擬環(huán)境中的轉(zhuǎn)動特性及運(yùn)行壽命,分析了典型活動部件測試系統(tǒng)的工作原理與組成部分,并提出了測控軟件測試系統(tǒng)要完成的任務(wù),基于模塊化與層次化設(shè)計思想,建立了測控軟件的框架結(jié)構(gòu),利用.NET技術(shù)、多線程技術(shù)與數(shù)據(jù)庫技術(shù),借助C#語言開發(fā)了典型活動部件測控軟件,實(shí)現(xiàn)了典型活動部件系統(tǒng)的實(shí)時通信、數(shù)據(jù)采集與存儲,實(shí)時曲線顯示、動態(tài)加載、歷史數(shù)據(jù)查詢等功能。最后,以防塵密封圈測試為例,驗證了該方法的可行性和有效性。
關(guān)鍵詞:測控軟件;設(shè)計開發(fā);C#;典型活動部件
中圖分類號:TP2735 文獻(xiàn)標(biāo)識碼: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)
近年來,隨著現(xiàn)代工業(yè)的飛速發(fā)展以及計算機(jī)在工業(yè)領(lǐng)域的廣泛普及,對工業(yè)測試系統(tǒng)的自動化和信息集成化提出越來越高的要求。而測控軟件作為工業(yè)測試系統(tǒng)的核心部分,是工業(yè)計算機(jī)完成對整個測試系統(tǒng)操作的管理命令集,以及用戶掌握系統(tǒng)工作狀況的最直接手段,其質(zhì)量直接影響到系統(tǒng)的安全性和控制效果,從而影響到整個測試系統(tǒng)的穩(wěn)定性和產(chǎn)品性能[1]。因此,所設(shè)計開發(fā)的測控軟件應(yīng)該具有實(shí)時性、可靠性、通用性、可維護(hù)性、易于操作等特點(diǎn)。
月面巡視探測器移動分系統(tǒng)和結(jié)構(gòu)、機(jī)構(gòu)分系統(tǒng)的驅(qū)動機(jī)構(gòu)、傳動裝置由驅(qū)動電機(jī)、傳感器、防塵密封圈、齒輪副、軸承、諧波減速器等多種典型活動部件組成,為驗證活動部件在復(fù)雜月面環(huán)境下的轉(zhuǎn)動特性和運(yùn)行壽命,需要進(jìn)行模擬極限高低溫、超低真空環(huán)境下活動組、部件的性能與壽命測試。測試信息需要包括摩擦阻尼力矩及曲線、測量扭矩及曲線、測量轉(zhuǎn)速及曲線、加載力矩及曲線、溫度及曲線、轉(zhuǎn)數(shù)與累積運(yùn)行時間、測試數(shù)據(jù)實(shí)時存儲和輸出、運(yùn)行狀態(tài)提示、運(yùn)行出錯報警等。
針對典型活動部件測試系統(tǒng)的研制要求,本文在模塊化與層次化的設(shè)計思想上,采用.NET技術(shù)、多線程技術(shù)與ADO數(shù)據(jù)庫技術(shù)[2],開發(fā)了基于C#的典型活動部件測控軟件,不僅實(shí)現(xiàn)了對該測試系統(tǒng)的實(shí)時通信、數(shù)據(jù)采集、數(shù)據(jù)存儲、實(shí)時曲線顯示、動態(tài)加載、數(shù)據(jù)輸出、歷史數(shù)據(jù)查詢等功能,還對通用測控軟件的設(shè)計開發(fā)以及工業(yè)測試系統(tǒng)的測量控制具有很重要的指導(dǎo)意義。
1 典型活動部件測試系統(tǒng)的工作原理與組成(Working principle and composition of typical moving components)
1.1 工作原理
典型活動部件測試系統(tǒng)主要是為了驗證典型活動部件的轉(zhuǎn)動特性以及運(yùn)行壽命,在高低溫真空模擬環(huán)境下進(jìn)行活動部件的無源、有源及壽命測試。在測試過程中,測控軟件通過MODBUS協(xié)議發(fā)送各種控制信號和指令給PLC,進(jìn)行被測部件的驅(qū)動或加載以及電機(jī)轉(zhuǎn)速與轉(zhuǎn)向的設(shè)定,進(jìn)而將高精度傳感器采集被測件的扭矩、轉(zhuǎn)速及轉(zhuǎn)角信號存儲在PLC中,然后測控軟件將從PLC中讀取的數(shù)據(jù)進(jìn)行顯示、保存和導(dǎo)出,來完成整個測試流程。
1.2 組成
典型活動部件測試系統(tǒng)主要由高低溫真空模擬環(huán)境(真空罐)、驅(qū)動部分、傳感器、加載部分、數(shù)據(jù)采集、PLC控制部分、工控機(jī)、測控軟件等組成,如圖1所示。
其中,測控軟件作為該測試系統(tǒng)中的核心部分,應(yīng)當(dāng)具有美觀友好的人機(jī)界面,信息查詢靈活方便,數(shù)據(jù)存儲安全可靠,極大限度地實(shí)現(xiàn)易維護(hù)性和易操作性等特點(diǎn)[3]。因此,需研制一套測控軟件來完成測試系統(tǒng)所要求的以下任務(wù):
摘 要:為了驗證典型活動部件在高低溫真空模擬環(huán)境中的轉(zhuǎn)動特性及運(yùn)行壽命,分析了典型活動部件測試系統(tǒng)的工作原理與組成部分,并提出了測控軟件測試系統(tǒng)要完成的任務(wù),基于模塊化與層次化設(shè)計思想,建立了測控軟件的框架結(jié)構(gòu),利用.NET技術(shù)、多線程技術(shù)與數(shù)據(jù)庫技術(shù),借助C#語言開發(fā)了典型活動部件測控軟件,實(shí)現(xiàn)了典型活動部件系統(tǒng)的實(shí)時通信、數(shù)據(jù)采集與存儲,實(shí)時曲線顯示、動態(tài)加載、歷史數(shù)據(jù)查詢等功能。最后,以防塵密封圈測試為例,驗證了該方法的可行性和有效性。
關(guān)鍵詞:測控軟件;設(shè)計開發(fā);C#;典型活動部件
中圖分類號:TP2735 文獻(xiàn)標(biāo)識碼: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)
近年來,隨著現(xiàn)代工業(yè)的飛速發(fā)展以及計算機(jī)在工業(yè)領(lǐng)域的廣泛普及,對工業(yè)測試系統(tǒng)的自動化和信息集成化提出越來越高的要求。而測控軟件作為工業(yè)測試系統(tǒng)的核心部分,是工業(yè)計算機(jī)完成對整個測試系統(tǒng)操作的管理命令集,以及用戶掌握系統(tǒng)工作狀況的最直接手段,其質(zhì)量直接影響到系統(tǒng)的安全性和控制效果,從而影響到整個測試系統(tǒng)的穩(wěn)定性和產(chǎn)品性能[1]。因此,所設(shè)計開發(fā)的測控軟件應(yīng)該具有實(shí)時性、可靠性、通用性、可維護(hù)性、易于操作等特點(diǎn)。
月面巡視探測器移動分系統(tǒng)和結(jié)構(gòu)、機(jī)構(gòu)分系統(tǒng)的驅(qū)動機(jī)構(gòu)、傳動裝置由驅(qū)動電機(jī)、傳感器、防塵密封圈、齒輪副、軸承、諧波減速器等多種典型活動部件組成,為驗證活動部件在復(fù)雜月面環(huán)境下的轉(zhuǎn)動特性和運(yùn)行壽命,需要進(jìn)行模擬極限高低溫、超低真空環(huán)境下活動組、部件的性能與壽命測試。測試信息需要包括摩擦阻尼力矩及曲線、測量扭矩及曲線、測量轉(zhuǎn)速及曲線、加載力矩及曲線、溫度及曲線、轉(zhuǎn)數(shù)與累積運(yùn)行時間、測試數(shù)據(jù)實(shí)時存儲和輸出、運(yùn)行狀態(tài)提示、運(yùn)行出錯報警等。
針對典型活動部件測試系統(tǒng)的研制要求,本文在模塊化與層次化的設(shè)計思想上,采用.NET技術(shù)、多線程技術(shù)與ADO數(shù)據(jù)庫技術(shù)[2],開發(fā)了基于C#的典型活動部件測控軟件,不僅實(shí)現(xiàn)了對該測試系統(tǒng)的實(shí)時通信、數(shù)據(jù)采集、數(shù)據(jù)存儲、實(shí)時曲線顯示、動態(tài)加載、數(shù)據(jù)輸出、歷史數(shù)據(jù)查詢等功能,還對通用測控軟件的設(shè)計開發(fā)以及工業(yè)測試系統(tǒng)的測量控制具有很重要的指導(dǎo)意義。
1 典型活動部件測試系統(tǒng)的工作原理與組成(Working principle and composition of typical moving components)
1.1 工作原理
典型活動部件測試系統(tǒng)主要是為了驗證典型活動部件的轉(zhuǎn)動特性以及運(yùn)行壽命,在高低溫真空模擬環(huán)境下進(jìn)行活動部件的無源、有源及壽命測試。在測試過程中,測控軟件通過MODBUS協(xié)議發(fā)送各種控制信號和指令給PLC,進(jìn)行被測部件的驅(qū)動或加載以及電機(jī)轉(zhuǎn)速與轉(zhuǎn)向的設(shè)定,進(jìn)而將高精度傳感器采集被測件的扭矩、轉(zhuǎn)速及轉(zhuǎn)角信號存儲在PLC中,然后測控軟件將從PLC中讀取的數(shù)據(jù)進(jìn)行顯示、保存和導(dǎo)出,來完成整個測試流程。
1.2 組成
典型活動部件測試系統(tǒng)主要由高低溫真空模擬環(huán)境(真空罐)、驅(qū)動部分、傳感器、加載部分、數(shù)據(jù)采集、PLC控制部分、工控機(jī)、測控軟件等組成,如圖1所示。
其中,測控軟件作為該測試系統(tǒng)中的核心部分,應(yīng)當(dāng)具有美觀友好的人機(jī)界面,信息查詢靈活方便,數(shù)據(jù)存儲安全可靠,極大限度地實(shí)現(xiàn)易維護(hù)性和易操作性等特點(diǎn)[3]。因此,需研制一套測控軟件來完成測試系統(tǒng)所要求的以下任務(wù):
(1)選擇測試產(chǎn)品(防塵密封圈、諧波減速器、無刷直流電機(jī)、步進(jìn)電機(jī)、活動部件)及相應(yīng)的系統(tǒng)配置。
(2)實(shí)時曲線(測量摩擦阻尼力矩或測量扭矩及曲線、測量轉(zhuǎn)速及曲線、加載力矩及曲線、溫度及曲線)的動態(tài)顯示。
(3)實(shí)時測量數(shù)據(jù)(累計運(yùn)行時間、測量扭矩、測量轉(zhuǎn)速、電機(jī)轉(zhuǎn)速、累計圈數(shù)、累計轉(zhuǎn)角、加載力矩、溫度)的顯示、保存及輸出。
(4)運(yùn)行狀態(tài)的監(jiān)測(運(yùn)行狀態(tài)、系統(tǒng)故障監(jiān)測及報警)。
2 測控軟件的設(shè)計與實(shí)現(xiàn)(Design and Development of Measurement & Control Software)
2.1 設(shè)計思想與方法
測控軟件的設(shè)計采用模塊化與層次化的思想,各模塊間以及層次間通過接口與協(xié)議交互,使得設(shè)計的整體邏輯比較容易理解,這樣便于軟件的結(jié)構(gòu)分析、設(shè)計、編程與目標(biāo)實(shí)現(xiàn),極大地提高了程序的重用性、靈活性、可擴(kuò)展性和可維護(hù)性[3]。
.NET作為微軟最新一代的開發(fā)工具,是生成、部署和運(yùn)行應(yīng)用程序的平臺,以及解決規(guī)模應(yīng)用程序的部署和操作難的問題。采用.NET技術(shù)可以簡化開發(fā)過程,可提供交互性的編程語言,易于與其他應(yīng)用程序?qū)崿F(xiàn)交互操作[4]。
多線程是指Windows系統(tǒng)支持一個進(jìn)程中執(zhí)行多個線程的能力。在軟件編寫中,由于需要完成具有不同功能的多個線程,而采用多線程技術(shù),可以使多個線程同時執(zhí)行,在一段時間內(nèi)完成更多的任務(wù),這樣可以大大提高CPU的利用率以及程序的運(yùn)行速度和性能。
數(shù)據(jù)庫是按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲和管理數(shù)據(jù)的倉庫。應(yīng)用數(shù)據(jù)庫技術(shù),可以減少數(shù)據(jù)的冗余度,節(jié)省數(shù)據(jù)的存儲空間,以及使數(shù)據(jù)具有較高的獨(dú)立性和易擴(kuò)展性,實(shí)現(xiàn)數(shù)據(jù)資源的充分共享。
2.2 軟件的設(shè)計框架
根據(jù)典型活動部件的需求分析以及軟件的設(shè)計思想與方法,開發(fā)設(shè)計了如圖2所示的測控軟件框架。
其中,設(shè)計的各個模塊分別執(zhí)行不同的任務(wù),易于優(yōu)化和擴(kuò)展,也在一定程度上保持良好的性能,具體分析如下:
(1)通訊模塊:通過設(shè)置相應(yīng)的串口與MODBUS協(xié)議,實(shí)現(xiàn)測控軟件與下位機(jī)PLC的通訊。
(2)零點(diǎn)測試模塊:由于傳感器存在零漂現(xiàn)象,故在測試前需采用此模塊矯正傳感器的零點(diǎn)誤差。此外,該模塊還可以在不啟動電機(jī)的情況下進(jìn)行手動測試,來測試系統(tǒng)的性能。
(3)產(chǎn)品信息、歷史數(shù)據(jù)與幫助文檔查看模塊:可以方便直觀地查看測試產(chǎn)品的信息以及相應(yīng)的系統(tǒng)配置,根據(jù)測試的產(chǎn)品以及測試日期時間等來查看歷史數(shù)據(jù),以及以HTML幫助文檔的形式查看軟件的設(shè)計流程及使用說明。
(4)運(yùn)行狀態(tài)監(jiān)測模塊:具有模塊化結(jié)構(gòu)和強(qiáng)大的自診斷功能,方便對系統(tǒng)故障的分析和診斷。
(5)系統(tǒng)操作模塊:通過動態(tài)的設(shè)定電機(jī)的轉(zhuǎn)速和加載力矩的大小來達(dá)到測試效果。
(6)實(shí)時曲線顯示及測量值顯示模塊:可以實(shí)時動態(tài)顯示測試進(jìn)程及當(dāng)前測量值的大小,其中曲線能夠顯示當(dāng)前趨勢和一段時間內(nèi)的歷史過程。
(7)數(shù)據(jù)存儲、顯示與輸出模塊:通過連接Access數(shù)據(jù)庫,實(shí)現(xiàn)數(shù)據(jù)的存儲顯示。然后將測量數(shù)據(jù)以Excel格式輸出到磁盤上。
2.3 軟件的實(shí)現(xiàn)
該測控軟件運(yùn)行在裝有Windows XP操作系統(tǒng)的工控機(jī)上,選用Microsoft Visual Studio 2010(VS2010)和Access2007作為開發(fā)平臺,采用的編程語言為C#高級語言。最后將開發(fā)設(shè)計的測控軟件使用 Visual Studio Installer 創(chuàng)建分發(fā)給用戶的安裝程序包,用戶可通過向?qū)磉\(yùn)行安裝文件和執(zhí)行安裝步驟,以安裝應(yīng)用程序。以下是測控軟件實(shí)現(xiàn)的一些關(guān)鍵技術(shù):
(1)串口通訊
采用MODBUS協(xié)議,可以完成串口、輸入輸出模塊地址、通訊參數(shù)、輸入輸出通道等信息的設(shè)置以及對串口的設(shè)置,進(jìn)而實(shí)現(xiàn)測控軟件與下位機(jī)之間指令與數(shù)據(jù)的傳送。
(2)實(shí)時曲線的繪制
ZedGraph是一個用C#編寫的開源圖形組件,用于繪制任意數(shù)據(jù)集的二維線型、條型、餅型圖表,支持各種.NET版本。它以簡潔、方便、功能強(qiáng)大和開源等特點(diǎn)而成為程序開發(fā)中廣泛使用的圖表控件。通過調(diào)用ZedGraph控件實(shí)現(xiàn)測量數(shù)據(jù)的動態(tài)圖形化顯示。
(3)多線程的實(shí)現(xiàn)
由于該軟件的線程包括:主框架線程,數(shù)據(jù)采集線程,數(shù)據(jù)庫的線程,圖形顯示線程等。為避免多個線程同時訪問統(tǒng)一塊內(nèi)存,可采用線程池。線程池可以同時運(yùn)行多個任務(wù),還可以使用框架類。對于線程同步的情況來說,它可以限制某一時刻只允許一個線程訪問資源。這種情況相當(dāng)于給線程實(shí)現(xiàn)了鎖機(jī)制,可用lock關(guān)鍵字保證代碼的安全運(yùn)行。
3 實(shí)驗結(jié)果與分析(Experimental result and analysis)
以下以防塵密封圈測試為例來說明測控軟件的實(shí)現(xiàn)流程。軟件的運(yùn)行界面如圖3所示。
根據(jù)測試系統(tǒng)的測試原理,PLC通過串行口傳送由傳感器采集的數(shù)據(jù),測控軟件實(shí)現(xiàn)數(shù)據(jù)的實(shí)時監(jiān)控和管理。該軟件通過調(diào)用組件,實(shí)現(xiàn)數(shù)據(jù)顯示的圖形化;通過Access數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)的存儲、顯示與輸出功能。實(shí)驗結(jié)果表明,基于C#的測控軟件在滿足界面美觀、各項功能運(yùn)行穩(wěn)定的同時,并能夠很好的實(shí)現(xiàn)測試系統(tǒng)的測試要求。
4 結(jié)論(Conclusion)
本文依據(jù)典型活動部件測試的測試要求以及軟件的需求分析,提出了基于C#的測控軟件設(shè)計開發(fā),實(shí)現(xiàn)了對測試系統(tǒng)的實(shí)時通信、數(shù)據(jù)采集與存儲,實(shí)時曲線顯示、動態(tài)加載、歷史數(shù)據(jù)查詢等功能。該軟件運(yùn)行穩(wěn)定,且實(shí)時性較好,具有很好的實(shí)用價值。此外,典型活動部件的測試系統(tǒng)類似于單關(guān)節(jié)機(jī)器人控制系統(tǒng),從而對多關(guān)節(jié)機(jī)器人控制系統(tǒng)的設(shè)計與開發(fā)具有很好的指導(dǎo)意義。
參考文獻(xiàn):
[1] 邵彩云. 基于KBE的工業(yè)機(jī)器人測控軟件的研究[D].杭州:浙江大學(xué), 2011.
[2] 王小科,徐薇.C#從入門到精通[M].2版.北京:清華大學(xué)出版社,2010.
[3] 孫傳友,孫曉斌. 測控系統(tǒng)原理及設(shè)計[M]. 2版.北京:北京航空航天大學(xué)出版社,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#液位過程測控軟件的設(shè)計與實(shí)現(xiàn)[J]. 太原科技大學(xué)學(xué)報 ,2012,33(1).