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