數(shù)據(jù)中通用,或者也可以針對每個(gè)表形式數(shù)據(jù)使用單獨(dú)的成為基準(zhǔn)的時(shí)間。在以后的說明中,為了簡化說明,使用在所有的表形式數(shù)據(jù)中成為共同基準(zhǔn)的時(shí)間。
[0144]在上述的日本特開2012-234445號公報(bào)中還公開了圖4所示的路徑表運(yùn)轉(zhuǎn)框圖。
[0145]進(jìn)行圖4所示的路徑表運(yùn)轉(zhuǎn)的數(shù)值控制裝置具備分別獨(dú)立地對時(shí)間或主軸位置或進(jìn)給軸位置進(jìn)行計(jì)數(shù)的第一基準(zhǔn)值計(jì)數(shù)器3a、第二基準(zhǔn)值計(jì)數(shù)器3b、第三基準(zhǔn)值計(jì)數(shù)器3c,還具備X軸路徑表Tx、主軸路徑表Ts、輔助功能路徑表Tm、X軸路徑表插值處理部4x、主軸路徑表插值處理部4s、輔助功能路徑表輸出處理部4m、X軸電動(dòng)機(jī)5x、主軸電動(dòng)機(jī)5s。
[0146]第一基準(zhǔn)值計(jì)數(shù)器3a、第二基準(zhǔn)值計(jì)數(shù)器3b、第三基準(zhǔn)值計(jì)數(shù)器3c對于來自數(shù)值控制裝置所具有的計(jì)時(shí)功能的信號、或者來自在各個(gè)進(jìn)給軸或主軸上安裝的位置檢測器的位置檢測信號進(jìn)行計(jì)數(shù)。并且,第一基準(zhǔn)值計(jì)數(shù)器3a、第二基準(zhǔn)值計(jì)數(shù)器3b、第三基準(zhǔn)值計(jì)數(shù)器3c當(dāng)分別接收到計(jì)數(shù)的重置信號后,將計(jì)數(shù)值返回到初始值,當(dāng)接收到停止信號時(shí)停止計(jì)數(shù)值的更新,或者,當(dāng)接收到重新開始信號時(shí)重新開始計(jì)數(shù)值的更新。
[0147]通過切換開關(guān)6a、6b、6c對來自第一基準(zhǔn)值計(jì)數(shù)器3a、第二基準(zhǔn)值計(jì)數(shù)器3b、第三基準(zhǔn)值計(jì)數(shù)器3c的基準(zhǔn)值任意地進(jìn)行切換。例如,能夠按照來自第一基準(zhǔn)值計(jì)數(shù)器3a的基準(zhǔn)值執(zhí)行X軸用路徑表Tx,按照來自第二基準(zhǔn)值計(jì)數(shù)器3b的基準(zhǔn)值執(zhí)行主軸路徑表Ts,此外按照來自第三基準(zhǔn)值計(jì)數(shù)器3c的基準(zhǔn)值執(zhí)行輔助功能路徑表Tm,來執(zhí)行路徑表運(yùn)轉(zhuǎn)?;蛘?,通過這些切換開關(guān)6a、6b、6c的設(shè)定,能夠按照來自基準(zhǔn)值計(jì)數(shù)器3a的基準(zhǔn)值執(zhí)行所有的路徑表Tx、Ts、Tm,來執(zhí)行路徑表運(yùn)轉(zhuǎn)。
[0148]說明通過圖4所示的數(shù)值控制裝置執(zhí)行的圖5所示的X軸的路徑表、主軸S的路徑表、輔助功能的路徑表的例子。在通過圖4的數(shù)值控制裝置執(zhí)行圖5所示的路徑表時(shí),隨著成為基準(zhǔn)的時(shí)間的行進(jìn),路徑表運(yùn)轉(zhuǎn)中的機(jī)床進(jìn)行圖6所示的動(dòng)作。
[0149]本發(fā)明中,優(yōu)先進(jìn)行預(yù)讀出的程序塊的執(zhí)行時(shí)間的累積值短的路徑表的預(yù)讀。在運(yùn)轉(zhuǎn)了圖14所示的路徑表的情況下,按照以下的順序進(jìn)行預(yù)讀。下述的[]內(nèi)表示各路徑表名和與上述各個(gè)路徑表對應(yīng)的程序塊的執(zhí)行時(shí)間的累積值(累積執(zhí)行時(shí)間)。另外,標(biāo)注下劃線的地方表示預(yù)讀出的程序的程序塊的執(zhí)行時(shí)間的累積值為最短的路徑表。關(guān)于用于對預(yù)讀出的程序塊的執(zhí)行時(shí)間進(jìn)行累積的各個(gè)程序塊的執(zhí)行時(shí)間,后面進(jìn)行敘述。
[0150](I)預(yù)讀〈X〉的LI,之后計(jì)算各個(gè)程序中的預(yù)讀出的程序塊的執(zhí)行時(shí)間。
[0151][預(yù)讀出的程序塊的執(zhí)行時(shí)間的累積值(<Χ>、?^、?Μ2)= (1>0,0)] (2)在上述的
(I)中〈S〉的預(yù)讀出的程序塊的執(zhí)行時(shí)間的累積值為最短,因此預(yù)讀〈S〉的L100,之后計(jì)算各個(gè)程序的預(yù)讀出的程序塊的執(zhí)行時(shí)間。
[0152][預(yù)讀出的程序塊的執(zhí)行時(shí)間的累積值(<X>、〈S>、1M2)= (1U00.0)]
[0153](3)在上述的(2)中<M>的預(yù)讀出的程序塊的執(zhí)行時(shí)間的累積值為最短,因此預(yù)讀<M>的L1000,之后計(jì)算各個(gè)程序的預(yù)讀出的程序塊的執(zhí)行時(shí)間。
[0154][預(yù)讀出的程序塊的執(zhí)行時(shí)間的累積值(m、〈S>、〈M>)= (1、100、1000)]
[0155](4)在上述的(3)中〈X〉的預(yù)讀出的程序塊的執(zhí)行時(shí)間的累積值為最短,因此預(yù)讀〈X〉的L2,之后計(jì)算各個(gè)程序的預(yù)讀出的程序塊的執(zhí)行時(shí)間。
[0156][預(yù)讀出的程序塊的執(zhí)行時(shí)間的累積值(m、〈S>、.)=(2U00U000)]
[0157](5)在上述的(4)中〈X〉的預(yù)讀出的程序塊的執(zhí)行時(shí)間的累積值為最短,因此預(yù)讀〈X〉的L3,之后計(jì)算各個(gè)程序的預(yù)讀出的程序塊的執(zhí)行時(shí)間。
[0158][預(yù)讀出的程序塊的執(zhí)行時(shí)間的累積值(m、〈S>、.)=(3、100、1000)]
[0159](6)在上述的(5)中〈X〉的預(yù)讀出的程序塊的執(zhí)行時(shí)間的累積值為最短,因此預(yù)讀〈X〉的L300,之后計(jì)算各個(gè)程序的預(yù)讀出的程序塊的執(zhí)行時(shí)間。
[0160][預(yù)讀出的程序塊的執(zhí)行時(shí)間的累積值(〈X〉、立2、〈M>)= (300、皿、1000)]
[0161](7)在上述的(6)中〈S〉的預(yù)讀出的程序塊的執(zhí)行時(shí)間的累積值為最短,因此預(yù)讀〈S〉的L150,之后計(jì)算各個(gè)程序的預(yù)讀出的程序塊的執(zhí)行時(shí)間。
[0162][預(yù)讀出的程序塊的執(zhí)行時(shí)間的累積值(〈X〉、立2、〈M>)= (300,150>1000)])
[0163](8)在上述的(7)中〈S〉的預(yù)讀出的程序塊的執(zhí)行時(shí)間的累積值為最短,因此預(yù)讀〈S〉的L200,之后計(jì)算各個(gè)程序的預(yù)讀出的程序塊的執(zhí)行時(shí)間。
[0164][預(yù)讀出的程序塊的執(zhí)行時(shí)間的累積值(<X>、iS2、〈M>)= (300、2M、1000)]
[0165](9)在上述的(8)中〈S〉的預(yù)讀出的程序塊的執(zhí)行時(shí)間的累積值為最短,因此預(yù)讀〈S〉的L300,之后計(jì)算各個(gè)程序的預(yù)讀出的程序塊的執(zhí)行時(shí)間。
[0166][預(yù)讀出的程序塊的執(zhí)行時(shí)間的累積值(m、立2、〈M>)= (300.300.1000)]
[0167]圖7是說明在圖14所示的3個(gè)路徑表中,在通過本發(fā)明預(yù)讀出9個(gè)程序塊的階段,各個(gè)表的預(yù)讀出的程序塊的執(zhí)行時(shí)間的累積值的圖。
[0168]如圖7所示,在預(yù)讀出和現(xiàn)有技術(shù)相同的量(一共9個(gè))的程序塊的階段,預(yù)讀出的程序塊的執(zhí)行時(shí)間的累積值在最短的〈X〉和〈S〉為300ms。因?yàn)槟軌蛟陬A(yù)讀程序塊的運(yùn)行過程中并行地進(jìn)行預(yù)讀,所以來不及預(yù)讀的可能性低。另外,即使在來不及預(yù)讀的情況下,路徑表運(yùn)轉(zhuǎn)等待預(yù)讀,因此不會(huì)像現(xiàn)有技術(shù)那樣成為警告或立即停止。
[0169]在此,利用圖8來補(bǔ)充說明NC程序運(yùn)轉(zhuǎn)的預(yù)讀來不及的狀態(tài)的監(jiān)視、運(yùn)轉(zhuǎn)的減速、暫時(shí)停止。圖8說明在路徑表運(yùn)轉(zhuǎn)的預(yù)讀來不及的情況下,通過減少時(shí)間倍率來使運(yùn)轉(zhuǎn)減速,在預(yù)讀程序塊完全消失時(shí)使時(shí)間倍率為O,暫時(shí)停止。
[0170]在一邊進(jìn)行路徑表的預(yù)讀一邊進(jìn)行運(yùn)轉(zhuǎn)時(shí),以當(dāng)前成為基準(zhǔn)的時(shí)間的行進(jìn)速度(時(shí)間倍率)作為基準(zhǔn),在最低限度確保了路徑表運(yùn)轉(zhuǎn)可減速停止的預(yù)讀程序塊后進(jìn)行運(yùn)轉(zhuǎn)。
[0171]在當(dāng)前的時(shí)間倍率下預(yù)讀來不及的情況下,通過減少時(shí)間倍率來使運(yùn)轉(zhuǎn)減速,在預(yù)讀程序塊完全消失時(shí)使時(shí)間倍率為O來暫時(shí)停止。在已減速或停止時(shí)進(jìn)行路徑表的預(yù)讀,在消除了來不及預(yù)讀的狀態(tài)的情況下,通過增加時(shí)間倍率來進(jìn)行加速。
[0172]說明在將當(dāng)前的時(shí)間倍率設(shè)為0VRD,用于安全地通過線性加減速進(jìn)行減速停止的時(shí)間為T(His)的情況下,為了檢測來不及預(yù)讀的情況成為基準(zhǔn)的時(shí)間的計(jì)算方法。
[0173]在從減速開始到暫時(shí)停止的T(ms)的期間預(yù)讀出的程序塊的執(zhí)行時(shí)間的累積值(累積執(zhí)行時(shí)間)x耗費(fèi)(0VRD+100) XT + 2,因此通過檢測出在成為
[0174]X = (0VRD+100) XT + 2
[0175]時(shí)來不及預(yù)讀的情況,通過減速時(shí)間T (ms)能夠減速停止。
[0176]以上假設(shè)了線性地進(jìn)行減速的情況,但是例如以鐘形進(jìn)行減速的情況或這之外的情況也一樣,都能夠計(jì)算為了檢測來不及預(yù)讀的情況成為基準(zhǔn)的時(shí)間。
[0177]圖10是說明路徑表運(yùn)轉(zhuǎn)的處理的流程圖。將預(yù)讀出的程序塊的執(zhí)行時(shí)間的累積值設(shè)為X。將當(dāng)前的時(shí)間倍率設(shè)為OVRD (% ),將減速時(shí)間設(shè)為T (ms)。以下,按照各個(gè)步驟進(jìn)行說明。
[0178][步驟SC01]判斷預(yù)讀出的程序塊的執(zhí)行時(shí)間的累積值X是否比減速時(shí)間T(從減速開始到暫時(shí)停止的時(shí)間)期間的預(yù)讀程序塊的消耗量(0VRD+100)XT + 2小,如果小(是),則轉(zhuǎn)移到步驟SC03,如果不小(否),則轉(zhuǎn)移到步驟SC02。
[0179][步驟SC02]正常進(jìn)行表形式數(shù)據(jù)的運(yùn)轉(zhuǎn),返回步驟SCOI。
[0180][步驟SC03]判斷是否預(yù)讀到最終程序塊,當(dāng)預(yù)讀到最終程序塊時(shí)(是),結(jié)束該處理,當(dāng)沒有預(yù)讀到最終程序塊時(shí)(否),轉(zhuǎn)移到步驟SC04。
[0181][步驟SC04]檢測來不及預(yù)讀的情況,開始減速。
[0182][步驟SC05]判定進(jìn)行預(yù)讀后預(yù)讀出的程序塊的執(zhí)行時(shí)間的累積值X是否已更新,當(dāng)預(yù)讀出的程序塊的執(zhí)行時(shí)間的累積值X已更新時(shí)(是),轉(zhuǎn)移到步驟SC07,當(dāng)預(yù)讀出的程序塊的執(zhí)行時(shí)間的累積值X沒有更新時(shí)(否),則轉(zhuǎn)移到步驟SC06。
[0183][步驟SC06]繼續(xù)減速(當(dāng)沒有預(yù)讀程序塊時(shí)暫時(shí)停止),返回步驟SC05。
[0184][步驟SC07]因?yàn)樵诓襟ESC05、SC06的處理中消除了來不及預(yù)讀的狀態(tài),因此中斷減速或暫時(shí)停止,進(jìn)行加速,返回步驟SCOl。
[0185]在此,說明用于對預(yù)讀出的程序塊的執(zhí)行時(shí)間進(jìn)行累積的各個(gè)程序塊的執(zhí)行時(shí)間。對預(yù)讀出的程序塊的執(zhí)行時(shí)間進(jìn)行累積的執(zhí)行時(shí)間累積部是根據(jù)當(dāng)前成為基準(zhǔn)的時(shí)間和成為預(yù)讀出的程序塊的基準(zhǔn)的時(shí)間的差來預(yù)測預(yù)讀出的程序塊的執(zhí)行時(shí)間的累積值的單元。
[0186]圖11是本發(fā)明的執(zhí)行NC程序或路徑表運(yùn)轉(zhuǎn)的數(shù)值控制裝置的主要部分的框圖。CPUll是整體控制數(shù)值控制裝置10的處理器。