HOLES2 (CPA, CPO, RAD, STA1, INDA, NUM)
CPA 实数 孔圆弧的圆心,横坐标(绝对)
CPO 实数 孔圆弧圆心,纵坐标 (绝对)
RAD 实数 孔圆弧半径(不输入符号)
STA1 实数 起始角
值范围: –180 < STA1 ≤ 180 度
DEF REAL CPA=70,CPO=60,RAD=42,STA1=45 ;参数定义
DEF INT NUM=4 ;赋值
N10 G90 F140 S710 M3 D1 T40 ;确定工艺数值
N20 G17 G0 X50 Y45 Z2 ;返回运行到出发位置
N30 MCALL CYCLE82 (2, 0,2, , 30) ;模态调用钻削循环,
没有停留时间,DP 没有编程
N40 HOLES2 (CPA, CPO, RAD, STA1, , NUM) ;调用孔圆弧,增量角在
;循环中计算,因为
参数INDA 已经删除
N50 MCALL ;撤消选择模态调用
N60 M30 ; 程序结束
宏程序与普通程序相比较,普通程序的程序子为常量,一个程序只能描述一个几何图形,缺乏灵活性和实用性。而宏可以用变量进行编程,可以用宏指令对变量进行赋值,运算处理。例如通过宏程序能执行一些有规律变化如非圆二次曲线轮廓的加工(如椭圆手柄等)
参考下新代系统
@MACRO;
G40 G57 G90 G80 G49 G17;
M6T6;
M3 S2500;
M08;
G0 X0 Y0;
Z0;
A0;
#1=0;
WHILE(#1<=3150)DO;
G0 A#1;
#2=0;
N100 G0 Z-#2;
G1 X-350 F15000;
Y-80;
X0;
Y-160;
X-350;
Y-240;
X0;
G0 X0 Y0;
#2=#2+05;
IF(#2<=6)THEN GOTO100;
END_IF;
G0 Z200
#1=#1+450;
END_WHILE;
G0 Z500;
G91 G28 Z00;
M09;
M05;
M30;
%
FANUC铣槽程序:
#4001中的值是当前01组的代码,也就是G0、G1、G2、G3。
例如,当前执行的是G1,则#4001中的值是1。
总的来说,存储模态G代码值的变量号是G代码所在组加上4000例如,G40、G41、G42这三个指令属于第7组,故读取#4007的值可以获知当前的补偿状态。如果当前没有使用半径补偿,则#4007的值是40。
西门子分几种弄号有802s。802d,804d等等型号,编各略有不同,典型像802s。西门子的编程和法那科的不同,法那科编程要调用刀补,长度补偿等,西门子的前面就给定义好了,如g54g90g17g0x0y0t1d1。还有钻孔这一块,也和法那科的不同,全部是调用循环,lcyc61,lcyc82。lcyc60,等等循环它们每个循中的每一个参数你都得明白,一下子说不清的,而且每一种型号的参数也不同,定位到一个孔的位置就调用循环,每定位一次调用一次。宏程序这一块也不同,法那科用while西门子用gotob,条件跳转,用aaal,或者mal等先标记,还有什么g258座标旋转等等,建议你去买一西门子专业编程的书,
个人觉得,数控车上加工普通的直线,圆弧类型零件没必要用宏程序,而在加工一些特殊形状如椭圆,双曲线,方程曲线,圆弧型螺纹(比如滚珠丝杠)等用普通指令不好加工时才考虑用宏程序进行编程。以下是引用的:
其实说起来宏就是用公式来加工零件的,比如说椭圆,如果没有宏的话,我们要逐点算出曲线上的点,然后慢慢来用直线逼近,如果是个光洁度要求很高的工件的话,那么需要计算很多的点,可是应用了宏后,我们把椭圆公式输入到系统中然后我们给出Z坐标并且每次加10um那么宏就会自动算出X坐标并且进行切削, 实际上宏在程序中主要起到的是运算作用宏一般分为A类宏和B类宏A类宏是以G65 Hxx P#xx Q#xx R#xx的格式输入的,而B类宏程序则是以直接的公式和语言输入的和C语言很相似在0i系统中应用比较广
目录
宏的分类B类宏
A类宏
应用基本指令
三角函数指令
开平方根指令
无条件转移指令
有条件转移指令
用户宏程序定义
变量的表示和使用
运算指令
转移与循环指令
宏的分类 B类宏
A类宏
应用 基本指令
三角函数指令
开平方根指令
无条件转移指令
有条件转移指令
用户宏程序 定义
变量的表示和使用
运算指令
转移与循环指令
展开 编辑本段宏的分类
B类宏
由于现在B类宏程序的大量使用,很多书都进行了介绍这里我就不再重复了,但在一些老系统中,比如法兰克OTD系统中由于它的MDI键盘上没有公式符号,连最简单的等于号都没有,为此如果应用B类宏程序的话就只能在计算机上编好再通过RSN-32接口传输的数控系统中,可是如果我们没有PC机和RSN-32电缆的话怎么办呢,那么只有通过A类宏程序来进行宏程序编制了,下面我介绍一下A类宏的引用;
A类宏
A类宏是用G65 Hxx P#xx Q#xx R#xx或G65 Hxx P#xx Qxx Rxx格式输入的xx的意思就是数值,是以um级的量输入的,比如你输入100那就是01MM~~~~~#xx就是变量号,关于变量号是什么意思再不知道的的话我也就没治了,不过还是教一下吧,变量号就是把数值代入到一个固定的地址中,固定的地址就是变量,一般OTD系统中有#0~~~#100~#149~~~#500~#531关闭电源时变量#100~#149被初始化成“空”,而变量#500~#531保持数据我们如果说#100=30那么现在#100地址内的数据就是30了,就是这么简单好现在我来说一下H代码,大家可以看到A类宏的标准格式中#xx和xx都是数值,而G65表示使用A类宏,那么这个H就是要表示各个数值和变量号内的数值或者各个变量号内的数值与其他变量号内的数值之间要进行一个什么运算,可以说你了解了H代码A类宏程序你基本就可以应用了,好,现在说一下H代码的各个含义:
编辑本段应用
以下都以#100和#101和#102,及数值10和20做为例子,应用的时候别把他们当格式就行,
基本指令
H01赋值;格式:G65H01P#101Q#102:把#102内的数值赋予到#101中 G65H01P#101Q#10:把10赋予到#101中 H02加指令;格式G65 H02 P#101 Q#102 R#103,把#102的数值加上#103的数值赋予#101 G65 H02 P#101 Q#102 R10 G65 H02 P#101 Q10 R#103 G65 H02 P#101 Q10 R20 上面4个都是加指令的格式都是把Q后面的数值或变量号内的数值加上R后面的数 值或变量号内的数值然后等于到P后面的变量号中 H03减指令;格式G65 H03 P#101 Q#102 R#103,把#102的数值减去#103的数值赋予#101 G65 H03 P#101 Q#102 R10 G65 H03 P#101 Q10 R#103 G65 H03 P#101 Q20 R10 上面4个都是减指令的格式都是把Q后面的数值或变量号内的数值减去R后面的数 值或变量号内的数值然后等于到P后面的变量号中 H04乘指令;格式G65 H04 P#101 Q#102 R#103,把#102的数值乘上#103的数值赋予#101 G65 H04 P#101 Q#102 R10 G65 H04 P#101 Q10 R#103 G65 H04 P#101 Q20 R10 上面4个都是乘指令的格式都是把Q后面的数值或变量号内的数值乘上R后面的数 值或变量号内的数值然后等于到P后面的变量号中 H05除指令;格式G65 H05P#101 Q#102 R#103,把#102的数值除以#103的数值赋予#101 G65 H05 P#101 Q#102 R10 G65 H05 P#101 Q10 R#103 G65 H05 P#101 Q20 R10 上面4个都是除指令格式都是把Q后面的数值或变量号内的数值除以R后面的数 值或变量号内的数值然后等于到P后面的变量号中(余数不存,除数如果为0的话会出现112报警)
三角函数指令
H31 SIN正玄函数指令:格式G65 H31 P#101 Q#102 R#103;含义Q后面的#102是三角形的斜边R后面的#103内存的是角度结果是#101=#102SIN#103,也就是说可以直接用这个求出三角形的另 一条边长和以前的指令一样Q和R后面也可以直接写数值 H32 COS余玄函数指令:格式G65 H32 #101 Q#102 R#103;含义Q后面的#102是三角形的斜边 R后面的#103内存的是角度结果是#101=#102COS#103,也就是说可以直接用这个求出三角形的 另一条边长和以前的指令一样Q和R后面也可以直接写数值 H33和H34本来应该是TAN 和ATAN的可是经过我使用得数并不准确,希望有知道的人能够告诉我是为什么
开平方根指令
H21;格式G65 H21 P#101 Q#102 ;意思是把#102内的数值开了平方根然后存到#101中(这个指令是非常重要的如果在车椭圆的时候没有开平方根的指令是没可能用宏做到的
无条件转移指令
H80;格式:G65 H80 P10 ;直接跳到第10程序段
有条件转移指令
H81 H82 H83 H84 H85 H86 ,分别是等于就转的H81;不等于就转的H82;小于就转的H83;大于就转的H84;小于等于就转的H85;大于等于就转的H86; 格式:G65 H8x P10 Q#101 R#102;将#101内的数值和#102内的数值相比较,按上面的H8x的码带入H8x中去,如果条件符合就跳到第10程序段,如果不符合就继续执行下面的程序段
编辑本段用户宏程序
定义
能完成某一功能的一系列指令像子程序那样存入存储器,用一个总指令来它们,使用时只需给出这个总指令就能执行其功能。 l 所存入的这一系列指令——用户宏程序 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+#18*COS[#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 各用户宏程序内公用的变量 例:上例中#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 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;
以上就是关于求西门子840d镗床加工圆周钻孔宏程序实例全部的内容,包括:求西门子840d镗床加工圆周钻孔宏程序实例、谁能帮我举个例子介绍一下数控车床宏程序干什么用的、海德汉系统,宏程序编程实例铣圆,铣槽,铣方,谁有,帮下忙啊,谢谢了等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)