• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于WinCE的磨加工主動量儀常用控件開發(fā)

      2015-04-25 01:46:14王玉霞趙鳳霞張琳娜鄭鵬
      機(jī)床與液壓 2015年10期
      關(guān)鍵詞:控件刻度進(jìn)程

      王玉霞,趙鳳霞,張琳娜,鄭鵬

      (鄭州大學(xué)機(jī)械工程學(xué)院,河南鄭州450001)

      在工件的磨削加工中,砂輪會產(chǎn)生磨損,因此依靠磨床本身來控制工件的加工精度是很難實現(xiàn)的。采用主動量儀對磨削過程進(jìn)行主動實時測量,是磨床加工過程中的重要環(huán)節(jié)[1]。但是目前國產(chǎn)的磨加工主動量儀基本上還是停留在以單片機(jī)為核心的微機(jī)化儀表水平上,甚至有的還處于指針式儀表階段,具有測量精度不穩(wěn)定、顯示不夠直觀、測量范圍及控制點調(diào)整不方便等缺點[2]。徐金虎等[3]針對工控式磨加工主動量儀采用組態(tài)王技術(shù)實現(xiàn)了現(xiàn)有的主動量儀顯示不夠直觀、設(shè)置調(diào)整不方便等問題。組態(tài)軟件擁有豐富的工具箱、圖庫和操作向?qū)?,但是組態(tài)王軟件在數(shù)據(jù)采集速率方面無法滿足磨加工過程中高速數(shù)據(jù)采集的要求,在實際應(yīng)用中需要與其他編程技術(shù)聯(lián)合開發(fā)主動量儀的控制程序。祁繼超等[4]針對嵌入式磨加工主動量儀利用WinCE 系統(tǒng)的多線程技術(shù)實現(xiàn)測量數(shù)據(jù)處理。但是,WinCE 系統(tǒng)下的控件庫不夠完善,缺少比如儀表顯示、進(jìn)程條、實時曲線、歷史曲線等一些常用控件,這些控件圖形的開發(fā)繪制過程費時費力,并且不具有配置化使用以及一次組建多次應(yīng)用的功能。因此有必要開發(fā)WinCE 系統(tǒng)下的磨加工主動量儀所需的常用控件,以彌補(bǔ)WinCE 系統(tǒng)的不足,且縮短系列磨加工主動量儀產(chǎn)品的研發(fā)周期。

      作者在Microsoft Visual Studio 2008 編程環(huán)境下,應(yīng)用C#開發(fā)語言,在. NET Compact Framework 平臺下開發(fā)了磨加工主動量儀測量控制實時顯示所需的儀表、進(jìn)程條、實時曲線、歷史曲線等常用控件,并給出這些控件的應(yīng)用方法。

      1 磨加工主動量儀的主要控件及其功能

      磨加工主動量儀工作過程中需要實時進(jìn)行人機(jī)交互,將工件的測量結(jié)果、所處的加工狀態(tài)、加工過程中所設(shè)定的基本參數(shù)呈現(xiàn)給操作者,所需的主要控件有:儀表顯示(見圖1)、進(jìn)程條、實時曲線、歷史曲線(見圖2)等。

      圖1 儀表

      圖2 歷史曲線

      (1)儀表顯示

      儀表顯示控件動態(tài)直觀地顯示主動量儀在工作過程中所采集的數(shù)據(jù)。在Z 系列磨加工主動量儀中,儀表直觀顯示所加工機(jī)械零件的加工余量。加工工件外徑時,指針顯示數(shù)值隨著加工進(jìn)程,從正值趨近于0;加工工件內(nèi)徑時,指針顯示數(shù)值隨著加工進(jìn)程,從負(fù)值趨近于0。

      (2)進(jìn)程條

      進(jìn)程條控件監(jiān)控機(jī)床加工零件時的工作進(jìn)程。在Z 系列磨加工主動量儀中,進(jìn)程條控件與儀表顯示控件作用基本一致,只是在表達(dá)方式上有所不同。

      (3)實時曲線

      實時曲線可顯示主動量儀采集數(shù)據(jù)的當(dāng)前趨勢,以監(jiān)控該數(shù)據(jù)在現(xiàn)場工況變化的情況下的控制穩(wěn)定性。

      (4)歷史曲線

      歷史曲線可觀察過去一段時間內(nèi)某一點的變化趨勢,并供工藝人員分析工藝流程的穩(wěn)定性和故障原因。

      2 磨加工主動量儀控件的開發(fā)

      2.1 開發(fā)平臺介紹

      WinCE 中應(yīng)用程序的圖形輸出是依靠圖形設(shè)備接口GDI (Graphic Device Interface)來實現(xiàn)的。GDI+是GDI 版本的繼承者,在其基礎(chǔ)上新增了許多功能。C#語言基于GDI+技術(shù)繪制圖形時,使用Graphics 類封裝圖形繪制方法,如DrawLine()(繪制直線)、DrawDllipse()(繪制橢圓)、DrawArc()(繪制圓弧)、FillPolygon()(多邊形填充)等,為圖形界面程序的編輯提供全方位的支持,最大程度上減少了對底層API 的直接調(diào)用,提高了編程效率。

      嵌入式軟件的開發(fā)平臺為. NET Compact Framework(NCF),它繼承了公共語言運行時的完整. NET Framework(NF)結(jié)構(gòu)。NCF 是NF 的一個子集,在NCF平臺下,缺少很多常用控件繪圖函數(shù),所以必須利用其他的方法來實現(xiàn)在NF 平臺下可以輕松實現(xiàn)的繪圖命令[5]。例如,在NF 平臺下,繪制圓弧可以直接使用DrawArc(Pen,Rectangle,startAngle,sweepAngle)命令。但是,NCF 平臺不支持DrawArc 命令,需要運用數(shù)學(xué)的方法來實現(xiàn),可以在每段弧上取很多點,連接起來即可,取的點越多,畫弧越像。

      2.2 儀表顯示控件的開發(fā)

      在Microsoft Visual Studio 2008 編程環(huán)境下,控件的開發(fā)技術(shù)是一致的,只是在控件的屬性和事件方面有所區(qū)別,因此,文中以儀表顯示控件的開發(fā)為例詳述主動量儀常用控件開發(fā)技術(shù)。

      在儀表顯示控件中,最多的操作其實是繪制出刻度線,并將實際采集的數(shù)據(jù)映射到儀表指針上。該控件完全使用了. NET Compact Framework 中的基礎(chǔ)類庫,未使用其他第三方庫。控件基于NCF 的User-Control,用戶自定義設(shè)計控件,這樣生成的dll 文件,可以被引用到toolbox 設(shè)計框中,實現(xiàn)拖拽式調(diào)用。

      (1)新建項目

      打開Microsoft Visual Studio 2008,選擇新建項目后在打開的對話框中選擇項目類型以及模板,創(chuàng)建新建項目的名稱“BIAOTOU”、解決方案名稱“biaotouDLL”及選擇項目存儲位置,點擊“確定”后,在新彈出的對話框里選擇目標(biāo)平臺為“Windows Mobile 5.0 Pocket PC SDK”,NCF 版本為3.5 版,模板為“控件庫”,點擊“確定”。這樣就生成了一個空的控件項目。

      (2)為控件添加屬性和事件

      以圖3 所示控件為例。

      圖3 儀表示例

      ①首先聲明變量。分析圖3 儀表的變量,對圓心位置、圓心大小、指針顏色、指針長度以及長短刻度的各個參數(shù)進(jìn)行變量聲明。

      ②屬性封裝

      封裝是一種信息隱藏機(jī)制,在面向?qū)ο蟪绦蛟O(shè)計中得到了極其廣泛的應(yīng)用,其目的在于將程序的使用者與程序的設(shè)計者進(jìn)行分離,讓使用者不必了解具體功能的實現(xiàn)細(xì)節(jié),而只需根據(jù)設(shè)計者提供的方法來使用不同的功能,同時使得設(shè)計者在進(jìn)行設(shè)計更新時,不會影響到使用者的正常使用[6]。

      C#中采用get (訪問方法)、set (修改方法)對變量進(jìn)行封裝。當(dāng)使用get、set 將變量封裝為屬性以后,可以控制它們的可見性(能否被讀取、能否被修改、能被誰操作等),修改的時候可以對將要修改的值進(jìn)行驗證是否合法,防止被其他類意外修改。

      將儀表顯示控件的刻度值顏色變量封裝成屬性的代碼如下所示:

      其他變量也用“get/set”方法封裝成屬性,代碼不再一一寫出。

      愛情就是愛情吧!她想,女人對男人千般好,并非充氣娃娃的特權(quán)。再說這世上哪個女人不是男人的充氣娃娃呢?哪個女人在某一些特殊的時間里不是男人的充氣娃娃呢?身體上的充氣娃娃,或者,靈魂里的充氣娃娃。低到塵埃里,張愛玲說的吧?女人既然可以心甘情愿地低至一粒塵埃,為什么不能心甘情愿地變成一個玩偶呢?

      如上述代碼所示,“get/set”方法可使得“Color刻度值顏色”屬性以及其他屬性均在toolbox 屬性框中出現(xiàn),如圖4 所示。

      圖4 屬性框截圖

      (3)圖形繪制

      圖形繪制時使用GDI+技術(shù)。調(diào)用的名稱空間包括Systerm.Drawing 和Systerm.Drawing.Text 等。

      圖3 中儀表刻度線及刻度值的繪制。首先聲明刻度線所在的圓弧半徑、起始與終止弧度、刻度值所在圓弧半徑值、指針半徑以及每一刻度的弧度值等,然后利用for 循環(huán)語句以及各個變量之間的函數(shù)關(guān)系,實現(xiàn)刻度線、刻度值的正確繪制以及指針的正確指示。主要代碼如下所示:

      在這里值得一提的是,由于儀表和進(jìn)度條繪制過程較為復(fù)雜,圖形刷新較快,容易造成屏幕閃爍,雙緩沖繪圖技術(shù)的運用很好地解決了以上問題。NCF GDI+中特有的雙緩沖功能,只要重寫OnPaintBackground 方法即可。

      (4)控件生成

      代碼編寫完成后,即可生成DLL 文件,這樣就完成控件的生成。生成后的DLL 文件放于Bin 目錄下,在需要時可通過引用DLL 文件來使用,也可以在VS 工具箱里以添加組件的形式加載到工具箱中,和其他系統(tǒng)控件一樣作為工具使用,同時也可以將整個項目添加到一個新的項目中使用。

      3 控件的調(diào)用

      所開發(fā)的控件可以作為一個相對獨立的程序單位被其他應(yīng)用程序重復(fù)調(diào)用。在應(yīng)用時,開發(fā)人員通過拖拽式調(diào)用把控件放在Form 窗口中,然后配置控件的屬性進(jìn)行相應(yīng)的函數(shù)連接,控件就能完成其復(fù)雜的功能。下面以儀表顯示控件為例進(jìn)行說明。

      (2)在解決方案資源管理器中,右擊解決方案,單擊“添加現(xiàn)有項目”,顯示“現(xiàn)有項目”對話框。單擊“biaotouDLL”項目,將該項目添加到解決方案里,這樣就可以看到在工具箱里出現(xiàn)自定義控件。

      (3)從工具箱中選擇自定義控件,添加到Form窗口,可以更改圓心位置、控件大小、背景顏色等屬性等。儀表顯示控件如圖5 所示。

      圖5 儀表控件

      (4)在解決方案資源管理器中,右擊“Testmybiaotou”項目,然后單擊“生成”。并將該項目設(shè)為啟動項目。

      (5)單擊“Debug”調(diào)試按鈕或“Crtl +F5”執(zhí)行程序。在SDK 模擬器中測試控件的可用性。見圖6。

      圖6 SDK 模擬器中儀表控件

      將儀表顯示控件應(yīng)用到磨加工主動量儀軟件系統(tǒng)中,更改控件背景顏色、刻度間隔、刻度顏色等控件屬性,并將主動量儀瞬時采集、處理的最終結(jié)果通過消息傳遞方式傳遞到主線程中,在測量結(jié)果上以儀表形式顯示出來。在磨加工主動量儀上的應(yīng)用結(jié)果如圖7 所示,進(jìn)程條控件在磨加工主動量儀上的應(yīng)用如圖8 所示。

      圖7 儀表顯示

      圖8 進(jìn)度條顯示

      4 結(jié)束語

      針對基于WinCE 系統(tǒng)的磨加工主動量儀產(chǎn)品開發(fā)的需要,應(yīng)用C#開發(fā)語言,在. NET Compact Framework 平臺下開發(fā)了磨加工主動量儀測量控制實時顯示所需的儀表、進(jìn)程條、實時曲線、歷史曲線等常用控件。所開發(fā)的控件不依賴任何第三方插件,在Visual Studio 2008 開發(fā)環(huán)境中,通過編譯生成. dll 文件,可以在多種語言環(huán)境下添加引用,顯示直觀,調(diào)整方便,提高了代碼的重用性和擴(kuò)展性,滿足了磨加工主動量儀的測量控制顯示需求,縮短了產(chǎn)品的研發(fā)周期。

      [1]王鴻偉.可在線測量圓度的新型主動測量儀[J].工具技術(shù),2004,38(10):76-77.

      [2]鄭鵬,張琳娜,劉武發(fā),等.新型磨加工主動測量控制儀的研究[J].儀器儀表學(xué)報,2013,10(34):2365-2372.

      [3]徐金虎,張琳娜,鄭鵬,等.基于組態(tài)王的磨加工主動測量儀的數(shù)據(jù)處理[J].機(jī)床與液壓,2013,41(13):75-80.

      [4]祁繼超,張琳娜,鄭鵬,等.嵌入式主動量儀數(shù)據(jù)處理技術(shù)的研究與實現(xiàn)[J].機(jī)床與液壓,2013,41(23):101-103

      [5]曹宏濤,顧振.基于WinCE 機(jī)艙延伸報警系統(tǒng)的設(shè)計[J].船舶機(jī)電設(shè)備,2012(1):48-52.

      [6]劉云根,李洋.Delphi 封裝機(jī)制實現(xiàn)方法的研究[J].計算機(jī)與現(xiàn)代化,2004(4):3-5.

      猜你喜歡
      控件刻度進(jìn)程
      債券市場對外開放的進(jìn)程與展望
      中國外匯(2019年20期)2019-11-25 09:54:58
      歐姆表的刻度真的不均勻嗎?
      ——一個解釋歐姆表刻度不均勻的好方法
      關(guān)于.net控件數(shù)組的探討
      軟件(2018年7期)2018-08-13 09:44:42
      被吃掉刻度的尺子
      誰大誰小
      測量三字歌
      社會進(jìn)程中的新聞學(xué)探尋
      我國高等教育改革進(jìn)程與反思
      Linux僵死進(jìn)程的產(chǎn)生與避免
      就這樣玩會VBA中常見的自定義控件
      電腦迷(2012年24期)2012-04-29 00:44:03
      泊头市| 东源县| 香港| 丹棱县| 上饶县| 乌恰县| 镇远县| 潜江市| 石棉县| 新宁县| 邹城市| 平顶山市| 增城市| 兴安县| 东乡县| 文水县| 平凉市| 泌阳县| 泽普县| 康保县| 太康县| 徐汇区| 镇康县| 兰西县| 普定县| 灵石县| 新乡县| 武川县| 光山县| 景宁| 漠河县| 扬州市| 灵宝市| 灵山县| 通道| 井研县| 迭部县| 陵川县| 偏关县| 固阳县| 宜宾县|