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

某火炮電機調速系統監測軟件設計與實現

2017-02-02 07:59:09任海波焦靈俠
火炮發射與控制學報 2017年4期

任海波,郭 敏,焦靈俠,周 楊,楊 燕

(1.西北機電工程研究所,陜西 咸陽 712099;2.榆林學院,陜西 榆林 719000;3.西安工業大學,陜西 西安 710021)

在火炮伺服系統中,電機調速系統的各項性能直接影響到火炮系統的作戰性能,為達到指標要求,在電機調速系統調試的過程中,需要對其多項高速變化的參數進行實時監測,因此對監測軟件的實時性和穩定性要求較高。目前多采用將數據以文件的形式記錄下來,利用MATLAB進行繪圖,再進行比較分析。存在操作繁瑣、實時性差和調試效率低等缺點。

作為主流的可視化開發環境VC++6.0具有界面友好,功能強大,開發靈活等優點,文獻[1]中采用的CDC類開發繪圖模塊,存在開發周期長和難度高的缺點,而美國NI (National Instuments)公司為VC++6.0開發、提供了一個集成式套件,即Measurement Studio 6.0,包括了各種常用測量和自動化控件、工具和類庫[2],可以補償VC開發圖形控件時存在的缺陷。

筆者提出采用VC++6.0和Measurement Studio 6.0聯合開發的某火炮電機調速系統監測軟件,其具備對系統參數實時數據采集、實時顯示、數據保存和數據回放等功能。

1 軟件總體設計

系統連接示意圖如圖1所示,某火炮電機調速系統監測軟件運行在PC機上,調試系統通過USBCANⅡ連接,某火炮電機調速系統和PC機按照約定的通信協議將需要監測的數字量,以曲線、數字或指示燈等方式顯示在人機交互界面上。

PC機和某火炮電機調速系統之間的通信方式為主從問答方式。PC機向某火炮電機調速系統發送命令幀,某火炮電機調速系統接收到命令幀后向PC機發送響應幀,發送頻率為1 ms一幀,從而實現數據交換。

1.1 軟件架構

某火炮電機調速系統監測軟件主要由數據收發模塊、數據處理模塊和數據顯示3個模塊組成,如圖2所示。數據接收模塊作為通信接口主要負責數據的實時接收,數據處理模塊負責根據通信協議對數據進行解析,以FIFO的模式進行存取,并將數據以文件的形式記錄下來。數據顯示模塊主要負責為用戶提供一個良好的人機交互界面,在圖形顯示區域連續動態地顯示波形。

1.2 開發環境

某火炮電機調速系統監測軟件在Windows XP操作系統下,采用VC++6.0和Measurement Studio 6.0混合編程的模式開發。VC++6.0為用戶提供類庫和控件快速完成人機交互界面設計。Measurement Studio 6.0作為專業的虛擬儀器控件以ActiveX的形式嵌入到VC++6.0環境中,在CWGraph控件的“屬性”中可以快速地設計出調試軟件需要顯示的各波形的各項屬性,降低了軟件開發難度,縮短了開發周期。

2 監測軟件的設計與實現

監測軟件為用戶提供了良好的人機交互界面,主要功能有數據采集、數據解析、波形顯示、x軸和y軸動態縮放、數據保存和歷史數據回放等功能。

2.1 通信協議

CAN總線采用CAN 2.0協議規范,波特率為500 Kbit/s,標準信息幀格式;CAN總線網絡采用樹形拓撲結構,由驅動器和上位機兩個通信節點構成。

驅動器向上位機發送工作狀態信息,幀ID: 0x102,共8個字節。幀格式如圖3所示。 Data 0表示幀序列編碼:以0~255循環;Data 1表示A相電流,Data 2表示B相電流,Data 3表示q軸電流,所有電流的數據類型為有符號整數,用0~255表示-128~127 A;Data 4和Data 5高四位表示位置主令,Data 6和Data 7高四位表示位置反饋,所有位置的數據類型為無符號整數,用0~4 095表示0~4 095密位;本文不涉及上位機發送到驅動器的控制命令。

2.2 監測軟件簡要介紹

監測軟件的主界面分為波形顯示區、波形控制區和命令控制區,如圖4所示。

2.2.1 波形顯示區

在火炮伺服系統中,用高低和方位兩個方向分別控制,因此將波形顯示區分為高低和方位兩個區。每個區可同時顯示5條曲線,分別為位置主令、位置反饋、A相電流、B相電流和q軸電流,每條曲線共用時間軸,位置主令和位置反饋共用一個y軸,A相電流、B相電流和q軸電流共用一個y軸,出于簡化軟件考慮,只設置一個y軸,將各項電流值擴大10倍后再顯示,每10 密位的刻度對應1 A的電流。

用戶通過在曲線顯示區域雙擊鼠標左鍵,全屏顯示該曲線顯示區域,也可通過按住鼠標左鍵拖動來移動顯示曲線,通過撥動鼠標滾輪縮放顯示曲線。

2.2.2 波形控制區

用戶可以通過設置x軸和y軸的范圍對曲線進行縮放和拖移,也可用鼠標進行拖移或縮放操作。

2.2.3 命令控制區

用戶在此設置驅動器的執行命令,并通過相應的按鈕實現向驅動器發送命令、暫停、重啟、保存數據和歷史數據回放等操作。

2.3 關鍵技術

在監測軟件設計過程中,高速實時數據采集、數據處理和顯示的同時進行是軟件設計的難點,為了滿足數據采集、處理和顯示的實時性、可靠性、完整性的要求,筆者采用將數據的采集和處理與數據顯示分開處理,實現軟件實時性;利用數據緩沖技術將數據接收線程的數據暫存,避免丟數,實現數據的完整性;由于NI控件不是線程安全,在線程中刷新數據,會出現不可預知的異常[3],因此,利用MFC的消息機制[4],通過發送消息的模式,通知繪圖控件刷新界面數據。

1)采用數據接收線程讀取CAN總線上的數據,由于數據采集率為1 kHz,按照經驗,Windows XP操作系統允許用戶最多20 ms進入一次線程,且CAN本身自帶數據緩沖功能,數據接收線程每次處理完數據后休眠20 ms,再進行數據接收,當數據接收線程進入休眠時,并達到了重繪點數,即可進行波形重繪,這樣既不會丟失數據,又可分出CPU資源進行數據處理,從而實現數據實時接收與波形實時繪制同時進行。

2) 由于數據采集率為1 kHz,而波形的重繪頻率較低,一般不會超過60 Hz,因此,采用數據緩沖技術,即環形緩沖區[5],將采集到的數據放入環形緩沖區,當檢測到環形緩沖區的數據達到重繪點數(128個)時,便向主界面發送重繪波形的消息,對波形進行刷新。

3) 由于NI控件不是線程安全的,用戶不能在線程中刷新繪圖控件,因此監測軟件自定義了刷新消息,通過發送消息的方式,驅動繪圖控件刷新。

2.4 監測軟件關鍵功能的詳細設計

2.4.1 數據接收模塊

首先,在監測軟件初始化程序中完成以下操作:創建并啟動數據接收線程;加載周立功USBCANⅡ驅動程序;設置和啟動CAN。

然后,在數據接收線程中采集循環,循環讀取CAN數據,根據通信協議解析后,將數據依次存放至環形緩沖區中。

在軟件退出時,關閉CAN和退出數據接收線程。

2.4.2 數據處理模塊

數據處理模塊包括數據解析、數據緩存和數據保存3個模塊,數據處理流程如下:

依據通信協議規定,位置主令值的解析方法為:

Pvalue=(float)(X+(Y& 0x0f)*256)

(1)

式中:Pvalue表示實際的位置值;X和Y分別為驅動器向上位機發送的數據第4字節和第5字節,位置反饋值的解析方法同理。

A相電流值的表示范圍壓縮到-128~127,解析方法為

Ivalue=(float)(Z-128)

(2)

式中:Ivalue表示實際的A相電流值;Z表示驅動器向上位機發送的數據第1字節,B相電流值和q軸電流值的解析方法同理。

在監測軟件初始化程序中,完成建立環形緩沖區對象,并設置環形緩沖區的深度為4 K字節,在數據接收線程中,將解析后的數據依次寫入環形緩沖區,在得到更新波形數據的消息時,在消息處理函數中,讀緩沖區數據。當環形緩沖區滿時,將“最早”的數據丟棄,將“最新”的數據寫入緩沖區。

當數據需要保存時,執行數據保存操作時,先新建*.txt類型的文本,文本名按“data”+當前時間的規則命名,將接收到的數據以字符串形式保存在文本中。

數據處理流程圖如圖5所示。

2.4.3 數據顯示模塊

數據顯示模塊主要包括波形顯示單元和波形操控單元。

2.4.3.1 波形顯式單元

波形顯示單元有兩種狀態,即工作狀態和回放狀態,在不同的狀態下,數據源、數據處理和顯示方式不同。當其處于工作狀態時,數據顯示流程如圖6所示。

數據來自CAN總線,為了使波形顯示流暢完整,需要降低波形的刷新頻率,以波形的重繪頻率刷新曲線,圖形控件的繪圖數組長度設置為1 024字節,繪圖數組的大小決定了一屏能顯示波形的最長時間,如果用戶需要顯示更長時間的波形,必須增大繪圖數組。每當緩沖區的數據量達到128個時,將繪圖數組第0~127序列的數據刪除,再將128~1 023序列的數依次前移128位,再將最新的128個數放入數組的最后,如圖7所示[6]。因此,當前圖形控件的數據是實時顯示的,能觀察到的波形數據只有最新的1 024組數據。

當其處于回放狀態時,數據來源于文本文件,當用戶按下“打開數據”的按鈕時,按照命名規則找到用戶要回放的數據文件,因為每個文件存儲的數據量不等,因此,根據具體文件的數據量重新設置圖形控件的繪圖數組容量,再將所有數據解析后,依次放入繪圖數組中,繪制波形。用戶可根據實際需求對波形進行縮放和拖移操作,在圖形控件上雙擊后即可全屏顯示。

2.4.3.2 波形操控單元

波形操控單元主要是通過對其x軸和y軸范圍的設置來實現波形的全屏顯示、波形拖移和波形縮放。

在波形顯示之前,軟件會一直記錄波形x軸和y軸向的最大和最小值,只要在鼠標雙擊事件中將x軸和y軸的范圍設置成波形的范圍,即可實現雙擊后波形全屏顯示。

拖移與縮放是在鼠標左鍵按下事件中記錄起始點的坐標,然后在左鍵彈起的事件中記錄終點坐標,波形縮放是將兩個坐標形成的矩形區域范圍設置新的x軸和y軸的范圍,而波形拖放是分別記錄兩個坐標在x軸和y軸方向的相對位移量,然后x軸和y軸分別在各自的方向上平移位移量。

以上主要是通過鼠標操作波形,也可通過波形控制區設置x軸和y軸的范圍進行波形操作。

3 軟件測試

測試網絡拓撲結構參見圖1,將一個某火炮電機調速系統連接在CANⅡ上,某火炮電機調速系統監測軟件運行在PC機上,為了測試該軟件,設定驅動器以1 kHz的頻率向上位機發送正弦波,發送的正弦波頻率有50、40、30、20、10和1 Hz等選項。軟件運行效果如圖8所示,圖中,在GD Curve中綠色、藍色、紅色曲線分別為50、40和30 Hz正弦曲線,在FW Curve中綠色、藍色、紅色曲線分別為20、10和1 Hz正弦曲線,曲線平滑,無變形,波形的全屏、拖移與縮放功能正常。試驗表明,某火炮電機調速系統監測軟件波形顯示正常而穩定,軟件設計達到預期的使用要求。

4 結束語

筆者設計的基于VC++6.0和NI控件聯合開發的實時監測軟件,用于某火炮電機調速系統的性能測試,并對監測軟件的關鍵技術和關鍵功能做了詳細說明。該軟件具有界面美觀、實時性能好、開

發成本低等特點,具有較強的實用價值和參考價值。但在擴展性、可移植性和通用性方面依然存在不足。

References)

[1]孟玉靜,葉樺,周玲,等.基于CANBUS的高速采樣虛擬示波器軟件的設計與實現[J]. 工業儀表與自動化裝置, 2012(6):26-31. MENG Yujing,YE Hua,ZHOU Ling,et al.The design and implementation of high-speed sampling virtual oscilloscope software[J].Industrial Instrumentation & Automation, 2012(6):26-31.(in Chinese)

[2]李同立.基于VC++的虛擬示波器軟件設計[J].軟件導刊,2013,12(11):56-59. LI Tongli. Design of virtual oscilloscope software based on VC++[J].Software Guide, 2013,12(11):56-59.(in Chinese)

[3]熊啟龍.基于Indy 控件的遙測中心GPRS數據接收軟件應用[J].水利信息化,2012(5):49-52. XIONG Qilong.Application of GPRS data receiving software in telemetry center based on controls of Indy[J].Water Resources Informatization,2012(5):49-52.(in Chinese)

[4]趙欽,黃玲.基于Windows 消息機制的自動檢測系統設計[J].廣西科學院學報,2010,26(4):497-499. ZHAO Qin,HUANG Ling.Design of automatic test system based on Windows messages[J].Journal of Guangxi Aca-demy of Sciences,2010,26(4):497-499.(in Chinese)

[5]姚章俊,陳蜀宇,盧堯.一種高性能環形緩沖區的研究與實現[J].計算機工程,2012,38(8):228-231. YAO Zhangjun,CHEN Shuyu,LU Yao.Research and implementation of high-performance ring buffer[J].Computer Engineering, 2012,38(8):228-231.(in Chinese)

[6]孟玉靜,葉樺,仰燕蘭.雙機時鐘不同步情況下虛擬示波器波形顯示方法的改進[J].工業控制計算機,2012,15(21):11-13. MENG Yujing,YE Hua,YANG Yanlan.Improvement in virtual oscilloscope waveform display on condition of clock asynchronization of dual converters[J].Industrial Control Computer, 2012,15(21):11-13.(in Chinese)

主站蜘蛛池模板: 99这里只有精品在线| 91精品小视频| 人人爽人人爽人人片| 国产精品免费p区| 色成人亚洲| 91成人精品视频| 亚洲欧美日韩色图| 国产一级在线播放| 亚洲免费黄色网| 亚洲无码电影| Jizz国产色系免费| 亚洲,国产,日韩,综合一区| 草草线在成年免费视频2| 亚洲va精品中文字幕| 亚洲免费播放| 亚洲精品卡2卡3卡4卡5卡区| 99精品视频播放| 四虎综合网| av大片在线无码免费| 久久频这里精品99香蕉久网址| 波多野结衣视频一区二区| 亚洲天堂网2014| 综合久久五月天| 成人综合网址| 日本一区二区三区精品国产| 亚洲中文字幕在线观看| 欧洲一区二区三区无码| 亚洲有无码中文网| 丰满人妻久久中文字幕| 久久精品一品道久久精品| 午夜精品区| 欧美成人区| 在线国产欧美| 亚洲一区二区三区国产精华液| 日韩福利视频导航| 亚洲V日韩V无码一区二区| 日本午夜视频在线观看| 免费av一区二区三区在线| 国产呦视频免费视频在线观看| 精品福利视频网| 无码视频国产精品一区二区| 亚洲第一页在线观看| 99手机在线视频| 日韩精品专区免费无码aⅴ| 永久免费AⅤ无码网站在线观看| 中文字幕啪啪| 国产拍揄自揄精品视频网站| 在线国产资源| 国产成人调教在线视频| 成人av手机在线观看| 91青青在线视频| 91在线视频福利| 亚洲精品无码av中文字幕| 国产精品自拍露脸视频| 有专无码视频| 国产91精品调教在线播放| 97综合久久| 强奷白丝美女在线观看| 国产91透明丝袜美腿在线| 18禁影院亚洲专区| 国产乱人乱偷精品视频a人人澡| 国产高清又黄又嫩的免费视频网站| 亚洲中文字幕无码爆乳| 精品久久人人爽人人玩人人妻| 欧美日韩一区二区三区在线视频| jizz在线免费播放| 国产在线97| 亚洲av无码久久无遮挡| 日韩精品久久久久久久电影蜜臀| 一个色综合久久| 欧美伊人色综合久久天天| 色亚洲成人| 亚洲免费黄色网| 色综合中文| 国产精品污污在线观看网站| 亚洲免费人成影院| 丰满人妻中出白浆| 亚洲成人福利网站| 无码丝袜人妻| 99伊人精品| 国产成人久视频免费| 在线精品欧美日韩|