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

        ?

        數(shù)控系統(tǒng)手輪回退功能的研究與實(shí)現(xiàn)*

        2019-11-27 06:13:52樊晨飛葉佩青
        關(guān)鍵詞:程序段手輪鏈表

        宋 嘎,樊晨飛,葉佩青,

        (1.山東職業(yè)學(xué)院 葉佩青專家工作室,濟(jì)南 250104;2.清華大學(xué) 機(jī)械工程系,北京 100084)

        0 引言

        在數(shù)控機(jī)床調(diào)試及加工過程中,難免會遇到機(jī)床故障、刀具損壞或磨損、工件存在缺陷、加工參數(shù)不合適等情況,導(dǎo)致加工被迫中止,刀具需要沿原軌跡退出正在加工的工件表面,這就要求數(shù)控系統(tǒng)具備沿已加工軌跡回退功能,通常采用手輪操作回退;另外,在某些調(diào)試場合,操作人員采用手輪模擬程序前向、后退執(zhí)行,以簡單檢測程序錯誤[1-4]。FANUC 30i、Sinumerik 840D、Miyano ABX51/64等國際領(lǐng)先的數(shù)控系統(tǒng)均能在自動加工過程中,無需執(zhí)行完當(dāng)前程序段,隨時切換到手輪模擬模式,操作手輪從當(dāng)前位置立即回退。上述數(shù)控系統(tǒng)的手輪回退功能類似,只是對于M、S、T等輔助功能指令的處理方式有所不同。國內(nèi)數(shù)控系統(tǒng)大多也具備手輪回退功能,但對其實(shí)現(xiàn)機(jī)理的介紹比較少。手輪回退功能的實(shí)現(xiàn)存在兩個方面的問題,一是對已加工的刀具軌跡數(shù)據(jù)進(jìn)行高效存儲和提取,二是對手輪回退的速度和方向進(jìn)行控制。對于刀具軌跡的存儲,常偉杰[5]提出了在超聲振動輔助電火花銑削加工中采用嵌套存儲的方式;陳智殷[6]在電加工專用數(shù)控系統(tǒng)中采用環(huán)形鏈表結(jié)構(gòu),其首末相連,沒有哨兵節(jié)點(diǎn);劉勇等[7]在三維微細(xì)電解銑削加工中采用雙向鏈表結(jié)構(gòu),其具有頭、尾兩個哨兵節(jié)點(diǎn)。根據(jù)不同數(shù)控系統(tǒng)加工要求的差別,研究人員主要采用以下兩種方法進(jìn)行刀具軌跡的回退,即按原加工軌跡回退[8],以及胡明華、張斌[9-10]提出的,應(yīng)用于切割機(jī)的任意路徑無限回退。

        本文基于DSP開發(fā)的數(shù)控系統(tǒng),完整闡述手輪回退功能的實(shí)現(xiàn)方案,對手輪回退在系統(tǒng)中的實(shí)現(xiàn)流程設(shè)計、軌跡存儲鏈表的設(shè)計、軌跡存儲隊列的實(shí)現(xiàn)、手輪速度控制、手輪方向控制等進(jìn)行重點(diǎn)研究,實(shí)現(xiàn)任意位置手輪沿刀具原軌跡的回退。最后,在QT軟件仿真環(huán)境和CCS硬件開發(fā)平臺上驗證該方案的有效性。

        1 加工程序段軌跡回退

        手輪回退功能在某國產(chǎn)數(shù)控系統(tǒng)上進(jìn)行開發(fā),該數(shù)控系統(tǒng)采用 ARM+DSP的雙核結(jié)構(gòu)。其中,ARM 中的Linux系統(tǒng)為非實(shí)時部分,包括界面模塊、編譯模塊、通訊模塊;DSP為實(shí)時操作部分,包括 PLC實(shí)時模塊、運(yùn)動控制模塊、板卡控制模塊。本文研究內(nèi)容為在運(yùn)動控制模塊中的手輪模擬子模塊中增加手輪回退功能,實(shí)現(xiàn)任意位置刀具軌跡的回退。主要依托于加工程序段軌跡的存儲和回退,程序段存儲在雙向鏈表中,通過訪問其接口實(shí)現(xiàn)回退。

        1.1 軌跡回退的流程設(shè)計

        為了實(shí)現(xiàn)軌跡回退功能,在原有運(yùn)動控制流程中,預(yù)先分配了一定的存儲空間,用于存儲已執(zhí)行過的程序段,使數(shù)控系統(tǒng)支持程序段軌跡回退功能,軌跡回退段數(shù)由存儲空間決定,其被稱為軌跡存儲隊列,具體見圖1。

        圖1 支持軌跡回退的運(yùn)動控制流程

        支持軌跡回退的運(yùn)動控制流程需要利用軌跡存儲隊列動態(tài)存儲已規(guī)劃軌跡程序段并可以實(shí)現(xiàn)軌跡的反向插補(bǔ)。系統(tǒng)自動運(yùn)行時,在進(jìn)行插補(bǔ)前,首先判斷軌跡方向是前進(jìn)或者后退,再判斷當(dāng)前程序段是否已執(zhí)行完。當(dāng)前程序段執(zhí)行完成時,需要讀取新的程序段,此時新程序段有兩個來源,一個是規(guī)劃緩沖區(qū),一個是軌跡存儲隊列。如果是前進(jìn)方向,在前進(jìn)到程序段終點(diǎn)時同時也到達(dá)軌跡存儲隊列隊尾(軌跡存儲隊列中最大存儲位置),則從規(guī)劃緩存區(qū)中讀取下一個程序段,將其存入軌跡存儲隊列隊尾,同時移除軌跡存儲隊列隊首存儲的程序段;否則,直接將指針移向軌跡存儲隊列中存儲的后一個程序段。如果是后退方向,在后退到程序段起點(diǎn)時,如果同時也到達(dá)軌跡存儲隊列隊首,即達(dá)到軌跡存儲隊列規(guī)定的最大隊列容量,則不再移動指針,也就是說軌跡段回退結(jié)束;否則,直接將指針移向隊列中存儲的前一個程序段。軌跡存儲隊列運(yùn)行流程見圖2。

        圖2 軌跡存儲隊列運(yùn)行流程

        1.2 軌跡存儲鏈表的設(shè)計

        軌跡的存儲和回退需要進(jìn)行如下操作:一是將從規(guī)劃緩沖區(qū)中取出的程序段存入到當(dāng)前數(shù)據(jù)結(jié)構(gòu),同時需要進(jìn)行程序段序列的整體前移,包括節(jié)點(diǎn)插入、刪除操作;二是按照順序或逆序,依次地訪問已經(jīng)存儲的程序段,并將其輸出給插補(bǔ)模塊,即節(jié)點(diǎn)的順序訪問。鏈表屬于動態(tài)存儲,即邏輯上相鄰的節(jié)點(diǎn)由指針互相引用,但物理地址可以任意。鏈表的動態(tài)存儲方式?jīng)Q定了它隨機(jī)訪問節(jié)點(diǎn)的低效,和插入、刪除節(jié)點(diǎn)的高效。因此,對于軌跡存儲和回退,使用鏈表效率較高。

        基于雙向鏈表設(shè)計了軌跡存儲的數(shù)據(jù)結(jié)構(gòu)——隊列。運(yùn)動控制模塊讀取新的程序段,就是從規(guī)劃緩沖區(qū)中出隊,然后插入到軌跡存儲隊列的隊尾。與此同時,為了避免占用系統(tǒng)過大的內(nèi)存空間,軌跡存儲隊列的容量是固定的,所以隊首的程序段需要被丟棄并釋放掉空間。在已經(jīng)加工過并存儲的程序段之間重新加工時,需要指針前后移動,以訪問不同位置的程序段。再考慮到加工過程的開始和結(jié)束,軌跡存儲隊列需要具備初始化、入隊、出隊、指針操作和銷毀5個接口[11]。假設(shè)隊列容量為NUM,最遠(yuǎn)加工位置為M,指針當(dāng)前指向位置為n,軌跡存儲隊列的接口具體見圖3。

        圖3 軌跡存儲隊列的接口

        1.3 軌跡存儲鏈表的實(shí)現(xiàn)

        在雙向鏈表實(shí)現(xiàn)的隊列中,每個節(jié)點(diǎn)都是一個結(jié)構(gòu)體,每個結(jié)構(gòu)體包括數(shù)據(jù)域和直接前驅(qū)、直接后繼兩個指針。數(shù)據(jù)域本身也是一個結(jié)構(gòu)體,包括程序段號、G 代碼、起點(diǎn)坐標(biāo)、終點(diǎn)坐標(biāo)、進(jìn)給速度等,已經(jīng)在數(shù)控系統(tǒng)原有程序中封裝好。每個節(jié)點(diǎn)的直接前驅(qū)、直接后繼指向的,是其前一個或后一個節(jié)點(diǎn)的地址。在程序中,可以不斷地用一個活動的指針引用當(dāng)前節(jié)點(diǎn)的直接前驅(qū)或直接后繼,來訪問與其相鄰的節(jié)點(diǎn),從而能夠自由地向前或向后遍歷整個隊列。M、S、T等模態(tài)指令以及G04延時指令等非軌跡程序段不入隊,需要進(jìn)行特殊處理。

        在數(shù)控系統(tǒng)中,圓弧半徑、進(jìn)給速度等加工參數(shù)并不屬于單個坐標(biāo)點(diǎn),而是屬于單個程序段。因此,每當(dāng)當(dāng)前點(diǎn)的坐標(biāo)與當(dāng)前指針?biāo)赶虻墓?jié)點(diǎn)中數(shù)據(jù)域結(jié)構(gòu)體內(nèi)的“起點(diǎn)”或“終點(diǎn)”坐標(biāo)點(diǎn)重合,則向前或向后移動指針,以訪問相鄰的節(jié)點(diǎn)。軌跡存儲隊列結(jié)構(gòu)如圖4所示。隊列結(jié)構(gòu)中,都有頭(header)和 尾(trailer)兩個特殊的節(jié)點(diǎn)。它們沒有數(shù)據(jù)域,稱為哨兵節(jié)點(diǎn),在程序中是必需的組成部分。首(first)節(jié)點(diǎn)是頭節(jié)點(diǎn)的直接后繼,是軌跡回退能夠到達(dá)的最后位置;末(last)節(jié)點(diǎn)是尾節(jié)點(diǎn)的直接前驅(qū),是目前已經(jīng)加工的最新程序段。

        圖4 軌跡存儲隊列結(jié)構(gòu)

        1.4 特殊處理

        (1)圓弧等曲線插補(bǔ)方向的特殊處理

        在軌跡回退的過程中,如果遇到圓弧段、參數(shù)曲線段,將當(dāng)前段信息取出后,在返回給插補(bǔ)模塊之前需要對調(diào)插補(bǔ)方向,以便進(jìn)行反向插補(bǔ)。比如,對于圓弧加工的回退,需要將程序段結(jié)構(gòu)體中儲存的 G02 與 G03 對調(diào),以顛倒順逆方向;更改順逆方向的操作是將當(dāng)前程序段信息取出并存入到臨時的程序段結(jié)構(gòu)體內(nèi),然后在臨時結(jié)構(gòu)體內(nèi)更改插補(bǔ)方向并最終返回給插補(bǔ)模塊。其他曲線插補(bǔ)方向的處理思路與之類似。

        (2)非軌跡程序段的特殊處理

        非軌跡程序段主要包括 M、S、T等模態(tài)指令和G04 延時指令等,這些指令不涉及加工的軌跡規(guī)劃,無需儲存在軌跡程序段的隊列中。需要注意的是,M、S、T等模態(tài)指令不進(jìn)入插補(bǔ),但必須讀取,并通知PLC實(shí)時模塊執(zhí)行,從而能夠響應(yīng)程序暫停、啟動、復(fù)位等事件。在具體的程序?qū)崿F(xiàn)過程中,在讀緩存區(qū)之后首先判斷該程序段是否包含M、S、T 等模態(tài)指令或 G04 延時指令,此類指令不存儲在軌跡程序段隊列中。還需要注意加工的首個程序段是非軌跡程序段的情況,為防止回退到首個程序段時出錯,需要在初始化時將該程序段信息改為起終點(diǎn)重合,且 M、S、T 等模態(tài)指令及G04不存在的空軌跡段。

        2 手輪回退功能

        數(shù)控系統(tǒng)自動運(yùn)行過程中,按下“手輪模擬”按鍵,反轉(zhuǎn)手輪即可實(shí)現(xiàn)刀具沿原軌跡回退,回退速度由手輪操作速度決定,因此手輪回退是在程序段軌跡回退功能基礎(chǔ)上,用手輪速度取代程序指令速度實(shí)現(xiàn)的。手輪回退時需要確定刀具沿指定程序段回退的速度和方向。

        2.1 速度控制

        本文提出采用“分時采集、延后輸出”的方法來保證手輪輸入不確定的情況下輸出脈沖速度的連續(xù)。首先根據(jù)固定周期內(nèi)采集到的手輪實(shí)際位置,計算出周期手輪增量△Pn,并限制手輪最大速度;然后根據(jù)前一個周期的手輪增量△Pn-1和本周期手輪增量△Pn進(jìn)行速度規(guī)劃,最終得到輸出位置X(t)關(guān)于時間t的函數(shù)。脈沖輸出模塊根據(jù)該速度規(guī)劃的結(jié)果進(jìn)行位置離散和脈沖輸出,具體流程見圖5。

        圖5 手輪速度規(guī)劃流程

        2.2 方向控制

        對于本數(shù)控系統(tǒng),只有系統(tǒng)狀態(tài)為“空閑”,即有必要重新進(jìn)行軌跡規(guī)劃的情況下,才進(jìn)入圖2所示的運(yùn)動控制流程,否則不進(jìn)入該流程,也就無法及時在該流程中改變加工方向。如果需要在反轉(zhuǎn)手輪時立即改變加工方向,可以利用系統(tǒng)進(jìn)入“空閑”狀態(tài)的前提條件中的“其他需要重新進(jìn)行軌跡規(guī)劃的情況”。因此需在圖2基礎(chǔ)上增加一個判斷分支,如果程序讀取到手輪轉(zhuǎn)向與上一次不同,則進(jìn)入增加的分支,將系統(tǒng)狀態(tài)置為“空閑”,加工方向可在程序的下一個運(yùn)行周期(1 ms)后立即改變。

        3 實(shí)驗驗證

        3.1 程序段軌跡回退仿真

        在Qt 5.10.1軟件仿真環(huán)境中對程序段軌跡回退的C語言程序進(jìn)行測試驗證。軟件仿真環(huán)境測試時進(jìn)行了以下簡化:對一維程序段進(jìn)行測試,且只保留了起點(diǎn)和終點(diǎn)兩個變量;讀規(guī)劃緩沖區(qū)函數(shù)簡化為:當(dāng)前程序段終點(diǎn)坐標(biāo)為b,則下一程序段起點(diǎn)坐標(biāo)為b,終點(diǎn)坐標(biāo)為(b+1)或(b+2),由系統(tǒng)隨機(jī)確定;插補(bǔ)函數(shù)簡化為:如果當(dāng)前插補(bǔ)起點(diǎn)小于插補(bǔ)終點(diǎn),則下一個插補(bǔ)點(diǎn)為當(dāng)前點(diǎn)+0.5,反之則為當(dāng)前點(diǎn)-0.5;隊列容量設(shè)定為5;系統(tǒng)定時器設(shè)定每500ms 執(zhí)行一次軌跡規(guī)劃及插補(bǔ)流程。測試程序可以實(shí)現(xiàn)前進(jìn)、暫停、后退、復(fù)位、保存仿真結(jié)果等操作。將仿真結(jié)果保存到文本中,并將前50行數(shù)據(jù)進(jìn)行整理,具體見圖6。AB和DE段為正向插補(bǔ)過程,BC和EF段為反向回退過程,CD段表明軌跡回退超過最大回退段數(shù)時,不再回退。經(jīng)過多次仿真測試及結(jié)果分析,一維程序段軌跡回退的軟件仿真結(jié)果與理論值相吻合,可以進(jìn)一步移植到硬件開發(fā)環(huán)境中。

        圖6 一維程序段軌跡回退

        3.2 實(shí)際測試

        在軟件仿真的基礎(chǔ)上,使用自主研發(fā)的國產(chǎn)數(shù)控系統(tǒng)對手輪回退功能進(jìn)行實(shí)際測試。例如,在精加工圖7所示的零件時,當(dāng)程序執(zhí)行到N70程序段(見圖8)時,機(jī)床出現(xiàn)液壓故障,刀具需要立刻返回安全位置并進(jìn)行故障排除。內(nèi)孔車刀在工件的內(nèi)部,刀具退回的空間較小。采用人工手動回退,若操作失誤將導(dǎo)致刀具和工具相撞。此時,可按下“手輪模擬”按鍵并反轉(zhuǎn)手輪,刀具會首先沿著N70程序段已加工的軌跡回退,N70程序段回退結(jié)束后接著按照N60指定的軌跡回退,最后回退至安全位置(見圖7)。圖9為利用NI采集卡采集的系統(tǒng)沿N70程序段回退時的速度控制曲線,曲線1為手輪轉(zhuǎn)動速度曲線,曲線2為經(jīng)過速度規(guī)劃后的進(jìn)給軸輸出速度控制曲線,結(jié)果顯示,進(jìn)給軸輸出速度Vf能較好地響應(yīng)手輪轉(zhuǎn)動速度Vh,并且在Vh變化較大的情況下Vf能保持較好的連續(xù)性。綜合測試結(jié)果表明,系統(tǒng)能夠?qū)崿F(xiàn)任意坐標(biāo)點(diǎn)處的暫停、回退、再啟動、再前進(jìn)等一系列操作,不偏離程序設(shè)定的加工路徑,且能保證手輪輸入不確定的情況下進(jìn)給軸輸出速度的連續(xù)。

        圖7 待加工零件回退路線

        圖8 手輪回退案例

        圖9 手輪速度控制曲線

        4 結(jié)束語

        基于某國產(chǎn)數(shù)控系統(tǒng)已經(jīng)具備的手輪正向控制程序執(zhí)行功能,開發(fā)了手輪雙向控制程序執(zhí)行功能,即“手輪模擬”模式下的加工軌跡回退,實(shí)現(xiàn)了在任意位置反轉(zhuǎn)手輪時加工方向立即反轉(zhuǎn),且不偏離程序設(shè)定的加工路徑。經(jīng)過實(shí)驗驗證以及企業(yè)車間的實(shí)際測試,結(jié)果表明已正確實(shí)現(xiàn)手輪回退功能。

        猜你喜歡
        程序段手輪鏈表
        基于WinCC的物料小車控制系統(tǒng)設(shè)計與仿真
        電動工具(2022年2期)2022-05-18 08:40:38
        數(shù)控機(jī)床電子手輪工作原理及故障分析
        基于二進(jìn)制鏈表的粗糙集屬性約簡
        跟麥咭學(xué)編程
        基于NC程序段的提高數(shù)控加工監(jiān)控閾值與信號同步的方法*
        基于鏈表多分支路徑樹的云存儲數(shù)據(jù)完整性驗證機(jī)制
        數(shù)控銑床FANUC 0i 系統(tǒng)刀具半徑補(bǔ)償系統(tǒng)參數(shù)設(shè)置解析
        基于生產(chǎn)改造的數(shù)控銑床手輪加裝策略研究
        數(shù)控機(jī)床電子手輪類故障及快速診斷方法
        鏈表方式集中器抄表的設(shè)計
        電測與儀表(2014年1期)2014-04-04 12:00:22
        蜜桃精品视频一二三区| 国产人成无码视频在线| 国产日韩AV无码免费一区二区| 国产自拍一区二区三区| 色窝窝亚洲av网在线观看| 国产av人人夜夜澡人人爽麻豆| 亚洲AV激情一区二区二三区| 亚洲精品女优中文字幕| 成人影院在线视频免费观看| 国产av无码专区亚洲awww| 久久国产热精品波多野结衣av| 少妇激情一区二区三区| 亚洲精品在线国产精品| 国产麻豆剧传媒精品国产av| 国产激情视频在线观看首页| 热综合一本伊人久久精品| 亚洲精品无码久久久久y| 国产欧美日韩综合精品二区| 中文字幕一区二区三区人妻精品| 在线不卡精品免费视频| 久久偷看各类wc女厕嘘嘘偷窃| 亚洲av无码片在线观看| 精品一区二区三区影片| 国产激情综合五月久久| 内射人妻视频国内| 国产无码夜夜一区二区| 最新亚洲av日韩av二区一区| 校园春色综合久久精品中文字幕| 欧美另类高清zo欧美| 国产资源精品一区二区免费| 口爆吞精美臀国产在线| 特黄aaaaaaaaa毛片免费视频| 亚洲av永久无码精品秋霞电影影院 | 蜜臀色欲av在线播放国产日韩 | 久久久久人妻一区精品色欧美| 中文字幕AⅤ人妻一区二区| 国产精品自拍视频免费看| 伊人久久大香线蕉av色婷婷色| 亚洲欧洲日产国码无码久久99| 亚洲一区精品一区在线观看| 尤物在线观看一区蜜桃|