法兰克用户宏程序资料课件_第1页
法兰克用户宏程序资料课件_第2页
法兰克用户宏程序资料课件_第3页
法兰克用户宏程序资料课件_第4页
法兰克用户宏程序资料课件_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

用户宏程序

虽然子程序对编制相同加工操作的程序非常有用,但用户宏程序由于允许使用变量、算术和逻辑运算及条件转移,使得编制相同加工操作的程序更方便,更容易。可将相同加工操作编为通用程序,如型腔加工宏程序和固定加工循环宏程序。使用时,加工程序可用一条简单指令调出用户宏程序,和调用子程序完全一样。1法兰克用户宏程序资料(最多999次)2法兰克用户宏程序资料3法兰克用户宏程序资料4法兰克用户宏程序资料一、变量1、变量使用用户宏程序时,数值可以直接指定或用变量指定。当用变量时,变量值可用程序或用MDI面板上的操作改变。

#1=#2+100;G01X#1F300;2、变量的表示计算机允许使用变量名,用户宏程序不行。变量用变量符号(#)和后面的变量号指定。表达式可以用于指定变量号。此时,表达式必须封闭在括号中。例如:#1#[#1+#2-12]5法兰克用户宏程序资料3、变量的类型6法兰克用户宏程序资料4、变量值得范围局部变量和公共变量可以有0值或下面范围中的值:-1047至-10-29

或10-29至10475、变量的引用为在程序中使用变量值,指定后跟变量号的地址。当用表达式指定变量时,把表达式放在括号中。例如:G01X#1F#[#2+#3]7法兰克用户宏程序资料

被引用变量的值根据地址的最小设定单位自动地舍入。例如:G00X#1,以1/1000mm的单位执行时,CNC把12.3456赋值给变量#1,实际指令值为G00X12.346;。改变引用变量的值的符号,要把负号(一)放在#的前面。例如:G00X-#1;当引用未定义的变量时,变量及地址字都被忽略。例如:当变量#1的值是0,并且变量#2的值是空时,G00X#1Y#2的执行结果为:G00X0;8法兰克用户宏程序资料6、未定义的变量变量值未定义时,这样的变量成为“空”变量。变量#0总是空变量。它不能写,只能读。(1)引用9法兰克用户宏程序资料(2)运算10法兰克用户宏程序资料(3)条件表达式11法兰克用户宏程序资料7、限制程序号、顺序号和程序跳转号不能使用变量例如:O#1;N#2G00X100.0/#3Y200.012法兰克用户宏程序资料二、系统变量1、刀具补偿值13法兰克用户宏程序资料2、时间信息14法兰克用户宏程序资料3、自动运行控制可以改变自动运行的控制状态15法兰克用户宏程序资料●当电源接通时,该变量的值为0。●当单程序段停止无效时,即使单程序段开关设为ON,也不执行单程序段停止。●当不指定等待辅助功能(M,S和T功能)完成时,在辅助功能完成之前,程序执行到下列程序段。而且分配完成信号DEN不输出。16法兰克用户宏程序资料17法兰克用户宏程序资料●当电源接通时,该变量的值为0。●当进给暂停无效时:(1)当进给暂停按钮被按下时,机床在单段停止方式停止。但是。当用变量#3003使单程序段方式无效时,单程序段停止不执行。(2)当进给暂停按钮压下又松开时,进给暂停灯亮,但是,机床不停止;程序继续执行,并且机床停在进给暂停有效的第一个程序段。●当进给速度倍率无效时,总是100%的倍率,而不管机床操作面板上的进给速度倍率开关的设置。●当准确停止检测无效时,即使那些不执行切削的程序段也不进行准确停止检测(位置检测)。18法兰克用户宏程序资料攻丝循环中使用变量3004的例子N5N719法兰克用户宏程序资料4、已加工的零件数20法兰克用户宏程序资料5、当前位置(只读)21法兰克用户宏程序资料●图中第1位代表轴号(从1到4)。●变量#5081—#5084存储的刀具长度偏置值是当前的执行值,不是后面的程序段的处理值。●在G31(跳转功能)程序段中跳转信号接通时的刀具位置贮存在变量#5061到#5068中。当G31程序段中的跳转信号不接通时,这些变量中贮存指定程序段的终点值。●移动期间不能读是指由于缓冲(预读)功能的原因,不能读期望值.22法兰克用户宏程序资料6、工件坐标系补偿值(工件零点偏移值)23法兰克用户宏程序资料24法兰克用户宏程序资料三、算术和逻辑运算

下列的运算可以在变量中执行。运算符右边的表达式可包含常量和/或由函数或运算符组成的变量。表达式中的变量#j和#k可以用常数赋值。左边的变量也可以用表达式赋值。1、(定义)赋值:#i=#j;2、加法:#i=#j+#k3、减法:#i=#j-#k4、乘法:#i=#j*#k5、除法:#i=#j/#k25法兰克用户宏程序资料6、正弦:#i=SIN[#j];7、反正弦:#i=ASIN[#j];8、余弦:#i=COS[#j];角度以度指定9、反余弦:#i=ACOS[#j];90°30′表示为10、正切:#i=TAN[#j];90.5度11、反正切:#i=ATAN[#j]/[#K];12、平方根:#i=SQRT[#j];13、绝对值:#i=ABS[#j];14、舍入:#i=ROUND[#j];15、上取整:#i=FUP[#j];16、下取整:#i=FIX[#j];17、自然对数:#i=LN[#j];y=lnx18、指数函数:#i=EXP[#j];y=ex26法兰克用户宏程序资料19、或:#i=#jOR#k;20、异或:#i=#jXOR#k;按位执行21、与:#i=#jAND#k;22、从BCD转为BIN#i=BIN[#j];23、从BIN转为BCD#i=BCD[#j];注:①ARCSIN#i=ASIN[#j]取值范围当No.6004.0=0时:270°~90°No.6004.0=1时:-90°~90°②ARCCOS#I=ACOS[#j]取值范围

180°~0°27法兰克用户宏程序资料π/20-π/21-1π3π/2π/20-111-10π/2π28法兰克用户宏程序资料③ARCTAN#i=ATAN[#j]/[#K];取值范围当No.6004.0=0时:0°~360°No.6004.0=1时:-180°~180°3π/2π/22ππ0π/2-π/2π-π0第一象限第二象限第四象限第一象限第二象限第三象限第三象限第四象限0~-π0~π0~2π29法兰克用户宏程序资料④ROUND函数●在逻辑运算指令IF、WHILE中,ROUND函数在第一个小数位四舍五入。例如#2=1.2345;#1=ROUND[#2];变量1的值是1.0●在NC语句地址中,ROUND函数根据地值得最小设定单位指定四舍五入。例如#1=1.2345;#2=2.3456;G00G91X-#1;G01X-#2F300;G00X[#1+#2];1.2345+2.3456=3.5801=3.580不返回到初始位置或G00X-[ROUND[#1]+ROUND[#2]]1.235+2.346=3.581刀具返回到初始位置30法兰克用户宏程序资料⑤上取整和下取整CNC处理数值运算时,若操作后产生的整数绝对值大于原数的绝对值时为上取整,小于原数的绝对值时为下取整。设:#1=1.2,#2=-1.2#3=FUP[#1];则2.0赋给#3#3=FIX[#1];则1.0赋给#3#3=FUP[#2];则-2.0赋给#3#3=FIX[#2];则-1.0赋给#331法兰克用户宏程序资料⑥运算次序函数→乘、除(*、/、AND)→加、减(+、-、OR、XOR)⑦括号嵌套(方括号[],圆括号用于说明)括号用于改变运算次序,可以使用5级。32法兰克用户宏程序资料四、宏程序语句和NC下面的程序段为宏程序语句:●包含算术或逻辑运算(=)的程序段。●包含控制语句(例如,GOTO,DO,END)的程序段。●包含宏程序调用指令(例如,用G65,G66,G67或其它G代码,M代码调用宏程序)的程序段。除了宏程序语句以外的任何程序段都为

NC语句。33法兰克用户宏程序资料说明●与NC语句的不同①即使置于单程序段运行方式,机床也不停止。但是,当参数No.6000.5SBM设定为1时,在单程序段方式中,机床停止。②在刀具半径补偿方式中宏程序语句段不做为不移动程序段处理。34法兰克用户宏程序资料●

与宏程序语句有相同性质的NC语句①含有子程序调用指令(例如,用M98或其它M代码或用T代码调用子程序)句②不包含O.N.P或L以外的指令地址的程序段其性质与宏程序语句相同。35法兰克用户宏程序资料五、转移和循环

使用GOTO语句和IF语句可以改变控制的流向。有三中转移和循环可供使用。

GOTO无条件转移

IF条件转移

WHILE当型循环1、无条件转移

GOTOn;n为顺序例如:GOTO1;GOTO#10;36法兰克用户宏程序资料2、条件转移

IF[<条件表达式>]GOTOn

例如:IF[#1GT10]GOTO2

程序

N2G00G91X10.0IF[<条件表达式>]THEN<表达式>

例如:IF[#1EQ#2]THEN#3=0

运算符:EQ等于(=)NE不等于(≠)GT大于(>)GE大于等于(≥)LT小于(<)LE小于等于(≤)

条件不满足条件满足37法兰克用户宏程序资料例:求1~10的总和。

O9000;#1=0;

#2=1;N1IF[#2GT10]GOTO2;#1=#1+#2;#2=#2+1;GOTO1;N2M30;38法兰克用户宏程序资料3、循环

WHILE[<条件表达式>]DOm;程序;

ENDm;

程序;说明:①m=1,2,3,可以多次使用。②最多嵌套三层。③省略WHILE,则产生从DO到END的无限循环。④WHILE比GOTO处理快。条件满足条件不满足39法兰克用户宏程序资料标号可以多次使用:WHILE[…]DO1;

程序;END1;﹕WHILE[…]DO1;

程序;END1;可以嵌套3层:WHILE[…]DO1;﹕WHILE[…]DO2;﹕WHILE[…]DO3;

程序;END3;﹕END2;﹕END1;可以跳到循环外边:WHILE[…]DO1;IF[…]GOTOn;END1;N140法兰克用户宏程序资料DO的范围不能交叉:WHILE[…]DO1;

程序;WHILE[…]DO2;﹕END1;

程序;END2;转移不能进入循环区:IF[…]GOTOn;﹕WHILE[…]DO1;N1…;END1;41法兰克用户宏程序资料六、宏程序调用宏程序调用方法:①非模态调用(G65)②模态调用(G66、G67)③用G代码调用宏程序④用M代码调用宏程序⑤用M代码调用子程序⑥用T代码调用子程序42法兰克用户宏程序资料1、非模态调用(G65)格式:G65PpLl<自变量指定>

其中:p:要调用的程序号

l:重复次数(默认值为1)自变量:数据传递到宏程序,其值被赋值到相应的局部变量,有两种指定形式。43法兰克用户宏程序资料

地址变量号

地址变量号

地址变量号ABCDEFH#1#2#3#7#8#9#10IJKMQRS#4#5#6#13#17#18#19TUVWXYZ#20#21#22#23#24#25#26自变量指定Ⅰ注:每个字母只指定一次,可以不按顺序,但I、J、K需按顺序指定。44法兰克用户宏程序资料

地址变量号

地址变量号

地址变量号ABCI1J1K1I2J2K2I3J3#1#2#3#4#5#6#7#8#9#10#11K3I4J4K4I5J5K5I6J6K6I7#12#13#14#15#16#17#18#19#20#21#22J7K7I8J8K8I9J9K9I10J10K10#23#24#25#26#27#28#29#30#31#32#33自变量指定Ⅱ45法兰克用户宏程序资料

自变量指定Ⅰ、Ⅱ混合。CNC内部能够自动识别自变量指定Ⅰ、Ⅱ,后指定的有效。例如:G65A1.0B2.0I-3.0I4.0D5.0P1000;

则#1=1.0#2=2.0#3#4=-3.0#5=#6#7=4.0#7=5.046法兰克用户宏程序资料调用嵌套和局部变量的级别:可以嵌套4级。主程序局部变量(0级)1﹕

#1#33(1级)2﹕

#1#33(2级)3﹕

#1#33(3级)4﹕

#1#33(4级)5﹕

#1#33O001;﹕#1=1;G65P2A2;﹕﹕M30;O002;﹕#1=2;G65P3A3;﹕﹕M99;O003;﹕#1=3;G65P4A4;﹕﹕M99;O004;﹕#1=4;G65P5A5;﹕﹕M99;O005;﹕#1=5;﹕﹕M99;(0级)宏程序(1级)宏程序(2级)宏程序(31级)宏程序(4级)47法兰克用户宏程序资料例:如图所示,编制一个宏程序加工圆上的孔,孔深为Z。圆周的半径为I,起始角为A,间隔为B,钻孔数为H,圆的中心是(X,Y)。(X,Y)1000BBBB50YX48法兰克用户宏程序资料调用格式:

G65P9100XxYyZzRrIiAaBbHh;X:圆心的X坐标(#24)Y:圆心的Y坐标(#25)Z:孔深(#26)R:快速趋近点坐标(#18)F:切削进给速度(#9)I:圆半径(#4)A:第一孔的角度(#1)B:增量角(指定负值时为顾时针)(#2)H:孔数(#11)49法兰克用户宏程序资料主程序:O002;G90G92X0Y0Z100;G65P9100X100Y50R30Z-50F500I100A0B45H5;M30;50法兰克用户宏程序资料宏程序:

O9100;

#3=#4003;储存03组G代码

G81Z#26R#18F#9K0;钻孔循环,也可以使用L0IF[#3EQ90]GOTO1;在G90方式转移到N1#24=#5001+#24;计算圆心的X坐标

#25=#5002+#25;计算圆心的Y坐标

N1WHILE[#11GT0]DO1;直到剩余孔数为0#5=#24+#4COS[#1];计算X轴上的孔位

#6=#25+#4SIN[#1];计算Y轴上的孔位

G90X#5Y#6;移动到目标位置之后执行钻孔

#1=#1+#2;更新角度

#11=#11-1;孔数-1END1;

G#3G80;返回原始状态的G代码

M99;51法兰克用户宏程序资料2、模态调用(G66)格式:G66PpLl<自变量指定>

其中:p:要调用的程序号

l:重复次数(默认值为1)自变量:数据传递到宏程序

G67取消模态调用。注:嵌套可以4级;在G66程序段中,不能调用多个宏程序在只有辅助功能无移动指令的程序段中不能调用宏程序;局部变量只能在G66程序段中指定,每次执行模态调用时,不再指定局部变量。52法兰克用户宏程序资料O0001;﹕G66P9100L2A1.0B2.0;G00G90X100.0;Y200.0X150Y300;G67;﹕M30;O9100;﹕G00Z-#1;G01Z-#2F300;﹕﹕M99;53法兰克用户宏程序资料例:用宏程序编制G81固定循环的操作第1步第2步第3步第4步Z=0R点ZR初始平面I点54法兰克用户宏程序资料G65P9110XxYyZzRrFfL1X:孔的X坐标(由绝对值指定)(#24)Y:孔的Y坐标(由绝对值指定)(#25)Z:Z点坐标(由绝对值指定)(#26)R:R点坐标(由绝对值指定)(#18)F:切削进给速度(#9)L:重复次数55法兰克用户宏程序资料主程序:O001;G92X0Y0Z50;G00G90X100Y50;G66P9110Z-20R1F500;G90X20Y20;X50;Y50;X0Y80;G67;M30;56法兰克用户宏程序资料宏程序:O9110;#1=#4001;储存G00/G01#2=#4003;储存G90/G91#3=#4019;储存切削进给速度#5=#5003;储存钻孔开始的Z坐标G00G90Z#18;定位在R点G01Z#26F#9;切削进给到Z点IF[4010EQ98]GOTO1;返回到I点G00#18;定位在R点GOTO2;N1G00Z#5;定位在I点N2G#1G#2G#3;恢复模态信息。M99;57法兰克用户宏程序资料3、用G代码调用宏程序在参数(No.6050到No.6059)中设置调用用户宏程序(O9010到O9019)的G代码号(从1到9999),调用方法同G65.

注:不能嵌套!58法兰克用户宏程序资料程序号参数号O9010O9011O9012O9013O9014O9015O9016O9017O9018O90196050605160526053605460556056605760586059参数号和程序号之间的对应关系:59法兰克用户宏程序资料O0001;﹕G81X10Y20Z-10﹕M30;O9010;﹕﹕M99;参数No.6050=8160法兰克用户宏程序资料4、用M代码调用宏程序在参数(No.6080到No.6089)中设置调用用户宏程序(O9021到O9029)的M代码号(从1到9999),调用方法同G65.

注:不能嵌套!61法兰克用户宏程序资料程序号参数号O9020O9021O9022O9023O9024O9025O9026O9027O9028O90296080608160826083608460856086608760886089参数号和程序号之间的对应关系:62法兰克用户宏程序资料O0001;﹕G50A1B2;﹕M30;O9020;﹕﹕M99;参数No.6080=5063法兰克用户宏程序资料5、用M代码调用子程序在参数(No.6071到No.6079)中设置调用用户宏程序(O9001到O9009)的M代码号(从1到9999),调用方法同M98.

64法兰克用户宏程序资料程序号参数号O9001O9002O9003O9004O9005O9006O9007O9008O9009607160726073607460756076607760786079参数号和程序号之间的对应关系:65法兰克用户宏程序资料O0001;﹕M03;﹕M30;O9001;﹕﹕M99;参数No.6071=0366法兰克用户宏程序资料6、用T代码调用子程序设置参数No.6001的第5位TCS=1,当加工程序中指定T代码,可以调用宏程序O9000。在加工程序中指定的T代码赋值到公共变量#149中。67法兰克用户宏程序资料O0001;﹕T23;﹕M30;O9000;﹕﹕M99;参数No.6001的5位=1#149=2368法兰克用户宏程序资料69法兰克用户宏程序资料使用以下保持型变量:

#502:半径r;

#503:起始角度α;

#504:孔数n,当n>0时,按逆时针方向加工,当n<0时,按顺时针方向加工;

#505:孔底Z坐标值;

#506:R平面Z坐标值;

#507:F进给量。70法兰克用户宏程序资料使用以下变量进行操作运算:

#100:表示第i步钻孔的记数器;

#101:记数器的最终值(为n的绝对值)#102:第i个孔的角度位置的值;

#103:第i个孔的X坐标值;

#104:第i个孔的Y坐标值;71法兰克用户宏程序资料O9010

N110G65H01P#100Q0

N120G65H22P#101Q#504

N130G65H04P#102Q#100R360

N140G65H05P#102Q#102R#504

N150G65H02P#102Q#503R#102

N160G65H32P#102Q#502R#102

N170G65H31P#104Q#502R#102

N180G90G00X#103Y#104)

N190G00Z#506

N200G01Z#505F#507

N210G00Z#506

N

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论