D系统主轴运动、辅助运动、计算参数R、局部用户数据、程序跳转和子程序功能.ppt
33页四、主轴运动 主轴的转速编程在地址S下,单位为:转/分钟; 主轴的启/停和旋转方向则通过M指令来指定 M3 主轴正转 M4 主轴反转 M5 主轴停止 说明: ① 如果程序段中即有坐标轴运行指令,又有主轴运行M指令,则M指令在坐标轴运行之前生效即 当M3或M4生效,主轴启动运行之后,坐标轴才开始运行; 当M5生效,主轴开始停止之后,坐标轴才开始运行但坐标轴无需等待主轴完全停止就开始运行 ② 主轴也可以通过程序结束或复位来停止编程举例 N10 G1 X70 Z20 F300 S270 M3 ;在X,Z 轴运行之前, … ;主轴顺时针方向,以270 转/分启动 N80 S450 … ;改变转速 … N170 G0 Z180 M5 ;主轴停止生效后, Z 轴运行,五、辅助功能 M 辅助功能M用以设定机床上的一些开关操作,例如主轴启动/停止、打开/关闭冷却液等等 目前,只有少数M功能被固定下来,其余M功能则由机床生产厂家自行设定802D数控系统所使用和预留的辅助功能M见下表所示,其辅助功能格式为: M0 ∼ M99,说明: (1)在一个程序段中最多可以有5个M功能。
(2)在有坐标轴运行指令的程序段中,M功能的作用情况如下 ① 只有在坐标轴运行完毕之后,M0,M1,M2 功能才会有效 ② 在坐标轴运行之前,M3,M4,M5功能所对应的控制信号就已经有效,即当受控主轴按M3或M4启动之后,坐标轴才开始运动,而在M5功能有效后,坐标轴并不等待主轴完全停止就开始运动 ③ 其它M功能信号与坐标轴运行信号一起输出到内部控制器上如果你有意在坐标轴运行之前或之后编程一个M功能,则你必须插入一个独立的M功能程序段编程举例 N10 S… N20 G… X… M3 ;M功能在有坐标轴运行的程序段中时, ;在X轴运行之前启动主轴运行 N180 M78 M67 M10 M12 M37 ;一个程序段中最多可有5个M功能 除了M功能和H功能之外,T、D 和S功能也可以传送到PLC每个程序段中最多可以写入10个这样的功能指令五、计算参数R和局部用户数据LUD (1)计算参数R 功能 ⒈ 计算参数是一种实型变量,它具有如下操作性质 ① 在程序运行之前,通过机床操作面板可以设定计算参数的初始值; ② 在程序运行时,计算参数的数值可以被程序动态地修改; ③ 在程序运行之后,计算参数的数值将被保存在系统数据区中。
⒉ 计算参数属于全局变量,可以被所有的NC程序所访问 ⒊ 在NC程序中,可以利用计算参数来对各种地址进行赋值 可见,计算参数可以使一个NC程序适用于多组数值下的不同加工 编程格式 802D系统用有300个计算参数,编程格式为:R0 到 R299,为计算参数赋值 ⒈ 使用浮点数格式为计算参数赋值 ① 浮点数格式的数值范围为±(0.000 0001 … 9999 9999); ② 带符号时,正号可以省去; ③ 带小数点时,可带8位小数; ④ 可取为整数形式 例如: R0=3.5678 R1=-37.3 R2=2 R3=-7 R4=-45678.1234,⒉ 使用指数格式为计算参数赋值 ① 指数格式的数值范围为±(10-300…10+300); ② 指数值写在EX符号之后,EX值范围为:-300 到 +300; ③ 最大符号数为10(包括符号和小数点) 例如: R0=-0.1EX-5 ;R0=-0.000 001 R1=1.874EX8 ;R1=187 400 000,⒊ 可以使用计算表达式来为计算参数赋值。
例如: R0=1+2+3 R0=SIN(25.3) R0=R1+R2 ⒋ 一个程序段中可以有多个赋值功能字表达式计算 ① 除了+、-、*、/ 四则运算以外,还有以下计算功能② 在计算表达式时,遵循通常的数学运算规则:圆括号内的运算优先,乘法和除法运算优先于加法和减法运算为其它NC地址赋值 为增加NC程序的通用性,可以用数值、数值表达式、R参数或R参数表达式对任意NC地址赋值,但对地址N、G 和L例外 ① 赋值时在地址符之后写入符号“=”; ② 给坐标轴地址(运行指令)赋值时,要求独立的程序段 例如: N10 G0 X=R2 ;给X轴赋值,编程举例1:R 参数 N10 R1=R1+1 ;R1自增1 N20 R1=R2+R3 R4=R5-R6 R7=R8*R9 R10=R11/R12 N30 R13=SIN(25.3) ;R13等于正弦25.3 度 N40 R14=R1*R2+R3 ;乘法和除法运算优先于加法和减法运算 N50 R14=R1*(R2+R3) N60 R15=SQRT(R1*R1+R2*R2);,编程举例2:坐标轴赋值 N10 G1 G91 X=R1 Z=R2 F300 N20 Z=R3 N30 X=-R4 N40 Z=-R5 …,(2)局部用户数据(LUD) 功能 在数控程序中,编程人员可以定义自己的不同数据类型的变量(LUD)。
这些变量具有以下性质 ⒈ 只能在定义它们的程序中使用,因此属于局部变量 ⒉ 在程序的开头定义,并在定义的同时可以为它们赋初值未赋初值的局部变量的初始值为零 ⒊ 变量名称应遵守以下规则 ① 最大长度为32个字符 ② 起始两个字符必须是字母;其它字符可以是字母,下划线或数字 ③ 系统中已经使用的名字不能再使用(NC地址,程序名等等)变量定义格式 ① DEF BOOL 变量名 定义布尔类型变量,变量值为:TRUE(=1),FALSE(=0) ② DEF CHAR 变量名 定义字符类型变量,变量值为字符的ASCII 编码字符类型常量的格式为:“字符”,例如“a”,“b” ③ DEF INT 变量名 定义整数类型变量,变量值为32位整型数 数值范围为:80 00 00 00H — 7F FF FF FFH ④ DEF REAL 变量名 定义实数类型变量,变量值为实型数 实型常量的格式有以下两种 ·浮点数格式:带符号和小数点的实数书写格式,最多8位小数 数值范围为:±(0.000 0001 ~ 9999 9999) ·指数格式: [浮点数]EX[整数] 数值范围为:±(10-300 ~ 10+300) 每个类型的变量都需要单独的程序段来定义。
但在同一个程序段中可以定义具有相同类型的几个变量 例如: DEF INT VAR1,VAR2=12,VAR3 ;定义INT类型的3个变量 DEF REAL L1,L2=123.456,L3 ;定义REAL类型的3个变量,数组变量定义 在程序中还可以定义四种基本数据类型的数组变量 例如: DEF INT PVAR5[n] ;INT类型的一维数组,n个数组元素 DEF INT PVAR6[n,m] ;INT类型的二维数组,第一维的长度为m ;第二维的长度为n说明: ① 各数组元素可通过使用下标来引用 ② 每个数组元素都可以看成是一个独立变量 例1:数组变量定义 DEF INT PVAR7[3] ;定义了一个INT类型的一维数组,共3个数组元素 ;分别为:PVAR7[0]、 PVAR7[1]和PVAR7[2],例2:为数组变量赋值 ① N10 PVAR7[2]=24 ;下标为2的数组元素PVAR7[2]被赋予值24 ② N20 PVAR5[2]=SET(1,2,3) 从下标为2的数组元素PVAR5[2]开始,依次被赋予指定的数值。
PVAR5[2]=1; PVAR5[3]=2; PVAR5[4]=3 ③ N20 PVAR7[4]=REP(2) ;从数组元素PVAR7[4]开始,所有元素为2 注意事项 在SINUMERIK802D系统中,最多可定义200个LUD由于SIEMENS的标准循环也使用LUD,因此在使用这些循环时,必须保证数控程序所使用的LUD总数不要超过200个六、程序跳转 一般情况下,NC程序以程序段的书写次序来顺序执行,但NC跳转指令将会改变这种执行顺序,实现NC程序的分支运行 NC程序的跳转方式有两种:绝对跳转和条件跳转1)标记符 标记符或程序段号用于标记跳转目标程序段 ① 标记符由2-8个字母、数字或下划线组成,前两个字符必须是字母或下划线 ② 标记符后面必须为冒号 ③ 标记符位于程序段段首,如果程序段有段号,则紧跟段号 举例 N10 MARKE1:G1 X20 ;MARKE1为标记符,跳转目标程序段 … TR789:G0 X10 Z20 ;TR789为标记符,跳转目标程序段没有段号 N100 … ;程序段号也可以是跳转目标,(2)绝对跳转 所谓绝对跳转,是指无条件地执行跳转操作的跳转。
使用绝对跳转指令时应该注意以下几点 ① 跳转目标只能是有标记符的程序段或有程序段号的程序段,此程序段必须位于该程序之内 ② 绝对跳转指令必须占用一个独立的程序段 绝对跳转指令格式 GOTOF Label :向前(向程序结束的方向)跳转,Label为标记符 GOTOB Label :向后(向程序开始的方向)跳转,Label为标记符,程序执行顺序,N10 G0 X... Y... ...N20 GOTOF MARKE0 ;跳转到标记 MARKE0 ... ...N50 MARKE0: R1 = R2 + R3N51 GOTOF MARKE1 ;跳转到标记 MARKE1 ... ...MARKE2: X... Z...N100 M2 ;end of programMARKE1: X... Z... ... ...N150 GOTOB MARKE2 ; 跳转到标记 lMARKE2,,,,,,,,,,,,,,,①,②,③,④,(3)条件跳转 所谓条件跳转,是指是否执行跳转操作取决于跳转条件是否满足 如果满足跳转条件(即条件表达式的值为“真”或不等于零),则进行跳转;否则,继续顺序执行。
NC程序使用IF条件跳转指令来实现条件跳转,使用该指令时需要注意以下几点 ① 跳转目标只能是有标记符的程序段,该程序段必须在此程序之内 ② 条件跳转指令要求一个独立的程序段,但在一个程序段中可以有多条条件跳转指令条件跳转指令格式 IF 条件 GOTOF Label ;向前跳转 IF 条件 GOTOB Label ;向后跳转其中, ① Label:跳转目标程序段的标记符; ② 条件:由常量数值、计算参数、局部变量等组成的条件表达式条件表达式所使用的条件运算符如下表所示。





