LT就是小于的意思,GE是大于等于的意思。
宏程序的代号称为宏指令,宏程序的特点:宏程序可使用变量,可用变量执行相应 *** 作;实际变量值可由宏程序指令赋给变量。
数控宏程序编程,是用变量的方式进行数控编程的方法。
数控宏程序分为A类和B类宏程序,其中A类宏程序比较老,编写起来也比较费时费力,B类宏程序类似于C语言的编程,编写起来也很方便。
数据不会丢失,出现这个现象是因为你电脑上的excel的宏安全级别比较高,这样可以防止一些有害的宏自动运行,如果你确定那个工作簿的宏安全,可以
按照---工具---宏---宏安全性---把级别设为
低
就可以运行了
将打开文档所在的路径添加到Excel的受信任位置。
Excel选项——信任中心——信任中心设置——受信任位置——添加新位置
同时勾选子文件夹即可,最好把电脑的所有盘都勾选上,就不会出现此类问题了。
%@MACRO;T0808M3S1000;G0X82Z5;#1:=76;
N10G0X#1;
G1Z-40F02;X85;G0Z5;
#1:=#1-4;
IF(#1>40)THEN GOTO10;(也可以在同一行。)
ENDIF;
G0X100Z100;
M30;
1WHILE语句格式:
WHILE(#1>40) DO(这里不可以输“;”字符。)
:(程序循环内容)
:(程序循环内容)
END_WHILE;(WHILE语句结束)
2IF语句格式:
IF(#1>40)THEN (这里不可以输“;”字符。与“GOTO10不在同一行。)
GOTO10;
END_IF;(每次IF语句下一行都要加“END_IF”)
(机器 *** 作面板上找不到 END_IF 中间的“_”符号,可以不输。)
数控系统为用户配备了强有力的类似于高级语言的宏程序功能,用户可以使用变量进行算术运算、逻辑运算和函数的混合运算,此外宏程序还提供了循环语句、分支语句和子程序调用语句,利于编制各种复杂的零件加工程序,减少乃至免除手工编程时进行繁琐的数值计算,以及精简程序量。
宏程序指令适合抛物线、椭圆、双曲线等没有插补指令的曲线编程;适合图形一样,只是尺寸不同的系列零件的编程;适合工艺路径一样,只是位置参数不同的系列零件的编程。较大地简化编程;扩展应用范围。
宏程序流程控制和循环语
数控车床宏程序与普通程序有什么区别呢?第一个就是流程控制
普通程序在执行的时候,它总是从第一段开始依次执行到最后一段程序结束,中途不改变执行顺序。而宏程序可以改变程序的执行顺序。可以根据加工需要,让某段程序重复执行多少次等。要学会程序的执行顺序控制,必须学会以下两种语句:
“IF……GOTO"
WHILE……DO”。
先看“IF……GOTO
“IF”在单词中表示“如果”的意思;“GOTO”则表示“去哪里”或者“到哪里”。那么在两个单词中的省略号,它表示条件!
条件只有两种可能:成立、不成立。
我们可以用这个语句造句,“如果明天开学了,我就要去学校”。在此语句中,要表达的意思非常明确,当条件是“开学”的时候,“我才会去学校”。如果“不开学”,那我就不会去。在这里,“开学”与“不开学”就表示条件的成立与不成立。成立就执行,不成立就不执行!
但我们会发现一个问题:“IF[条件]GOTO”语句中,“GOTO”后面是要跟着目的地的。比如造句时候,目的地是“学校”,那在程序中,该怎么表达目的地呢?其实很简单,目的地就是——行号!在数控程序中,能够表示目标地的也只有行号了。举个例子
#1=2
N1#1=#1-1
IF[#1 GE 0] GOTO1
(GE 表示大于等于)
( GOTO1 表示跳到第一行,这里不用写 N )
G0 X100
Z100
M30
程序对#1 这个变量进行赋值,它的结果是 2。到了下一行出现了N1。都知道N在数控程序中表示程序段,后面跟的数字表示第几行(其实行号可以自己定义,在本例程序中,把“#1=#1-1”定义为第一行)。当程序执行到 N1 行的时候,系统发现#1 这个变量进行了自减运算。但系统不知道自减的目的,于是继续向下执行,来到了“IF [#I GE 0] GOTO1”这一行。
这时候系统才明白,原来#1 自减的目的是用来判断的。当执行到这行的时候,#1 的结果已经不是 2,而是 1 了。然后系统会把#1 这个结果与 0 进行比较,它发现#1 当前的值(1)是大于等于 0 的。由于该语句的意思是,如果#1 的结果大于或等于 0,就跳转到第一行,所以系统会跳转到第一行执行(N1 处),
不会执行下面的“GO X100”等语句。
然后程序跳到了 N1 处,又自减了一次。这时候#1 的结果是 0。而不是1 了,运算过后又来到了“IF”语句进行判断,发现当前#的值虽然不大于 0,但等于 0。因此条件又成立了,只好继续跳到第一行。于是又进行了一次运算,此时#的结果是-1。当再次执行到“IF”语句时,系统发现#当前的值是既不大于也不等于 0,因此条件就不满足了。条件不满足,那么就不执行“GOTO1”这个命令,而是执行下一行“G0 X100”。然后依次执行。
再来看WHILE……DO”
#1=2
WHILE [#I GE O] DO1
#1=#1-1
END1
Go x100
z100
M30
这就看出来END 关键词所在位置。它位于循环体的最后面。也就是说,用 WHILE 判断的时候,如果条件成立,就执行 DO 与 END 之间的程序。后面的那个阿拉伯数字“1”,表示第一层。一定要记住,DO 和 END 后面的数字必须一一对应。不能出现“DO1”与“END2”这个类型。要么都是 1,要么都是2。
程序的执行顺序与结果和“IFGOTO”一致。首先系统得知#1 的值目前是 2,但不知道干嘛的。于是向下执行,发现这里有个 WHILE语句,并且有个条件判断,“如果#1 的结果大于或者等于 2,那就执行 DO1 与END1 之间的程序"。经过判断,条件是成立的。所以就执行了“#1=#1-1”。
然后执行 END1 并返回到 WHILE 语句,再次判断#1 的值是否符合条件。系统发现#1 的结果是 0,仍然符合。于是继续执行 DO1 与 ENDI 之间的程序。一直到#1的结果不符合,程序才会执行“G0 X100”和后面的程序。
能完成某一功能的一系列指令像子程序那样存入存储器,用户可以设定M、S、T、G代码调用它们,使用时只需给出这个指令代码就能执行其功能,也可以像调用子程序一样使用。这样的程序也称作用户宏程序
l 调用宏程序的指令————宏指令
l 特点:使用变量 (一) 变量表示
#I(I=1,2,3,…)或#[<式子>]
例:#5,#109,#501,#[#1+#2-12]
(二) 变量的使用
1. 地址字后面指定变量号或公式
格式: <地址字>#I
这里的“I”代表变量号
例:F#103,设#103=15 则为F15
Z-#110,设#110=250 则为Z-250
X[#24+#18COS[#1]]
2. 变量号可用变量代替
例:#[#30],设#30=3 则为#3
3. 变量不能使用地址O,N,I
例:下述方法下允许
O#1;
I#2 600×1000;
N#3 Z2000;
4. 变量号所对应的变量,对每个地址来说,都有具体数值范围
例:#30=1100时,则M#30是不允许的
5. #0为空变量,没有定义变量值的变量也是空变量
6. 变量值定义:
程序定义时可省略小数点,例:#123=149
MDI键盘输一. 变量的种类
1 局部变量#1~#33
一个在宏程序中局部使用的变量,其运算结果其他程序不可使用。
例: A宏程序 B宏程序
… …
#10=20 X#10 不表示X20
… …
断电后清空,调用宏程序时代入变量值
2 公共变量。早期(#100~#149,#500~#531 )、新系统(#100~#199,#500~#999)
各用户宏程序内公用的变量 ,其运算结果任何程序调用都相同。
例:上例中#10改用#100时,B宏程序中的
X#100表示X20
#100~#149 断电后清空
#500~#531保持型变量(断电后不丢失)
3 系统变量
固定用途的变量,其值取决于系统的状态
例:#2001值为1号刀补X轴补偿值
#5221值为X轴G54工件原点偏置值
入时必须输入小数点,小数点省略时单位为μm 运算式的右边可以是常数、变量、函数、式子
式中#j,#k也可为常量
式子右边为变量号、运算式
1. 定义
#I=#j
2. 算术运算
#I=#j+#k
#I=#j-#k
#I=#j#k
#I=#j/#k
3. 逻辑运算
#I=#JOK#k
#I=#JXOK#k
#I=#JAND#k
4. 函数
#I=SIN[#j] 正弦
#I=COS[#j] 余弦
#I=TAN[#j] 正切
#I=ATAN[#j] 反正切
#I=SQRT[#j] 平方根
#I=ABS[#j] 绝对值
#I=ROUND[#j] 四舍五入化整
#I=FIX[#j] 上取整
#I=FUP[#j] 下取整
#I=BIN[#j] BCD→BIN(二进制)
#I=BCN[#j] BIN→BCD
1. 说明
1) 角度单位为度
例:90度30分为90.5度
2) ATAN函数后的两个边长要用“/ ”隔开
例:#1=ATAN[1]/[-1]时,#1为了35.0
3) ROUND用于语句中的地址,按各地址的最小设定单位进行四舍五入
例:设#1=1.2345,#2=2.3456,设定单位1μm
G91 X-#1;X-1.235
X-#2 F300;X-2.346
X[#1+#2];X3.580
未返回原处,应改为
X[ROUND[#1]+ROUND[#2]];
4) 取整后的绝对值比原值大为上取整,反之为下取整
例:设#1=1.2,#2=-1.2时
若#3=FUP[#1]时,则#3=2.0
若#3=FIX[#1]时,则#3=1.0
若#3=FUP[#2]时,则#3=-2.0
若#3=FIX[#2]时,则#3=-1.0
5) 指令函数时,可只写开头2个字母
例:ROUND→RO
FIX→FI
6) 优先级
函数→乘除(,1,AND)→加减(+,-,OR,XOR)
例:#1=#2+#3SIN[#4];
7) 括号为中括号,最多5重,园括号用于注释语句
例:#1=SIN[[[#2+#3]#4+#5]#6];(3重) 1.无条件的转移
格式: GOTO 1;
GOTO #10;
2.条件转移
格式: IF[<条件式>] GOTO n
条件式:
#j EQ#k 表示=
#j NE#k 表示≠
#j GT#k 表示>
#j LT#k 表示<
#j GE#k 表示≥
#j LE#k 表示≤
例: IF[#1 GT 10] GOTO 100;
…
N100 G00 G91 X10;
例:求1到10之和
O9500;
#1=0
#2=1
N1 IF [#2 GT10] GOTO 2
#1=#1+#2;
#2=#2+1;
GOTO 1
N2 M30
1.循环
格式:WHILE[<条件式>]DO m;(m=1,2,3)
…
…
…
ENDm
说明:1.条件满足时,执行DOm到ENDm,则从DOm的程序段
不满足时,执行DOm到ENDm的程序段
2.省略WHILE语句只有DOm…ENDm,则从DOm到ENDm之间形成死循环
3.嵌套
4.EQ NE时,空和“0”不同
其他条件下,空和“0”相同
例:求1到10之和
O0001;
#1=0;
#2=1;
WHILE [#2LE10] DO1;
#1=#1+#2;
#2=#2+#1;
END1;
M30;
CASE(expression) OF constant1 GOTOF LABEL1…DEFAULT GOTOF LABELn
CASE(VAR1+VAR2-VAR3) OF 7 GOTOF LABEL1 9 GOTOF LABEL2 DDEFAULT
GOTOF LABEL3
LABEL1:G0 X1 Y1
LABEL2:G0 X2 Y2
LABEL3:G0 X3 Y3
三 Rexroth :
CASE< >OF
LABEL:
LABEL:
<OTHERWISE>
10 CASE A% OF
20 LABEL 0 :Y=1
30 LABEL 2
40 Y=YY
50 LABEL 4 :Z=YY
60 Y=ZZ
70 OTHERWISE Y=0
80 ENDCASE
程式的意思是T04铣刀定位到X60的地方,然后转动C轴到#145的度数,Z轴再铣到142的地方。使用了IF的条件语句,当#145小于310时一直执行N1的程序,每执行一次N1的程序,#145增加60度的角度。直到#145大于310时,程序结束。
#145=0 #145赋值为0
N1
G0 C#145 C轴分度 第一次定0度
G0 X85 Z-10
G1 X60 F2000
G1 Z142 F60
U02
G0 X10 Z-10
#145=#145+60 #145=之前的#145+60 计算结果按次数为60,120,180,240,300,360;
IF[#145LT310] G0T01 如果 #145小于310,程序跳转到N1。
如果大于或等于310,程序不跳转 往下一段M25执行;
例如:300小于310 跳到N1继续加工 加工完后 到#145=#145+60 此时=360;
360大于310 程序不跳转 继续执行下面的程序段;
M25;
M51;
G50 W20;
G28 U0;
M01;
扩展资料:
主要定义程序号,调出零件加工坐标系、加工刀具,启动主轴、打开冷却液等方面的内容。
主轴最高转速限制定义G50 S2000,设置主轴的最高转速为2000RPM,对于数控车床来说,这是一个非常重要的指令。
坐标系定义如不作特殊指明,数控系统默认G54坐标系。
返回参考点指令G28 U0,为避免换刀过程中,发生刀架与工件或夹具之间的碰撞或干涉,一个有效的方法是机床先回到X轴方向的机床参考点,并离开主轴一段安全距离。
刀具定义G0 T0808 M8,自动调8号左偏刀8号刀补,开启冷却液。
主轴转速定义G96 S150 M4,恒定线速度S功能定义,S功能使数控车床的主轴转速指令功能,有两种表达方式,一种是以r/min或rpm作为计量单位。另一种是以m/min为计量单位。数控车床的S代码必须与G96或G97配合使用才能设置主轴转速或切削速度。
G97:转速指令,定义和设置每分钟的转速。
G96:恒线速度指令,使工件上任何位置上的切削速度都是一样的。
参考资料来源:百度百科-数控机床
以上就是关于宏程序lt和GE的区别全部的内容,包括:宏程序lt和GE的区别、EXCEL启动的时候出现一个提示框,问是启动宏还是禁用宏!这是什么东西、打开EXCEL文件说有问题,文档打不开,提示说有存在安全问题,请问EXCEL大侠该怎么解决等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)