亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于開(kāi)放式數(shù)控系統(tǒng)的數(shù)控機(jī)床多線程數(shù)據(jù)實(shí)時(shí)采集研究

        2013-10-20 10:37:06劉雄李蔚洋劉杰
        機(jī)械制造與自動(dòng)化 2013年5期

        劉雄,李蔚洋,劉杰

        (1.江鉆股份有限公司,湖北潛江433124;2.江漢油田勘探開(kāi)發(fā)研究院,湖北武漢430223)

        在數(shù)控機(jī)床加工過(guò)程中,實(shí)時(shí)采集加工數(shù)據(jù)對(duì)加工過(guò)程進(jìn)行控制與補(bǔ)償是十分必要的。但對(duì)成熟的數(shù)控系統(tǒng)如西門(mén)子、FUNUC等而言,加工數(shù)據(jù)采集是十分困難的,用戶無(wú)法進(jìn)行進(jìn)一步的監(jiān)測(cè)與控制?;赑C的開(kāi)放式數(shù)控系統(tǒng),是對(duì)傳統(tǒng)封閉式數(shù)控系統(tǒng)的根本突破,是當(dāng)今數(shù)控技術(shù)的發(fā)展主流和研究熱點(diǎn)[1]。因此,采用NC嵌入PC型結(jié)構(gòu)對(duì)開(kāi)放式數(shù)控系統(tǒng)進(jìn)行了開(kāi)發(fā)研究。

        在數(shù)控機(jī)床系統(tǒng)的應(yīng)用過(guò)程中,為了了解機(jī)床性能或進(jìn)行一步控制,有許多數(shù)據(jù)參數(shù)需要采集,如機(jī)床各軸的運(yùn)動(dòng)參數(shù)、機(jī)床正在執(zhí)行的命令、在線測(cè)量尺寸等[2]。在基于PMAC卡數(shù)控機(jī)床的數(shù)據(jù)實(shí)時(shí)采集過(guò)程中,采取了多線程技術(shù)與PMAC option2提供雙端口技術(shù)相結(jié)合的采集方式,取得了滿意的效果。

        1 基于PMAC卡數(shù)控機(jī)床軟硬件系統(tǒng)

        1.1 PMAC 開(kāi)放式運(yùn)動(dòng)系統(tǒng)[3]

        可編程多軸控制器(programmablemulti-axis controller,PMAC)是美國(guó)DeltaTau公司20世紀(jì)90年代推出的基于PC平臺(tái)的開(kāi)放式多軸運(yùn)動(dòng)控制器。它采用了Motorola公司的DSP56系列高性能數(shù)字信號(hào)處理器作為CPU,是目前世界上功能最強(qiáng)大的運(yùn)動(dòng)控制器之一,一個(gè)PMAC可以同時(shí)控制1~8根軸,多個(gè)PMAC級(jí)聯(lián)最多可以控制128根軸,能夠精確定位,在包裝、裝配、醫(yī)藥工業(yè)、機(jī)床等行業(yè)應(yīng)用廣泛。

        1.2 基于開(kāi)放式數(shù)控系統(tǒng)數(shù)控機(jī)床

        該數(shù)控機(jī)床為非圓磨床,運(yùn)動(dòng)方式為:x軸砂輪架水平往復(fù)移動(dòng)和c軸工件主軸轉(zhuǎn)動(dòng)兩軸聯(lián)動(dòng),其主要硬件設(shè)備有工控機(jī)、PMAC卡、松下伺服電動(dòng)機(jī)、雷尼紹光柵、CBN砂輪、電主軸等。安裝在x軸上的直線光柵分辨率為1μm,安裝在c軸上的圓光柵分辨率為20μm。數(shù)控系統(tǒng)采用直線光柵采集x軸位移作為反饋,圓光柵采集c軸轉(zhuǎn)角作為反饋,形成全閉環(huán)控制(圖1)。

        1.3 軟件系統(tǒng)

        PMAC 支持 C++,VB,VC,Delphi等多種高級(jí)語(yǔ),并提供了可共二次開(kāi)發(fā)的的動(dòng)態(tài)鏈接庫(kù)函數(shù)。該實(shí)驗(yàn)裝置以Visual C++6.0為工具,開(kāi)發(fā)了軟件控制系統(tǒng),并開(kāi)發(fā)了用于數(shù)據(jù)采集與顯示的CStShow類(lèi),用于數(shù)據(jù)采集和顯示及繪圖。

        圖1 數(shù)控系統(tǒng)的控制原理圖

        2 開(kāi)放式數(shù)控系統(tǒng)加工數(shù)據(jù)采集關(guān)鍵技術(shù)

        2.1 PMAC數(shù)據(jù)讀取的方式

        文獻(xiàn)[4]介紹了兩種PMAC數(shù)據(jù)讀取的方式:

        1)從緩沖區(qū)中獲得采集數(shù)據(jù):在這種采集方式中,需要設(shè)定采集周期(變量I19)來(lái)決定在每個(gè)伺服中斷周期內(nèi)執(zhí)行多少個(gè)數(shù)據(jù)采集周期,設(shè)定采集源選擇標(biāo)志(變量I20)來(lái)決定采集哪一個(gè)或多個(gè)數(shù)據(jù)源,以及設(shè)定采集源地址(變量I20~I(xiàn)44)。這種數(shù)據(jù)采集方式比較復(fù)雜,但應(yīng)用靈活,用戶可以通過(guò)設(shè)定采集源,采集任何PMAC有效地址中的數(shù)據(jù)。

        2)從I/O及運(yùn)動(dòng)寄存器中直接采集數(shù)據(jù):在這種采集方式中,用戶只需要讀取各個(gè)I/O及運(yùn)動(dòng)寄存器中的值就能得到需要的數(shù)據(jù)。由于PMAC將運(yùn)行過(guò)程中各個(gè)電動(dòng)機(jī)、編碼器的各種數(shù)據(jù)自動(dòng)的存放在相應(yīng)的I/O及運(yùn)動(dòng)寄存器中,用戶不需額外指定采集源,不必關(guān)心數(shù)據(jù)是如何存入、如何譯碼的,大大簡(jiǎn)化了數(shù)據(jù)采集的難度。

        本文采取了另外一種PMAC數(shù)據(jù)讀取方式:?jiǎn)?dòng)雙端口RAM,利用雙端口RAM所帶的函數(shù)進(jìn)行數(shù)據(jù)采集。這種方法更加方便,雙端口RAM的函數(shù)封裝了PMAC數(shù)據(jù)讀取數(shù)據(jù)的過(guò)程,用戶采集運(yùn)動(dòng)參數(shù),只須調(diào)用相關(guān)的函數(shù)即可。例如:

        Double PmacDPRPosition(DWORD dwDevice,int motor,double units)

        該函數(shù)返回指定電動(dòng)機(jī)的實(shí)際位置。參數(shù)dwDevice為PMAC卡的卡號(hào),motor指電動(dòng)機(jī)號(hào)減1,units表示單位。

        2.2 雙端口RAM技術(shù)

        PMAC的Option2提供了一個(gè)8K×16位的RAM,允許PMAC和PC機(jī)之間共享一塊快速內(nèi)存,實(shí)現(xiàn)數(shù)據(jù)的快速傳遞。在凸輪軸的加工過(guò)程中需要在實(shí)時(shí)狀態(tài)下快速的大量的位置數(shù)據(jù)信息的下載,同時(shí)又需要重復(fù)的快速的從PMAC中讀取各電動(dòng)機(jī)的狀態(tài)信息。電動(dòng)機(jī)的狀態(tài)信息數(shù)據(jù)可以不停的更新并被PLC程序或自動(dòng)的寫(xiě)入雙端口RAM中,如果不使用雙端口 RAM,這些數(shù)據(jù)必須使用PAMC的在線命令通過(guò)PC總線來(lái)存取,由于使用雙端口RAM存取不需要經(jīng)過(guò)通訊口發(fā)送命令和等待響應(yīng)時(shí)間。下面介紹幾個(gè)主要的雙端口RAM后臺(tái)定點(diǎn)數(shù)據(jù)報(bào)告功能函數(shù)[5]。

        1)BOOLPmacDPRRealTime(DWORD dwDevice,UINT period,int on_off)

        該函數(shù)開(kāi)啟或關(guān)閉PMAC卡自動(dòng)將定點(diǎn)數(shù)據(jù)寫(xiě)入雙端口RAM功能;

        2)voidPmacDPRSetMotors(DWORD dwDevice,UINT n)

        該函數(shù)設(shè)置PMAC卡向雙端口RAM中寫(xiě)入幾個(gè)電動(dòng)機(jī)的相關(guān)數(shù)據(jù),參數(shù)n表示將1-n個(gè)電動(dòng)機(jī)的相關(guān)數(shù)據(jù)寫(xiě)入雙端口RAM中;

        3)voidPmacDPRSetHostBusyBit(DWORD dwDevice,int on_off)

        該函數(shù)通知PMAC卡,客護(hù)端將要進(jìn)行讀雙端口RAM中的數(shù)據(jù);

        4)int PmacDPRGetHostBusyBit(DWORD dwDevice)

        檢查該函數(shù)是否正在進(jìn)行雙端口RAM的寫(xiě)操作。

        參數(shù)說(shuō)明:參數(shù)中period參數(shù)設(shè)置雙端口RAM中數(shù)據(jù)的刷新周期,開(kāi)啟或關(guān)閉PMAC卡,將on_off設(shè)置為1或0。

        2.3 多線程技術(shù)[6]

        Windows操作系統(tǒng)之多任務(wù)調(diào)度與處理,每一個(gè)進(jìn)程可以同時(shí)執(zhí)行多個(gè)線程,這意味著一個(gè)程序可以同時(shí)完成多個(gè)任務(wù)。在VC++6.0中,MFC類(lèi)庫(kù)提供了對(duì)多線程編程的支持,它把線程區(qū)分為兩類(lèi):工作者線程和用戶界面線程.工作者線程主要用來(lái)執(zhí)行費(fèi)時(shí)的后臺(tái)計(jì)算任務(wù),用戶界面線程則一般用來(lái)處理用戶的輸入,響應(yīng)用戶產(chǎn)生的事件和消息。在MFC類(lèi)庫(kù)中,類(lèi)CWinThread是用戶界面線程的基本類(lèi)。用MFC創(chuàng)建線程,只需編寫(xiě)一個(gè)與應(yīng)用程序中的其余部分并行運(yùn)行的函數(shù),然后調(diào)用全局函數(shù)AfxBeginThread()啟動(dòng)線程,線程啟動(dòng)后調(diào)用輔助線程的回調(diào)函數(shù),可以在回調(diào)函數(shù)中編寫(xiě)想要實(shí)現(xiàn)功能的程序代碼。當(dāng)然也可以設(shè)定線程之間的優(yōu)先級(jí),也可以保持線程間的同步。這對(duì)應(yīng)用多線程進(jìn)行數(shù)據(jù)采集來(lái)說(shuō),是很有用的。

        要終止線程,可以在線程內(nèi)部調(diào)用MFC的AfxEndThread()函數(shù)或ExitProcess()或SetEvent()進(jìn)行有條件地結(jié)束線程,如果想從該線程外部結(jié)束該線程,可以使用Win32API函數(shù)TerminateThread()。等,但使用時(shí)一定要釋放該進(jìn)程所占的系統(tǒng)資源,否則這樣會(huì)引起系統(tǒng)的不穩(wěn)定。

        3 加工數(shù)據(jù)采集實(shí)驗(yàn)

        3.1 加工數(shù)據(jù)采集程序編寫(xiě)

        在編寫(xiě)程序時(shí)為了避免顯示過(guò)快而無(wú)法觀察,在數(shù)據(jù)采集后立刻寫(xiě)入文件保存,而采用了間隔時(shí)間為55ms的定時(shí)器,用于慢速顯示。用一個(gè)線程采集一個(gè)變量,以增加采集速度,并防止由于線程的相可以通過(guò)修改Sleep()函數(shù)中的參數(shù),改變采集時(shí)間間隔。本文給出了采集C軸速度的代碼,如果要采集更多的數(shù)據(jù),再增加線程即可。

        主要程序代碼如下:

        3.2 加工數(shù)據(jù)采集結(jié)果

        利用Visual C++,編寫(xiě)采集程序,采集加工過(guò)程中x軸實(shí)際位置、x軸實(shí)際速度、c軸實(shí)際位置、c軸實(shí)際速度。采集界面如圖2所示。

        如果將采集的變量寫(xiě)入到同一個(gè)文件,將會(huì)由于線程的獨(dú)立性而導(dǎo)致亂碼。因此編程中將每個(gè)變量分別寫(xiě)入單獨(dú)的文件。下面是采集到的部分?jǐn)?shù)據(jù):

        圖2 數(shù)據(jù)采集界面

        4 結(jié)果分析

        由采集結(jié)果可知,多線程采集具有很高的采樣頻率,而且與PMAC的雙端口技術(shù)相結(jié)合,也簡(jiǎn)化了程序,加快了采集速度,這是一種很好的采集方法。

        應(yīng)該指出的是,多線程技術(shù)是一種比較難的技術(shù),多線程應(yīng)用程序的編寫(xiě)和調(diào)試比較困難,因?yàn)椴l(fā)運(yùn)行線程的并行性增加了代碼的額外復(fù)雜度,在實(shí)驗(yàn)過(guò)程中就發(fā)生過(guò)多次調(diào)試問(wèn)題。但是如果使用得當(dāng),多線程可以極大地改善一個(gè)應(yīng)用程序的響應(yīng)性能。

        [1]韓軍,史文浩.臥式車(chē)銑復(fù)合機(jī)床開(kāi)放式數(shù)控系統(tǒng)的研究[J].裝備制造技術(shù),2009(5):26-27.

        [2]彭寶營(yíng),韓秋實(shí),孫志永.基于PMAC的數(shù)控機(jī)床數(shù)據(jù)實(shí)時(shí)采集的研究[J].微計(jì)算機(jī)信息,2007(7):237-239.

        [3]申宇,馬伯淵,張金樓.基于PMAC卡的高速數(shù)據(jù)采集[J].機(jī)電工程技術(shù),2006(4):96-97.

        [4]蘭光明.VC環(huán)境下的PMAC數(shù)據(jù)實(shí)時(shí)采集與顯示[J].北京機(jī)械工業(yè)學(xué)院學(xué)報(bào)2004(3):45-47.

        [5]DELTA TAU Data System Inc.PMAC USER’S MANUAL[S].USA:DELTA TAU Data System Inc,1999.

        [6]李秀敏凌宇欣.Visual C++6.0機(jī)范例入門(mén)與提高[M].北京:清華大學(xué)出版社.

        久久久黄色大片免费看| 自拍偷拍另类三级三色四色| 国产一区二区三区视频了| 开心五月激动心情五月| 91精品人妻一区二区三区水蜜桃| 午夜视频福利一区二区三区| 一区二区国产视频在线| 国语对白精品在线观看| 日本精品一区二区三区二人码| 香蕉免费一区二区三区| 无码成人aaaaa毛片| 国产精品第一二三区久久蜜芽 | 日本亚洲一级中文字幕| 亚洲av高清一区三区三区| 日韩乱码人妻无码系列中文字幕| 国产精品永久免费| 日日碰狠狠添天天爽超碰97| 国产美女在线一区二区三区| 婷婷激情五月综合在线观看| 亚洲av熟女天堂久久天堂| 亚洲国产婷婷香蕉久久久久久 | 国产老熟女精品一区二区| 又湿又紧又大又爽a视频国产| 小宝极品内射国产在线| 岛国av无码免费无禁网站下载| 国产高清女人对白av在在线| 中文字幕乱码一区在线观看| 久久精品国产久精国产爱| 亚洲av永久无码精品国产精品| 欧美精品中文字幕亚洲专区| 中文字幕无码免费久久| 国产精品亚洲二区在线| 尤物yw午夜国产精品视频| 少妇高潮喷水久久久影院| 亚洲最大中文字幕无码网站| 国产黑色丝袜在线观看视频| 日本久久黄色高清视频| 亚洲天堂二区三区三州| 最近中文字幕免费完整版| 69精品丰满人妻无码视频a片| 超级少妇一区二区三区|