变量根据变量号可分为四中类型
是可编程机床控制器(PMC)和用户宏程序之间交换的信号
用户宏程序输入信号
这些信号不对控制单元提供任何功能。这些信号作为系统变量的一种由用户宏程序读取,并用作用户宏程序和 PMC之间的接口信号。
这些信号对应的系统变量表示如下:
用户宏程序输出信号
这些信号不对控制单元提供任何功能。这些信号作为一种由用户宏程序读或写的系统变量,并用作用户宏程序和 PMC之间的接口信号
这些信号对应的系统变量表示如下:
这些系统变量能够用于赋值语句的左边或右边。
左侧的赋值是赋给右侧的变量。
信号地址如下:
PMC与宏变量的地址对应关系总结如下:
#1000~#1031=G54.0~G57.7
#1032=G54~G57
#1033=G276~G279
#1034=G280~G283
#1035=G284~G287
#1100~#1115=F54.0~F55.7
#1116~#1131=F276.0~F277.7
#1132=F54, F55, F276, F277
#1133=F56~F59
#1134=F280~F283
#1135=F284~F287
系统变量:
系统变量用于读和写 NC内部数据,例如,刀具偏置值和当前位置数据。但是,某些系统变量只能读。系统变量是自动控制和通用程序开发的基础。
用系统变量可以读和写刀具补偿值。
可使用的变量数取决于刀补数,是否区分外形补偿和磨损补偿以及是否区分刀长补偿和刀尖补偿。当偏置组数小于等于 200时,也可使用#2001~#2400
刀具补偿存储器 C的系统变量
宏程序报警的系统变量
列如:
#3000=1(PROBE NO CONTACT)
报警屏幕显示“3001 PROBE NO CONTACT”(探针没有接触
程序停止并显示信息
时间信息的系统变量:
自动运行控制的系统变量(#3003)
当电源接通时,该变量的值为 0。
当单程序段停止无效时,即使单程序段开关设为 ON,也不执行单程序段停止。
当指定不等待辅助功能(M,S和 T功能)完成时,在辅助功能完成之前,程序即执行到下一程序段。而且分配完成信号 DEN不输出。
自动运行控制的系统变量(#3004)
当电源接通时,该变量的值为 0。
当进给暂停无效时:
(1) 当进给暂停按钮被按下时,机床以单段停止方式停止。但是,当用变量#3003使单程序段方式无效时,单程序段停止不执行。
(2) 当进给暂停按钮压下又松开时,进给暂停灯亮,但是,机床不停止;程序继续执行,并且机床停在进给暂停有效的第一个程序段。
进给速度倍率无效时,倍率总为 100%,而不管机床操作面板上的进给速度倍率开关的设置。
准确停止检测无效时,即使那些不执行切削的程序段也不进行准确停止检测(位置检测)。
SETTING值可用变量读和写。二进制数转换为十进制数。
使用外部开关或 SETTING操作设置的各轴镜像状态可以通过输出信号(镜像检测信号)读出。可以检测当前的镜像状态
得到的二进制值转换成十进制。
当用镜像信号和 SETTING两者对某轴设置镜像功能时,信号值和设定值相或,然后输出。
当控制轴以外的轴的镜像功能接通时,它们也被读进系统变量#3007。
系统变量#3007是写保护的系统变量。如果试图在变量中写数据,则发出 P/S116报警“WRITE PROTECTED VARIABLE”。
要求的零件数(目标数)和已加工的零件数(完成数)可以读和写
#3901:已加工的零件数(完成数)
#3902:要求的零件数(目标数)
注:不能使用负值。
正在处理的程序段之前的模态信息可以读出
当执行#1=#4002;时,在#1中得到的值是 17,18或 19。
对于不能使用的 G代码组,如果指定系统变量读取相应的模态信息,则发出 P/S报警。
机床位置信息不能写,只能读
变量号的 第 1位代表轴号(从 1到 4)。
变量#5081~#5084存储的刀具长度补偿值是当前的执行值,不是后面程序段的处理值。
在 G31(跳转功能)程序段中跳转信号接通时的刀具位置储存在变量#5061到#5064中。当 G31程序段中的跳转信号未接通时,这些变量中储存指定程序段的终点值。
移动期间不能读是指由于缓冲(预读)功能的原因,不能读期望值。
工件零点偏移值可以读和写
可以使用以下变量
宏变量的算术和逻辑运算:
下表列出的运算可以在变量中执行。运算符右边的表达式可包含常量和/或由函数或运算符组成的变量。表达式中的变量#j和#k可以用常数替换。左边的变量也可以用表达式赋值。
函数 SIN,COS,ASIN,ACOS,TAN和 ATAN的角度单位是度。如90°30ˊ表示为90.5度。
宏程序语句和 NC语句
下面的程序段为宏程序语句:
包含算术或逻辑运算(=)的程序段。
包含控制语句(例如,GOTO,DO,END)的程序段。
包含宏程序调用指令(例如,用 G65,G66,G67或其它 G代码,M代码调用宏程序)的程序段。
除了宏程序语句以外的任何程序段都为 NC语句。
转移和循环
在程序中,使用 GOTO语句和 IF语句可以改变控制的流向。有三种转移和循环操作可供使用:
无条件转移(GOTO 语句)
转移到标有顺序号 n的程序段。当指定 1到 99999以外的顺序号时,出现 P/S报警No.128。可用表达式指定顺序号。
GOTOn: n:顺序号(1到 99999)
例:GOTO1; GOTO#12;
条件转移(IF语句)
IF[]GOTO n ,如果指定的条件表达式满足时,转移到标有顺序号 n的程序段。如果指定的条件表达式不满足,执行下个程序段。
无条件转移(GOTO 语句)
转移到标有顺序号 n的程序段。当指定 1到 99999以外的顺序号时,出现 P/S报警No.128。可用表达式指定顺序号。
GOTOn: n:顺序号(1到 99999)
例:GOTO1; GOTO#12;
条件转移(IF语句)
IF[]GOTO n ,如果指定的条件表达式满足时,转移到标有顺序号 n的程序段。如果指定的条件表达式不满足,执行下个程序段。
IF[]THEN 如果条件表达式满足,执行预先决定的宏程序语句。只执行一个宏程序语句。
如果#1和#2的值相同,0赋给#3。
IF[#1 EQ #2] THEN #3=0;
注:条件表达式必须包括运算符。运算符插在两个变量中间或变量和常数中间,并且用括号([,])封闭。表达式可以替代变量。
运算符
运算符由 2个字母组成,用于两个值的比较,以决定它们是相等还是一个值小于或大于另一个值。注意,不能使用不等号。
循环(WHILE 语句)
在 WHILE后指定一个条件表达式。当指定条件满足时,执行从 DO到END之间的程序。否则,转到 END后的程序段
当指定的条件满足时,执行 WHILE 后从 DO到 END之间的程序。否则,转而执行 END之后的程序段。与 IF语句的指令格式相同。DO后的数和 END后的数为指定程序执行范围的标号,标号值为 1,2,3。
若用 1,2,3以外的值会产生 P/S报警 No.126。
在程序中使用编程修改系统参数:
G10 L50 参数写模式设定
N_Q_R_
N_P_Q_R_
G11 参数写模式取消
N_ 为参数号的设定值(五位数字)
R_ 参数的设定值
Q_ 参数的位设定值为:0~7(单独修改位参数的某一位)
P_ 轴号设定值为:1到8
设定Q,R的值时不要使用小数点。
相关参数:
3454 #4 G1B
G1B:在可编程参数输入中,位参数的输入
0:不可以 1:可以(位参数通过Q定义)
在程序中编程修改外部工件零点偏移或工件零点偏移值:
G10 L2 Pp IP_;
Pp中的小p=0:设定外部工件零点偏移值
Pp中的小p=1到6:工作坐标系1到6的工件零点偏移(G54~G59)
IP: 对于绝对值指令(G90),为每个轴的工件零点偏移值。对于增量值指令(G91),为每个轴加到设定的工件零点的偏移量(相加的结果为新的工件零点偏移值)。
程序举例:
Y轴抱闸的检查
O9050(BRAKETEST)
(***Y BRAKETEST ***)
(***M-FUNCTIONS ***)
(***M48-BRAKE RELEASE ***)
(***M49-BREAKE CLOSE ***)
(***M74-SHOT BOLT Y ADVANCE ***)
(***M147-BRAKE CHECK Y-AXIS OK ***)
(***M148-BRAKE CHECK Y-AXIS NOT OK***)
(***MAX CUR.PARAM 2060=7282 ***)
(***#913AND8EQ8-BRAKE CHECK REQ. ***)
(REQUEST BRAKETEST ?)
北京发那科机电有限公司 YYF
N100IF[#513AND8EQ8]GOTO110(BRAKETEST)
GOTO999(END)
N110G53G91Y-1.5
N120M49(BREAKE CLOSE)
N130#1=#5022 Y轴当前的位置赋给变量#1(机床坐标系)
N140G91
N150G10L50 参数写开启
N160N6200R11000000(HIGH SPEED SKIPP OFF) 参数6200改为:11000000
N170N2060P2R2184 参数2060对应的第2轴Y 的设定改为:2184(转矩极限)
N180G11 参数写取消
N190G94
N200G31P99Y1.5F200(BRAKETEST STARTED) 在Y轴抱闸抱紧的情况下以最大不超过2184的转矩移动Y轴
N210G53
N220M48(BREAKE RELEASE)
N230G4P500
N240G10L50 参数写开启
N250N6200R11010000(HIGH SPEED SKIPP ON)
N260N2060P2R7282(CURRENT Y MAX)
N270G11G90
N280M48(BREAKE RELEASE)
N290IF[ABS[#1-#5022]GT1]GOTO400(BRAKE TEST NOT OK)
检查在Y轴抱闸抱紧的情况下以最大不超过2184的转矩是否能移动Y轴,如果能够移动并且移动的数值超过1毫米,则Y轴抱闸不好。
N300M147(BRAKE Y AXIS OK)
N310GOTO999(END)
N400M148(BRAKE Y AXIS NOT OK)
N410M98P0003(TOOLCHANGE POSITION)
N999M30
变量根据变量号可分为四中类型
是可编程机床控制器(PMC)和用户宏程序之间交换的信号
用户宏程序输入信号
这些信号不对控制单元提供任何功能。这些信号作为系统变量的一种由用户宏程序读取,并用作用户宏程序和 PMC之间的接口信号。
这些信号对应的系统变量表示如下:
用户宏程序输出信号
这些信号不对控制单元提供任何功能。这些信号作为一种由用户宏程序读或写的系统变量,并用作用户宏程序和 PMC之间的接口信号
这些信号对应的系统变量表示如下:
这些系统变量能够用于赋值语句的左边或右边。
左侧的赋值是赋给右侧的变量。
信号地址如下:
PMC与宏变量的地址对应关系总结如下:
#1000~#1031=G54.0~G57.7
#1032=G54~G57
#1033=G276~G279
#1034=G280~G283
#1035=G284~G287
#1100~#1115=F54.0~F55.7
#1116~#1131=F276.0~F277.7
#1132=F54, F55, F276, F277
#1133=F56~F59
#1134=F280~F283
#1135=F284~F287
系统变量:
系统变量用于读和写 NC内部数据,例如,刀具偏置值和当前位置数据。但是,某些系统变量只能读。系统变量是自动控制和通用程序开发的基础。
用系统变量可以读和写刀具补偿值。
可使用的变量数取决于刀补数,是否区分外形补偿和磨损补偿以及是否区分刀长补偿和刀尖补偿。当偏置组数小于等于 200时,也可使用#2001~#2400
刀具补偿存储器 C的系统变量
宏程序报警的系统变量
列如:
#3000=1(PROBE NO CONTACT)
报警屏幕显示“3001 PROBE NO CONTACT”(探针没有接触
程序停止并显示信息
时间信息的系统变量:
自动运行控制的系统变量(#3003)
当电源接通时,该变量的值为 0。
当单程序段停止无效时,即使单程序段开关设为 ON,也不执行单程序段停止。
当指定不等待辅助功能(M,S和 T功能)完成时,在辅助功能完成之前,程序即执行到下一程序段。而且分配完成信号 DEN不输出。
自动运行控制的系统变量(#3004)
当电源接通时,该变量的值为 0。
当进给暂停无效时:
(1) 当进给暂停按钮被按下时,机床以单段停止方式停止。但是,当用变量#3003使单程序段方式无效时,单程序段停止不执行。
(2) 当进给暂停按钮压下又松开时,进给暂停灯亮,但是,机床不停止;程序继续执行,并且机床停在进给暂停有效的第一个程序段。
进给速度倍率无效时,倍率总为 100%,而不管机床操作面板上的进给速度倍率开关的设置。
准确停止检测无效时,即使那些不执行切削的程序段也不进行准确停止检测(位置检测)。
SETTING值可用变量读和写。二进制数转换为十进制数。
使用外部开关或 SETTING操作设置的各轴镜像状态可以通过输出信号(镜像检测信号)读出。可以检测当前的镜像状态
得到的二进制值转换成十进制。
当用镜像信号和 SETTING两者对某轴设置镜像功能时,信号值和设定值相或,然后输出。
当控制轴以外的轴的镜像功能接通时,它们也被读进系统变量#3007。
系统变量#3007是写保护的系统变量。如果试图在变量中写数据,则发出 P/S116报警“WRITE PROTECTED VARIABLE”。
要求的零件数(目标数)和已加工的零件数(完成数)可以读和写
#3901:已加工的零件数(完成数)
#3902:要求的零件数(目标数)
注:不能使用负值。
正在处理的程序段之前的模态信息可以读出
当执行#1=#4002;时,在#1中得到的值是 17,18或 19。
对于不能使用的 G代码组,如果指定系统变量读取相应的模态信息,则发出 P/S报警。
机床位置信息不能写,只能读
变量号的 第 1位代表轴号(从 1到 4)。
变量#5081~#5084存储的刀具长度补偿值是当前的执行值,不是后面程序段的处理值。
在 G31(跳转功能)程序段中跳转信号接通时的刀具位置储存在变量#5061到#5064中。当 G31程序段中的跳转信号未接通时,这些变量中储存指定程序段的终点值。
移动期间不能读是指由于缓冲(预读)功能的原因,不能读期望值。
工件零点偏移值可以读和写
可以使用以下变量
宏变量的算术和逻辑运算:
下表列出的运算可以在变量中执行。运算符右边的表达式可包含常量和/或由函数或运算符组成的变量。表达式中的变量#j和#k可以用常数替换。左边的变量也可以用表达式赋值。
函数 SIN,COS,ASIN,ACOS,TAN和 ATAN的角度单位是度。如90°30ˊ表示为90.5度。
宏程序语句和 NC语句
下面的程序段为宏程序语句:
包含算术或逻辑运算(=)的程序段。
包含控制语句(例如,GOTO,DO,END)的程序段。
包含宏程序调用指令(例如,用 G65,G66,G67或其它 G代码,M代码调用宏程序)的程序段。
除了宏程序语句以外的任何程序段都为 NC语句。
转移和循环
在程序中,使用 GOTO语句和 IF语句可以改变控制的流向。有三种转移和循环操作可供使用:
无条件转移(GOTO 语句)
转移到标有顺序号 n的程序段。当指定 1到 99999以外的顺序号时,出现 P/S报警No.128。可用表达式指定顺序号。
GOTOn: n:顺序号(1到 99999)
例:GOTO1; GOTO#12;
条件转移(IF语句)
IF[]GOTO n ,如果指定的条件表达式满足时,转移到标有顺序号 n的程序段。如果指定的条件表达式不满足,执行下个程序段。
无条件转移(GOTO 语句)
转移到标有顺序号 n的程序段。当指定 1到 99999以外的顺序号时,出现 P/S报警No.128。可用表达式指定顺序号。
GOTOn: n:顺序号(1到 99999)
例:GOTO1; GOTO#12;
条件转移(IF语句)
IF[]GOTO n ,如果指定的条件表达式满足时,转移到标有顺序号 n的程序段。如果指定的条件表达式不满足,执行下个程序段。
IF[]THEN 如果条件表达式满足,执行预先决定的宏程序语句。只执行一个宏程序语句。
如果#1和#2的值相同,0赋给#3。
IF[#1 EQ #2] THEN #3=0;
注:条件表达式必须包括运算符。运算符插在两个变量中间或变量和常数中间,并且用括号([,])封闭。表达式可以替代变量。
运算符
运算符由 2个字母组成,用于两个值的比较,以决定它们是相等还是一个值小于或大于另一个值。注意,不能使用不等号。
循环(WHILE 语句)
在 WHILE后指定一个条件表达式。当指定条件满足时,执行从 DO到END之间的程序。否则,转到 END后的程序段
当指定的条件满足时,执行 WHILE 后从 DO到 END之间的程序。否则,转而执行 END之后的程序段。与 IF语句的指令格式相同。DO后的数和 END后的数为指定程序执行范围的标号,标号值为 1,2,3。
若用 1,2,3以外的值会产生 P/S报警 No.126。
在程序中使用编程修改系统参数:
G10 L50 参数写模式设定
N_Q_R_
N_P_Q_R_
G11 参数写模式取消
N_ 为参数号的设定值(五位数字)
R_ 参数的设定值
Q_ 参数的位设定值为:0~7(单独修改位参数的某一位)
P_ 轴号设定值为:1到8
设定Q,R的值时不要使用小数点。
相关参数:
3454 #4 G1B
G1B:在可编程参数输入中,位参数的输入
0:不可以 1:可以(位参数通过Q定义)
在程序中编程修改外部工件零点偏移或工件零点偏移值:
G10 L2 Pp IP_;
Pp中的小p=0:设定外部工件零点偏移值
Pp中的小p=1到6:工作坐标系1到6的工件零点偏移(G54~G59)
IP: 对于绝对值指令(G90),为每个轴的工件零点偏移值。对于增量值指令(G91),为每个轴加到设定的工件零点的偏移量(相加的结果为新的工件零点偏移值)。
程序举例:
Y轴抱闸的检查
O9050(BRAKETEST)
(***Y BRAKETEST ***)
(***M-FUNCTIONS ***)
(***M48-BRAKE RELEASE ***)
(***M49-BREAKE CLOSE ***)
(***M74-SHOT BOLT Y ADVANCE ***)
(***M147-BRAKE CHECK Y-AXIS OK ***)
(***M148-BRAKE CHECK Y-AXIS NOT OK***)
(***MAX CUR.PARAM 2060=7282 ***)
(***#913AND8EQ8-BRAKE CHECK REQ. ***)
(REQUEST BRAKETEST ?)
北京发那科机电有限公司 YYF
N100IF[#513AND8EQ8]GOTO110(BRAKETEST)
GOTO999(END)
N110G53G91Y-1.5
N120M49(BREAKE CLOSE)
N130#1=#5022 Y轴当前的位置赋给变量#1(机床坐标系)
N140G91
N150G10L50 参数写开启
N160N6200R11000000(HIGH SPEED SKIPP OFF) 参数6200改为:11000000
N170N2060P2R2184 参数2060对应的第2轴Y 的设定改为:2184(转矩极限)
N180G11 参数写取消
N190G94
N200G31P99Y1.5F200(BRAKETEST STARTED) 在Y轴抱闸抱紧的情况下以最大不超过2184的转矩移动Y轴
N210G53
N220M48(BREAKE RELEASE)
N230G4P500
N240G10L50 参数写开启
N250N6200R11010000(HIGH SPEED SKIPP ON)
N260N2060P2R7282(CURRENT Y MAX)
N270G11G90
N280M48(BREAKE RELEASE)
N290IF[ABS[#1-#5022]GT1]GOTO400(BRAKE TEST NOT OK)
检查在Y轴抱闸抱紧的情况下以最大不超过2184的转矩是否能移动Y轴,如果能够移动并且移动的数值超过1毫米,则Y轴抱闸不好。
N300M147(BRAKE Y AXIS OK)
N310GOTO999(END)
N400M148(BRAKE Y AXIS NOT OK)
N410M98P0003(TOOLCHANGE POSITION)
N999M30
閱讀更多 騰龍數控機床 的文章