技術(shù)文章
PMAC支持的通用G、M代碼及復(fù)合G、M代碼
閱讀:290 發(fā)布時(shí)間:2020-8-114.2.1 PMAC支持的通用G、M代碼
PMAC卡允許執(zhí)行機(jī)床類型的RS-274(G代碼)程序,PMAC將把G、M、T和D代 碼作為子例程來調(diào)用[45]。當(dāng)PMAC在運(yùn)動(dòng)程序中遇到字母G后面帶數(shù)值N的時(shí)候,便認(rèn) 為是調(diào)用子程序Program 1000中數(shù)值N程序段。為了增加程序的可讀性,我們采用 GOSUB^fm命令,此命令使運(yùn)動(dòng)程序跳轉(zhuǎn)型到同一運(yùn)動(dòng)程序段中{數(shù)值}的行號(hào)(N 或0),當(dāng)程序遇到GOSUB后的RETURN命令后馬上返回。
例如,G17將導(dǎo)致直接跳轉(zhuǎn)至PROG1000的N17000; G117將導(dǎo)致程序直接跳轉(zhuǎn)到 PROG1010 的 N17000; G973.1 會(huì)導(dǎo)致跳至 PROG1090 的 N73100。M 使用 PROGlOnl,
T代碼使用PROG10n2, D代碼使用PROG10n3。
大多數(shù)時(shí)候,這些代碼的數(shù)字范圍在0到99內(nèi),所以執(zhí)行它們只需要PROGslOOO, 1001、1002和1003被要求來執(zhí)行它們。對(duì)于那些想延伸代碼數(shù)字超過100的用戶,執(zhí)行 它們將要求PROGslOlO、1011等等。制造商的任務(wù)是對(duì)運(yùn)動(dòng)程序lOnO到10n3編寫對(duì)應(yīng) 程序,來實(shí)現(xiàn)他想要的動(dòng)作,程序編寫完成后便可執(zhí)行對(duì)零件程序員和機(jī)器操作員不可見 的程序[46]。許多代碼都已經(jīng)是十分標(biāo)準(zhǔn)了,PMAC卡已經(jīng)提供了這些例子,如表4-2、表 4-3所示:
表4-2 PMAC支持的標(biāo)準(zhǔn)G代碼
G代碼 | 解釋 | 備注 |
G00 | 快速點(diǎn)到點(diǎn)定位 | RAPID命令 |
G01 | 直線插補(bǔ)方式 | LINEAR命令 |
G02 | 平面順時(shí)針圓弧模式 | CIRCLE 1 命令 |
G03 | 平面逆時(shí)針圓弧模式 | CIRCLE2 命令 |
G04 | 暫停 | DWELL命令 |
G09 | 精確的停止 | DWELL命令 |
G17 | 選擇XY平面 | NORMALK-1 命令 |
G18 | 選擇ZX平面 | NORMAL J -1命令 |
G19 | 選擇YZ平面 | NORMAL I -1命令 |
G40 | 關(guān)斷刀具半徑補(bǔ)償 | CC0命令 |
G41 | 左刀具半徑左補(bǔ)償 | CC1命令 |
G42 | 右刀具半徑右補(bǔ)償 | CC2命令 |
G90 | 值編程 | ABS命令 |
G91 | 增量值編程 | INC命令 |
表4-3 PMAC支持的標(biāo)準(zhǔn)M代碼 | ||
M代碼 | 解釋 | 備注 |
M00 | 編程停止 | STOP命令 |
M01 | 選項(xiàng)停止 | 假設(shè)輸出點(diǎn)Ml=l時(shí)發(fā)STOP命令 |
M02 | 程序結(jié)束 | RETURN命令,返回程序頂部 |
M03 | 主軸正轉(zhuǎn) | CMD “#4J+” |
M04 | 主軸反轉(zhuǎn) | CMD “#4卜” |
表4-3 PMAC支持的標(biāo)準(zhǔn)M代碼(續(xù)) | ||
M代碼 | 解釋 | 備注 |
M05 | 主軸停止 | CMD “#4J" |
M 07 | 冷卻液打開(噴霧) | 假設(shè)輸出點(diǎn)M7=l |
M 08 | 冷卻液打開(大量) | 假設(shè)輸出點(diǎn)M8=l |
M 09 | 冷卻液關(guān)斷 | 假設(shè)輸出點(diǎn)M7=0和M8=0 |
M30 | 循環(huán)的結(jié)束程序 | RETURN命令,返回程序開始處 |
4.2.2復(fù)合G、M代碼
固定循環(huán)G代碼
數(shù)控機(jī)床是一種按照事先編制好的零件加工程序自動(dòng)進(jìn)行高效加工的設(shè)備。G代碼作 為一種通用機(jī)床語言,用來實(shí)現(xiàn)數(shù)控程序的編程,以便實(shí)現(xiàn)各進(jìn)給軸的精確運(yùn)動(dòng)。以常用CNC加工中心數(shù)控系統(tǒng)深孔加工循環(huán)(G83)代碼為例進(jìn)行分析研究。
1.1加工中心G83代碼分析
數(shù)控加工中,某些加工動(dòng)作循環(huán)已經(jīng)典型化[47]。例如,鉆孔、鏜孔的動(dòng)作,主要由孔 定位、快進(jìn)、工進(jìn)、快退等動(dòng)作組成,典型加工動(dòng)作程序已經(jīng)事先定制,存儲(chǔ)于內(nèi)存儲(chǔ)器 中,需要時(shí)可直接調(diào)用相應(yīng)G代碼即可,從而簡(jiǎn)化編程工作。
常用立式加工中心數(shù)控系統(tǒng)固定循環(huán)G代碼的程序格式主要有:數(shù)據(jù)形式、返回點(diǎn)平面、 孔加工方式、孔位置數(shù)據(jù)、孔加工數(shù)據(jù)和循環(huán)次數(shù)[48]。現(xiàn)在以深孔加工循環(huán)(G83)代碼 為例進(jìn)行介紹,其程序格式如下:
G98 (G99) G83 X_Y_Z_R_ P_Q_ F _ K _
式中第一個(gè)G代碼(G98或者G99)為返回點(diǎn)平面G代碼,G98為返回初始平面, G99為返回R點(diǎn)平面。X、Y:孔的位置。Z:編程時(shí)是孔底Z點(diǎn)的坐標(biāo)值;增量編程 時(shí)是孔底Z點(diǎn)與R點(diǎn)的距離。R:編程時(shí)是R點(diǎn)的坐標(biāo)值;增量編程時(shí)是初始點(diǎn)與R 點(diǎn)距離。P:刀具在孔底暫停時(shí)間。Q:為每次進(jìn)刀量。F:鉆孔進(jìn)給速度。K:循環(huán)次數(shù)。 G83加工固定循環(huán)如圖4-5所示。
刀具先快速定位至X、Y所的坐標(biāo)位置,再快速定位至R點(diǎn),接著以F所的 進(jìn)給速率向下鉆削Q所距離后(Q必為正值,用增量值表示),快速退刀回R點(diǎn),再向下快速定位于前一切削深度上方距離d處(由系統(tǒng)內(nèi)部參數(shù)設(shè)定),再向下鉆削Q+d所 的距離后,再快速退回R點(diǎn),以后依此方式一直鉆孔到Z所的孔底位置[49]。此處 的“d”表示刀具間歇進(jìn)給時(shí),每次下降由快速轉(zhuǎn)為切削進(jìn)給前這一點(diǎn)與前一次切削進(jìn)給 下降的點(diǎn)之間的距離,由系統(tǒng)內(nèi)部參數(shù)設(shè)定。
1.2 G83代碼程序開發(fā)
現(xiàn)在以常用線軌加工中心控系統(tǒng)深孔加工循環(huán)(G83)代碼為例,對(duì)此代碼進(jìn)行程序編 寫。其關(guān)鍵程序見附錄一。G83代碼程序編寫的大致流程圖如圖4-6所示。
2.3基于PMAC的數(shù)控常用坐標(biāo)系的實(shí)現(xiàn)
根據(jù)數(shù)控加工中心坐標(biāo)系命令G16、G43、G44、G52、G53、G54、G55、G56、
G57、G58、G59的特點(diǎn),需應(yīng)用矩陣轉(zhuǎn)換中的平移矩陣,即需將對(duì)刀測(cè)得的坐標(biāo)偏移量 或者加工程序輸入的數(shù)值賦給平移矩陣中的Dll、D12、D13,而Dll、D12、D13是由連 續(xù)的三個(gè)Q變量賦值的。根據(jù)坐標(biāo)系命令G20、G21、G50、G51.1、G68的特點(diǎn),需要 應(yīng)用矩陣轉(zhuǎn)換中的旋轉(zhuǎn)矩陣,即將加工程序輸入的數(shù)值賦給旋轉(zhuǎn)矩陣中的R11-R33,而 R11-R33是由連續(xù)的九個(gè)Q變量賦值的。
現(xiàn)以G54、G51為代表說明具體實(shí)現(xiàn)方法。命令G54的格式:G54 X_ Y_Z_我
們只需將對(duì)刀測(cè)得的坐標(biāo)偏移量XYZ后面的數(shù)值賦給Q40、Q41、Q42,然后程序執(zhí)行ADIS 40即可。命令G51的格式:G51 X_Y_Z_P_ ,只需將P的數(shù)值賦給旋轉(zhuǎn)矩陣中的Q50、
Q54、Q59,其余Q變量為0,然后程序執(zhí)行AROT50即可。如果既用到旋轉(zhuǎn)矩陣又用到 平移矩陣,則將兩者結(jié)合用即可。其關(guān)鍵程序見附錄一。
無論工件在何種坐標(biāo)系下進(jìn)行加工,其坐標(biāo)值都要轉(zhuǎn)化為機(jī)床機(jī)械坐標(biāo)系上的坐標(biāo)值 5()。可做這樣的計(jì)算:工件在機(jī)床機(jī)械坐標(biāo)系上X的坐標(biāo)值=X偏置+刀具長度補(bǔ)償+刀具 半徑補(bǔ)償+刀具磨耗+X旋轉(zhuǎn)后的坐標(biāo)+X鏡像后的坐標(biāo)+X經(jīng)極坐標(biāo)轉(zhuǎn)換后的坐標(biāo)+程序中 的X坐標(biāo)。
M代碼
M代碼作為一種通用機(jī)床語言,用來實(shí)現(xiàn)數(shù)控程序的編程,當(dāng)多次運(yùn)行相同的軌跡時(shí), 可以將這段軌跡編成一個(gè)獨(dú)立的程序存儲(chǔ)在機(jī)床的存儲(chǔ)器當(dāng)中,被別的程序所調(diào)用,這樣 的程序叫做子程序[52]。子程序執(zhí)行順序如圖4-9所示。
指令格式: M98 P— L—;
M99;
解釋: P:子程序號(hào),如:P100;
L:調(diào)用次數(shù)。
PMAC卡允許執(zhí)行機(jī)床類型的M代碼程序,PMAC將把M代碼作為子例程來調(diào)用, 需要程序執(zhí)行其子程序然后返回執(zhí)行程序的下一行時(shí),可利用CALL指令來實(shí)現(xiàn)。
CALL命令使運(yùn)動(dòng)程序跳轉(zhuǎn)到另一個(gè)運(yùn)動(dòng)程序,當(dāng)程序遇到RETURN命令后馬上返 回。輸入到PMAC的子程序與主程序一樣,用PROGn作標(biāo)號(hào)(這樣一個(gè)程序可以像調(diào)用
子程序一樣調(diào)用其它程序)。PROG的標(biāo)題號(hào)n為CALL提交后的值:CALL7將執(zhí)行 PR0G7并返回。緊接在CALL后的值可以包含小數(shù)。如果沒有小數(shù)部分,則被調(diào)用的程 序段從頭開始。如果存在小數(shù)部分,則被調(diào)用的程序跳轉(zhuǎn)到由小數(shù)部分標(biāo)號(hào)的行(如 果該標(biāo)號(hào)不存在則PMAC會(huì)產(chǎn)生錯(cuò)誤并停止執(zhí)行程序)。Turbo PMAC使用五位小數(shù)作為 行標(biāo)號(hào),如果位數(shù)不足,PMAC將自動(dòng)補(bǔ)零。例如,CALL 35.1 被翻譯為 CALL35.10000,這將使跳轉(zhuǎn)到程序 35 的標(biāo)號(hào) N10000 處執(zhí)行[46]。M98 命令關(guān)鍵程序如下:
N98000 read (P ,L)
If (Q100&800 > 0) cishu = q112 //子程序調(diào)用次數(shù)
Else q112 =1
EndIf
If (Q100&8000 > 0)
cxhao=q116 //P 程序號(hào)
EndIf
p1000=1
While (p1000 !> q112)
call (cxhao)
p1000 = p1000 + 1
EndWhile
return
N99000
dwell 1
return
本文采摘自“基于PMAC的加工中心開放式數(shù)控系統(tǒng)研究”,因?yàn)榫庉嬂щy導(dǎo)致有些函數(shù)、表格、圖片、內(nèi)容無法顯示,有需要者可以在網(wǎng)絡(luò)中查找相關(guān)文章!