GT大于,
LT小与,
GE大于等于
,LE小于等于)WH
DO
END是运算指令也是英文缩写。
例赋值#2等于5。运算#2=#2+1
运行一次后#2值就是6,运行n次#2值为5+n。
A宏程序的编制方法就是:
利用变量编程的
;
IF
[条件表达式]
GOTO
n
n….
当条件满足时,程序就跳转到同一程序中语句标号为n的
语句上继续执行,
当条件不满足时,程序执行下一条语句。
2、条件语句2WHILE
[条件表达式]
DO
m...…END
m
当条件满足时,从DO
m到ENDm之间的程序就重复执行
当条件不满足时,程序就执行ENDm下一条语句。
3、椭圆的解析方程:
4、椭圆的参数方程:
条件语句2。
5、椭圆加工程序
N010
#1=1
角度步长
N020
#2=-90
(270)
初始角度
N030
#3=90
终止角度
N040
#4=10
刀具半径
N050
#5=30
长半轴
N060
#6=20
短半轴
N070
G90G00X0Y
[#6+#4]
刀具运行到(0,-30,)的位置
N080
S1000M03
N090
G01Z-3F100
刀具下到-3mm
N100
。
WHILE[#2LE#3]DO1
起始角度小于等于终止角度
N110
#7=#5*COS[#2]
计算X坐标值(椭圆参数方程)
N120
#8=#6*SIN[#2]
计算Y坐标值
(椭圆参数方程)
N130
G1X#7Y#8F300
直线插补一个步长
N14
0#2=#2+#1
变量#2增加一个角度步长
N150
END1
N160
G90G00Z100.0M05
快速抬刀。
if语句,if( ),括号里的内容和while( )里的内容都是判定句,判定为真则执行语句,假则不执行语句,不同点就是if没有循环的性子,一旦执行过后就跳出语句,而while判定为真后执行它下面的语句,执行完后返回括号里继续判定,判定为真继续执行语句知道括号里判定为假为止宏程序流程控制和循环语
数控车床宏程序与普通程序有什么区别呢?第一个就是流程控制
普通程序在执行的时候,它总是从第一段开始依次执行到最后一段程序结束,中途不改变执行顺序。而宏程序可以改变程序的执行顺序。可以根据加工需要,让某段程序重复执行多少次等。要学会程序的执行顺序控制,必须学会以下两种语句:
“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。
程序的执行顺序与结果和“IF..GOTO”一致。首先系统得知#1 的值目前是 2,但不知道干嘛的。于是向下执行,发现这里有个 WHILE语句,并且有个条件判断,“如果#1 的结果大于或者等于 2,那就执行 DO1 与END1 之间的程序"。经过判断,条件是成立的。所以就执行了“#1=#1-1”。
然后执行 END1 并返回到 WHILE 语句,再次判断#1 的值是否符合条件。系统发现#1 的结果是 0,仍然符合。于是继续执行 DO1 与 ENDI 之间的程序。一直到#1的结果不符合,程序才会执行“G0 X100”和后面的程序。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)