• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 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
    额敏县| 抚顺市| 辽宁省| 南宫市| 道孚县| 锡林浩特市| 博湖县| 大新县| 工布江达县| 瑞昌市| 铁岭市| 韶山市| 隆林| 镇雄县| 红桥区| 茌平县| 鹰潭市| 靖远县| 绵阳市| 开鲁县| 林西县| 友谊县| 万全县| 庐江县| 疏附县| 怀宁县| 蓝山县| 辽阳县| 习水县| 九龙城区| 博乐市| 凉山| 辽源市| 新绛县| 海丰县| 赤水市| 江油市| 石河子市| 临武县| 文安县| 富源县|