数控编程宏程序的编程及应用及例题
1.刚开始学数控,在学校时老师只教了基本指令,没教数控宏程序,现在毕业了,看宏程序又看不懂,谁有宏程序的电子教程,详细点的,最好加几个例题。2.本科有没有学数控的啊,有的...
1.刚开始学数控,在学校时老师只教了基本指令,没教数控宏程序,现在毕业了,看宏程序又看不懂,谁有宏程序的电子教程,详细点的,最好加几个例题。
2.本科有没有学数控的啊,有的话一般是什么专业?
推荐几本关于数控编程的书。说宏程序多点的?
先谢拉。
好的话会追加的。
我现在就想学宏程序。
好的话,最少追加30分。
wangwangshengl 你说的我在书上都看过,但是看不懂啊。
cxy1987129 这本书在哪买的到? 展开
2.本科有没有学数控的啊,有的话一般是什么专业?
推荐几本关于数控编程的书。说宏程序多点的?
先谢拉。
好的话会追加的。
我现在就想学宏程序。
好的话,最少追加30分。
wangwangshengl 你说的我在书上都看过,但是看不懂啊。
cxy1987129 这本书在哪买的到? 展开
9个回答
展开全部
用 户 宏 程 序
能完成某一功能的一系列指令像子程序那样存入存储器,用一个总指令来它们,使用时只需给出这个总指令就能执行其功能。
l 所存入的这一系列指令——用户宏程序
l 调用宏程序的指令————宏指令
l 特点:使用变量
一. 变量的表示和使用
(一) 变量表示
#I(I=1,2,3,…)或#[<式子>=
例:#5,#109,#501,#[#1+#2-12]
(二) 变量的使用
1. 地址字后面指定变量号或公式 0
格式: <地址字>#I
<地址字>-#I
<地址字>[<式子>]
例:F#103,设#103=15 则为F15
Z-#110,设#110=250 则为Z-250
X[#24+#18*COS[#1]]
2. 变量号可用变量代替
例:#[#30],设#30=3 则为#3
3. 变量不能使用地址O,N,I
例:下述方法下允许
O#1;
I#2 6.00×100.0;
N#3 Z200.0;
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
各用户宏程序内公用的变量
例:上例中#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”隔开
例:#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+#3*SIN[#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 691 X10;
例:求1到10之和
O9500;
#1=0
#2=1
N1 IF [#2 GT10] GOTO 2
#1=#1+#2;
#2=#2+1;
GOTO 1
N2 M301.循环
格式: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;
钻一百个孔的程式:
O0010;
#100=0;
#101=0;
G49 G80 G40;
M6 T1;
G00 G90 G54 X#100 Y#101;
G43 H1 Z100. M13 S2000;
N1 G54 X#100 Y#101;
G98 G81 R3. Z-18.F350;
N2 #100+10.
IF [#100 GT 100 ] GOTO 4;
G54 X#100 Y#101;
GOTO 2
N4 #101+10. #100=0.
IF [ #101 GT 100 ] GOTO 3;
GOTO 1;
N3 M30;
能完成某一功能的一系列指令像子程序那样存入存储器,用一个总指令来它们,使用时只需给出这个总指令就能执行其功能。
l 所存入的这一系列指令——用户宏程序
l 调用宏程序的指令————宏指令
l 特点:使用变量
一. 变量的表示和使用
(一) 变量表示
#I(I=1,2,3,…)或#[<式子>=
例:#5,#109,#501,#[#1+#2-12]
(二) 变量的使用
1. 地址字后面指定变量号或公式 0
格式: <地址字>#I
<地址字>-#I
<地址字>[<式子>]
例:F#103,设#103=15 则为F15
Z-#110,设#110=250 则为Z-250
X[#24+#18*COS[#1]]
2. 变量号可用变量代替
例:#[#30],设#30=3 则为#3
3. 变量不能使用地址O,N,I
例:下述方法下允许
O#1;
I#2 6.00×100.0;
N#3 Z200.0;
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
各用户宏程序内公用的变量
例:上例中#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”隔开
例:#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+#3*SIN[#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 691 X10;
例:求1到10之和
O9500;
#1=0
#2=1
N1 IF [#2 GT10] GOTO 2
#1=#1+#2;
#2=#2+1;
GOTO 1
N2 M301.循环
格式: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;
钻一百个孔的程式:
O0010;
#100=0;
#101=0;
G49 G80 G40;
M6 T1;
G00 G90 G54 X#100 Y#101;
G43 H1 Z100. M13 S2000;
N1 G54 X#100 Y#101;
G98 G81 R3. Z-18.F350;
N2 #100+10.
IF [#100 GT 100 ] GOTO 4;
G54 X#100 Y#101;
GOTO 2
N4 #101+10. #100=0.
IF [ #101 GT 100 ] GOTO 3;
GOTO 1;
N3 M30;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
宏程序其实入门了就简单,IF什麽什麽是判定条件,判定是大于或小于什麽什麽,就GOTO(跳转)到某段程序,比如加工椭圆或双曲线什么的,要用到椭圆或双曲线方程,太罗嗦,我也不好细讲。西门子用的是R什麽什麽,发那科是#什麽什麽。建议你从加工椭圆开始入门,椭圆比较简单,半个椭圆连个阶台,或者什么的,要会椭圆方程,还有正玄 余玄 大于 小于等等在编程中的代码(一般的关于宏程序的书都有) 我这里没法给你画图纸,也不好举例子。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你好,宏程序就是利用公式来加工零件。数控在加工工件时都是直线插补,所以需要编程者给出终点坐标,由于椭圆、双曲线、抛物线等不好计算节点所以编程时就用到宏程序。以椭圆为例,设长轴为变量则另一个量就是因变量,用变量表示因变量,然后用WHILE....DO(1、2、3)
END(1、2、3)(FANUC系统)
或 WHILE.....DO
ENDW(华中系统)语句就可以加工
END(1、2、3)(FANUC系统)
或 WHILE.....DO
ENDW(华中系统)语句就可以加工
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
宏程序主要是加工复杂,计算量大的工件,加工中心(数控铣)上用的比较多,但加工中心加工复杂工件时,一般用UG自动编程不用手工编程,在数控车上应用极少,所以你也不必非要学宏程序编程啊!要用的话你最好看机床说明书......
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询