要使一个NC程序不仅仅(jǐn)适用于特定数值下的一次加工,或者必须要计(jì)算出数值,两种情况均可以使(shǐ)用(yòng)计算参数(shù),你可以在程序运行时由控制器计(jì)算(suàn)或设所需要的数(shù)值;可(kě)以通(tōng)过(guò)操作面板设(shè)定参(cān)数数(shù)值。如果参数(shù)已经赋(fù)值,则(zé)它们(men)可以在程序(xù)中对由变量(liàng)确(què)定 地址进行赋值。
R0=...
到(dào)
R249=...
一共(gòng)250个计算参数可供使用。
R0...R99 - 可以自由使(shǐ)用(yòng)
R100...R249 -加工循(xún)环传递(dì)参数
如果(guǒ)你没有用到加工循环,则这部分计算(suàn)参数也同样可以自由使用。
R0=3.5678 R1=-37.3 R2=2 R3=-7 R4=-45678.1234
用指(zhǐ)数表示法可(kě)以赋值更大的数值范围:
(10-300...10+300).
指数值写在EX符(fú)号之后;最大(dà)符(fú)号数:10(包(bāo)括符号(hào)和小数点).
EX值范(fàn)围:-300到+300
R0=-0.1EX-5 ;意义(yì):R0=-0.000 0001
R1=1.874EX8 ;意(yì)义:R1=187 400 000
注释:一个程序段中可(kě)以有多个赋值语句;也可以用计算表(biǎo)达(dá)式赋值。
通(tōng)过给其它的NC地址分配计算参数或参数(shù)表达(dá)式(shì),可以增加NC程(chéng)序的通(tōng)用性。可以(yǐ)用数值、算术表达式或R参数对任意NC地址(zhǐ)赋值。但对地址(zhǐ)N、G和L例外。
赋值时在地址符之后写入符号"="
赋(fù)值语句也可以(yǐ)赋(fù)值-负号。
给坐标(biāo)轴地址(运行(háng)指令)赋值时,要(yào)求有(yǒu)一独立(lì)的程(chéng)序段。
举例:
N10 G0 X=R2 ;给X轴赋值
在(zài)计算(suàn)参数时也遵循(xún)通常的数学运算规则。原括号内的运算优先进(jìn)行。另外,乘法和除法运算优先于加法和减法运算。
1)标记符用于标记程序中(zhōng)所跳转的目标程序段,用跳转(zhuǎn)功(gōng)能(néng)可以实现(xiàn)程(chéng)序运(yùn)行分支。
2)标记符可以自由选取(qǔ),但必(bì)须由2一个字母或数字组成,其中开始(shǐ)两(liǎng)个符号必须(xū)是字母或下(xià)划线(xiàn)。
3)跳(tiào)转目标程序段中标记符后面必须为冒(mào)号。标记(jì)符(fú)位于程序(xù)段(duàn)段首。如(rú)果(guǒ)程序段有段号(hào),则标(biāo)记(jì)符紧(jǐn)跟着段号(hào)。
4)在一个程序段中,标记(jì)符(fú)不(bú)能(néng)含有(yǒu)其它意义。
N10 MARKE1:G1 X20 ;MARKE1为(wéi)标记(jì)符,跳转目(mù)标(biāo)程序段 ...
TR789:G0 X10 Z20 ;TR789为标记符(fú),跳(tiào)转目标程序段没(méi)有段(duàn)号
NC程序在运行时(shí)以写入时的顺序(xù)执行程(chéng)序段。
程序在(zài)运行时可以通过插入程序跳(tiào)转指令改变执行顺序。
跳转(zhuǎn)目标只能是有标(biāo)记(jì)符的程序段(duàn)。此程(chéng)序(xù)段必须位于该程序之内。
绝对跳(tiào)转指令必须占用一个独立的程序段。
GOTOF Lable ;先前跳转
GOTOB Lable ;向后(hòu)跳(tiào)转
AWL 说(shuō)明(míng)
GOTOF 向前跳转(向程序结束(shù)的方向跳转)
GOTOB 向后跳转(zhuǎn)(向程(chéng)序开始的方向跳转)
Lable 所(suǒ)选的标记(jì)符
用IF-条件语(yǔ)句表示有条(tiáo)件跳(tiào)转.如果满足跳转条件(也就是值不等于零),则进(jìn)行跳转.跳转目标只(zhī)能是有标记符的程(chéng)序段.该程序段(duàn)必须在此程序之内(nèi).
有(yǒu)条件跳转指令(lìng)要求(qiú)一个独立的(de)程序(xù)段.在(zài)一(yī)个程序段中(zhōng)可以有许多个条件(jiàn)跳转指令.
使用了条件(jiàn)跳转后有时会使程序得到明显的简化.
IF条(tiáo)件GOTOF Lable ;先前跳转
IF条件GOTOB Lable ;向(xiàng)后跳(tiào)转
AWL | 说明 |
GOTOF | 向前跳(tiào)转(向程序结束(shù)的方向跳转) |
GOTOB | 向后跳转(向程序开始的方向跳转) |
Lable | 所选的标记符(fú) |
IF | 跳转条件导入符 |
条件 | 作(zuò)为条件的计算参数,计算表达式 |
运算符 | 意(yì)义 |
= = | 等于 |
<> | 不等 |
> | 大于 |
< | 小于 |
> = | 大于或等(děng)于 |
< = | 小于(yú)或等于 |
用上述比较运算表示跳转条(tiáo)件,计算表(biǎo)达式也可用于比较运算.
比较(jiào)运算的结果有两种,一种为(wéi)"满足",另一种为"不(bú)满足"。 "不满足"时,该运算(suàn)结果值(zhí)为零。
R1>1 ;R1大于1
1<R1 ;1小(xiǎo)于R1
R1<R2+R3 ;R1小(xiǎo)于R2加(jiā)R3
R6>=SIN(R7*R7) ;R6大于或等(děng)于SIN(R7)2
L1(半球):
L2(半球):
效果图:
G54X0Y0Z10F100M03S100
R10=-15 R11=-9.06
L1
R10=15 R11=-9.06
L1
R10=0
L2
G0 X=R10+12.5-4 Y=R11
G1 Z-6 F100
G3 I=4-12.5
G1 X=R10+8 Y=R11
G41 D1 X=R10+4 Y=R11
G2 I-4
G0 Z5
R1=4
R2=90
AAA:
R3=R1*COS(R2)+4+R10
R4=R1*SIN(R2)-R1
G0 X=R3 Y=R11
G1 Z=R4 F300
G2 I=R10-R3
G0 Z1
R2=R2-1
IF R2>=0 GOTOB AAA
G0 Z10
M17
R1=35
R2=15
R3=0
G0 X=R1+R10 Y=R11
G1 Z-5 F100
AAA:
R4=R1*COS(R3)+R10
R5=R2*SIN(R3)+R11
G1 X=R4 Y=R5 F100
R3=R3+1
IF R3<=360 GOTOB AAA
G0 Z5
M17
原则上讲(jiǎng)主程序(xù)和子程(chéng)序之间并(bìng)没(méi)有区(qū)别。
用(yòng)子程序编写经常重(chóng)复进(jìn)行(háng)的加工,比(bǐ)如某一确定的轮廓形状。子程序位(wèi)于(yú)主程(chéng)序的一种型式就是加(jiā)工(gōng)循环,加工循(xún)环包含(hán)一般(bān)通用的加(jiā)工工序(xù),诸如螺纹切削,柸料(liào)切削加(jiā)工(gōng)等等。通过给(gěi)规(guī)定的计算参数(shù)赋值就可以实现各种具体的加工。
子程序的结构与主(zhǔ)程序的结构一样,在子程序(xù)中也式最后一个程序(xù)段中用M2结(jié)束子程序运(yùn)行运行。子(zǐ)程序结(jié)束(shù)后返回主程序。
除了用M2指令外,还(hái)可以用RET指令结束子程序。
RET要求占(zhàn)用(yòng)一个独立的程(chéng)序段(duàn)。
用RET指令结束子程序、返回主程序时(shí)不会中断(duàn)G64连续路径运(yùn)行方式,用M2指(zhǐ)令(lìng)则(zé)会中断G64运行方(fāng)式,并(bìng)进入(rù)停(tíng)止状态。
为了(le)方(fāng)便地选择某(mǒu)一子程序,必须(xū)给子程序取一(yī)个程序名(míng)。程序名可以自由选取(qǔ),但必须符(fú)合以下规定:
- 开始两个符号必须时字母
- 其它符号为字母,数(shù)字(zì)或下(xià)划线
- 最多8个字符
- 没有分隔符
其方(fāng)法与主程序(xù)中程(chéng)序(xù)名(míng)的选取方法(fǎ)一样(yàng)。
在一个程序中(主程序或(huò)子程序(xù))可(kě)以(yǐ)直接用程序名调用子(zǐ)程序。子(zǐ)程(chéng)序调用要求占用(yòng)一(yī)个(gè)独立的程序段。
举(jǔ)例:
N10 L785 P3 ;调用子程序(xù)L785
N20 WELLE7 ;调用子程序WELLE7
如果要(yào)求(qiú)多次连续地(dì)执行(háng)某一子程序,则在(zài)编程时必须在所调用(yòng)子(zǐ)程序的程序名后地址(zhǐ)P下(xià)写入(rù)调用次(cì)数(shù),最大次数可以为9999(P1...P9999)
举例:
N10 L785 P3 ;调(diào)用子程序(xù)L785 ,运行3次
子程序不(bú)仅可以(yǐ)从(cóng)主程序中调用,也可以从其(qí)它程序中调用,这个过程称(chēng)为(wéi)子程序的(de)嵌套。子程(chéng)序的嵌(qiàn)套深度可以为(wéi)三层,也就是(shì)四级(jí)程序界面(包(bāo)括主程序界(jiè)面) 。
注释:在使用加工循环进行加工时,要注意加工循环(huán)程序也同样属于四(sì)级(jí)程序界面中的(de)一级。
在子程序中可以改变(biàn)模态有效(xiào)的G功能(néng),比如G90到G91的变换.在返(fǎn)回调用(yòng)程序时请注意检查一下所有模(mó)态有效的功(gōng)能指令,并按(àn)照(zhào)要求进行调整。
对于R参数也需同样(yàng)注意,不要无(wú)意识(shí)地用上(shàng)级程序界面中所使用(yòng)的计算参数来(lái)修改下级程序界面(miàn)的计算参数。