华中数控车宏程序修订稿

合集下载

华中数控宏程序

华中数控宏程序

华中数控宏程序华中世纪星系统宏指令编程HNC-21M 数控系统为⽤户配备了强有⼒的类似于⾼级语⾔的宏程序功能,⽤户可以使⽤变量进⾏算术运算、逻辑运算和函数的混合运算,此外宏程序还提供了循环语句、分⽀语句和⼦程序调⽤语句,利于编制各种复杂的零件加⼯程序,减少乃⾄免除⼿⼯编程时进⾏繁琐的数值计算,以及精简程序量。

⼀宏变量及常量(1) 宏变量#0~#49 当前局部变量#50~#199 全局变量#200~#249 0 层局部变量#250~#299 1 层局部变量#300~#349 2 层局部变量#350~#399 3 层局部变量#400~#449 4 层局部变量#450~#499 5 层局部变量#500~#549 6 层局部变量#550~#599 7 层局部变量#600~#699 ⼑具长度寄存器H0~H99#700~#799 ⼑具半径寄存器D0~D99#800~#899 ⼑具寿命寄存器(2) 常量PI:圆周率πTRUE:条件成⽴(真)FALSE:条件不成⽴(假)⼆运算符与表达式(1) 算术运算符:+,-,*,/(2) 条件运算符EQ(=),NE(≠),GT(>),GE(≥),LT(<),LE(≤)(3) 逻辑运算符AND,OR,NOT(4) 函数SIN,COS,TAN,ATAN,ATAN2,ABS,INT,SIGN,SQRT,EXP(5) 表达式⽤运算符连接起来的常数,宏变量构成表达式。

例如:175/SQRT[2] * COS[55 * PI/180 ];#3*6 GT 14;三赋值语句格式:宏变量=常数或表达式把常数或表达式的值送给⼀个宏变量称为赋值。

例如:#2 = 175/SQRT[2] * COS[55 * PI/180 ];#3 = 124.0;条件判别语句IF,ELSE,ENDIF格式(i):IF 条件表达式…ELSE…ENDIF格式(ii) :IF 条件表达式…ENDIF四循环语句WHILE,ENDW格式:WIIILE 条件表达式…ENDW条件判别语句的使⽤参见宏程序编程举例。

宏程序在华中数控车床上的应用

宏程序在华中数控车床上的应用

云南省第 四届数控技能大赛数控车床 的实操试 2 非 圆曲面 的加 工 题, 是个装配体 , 3 由 个零件组成 , 中一个零件是 其 椭 圆面 ,一 个 零 件有 抛 物 线 的 内孔 。如 果用 自动 编 加 工 零 件 2的椭 圆表 面 和 零 件 3的 抛 物 线 内 程, 花费时 间较长 , 成的程序段较多 , 生 而且加工精 孔 , 由于一般 的数控系统无椭 圆和抛物线插补功能 , 度不高 ; 如果用数控系统提供 的高效编程功能 , 如复 采用手工编程 , 如果用直线逼近的话 , 我们要算很多
合 循 环程 序 、 子程 序 、 程 序 等 , 宏 采用 手 工编 程 , 而 反 可 以缩短 编程 时 间 , 高加 工效 率 。 提 节点 , 手工来 计算 节点 坐标 实 际上是 不 可 能 的事 。华
中数控系统提供 了逻辑运算 和表达式等功能 ,通过 本文 以这几个零件为例 ,介绍宏程序在华 中数 数学计算或逻辑运算 , 以一个坐标值 的不断变化 , 根 控车床上实际加工的应用 。 据表达式就可算 出另一个坐标 的值 ,即可得 出曲线 上的节点坐标值。这就是数控系统里宏程序 的功能。
粗 车循 环 N 0G 0X 6 快速退 刀 4 O 2 0
N5 0Z6 0
() 3 利用宏程序进行手工编程时 , 可以通过数学 公式 自动计算节点坐标 ; () 4 宏程序 的插补精度可 以根据加工要 求进行
修改。 22 运 用宏 程序 编 写椭 圆加 工实例 .
N 0M 3 10 00 精车刀具 、 6 0 30 3 3 S T 转速 N 0G 0 6 0 快速定位到循环起 点 7 O 0 . X Z5 N 0 O 4 . 8 精车外圆起点 8 1 9 9 0 C X 6F

华中数控宏程序

华中数控宏程序

《华中数控宏程序》1目录序 (1)一.什么是宏程序? (1)二.用宏程编程有什么好处? (1)一.宏变量及宏常量 (1)1.宏变量 (1)2.局部变量 (2)3.全局变量 (2)4.系统变量 (3)5.常量 (3)二.运算符与表达式 (3)1.算术运算符 (3)2.条件运算符 (3)3.逻辑运算符 (4)4.函数 (4)5.表达式与括号 (4)6.运算符的优先级 (4)7.赋值号 = (4)8.注释 (5)三.程序流程控制 (5)1.条件分支IF (5)2.条件循环WHILE (6)四.子程序及参数递传 (7)1.普通子程序 (7)2.宏子程序 (7)3.全局变量传参数 (7)4.局部变量传参数 (8)5.系列零件加工 (9)6.高级参考 (10)五.宏编程实例 (13)1.数车编程 (13)(1)函数曲线加工通用宏程序 (13)(2)抛物线车削1 (13)(3)抛物线车削2 (13)(4)抛物线车削3 (14)(5)抛物线车削4 (14)(6)抛物线车削5(G71与宏程序) (15)(7)抛物线车削6 (15)(8)正弦线车削 (16)(9)抛物线与椭圆车削 (16)(10)椭圆粗、精车削 (17)(11)用子程序完成粗、精加工 (17)(12)变螺距螺纹 (19)2.数铣编程 (19)华中数控宏程序,从入门到精通(1)直线段逼近整园的宏程序 (19)(2)螺旋线走刀 (20)(3)来回铣削的方法 (20)(4)铣平面 (21)(5)铣斜面 (21)(6)铣半圆柱 (22)(7)铣半球 (23)(8)多次旋转的宏编程 (24)(9)切圆台与斜方台 (25)(10)铣椭圆 (25)(11)铣孔 (26)(12)倒圆角加工 (26)(14)抛物斜边岛屿加工 (28)(15)凹球曲面加工 (29)(16)螺纹镗刀铣螺纹 (30)(17)圆柱 (31)(18)直斜边岛屿加工 (31)(19)圆弧斜边岛屿加工 (32)(20)椭球面加工的宏程序实例 (32)(21)自定义G指令 (33)附件 (33)1.华中数控指令一览 (33)2.固定循环指令的宏程序实现 (33)G73 (33)G74 (34)G76 (35)G81 (36)G82 (37)G83 (38)G84 (39)G85 (40)G86 (41)G87 (42)G88 (43)G89 (45)2.华中数控系统系统变量一览 (46)(1)子程序嵌套局部变量 (46)(2)刀具相关系统变量 (46)(3)坐标相关系统变量: (46)(4)参考点相关系统变量 (46)(5)系统状态变量 (47)3.数学知识 (47)3华中数控宏程序,从入门到精通序一.什么是宏程序?什么是数控加工宏程序?简单地说,宏程序是一种具有计算能力和决策能力的数控程序。

华中HNC-2122M系统加工中心A或铣床宏程序

华中HNC-2122M系统加工中心A或铣床宏程序

华中(HNC-21/22M)宏指令编程三维曲面铣削是数控机床加工的优势,但利用手工编程时较为复杂,一般使用CAD/CAM软件进行绘图自动编程,对于某些简单或规则的三维图形(凹凸球面、椭圆球面、抛物面、轮廓倒角倒圆等)可使用类似于高级语言的宏程序功能进行编写。

使用宏程序可进行变量的算术运算、逻辑运算和函数的混合运算,此外宏程序还提供了循环语句、赋值语句、条件语句和子程序调用语句等,减少甚至免去了手工编程时的繁琐数值计算,以及精简程序量。

对于不同的数控系统,宏程序的编写指令和格式有所差异,但编写的方法和思路基本相同。

编写宏程序前,必须选择合理的铣削路径和刀具等来保证三维曲面加工后的表面粗糙度和精度。

(一)宏变量及常量1.宏变量变量用变量符号#后跟变量号指定,如#1;变量号可以用变量或表达式来代替,此时变量或表达式必须写在中括号内,如:#[#8](假设#8=6,则#[#8]为#6)或#[#1+#2*#2]。

华中(HNC-21/22M)系统宏变量见表1-1。

在地址字后指定的所有变量或变量表达式必须放在中括号内,如:G01 X[-#1] Y[#2+#3] F[#4],变量值有符号时,必须将符号放在括号内#的前面,当调用未定义的变量时,地址字与变量被忽略。

编程时,变量与通过计算的变量赋值时只允许每个程序段写一个。

表1-1 宏变量的类型2.PI:圆周率π;TRUE:条件成立(真);FALSE:条件不成立(假)(二)运算符与表达式变量的算术与逻辑运算见表1-2。

(三)赋值语句格式:宏变量=常数或表达式把常数或表达式的值送给一个宏变量称为赋值。

例如:#3=124#2=175/SQRT[20]*COS[55*PI/180]表1-2 算术与逻辑运算格式1:IF条件表达式格式2:IF条件表达式…………ELSE ENDIF……ENDIF(五)循环语句WHILE,ENDW格式:WIIILE 条件表达式……ENDW例1-1 应用宏程序指令编写图1-1所示SR12半凸球面及50×50方台四周的C4倒角。

华中数控宏程序(数控车床)

华中数控宏程序(数控车床)
(1)函数曲线加工通用宏程序 ..................................................................................... 14 (2)抛物线车削 1..........................................................................................................15 (3)抛物线车削 2..........................................................................................................15 (4)抛物线车削 3..........................................................................................................16 (5)抛物线车削 4..........................................................................................................16 (6)抛物线车削 5(G71 与宏程序) ..........................................................................17 (7)抛物线车削 6..........................................................................................................17 (8)正弦线车削 ............................................................................................................. 18 (9)抛物线与椭圆车削 ................................................................................................. 18 (10)椭圆粗、精车削 ................................................................................................... 19 (11)用子程序完成粗、精加工 ................................................................................... 19 (12)变螺距螺纹 ........................................................................................................... 21 附件 ..................................................................................................................................................21 1. 华中数控指令一览.......................................................................................................21

华中数控铣宏程序加工

华中数控铣宏程序加工

宏程序加工实例一、宏指令编程1宏变量及常量(1)宏变量#0~#49当前局部变量#50~#199全局变量#200~#249 0层局部变量#250~#299 1层局部变量#300~#349 2层局部变量#350~#399 3层局部变量#400~#449 4层局部变量#450~#499 5层局部变量#500~#549 6层局部变量#550~#599 7层局部变量#600~#699刀具长度寄存器H0~H99#700~#799刀具半径寄存器D0~D99#800~#899刀具寿命寄存器#1000“机床当前位置X”#1001“机床当前位置Y”#1002“机床当前位置Z”#1003“机床当前位置A”#1004“机床当前位置B”#1005“机床当前位置C”#1006“机床当前位置U”#1007“机床当前位置V”#1008“机床当前位置W”#1009保留#1010“程编机床位置X”#1011“程编机床位置Y”#1012“程编机床位置Z”#1013“程编机床位置A”#1014“程编机床位置B”#1015“程编机床位置C”#1016“程编机床位置U”#1017“程编机床位置V”#1018“程编机床位置W”#1019保留#1020“程编工件位置X”#1021“程编工件位置Y”#1022“程编工件位置Z”#1023“程编工件位置A”#1024“程编工件位置B”#1025“程编工件位置C”#1026“程编工件位置U”#1027“程编工件位置V”#1028“程编工件位置W”#1029保留53#1030“当前工件零点X”#1031“当前工件零点Y”#1032“当前工件零点Z”#1033“当前工件零点A”#1034“当前工件零点B”#1035“当前工件零点C”#1036“当前工件零点U”#1037“当前工件零点V”#1038“当前工件零点W”#1039保留#1040“G54零点X”#1041“G54零点Y”#1042“G54零点Z”#1043“G54零点A”#1044“G54零点B”#1045“G54零点C”#1046“G54零点U”#1047“G54零点V”#1048“G54零点W”#1049保留#1050“G55零点X”#1051“G55零点Y”#1052“G55零点Z”#1053“G55零点A”#1054“G55零点B”#1055“G55零点C”#1056“G55零点U”#1057“G55零点V”#1058“G55零点W”#1059保留#1060“G56零点X”#1061“G56零点Y”#1062“G56零点Z”#1063“G56零点A”#1064“G56零点B”#1065“G56零点C”#1066“G56零点U”#1067“G56零点V”#1068“G56零点W”#1069保留#1070“G57零点X”#1071“G57零点Y”#1072“G57零点Z”#1073“G57零点A”#1074“G57零点B”#1075“G57零点C”#1076“G57零点U”#1077“G57零点V”#1078“G57零点W”#1079保留#1080“G58零点X”#1081“G58零点Y”#1082“G58零点Z”#1083“G58零点A”#1084“G58零点B”#1085“G58零点C”#1086“G58零点U”#1087“G58零点V”#1088“G58零点W”#1089保留#1090“G59零点X”#1091“G59零点Y”#1092“G59零点Z”#1093“G59零点A”#1094“G59零点B”#1095“G59零点C”#1096“G59零点U”#1097“G59零点V”#1098“G59零点W”#1099保留#1100“中断点位置X”#1101“中断点位置Y”#1102“中断点位置Z”#1103“中断点位置A”#1104“中断点位置B”#1105“中断点位置C”#1106“中断点位置U”#1107“中断点位置V”#1108“中断点位置W”#1109“坐标系建立轴”#1110“G28中间点位置X”#1111“G28中间点位置Y”#1112“G28中间点位置Z”#1113“G28中间点位置A”#1114“G28中间点位置B”#1115“G28中间点位置C”#1116“G28中间点位置U”#1117“G28中间点位置V”#111“8G28中间点位置W”#1119“G28屏蔽字”#1120“镜像点位置X”#1121“镜像点位置Y”#1122“镜像点位置Z”#1123“镜像点位置A”#1124“镜像点位置B”#1125“镜像点位置C”#1126“镜像点位置U”#1127“镜像点位置V”#1128“镜像点位置W”#1129“镜像屏蔽字”#1130“旋转中心(轴1)”#1131“旋转中心(轴2)”#1132“旋转角度”#1133“旋转轴屏蔽字”#1134保留#1135“缩放中心(轴1)”#1136“缩放中心(轴2)”#1137“缩放中心(轴3)”#1138“缩放比例”#1139“缩放轴屏蔽字”#1140“坐标变换代码1”#1141“坐标变换代码2”#1142“坐标变换代码3”#1143保留#1144“刀具长度补偿号”#1145“刀具半径补偿号”#1146“当前平面轴1”#1147“当前平面轴2”#1148“虚拟轴屏蔽字”#1149“进给速度指定”#1150“G代码模态值0”#1151“G代码模态值1”#1152“G代码模态值2”#1153“G代码模态值3”#1154“G代码模态值4”#1155“G代码模态值5#1156“G代码模态值6”#1157“G代码模态值7”#1158“G代码模态值8”世纪星铣床数控系统(HNC-21/22M)编程说明书54#1159“G代码模态值9”#1160“G代码模态值10”#1161“G代码模态值11”#1162“G代码模态值12”#1163“G代码模态值13”#1164“G代码模态值14”#1165“G代码模态值15”#1166“G代码模态值16”#1167“G代码模态值17”#1168“G代码模态值18”#1169“G代码模态值19”#1170“剩余CACHE”#1171“备用CACHE”#1172“剩余缓冲区”#1173“备用缓冲区”#1174保留#1175保留#1176保留#1177保留#1178保留#1179保留#1180保留#1181保留#1182保留#1183保留#1184保留#1185保留#1186保留#1187保留#1188保留#1189保留#1190“用户自定义输入”#1191“用户自定义输出”#1192“自定义输出屏蔽”#1193保留#1194保留(2)常量PI:圆周率πTRUE:条件成立(真)FALSE:条件不成立(假)2运算符与表达式(1)算术运算符:+,-,*,/(2)条件运算符EQ(=),NE(≠),GT(>),GE(≥),LT(<),LE(≤)(3)逻辑运算符AND,OR,NOT(4)函数SIN,COS,TAN,ATAN,A TAN2,ABS,INT,SIGN,SQRT,EXP(5)表达式用运算符连接起来的常数,宏变量构成表达式。

华中数控宏程序

华中数控宏程序
4
正弦:SIN[a]余弦:COS[a]正切:TAN[a]注:a为角度,单位是弧度值。
反正切:ATAN[a](返回:度,范围:-90~+90)
反正切:ATAN2[a]/[b](返回:度,范围:-180~+180)(注:华中数控暂不支持)
绝对值:ABS[a],表示|a|
取整:INT[a],采用去尾取整,非“四舍五入”
3
如果子程序中用的变量是全局变量,调用子程序前,先给变量赋值,再调用子程序。
例:
%400
#51=40;#51为全局变量,给它赋值
M98 P401;进入子程序后#51的值是40
#51=25;第二次给它赋值
M98 P401;再次调用子程序,进入子程序后#51的值是25
M30
%401;子程序
G91G01X[#51]F150;#51的值由主程序决定
M99
4
问题:
%400
N1#1=40 ;为局部变量#1赋值
N2M98 P401 ;进入子程序后#1的值是40吗?
M30
%401
N4G91G01X[#1];子程序中用的是局部变量#1
M99
结论:
主程序中N1行的#1与子程序中N4行的#1不是同一个变量,子程序不会接收到40这个值。怎么办呢?
局部变量的参数传递,是在宏调用指令后面添加参数的方法来传递的。上面的程序中,把N1行去掉,把N2行改成如下形式即可:
三.程序流程控制
程序流程控制形式有许多种,都是通过判断某个“条件”是否成立来决定程序走向的。所谓“条件”,通常是对变量或变量表达式的值进行大小判断的式子,称为“条件表达式”。华中数控系统有两种流程控制命令:IF——ENDIF,WHILE——ENDW。
1.

华中数控宏程序

华中数控宏程序
#1=25
G01 X[#1];表示G01 X25
#1=-10;运行过程中可以随时改变#1的值
G01 X[#1];表示G01 X-10
用变量不仅可以表示坐标,还可以表示G、M、F、D、H、M、X、Y、……等各种代码后的数字。如:
#2=3
G[#2] X30;表示G03 X30
例1 使用了变量的宏子程序。
2
宏子程序可以包含变量,不但可以反复调用简化代码,而且通过改变变量的值就能实现加工数据的灵活变化或改变程序的流程,实现复杂的加工过程处理。

%4002
G01Z[#1] F[#50];Z坐标是变量;进给速度也是变量,可适应粗、精加工。
M99
例对圆弧往复切削时,指令G02、G03交替使用。参数#51改变程序流程,自动选择。
#3 EQ 8 OR #4 LE 10——表示:[#3=8]或者[#4≤10]
有多个逻辑运算符时,可以用方括号来表示结合顺序,如:
NOT[#1 LT 50 AND #1GT 20]——表示:如果不是“#1<50且#1>20”
更复杂的例子,如:
[#1 LT 50]AND[#2GT 20 OR #3 EQ 8]AND[#4 LE 10]
取符号:SIGN[a],a为正数返回1,0返回0,负数返回-1
开平方:SQRT[a],表示
指数:EXP[a],表示
5
包含运算符或函数的算式就是表达式。表达式里用方括号来表示运算顺序。宏程序中不用圆括号,因圆括号是注释符。
例如175/SQRT[2] * COS[55 * PI/180 ]
#3*6 GT 14

%100
N10 #3=30;主程序中#3为30
M98 P101;进入子程序后#3不受影响

华中数控编程---宏程序

华中数控编程---宏程序
FIX[上取整] SQRT[开方] FUP[下取整]
循环语句(WHILE语句)
格式
宏指令编程

%O0001 #1=20(定义a值) #2=10(定义b值) #4=5(定义刀具补偿半径R值) #5=0(定义步距角初始值)
G90G54G0X0Y0S1500M3
系统变量
#1000以上
变量的引用

1、当用表达式指定变量时,应使用括号
如:G01X[#1+#2]F#3

2、当改变量符号时,应把符号(-)放在#号前面 如:G00X-#1

3、当引用未定义时,变量和地址字都被忽略
如:#1定义为0,G00X#1 Y#4执行的结果为G00X0
常量
PI:圆周率π

度用弧度表示:1°对应 PI/180弧度
运算符

1、算数运算符
+

-
*
/
2、条件运算符 EQ(=)NE(≠)GT(>)GE(≥)LT(<)LE(≦)

3、逻辑运算符 AND(与) OR(或) NOT (异或)
函数
SIN[正弦] COS[余弦] TAN[正切] EXP[指数] ATAN[反正切] ABS[绝对值] INT[取整]
华中数控编程 ---宏程序
宏程序的变量
类型 变量名 功能 在程序中局部使用的变量, 之能在程序中存储数据, 例如:运算结果
当前局部变量 用户 变量
#0~#49
全局变量
#50~#199

全局变量可以在子程序中 定义半径补偿值 系统变量用于读和写CNC 运行时各种数据变化,例 如:刀具当前位置和补偿 值等

华中数控车宏程序

华中数控车宏程序

华中数控车宏程序华中数控宏程序一.什么是宏程序?什么是数控加工宏程序?简单地说,宏程序是一种具有计算能力和决策能力的数控程序。

宏程序具有如下些特点:1.使用了变量或表达式(计算能力),例如:(1)G01 X[3+5] ;有表达式3+5(2)G00 X4 F[#1] ;有变量#1(3)G01 Y[50*SIN[3]] ;有函数运算2.使用了程序流程控制(决策能力),例如:(1)IF #3 GE 9 ;有选择执行命令……ENDIF(2)WHILE #1 LT #4*5 ;有条件循环命令……ENDW二.用宏程编程有什么好处?1.宏程序引入了变量和表达式,还有函数功能,具有实时动态计算能力,可以加工非圆曲线,如抛物线、椭圆、双曲线、三角函数曲线等;2.宏程序可以完成图形一样,尺寸不同的系列零件加工;3.宏程序可以完成工艺路径一样,位置不同的系列零件加工;4.宏程序具有一定决策能力,能根据条件选择性地执行某些部分;5.使用宏程序能极大地简化编程,精简程序。

适合于复杂零件加工的编程。

一.宏变量及宏常量1.宏变量先看一段简单的程序:G00 X25.0上面的程序在X轴作一个快速定位。

其中数据25.0是固定的,引入变量后可以写成:#1=25.0 ;#1是一个变量G00 X[#1] ;#1就是一个变量宏程序中,用“#”号后面紧跟1~4位数字表示一个变量,如#1,#50,#101,……。

变量有什么用呢?变量可以用来代替程序中的数据,如尺寸、刀补号、G指令编号……,变量的使用,给程序的设计带来了极大的灵活性。

使用变量前,变量必需带有正确的值。

如#1=25G01 X[#1] ;表示G01 X25#1=-10 ;运行过程中可以随时改变#1的值G01 X[#1] ;表示G01 X-10用变量不仅可以表示坐标,还可以表示G、M、F、D、H、M、X、Y、……等各种代码后的数字。

如:#2=3G[#2] X30 ;表示G03 X30例1 使用了变量的宏子程序。

数控车床华中系统用户宏程序编程

数控车床华中系统用户宏程序编程
INT(取整),SIGN(符号),SQRT(开方), EXP(指数) ❖ (5) 表达式:用运算符连接起来的常数,宏变量构 成表达式。
❖ 例如:175/SQRT[2] * COS[55 * PI/180 ];#3*6 GT
第五页,共30页。
3、赋值语句(yǔjù)
❖ 格式:宏变量(biànliàng)=常数或表达式 ❖ 把常数或表达式的值送给一个宏变量(biànliàng)
第一页,共30页。
华中(Huázhōng)数控用户宏程序
HNC-21/22T 、HNC-21M为用户配备了强有力的 类似于高级语言的宏程序功能,用户可以使用 变量进行算术运算(yùn suàn)、逻辑运算(yùn suàn)和函数的混合运算(yùn suàn),此外宏程 序还提供了循环语句、分支语句和子程序调用 语句,利于编制各种复杂的零件加工程序,减 少乃至免除手工编程时进行繁琐的数值计算, 以及精简程序量。
❖ #2=Z1
(给自变量#2赋值Z1:Z1是公式曲线自身坐标系下起始
点的坐标值)
❖ WHILE #2 GE Z2 (自变量#2的终止值Z2:Z2是公式曲线自身坐标系 下终止点的坐标值)
❖ #1=f(#2) (函数变换:确定因变量#1(X)相对于自变量#2(Z) 的宏表达式)
❖ #11=±#1+ΔX (计算(jìsuàn)工件坐标系下的X坐标值#11:编程中X为公式曲线自身坐标 原点相对于编程原点的X轴偏移量。)
# 1 5 S[ 1 Q # 2 # 2 / 1 R / 1 ] 0 T 0
❖ 如图2,Z坐标为自变量#2,则X坐标为因变量#1,那么
(nà me)X用Z表X 示为 :SQ [Z /R 0 .1 ]T
❖ 分别用宏变量#1、#2代替上式中的X、Z,即得因变量

华中数控车宏程序

华中数控车宏程序

华中数控宏程序一.什么是宏程序?什么是数控加工宏程序?简单地说,宏程序是一种具有计算能力和决策能力的数控程序。

宏程序具有如下些特点:1.使用了变量或表达式(计算能力),例如:(1)G01 X[3+5];有表达式3+5(2)G00 X4 F[#1];有变量#1(3)G01 Y[50*SIN[3]];有函数运算2.使用了程序流程控制(决策能力),例如:(1)IF #3 GE 9 ;有选择执行命令……ENDIF(2)WHILE #1 LT #4*5 ;有条件循环命令……ENDW二.用宏程编程有什么好处?1.宏程序引入了变量和表达式,还有函数功能,具有实时动态计算能力,可以加工非圆曲线,如抛物线、椭圆、双曲线、三角函数曲线等;2.宏程序可以完成图形一样,尺寸不同的系列零件加工;3.宏程序可以完成工艺路径一样,位置不同的系列零件加工;4.宏程序具有一定决策能力,能根据条件选择性地执行某些部分;5.使用宏程序能极大地简化编程,精简程序。

适合于复杂零件加工的编程。

一.宏变量及宏常量1.宏变量先看一段简单的程序:G00 X25。

0上面的程序在X轴作一个快速定位。

其中数据25。

0是固定的,引入变量后可以写成:#1=25。

0 ;#1是一个变量G00 X[#1] ;#1就是一个变量宏程序中,用“#”号后面紧跟1~4位数字表示一个变量,如#1,#50,#101,……。

变量有什么用呢?变量可以用来代替程序中的数据,如尺寸、刀补号、G指令编号……,变量的使用,给程序的设计带来了极大的灵活性。

使用变量前,变量必需带有正确的值。

如#1=25G01 X[#1] ;表示G01 X25#1=-10 ;运行过程中可以随时改变#1的值G01 X[#1] ;表示G01 X—10用变量不仅可以表示坐标,还可以表示G、M、F、D、H、M、X、Y、……等各种代码后的数字.如:#2=3G[#2] X30 ;表示G03 X30例1 使用了变量的宏子程序.%1000#50=20 ;先给变量赋值M98 P1001 ;然后调用子程序#50=350 ;重新赋值M98 P1001 ;再调用子程序M30%1001G91 G01 X[#50] ;同样一段程序,#50的值不同,X移动的距离就不同M992.局部变量编号#0~ #49的变量是局部变量。

华中数控车宏程序

华中数控车宏程序

华中数控车宏程序(总21页)本页仅作为文档封面,使用时可以删除This document is for reference only-rar21year.March华中数控宏程序一.什么是宏程序什么是数控加工宏程序简单地说,宏程序是一种具有计算能力和决策能力的数控程序。

宏程序具有如下些特点:1.使用了变量或表达式(计算能力),例如:(1)G01 X[3+5] ;有表达式3+5(2)G00 X4 F[#1] ;有变量#1(3)G01 Y[50*SIN[3]] ;有函数运算2.使用了程序流程控制(决策能力),例如:(1)IF #3 GE 9 ;有选择执行命令……ENDIF(2)WHILE #1 LT #4*5 ;有条件循环命令……ENDW二.用宏程编程有什么好处1.宏程序引入了变量和表达式,还有函数功能,具有实时动态计算能力,可以加工非圆曲线,如抛物线、椭圆、双曲线、三角函数曲线等;2.宏程序可以完成图形一样,尺寸不同的系列零件加工;3.宏程序可以完成工艺路径一样,位置不同的系列零件加工;4.宏程序具有一定决策能力,能根据条件选择性地执行某些部分;5.使用宏程序能极大地简化编程,精简程序。

适合于复杂零件加工的编程。

一.宏变量及宏常量1.宏变量先看一段简单的程序:G00上面的程序在X轴作一个快速定位。

其中数据是固定的,引入变量后可以写成:#1= ;#1是一个变量G00 X[#1] ;#1就是一个变量宏程序中,用“#”号后面紧跟1~4位数字表示一个变量,如#1,#50,#101,……。

变量有什么用呢变量可以用来代替程序中的数据,如尺寸、刀补号、G指令编号……,变量的使用,给程序的设计带来了极大的灵活性。

使用变量前,变量必需带有正确的值。

如#1=25G01 X[#1] ;表示G01 X25#1=-10 ;运行过程中可以随时改变#1的值G01 X[#1] ;表示G01 X-10用变量不仅可以表示坐标,还可以表示G、M、F、D、H、M、X、Y、……等各种代码后的数字。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

华中数控车宏程序 WEIHUA system office room 【WEIHUA 16H-WEIHUA WEIHUA8Q8-华中数控宏程序一.什么是宏程序?什么是数控加工宏程序?简单地说,宏程序是一种具有计算能力和决策能力的数控程序。

宏程序具有如下些特点:1.使用了变量或表达式(计算能力),例如:(1)G01 X[3+5] ;有表达式3+5(2)G00 X4 F[#1] ;有变量#1(3)G01 Y[50*SIN[3]] ;有函数运算2.使用了程序流程控制(决策能力),例如:(1)IF #3 GE 9 ;有选择执行命令……ENDIF(2)WHILE #1 LT #4*5 ;有条件循环命令……ENDW二.用宏程编程有什么好处?1.宏程序引入了变量和表达式,还有函数功能,具有实时动态计算能力,可以加工非圆曲线,如抛物线、椭圆、双曲线、三角函数曲线等;2.宏程序可以完成图形一样,尺寸不同的系列零件加工;3.宏程序可以完成工艺路径一样,位置不同的系列零件加工;4.宏程序具有一定决策能力,能根据条件选择性地执行某些部分;5.使用宏程序能极大地简化编程,精简程序。

适合于复杂零件加工的编程。

一.宏变量及宏常量1.宏变量先看一段简单的程序:G00上面的程序在X轴作一个快速定位。

其中数据是固定的,引入变量后可以写成:#1= ;#1是一个变量G00 X[#1] ;#1就是一个变量宏程序中,用“#”号后面紧跟1~4位数字表示一个变量,如#1,#50,#101,……。

变量有什么用呢?变量可以用来代替程序中的数据,如尺寸、刀补号、G指令编号……,变量的使用,给程序的设计带来了极大的灵活性。

使用变量前,变量必需带有正确的值。

如#1=25G01 X[#1] ;表示G01 X25#1=-10 ;运行过程中可以随时改变#1的值G01 X[#1] ;表示G01 X-10用变量不仅可以表示坐标,还可以表示G、M、F、D、H、M、X、Y、……等各种代码后的数字。

如:#2=3G[#2] X30 ;表示G03 X30例1 使用了变量的宏子程序。

%1000#50=20 ;先给变量赋值M98 P1001 ;然后调用子程序#50=350 ;重新赋值M98 P1001 ;再调用子程序M30%1001G91 G01 X[#50] ;同样一段程序,#50的值不同,X移动的距离就不同M992.局部变量编号#0~ #49的变量是局部变量。

局部变量的作用范围是当前程序(在同一个程序号内)。

如果在主程序或不同子程序里,出现了相同名称(编号)的变量,它们不会相互干扰,值也可以不同。

例%100N10 #3=30 ;主程序中#3为30M98 P101 ;进入子程序后#3不受影响#4=#3 ;#3仍为30,所以#4=30M30%101#4=#3 ;这里的#3不是主程序中的#3,所以#3=0(没定义),则:#4=0#3=18 ;这里使#3的值为18,不会影响主程序中的#3M993.全局变量编号#50~ #199的变量是全局变量(注:其中#100~#199也是刀补变量)。

全局变量的作用范围是整个零件程序。

不管是主程序还是子程序,只要名称(编号)相同就是同一个变量,带有相同的值,在某个地方修改它的值,所有其它地方都受影响。

例%100N10 #50=30 ;先使#50为30M98 P101 ;进入子程序#4=#50 ;#50变为18,所以#4=18M30%101#4=#50 ; #50的值在子程序里也有效,所以#4=30#50=18 ;这里使#50=18,然后返回M99为什么要把变量分为局部变量和全局变量?如果只有全局变量,由变量名不能重复,就可能造成变量名不够用;全局变量在任何地方都可以改变它的值,这是它的优点,也是它的缺点。

说是优点,是因为参数传递很方便;说是缺点,是因为当一个程序较复杂的时候,一不小心就可能在某个地用了相同的变量名或者改变了它的值,造成程序混乱。

局部变量的使用,解决了同名变量冲突的问题,编写子程序时,不需要考虑其它地方是否用过某个变量名。

什么时候用全局变量什么时候用局部变量在一般情况下,你应优先考虑选用局部变量。

局部变量在不同的子程序里,可以重复使用,不会互相干扰。

如果一个数据在主程序和子程序里都要用到,就要考虑用全局变量。

用全局变量来保存数据,可以在不同子程序间传递、共享、以及反复利用。

刀补变量(#100~#199)。

这些变量里存放的数据可以作为刀具半径或长度补偿值来使用。

如#100=8G41 D100 ;D100就是指加载#100的值8作为刀补半径。

注意:上面的程序中,如果把D100写成了D[#100],则相当于D8,即调用8号刀补,而不是补偿量为8。

4.系统变量#300以上的变量是系统变量。

系统变量是具有特殊意义的变量,它们是数控系统内部定义好了的,你不可以改变它们的用途。

系统变量是全局变量,使用时可以直接调用。

#0~#599是可读写的,#600以上的变量是只读的,不能直接修改。

其中,#300 ~#599是子程序局部变量缓存区。

这些变量在一般情况下,不用关心它的存在,也不推荐你去使用它们。

要注意同一个子程序,被调用的层级不同时,对应的系统变量也是不同的。

#600~#899是与刀具相关系统变量。

#1000~#1039坐标相关系统变量。

#1040~#1143参考点相关系统变量。

#1144~#1194系统状态相关系统变量。

(详见:2.华中数控系统系统变量一览)有时候需要判断系统的某个状态,以便程序作相应的处理,就要用到系统变量。

5.常量PI 表示圆周率,TRUE 条件成立(真), FALSE 条件不成立(假)。

二.运算符与表达式1.算术运算符加 + ,减- ,乘* ,除 /2.条件运算符条件运算符用在程序流程控制IF和WHILE的条件表达式中,作为判断两个表达式大小关系的连接符。

注意:宏程序条件运算符与计算机编程语言的条件运算符表达习惯不同。

3.逻辑运算符在IF或WHILE语句中,如果有多个条件,用逻辑运算符来连接多个条件。

AND (且) 多个条件同时成立才成立OR (或) 多个条件只要有一个成立即可NOT (非) 取反(如果不是)例#1 LT 50 AND #1GT 20 ——表示:[#1<50]且[#1>20]#3 EQ 8 OR #4 LE 10 ——表示:[#3=8]或者[#4≤10]有多个逻辑运算符时,可以用方括号来表示结合顺序,如:NOT[#1 LT 50 AND #1GT 20]——表示:如果不是“#1<50 且#1>20”更复杂的例子,如:[#1 LT 50 ] AND [#2GT 20 OR #3 EQ 8] AND [ #4 LE 10]4.函数正弦:SIN[a] 余弦:COS[a] 正切:TAN[a] 注:a为角度,单位是弧度值。

反正切:ATAN[a] (返回:度,范围:-90~+90)反正切:ATAN2[a]/[b] (返回:度,范围:-180~+180) (注:华中数控暂不支持)绝对值:ABS[a],表示|a|取整:INT[a],采用去尾取整,非“四舍五入”取符号:SIGN[a],a为正数返回1,0返回0,负数返回-1开平方:SQRT[a] ,表示√a指数:EXP[a],表示e a5.表达式与括号包含运算符或函数的算式就是表达式。

表达式里用方括号来表示运算顺序。

宏程序中不用圆括号,因圆括号是注释符。

例如175/SQRT[2] * COS[55 * PI/180 ]#3*6 GT 146.运算符的优先级方括号→函数→乘除→加减→条件→逻辑技巧:常用方括号来控制运算顺序,更容易阅读和理解。

7.赋值号 =把常数或表达式的值送给一个宏变量称为赋值,格式如下:宏变量= 常数或表达式例如#2 = 175/SQRT[2] * COS[55 * PI/180 ]#3 =#50 = #3+12特别注意,赋值号后面的表达式里可以包含变量自身,如:#1 = #1+4 ;此式表示把#1的值与4相加,结果赋给#1。

这不是数学中的方程或等式,如果#1的值是2,执行#1 = #1+4后,#1的值变为6。

三.程序流程控制程序流程控制形式有许多种,都是通过判断某个“条件”是否成立来决定程序走向的。

所谓“条件”,通常是对变量或变量表达式的值进行大小判断的式子,称为“条件表达式”。

华中数控系统有两种流程控制命令:IF——ENDIF,WHILE——ENDW。

1.条件分支IF需要选择性地执行程序,就要用IF命令。

格式1:(条件成立则执行)IF条件表达式条件成立执行的语句组ENDIF功能:条件成立执行IF与ENDIF之间的程序,不成立就跳过。

其中IF、ENDIF称为关键词,不区分大小写。

IF为开始标识,ENDIF为结束标识。

IF语句的执行流程如图1所示。

例:IF #1 EQ 10 ;如果#1=10M99 ;成立则,执行此句(子程返回)ENDIF ;条件不成立,跳到此句后面例:IF #1 LT 10 AND #1 GT 0;如果#1<10 且 #1>0G01 x20 ;成立则执行Y15ENDIF ;条件不成立,跳到此句后面格式2:(二选一,选择执行)形式:IF条件表达式条件成立执行的语句组ELSE条件不成立执行的语句组ENDIF例:IF #51 LT 20G91G01 X10F250ELSEG91G01X35F200ENDIF功能:条件成立执行IF与ELSE之间的程序,不成立就执行ELSE与ENDIF之间的程序。

IF语句的执行流程如图1所示。

本资料由百万课件网收条件循环WHILE格式:WHILE条件表达式条件成立循环执行的语句ENDW功能:条件成立执行WHILE与ENDW之间的程序,然后返回到WHILE再次判断条件,直到条件不成立才跳到ENDW后面。

WHILE语句的执行流程如图 1 所示。

例:#2=30WHILE #2 GT 0 ;如果#2>0G91G01X10 ;成立就执行#2=#2-3 ;修改变量,ENDW ;返回G90 G00 z50 ;不成立跳到这里执行WHILE中必须有“修改条件变量”的语句,使得其循环若干次后,条件变为“不成立”而退出循环,不然就成为死循环。

图1 流程控制四.子程序及参数递传1.普通子程序普通子程序指没有宏的子程序,程序中各种加工的数据是固定的,子程序编好后,子程序的工作流程就固定了,程序内部的数据不能在调用时“动态”地改变,只能通过“镜像”、“旋转”、“缩放”、“平移”来有限的改变子程序的用途。

例%4001G01 X80 F100 M99子程序中数据固定,普通子程序的效能有限。

2.宏子程序宏子程序可以包含变量,不但可以反复调用简化代码,而且通过改变变量的值就能实现加工数据的灵活变化或改变程序的流程,实现复杂的加工过程处理。

相关文档
最新文档