急需帮助数控宏程序

作者&投稿:战娇 (若有异议请与网页底部的电邮联系)
数控宏程序~

按宏程序的解释来说
#24,是表示X变量
#25,表示Y变量
#26,表示Z变量
这句话可以解释为

如果Z变量的赋值丢失(即为空变量了)时,Z=26
你说的这个应该是一段程序里的一句话,
这一句的作用一般是用来保护X Y 或者Z方向的 安全值的
他是怕一旦成了空变量以后,容易撞刀.
所以给个安全高度
防止在非常时刻撞刀

顺便给你推荐一本书美国 彼得.斯密德著
罗学科,赵玉侠,刘瑛 译
化学工业出版社出版
定价 38元
相信对你有很大的帮助的

大家都在问宏程序~其实说起来宏就是用公式来加工零件的,比如说椭圆,如果没有宏的话,我们要逐点算出曲线上的点,然后慢慢来用直线逼近,如果是个光洁度要求很高的工件的话,那么需要计算很多的点,可是应用了宏后,我们把椭圆公式输入到系统中然后我们给出Z坐标并且每次加10um那么宏就会自动算出X坐标并且进行切削,实际上宏在程序中主要起到的是运算作用..宏一般分为A类宏和B类宏.A类宏是以G65 Hxx P#xx Q#xx R#xx的格式输入的,而B类宏程序则是
以直接的公式和语言输入的和C语言很相似在0i系统中应用比较广.由于现在B类宏程序的大量使
用很多书都进行了介绍这里我就不再重复了,但在一些老系统中,比如法兰克OTD系统中由于它的MDI键盘上没有公式符号,连最简单的等于号都没有,为此如果应用B类宏程序的话就只能在计算机上编好再通过RSN-32接口传输的数控系统中,可是如果我们没有PC机和RSN-32电缆的话怎么办呢,那么只有通过A类宏程序来进行宏程序编制了,下面我介绍一下A类宏的引用;
A类宏是用G65 Hxx P#xx Q#xx R#xx或G65 Hxx P#xx Qxx Rxx格式输入的xx的意思就是数值,是以um级的量输入的,比如你输入100那就是0.1MM~~~~~.#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=#102*SIN#103,也就是说可以直接用这个求出三角形的另
一条边长.和以前的指令一样Q和R后面也可以直接写数值.
H32 COS余玄函数指令:格式G65 H32 #101 Q#102 R#103;含义Q后面的#102是三角形的斜边
R后面的#103内存的是角度.结果是#101=#102*COS#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 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;

N5开始,条件语句是N5 WHILE.... 语句,当#3大于等于-360的时候一直执行6,7 两行
N6是椭圆的X,Y坐标,计算采用的是椭圆的极坐标方程,通过a(#3)的递减计算X,Y
N7是变量减小,即以5度为递减量变化,执行一次角度a顺时针旋转5度

椭圆的区别在于长短轴不一样,即#1和#2不一样,这个确定了之后,所有的椭圆都一样
个人觉得5度可能太多了点,看加工效果和时间决定增量的数值

不过我没用过你这样的写法,也没试验过不知道好用不好用
以前都是WH....DO 1 ; END 1 这样写的

N1是建立坐标系
N2是刀具完全停在椭圆的外部(25,15点)
N3下刀到Z0
N4左刀补到X20
N5是条件语句,目的是让刀具走360度
N6是走椭圆的参数方程
N7是每次5度

希望对你有帮助

补充:48X36椭圆
#103:角度变量
#104:刀尖在工件坐标系中X坐标值变量
#105:刀尖在工件坐标系中Y坐标值变量

O1001(主程序)
T0101
G94S700M03M08
G54
G00G43Z30
G90X40Y0
Z2
G01Z0F150
M98P120L9(去毛坯余量,每次切深2毫米)
G00Z3
M30

O120(毛坯余量子程序)
G91G01Z-2
G90
#103=360(角度变量初赋值)
N100 #104=18*COS[#103](X坐标值变量)
#105=24*SIN[#103] (Y坐标值变量)
G41 X#104 Y#105 D01
#103=#103-1(角度增量-1)
IF[#103GE0]GOTO100(如果角度大于等于0,则返回执行循环)
G40G01X40Y0
M99

不要打击别人嘛,兄弟,我来告诉你N5是条件范围,是说在0-360度里循环插补,N6是说直线拟合插补,N7是插补步距是5度

我学宏多年,很多人想学问我最终以自己,数学能力有限放弃,如果你连这个都不能看懂的话,放弃吧.


数控铣床椭圆宏程序编程
N32M30 程序结束 发那科:长轴48,短轴36 程序如下:O1001(主程序)T0101 G94S700M03M08 G54 G00G43Z30 G90X40Y0 Z2 G01Z0F150 M98P120L9(去毛坯余量,每次切深2毫米)G00Z3 M30 O120(毛坯余量子程序)G91G01Z-2 G90 103=360(角度变量初赋值)N100 #104=18*COS[#103](X坐标...

帮忙编写一下宏程序,数控加工
我摸拟的画面就是手机不好照的不清晰还有些变形 从左上第一个加工 1=5 2=5 5=0 6=20 7=1 G00X#5Y#6Z#7 定位在第一个正上方 WHILE[#1NE0]DO1 3=#2 8=#5 WHILE[#3NE0]DO2 G01Z-10F200 Z#7 8=#8+15 IF[#3EQ1]GOTO1 G00X#8 N1 #3=#3-1 END2 2=#2-1 5...

求解数控车床洗六角宏程序
程式的意思是T04铣刀定位到X6.0的地方,然后转动C轴到#145的度数,Z轴再铣到14.2的地方。使用了IF的条件语句,当#145小于310时一直执行N1的程序,每执行一次N1的程序,#145增加60度的角度。直到#145大于310时,程序结束。145=0. #145赋值为0 N1 G0 C#145 C轴分度 第一次定0度 G0 X8.5 Z...

急求数控镗铣床宏程序编程,高手来
G02 I-#8 G0 X0 Y0 6=#6+0.5 (每刀进刀深度0.5,可以根据精度要求改小比如 #6=#6+0.1)END1 G0 X0 Y0 G0 Z200 M02 ()里面内容是注释,你可以试试,我在数控铣上常这样用。镗床也是一样的,变动不大,西 门子系统没怎么用过,你可以根据编程说明书上的格式改下就可以了。

数控车宏程序大于,小于,等于怎么用
教个车抛物线的程序!抛物线方程:y=-x*x\/7 程序大意是以X为已知量求Y O1001;g40g97g99m03s600t0101;g0x42.0z2.0;1=20;X轴变量给出值(赋值)=20 while(#1ge0)do1;#1大于0 循环1继续 2=-#1*#1\/7;等同 y=-x*x\/7 #1代表x的值 g90x[#1*2+0.3]z[#2+0.3]f0.15;0.3是...

斯沃数控仿真用不了宏程序
题主是否想询问“斯沃数控仿真用不了宏程序怎么办”?1、首先重新下载斯沃数控仿真,下载时请勾选“FANUC0im”。下载成功后,桌面上会显示两个图标,一个是斯沃数控仿真,另一个是“svolCNC服务器”。2、其次用鼠标双击桌面上的斯沃数控仿真图标,弹出窗口。在单机版和网络版中,选择单机版。3、最后...

数控 宏程序 morl selkl(哈斯)fnuc(法兰克)
FANUC系统宏程序编程 FANUC系统宏程序编程 一 变量 普通加工程序直接用数值指定G代码和移动距离;例如,GO1和X100.0。使用用户宏程序时,数值可以直接指定或用变量指定。当用变量时,变量值可用程序或用MDI面板上的操作改变。1=#2+100 G01 X#1 F300 说明:变量的表示 计算机允许使用变量名,用户宏...

在数控车床使用宏程序需要什么条件?要修改什么参数吗?它是在那输入的...
但宏程序是将描述直线的方程式经人脑翻译成CNC可接受的程序语句,然后通过CNC显示屏或其与电脑连线输入设备中,一般无需修改参数。但有一点,要熟练应用宏程序,必须对计算机语言编程熟悉,否则有绝大多数功能无法应用,一句话,在数控设备使用说明书中有详细描述与解释,我也是从此处学会的。

数控宏程序…高手「请」
得懂方程式,主要得得会把方程式变形,首先得得把一些指令给搞明白了,宏程序得两是变化得, 比如说 M3S100 G00 X10 Z0 G01 G99 Z-100 F0.2 G00 X10 Z0 X8 G01 Z-100 G00 X10 Z0 X6 G01 Z-100 G00 X1O Z0 M30 这个简单得程序用宏程序写出来就是 M3 S100 1=1O N1 G00 X#1 Z0 GO1...

数控车床怎样用宏程序加工双头梯形螺纹
G0 Z[5+#103] ;快速走到左边加工起刀点 G92 X[-#101] Z-30 F#103;左边加工一刀 101=#101-#104;改变加工直径 102=#102+SQRT[11*11-#104\/2*#104\/2]IF[#101 LT 10] THEN #104=0.1;小于34时每次吃刀深度为0.1 GOTO 1;M05;主轴停 M30;程序结束 ...

珠山区18741902461: 求数控宏程式 -
申眉巴柳: 椭圆宏程序:M3 G99 S1500 T0101 G0 X50 Z0 M8 G1 X0 F0.1 G0 X30 Z1#1=10 WHILE(#1GE0)DO1#3=(1-(#1*#1)/(10*10))*8.5*8.5#2=SQRT(#3)#6=#2+10#4=(#1-10) G1 X#6 Z#4#1=#1-0.05 N20 END1#101=#2#102=#4 G0 Z100 M30

珠山区18741902461: 求加工中心宏程序高手帮助发一段程序供学习参考 -
申眉巴柳: #101=25 刀半径#102=90/2 圆柱半径#103=50 深度#104=1 每次切深#105=#104+1 最终切深#106=#105/#104锣圆柱的旋转次数#107=#102+#101#108=#102-#101+3 G0G91G28Z0 G0G90G54X0Y0 M03S800 G01X#108F1800 G01Z2 G03X#...

珠山区18741902461: 帮忙编写一下宏程序,数控加工
申眉巴柳:我摸拟的画面就是手机不好照的不清晰还有些变形 从左上第一个加工 #1=5 #2=5 #5=0 #6=20 #7=1 G00X#5Y#6Z#7 定位在第一个正上方 WHILE[#1NE0]DO1 #3=#2 #8=#5 WHILE[#3NE0]DO2 G01Z-10F200 Z#7 #8=#8+15 IF[#3EQ1]GOTO1 G00X#8 N1 #3=#3-1 END2 #2=#2-1 #5=#5+7.5 #6=#6-12.99 IF[#1EQ1]GOTO2 G00X#5Y#6 N2 #1=#1-1 END1 G00Z200 M30

珠山区18741902461: 帮忙编写一个数控铣宏程序椭半球长轴为50短轴为20 高度25操作系统是法兰克oim的 才料是直径60的 -
申眉巴柳: #1=0 WH[#1LE90]DO1#2=25*sin[#1] G01Z#2#3=0 WH[#3LE360]DO2#4=50*COS[#3]#5=20*sin[#13] G01X#4Y#5#3=#3+1 END2#1=#1+1 END1 试试对不

珠山区18741902461: 数控铣床宏程序怎样写? 最简单的实例就好.比如说一个正方形100*100外形深50,每次下刀2 请 -
申眉巴柳: #1=100 #2=100 #3=50 #4=2 #5=0 G00 X [#1/2] Y[#2/2] WHILE #5.LE. #3 G01 Z[-#5] F100 G01 X[-#1/2] F300 Y[-#1/2] X[#1/2] Y[#1/2] G00 Z2 #5=#5+#4 END大致就这样,具体的你在分析下 括号是不是要使用,你看看你的设备

珠山区18741902461: 谁能帮我编写一个数控加工中心的宏程序开框200*300*50厚,只要可以用,分数至少200以上 -
申眉巴柳: T1 M6;G49 G40 G80 G69 G50.1;依次取消刀长、刀偏、循环、坐标旋转、镜像G90 G54 G0 X0 Y0;用绝对坐标定位主轴到0位G43 H1 Z10. S8500 M13;刀具长度补偿G1 Z0 F500;#3=0; N1 #1=135;Y轴第一刀#2=85;X轴第一刀#3=#3-0....

珠山区18741902461: 求助数控加工中心宏程序编程 -
申眉巴柳: G90 G0X0 Y0;(X径向Y轴向) G43 Z100 H--;笭法蒂盒郦谷垫贪叮楷 M3 S--; Z0; Y6; G1 Y7.5 F--; #100=1;() #101=圆管外圆半径图中没标注; #103=#100; WHILE #100LT360 DO1; #100=#100+#103; G01 X7.5*COS#100 Y7.5*SIN#100 Z[SQRT[#101*#101-7.5*SIN#100]-#101] F--; END1; G90 G0Z100; M5; 这个是没考虑倒角大小的程序,图中没给,基本上肉眼看不出来.考虑倒角大小会复杂一些,道理是一样的.

珠山区18741902461: 求教数控宏程序.
申眉巴柳: #1=工件尺寸(解的初始值,相当于下刀点) #2=刀具半径(加数的初始值,相当于设置刀具半径补偿) N1 IF [#2 GT 10] GOTO 2(加工到尺寸超过10时,就转移到N2) #1=#1+#2 (计算解,相当于完成刀具半径补偿) #2=#2+1(下一个加数,+1相当于每次切削量) GOTO 1(没超过尺寸10,转移到N1) N2 M30 比较算符:EQ 等于NE 不等于GT 大于GE 大于或等于LT 小于LE 小于或等于

珠山区18741902461: 数控车宏程序编程 -
申眉巴柳: M03S600 T0101 G00X35Z2 G01X0 G00X30Z2 G71U4R1 G71P10Q20U0.5W0F200 N10G00X0Z0#1=0 N15#2=2/3*SQRT[-[#1*#1+30*#1]] G01X[2*#2]Z[#1]#1=#1-0.1 IF[#1GE-10]GOTO15 N20G00X20Z-15 G70P10Q20F0.1S1000 M05 M30 这是一个切椭圆用到了宏程序,希望帮助你

珠山区18741902461: 急求一个数控加工宏程序 -
申眉巴柳: 普通加工程序直接用数值指定G代码和移动距离;例如,GO1和X100.0.使用用户宏程序时,数值可以直接指定或用变量指定.当用变量时,变量值可用程序或用MDI面板上的操作改变. #1=#2+100G01 X#1 F300说明:变量的表示 计算机允许使用变量名,用户宏程序不行.变量用变量符号(#)和后面的变量号指定. 例如:#1表达式可以用于指定变量号.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网