999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于WinForm的航天電磁繼電器動態特性測試系統軟件設計與實現

2020-09-26 00:58:26孫志剛蔣愛平高萌萌尹程玉王國濤
計算機測量與控制 2020年9期

孫志剛,蔣愛平,高萌萌,尹程玉,王國濤,2

(1.黑龍江大學 電子工程學院,哈爾濱 150008;2.哈爾濱工業大學 軍用電器研究所,哈爾濱 150001)

0 引言

動態特性是指一系列的電氣或機械參數在繼電器動作過程中隨時間的變化情況。首先,它包括線圈電流、表征觸點狀態的觸點電壓等電氣參數隨時間變化規律,以及根據這些電氣參數變化規律得到的吸合時間、釋放時間等時間參數。其次,它也包括銜鐵或觸頭的位置、瞬時速度以及瞬時加速度等機械參數隨時間的變化規律。為了進一步提高繼電器動態特性的測試精度與水平,哈爾濱工業大學軍用電器研究所與廈門宏發電力電器有限公司聯合開發航天電磁繼電器動態特性測試系統(下文簡稱電磁測試系統)。該系統包含時間參數測試模塊、基于高速攝像和圖像分析的動態特性分析模塊、以及壽命試驗過程中觸頭表面狀態演變測試模塊于一體,配合設計合理的硬件電路和系統控制、數據處理軟件、數據庫等構成繼電器動態特性的專用測試系統,能夠較好地實現繼電器動態特性的自動測量。

電磁測試系統完成一次測試操作后,研究人員需要在系統自帶的本地計算機上,打開指定路徑下的TXT文件或Excel文件查看數據,對圖像文件的查看同樣是訪問對應的存儲路徑。過去,對數據和圖像的分析處理停留在手工作業的方式,隨著數據仿真處理軟件的出現與發展成熟,研究人員通過優盤拷貝的方式將測試結果復制到其他電腦設備上,借助MATLAB等軟件對數據進行繪圖與圖像處理操作。上述分析過程在調用MATLAB等軟件時需要將源文件更改為dat等形式的文件,使得分析過程一體化程度不高,且穩定運行MATLAB等大型仿真軟件對電腦配置要求較高,對動態特性的分析只使用其中一部分功能,軟件資源得不到合理的分配與使用,針對性不強。此外,該過程對測試生成的文本文件和圖像文件的傳輸采用優盤拷貝的方式,機動性不高、實時性不強,現階段采用的微信等通訊工具進行發送,再次使得整個分析過程集成化程度大大下降。

根據測試設備或測試系統產生的原始結果設計一款界面化顯示的分析軟件,可以選擇基于C++語言與MFC控件進行開發設計[1],如王凱等人基于MFC設計了航空電子系統綜合自動監測設備的客戶端軟件,能很好地配合操作人員控制自動檢測設備平臺的各類儀器完成測試任務并管理測試過程中的多種信息[2]。也有設計者選擇基于C#語言與WinForm控件進行開發設計[3],如余磊等人提出一種基于C#和SQL Server的信號接收機自動校準系統軟件,其中采用雙緩沖技術解決了曲線閃爍的問題,并結合SQL Server實現高效數據存儲和管理[4]。本文在已有的研究基礎上,設計了一套基于WinForm的航天電磁繼電器動態特性測試系統軟件,軟件包括在電磁測試系統本地計算機上運行的客戶端軟件與遠程電腦設備運行的服務器軟件,通過因特網Socket多線程通信的方式,將測試結果及時高效的發送至多臺電腦設備上,服務器軟件能夠直接調用文本文件完成曲線的繪制,能夠調用圖像文件并智能化截取有效區域進行放大顯示,大大方便了研究人員的分析過程,提高了資源利用率與研究效率。

1 系統組成與功能設計

1.1 系統組成

電磁測試系統軟件由客戶端軟件與服務器軟件兩部分組成[5],其軟件組成結構圖如圖1所示。

圖1 電磁測試系統軟件組成結構圖

客戶端軟件運行在電磁測試系統的本地計算機上,在Window XP、Windows7等較早版本系統上能夠穩定運行,且對系統硬件配置要求不高,電磁測試系統完成一次測試后將測試結果存儲在指定路徑下,客戶端軟件運行后與遠程服務器建立通信連接,并選擇該路徑下的文本文件和圖像文件進行發送,通過IP地址與端口號的更換,實現向多臺電腦設備發送文件的目的。服務器軟件運行在遠程電腦設備上,默認運行在研究人員的PC電腦端,軟件同樣兼容較早與最新的Windows系統且占用較少的系統資源,服務器軟件運行后,開啟服務器監聽,經過三次握手后與客戶端建立通信連接,接收客戶端發送的文本文件和圖像文件,并根據研究人員的選擇存儲到指定路徑下,服務器軟件的圖像顯示與曲線繪制部分根據研究人員選擇的不同文本文件或圖像文件進行后續處理,通過切換已連接客戶端列表中不同的客戶端名稱,實現多線程接收不同客戶端軟件發送的文本文件和圖像文件。

1.2 功能設計

根據系統組成部分的描述,客戶端軟件主要包括:驗證登錄、連接請求、路徑查找、文件讀取與文件發送等功能模塊[6],分別實現對研究人員身份的驗證、文本文件和圖像文件存儲路徑的查找、根據IP地址和端口號發起Socket通信請求、文本文件和圖像文件的文件流讀取與開啟線程將文件流進行遠程發送等功能。

服務器軟件主要包括:驗證登錄、監聽請求、文件接收、路徑查找、文件存儲、曲線繪制、圖像顯示與數據解析等功能模塊[6],分別實現對研究人員身份的驗證、開啟服務監聽、接收文件流、文件存儲路徑查找、文件流轉文本文件或圖像文件存儲、調用文本文件繪制曲線圖、調用圖像文件顯示圖像與文本文件數據解析等功能。

2 電磁測試系統軟件總體設計

2.1 客戶端軟件設計

客戶端軟件主要運行在電磁測試系統的本地計算機上,客戶端軟件是以Visual Studio 2010為開發環境,C#編程語言開發的[7],與服務器軟件的數據通信方式是基于TCP/IP的Socket通信。程序設計主要包括驗證登錄、連接請求、路徑查找、文件讀取與文件發送5個功能模塊。

2.1.1 驗證登錄

客戶端軟件運行后進入登錄界面,研究人員輸入用戶名與登錄密碼后,軟件將輸入框內輸入的數據信息與系統內設定的數據信息進行比較判斷,驗證成功后跳出窗口提示登陸成功,并跳轉至客戶端的主顯示界面,驗證失敗同樣跳出窗口提示登錄失敗,并重置輸入框內的歷史輸入內容,等待研究人員重新輸入驗證。

2.1.2 查找與讀取

在客戶端軟件的主顯示界面,點擊“選擇文件”按鈕,調用OpenFileDialog方法啟動文件對話框,并通過其InitialDirectory屬性打開默認的存儲路徑,選擇需要發送的文本文件或圖像文件,調用FileStream方法將文本文件或圖像文件轉化成文件流,待Socket套接字初始化完成后,通過Send方法進行發送。

2.1.3 連接與傳輸

在客戶端軟件的主顯示界面,輸入需要連接電腦設備的IP地址和端口號,點擊“連接服務器”按鈕,客戶端通過服務器的IP地址和端口實例化Socket對象[8];接著在軟件程序中調用Connect方法連接到服務器;然后利用Socket提供的Send Write(getInputStream)和Recv read(getOutputStream)方法,通過I/O流對象收發數據,本文主要進行文件流發送;通信結束后,關閉I/O對象和Socket[9],上述通信過程如圖2所示。

圖2 客戶端軟件Socket通信過程

2.2 服務器軟件設計

服務器軟件運行在研究人員的PC電腦上,服務器軟件同樣是以Visual Studio 2010為開發環境,C#編程語言開發的[7],與客戶端軟件基于TCP/IP的Socket建立通信。程序設計主要包括驗證登錄、監聽請求、文件接收、路徑查找、文件存儲、曲線繪制、圖像顯示與數據解析8個功能模塊。驗證登錄模塊同樣是為了驗證PC電腦端研究人員的身份,其設計過程與客戶端類似,此處不加以贅述。

2.2.1 監聽與接收

在服務器軟件的主顯示界面,點擊“開始監聽”按鈕,利用本地連接的網絡端口實例化一個Server-Socket對象;接著調用blind方法將IP地址與端口關聯套接字結構;然后調用listen方法,使Server-Socket開始監聽端口上發來的Socket套接字請求;最后利用Accept方法返回Socket對象,同時利用ServerSocket提供的Send Write(getInputStream)和Recv read(getOutputStream)方法,對I/O進行讀寫文件流的操作,本文主要進行讀取操作;通信結束后,關閉I/O對象和ServerSocket,上述通信過程如圖3所示。

圖3 服務器軟件Socket通信過程

2.2.2 查找與存儲

服務器軟件在完成文件流接收后,主動調用OpenFileDialog方法啟動文件對話框,并通過其InitialDirectory和Filter屬性打開默認存儲路徑和默認存儲格式,確定上述過程后等待輸入文件名,點擊“確定”按鈕后調用FileStream方法將文件流存儲為文本文件或圖像文件。

2.2.3 曲線繪制

在服務器軟件的主顯示界面,點擊 “電弧曲線”或“空氣釋放”或“空氣吸合”按鈕,首先調用OpenFileDialog方法啟動文件對話框,并通過其InitialDirectory和Filter屬性設置對話框打開路徑和文本文件形式;其次調用StreamReader方法逐行讀取文本文件的數據,存儲在二維數組變量中;再次通過調用Bitmap方法設置曲線繪制的畫布,調用Graphics方法對畫布進行加載,調用Brush與Pen方法對畫筆進行設置,并繪制初始化坐標軸[10];最后,將二維數組標量中存儲的坐標對進行轉換,調用DrawImage方法根據坐標對繪制曲線。

2.2.4 圖像顯示

在服務器軟件的主顯示界面,點擊“圖片選擇”按鈕,調用OpenFileDialog方法啟動文件對話框,并通過其InitialDirectory和Filter屬性設置對話框打開路徑和圖像文件形式,設置Pannel控件的Size-Mode屬性為StretchImage,對選擇的圖片進行放大延伸顯示。

2.2.5 數據解析

在服務器軟件的主顯示界面,點擊“文件選擇”按鈕,調用OpenFileDialog方法啟動文件對話框,并通過其InitialDirectory和Filter屬性設置對話框打開路徑和文本文件形式,通過StreamReader方法讀取文本文件中的數據,并根據設定的數據解析協議對數據進行解析顯示,數據解析協議如表1所示。

表1 數據解析協議

3 軟件設計關鍵技術

3.1 多線程通信

線程是操作系統分配處理器時間的基本單元,是系統中可以并發執行的程序段,擁有起點、執行的順序系列和一個終點,一個或多個線程組成一個進程。在多線程應用程序中可以同時執行多個操作,當一個線程必須阻塞時,CPU可以運行其他線程而不是等待,這樣可以大幅度提高程序的執行效率[11]。

在本文中,每個電磁測試系統用單個線程啟動連接請求,研究人員的PC電腦端通過多個線程與各電磁測試系統建立通信鏈接,當其中一個電磁測試系統完成測試并運行客戶端軟件進行文件發送時,服務器軟件可以通過其余線程監聽其他電磁測試系統的連接請求與文件發送,避免了單線程通信的大數據通信或多線程通信的同步數據發送造成的緩沖池堵塞等問題。

C#的System.Threading命名空間提供了大量的類和接口來支持多線程通信,其中,Thread類用于對線程進行管理,包括線程的創建、啟動、終止、合并以及休眠等。.NET可以通過以下語句創建并啟動一個新的線程:

Class1 c1 = new Class1();

Thread thread = new Thread(new ThreadStart(c1.ThreadFunc));

thread.Start();

一旦方法Start()被調用,該線程將保持“alive”狀態,可以通過它的IsAlive屬性進行查詢。

Thread類的方法Thread.Suspend()可以暫停一個正在運行的線程,而Thread.Resume()則可以讓暫停的線程繼續執行。如果希望線程暫停一段時間以便CPU將時間片中剩余部分分配給其他線程,可以調用Thread.Sleep方法[11]。

線程啟動后,如果線程執行的方法運行結束,則線程終止。另外,也可以通過調用Thread類的Abort方法讓線程強行終止,例如:

Thread td = new Thread(方法名)

td.Abort();

3.2 雙緩沖繪圖

本文在窗體中使用GDI+技術繪圖時,有時會發現繪制出的圖形線條不夠流暢,或者在改變窗體大小時會出現不斷閃爍的現象。繪制的圖形線條不流暢,是因為窗體在重繪時其自身的重繪與圖形的重繪之間存在時間差,從而導致這兩者之間的圖像顯示不協調;改變窗體大小出現的閃爍現象,是因為窗體在重繪時其自身的背景顏色與圖形顏色頻繁交替,從而造成人們視覺上的閃爍現象。本文采用雙緩沖技術繪制曲線圖,則可以解決上述繪圖中出現的若干問題[12]。

本文在實現過程中,首先通過Bitmap類的構造函數創建一個位圖實例,然后通過調用Graphics類的FromImage方法創建畫布對象,最后調用Graphics類的DrawImage方法實現在窗體上繪制圖形。下面對本文中用到的關鍵技術進行詳細講解。

1)Bitmap類的構造函數:

該構造函數用來在內存中創建位圖實例,其重載方法有多種,本文中用到的重載形式如下:

public Bitmap(int width, int height);

2)FromImage方法:

該方法通過加載Image實例創建畫布對象,語法格式如下:

public static Graphics FromImage(Image image);

3)DrawImage方法:

該方法實現在畫布上繪制圖像,其重載方式有多種,本文中用到的重載形式如下:

public void DrawImage(Image image, int x, int y);

4 測試結果與分析

4.1 客戶端軟件

軟件運行后進入登錄界面,驗證用戶名與密碼成功后,提示登陸成功,如圖4所示。

圖4 客戶端驗證登陸成功

主顯示界面輸入服務器IP地址和端口號,點擊“連接服務器”按鈕發起連接請求,并與指定服務器建立通信連接,點擊“選擇文件”按鈕選擇存儲路徑下的文本文件或圖像文件,點擊“發送文件”進行遠程發送,如圖5所示。

圖5 存儲路徑下文件選擇

4.2 服務器軟件

驗證用戶名與密碼成功后進入主顯示界面,點擊“開始監聽”按鈕后監聽客戶端的連接請求,通信鏈路建立后,接收客戶端發送的文本文件或圖像文件并打開默認路徑的對話框,選擇路徑和輸入文件名后進行存儲,如圖6所示。

圖6 接收客戶端發送的文件

文件全部存儲完成后,分別點擊“圖片選擇”、“文件選擇”、“電弧曲線”、“空氣釋放”與“空氣吸合”按鈕,進行曲線繪制與圖像顯示,上述操作完成后的軟件顯示界面如圖7所示。

圖7 操作完成后的軟件顯示界面

4.3 測試總結

針對現有條件下航天電磁繼電器動態特性測試系統存在的一體化軟件不配套、人工作業分析效率低等問題,設計了一套基于WinForm的動態特性測試系統軟件。其中,客戶端軟件運行在電磁測試系統本地計算機上,服務器軟件運行在研究人員的PC電腦端,基于Socket多線程通信實現雙方的文本文件和圖像文件的實時傳輸,解決了人工作業時數據拷貝不便的問題,基于雙緩沖技術繪制文本文件的曲線圖和基于圖像調用與局部放大技術的圖像顯示,解決了人工作業分析效率低下的問題,整套設備與電磁測試系統完美對接,提高了整體的集成度。經過實際運行測試,客戶端軟件與服務器軟件建立的Socket通信穩定,文件傳輸速率快且丟包率低,服務器軟件繪制的曲線顯示正常,能夠通過不同顏色進行對比分析,圖像加載快捷,數據解析顯示正確,測試結果達到了本文預期設定的目標。

5 結束語

航天電磁繼電器動態特性測試系統作為軍用環境下對航天電磁器件的動態特性參數進行測試的重要實驗系統(設備),其測試產生的文本文件與圖像文件表征了航天電磁器件的性能優良程度,對文本文件和圖像文件的處理就顯得尤為重要。人工作業環境下對大量數據與圖像的處理帶來時間成本的浪費,借助第三方仿真分析軟件針對性不強且資源浪費嚴重。本文基于WinForm設計了一套針對航天電磁繼電器動態特性測試系統的軟件,能夠實現對文本文件與圖像文件的快速傳輸與處理,系統的信息化程度、人機交互能力高,大大提高了研究人員的科研效率,同時該系統可拓展性與移植性強,兼容電弧特性的分析使用。目前,該系統軟件已經在哈爾濱工業大學軍用電器研究所初步得到應用。

主站蜘蛛池模板: 亚洲国产91人成在线| 无码专区国产精品第一页| 亚洲精品爱草草视频在线| 久久人人97超碰人人澡爱香蕉| 精品国产一二三区| 国产午夜一级毛片| 免费看a毛片| 日韩黄色大片免费看| 国产成人一区免费观看| 久久国产精品波多野结衣| 国产精品hd在线播放| 理论片一区| 欧美va亚洲va香蕉在线| 成人欧美在线观看| 色婷婷在线播放| 91精品国产91久久久久久三级| 91福利一区二区三区| 久久国产V一级毛多内射| 久久青草热| 婷婷开心中文字幕| 国产日韩欧美中文| 丝袜高跟美脚国产1区| 欧美日韩高清在线| 国产青榴视频在线观看网站| 欧美精品伊人久久| 找国产毛片看| 五月天丁香婷婷综合久久| 播五月综合| 久久青草免费91线频观看不卡| 高清国产在线| 福利视频一区| 亚洲人成电影在线播放| 亚洲午夜福利精品无码不卡| 欧美专区在线观看| 一级全免费视频播放| 国产三级国产精品国产普男人| 国产国模一区二区三区四区| 激情在线网| 亚洲精品日产AⅤ| 老司机午夜精品视频你懂的| 国产精品无码AV片在线观看播放| 免费人成又黄又爽的视频网站| 国产成人综合亚洲网址| 欧美性久久久久| 99视频精品全国免费品| 欧美中文一区| 亚洲天堂首页| 超清无码一区二区三区| 人妖无码第一页| 99热这里只有免费国产精品| 国产精品国产主播在线观看| 精品在线免费播放| 黄色网站不卡无码| 高潮毛片免费观看| 国产情侣一区二区三区| 3D动漫精品啪啪一区二区下载| 99热这里只有精品在线播放| 四虎永久在线视频| 亚洲成在线观看 | 国产精品微拍| 国模私拍一区二区三区| 伊人精品成人久久综合| 91免费国产高清观看| 日韩欧美国产另类| 多人乱p欧美在线观看| 精品一区二区无码av| 99re热精品视频中文字幕不卡| 午夜日韩久久影院| 国产成人综合亚洲欧美在| 日本国产在线| 国产91av在线| 国产毛片网站| 国产伦片中文免费观看| 91精品国产一区自在线拍| 亚洲人成网7777777国产| 91日本在线观看亚洲精品| 国产精品成人免费视频99| 欧美一区二区三区欧美日韩亚洲| 欧美中日韩在线| 黄色污网站在线观看| 狠狠操夜夜爽| 亚洲人成网站在线播放2019|