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