專利名稱:數(shù)控機(jī)床系統(tǒng)中實(shí)現(xiàn)倒行運(yùn)動(dòng)控制的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)控機(jī)床系統(tǒng)領(lǐng)域,特別涉及數(shù)控機(jī)床系統(tǒng)運(yùn)動(dòng)控制技術(shù)領(lǐng)域,具體是指一 種數(shù)控機(jī)床系統(tǒng)中實(shí)現(xiàn)倒行運(yùn)動(dòng)控制的方法。
背景技術(shù):
制造業(yè)是國民經(jīng)濟(jì)的基礎(chǔ)產(chǎn)業(yè),制造業(yè)的水平高低是衡量一個(gè)國家工業(yè)發(fā)達(dá)程度的重要 標(biāo)志。數(shù)控機(jī)床質(zhì)量水平的高低,關(guān)系著國家制造業(yè)水平的高低。
在現(xiàn)有技術(shù)中,經(jīng)常會(huì)利用數(shù)控機(jī)床系統(tǒng)進(jìn)行相應(yīng)的切割或者焊接等操作。在利用數(shù)控 機(jī)床系統(tǒng)進(jìn)行高壓水射流切割機(jī)作業(yè)時(shí),有時(shí)由于所切割材料厚度的材質(zhì)局部太厚,或預(yù)設(shè) 加工速度太大等原因,會(huì)遇到切割一段軌跡未切透,需要再次切割的問題。如果當(dāng)前數(shù)控指 令(如G代碼指令)對(duì)應(yīng)的是一條較長(zhǎng)的軌跡,而未切透的只是這條指令的后半部分,則如 果停止機(jī)床然后使用斷點(diǎn)繼續(xù)功能進(jìn)行再切割,就要從當(dāng)前軌跡的起始點(diǎn)開始進(jìn)行重新切割, 由于水切割機(jī)床使用的噴嘴是易損且昂貴的部件,這種重新切割的方法顯得不經(jīng)濟(jì)。
另夕卜,有時(shí)數(shù)控機(jī)床系統(tǒng)的操作人員并不確切得知道是從哪條數(shù)控指令開始出現(xiàn)的問題, 釆用斷點(diǎn)繼續(xù)不能一次性準(zhǔn)確確定應(yīng)從哪條指令開始進(jìn)行斷點(diǎn)加工。此時(shí)便迫切需要一種能 夠?qū)?shù)控機(jī)M當(dāng)前位置沿歷史加工軌跡進(jìn)行倒行加工的控制方法。
發(fā)明內(nèi)容
本發(fā)明的目的是克服了上述現(xiàn)有技術(shù)中的缺點(diǎn),提供一種能夠在數(shù)控機(jī)床運(yùn)動(dòng)控制系統(tǒng)
中實(shí)現(xiàn)精確的倒行運(yùn)動(dòng)、處理過程簡(jiǎn)單方便、操作過程快捷高效、工作性能穩(wěn)定可靠、適用
范圍較為廣泛的數(shù)控機(jī)床系統(tǒng)中實(shí)現(xiàn)倒行運(yùn)動(dòng)控制的方法。
為了實(shí)現(xiàn)上迷的目的,本發(fā)明的數(shù)控機(jī)床系統(tǒng)中實(shí)現(xiàn)倒行運(yùn)動(dòng)控制的方法如下 該數(shù)控機(jī)床系統(tǒng)中實(shí)現(xiàn)倒行運(yùn)動(dòng)控制的方法,其主要特點(diǎn)是,所述的系統(tǒng)中設(shè)置有歷史
運(yùn)動(dòng)記錄緩沖區(qū),所迷的方法包括正常運(yùn)動(dòng)控制處理操作、倒行運(yùn)動(dòng)控制處理操作和正行運(yùn)
動(dòng)控制處理操作,所述的正常運(yùn)動(dòng)控制處理操作包括以下步猓 (11)系統(tǒng)根據(jù)用戶操作信息進(jìn)入正常加工運(yùn)行模式;
(12) 系統(tǒng)進(jìn)行指令讀取操作;
(13) 系統(tǒng)判斷該指令是否為運(yùn)動(dòng)指令;
(14) 如果是,則系統(tǒng)將該運(yùn)動(dòng)指令發(fā)送到數(shù)控機(jī)床系統(tǒng)的運(yùn)動(dòng)控制模塊,并將該運(yùn)動(dòng) 指令存儲(chǔ)到歷史運(yùn)動(dòng)記錄緩沖區(qū);
(15) 如果否,則系統(tǒng)根據(jù)該指令進(jìn)行其它處理;
(16) 返回上述步驟(12); 所述的倒行運(yùn)動(dòng)控制處理操作包括以下步驟
(21) 系統(tǒng)根據(jù)用戶操作信息ii^反向加工運(yùn)行模式;
(22) 系統(tǒng)在歷史運(yùn)動(dòng)記錄緩沖區(qū)中進(jìn)行反向讀^it動(dòng)指令操作;
(23) 系統(tǒng)將讀取的運(yùn)動(dòng)指令的方向反向,并發(fā)送到數(shù)控機(jī)床系統(tǒng)的運(yùn)動(dòng)控制硬件模塊;
(24) 系統(tǒng)根據(jù)用戶操作判斷是否需要退出反向加工運(yùn)行模式;
(25) 如果是,則退出反向加工運(yùn)行模式;反之,則返回上迷步驟(22); 所述的正行運(yùn)動(dòng)控制處理操作包括以下步驟
(31) 系統(tǒng)根據(jù)用戶操作信息itA正向加工運(yùn)行模式;
(32) 系統(tǒng)在歷史運(yùn)動(dòng)記錄緩沖區(qū)中進(jìn)行正向讀^動(dòng)指令操作;
(33 )系統(tǒng)將讀取的運(yùn)動(dòng)指令發(fā)送到數(shù)控機(jī)床系統(tǒng)的運(yùn)動(dòng)控制硬件模塊; (34)返回上述步驟(32 )。
該數(shù)控機(jī)床系統(tǒng)中實(shí)現(xiàn)倒行運(yùn)動(dòng)控制的方法中的歷史運(yùn)動(dòng)記錄緩沖區(qū)中設(shè)置有首數(shù)據(jù)位 置指針、讀數(shù)據(jù)位置指針和寫數(shù)據(jù)位置指針,所述的將該運(yùn)動(dòng)指令存儲(chǔ)到歷史運(yùn)動(dòng)記錄緩沖 區(qū),包括以下步驟
(141) 如果歷史運(yùn)動(dòng)記錄緩沖區(qū)中尚未存儲(chǔ)有任何記錄,則將首數(shù)據(jù)位置指針、讀數(shù)據(jù) 位置指針和寫lfc據(jù)位置指針均指向同一記錄單元;
(142) 系統(tǒng)將運(yùn)動(dòng)指令中的信息寫入所述的寫數(shù)據(jù)位置指針?biāo)赶虻挠涗泦卧校?br>
(143 )如果該歷史運(yùn)動(dòng)記錄緩沖區(qū)中所有記錄單元均寫滿,即該寫數(shù)據(jù)位置指針與所述 的首數(shù)據(jù)位置指針?biāo)赶虻?^錄單元相同,則將首數(shù)據(jù)位置指針向邏輯正方向移動(dòng)一個(gè)記錄 單元;
(144) 系統(tǒng)將所述的讀數(shù)據(jù)位置指針指向所迷的寫數(shù)據(jù)位置指針?biāo)赶虻挠涗泦卧?br>
(145) 系統(tǒng)將所述的寫數(shù)據(jù)位置指針向邏輯正方向移動(dòng)一個(gè)記錄單元。 該數(shù)控機(jī)床系統(tǒng)中實(shí)現(xiàn)倒行運(yùn)動(dòng)控制的方法中的系統(tǒng)在歷史運(yùn)動(dòng)記錄緩沖區(qū)中進(jìn)行反向
讀和逸動(dòng)指令操作,包括以下步驟
(221 )如果所述的讀數(shù)據(jù)位置指針?biāo)赶虻挠涗泦卧獮樗龅氖讛?shù)據(jù)位置指針?biāo)赶虻?記錄單元的邏輯負(fù)方向的下一個(gè)單元,且該讀數(shù)據(jù)位置指針最近一次是沿邏輯負(fù)方向越過首 數(shù)據(jù)位置指針,則系統(tǒng)退出反向加工運(yùn)行模式;
(222)系統(tǒng)進(jìn)行數(shù)控機(jī)床加工倍率調(diào)整;
(223 )系統(tǒng)從所述的讀數(shù)據(jù)位置指針?biāo)赶虻挠涗泦卧凶x取運(yùn)動(dòng)指令中的信息;
(224)系統(tǒng)將所述的讀數(shù)據(jù)位置指針向邏輯負(fù)方向移動(dòng)一個(gè)記錄單元,并返回。 該數(shù)控機(jī)床系統(tǒng)中實(shí)現(xiàn)倒行運(yùn)動(dòng)控制的方法中的系統(tǒng)在歷史運(yùn)動(dòng)記錄緩沖區(qū)中進(jìn)行正向 讀取運(yùn)動(dòng)指令操作,包括以下步驟
(321 )如果所述的寫數(shù)據(jù)位置指針?biāo)赶虻挠涗泦卧獮樗龅淖x數(shù)據(jù)位置指針?biāo)赶虻?記錄單元的邏輯正方向的下一個(gè)單元,且該讀數(shù)據(jù)位置指針并非最近一次是沿邏輯負(fù)方向越 過寫數(shù)據(jù)位置指針,則系統(tǒng)退出正向加工運(yùn)行模式;
(322 )系統(tǒng)進(jìn)行數(shù)控機(jī)床加工倍率調(diào)整;
(323 )系統(tǒng)從所述的讀數(shù)據(jù)位置指針?biāo)赶虻挠涗泦卧凶x取運(yùn)動(dòng)指令中的信息; (324)系統(tǒng)將所述的讀數(shù)據(jù)位置指針向邏輯正方向移動(dòng)一個(gè)記錄單元,并返回。 該數(shù)控機(jī)床系統(tǒng)中實(shí)現(xiàn)倒行運(yùn)動(dòng)控制的方法中的運(yùn)動(dòng)指令中的信息包括軸信息、各單軸 運(yùn)動(dòng)脈沖數(shù)和運(yùn)動(dòng)方向信息。
該數(shù)控才兒床系統(tǒng)中實(shí)現(xiàn)倒行運(yùn)動(dòng)控制的方法中的運(yùn)動(dòng)指令中的信息還可以包括數(shù)控機(jī)床 輸出端口開關(guān)動(dòng)作信息。
該數(shù)控機(jī)床系統(tǒng)中實(shí)現(xiàn)倒#^動(dòng)控制的方法中的系統(tǒng)中設(shè)置有主指令緩沖區(qū),所述的系 統(tǒng)進(jìn)行指令讀取操作,包括以下步驟
(121) 系統(tǒng)判斷所迷的主指令緩沖區(qū)中是否存在未讀取指令;
(122) 如果否,則退出正常加工運(yùn)行模式; (123 )系統(tǒng)進(jìn)行數(shù)控機(jī)床加工倍率調(diào)整; (124)系統(tǒng)從所述的主指令緩沖區(qū)中讀取指令。
該數(shù)控機(jī)床系統(tǒng)中實(shí)現(xiàn)倒行運(yùn)動(dòng)控制的方法中的用戶操作信息可以為數(shù)控機(jī)床上的手輪 操作控制信息或者控制命令操作信息。
該數(shù)控機(jī)床系統(tǒng)中實(shí)現(xiàn)倒行運(yùn)動(dòng)控制的方法中的歷史運(yùn)動(dòng)記錄緩沖區(qū)的空間大小L根據(jù) 以下〃>式確定
L = nxax (hx3600x1000) /T; 其中,n為單軸運(yùn)動(dòng)脈沖指令脈沖數(shù)及運(yùn)動(dòng)方向所占據(jù)的字節(jié)數(shù),a為軸數(shù),h為系統(tǒng)預(yù)
設(shè)的可支持自動(dòng)倒行最大運(yùn)動(dòng)小時(shí)數(shù),T為數(shù)控機(jī)床的控制周期毫秒數(shù)。
釆用了該發(fā)明的數(shù)控機(jī)床系統(tǒng)中實(shí)現(xiàn)倒行運(yùn)動(dòng)控制的方法,由于其釆用在數(shù)控機(jī)床系統(tǒng) 中內(nèi)置的歷史運(yùn)動(dòng)記錄緩沖區(qū)將正常加工運(yùn)行模式下的運(yùn)動(dòng)指令信息記錄下來,并在系統(tǒng)進(jìn) 入反向加工運(yùn)行模式時(shí)依邏輯負(fù)方向逐一從歷史運(yùn)動(dòng)記錄緩沖區(qū)中將運(yùn)動(dòng)指令中的信息取出 反向后,控制數(shù)控機(jī)床運(yùn)動(dòng),在系統(tǒng)進(jìn)入正向加工運(yùn)行模式時(shí)依邏輯正方向逐一從歷史運(yùn)動(dòng) 記錄緩沖區(qū)中將運(yùn)動(dòng)指令中的信息取出,控制數(shù)控機(jī)^it動(dòng),從而在數(shù)控機(jī)床運(yùn)動(dòng)控制系統(tǒng) 中實(shí)現(xiàn)了精確的倒行運(yùn)動(dòng)控制,不僅實(shí)現(xiàn)過程簡(jiǎn)單方便,而且操作過程快捷高效,實(shí)際運(yùn)行 情況下準(zhǔn)確可靠,能夠較好的滿足數(shù)控系統(tǒng)(如高壓水射流切割系統(tǒng))中進(jìn)行精確倒行運(yùn)動(dòng) 的控制要求,不僅可運(yùn)用到高壓水射流切割行業(yè),也可運(yùn)用到其它數(shù)控行業(yè)領(lǐng)域中,適用范 圍較為廣泛,為數(shù)控機(jī)床系統(tǒng)運(yùn)動(dòng)控制技術(shù)的進(jìn)一步t艮奠定了堅(jiān)實(shí)的基礎(chǔ)。
圖1為本發(fā)明的數(shù)控機(jī)床系統(tǒng)中實(shí)現(xiàn)倒行運(yùn)動(dòng)控制的方法在正常加工運(yùn)行模式下的工作 流程圖。
圖2為本發(fā)明的數(shù)控機(jī)床系統(tǒng)中實(shí)現(xiàn)倒行運(yùn)動(dòng)控制的方法在反向加工運(yùn)行模式下的工作 流程圖.
圖3為本發(fā)明的數(shù)控機(jī)床系統(tǒng)中實(shí)現(xiàn)倒行運(yùn)動(dòng)控制的方法在正向加工運(yùn)行模式下的工作 流程圖。
具體實(shí)施例方式
為了能夠更清楚地理解本發(fā)明的技術(shù)內(nèi)容,特舉以下實(shí)施例詳細(xì)說明。 首先對(duì)數(shù)控機(jī)床技術(shù)領(lǐng)域中的幾個(gè)名詞進(jìn)行解釋
斷點(diǎn)繼續(xù)——數(shù)控控制軟件的一項(xiàng)功能,執(zhí)行該功能,系統(tǒng)從上次加工中斷處開始繼 續(xù)執(zhí)行。
數(shù)控運(yùn)動(dòng)脈沖指令——數(shù)控控制軟件發(fā)往運(yùn)動(dòng)控制卡的運(yùn)動(dòng)指令脈沖信息,包括軸信 息,各單軸脈沖數(shù)及運(yùn)動(dòng)方向,其中運(yùn)動(dòng)方向用正負(fù)號(hào)表示,在本發(fā)明的方法中,要求其所 占內(nèi)存大小不變。
加工倍率——當(dāng)前加工速度與正常加工速度的比,稱為加工倍率。 手輪 一 手搖脈沖發(fā)生器的簡(jiǎn)稱, 一種數(shù)控才兒床輸入設(shè)備,通過脈沖計(jì)數(shù),數(shù)控控制 計(jì)算機(jī)將獲得的手輪本次計(jì)數(shù)值與上次計(jì)數(shù)值之差,作為機(jī)床運(yùn)動(dòng)的一種控制輸入信號(hào)。 邏輯正方向——指歷史運(yùn)動(dòng)記錄緩沖區(qū)中先存入數(shù)據(jù)到后存入數(shù)據(jù)的在緩沖區(qū)里排列
的邏輯方向。
邏輯負(fù)方向——指歷史運(yùn)動(dòng)記錄緩沖區(qū)中先存入數(shù)據(jù)到后存入數(shù)據(jù)的在緩沖區(qū)里排列 的邏輯方向的反方向。
請(qǐng)參閱圖1至圖3所示,該數(shù)控機(jī)床系統(tǒng)中實(shí)現(xiàn)倒行運(yùn)動(dòng)控制的方法,其主要特點(diǎn)是, 所述的系統(tǒng)中設(shè)置有歷史運(yùn)動(dòng)記錄緩沖區(qū),所述的方法包括正常運(yùn)動(dòng)控制處理操作、倒行運(yùn) 動(dòng)控制處理操作和正行運(yùn)動(dòng)控制處理操作,所述的正常運(yùn)動(dòng)控制處理操作包括以下步驟
(11) 系統(tǒng)根據(jù)用戶操作信息進(jìn)入正常加工運(yùn)行模式,該用戶操作信息可以為數(shù)控機(jī)床 上的手輪操作控制信息或者控制命令操作信息;
(12) 系統(tǒng)進(jìn)行指令讀取操作;該數(shù)控機(jī)床系統(tǒng)中設(shè)置有主指令緩沖區(qū),所述的系統(tǒng)進(jìn) 行指令讀取操作,包括以下步驟
(a) 系統(tǒng)判斷所述的主指令緩沖區(qū)中是否存在未讀取指令;
(b) 如果否,則退出正常加工運(yùn)行模式;
(c) 系統(tǒng)進(jìn)行數(shù)控機(jī)^n工倍率調(diào)整;
(d) 系統(tǒng)從所述的主指令緩沖區(qū)中讀取指令; (13 )系統(tǒng)判斷該指令是否為運(yùn)動(dòng)指令;
(14) 如果是,則系統(tǒng)將該運(yùn)動(dòng)指令發(fā)送到數(shù)控機(jī)床系統(tǒng)的運(yùn)動(dòng)控制模塊,并將該運(yùn)動(dòng) 指令存儲(chǔ)到歷史運(yùn)動(dòng)記錄緩沖區(qū);該歷史運(yùn)動(dòng)記錄緩沖區(qū)中設(shè)置有首數(shù)據(jù)位置指針、讀數(shù)據(jù) 位置指針和寫數(shù)據(jù)位置指針,所述的將該運(yùn)動(dòng)指令存儲(chǔ)到歷史運(yùn)動(dòng)記錄緩沖區(qū),包括以下步 號(hào).
(a) 如果歷史運(yùn)動(dòng)記錄緩沖區(qū)中尚未存儲(chǔ)有任何記錄,則將首數(shù)據(jù)位置指針、讀數(shù) 據(jù)位置指針和寫數(shù)據(jù)位置指針均指向同一記錄單元;
(b) 系統(tǒng)將運(yùn)動(dòng)指令中的信息寫入所述的寫數(shù)據(jù)位置指針?biāo)赶虻挠涗泦卧校?運(yùn)動(dòng)指令中的信息包括有軸信息、各單軸運(yùn)動(dòng)脈沖數(shù)和運(yùn)動(dòng)方向信息,同時(shí),該運(yùn)動(dòng) 指令中的信息還可以包括數(shù)控機(jī)床輸出端口開關(guān)動(dòng)作信息;
(c) 如果該歷史運(yùn)動(dòng)記錄緩沖區(qū)中所有記錄單元均寫滿,且該寫數(shù)據(jù)位置指針與所 迷的首數(shù)據(jù)位置指針?biāo)赶虻挠涗泦卧嗤瑒t將首數(shù)據(jù)位置指針向邏輯正方向移動(dòng) 一個(gè)記錄單元;
(d) 系統(tǒng)將所述的讀數(shù)據(jù)位置指針指向所述的寫數(shù)據(jù)位置指針?biāo)赶虻挠涗泦卧?br>
(e) 系統(tǒng)將所述的寫數(shù)據(jù)位置指針向邏輯正方向移動(dòng)一個(gè)記錄單元;
(15) 如果否,則系統(tǒng)根據(jù)該指令進(jìn)行其它處理;(16)返回上述步驟(12); 所述的倒行運(yùn)動(dòng)控制處理操作包括以下步驟
(21) 系統(tǒng)根據(jù)用戶操作信息進(jìn)入反向加工運(yùn)行模式;
(22) 系統(tǒng)在歷史運(yùn)動(dòng)記錄緩沖區(qū)中進(jìn)行反向讀^i^動(dòng)指令操作,包括以下步驟
(a) 如果所述的讀數(shù)據(jù)位置指針?biāo)赶虻挠涗泦卧獮樗龅氖讛?shù)據(jù)位置指針?biāo)赶?的記錄單元的邏輯負(fù)方向的下一個(gè)單元,且該讀數(shù)據(jù)位置指針最近一次是沿邏輯負(fù)方 向越過首數(shù)據(jù)位置指針,則系統(tǒng)退出反向加工運(yùn)行模式;
(b) 系統(tǒng)進(jìn)行數(shù)控機(jī)床加工倍率調(diào)整;
(c) 系統(tǒng)從所述的讀數(shù)據(jù)位置指針?biāo)赶虻挠涗泦卧凶x取運(yùn)動(dòng)指令中的信息;
(d) 系統(tǒng)將所述的讀數(shù)據(jù)位置指針向邏輯負(fù)方向移動(dòng)一個(gè)記錄單元,并返回;
(23) 系統(tǒng)將讀取的運(yùn)動(dòng)指令的方向反向,并發(fā)送到數(shù)控機(jī)床系統(tǒng)的運(yùn)動(dòng)控制模塊;
(24) 系統(tǒng)根據(jù)用戶操作判斷是否需要退出反向加工運(yùn)行模式;
(25) 如果是,則退出反向加工運(yùn)行模式;反之,則返回上述步驟(22); 所述的正行運(yùn)動(dòng)控制處理操作包括以下步驟
(31) 系統(tǒng)根據(jù)用戶操作信息進(jìn)入正向加工運(yùn)行模式;
(32) 系統(tǒng)在歷史運(yùn)動(dòng)記錄緩沖區(qū)中進(jìn)行正向讀取運(yùn)動(dòng)指令操作,包括以下步驟
(a) 如果所述的寫數(shù)據(jù)位置指針?biāo)赶虻挠涗泦卧獮樗龅淖x數(shù)據(jù)位置指針?biāo)赶?的記錄單元的邏輯正方向的下一個(gè)單元,且該讀數(shù)據(jù)位置指針并非最近一次是沿邏輯 負(fù)方向越過寫數(shù)據(jù)位置指針,則系統(tǒng)退出正向加工運(yùn)行模式;
(b) 系統(tǒng)進(jìn)行數(shù)控機(jī)床加工倍率調(diào)整;
(c) 系統(tǒng)將所述的讀數(shù)據(jù)位置指針向邏輯正方向移動(dòng)一個(gè)記錄單元;
(d) 系統(tǒng)從所述的讀數(shù)據(jù)位置指針?biāo)赶虻挠涗泦卧凶x取運(yùn)動(dòng)指令中的信息,并 返回;
(33 )系統(tǒng)將讀取的運(yùn)動(dòng)指令發(fā)送到數(shù)控機(jī)床系統(tǒng)的運(yùn)動(dòng)控制模塊; (34)返回上述步驟(32)。
其中,所述的歷史運(yùn)動(dòng)記錄緩沖區(qū)的空間大小L根據(jù)以下公式確定
L = nxax (hx3600x1000) /T; 其中,n為單軸運(yùn)動(dòng)脈沖指令脈沖數(shù)及運(yùn)動(dòng)方向所占據(jù)的字節(jié)數(shù),a為軸數(shù),h為系統(tǒng)預(yù) 設(shè)的可支持自動(dòng)倒行最大運(yùn)動(dòng)小時(shí)數(shù),T為數(shù)控機(jī)床的控制周期毫秒數(shù)。
在實(shí)際使用當(dāng)中,為了實(shí)現(xiàn)本發(fā)明的上述功能,需要在數(shù)控機(jī)床系統(tǒng)的控制軟件中開辟
一塊內(nèi)存,其數(shù)據(jù)結(jié)構(gòu)是一個(gè)環(huán)形緩沖區(qū),該緩沖區(qū)的每個(gè)單元可存儲(chǔ)一個(gè)完整的數(shù)控運(yùn)動(dòng) 脈沖指令的脈沖方向和脈沖數(shù)信息,軟件設(shè)計(jì)時(shí)可以才艮據(jù)運(yùn)動(dòng)控制卡的運(yùn)動(dòng)控制周期,估算
出一個(gè)運(yùn)動(dòng)期望最長(zhǎng)時(shí)間4M吏用多大的緩沖區(qū),并留適當(dāng)余量,以此確定該緩沖區(qū)的大小。
軟件設(shè)定三個(gè)位置指針,分別指向上述緩沖區(qū)當(dāng)前首數(shù)據(jù)位置,讀數(shù)據(jù)位置和寫數(shù)據(jù)位 置,最初這三個(gè)位置指針指向同一單元。
該環(huán)形緩沖區(qū)用于存儲(chǔ)系統(tǒng)在正常運(yùn)行^f莫式下運(yùn)行時(shí)運(yùn)動(dòng)控制系統(tǒng)產(chǎn)生出來的數(shù)控運(yùn)動(dòng) 脈沖指令,存儲(chǔ)時(shí)軟件在寫指針位置存儲(chǔ)一個(gè)單元的數(shù)據(jù)后,將讀指針位置指向當(dāng)前寫指針 位置,并將寫指針往邏輯正方向移動(dòng)一個(gè)單元的位置。當(dāng)緩沖區(qū)數(shù)據(jù)滿時(shí),此時(shí)如再寫入新 數(shù)據(jù),則將覆蓋歷史最早數(shù)據(jù),并要往邏輯正方向移動(dòng)首數(shù)據(jù)指針一個(gè)單元。
程序進(jìn)入良向讀歷史運(yùn)動(dòng)記錄緩沖區(qū)模式時(shí),則從該援沖區(qū)讀指針?biāo)肝恢米x出一個(gè)運(yùn) 動(dòng)元指令,將其數(shù)控運(yùn)動(dòng)脈沖指令方向反向,發(fā)送到運(yùn)動(dòng)控制卡,然后往邏輯負(fù)方向移動(dòng)讀 指針一個(gè)單元,如果倒行運(yùn)動(dòng)一直執(zhí)行下去,則直至讀數(shù)據(jù)位置指針越過倒行緩沖區(qū)首數(shù)據(jù) 位置,則系統(tǒng)將停止倒行,并處于停頓狀態(tài),軟件可在界面上提示用戶。
如果程序進(jìn)入讀歷史運(yùn)動(dòng)記錄緩沖區(qū)正行模式時(shí),向邏輯正方向移動(dòng)讀指針一個(gè)單元, 如果緩沖區(qū)讀指針位置小于寫指針邏輯位置,則從讀位置讀出運(yùn)動(dòng)指令,直接發(fā)送至運(yùn)動(dòng)控 制卡。否則脫離讀歷史運(yùn)動(dòng)記錄緩沖區(qū),進(jìn)入正常狀態(tài)運(yùn)行。
如果在倒行模式運(yùn)行過程中當(dāng)中退出倒行模式,而倒行緩沖區(qū)正向還有指令未能執(zhí)行, 此時(shí)系統(tǒng)將自動(dòng)正向執(zhí)行歷史運(yùn)動(dòng)記錄緩沖區(qū)的數(shù)控運(yùn)動(dòng)脈沖指令,直至最后一個(gè)指令,然 后進(jìn)入正常狀態(tài)運(yùn)行。
因此,數(shù)控機(jī)"正常運(yùn)行時(shí)系統(tǒng)按照?qǐng)D1所示的流程運(yùn)行,在倒行加工時(shí)系統(tǒng)按照?qǐng)D 2所示的流程運(yùn)行,脫離倒行加工時(shí)系統(tǒng)按照?qǐng)D3所示的流程運(yùn)行,讀完歷史運(yùn)動(dòng)記錄緩沖 區(qū),系統(tǒng)又繼續(xù)按照?qǐng)D1所示的流程遠(yuǎn)行。
為了能夠平穩(wěn)地控制加工倍率,需要對(duì)加工倍率的變化進(jìn)行平滑處理,可以在程序控制 的情況下,采用從當(dāng)前加工倍率下開始逐漸接近目標(biāo)加工倍率的方法,直至以目標(biāo)加工倍率 穩(wěn)定加工;也可以在手輪引導(dǎo)機(jī)床加工的模式下,通過手輪搖動(dòng)速度控制加工速度的目的, 建立手輪脈沖計(jì)數(shù)值歷史數(shù)據(jù),使用歷史數(shù)據(jù)的平均值控制進(jìn)給倍率,手輪歷史數(shù)據(jù)將定時(shí) 刷新。通過這種方式,就可以平穩(wěn)地控制加工速度。
對(duì)于歷史運(yùn)動(dòng)緩沖區(qū)所占內(nèi)存大小的估算,可以按照以下方法進(jìn)行
設(shè)目標(biāo)控制系統(tǒng)的控制周期為T,單位為毫秒,期望可支持自動(dòng)倒行運(yùn)動(dòng)時(shí)間為h,單位 為小時(shí),單軸運(yùn)動(dòng)脈沖指令脈沖數(shù)及方向可用n個(gè)字節(jié)存儲(chǔ),軸數(shù)為a,則緩沖區(qū)大小計(jì)算 公式為
L = nxax (hx3600x1000) /T;
其中,L的單位為字節(jié)。
以n-2、 a = 3、 h = 0.5、 T-2.5為例,代入上式,則可計(jì)算出
L = 4320000字節(jié) 采用本發(fā)明的方法,其操作方式如下
在機(jī)床加工過程中遇到需要倒行運(yùn)動(dòng)進(jìn)行加工時(shí),通過數(shù)控機(jī)床控制系統(tǒng)軟件界面操作 讓機(jī)床進(jìn)入手輪倒行工作模式,機(jī)床將停止下來,手輪倒搖,則機(jī)床沿原軌跡路線倒行加工; 手輪沿正方向搖動(dòng),則沖幾床沿正行方向進(jìn)行加工;手輪搖動(dòng)得越快,機(jī)床加工速度越快,手 輪停止,則加工停止,加工速度變化平滑;如用戶在操作界面上改變操作方式,離開手輪引 導(dǎo)工作模式,則加工程序正常運(yùn)行,沿正行方向加工。
同時(shí),還可以有另 一種倒行操作方式,在數(shù)控機(jī)床控制系統(tǒng)軟件界面上加上命令操作按 鈕, 一個(gè)為正行加工命令按鈕, 一個(gè)為倒行加工按鈕。在機(jī)床處于加工過程中,如用戶需要 倒要加工,可以點(diǎn)擊倒行加工按鈕,此時(shí)系統(tǒng)會(huì)以程序設(shè)定的方式,自動(dòng)倒行加工,期間不 需要前述手輪方式那樣搖動(dòng)手輪。如果用戶倒行加工至不再需要倒行加工時(shí),可以按正行加 工按鈕,此時(shí)系統(tǒng)將自動(dòng)正行加工。如用戶需暫?;蛲V辜庸さ葮?biāo)準(zhǔn)數(shù)控指令,可以在軟件 界面上發(fā)相應(yīng)指令(通常是菜單或按鈕方式)。
在本發(fā)明的方法中,為了建立歷史運(yùn)動(dòng)記錄緩沖區(qū),需要占用一定的內(nèi)存,考慮到一般 加工現(xiàn)場(chǎng)加工工人能比較及時(shí)發(fā)現(xiàn)需要倒行加工的情況,因此不需要太大的倒行量, 一般幾 十兆內(nèi)存就足夠了 ,對(duì)當(dāng)前主流計(jì)算機(jī)的大內(nèi)存來說是完全可以接受的。
同時(shí),在本發(fā)明的方法中,還可以記錄相應(yīng)輸出端口的開閉動(dòng)作,由于在高壓水射流切 割行業(yè)中,切不透材料的情況通常是不規(guī)則的,在讀歷史運(yùn)動(dòng)錄緩沖區(qū)模式中要目測(cè)發(fā)現(xiàn)缺 陷并控制切割,此時(shí)手動(dòng)控制開閉各個(gè)閥門就可以了,不需要自動(dòng)控制閥門控制輸出端口自 動(dòng)開閉,也就是不需要記錄輸出端口的開閉動(dòng)作,在這種情況下可以不記錄輸出端口的開閉 動(dòng)作。
采用了上述的數(shù)控機(jī)床系統(tǒng)中實(shí)現(xiàn)倒行運(yùn)動(dòng)控制的方法,由于其采用在數(shù)控才幾床系統(tǒng)中 內(nèi)置的歷史運(yùn)動(dòng)記錄緩沖區(qū)將正常加工運(yùn)行模式下的運(yùn)動(dòng)指令信息記錄下來,并在系統(tǒng)i4^v 反向加工運(yùn)行模式時(shí)依邏輯負(fù)方向逐一從歷史運(yùn)動(dòng)記錄緩沖區(qū)中將運(yùn)動(dòng)指令中的信息取出反 向后,控制數(shù)控機(jī)床運(yùn)動(dòng),在系統(tǒng)進(jìn)入正向加工運(yùn)行模式時(shí)依邏輯正方向逐一從歷史運(yùn)動(dòng)記 錄緩沖區(qū)中將運(yùn)動(dòng)指令中的信息取出,控制數(shù)控機(jī)^fe動(dòng),從而在數(shù)控機(jī)"動(dòng)控制系統(tǒng)中
實(shí)現(xiàn)了精確的倒行運(yùn)動(dòng)控制,不僅實(shí)現(xiàn)過程簡(jiǎn)單方便,而且操作過程快捷高效,實(shí)際運(yùn)行情 況下準(zhǔn)確可靠,能夠較好的滿足數(shù)控系統(tǒng)(如高壓水射流切割系統(tǒng))中進(jìn)行精確倒行運(yùn)動(dòng)的 控制要求,不僅可運(yùn)用到高壓水射流切割行業(yè),也可運(yùn)用到其它數(shù)控行業(yè)領(lǐng)域中,適用范圍 較為廣泛,為數(shù)控機(jī)床系統(tǒng)運(yùn)動(dòng)控制技術(shù)的進(jìn)一步九艮奠定了堅(jiān)實(shí)的基礎(chǔ)。
在此說明書中,本發(fā)明已參照其特定的實(shí)施例作了描述。但是,很顯然仍可以作出各種 修改和變換而不背離本發(fā)明的精神和范圍。因此,說明書和附圖應(yīng)被認(rèn)為是說明性的而非限 制性的。
權(quán)利要求
1、一種數(shù)控機(jī)床系統(tǒng)中實(shí)現(xiàn)倒行運(yùn)動(dòng)控制的方法,其特征在于,所述的系統(tǒng)中設(shè)置有歷史運(yùn)動(dòng)記錄緩沖區(qū),所述的方法包括正常運(yùn)動(dòng)控制處理操作、倒行運(yùn)動(dòng)控制處理操作和正行運(yùn)動(dòng)控制處理操作,所述的正常運(yùn)動(dòng)控制處理操作包括以下步驟(11)系統(tǒng)根據(jù)用戶操作信息進(jìn)入正常加工運(yùn)行模式;(12)系統(tǒng)進(jìn)行指令讀取操作;(13)系統(tǒng)判斷該指令是否為運(yùn)動(dòng)指令;(14)如果是,則系統(tǒng)將該運(yùn)動(dòng)指令發(fā)送到數(shù)控機(jī)床系統(tǒng)的運(yùn)動(dòng)控制模塊,并將該運(yùn)動(dòng)指令存儲(chǔ)到歷史運(yùn)動(dòng)記錄緩沖區(qū);(15)如果否,則系統(tǒng)根據(jù)該指令進(jìn)行其它處理;(16)返回上述步驟(12);所述的倒行運(yùn)動(dòng)控制處理操作包括以下步驟(21)系統(tǒng)根據(jù)用戶操作信息進(jìn)入反向加工運(yùn)行模式;(22)系統(tǒng)在歷史運(yùn)動(dòng)記錄緩沖區(qū)中進(jìn)行反向讀取運(yùn)動(dòng)指令操作;(23)系統(tǒng)將讀取的運(yùn)動(dòng)指令的方向反向,并發(fā)送到數(shù)控機(jī)床系統(tǒng)的運(yùn)動(dòng)控制硬件模塊;(24)系統(tǒng)根據(jù)用戶操作判斷是否需要退出反向加工運(yùn)行模式;(25)如果是,則退出反向加工運(yùn)行模式;反之,則返回上述步驟(22);所述的正行運(yùn)動(dòng)控制處理操作包括以下步驟(31)系統(tǒng)根據(jù)用戶操作信息進(jìn)入正向加工運(yùn)行模式;(32)系統(tǒng)在歷史運(yùn)動(dòng)記錄緩沖區(qū)中進(jìn)行正向讀取運(yùn)動(dòng)指令操作;(33)系統(tǒng)將讀取的運(yùn)動(dòng)指令發(fā)送到數(shù)控機(jī)床系統(tǒng)的運(yùn)動(dòng)控制硬件模塊;(34)返回上述步驟(32)。
2、 根據(jù)權(quán)利要求l所迷的數(shù)控機(jī)床系統(tǒng)中實(shí)現(xiàn)倒行運(yùn)動(dòng)控制的方法,其特征在于,所述 的歷史運(yùn)動(dòng)記錄緩沖區(qū)中設(shè)置有首數(shù)據(jù)位置指針、讀lfc據(jù)位置指針和寫數(shù)據(jù)位置指針,所述 的將該運(yùn)動(dòng)指令存儲(chǔ)到歷史運(yùn)動(dòng)記錄緩沖區(qū),包括以下步驟(141) 如果歷史運(yùn)動(dòng)記錄緩沖區(qū)中尚未存儲(chǔ)有任何記錄,則將首數(shù)據(jù)位置指針、讀數(shù)據(jù) 位置指針和寫數(shù)據(jù)位置指針均指向同一記錄單元;(142) 系統(tǒng)將運(yùn)動(dòng)指令中的信息寫入所迷的寫數(shù)據(jù)位置指針?biāo)赶虻挠涗泦卧校?143) 如果該歷史運(yùn)動(dòng)記錄緩沖區(qū)中所有記錄單元均寫滿,且該寫數(shù)據(jù)位置指針與所述的首數(shù)據(jù)位置指針?biāo)赶虻挠涗泦卧嗤?,則將首數(shù)據(jù)位置指針向邏輯正方向移動(dòng)一個(gè)記錄單元;(144)系統(tǒng)將所述的讀數(shù)據(jù)位置指針指向所述的寫數(shù)據(jù)位置指針?biāo)赶虻挠涗泦卧?145 )系統(tǒng)將所述的寫數(shù)據(jù)位置指針向邏輯正方向移動(dòng)一個(gè)記錄單元。
3 、根據(jù)權(quán)利要求2所述的數(shù)控機(jī)床系統(tǒng)中實(shí)現(xiàn)倒行運(yùn)動(dòng)控制的方法,其特征在于,所述 的系統(tǒng)在歷史運(yùn)動(dòng)記錄緩沖區(qū)中進(jìn)行反向讀取運(yùn)動(dòng)指令操作,包括以下步驟(221 )如果所述的讀數(shù)據(jù)位置指針?biāo)赶虻挠涗泦卧獮樗龅氖讛?shù)據(jù)位置指針?biāo)赶虻?記錄單元的在邏輯負(fù)方向上的下一個(gè)單元,且該讀數(shù)據(jù)位置指針最近一次是沿邏輯負(fù)方向越 過首數(shù)據(jù)位置指針,則系統(tǒng)退出反向加工運(yùn)行模式;(222 )系統(tǒng)進(jìn)行數(shù)控機(jī)床加工倍率調(diào)整;(223 )系統(tǒng)從所述的讀數(shù)據(jù)位置指針?biāo)赶虻挠涗泦卧凶x取運(yùn)動(dòng)指令中的信息; (224)系統(tǒng)將所述的讀數(shù)據(jù)位置指針向邏輯負(fù)方向移動(dòng)一個(gè)記錄單元,并返回。
4、 根據(jù)權(quán)利要求3所述的數(shù)控機(jī)床系統(tǒng)中實(shí)現(xiàn)倒行運(yùn)動(dòng)控制的方法,其特征在于,所迷 的系統(tǒng)在歷史運(yùn)動(dòng)記錄緩沖區(qū)中進(jìn)行正向讀取運(yùn)動(dòng)指令操作,包括以下步驟(321 )如果所述的寫數(shù)據(jù)位置指針?biāo)赶虻挠涗泦卧獮樗龅淖x數(shù)據(jù)位置指針?biāo)赶虻?記錄單元的邏輯正方向的下一個(gè)單元,且該讀數(shù)據(jù)位置指針并非最近一次是沿邏輯負(fù)方向越 過寫數(shù)據(jù)位置指針,則系統(tǒng)退出正向加工運(yùn)行模式;(322)系統(tǒng)進(jìn)行數(shù)控機(jī)床加工倍率調(diào)整;(323 )系統(tǒng)將所述的讀數(shù)據(jù)位置指針向邏輯正方向移動(dòng)一個(gè)記錄單元;(324)系統(tǒng)從所迷的讀數(shù)據(jù)位置指針?biāo)赶虻挠涗泦卧凶x取運(yùn)動(dòng)指令中的信息,并返回。
5、 根據(jù)權(quán)利要求2至4中任一項(xiàng)所述的數(shù)控機(jī)床系統(tǒng)中實(shí)現(xiàn)倒行運(yùn)動(dòng)控制的方法,其特 征在于,所述的運(yùn)動(dòng)指令中的信息包括軸信息、各單軸運(yùn)動(dòng)脈沖數(shù)和運(yùn)動(dòng)方向信息。
6、 根據(jù)權(quán)利要求5所述的數(shù)控機(jī)床系統(tǒng)中實(shí)現(xiàn)倒行運(yùn)動(dòng)控制的方法,其特征在于,所述 的運(yùn)動(dòng)指令中的信息還包括數(shù)控機(jī)床輸出端口開關(guān)動(dòng)作信息。
7、 根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的數(shù)控機(jī)床系統(tǒng)中實(shí)現(xiàn)倒行運(yùn)動(dòng)控制的方法,其特 征在于,所迷的系統(tǒng)中設(shè)置有主指令緩沖區(qū),所迷的系統(tǒng)進(jìn)行指令讀取操作,包括以下步驟(121) 系統(tǒng)判斷所迷的主指令緩沖區(qū)中是否存在未讀取指令;(122) 如果否,則退出正常加工運(yùn)行模式; (123 )系統(tǒng)進(jìn)行數(shù)控機(jī)床加工倍率調(diào)整;(124)系統(tǒng)從所述的主指令緩沖區(qū)中讀取指令。
8、 根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的數(shù)控機(jī)床系統(tǒng)中實(shí)現(xiàn)倒行運(yùn)動(dòng)控制的方法,其特 征在于,所述的用戶操作信息為數(shù)控機(jī)床上的手輪操作控制信息或者控制命令操作信息。
9、 根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的數(shù)控機(jī)床系統(tǒng)中實(shí)現(xiàn)倒行運(yùn)動(dòng)控制的方法,其特 征在于,所述的歷史運(yùn)動(dòng)記錄緩沖區(qū)的空間大小L根據(jù)以下公式確定L = nxax (hx3600x1000) /T; 其中,n為單軸運(yùn)動(dòng)脈沖指令脈沖數(shù)及運(yùn)動(dòng)方向所占據(jù)的字節(jié)數(shù),a為軸數(shù),h為系統(tǒng)預(yù) 設(shè)的可支持自動(dòng)倒行最大運(yùn)動(dòng)小時(shí)數(shù),T為數(shù)控機(jī)床的控制周期毫秒數(shù)。
全文摘要
本發(fā)明涉及一種數(shù)控機(jī)床系統(tǒng)中實(shí)現(xiàn)倒行運(yùn)動(dòng)控制的方法,包括正常運(yùn)動(dòng)控制處理操作、倒行運(yùn)動(dòng)控制處理操作和正行運(yùn)動(dòng)控制處理操作,正常運(yùn)動(dòng)控制處理操作中系統(tǒng)將運(yùn)動(dòng)指令存儲(chǔ)到歷史運(yùn)動(dòng)記錄緩沖區(qū),倒行運(yùn)動(dòng)控制處理操作中系統(tǒng)在歷史運(yùn)動(dòng)記錄緩沖區(qū)中反向讀取運(yùn)動(dòng)指令,正行運(yùn)動(dòng)控制處理操作中系統(tǒng)在歷史運(yùn)動(dòng)記錄緩沖區(qū)中正向讀取運(yùn)動(dòng)指令。采用該種數(shù)控機(jī)床系統(tǒng)中實(shí)現(xiàn)倒行運(yùn)動(dòng)控制的方法,實(shí)現(xiàn)了精確倒行運(yùn)動(dòng)控制,過程簡(jiǎn)單方便,操作過程快捷高效,實(shí)際運(yùn)行情況下準(zhǔn)確可靠,能滿足數(shù)控系統(tǒng)中進(jìn)行精確倒行運(yùn)動(dòng)的控制要求,可運(yùn)用到高壓水射流切割及其它數(shù)控行業(yè),適用范圍較為廣泛,為數(shù)控機(jī)床系統(tǒng)運(yùn)動(dòng)控制技術(shù)的進(jìn)一步發(fā)展奠定了堅(jiān)實(shí)的基礎(chǔ)。
文檔編號(hào)G05B19/18GK101178593SQ20071017152
公開日2008年5月14日 申請(qǐng)日期2007年11月30日 優(yōu)先權(quán)日2007年11月30日
發(fā)明者劉永生, 湯同奎, 汪永生, 鄭之開 申請(qǐng)人:上海奈凱電子科技有限公司