简单的解释一下数控宏程序里的 变量 赋值 是什么意思?
宏程序中的代号,他好比我们小学学的X。
举个例子,当X=2时,那么5+X就等于7。
如果用户在程序中写上#1=5,那么下一段只要读到#1系统就知道是5了。
如果下面有一行程序为G0X[#1+2]Z30,那么系统就会把刀具走刀X是7的位置,Z走刀30的位置
如果在指令#1=#1-1的话那么系统每读到#1的时候都会在上一个#1的数据减掉1毫米。这就是它的作用,也就是不单单表示一个数据,它还能运用计算来完成一些编程比较麻烦的环境中。
扩展资料:
优点
1、可以编写一些非圆曲线,如宏程序编写椭圆,双曲线,抛物线等。
2、编写一些大批相似零件的时候,可以用宏程序编写,这样只需要改动几个数据就可以了,没有必要进行大量重复编程。
A类宏程序
1、变量的定义和替换 #i=#j
编程格式 G65 H01 P#i Q#j
例 G65 H01 P#101 Q1005; (#101=1005)
G65 H01 P#101 Q-#112;(#101=-#112)
2、加法 #i=#j+#k
编程格式 G65 H02 P#i Q#j R#k
例 G65 H02 P#101 Q#102 R#103;(#101=#102+#103)
3、减法 #i=#j-#k
编程格式 G65 H03 P#i Q#j R#k
例 G65 H03 P#101 Q#102 R#103;(#101=#102-#103)
参考资料来源:百度百科-数控宏程序
数控机床宏程序一般分两大类,一类叫用户程序(就是用户自己编的宏程序),另一种是机床宏程序,也就是系统变量(就是机床系统内定的程序,就规定是G代码、M指令的程序)
用户宏程序又分两大类:局部变量和公共变量,公共变量又分两类:非保持型公共变量和保持型公共变量
局部变量(#1~#33)就是换了程序该变量就没了,举个例子就是O0001中的#1只能在O0001中有效
非保持型公共变量(#100~#149)就是换了程序该变量还有,举个例子就是O0001中的#100=1,通过调用子程序的方法或是其它方法,在O0002中如果不重新赋值,#100=1,断电后数据不会记忆
保持型公共变量(#500~#549),这个就是断电后依然记忆数据,其它同上面那个例子
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;
数控机床宏程序一般分两大类,一类叫用户程序(就是用户自己编的宏程序),另一种是机床宏程序,也就是系统变量(就是机床系统内定的程序,就规定是G代码、M指令的程序)
用户宏程序又分两大类:局部变量和公共变量,公共变量又分两类:非保持型公共变量和保持型公共变量
局部变量(#1~#33)就是换了程序该变量就没了,举个例子就是O0001中的#1只能在O0001中有效
非保持型公共变量(#100~#149)就是换了程序该变量还有,举个例子就是O0001中的#100=1,通过调用子程序的方法或是其它方法,在O0002中如果不重新赋值,#100=1,断电后数据不会记忆
保持型公共变量(#500~#549),这个就是断电后依然记忆数据,其它同上面那个例子
假设
X+Y=5
则y=5-x
这是一个函数对吧
在这个函数里,x为变量
但是你需要的是一条线段或者射线怎么办?
那x就要设定一个
X的起始值假设等于1
那么这条线段的起点就是(1,4)对吧,记住这个点,过会可以用得上
也就是说一个变量X对应一个值Y
起始值就是X=1,我们就说X赋值为1
但是我们还知道在数控加工过程中刀具走的都是直线对吧
还是以以上的函数为例,x起始值为1,末了值为10,这是一条线段,我们让刀具每0.5mm增量为单位移动
那么就是x=1、1.5、2、2.5......9.5、10
暂时无视y
其中0.5也是我们的赋值
我们以这条线段为例,刀具中心走过这条线段,就要编辑以下宏程序:
#1=1(x起始值)、#2=0.5(增量)
#1=#1+#2
#3=5 - #1
即y=5-x
#1至#33 为变量
列#1=10
Z#1 意思就是Z10
赋值#5221代表G54坐标X方向
列#5221=500 然后你看你G54坐标里X方向是不是变成500
也可以#5221=【200+300】
你还是去买本书吧 太多了 不可能在知道里问完的 我只是给你举例
求1+2+3+...+10求鉴定
M3S600;
#1=0.;
#2=0.;
N99#1=#1+1;
#2=#2+#1;
IF[#1LT10]GOTO99;
M0;此时选择停止,记录1+2+3...+10的结果
M30;
数控宏程序代码#3000=1是什么意思
3000=1是给变量#3000的值就是1.在宏程序中储存数据,在程序中对其赋值。赋值是将一个数据赋予一个变量。例如#1=0,表示#1的值就是0,其中#1代表变量,并是变量符号,0就是给变量#1赋的值。例如 GO XO YO;#1-100;#1-50;G01 X100 F500;GO XO YO;#2-50;G01 X#1 F500;GO Xo Yo;G0...
数控车床编程中的宏程序是什么?
如果你是想提升,给你推荐一本书,绝对的经典!好像叫数控宏程序提升与训练,是以法拉克为范本写的,是广州的一个几届数控大赛冠军写的,里面全是中高级的宏程序编制方法技巧和思维方式,相当不错,他说任何一个好的宏程序编出来都不会超过64行!其实中高级最讲究的是技巧,优化,和简单,你在学习...
数控宏程序有用吗
宏程序---现在的加工工厂比较少用,也没什么用,,现在都是电脑编程。还有就是数控技能比赛的时候有用,其他时间一般不用。。。建议多学习电脑编程,UG
数控宏程序怎样编程什么指令,都不懂请教一下,那位好心人请解一下...
回答:我会一点点,是最基础的。。。而且也说不清。。。457937013 不知道能不能帮上忙
法兰克数控系统车宏程序有那些英文代码?例如:GT,EN,IF等,分别是什么意...
在法兰克数控系统宏程序中涉及英文代码的有运算指令、控制指令等。表示运算指令的有:GT表示大于,GE表示小于或等于,EQ表示等于,NE表示不等于,...;表示控制指令的有:IF表示的是条件转移语句1, GOTO表示的是无条件转移语句,WHILE表示的是循环语句 ,IF...THEN表示的是条件转移语句2...。
数控宏程序的使用方法
A类宏程序1)变量的定义和替换 #i=#j编程格式 G65 H01 P#i Q#j例 G65 H01 P#101 Q1005; (#101=1005)G65 H01 P#101 Q-#112;(#101=-#112)2)加法 #i=#j+#k编程格式 G65 H02 P#i Q#j R#k例 G65 H02 P#101 Q#102 R#103;(#101=#102+#103)3)减法 #i=#j-#k...
数控宏程序编程
宏程序编程 一 变量 普通加工程序直接用数值指定G代码和移动距离;例如,GO1和X100.0。使用用户宏程序时,数值可以直接指定或用变量指定。当用变量时,变量值可用程序或用MDI面板上的操作改变。 #1=#2+100G01 X#1 F300说明:变量的表示 计算机允许使用变量名,用户宏程序不行。变量用变量符号(#)...
法拉克数控宏程序命令解答!
1 =0;2 =1;N10 G10 P0 L2 Z#1; (G10修改工件坐标系,P0对应的是外部坐标系,L2固定不变,Z#1Z=0)M98 P154;(M98 P154 调用子程序O154)1 =#1-13;2 =#2+1;IF [#2 LT 14] GOT010; (#2≥14 GOTO10 跳程序段N10)G0 X100 Z200;M30;
数控宏程序初学者怎样学
一个从来没有接触过宏程序的人,要怎么样才能理解里面所有代码的含义,要最容易理解的,不想要复制别人的内容,希望有谁能用简便的方式来表达,谢谢...·! 展开 2个回答 #热议# 已婚女性就应该承担家里大部分家务吗?匿名用户 2013-11-16 展开全部 从确定走刀路线、选择合适的G命令等细节出发,分析在数控车削中...
你好,我现在刚学数控车床,老师讲的宏程序听不懂。后机想向你请教一下...
我先给你个程序你输进去再一步一步的看就会了 O9999;G54G90X0Y0Z60M03S900;X90Y110.14;Z-3F50;G02X90Y82.08R22.15F150;X25.58Y28.62R197.15;X143.49Y70.63R135.6;X64.99Y47.62R251.38;G01X70.26Y54.01;X61.64Y28.43;G02X71.72Y44.4R30.81;X68.49Y31.77R6.89;G01...
太服佳多:[答案] 这是宏程序中的概念,跟函数的变量和自变量是一个意思. 自变量是主动变化的,由于自变量的变化,引起变量的值发生变化.
普洱市13695375650: 数控宏变量是什么意思 - ?
太服佳多: 宏程序可以使用变量进行编程,还可以用宏指令对这些变量进行赋值,运行等处理.按变量号码可将变量分为局部变量,公共变量,系统变量,其用途和性质都是不同.
普洱市13695375650: 简单的解释一下数控宏程序里的 变量 赋值 是什么意思? - ?
太服佳多: 基本指令: H01赋值;格式:G65H01P#101Q#102:把#102内的数值赋予到#101中 G65H01P#101Q#10:把10赋予到#101中 H02加指令;格式G65 H02 P#101 Q#102 R#103,把#102的数值加上#103的数值赋予#101G65 H02 P#101 Q#102...
普洱市13695375650: 数控宏程序变量是什么 - ?
太服佳多: 用变量来编程,比如函数运算,车椭圆,抛物线等都要用到宏变量.
普洱市13695375650: 加工中心宏程序中#1~#30他们各代表什么意思 - ?
太服佳多:[答案] 宏程序是加工编程的重要补充.数控系统变量表示形式为#后跟1~4位数字,变量种类有三种:(1)局部变量:#1~#33是在宏程序中局部使用的变量,它用于自变量转移.(2)公用变量:用户可以自由使用,它对于由主程序调用的各子...
普洱市13695375650: 宏程序里面说的自变量是什么? - ?
太服佳多: 自变量是在本程序中单独使用的 主程序和子程序互不影晌 打个比方说如#1 主程序 #1=4 子程序的#1=10 回到主程序 #1仍然是4 公共变量就会被重新赋值 #1-#33为自变量 #100-#199 公共变量 断电复位清零 #500-#599 公共变量 断电复位不清零
普洱市13695375650: CNC都有那些变量都是什么 意思、如#3004=2等等 - ?
太服佳多:[答案] 大家都在问宏程序~其实说起来宏就是用公式来加工零件的,比如说椭圆,如果没有宏的话,我们要逐点算出曲线上的点,... 而变量#500~#531保持数据.我们如果说#100=30那么现在#100地址内的数据就是30了,就是这么简单.好现在我来说一下H代...
普洱市13695375650: 请问宏程序与宏变量的定义是怎么样的??? - ?
太服佳多: 宏程序的定义宏程序:由用户编写的专用程序,它类似于子程序,可用规定的指令作为代号,以便调用.宏程序的代号称为宏指令.宏程序的特点:宏程序可使用变量,可用变量执行相应操作;实际变量值可由宏程序指令赋给变量. 基本指...
普洱市13695375650: 数车宏程序 系统变量怎么用 有什么用?该怎么用 - ?
太服佳多: 宏程序就是用变量代替数字编写的程序,适合同一类产品的加工,只需要修改变量数据就可以加工相同类型的零件.变量 :局部变量,公用变量(全局变量),系统变量三种;#1-#33 是局部变量,在同一个主程序,不同子程序中,变量值不同,只用于子程序中;#100-#149,#500-#509 是公用变量,在同一个主程序中,变量值是相同的;系统变量一般在#1000 以上,用于存储系统参数的地方,宏程序可以对机床内部变量进行读取和赋值,从而可以完成复杂任务.
普洱市13695375650: 加工中心宏程序 - ?
太服佳多: 一、变量1、变量的表示 FANUC系统使用“#”表示变量,例如:#1、#100等.变量根据变量号可以分成四种类型,见下表.变量号 变量类型 功能#0 空变量 该变量总是空,任何值都不能赋给该变量#1~#33 局部变量 局部变量只能用在宏程序中...