所有宏程序编程代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
各种类型宏程序
A型宏程序
G65H m宏指令表
宏程序的运算与控制指令(G65)
指令格式:G65 Hm P#i Q#j R#k 条件转移的指令格式:G65HmPmQ#jR#k
#i :储存运算结果的变量号 Hm:条件转移指令
#j :进行运算的变量号1,可以是常数 Pm:转移的地址
#k :进行运算的变量号2,也可是常数 Q#j R#k:转移的条件
B型宏程序(FANUC 0i Mate-MC系统)
运算指令
1、定义和转换
#i=#j
2、加法运算
#i=#j+#k 和
#i=#j-#k 差
#i=#jOR#k 或(对32位的每一位)
#i=#jXOR#k 异或(对32位的每一位)
3、乘法运算
#i=#j×#k 积
#i=#j÷#k 商
#i=#jAND#k 与(对32位的每一位)
4、函数
#i=SIN[#j] 正弦(度)
#i=COS[#j] 余弦(度)
#i=TAN[#j] 正切(度)
#i=ATAN[#j]/[#k] 反正切(度)
#i=SQRT[#j] 平方根
#i=ABS[#j] 绝对值
#i=BIN[#j] 十一二进制转换
#i=BCD[#j] 二一十进制转换
#i=ROUND[#j] 四舍五入圆整
#i=FIX[#j] 舍去小数部分
#i=FUP[#j] 小数部分进位到整数
5、控制指令
(1)无条件转移格式:GOTOn
(2)条件转移格式:IF[(条件表达式)]GOTOn
(条件表达式)有如下几种
#jEQ#k 即#j=#k
#jNE#k #j≠#k`
#jGT#k #j>#k
#jLT#k #j<#k
#jGE#k #j≥#k
#jLE#k #j≤#k
例:IF[#4EQ#0]GOTO1
N10G90```````````` WHILE[<条件表达式>]DOm
`` ``
`` ``
`` ``
IF[#ⅹEQ#ⅹ]GOTO1 ENDm (m=1、2、3…)
(上、下对应,条件满足执行)
编程中的一些辅助功能
坐标旋转(G68、G69)指令
G68 :旋转功能的建立G69 :旋转功能的取消
指令的格式
G17
G18 G68X Y R [X、Y、Z(I、J、K)以G54定旋转中心的坐标,R为旋转角度]
G19
G17(G18或G19)平面的选择,在其上包括旋转的形状
X Y :与G17、G18、G19相应的X、Y和Z中的两个轴的绝对指令,在G68后面指定旋转中心,当不指令时,则G68程序段的刀具位置被认为旋
转中心。
R :角度位移正值表示逆时针旋转,回转角度根据指定的G代码(G90或G91)确定绝对值还是增量值。
刀具补偿:要坐标旋转之后,才执行所有的补偿操作
上受参考点有关的G27、G28、G29、G30等,与坐标有关的G52到G59、G92等限制,不能指定,如果需要,先取消旋转方式以后才能指令
比例缩放(G50、G51)指令(G50取消G51)
指令格式:
(1)沿所有轴以相同的比例放大或缩小
格式:指令意义:
G51X Y Z P :缩放开始X Y Z :比例缩放中心坐标值
的绝对值
`` 缩放有效
`` (缩放方式)P :缩放比例
G50 缩放取消
(2)沿各轴以不同的比例放大或缩小
格式:指令意义:
G51X Y Z I J K
(缩放开始,其后相同)X Y Z :同上
I J K :X、Y和Z各轴对应
的缩放比例
注:须在单独的程序段内指定G51,在完成放大或缩放之后,指定G50以取消缩放方式
另:[G5.1Q1(G51刀路优化的建立)Q0(取消G5.1)
注:它可以以开始程序段或其后单独程序段建立
A、(螺旋加工孔)
Oxxxx
G65H01P#100Q0.;(Z轴的初始值)
G65H01P#101Q20.;(孔的半径)
G65H01P#102Q10.;(加工孔的高度)
G65H01P#103Q1.;(Z轴每次的增量)
G90G54G00G40X20.Y20.Z100.;(以绝对坐标值定位到孔的中心)M03S2000;
Z0;
G91G41G01X#101Y0D01F1000;(以增量值建立刀补)
N10G65H02P#100Q#100R#103;
G90G03Z-#100I-#101F1200;
G65H84P10Q#100R#102;
G03I-#101F600;
G00Z20;
G40;
M05;
M30;
B、(螺旋加工孔)
Oxxxx
#1=0;
#2=20;
#3=10;
#4=1;
G90G54G00X20Y20Z100;
M03S2000;
Z0;
G91G41G01X#2Y0D01F1000;
WHILE[#1LT#3]DO1;
#1=#1+#4;
G90G03Z-#1I-#2F1000;
END1;
G03I-#2F800;
G00Z100;
G40;
M05;
M30;
(意义与上相同)