变量编程宏程序

合集下载

宏程序编程之系统变量

宏程序编程之系统变量

宏程序之系统变量普通的加工程序直接数字标注G代码和移动距离,例如G55 X55.0,用定制宏指令时,可以直接用数字或使用变量。

当使用变量号时可通过程序或MDI操作改变变量值,例如:#33=#1+10.5 G01 X#1 F500变量的表示:当标注一个变量时在符号(#)的后面标注变量号,例如:#1表达式可以用来当变量号,但表达式必须放在括号里,例如:#[#33-2+#4]变量的类型:变量的取值范围:局部变量和公共变量可以取常规范围内的任意值,如果计算无结果会P/S 警报器报警。

小数点的使用:在程序中给变量进行赋值时,可以省略小数点。

例如:#1=100;意义就是变量#1的实际值是100.000。

变量的使用:在程序中要使用一个变量值,在地址语句后面标注变量号即可,当用表达式标注变量时表达式要放在括号里,例如:G02 I[#1+#18]F#9;在1/1000mm的增量系统中被使用的变量值的小数点后面第四位会被四舍五入。

例如:#1=500.123678;那么当执行G00X#1时实际的命令会被翻译成G00X500.124;当使用了一个没有定义的变量时,该变量会被忽略。

例如#1=0;#2是空,那么当运行G00X#1Y#2;时其结果是G00X0;未定义的变量:当没有给变量定义值时,该变量称为“空”变量。

变量#0永远是空变量,它不能写,但能读。

比如: 当使用了一个没有定义的变量时,该变量会被忽略。

除非用<空>代替否则 <空>等于0, 当用在条件表达式时:只在EQ 和NE 时<空>才不等同于0变量不能使用的情况:程序号、顺序号、选择快的跳跃不能使用变量。

例如:O#2;/#3G00Z300.0; N#9Y1000.0; 这种情况都是不可以使用变量的情况。

系统变量 :可以用系统变量读和写CNC 内部的数据,如当前的工件坐标系中的位置和刀具偏置数据,有些系统变量只能读。

系统变量对编写自动化程序和通用程序十分重要。

数控车宏程序编程方法及技巧

数控车宏程序编程方法及技巧
在数控车床编程中,宏程序
编程灵活、高效、快捷。宏程序不 仅可以实现象子程序那样,对编制 相同加工操作的程序非常有用,还 可以完成子程序无法实现的特殊功 能,例如: 系列零件加工宏程序、
椭圆加工宏程序、抛物线加工宏程 序、双曲线加工宏程序等。
数控车床宏程序编程特征 ➢ 宏程序中的变量 ➢ 宏程序变量间的运算指令 ➢ 宏程序的控制语句 数控车床宏程序编程技巧编程实例 ➢ 宏程序用于系列零件的加工 ➢ 椭圆类零件的宏程序编制 ➢ 抛物线类零件的宏程序编制 ➢ 双曲线过渡类零件的宏程序编制
变量及变量的引用
(1)、变量的表示
#i #[表达式]
——(变量号i=0,1,2,3,4……) 例:#8、#110、#1100 ——表达式必须用括号括起来 例:#[#1+#2-12]
(2)、变量的引用
<地址>#1 <地址> - #1
例:F#10——当#10=20时,F20被指令。 X- #20——当#20=100.时,X-100.被指令。 G#130——当#130=2时,G2被指令。
…… END 3; …… END 2 …… END 1;
1.宏程序用于系列零件的加工
宏程序用于系列零件的加工,此系列零件形状 相同,但是部分尺寸不同,如果将这些不同的尺寸 用宏变量表示,由程序自动将相关基点坐标进行计 算则可用同一个程序完成一个系列零件的加工。
以上图为例。该系列零件的右端面半球球径可取 R10与R15,可将球径用变量表示,编程原点设在工 件右端面中心,毛坯直径¢45.从图中可以看出编程所 需基点A·D ·E三点外,B ·C点均与球径R相关, 下面给出各基点坐标:
2.宏程序变量间的运算
加法:#i=#j + #k 减法: #i=#j - #k 乘法: #i=#j * #k 除法: #i=#j / #k

宏程序基本知识

宏程序基本知识

程序
G54G17G90G40
G00Z30M03S2000 定位于G54上方30mm处
X=R24Y=R25 移动刀具至圆心上方
AA:Z=-R4+1
接近工件
R4=R4+R17
指定当前加工高度
G01Z=-R4F50 下刀至加工位置
L10
调用子程序加工当前层
IF R4<R2-R17 GOTOB AA 如果当前加工深度比预定的还少一个层间距以上时,
G03I=-R8
逆时针走全圆
IF R8<R6-R5 GOTOB BB当当前偏移距离比最大走圆半径还少一个行距以上
时,继续加工
G01X=R24+R6
否则刀具移动到最大圆的走刀起点
G03I=-R6
逆时针走全圆
G00Z=-R4+0.5
提刀0.5mm
X=R24Y=R25
移动至孔的中心位置
RET
子程序结束,返回主程序
运算
控制指令
程序一般是顺序执行,使用控制指令起到控制程序流向的作用,常用的有下列三种: 1、无条件分支 格式:GOTOn 例:GOTO100,含义为程序转向N100程序段处。 2、条件分支 格式:IF[条件表达式]GOTOn 含义:若条件表达式成立,则程序转向段号为n的程序段处,否则继续执行下一句程序。 3、循环 格式:WHILE[条件表达式]DOm(m=1、2、3) ------- ENDm 含义:当条件满足时,招待WHILE与END之间的程序段,否则执行ENDm下一句程序段。
关量,电源关时不消失。 (3)系统变量(#2000~):如刀具补偿值#2000~#2200,工件偏置#5201~#5326. 3、变量的使用 在地址符(O、N、G、L、P及/除外)后接变量,如: F#1:如果#1=100.0,则表示F100 Z-#26:如果#26=3.0,则表示Z-3.0

宏程序变量设置

宏程序变量设置

宏程序大家都在问‎宏程序~其实说起来‎宏就是用公‎式来加工零‎件的,比如说椭圆‎,如果没有宏‎的话,我们要逐点‎算出曲线上‎的点,然后慢慢来‎用直线逼近‎,如果是个光‎洁度要求很‎高的工件的‎话,那么需要计‎算很多的点‎,可是应用了‎宏后,我们把椭圆‎公式输入到‎系统中然后‎我们给出Z‎坐标并且每‎次加10u‎m那么宏就‎会自动算出‎X坐标并且‎进行切削,实际上宏在‎程序中主要‎起到的是运‎算作用..宏一般分为‎A类宏和B‎类宏.A类宏是以‎G65 Hxx P#xx Q#xx R#xx的格式‎输入的,而B类宏程‎序则是以直接的公‎式和语言输‎入的和C语言很相似在0‎i系统中应‎用比较广.由于现在B‎类宏程序的‎大量使用很多书都‎进行了介绍‎这里我就不‎再重复了,但在一些老‎系统中,比如法兰克‎O TD系统‎中由于它的‎M DI键盘‎上没有公式‎符号,连最简单的‎等于号都没‎有,为此如果应‎用B类宏程‎序的话就只‎能在计算机‎上编好再通‎过RSN-32接口传‎输的数控系‎统中,可是如果我‎们没有PC‎机和RSN‎-32电缆的‎话怎么办呢‎,那么只有通‎过A类宏程‎序来进行宏‎程序编制了‎,下面我介绍‎一下A类宏‎的引用; A类宏是用‎G65 Hxx P#xx Q#xx R#xx或G6‎5 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赋值‎;格式:G65H0‎1P#101Q#102:把#102内的‎数值赋予到‎#101中G65H0‎1P#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和H‎34本来应‎该是TAN‎和ATAN‎的可是经过‎我使用得数‎并不准确,希望有知道‎的人能够告‎诉我是为什‎么? 开平方根指令: H21;格式G65‎H21 P#101 Q#102 ;意思是把#102内的‎数值开了平‎方根然后存‎到#101中(这个指令是‎非常重要的‎如果在车椭‎圆的时候没‎有开平方跟的指令是‎没可能用宏‎做到的. 无条件转移‎指令: H80;格式:G65 H80 P10 ;直接跳到第‎10程序段‎有条件转移‎指令: H81 H82 H83 H84 H85 H86 ,分别是等于‎就转的H8‎1;不等于就转‎的H82;小于就转的‎H83;大于就转的‎H84;小于等于就‎转的H85‎;大于等于就‎转的H86‎;格式:G65 H8x P10 Q#101 R#102;将#101内的‎数值和#102内的‎数值相比较‎,按上面的H‎8x的码带‎入H8x中‎去,如果条件符‎合就跳到第‎10程序段‎,如果不符合‎就继续执行‎下面的程序‎段. 用户宏程序能完成某一‎功能的一系‎列指令像子‎程序那样存‎入存储器,用一个总指‎令来它们,使用时只需‎给出这个总‎指令就能执‎行其功能。

宏程序变量

宏程序变量

1.变量:正如计算机程序设计中的变量一样,数控程序中也需要使用变量。

要进行程序流程控制,变量是必不可少的。

数控编程中的变量用符号#跟一个整数表示。

例如#1就是一个变量。

给变量赋值的方法和计算机编程一样,如#1=5。

(相当于basic或C语言的a=5,pasc al的a:=5。

)数控编程中的变量按作用域可分为三类:局部变量、全局变量、系统变量。

#1~#33是局部变量,局部变量只在本程序内起作用;#100~#199、#500~#599(现在很多系统都不止599了)是全局变量,在所有程序中起作用;#1000以上的是系统变量,控制着机床运行的各种状态,不要轻易修改。

局部变量不能在程序运行时再加以修改,只能由程序控制。

在使用局部变量时,必须在程序中赋初值。

全局变量可以程序运行时人为地加以修改。

在使用全局变量时,可以不在程序中赋初值,而在加工时打入所需值。

补偿量的本质是变量。

#0是空变量(相当于pascal的nil,C的NULL),不能给#0赋值。

注意:空变量和0是不同的。

正像在pascal里定义一个指针型变量p,则如下两句程序是不同的:p:=nil、p^:=0。

(或者C语言里的p=NULL、*p=0)当#1为0时,G1X100Y#1相当于G1X100Y0,而当#1为空时,G1X100Y#1相当于G1X100。

当#1为0时,G#1X100相当于G0X100,而当#1为空时,G#1X100相当于X100。

表示变量的#号后面的数也可以是表达式或变量。

例如,已知#1=5,#2=30,#3=25,#4=0,#5=80则#6=#[#1]相当于#6=80;#[3+4]=128相当于#7=128;#8=#[#4]相当于#8为空;#9=#[#2-#3]相当于#9=80;G#4X#2*#1Y#[#4]相当于G0X150。

变量可以自增或自减,变量经过运算后的值可以赋给自身。

例如,当前#1=3;则执行#1=#1 +1后#1的值是4。

解析变量和宏程序在数控编程中的应用

解析变量和宏程序在数控编程中的应用

解析变量和宏程序在数控编程中的应用摘要:数控编程过程中,对于编程内的工艺和结构使用比较相同的零件,为了避免数控编程在工作中出现问题。

针对这些比较相似的零件需要采用宏程序方法,降低工作强度,提高数控编程效率。

同样数控加工过程中遇到的有关非圆曲线等零件,需要运用数控编程中的变量应用,变量在简化数控过程中有很重要的作用。

关键词:宏程序数控编程变量参数1 宏程序的功能数控零件加工过程中遇到方程轮廓加工时往往会在控制程序能力方面减弱如,抛物线、摆线、等的曲线,一般的数控机曲线控制的功能。

但是宏程序就能够解决这一问题,在程序控制使用过程表现得极为灵活方便,运作形式上很自由,加工程序上相对比较简单是加工程序中的必要补充。

其中宏程序中也带有一定量变量的子程序,变量在宏程序中起着关键的作用,具有数据运算、逻辑推理和程序循环等多方面功能,是一种实现数控技术更高度化的特殊方法。

同时宏程序中也能够在用户宏程序主体上,使用变量和宏程序命令。

2 变量2.1 变量的概念变量是控制程序中一个不断变化的的值,变量种类分为三类:公用变量、局部变量和系统变量。

其中系统变量就是由#(#变量符号)后的4位数字来定义系统变化,能够获取机床内的处理器或是内存中的可读信息如机床状态参数、机床与机床处理器之间的交换参数和加工参数等。

变量与变量,变量与常量之间能够进行各种方式运算,如函数运算、或是加减及逻辑运算。

2.2 变量在非圆曲线编程中的应用数控编程过程中对程序中出现的有关曲线轮廓不能进行完整的控制或是运算,通常只能完成圆弧或是直线的插补。

现代化机械中对于曲线或是非圆曲线的加工控制越来越明显,电子产业加工要求零件在质量方面要有所保障,外观上要求精细精确度高。

因此,只有选择比较复杂的处理器才能够对相关数进行准确的表达或运算。

上述提到手工编程控制在很多功能上优于自动化编程控制,但是针对这种比较复杂的控制程序需要自动编程控制器进行有效的处理。

自动化编程控制如CAM、CAXA数控车、MASTER等,这些数控软件可以对非圆曲线进行直接详细的运算,虽然自动化编程的程序比较长,但是经常使用的方式是节点运算法或是变量法,如果采用G01就可以对例如椭圆形状的曲线进较小程序的运算。

图文解说B类宏程序 实用的宏程序编程

图文解说B类宏程序  实用的宏程序编程

未定义的变量 当变量值未定义时,这样的变量成为“空”变量。变量#0 总是空变量。
它不能写,只能读。 (a)引用 当引用一个未定义的变量时,地址本身也被忽略。
(b)运算 除了用<空>赋值以外,其余情况下<空>与 0 相同。
当变量值是空白时,变量是空。 符号********表示溢出(当变量的绝对值大于 99999999 时)或下 溢出(当变量的绝对值小于 0.0000001 时)。 限制
·注意,相对误差可能大于 10-8。 自然对数#i=LN[#j]; ·当反对数(# j)为 0 或小于 0 时,发出 P/S 报警 No.111。 ·常数可以代替变量# j。 ·注意,相对误差可能大于 10-8。 指数函数#i=EXP[#j] ·当运算结果超过 3.65×1047(j 大约是 110)时,出现溢出并发出 P/S 报警 No.111。 ·常数可以代替变量#j。 ROUND(舍入)函数 ·当算术运算或逻辑运算指令 IF 或 WHILE 中 包含 ROUND 函数时,则 ROUND 函数在第 1 个小数位置四舍五入。 例: 当执行#1=ROUND[#2];时,此处#2=1.2345,变量 1 的值是 1.0。 ·当在 NC 语句地址中使用 ROUND 函数时,ROUND 函数根据地址 的最小 设定单位将指定值四舍五入。 例: 编制钻削加工程序,按变量#1 和#2 的值切削,然后返回到初始位置。 假定最小设定单位是 1/1000mm,变量#1 是 1.2345, 变量#2 是 2.3456, 则, G00 G91 X-#1;移动 1.235mm G01 X-#2 F300;移动 2.346mm G00 X[#1+#2];由于 1.2345+2.3456=3.5801,移动距离为 3.580,刀具 不会返回到初始位置。 该误差来自于舍入之前还是舍入之后相加。必须指定 G00 X-[ROUND[#1]+ROUND[#2]]以使刀具返回到初始位置。 上取整和下取整

数控车宏程序编程方法及技巧

数控车宏程序编程方法及技巧
(如果X向当前点坐标大于26跳转到56句从 新定起点)
END 2 G0 U2; Z26;(退刀) IF [#20 GE 0] GOTO 100;
(如果余量大于等于0跳转到100句)
G0 X100; M05; M30;
3.抛物线类零件的宏程序编制 抛物线的一般方程:
X 2 2PZ(或Z2 2PX)
在数控车床编程中,宏程序编
程灵活、高效、快捷。宏程序不仅 可以实现象子程序那样,对编制相 同加工操作的程序非常有用,还可 以完成子程序无法实现的特殊功能, 例如: 系列零件加工宏程序、椭圆
加工宏程序、抛物线加工宏程序、 双曲线加工宏程序等。
主要内容
数控车床宏程序编程特征 宏程序中的变量 宏程序变量间的运算指令 宏程序的控制语句 数控车床宏程序编程技巧编程实例 宏程序用于系列零件的加工 椭圆类零件的宏程序编制 抛物线类零件的宏程序编制 双曲线过渡类零件的宏程序编制
两者不为一个值,关系为
tan
a b
tan
椭圆宏程序结构流程:
1.开始 2.给常量赋值
3.给变量赋值
4.计算坐标值
5.指令机床沿曲线移动X,Z坐标
6.变量递增或递减
7.判断是否到达终点
未到终点返回4.计算坐标值
8.到终点结束
椭圆加工: 零件材料 45钢,毛 坯为 φ50mm×1 00mm,按 图要求完 成数控加 工程序。
【解答】
O0001; T0101 ; M03 S800; G0 X51. Z2.; G71 U1.5 R1. ;(粗车右端外形轮廓) G71 P10 Q20 U0.5 W0.1 F150 ; N10 G1 X25.966;(椭圆处外径) Z0.; Z-19.; X35.988 Z-29.; Z-46; X44.; X45.992 Z-47.; N20 Z-55.; G70 P10 Q20 S1000 F120;(精车右端外形轮廓) G00 X100.; Z50.;

宏程序编程的最佳操作方法

宏程序编程的最佳操作方法

宏程序编程的最佳操作方法宏程序编程是一种用于自动化重复性任务的方法,它可以简化代码编写,并提高开发效率。

以下是关于宏程序编程的最佳操作方法:1. 确定用途:确定宏程序的实际用途和目标。

它可以是简化重复的任务、自动执行复杂的操作或者提高效率。

明确宏程序的目的能够帮助你更好地设计和编写代码。

2. 计划流程:在编写代码之前,先制定一个计划或者流程图。

明确宏程序的执行顺序、需要的输入和输出,以及可能的异常处理。

这将有助于你更好地组织代码和调试错误。

3. 使用合适的工具:选择一个适合宏程序编程的工具或者编辑器。

常见的工具包括VBA(Visual Basic for Applications)、AutoHotKey、Sikuli等。

选择一个你熟悉且功能强大的工具,能够提高你的开发效率。

4. 使用变量和函数:在宏程序编程中,使用变量和函数能够使你的代码更加灵活和可维护。

变量可以用于保存临时数据或者配置信息,函数可以将一些重复的操作封装起来,提高代码的复用性。

5. 错误处理和异常处理:在宏程序中,处理错误和异常非常重要。

合理地使用条件语句和异常处理机制,可以帮助你检测和处理代码中的错误和异常情况,使程序更加健壮和可靠。

6. 调试和测试:在编写完宏程序后,进行适当的调试和测试。

使用调试器或者打印日志等方法来定位和修复代码中的错误。

同时,编写测试用例并运行它们,以确保宏程序在各种情况下都能正常工作。

7. 文档和注释:宏程序可能会有多个开发人员参与或者在未来进行维护。

因此,编写清晰、易懂的代码,并添加适当的注释和文档,可以帮助其他人理解和修改你的代码。

总之,宏程序是一种强大的工具,可以极大地提高工作效率。

通过合理地规划、设计和编写代码,使用合适的工具和技术,以及进行适当的调试和测试,可以确保你的宏程序高效、稳定地运行。

宏程序变量设置

宏程序变量设置

宏程序大家都在问宏程序~其实说起来宏就是用公式来加工零件的,比如说椭圆,如果没有宏的话,我们要逐点算出曲线上的点,然后慢慢来用直线逼近,如果是个光洁度要求很高的工件的话,那么需要计算很多的点,可是应用了宏后,我们把椭圆公式输入到系统中然后我们给出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 和A TAN的可是经过我使用得数并不准确,希望有知道的人能够告诉我是为什么? 开平方根指令: 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程序段,如果不符合就继续执行下面的程序段. 用户宏程序能完成某一功能的一系列指令像子程序那样存入存储器,用一个总指令来它们,使用时只需给出这个总指令就能执行其功能。

数控编程宏程宏入门,变量的认识,由浅入深学会宏程序!

数控编程宏程宏入门,变量的认识,由浅入深学会宏程序!

数控编程宏程宏入门,变量的认识,由浅入深学会宏程序!觉得此文对你有所帮助的朋友,请收藏转发!收藏同时也请不要吝惜在评论区给小编任意留言,或文末点个赞!也好让小编知道有多少人看,也是以后更新的动力!1.什么是宏程序?在数控编程中,用户宏程序是数控系统中的特殊编程功能。

所谓用户宏程序其实是把一组带有变量的子程序事先存储在系统存储器中,并通过主程序中的宏程序调用指令调用并执行这一组程序。

由于数控系统的指令功能有限,而宏程序功能可以显著地增强机床的加工能力,同时可精简程序,所以宏程序编程是加工编程的重要补充。

用户宏程序可以用公式来加工零件,例如加工椭圆,如果用常规的编程方法,需要逐点算出曲线上的点,然后用直线或圆弧进行拟合逼近,所以编程时需要计算很多的点。

如果使用用户宏程序,可以直接把椭圆公式编入到程序中,加工零件时系统会自动计算出曲线上各点的坐标,大大减轻了编程的工作量。

2.什么是变量?变量是指在程序的运行过程中随时可以发生变化的量。

普通加工程序直接用数值指定G代码和移动距离;例如,G01和X100.0等,这些数值都是常量,所以一个程序只能描述一个几何形状。

而用户宏程序本体中可以使用变量进行编程,编程时可以使用变量进行算术运算、逻辑运算和函数的混合运算,这样就可以实现编制一个程序,即可加工尺寸不同但是形状相同的工件,加工时只需修改少数几个参数,从而可以使用宏程序执行一些有规律变化的动作。

变量分局部变量,公共变量(全局变量)和系统变量三种。

局部变量是一个在宏程序中局部使用的变量,即只在本程序内起作用。

例如当宏程序A调用宏程序B而且都有变量#1时,由于变量#1服务于不同的宏程序,所以宏程序A中数控cnc的#1与宏程序B 中的#1不是同一个变量,因此可以赋于不同的值,相互间互不影响。

局部变量不能在程序运行时加以修改,只能由程序控制。

在使用局部变量时,必须在程序中赋初值。

当断电时,局部变量被初始化为空,调用宏程序时,自变量对局部变量赋值,公共变量贯穿于整个程序过程,即在所有程序中起相同的作用。

一文搞懂数控车宏程序的变量及应用,值得收藏!

一文搞懂数控车宏程序的变量及应用,值得收藏!

邹军:邀你一起学CNC宏程序编程(基础篇)《宏程序编程》3.0版本,是军哥的第三套宏程序教程。

主要传授数车宏程序编程。

当我自己写了这么多套教程,我才发现其实市面大部分书籍,资料都太垃圾。

为什么这么说呢?先看看下面截图内容:这是市面上销量不错的宏程序书籍中的内容,军哥截取了部分。

没有对比就没有伤害,军哥给你分享《宏程序编程》3.0版本宏变量的内容。

学宏程序之前要先学变量。

1,什么是变量军哥,你经常说玩宏就是玩变量,什么是变量啊?一脸迷惑的小白想从军哥这得到答案。

军哥把桌上的电脑转动到小白面前,让他先看了看下面这个零件图。

问道,你该知道这个零件如何编写程序吧。

小白一看,这个简单,不就车外圆吗?自己计算点位坐标一句一句写代码,于是………..G0X42.Z2.X36.G01Z-30.F0.1X42.G0Z2.X32.G01Z-30.F0.1…………这种办法可以编写出来,但是OUT了,小白突然想起G90,G71等循环指令,是的,G90 G71等循环指令,其实是系统厂商用宏程序开发出来的G代码。

本质上属于宏程序范畴,你学会宏程序,也可以定义属于自己的G代码,让程序通用性强,关于这点绝活,军哥我后面传授,就目前而言,先把变量理解透彻。

你看上面程序G代码后面都是些具体的数值,那么变量并非是一个具体数值,而是由符号来代替具体数值。

举个例子,上面零件毛坯为D42 ,要加工到尺寸D20,长为20,那么我用符号#1,#2,#3分别定义为毛坯尺寸,要加工到的尺寸,加工的长度等。

这个程序如下军哥我用#1,#3等符号来代表零件的毛坯尺寸,零件的长度等,加工形状相似,尺寸不同的零件,这个程序就有了通用性。

看完军哥的讲解,小白顿时觉得采用#1,#2这种符号来编写程序太方便了。

于是小白接着问:“#1,#2,#3这种“符号”怎么理解?是不是还可以使用#4,#5,#6等等。

军哥我知道小白是个善于思考的人,于是就给他讲到:这些符号就是宏变量,你看市面上有不少数控系统,如三菱,法拉克,哈斯,广州数控,华中数控等等,变量都是由#和数字组成。

宏程序变量说明

宏程序变量说明

用户宏程序变量说明变量普通加工程序直接用数值指定G代码和移动距离;例如,G01 和X100.0。

使用用户宏程序时,数值可以直接指定或用变量指定。

当用变量时,变量值可用程序或用MDI 面板操作改变。

#1=#2+100;G01 X#1 F300;说明变量的表示一般编程方法允许对变量命名,但用户宏程序不行。

变量用变量符号(#)和后面的变量号指定。

例如:#1表达式可以用于指定变量号。

此时,表达式必须封闭在括号中。

例如:#[#1+#2-12]变量的类型变量根据变量号可以分成四种类型。

变量号变量类型功能#0 空变量该变量总是空,没有值能赋给该变量。

#1—#33 局部变量局部变量只能用在宏程序中存储数据,例如,运算结果。

当断电时,局部变量被初始化为空。

调用宏程序时,自变量对局部变量赋值。

#100—#199 公共变量#500—#999 公共变量在不同的宏程序中的意义相同。

当断电时,变量初始化为空。

变量#500——#999 的数据保存,即使断电也不丢失。

#1000— 系统变量系统变量用于读和写CNC 的各种数据,例如,刀具的当前位置和补偿值。

注意小数点的省略当在程序中定义变量值时,小数点可以省略。

例:当定义#1=123;变量#1 的实际值是123.000。

变量的引用在地址后指定变量号即可引用其变量值。

当用表达式指定变量时,要把表达式放在括号中。

例如:G01X[#1+#2]F#3;被引用变量的值根据地址的最小设定单位自动地舍入。

例如:当系统的最小输入增量为1/1000mm 单位,指令G00X#1,并将12.3456 赋值给变量#1,实际指令值为G00X12.346;。

改变引用变量的值的符号,要把负号(—)放在#的前面。

例如:G00X—#1;(a)引用当引用一个未定义的变量时,地址本身也被忽略。

例如:当变量#1 的值是0,并且变量#2 的值是空时,G00X#1 Y#2 的执行结果为G00X0;(b)运算除了用<空>赋值以外,其余情况下<空>与0 相同。

变量编程宏程序

变量编程宏程序

变量值是不含小数点的数值,它以系统的最小输入 单位为值的单位.如:当#100 = 10时,X # 100 代表0.01mm.另外,用G65指定的H代码,对 刀具长度补偿的偏置号的选择,没有任何影响. 在使用宏程序运算命令时,当变量以角度形式指定 时,其单位是0.001°.在各运算中,当必要的 Q,R没有指定时,系统自动将其值作为"0"参 加运算.而且运算,转移命令的H,P,Q,R都 必须写在G65之后,因此可以在G65以前的地址 只有O,N. 由于变量值只取整数,当运算结果出现小数 点后的数值时,其值将被舍掉.另外,还应注意 宏程序的运算顺序与普通运算的区别.
例一 椭圆编程
#1=0; WHILE[#1GE-180]DO1; G01X[59+2*6*SIN[#1]]Z[12* COS[#1]-27]; #1=#1-1 END1
例二 抛物线编程
#1=20; WHILE[#1GE11.5 ]D; #1=#1-0.1; END1
2)公共变量 与局部变量相对,公共变量是在主程序,以及 调用的子程序中通用的变量.因此,在某个用 户宏中运算得到的公共变量的结果#i,可以用 到别的用户宏中.公共变量主要由#1~#149 及#500~#531构成.其中前一组是非保持型 (操作型),即断电后就被清零,后一级是保持 型,即断电后仍被保存
(4)G65 H83 Pn Q#J R#K; n:目标程序段号 例 G65 H83 P1000 Q#201 R#202; 当#201>#202时,转到N1000程序段,当 #201≤#202时,程序继续执行. (5)G65 H84 Pn Q#J R#K;n:目标程序段号 例 G65 H84 P1000 Q#201 R#202; 当#201<#202时,转到N1000程序段.当 #201≥#202时,程序继续执行. (6)G65 H85 Pn Q#J R#K; n:目标程序段号 例 G65 H85 P1000 Q#201 R#202;

宏程序变量设置

宏程序变量设置

宏程序变量设置宏程序大家都在问宏程序~其实说起来宏就是用公式来加工零件的,比如说椭圆,如果没有宏的话,我们要逐点算出曲线上的点,然后慢慢来用直线逼近,如果是个光洁度要求很高的工件的话,那么需要计算很多的点,可是应用了宏后,我们把椭圆公式输入到系统中然后我们给出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除指令;格式G65H05P#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程序段,如果不符合就继续执行下面的程序段. 用户宏程序能完成某一功能的一系列指令像子程序那样存入存储器,用一个总指令来它们,使用时只需给出这个总指令就能执行其功能。

宏程序变量编程

宏程序变量编程

宏程序变量编程普通加工程序直接用数值指定G代码和移动距离;例如,GO1和X100.0。

使用用户宏程序时,数值可以直接指定或用变量指定。

当用变量时,变量值可用程序或用MDI面板上的操作改变。

普通加工程序直接用数值指定G代码和移动距离;例如,GO1和X100.0。

使用用户宏程序时,数值可以直接指定或用变量指定。

当用变量时,变量值可用程序或用MDI面板上的操作改变。

#1=#2+100G01 X#1 F300说明:变量的表示计算机允许使用变量名,用户宏程序不行。

变量用变量符号(#)和后面的变量号指定。

例如:#1表达式可以用于指定变量号。

此时,表达式必须封闭在括号中。

例如:#[#1+#2-12]变量的类型变量根据变量号可以分成四种类型1.变量号:#0变量类型:空变量功能:该变量总是空,没有值能赋给该变量。

2.变量号:#1-#33变量类型:局部变量功能:局部变量只能用在宏程序中存储数据,例如,运算结果.当断电时,局部变量被初始化为空.调用宏程序时,自变量对局部变量赋值。

3.变量号:#100-#199、#500-#999变量类型:公共变量功能:公共变量在不同的宏程序中的意义相同.当断电时,变量#100-#199初始化为空.变量#500-#999的数据保存,即使断电也不丢失。

4.变量号:#1000 变量类型:系统变量功能:系统变量用于读和写CNC运行时各种数据的变化,例如,刀具的当前位置和补偿值。

变量值的范围局部变量和公共变量可以有0值或下面范围中的值: -1047到-10-29或-10-2到-10474.变量号:#1000变量类型:系统变量功能:系统变量用于读和写CNC运行时各种数据的变化,例如,刀具的当前位置和补偿值。

变量值的范围局部变量和公共变量可以有0值或下面范围中的值:-1047到-10-29或-10-2到-1047如果计算结果超出有效范围,则发出P/S报警NO.111.小数点的省略当在程序中定义变量值时,小数点可以省略。

宏程序使用说明

宏程序使用说明

第五章用户宏程序变量普通加工程序直接用数值指定G代码和移动距离;例如,GO1和。

使用用户宏程序时,数值可以直接指定或用变量指定。

当用变量时,变量值可用程序或用MDI面板上的操作改变。

#1=#2+100G01 X#1 F300说明:●变量的表示计算机允许使用变量名,用户宏程序不行。

变量用变量符号(#)和后面的变量号指定。

例如:#1表达式可以用于指定变量号。

此时,表达式必须封闭在括号中。

例如:#[#1+#2-12]●变量的类型变量根据变量号可以分成四种类型变量号变量类型功能#0空变量该变量总是空,没有值能赋给该变量.#1-#33局部变量局部变量只能用在宏程序中存储数据,例如,运算结果.当断电时,局部变量被初始化为空.调用宏程序时,自变量对局部变量赋值,#100-#199 #500-#999公共变量公共变量在不同的宏程序中的意义相同.当断电时,变量#100-#199初始化为空.变量#500-#999的数据保存,即使断电也不丢失.#1000---系统变量系统变量用于读和写CNC运行时各种数据的变化,例如,刀具的当前位置和补偿值.●变量值的范围局部变量和公共变量可以有0值或下面范围中的值:-1047到-10-29或-10-2到-1047如果计算结果超出有效范围,则发出P/S报警.●小数点的省略当在程序中定义变量值时,小数点可以省略。

例:当定义#1=123;变量#1的实际值是。

●变量的引用为在程序中使用变量值,指定后跟变量号的地址。

当用表达式指定变量时,要把表达式放在括号中。

例如:G01X[#1+#2]F#3;被引用变量的值根据地址的最小设定单位自动地舍入。

例如:当G00X#/;以1/1000mm的单位执行时,CNC把123456赋值给变量#1,实际指令值为G00X12346.改变引用变量的值的符号,要把负号(-)放在#的前面。

例如:G00X-#1当引用未定义的变量时,变量及地址都被忽略。

例如:当变量#1的值是0,并且变量#2的值是空时,G00X#1 Y#2的执行结果为G00X0。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(4)G65 H83 Pn Q#J R#K; n:目标程序段号 例 G65 H83 P1000 Q#201 R#202; 当#201>#202时,转到N1000程序段,当 #201≤#202时,程序继续执行。 (5)G65 H84 Pn Q#J R#K;n:目标程序段号 例 G65 H84 P1000 Q#201 R#202; 当#201<#202时,转到N1000程序段。当 #201≥#202时,程序继续执行。 (6)G65 H85 Pn Q#J R#K; n:目标程序段号 例 G65 H85 P1000 Q#201 R#202;
2)公共变量 与局部变量相对,公共变量是在主程序,以及 调用的子程序中通用的变量。因此,在某个用 户宏中运算得到的公共变量的结果#i,可以用 到别的用户宏中。公共变量主要由#1~#149及 #500~#531构成。其中前一组是非保持型(操 作型),即断电后就被清零,后一级是保持型, 即断电后仍被保存
3.变量的种类 变量分局部变量,公共变量(全局变量)和系统变量三种。 局部变量#1~#33 局部变量是一个在宏程序中局部使用的 变量。当宏程序A调用宏程序B而且都有变量#1时,由于 变量#1服务于不同的局部,所以A中的#1与B中的#1不 是同一个变量,因此可以赋于不同的值,相互间互不影响。 公共变量#100~#149、#500~#549 公共变量贯穿于整 个程序过程,同样,当宏程序A调用宏程序B而且都有变量 #100时,由于#100是全局变量,所以A中的#100与B中 的#100是同一个变量。 系统变量 系统变量是指有固定用途的变量,它的值决定系统 的状态。系统变量包括刀具偏置值变量、接中的输入与输 出信号变量、位置信号变量。
刘世平
一、变量编程基础知识 二、变量编程实例 三、变量编程应用
1.什么是变量编程? 将一群命令所构成的功能,像子程序一样登 录在内存中,再把这些功能用一个命令作 为代表,执行时只需写出这个代表命令就 可以执行其功能。 2.变量编程的种类? 1)A类型的宏程序 2)B类型的宏程序
2.变量的种类 按变量号码可将变量分为局变量、公共变量、 系统变量,其用途和性质都是不同的。 1)局部变量 #1~#33所谓局部变量就是在用户宏中局部使用 的变量。换句话说,在某一时刻调出的用户宏 中所使用的局部变量#i和另一时刻调用的用户 宏(也不论与前一个用户宏相同还是不同)中所 使用的#i是不同的。
N130S1000 ; N140G00X50Z2 ; N150#2=0 ; N160WHILE[#2LE90]DO2; N170G01X[2*24*sin[#2]]Z[40 *COS[#2]-40] F0.1 ; N180#2=#2+1 ; N190END2 ; N200G00X100Z100 ; N210M05 ; N220M30
(四)宏指令的编程步骤 编制宏指令程序时,一般由分析图形特征、建立数 学模型、定义变量和程序出口、编 写宏程序四个步骤组成。其中分析图形特征是关键, 只有先抓住图形的变化规律才可以进行下面三个 步骤;建立数学模型:用数学的方法表达图形特 征,一般可采用直角坐标、极坐标及参数方程等 形式,在建立数学模型时要尽量使模型有利于程 序的编制;确定自变量和程序出口:找出数学模 型中的自变量和条件跳跃中的逻辑表达式;编写 程序:用宏指令和数控语句来描述图形的数学模 型。
1.控制指令 由以下控制指令可以控制用户宏程序主体的程序 流程。 1) IF[<条件式>]GOTOn(n=顺序号):<条件式>成立 时,从顺序号为n的程序以下执行:<条件式>不 成立时,执行下一个程序段。 <条件式>种类如表 2
2) WHILE[<条件式>]DOm(m=顺序号): : ENDm。 <条件式>成立时从DOm的程序段到ENDm的程序 段重复执行;<条件式>如果不成立,则从ENDm 的下一个程序段执行。 3)无条件转移(GOTOn):例如,GOTO10表示转移 到N10程序段中。
3)系统变量 系统变量是根据用途而被固定的变量,主要有 以下几种(表1)。
在常规的主程序和子程序内,总是将一个具体的数值赋给一 个地址,为了使程序更具有通用性更加灵活,在宏程序中 设置了变量。 1.变量的表示 一个变量由#符号和变量组成,如:#I(I=1,2,3,…)。如下例 所示: 例 #100,#500,#5等 2.变量的引用 将跟随在地址后的数值用变量来代替,即引入变量。 例 G011X#100Y-#110F#120;当#100=300.0、#110=80.0、 #120=800时。 上式即表示为G011X300.0Y-80.0F800;
N130S1000 ; N140G00X80Z2 ; N150#2=0 ; N160WHILE[#2LE40]DO2; N170G01X[2*#2]Z[-[#2*#2/20]]F0.1 ; N180#2=#2+0.1 ; N190END2 ; N200G00X100Z100 ; N210M05 ; N220M30;
例:若# 100 = 35,# 101 = 10,# 102 = 5依次执 行如下指令,其运算结果如下: # 110=# 100÷# 101; 结果为3;小数点后的数值 被舍掉。 # 111=#110×# 102; 结果为15; # 120=# 100×# 102; 结果为175; # 121=# 120÷# 101; 结果001; N10G97G99G40; N20T0101; N30M03S500; N40G00X50Z2; N50#1=90 N60WHILE[#1GE0]DO1; N70G01X[2*24*sin[#1]+0.5]F 0.3; N80Z[40*COS[#1]-40] ; N90U1 ; N100G00Z2 ; N110#1=#1-1 ; N120END1 ;
#1=0; WHILE[#1GE-180]DO1; G01X[59+2*6*SIN[#1]]Z[12* COS[#1]-27]; #1=#1-1 END1
#1=20; WHILE[#1GE11.5]D O1; G01X[2*#1]Z[-[50#1*#1/8]]; #1=#1-0.1; END1
2.抛物线 1)抛物线方程 2
x 2 py
2)编程实例 O0002; N10G97G99G40; N20T0101; N30M03S500; N40G00X80Z2; N50#1=40 ; N60WHILE[#1GE0]DO1; N70G01X[2*#1+0.5]F0.3; N80Z[-[#1*#1/20]] ; N90U1 ; N100G00Z2 ; N110#1=#1-1 ; N120END1 ;
2.运算指令 在变量之间和变量与常量之间可以进行各种运算, 常用的运算符如表 3
1.椭圆编程 1)椭圆方程 2 2 x y 标准方程
a
2
b
2
1
参数方程 x
cos a y sin b
2)编程实例 分析: x sin b θ=0代入公式 z cos a x sin b θ=1代入公式 z cos a . . . x sin b θ=90代入公式 z cos a 得出90个点坐标,然后G01插补 G01 X1 Z1 G01 X2 Z2 ... G01 X90 Z90
(三)变量的数学运算和转移指令 如下表所示A类宏指令的运算具有功能强大的运算 与转移指令。
1.宏程序的运算指令 宏程序的运算命令通过指令G65的不同表达形式实现,其指令的一 般形式为: G65 H m P # i Q # j R # k ; 格式中各参数的意义如下: m:可以是01~99,表示运算命令或转移命令的功能; # i:存放运算结果的变量; # j:需要运算的变量1;也可以是常数,常数可以直接表示,不带 “#”; # k:需要运算的变量2,也可以是常数,常数可以直接表示,不带 “#”; 指令所代表的意义为:#i = #j ○ # k;○代表运算符号,它由H m指 定。 如:G65 H 02 P #100 Q #101 R #102 ;表示 #100 = #101+ #102 ; G65 H 03P #100 Q #101 R15; 表示 #100 = #101-15 ; G65 H 03P #100 Q-100 R #102; 表示 #100 =-100×#102; G65 H 04P #100 Q-100 R #102; 表示 #100 =-100÷#102等等。
变量值是不含小数点的数值,它以系统的最小输入 单位为值的单位。如:当#100 = 10时,X # 100代 表0.01mm。另外,用G65指定的H代码,对刀具 长度补偿的偏置号的选择,没有任何影响。 在使用宏程序运算命令时,当变量以角度形式指定 时,其单位是0.001°。在各运算中,当必要的Q、 R没有指定时,系统自动将其值作为“0”参加运 算。而且运算、转移命令的H、P、Q、R都必须 写在G65之后,因此可以在G65以前的地址只有O、 N。 由于变量值只取整数,当运算结果出现小数 点后的数值时,其值将被舍掉。另外,还应注意 宏程序的运算顺序与普通运算的区别。
2.宏程序的转移指令 宏程序的转移指令与运算命令相类似,也是通过指令G65 的不同表达形式实现,B类宏程序的转移指令有如下几 种情况 (1)G65 H80 Pn; n :目标程序段号 例 G65 H80 P120; 无条件跳转到N120程序段。 (2)G65 H81 Pn Q#J R#K; n:目标程序段号 例 G65 H81 P1000 Q # 201 R # 202; 当#201=#202时,转到N1000程序段,当#201≠#202时, 程序继续执行。 (3)G65 H82 Pn Q#J R#K; n:目标程序段号 例 G65 H82 P1000 Q#201 R#202; #201≠#202时,转到N1000程序段,当#201=#202时,程 序继续执行。
相关文档
最新文档