宏程序与普通程序相比较,普通程序的程序子为常量,一个程序只能描述一个几何图形,缺乏灵活性和实用性。而宏可以用变量进行编程,可以用宏指令对变量进行赋值,运算处理。例如通过宏程序能执行一些有规律变化如非圆二次曲线轮廓的加工(如椭圆手柄等)
个人觉得,数控车上加工普通的直线,圆弧类型零件没必要用宏程序,而在加工一些特殊形状如椭圆,双曲线,方程曲线,圆弧型螺纹(比如滚珠丝杠)等用普通指令不好加工时才考虑用宏程序进行编程。以下是引用的:
其实说起来宏就是用公式来加工零件的,比如说椭圆,如果没有宏的话,我们要逐点算出曲线上的点,然后慢慢来用直线逼近,如果是个光洁度要求很高的工件的话,那么需要计算很多的点,可是应用了宏后,我们把椭圆公式输入到系统中然后我们给出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;
数控车床用g32车四方的方法:
利用宏程序,以一定算法,用千万条G32来拟合四棱柱的轮廓,可以对角线长或外接圆直径为自变量,表达出点轮廓坐标的参数方程,通过G32的导程量来绕开车床不具备C轴控制的缺陷,替换实现C轴控制。
思路应该就是这样。具体G32的F需要根据加工参数计算。但要注意,主轴转速不能太高,需要数控系统高速响应。
扩展资料:
数控车床的相关要求规定:
1、数控机床是数字控制机床的简称,是一种装有程序控制系统的自动化机床。该控制系统能够逻辑地处理具有控制编码或其他符号指令规定的程序,并将其译码,从而使机床动作并加工零件。
2、数控机床按照事先编制好的加工程序,自动地对被加工零件进行加工。把零件的加工工艺路线、工艺参数、刀具的运动轨迹、位移量、切削参数以及辅助功能,按照数控机床规定的指令代码及程序格式编写成加工程序单,再把这程序单中的内容记录在控制介质上,然后输入到数控机床的数控装置中,从而指挥机床加工零件。
3、机床随机附件、备件及其供应能力、刀具,对已投产数控车床、车削中心来说是十分重要的。选择机床,需仔细考虑刀具和附件的配套性。
参考资料来源:百度百科-数控车床
普通程序用的是实数,宏程序用变量,宏程序中有公式计算,和逻辑判断形成的循环体,变量用来装实数,把宏程序比作口罩生厂线的话,循环为输送带,公式计算为输送带中的各种探头,变量为装口罩纸箱,总的来说,宏中有循环,公式,变量可以大量生厂坐标实数
#1=4712
WHILE #1GE3142
#2=SIN[#1]6
#3=COS[#1]15
#4=#2+24000
#5=#3-49000
G01X[20#4]Z[#5]
#1=#1-0050
ENDW
这是上面的椭圆的一次加工代码!华中对于三角函数默认的弧度制的
WHILE 后面的条件不加[],结束用的ENDW,这都是FANUC的区别哦
/与FANUC相同系列
支持:
FANUC 0i、FANUC 0 i Mate、FANUC 18i
GSK 980TDb、KND 1000
大森、MITSUBISH等
与FANUC相同的某些系统在默认情况下常数要加个小数点,曲线方程的常数可能没有小数点,这时你可以在输入曲线方程时将常数加上小数点或者在生成宏代码以后加上小数点!/
#1=4712
WHILE[#1GE3142] DO1
#2=SIN[180/PI[#1]]6
#3=COS[180/PI[#1]]15
#4=#2+24000
#5=#3-49000
G01X[20#4]Z[#5]
#1=#1-0050
END1
/华中系列/
#1=4712
WHILE #1GE3142
#2=SIN[#1]6
#3=COS[#1]15
#4=#2+24000
#5=#3-49000
G01X[20#4]Z[#5]
#1=#1-0050
ENDW
/西门子系列/
R1=4712
CCCAM:
R2=SIN(180/PI(R1))6
R3=COS(180/PI(R1))15
R4=R2+24000
R5=R3-49000
G01X(20R4)Z(R5)
R1=R1-0050
IF R1>=3142 GOTOB CCCAM
张老师的数控车宏程序自学视频系统讲的很清楚!
以上就是关于谁能帮我举个例子介绍一下数控车床宏程序干什么用的全部的内容,包括:谁能帮我举个例子介绍一下数控车床宏程序干什么用的、关于FANUC系统车床-宏程序的编写、有那位大神知道数控车床用g32怎么车四方,求程序。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)