宏程序基础知识

宏程序基础知识
宏程序基础知识

瑞鹄汽车模具有限公司内部教材

第一章宏程序基础知识

第一节常量与变量的含义

常量与变量的含义及编程案例

数控程序中含有变量的程序称为宏程序。虽然子程序对编制相同的加工程序非常有用,但用户宏程序由于允许使用变量、算术和逻辑运算及条件转移,使得编制同样的加工程序更简便。

常量

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

变量

使用用户宏程序时,数值可以直接指定或用变量指定。当用变量时,变量值可用程序或用MDI面板上的操作改变。

#1=#2+100

G01 X#1 F300

变量用变量符号(#)和后面的变量号指定。例如:#1

表达式可以用于指定变量号。此时,表达式必须封闭在括号中。例如:#[#1+#2-12]

变量根据变量号可以分成四种类型:1.空变量2.局部变量3.公共变量4.系统变量

1.空变量:

#0 该变量总是空,没有值能赋给该变量.

2.局部变量:

#1-#33

局部变量只能用在宏程序中存储数据,例如,运算结果.当断电时,局部变量被初始化为空. 调用宏程序时,自变量对局部变量赋值.

3.公共变量

#100-#199 #500-#999

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

4.系统变量:#1000以上的变量

系统变量用于读和写CNC的各种数据,例如刀具补偿,当前位置信息,

变量的引用

为在程序中使用变量值,指定后跟变量号的地址。当用表达式指定变量时,要把表达式放在

括号中。例如:G01X[#1+#2]F#3;

被引用变量的值根据地址的最小设定单位自动地舍入。

例如:当G00X#1;以1/1000mm的单位执行时,CNC把123456赋值给变量#1,实际指令值为G00X12346.

改变引用变量的值的符号,要把负号(-)放在#的前面。例如:G00X-#1

当引用未定义的变量时,变量及地址都被忽略。例如:当变量#1的值是0,并且变量#2的值是空时,G00X#1 Y#2的执行结果为G00X0

未定义的变量当变量值未定义时,这样的变量成为空变量。变量#0总是空变量。它不能写,只能读。

当#1= (空)时

G90 X100 Y#1实际与 G90 X100运行结果一样

当#1=0 时

G90 X100 Y#1实际与 G90 X100 Y0 运行结果一样

运算

除了用<空>赋值以外,其余情况下<空>与0 相同。

限制程序号,顺序号和任选程序段跳转号不能使用变量。

例:

下面情况不能使用变量:

○#1;错误使用方法

/#2G00X100.0; 错误使用方法

N#3Y200.0; 错误使用方法

系统变量

系统变量能用来读写内部NC数据,如刀具补偿值和当前位置数据。然而,注意:有些系统变量是只读变量。对于扩展自动化操作和一般的程序,系统变量是必须的。

刀具补偿值:

使用这类系统变量可以读写刀具补偿值。可用的变量数取决于能使用的补偿对数,当补偿对数不大于200时,可以用变量#2001~#2400。

用于刀具补偿内存A的系统变量

补偿号系统变量

1 : 200 #10001(#2001)

:

#10200(#2200)

用于刀具补偿内存B的系统变量

补偿号几何补偿磨损补偿

1 : #11001(#2201)

:

#10001(#2001)

:

200

#11200(#2400)#10200(#2200)

宏报警:

用于宏报警的系统变量:

变量号功能

#3000 当#3000中有0~99间的某一值时,NC停止并显示报警信息。

报警信息不超过26个字符,

例:#3000=1(TOOL NOT FOUND);

报警屏幕显示“3001 TOOL NOT FOUND。”

时间信息:

时间信息可以读写。

用于时间信息的系统变量:

变量号功能

#3001 这个变量是一个以1毫秒为增量一直记数的记时器,上电或达到65535毫秒时复值为0。

#3002 这个变量是一个以1小时为增量、当循环启动灯亮时记数的记时器,电源关闭后记时器值依然保持,达到1145324.612小时时复值为0。

#3011 这个变量用于读当前年/月/日数据,该数据以十进制数显示。例:March 28,1993表示成19930328。

#3012 这个变量用于读当前时/分/秒数据,该数据以十进制数显示。例:下午3点34分56秒表示成153456。

自动操作控制:

自动操作的控制状态可以改变。

自动操作控制的系统变量#3003

#3003

单段辅助功能的完成

使能要等待

1

无效要等待

2

使能不要等待

3

无效不要等待

☆上电时该变量值为0。

☆当不能执行单段停止时,单段停止操作不能执行,即使单段开关有效。

☆当没有指定是否等待辅助功能(M、S、T)完成时,在辅助功能完成之前,程序执行到下一段,定位完成信号DEN不发出。

自动操作控制的系统变量#3004

#3004

进给保持进给倍率精确停止

使能使能使能

1

无效使能使能

2

使能无效使能

3

无效无效使能

4

使能使能无效

5

无效使能无效

6

使能无效无效

7

无效无效无效

☆上电时该变量值为0。

☆当不能执行进给保持时:

进给保持按钮按下并保持时,机床以单段停止方式停止,但单段方式若因变量#3003而无效时,不执行单段停止操作。

进给保持按钮按下又释放时,进给保持灯亮,但机床不停止;程序继续进行,机床停在最先含有进给保持使能的段。

☆当进给倍率无效时,倍率定在100%,忽略机床操作面板上的倍率开关。

☆当精确停止无效时不执行精确停止检查(定位检查),即使是包含有不执行切削的段。☆例如G84攻丝循环时进给速度,转速,单段操作都无效,其内部程序就指定了#3003=3 #3004=7

模态信息:

表中指定的模信息可以读出。见下表:

变量号功能

#4001

G00,G01,G02,G03,G33 (01组)#4002

G17,G18,G19 (02组)#4003

G90,G91 (03组)#4004

(04组)#4005

G94,G95 (05组)#4006

G20,G21 (06组)#4007

G40,G41,G42 (07组)#4008

G43,G44,G49 (08组)#4009

G73,G74,G76,G80~G89 (09组)#4010

G98,G99 (10组)#4011

G50,G51 (11组)#4012

G65,G66,G67 (12组)#4014 G54~G59

(14组)#4015 G61~G64

(15组)#4016

G68,G69 (16组)::

#4022

(22组)#4102

B码

#4107

D码

#4109

F码

#4111

H码

#4113

M码

#4114

顺序号

#4115

程序号

#4119

S码

#4120

T码

例:当执行#1=#4001时,#1=0,1,2,3或33

当前位置:

位置信息变量不能写只能读。见下表:

变量号位置信息坐标系刀具补偿值移动期间的读操作

#5001~#5004 段结束点工件坐标系不包括使能

#5021~#5024 当前位置机床坐标系包括无效

#5041~#5044 当前位置

工件坐标系

#5061~#5064 跳段信号位置使能

#5081~#5084 刀偏值

无效#5101~#5104 偏差的伺服位置

☆首位数(从1~ 4)分别代表轴号,数1代表X轴,数2代表Y轴,数3代表Z轴,数4

代表第四轴。

☆执行当前的刀偏值,而不是立即执行保持在变量#5081~#5088里的值。

☆在含有G31(跳段)的段中发出跳段信号时,刀具的位置保持在变量#5061~#5068里,如

果不发出跳段信号,指定段的结束点位置保持在这些变量中。

☆移动期间读变量无效时,表示由于缓冲(准备)区忙,所希望的值不能读。

工件坐标系补偿值(工件零点偏置值):

工件零点偏置值变量可以读写,见下表:

变量号功能

#5201~#5204

第一轴外部工件零点偏置值~第四轴外部工件零点偏置值

#5221~#5224

第一轴G54工件零点偏置值~第四轴G54工件零点偏置值

#5241~#5244

第一轴G55工件零点偏置值~第四轴G55工件零点偏置值

#5261~#5264

第一轴G56工件零点偏置值~第四轴G56工件零点偏置值

#5281~#5284

第一轴G57工件零点偏置值~第四轴G57工件零点偏置值

#5301~#5304

第一轴G58工件零点偏置值~第四轴G58工件零点偏置值

#5321~#5324

第一轴G59工件零点偏置值~第四轴G59工件零点偏置值

#7001~#7004

第一轴工件零点偏置值(G54P1)~第四轴工件零点偏置值

#7021~#7024

第一轴工件零点偏置值(G54P2)~第四轴工件零点偏置值:

#7941~#7944

第一轴工件零点偏置值(G54P48)~第四轴工件零点偏置值

注:对于工件坐标系,变量#5201~#5328是可选变量。

算术和逻辑操作

对于附加的48工件坐标系,变量#7001~#7948(G54P1~G54P48)是可选变量。

在下表中列出的操作可以用变量进行。操作符右边的表达式,可以含有常数和(/或)由一

个功能块或操作符组成的变量。表达式中的变量#J和#K可以用常数替换。左边的变量也可

以用表达式替换。见下表:

功能格式注释

赋值#i=#j

加#i=#j+#k

减#i=#j—#k

乘#i=#j*#k

除#i=#j/#k

正弦#i=SIN[#j] 角度以度为单位,如:90度30分表示余弦#i=COS[#j]

成90.5度

正切#i=TAN[#j]

反正切#i=ATAN[#j]

平方根#i=SQRT[#j]

绝对值#i=ABS[#j]

进位#i=ROUND[#j]

下进位#i=FIX[#j]

上进位#i=FUP[#j]

OR(或)#i=#jOR#k 用二进制数按位进行逻辑操作。

XOR(异或)#i=#jXOR#k

AND(与)#i=#jAND#k

将BCD码转换成BIN码#i=BIN[#j] 用于与PMC间信号的交换。

将BIN码转换成BCD码#i=BCD[#j]

角度单位:

在SIN,COS,TAN,ATAN中所用的角度单位是度。

ATAN功能:

在ATANT之后的两个变量用“/”分开,结果在0°和360°之间。

例:当#1=ATANT[1]/[—1]时,#1=135.0

ROUND功能:

☆当ROUND功能包含在算术或逻辑操作、IF语句、WHILE语句中时,将保留小数点后一位,

其余位进行四舍五入。

例:#1=ROUND[#2];其中#2=1.2345,则#1=1.0

☆当ROUND出现在NC语句地址中时,进位功能根据地址的最小输入增量四舍五入指定的值。例:编一个程序,根据变量#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.580mm,不能返回到初始位置。而换成G00X[ROUND[#1]+ROUND[#2]]能返回到初始点。

上进位和下进位成整数:

例:#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

算术和逻辑操作的缩写方式:

取功能块名的前两个字符,例:ROUND RO。

操作的优先权:

①功能块。

如乘除(*,/,AND,MOD)这样的操作。

如加减(+,—,OR,XOR)这样的操作。

方括号嵌套:

方括号用于改变操作的顺序。最多可用五层,超出五层,出现118号报警。

注意:

方括号用于封闭表达式[#],圆括号用于注释(#)。

除数:

如果除数是零或TAN[90],则会产生112号报警。

分支和循环语句

在一个程序中,控制流程可以用GOTO、IF语句改变。有三种分支循环语句如下:☆GOTO语句(无条件分支);

☆IF语句(条件分支:if…,then…);

☆WHILE语句(循环语句while…)。

无条件分支(GOTO语句)

功能转向程序的第N句。当指定的顺序号大于1~9999时,出现128号报

警,顺序号可以用表达式。

格式GOTO n;

n是顺序号(1~9999)

例如:O0001

N1G91G09G01Z-100.F2500 G91G09G01Z-100.F2500

Y-0.5 Y-0.5

Z100.X-0.8F8000 无限循环,功能同右Z100.X-0.8F8000

Y0.5 Y0.5

GOTO1 M99

M30;

条件分支(IF 语句)

功能在IF后面指定一个条件表达式,如果条件满足,转向第N

句,否则执行下一段。

格式IF [条件表达式] GOTO n;

其中:

条件表达式一个条件表达式一定要有一个操作符,这个操作符插在两个

变量或一个变量和一个常数之间,并且要用方括号括起来,既[表达式操

作符表达式]。

操作符见下表:

操作符意义

EQ =

NE ≠

GT >

GE ≥

LT <

LE ≤

循环(WHILE语句)

功能在WHILE 后指定一个条件表达式,条件满足时,执行DO到END

之间的语句,否则执行END后的语句。

格式WHILE [条件表达式] DO m;(m=1,2,3)

:

新代数控车床宏程序说明

一.用户宏程序的基本概念 用一组指令构成某功能,并且象子程序一样存储在存储器中,再把这些存储的功能由一个指令来代表,执行时只需写出这个代表指令,就可以执行其相应的功能。 在这里,所存储的一组指令叫做宏程序体(或用户宏程序),简称为用户宏。其代表指令称为用户宏命令,也称作宏程序调用指令。 用户宏有以下四个主要特征: 1)在用户用户宏程序中可以使用变量,即宏程序体中能含有复杂的表达式; 2)能够进行变量之间的各种运算; 3)可以用用户宏指令对变量进行赋值,就象许多高级语言中的带参函数或过程,实参能赋值给形参; 4)容易实现程序流程的控制。 使用用户宏时的主要方便之处在于由于可以用变量代替具体数值,因而在加工同一类的工件时.只得将实际的值赋予变量既可,而不需要对每个不同的零件都编一个程序。 二.基本书写格式 数控程序文档中,一般以“%”字符作为第一行的起头,该行将被视为标题行。当标题行含有关键字“@MACRO”时整个文档就会以系统所定义的MACRO语法处理。如果该行无“@MACRO”关键词此档案就会被视为一般ISO程序文档格式处理,此时将不能编写用户宏和使用其MACRO语法。而当书写ISO程序文档时标题行一般可以省略,直接书写数控程序。“@MACRO”关键词必须是大写字母。 对于程序的注释可以采用“//……”的形式,这和高级语言C++一样。 例一:MACRO格式文档 % @MACRO //用户宏程序文档,必须包含“@MACRO”关键词 IF @1 = 1 THEN G00 X100.; ELSE G00 Z100.; END_IF; M99; 例二:ISO格式文档 % 这是标题行,可当作档案用途说明,此行可有可无 G00 X100.; G00 Z100.; G00 X0; G00 Z0; M99;

宏程序入门基础学习资料

宏程序入门基础学习资料 其实说起来宏就是用公式来加工零件的,比如说椭圆,如果没有宏的话,我们要逐点算出曲线上的点,然后慢慢来用直线逼近,如果是个光洁度要求很高的工件的话,那么需要计算很多的点,可是应用了宏后,我们把椭圆公式输入到系统中然后我们给出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内的数值赋予到

数控车床由浅入深的宏程序实例

宏程序 裳华职业技术中专鲍新涛 宏程序概述 其实说起来宏就是用公式来加工零件的,比如说,如果没有宏的话,我们要逐点算出上的点,然后慢慢来用直线逼近,如果是个光洁度要求很高的工件的话,那么需要计算很多的点,可是应用了宏后,我们把椭圆公式输入到系统中然后我们给出Z坐标并且每次加10um那么宏就会自动算出X坐标并且进行切削,实际上宏在程序中主要起到的是运算作用。.宏一般分为A类宏和B类宏。 A类宏是以G65 Hxx P#xx Q#xx R#xx的格式输入的,而B类宏程序 则是以直接的公式和语言输入的和C语言很相似在0i系统中应用比较广。 宏程序的作用 数控系统为用户配备了强有力的类似于高级语言的宏程序功能,用户可以使用变量进行算术运算、逻辑运算和函数的混合运算,此外宏程序还提供了循环语句、分支语句和子程序调用语句,利于编制各种复杂的零件加工程序,减少乃至免除手工编程时进行繁琐的数值计算,以及精简程序量。 宏程序指令适合抛物线、椭圆、双曲线等没有插补指令的曲线编程;适合图形一样,只是尺寸不同的系列零件的编程;适合工艺路径一样,只是位置参数不同的系列零件的编程。较大地简化编程;扩展应用范围。 宏的分类 B类宏 由于现在B类宏程序的大量使用,很多书都进行了介绍这里我就不再重复了,但在一些老系统中,比如(FANUC)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那就是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

宏程序编程知识

工件偏置量:G10 L2 P X Y Z (加工中心)。 G41X Y D G90G54P1G00X Y S M03 G90G10L2P0X Y Z G10L1P R G10 P U V W C Q 可编程参数入口:G10 L50 ……… G11 G10数据设置模式入口、 L50可编程参数入口模式(固定的) N……P……R……指定参数入口(N=参数号,P=轴号,R=设置值) G11数据设置模式取消 宏程序的调用:G65 P L G65 P包含宏程序的程序号(存储为O ) L宏程序的循环次数 变量的类型:空变量#0 局部变量:#1—#33 全局变:#100—#149或#500—#531 系统变量:#1000—。。。。。。 局部变量的赋值:A-#1 B-#2 C-#3 D-#7 E-#8 F-#9 H-#11 I-#5 J-#6 K-#6 M-#13 Q-#17 R-#18 S-#19 T-#20 U-#21 V-#22 W-#23 X-#24 Y-#25 Z-#26 模态宏程序的调用G66仅用于某个轴运动命令调用宏程序 G67取消模态宏程序调用 宏程序函数:有SIN COS TAN ATAN ASIN ACOS 其他函数:ROUND FIX FUP ROUND表示四舍五入 FIX表示与之最小的整数 FUP表示与之最大的整数 辅助函数: SQRT表示开方 ABS表示绝对值 LN表示自然对数函数 EXP表示以E为底的指数函数、 ADP表示添加小数点的函数、 逻辑函数:EQ表示等于、NE表示不等于、GT表示大于、LT表示小于、GE表示大于等于、LE 表示小于等于。 系统变量: 从#1000开始 #1000through#1015数据输入DI 从PMC向宏程序发送16位信号(逐位读取) #1032用于一次读取所有16位信号 #1100through#1115数据输出DO从宏程序向PMC发送16位信号(逐位写入) #1132用于一次向PMC写入所有16位信号

由浅入深宏程序入门基础示例之欧阳光明创编

由浅入深宏程序1-宏程序入门基础之销轴加工 欧阳光明(2021.03.07) 对于没有接触过宏程序人,觉得它很神秘,其实很简单,只要掌握了各类系统宏程序的基本格式,应用指令代码,以及宏程序编程的基本思路即可。 对于初学者,尤其是要精读几个有代表性的宏程序,在此基础上进行模仿,从而能够以此类推,达到独立编制宏程序的目的。本教程将分步由浅入深的将宏程序讲解给大家,作者水平有限,也希望各位同仁提供更好的思路。 下面大家先看一个简单的车床的程序,图纸如下: 要求用外圆刀切削一个短轴,这里只列举程序的前几步: T0101 M3S800 G0X82Z5 G0X76 G1Z-40F0.2 X82 G0Z5 G0X72 G1Z-40F0.2

X82 G0Z5 G0X68 G1Z-40F0.2 X82 G0Z5 G0X68 G1Z-40F0.2 X82 G0Z5 ........ G0X40 G1Z-40F0.2 X82 G0Z5 G0X150Z150 M5 M30 从上面程序可以看出,每次切削所用程序都只是切削直径X有变化,其他程序代码未变。因此可以将一个变量赋给X,而在每次切削完之后,将其改变为下次切削所用直径即可。 T0101 M3S800

G0X82Z5 #1=76赋初始值,即第一次切削直径 N10 G0X[#1]将变量赋给X,则X方向进刀的直径则为#1变量中实际存储值。N10是程序 G1Z-40F0.2 段的编号,用来标识本段,为后面循环跳转所用。X82 G0Z5 #1=#1-4每行切深为2mm,直径方向递减4mm IF [#1GE40] GOGO 10如果#1 >= 40,即此表达式满足条件,则程序跳转到N10继续执行。 G0X150Z150 当不满足#1 >= 40,即#1<40,则跳过循环判断语句,由此句继续向后执行。 M5 M30 由浅入深宏程序2-宏程序之销轴粗精加工 本篇文章利用宏程序简单模仿数控系统的外圆车削循环功能。在此用前一篇的图纸与程序 原程序: T0101 M3S800 G0X82Z5 粗加工开始 #2=0.05 Z向的加工余量 #3=0.5 外圆方向的加工余量

宏程序基础

1.1概述 1.2 1.3 1.4一、宏程序的分类 1.5首先我们来讲一下宏程序的分类,A类和B类。 首先在数控车系统比较老的时候,我们系统里 面有A类宏,A类宏格式为G65格式,现在已 经基本淘汰。随着科技发达,系统的升级优化,现在的数控系统大多支持B类宏程序,总体而 言,现在B类宏是一个主流发展趋势,所以接 下来我们的实例讲解都以B类宏程序为例。1.6 1.7 1.8二、宏程序的概念 1.9 1.10简单来理解宏程序是什么可以这样理解,宏程 序就是利用数学公式,函数等计算方式,配合 数控系统中的G代码编制出的一种程序,主要 加工一些像椭圆,曲线,各类大螺距螺纹和刀 具路线相识的一些零件。随着科技发达,像椭 圆,抛物线,等线性零件,用软件或则系统自 代G代码可以完成加工,而大螺距异型螺纹这 类零件,软件还没达到成熟,所以我们学会宏 程序在加工中可以起到一个非常大的作用。可 以弥补多年来数控车对大螺距螺纹的编程难的 一个提高。 1.11 1.12 1.13三、宏程序的特征 1.14 1.151.赋值 1.16在宏程序中我们通常用法最多的就是变量,比 如: 1.17#1=1 它就是一个变量。我们把这一过程,称为 赋值。也就是说,我们把等号后面的数值1,赋 值给#1。而现在#1的值就等于1,也可以理解 为#1就是一个代号,用来代替数值1。 1.18 1.19 2.变量和应用 1.20比如:#1=2(把数值2赋值给#1) 1.21#2=1(把数值1赋值给#2)1.22#2=#1(程序从上往下执行,思考一下现在#2的 值等于多少) 1.23 1.24解:当程序执行第一步的时候#1的值等于2, 当执行第二步的时候#2的值等于1,当执行第 三步的时候这里要注意了,刚才讲过赋值过程,是等号后面的值赋值给等号前面,所以当#1在 第一步赋值以后,#1已经等于2了,所以在执 行第三步的时候#2的值应该等于2,不在是第 二步的1了。从这里我们可以看出,当程序中 有相同的变量#的时候,后面的#号代替前面的# 号。 1.25比如:#1=2 1.26#1=3 1.27 1.28最后结果#1的值因该是等于3的。所以说后面 的代替前面的。 1.29 1.30 1.31四、变量的取值范围 1.32 1.331.局部变量(#1-#33) 1.34什么叫局部变量,局部变量就是在局部或则可 以理解为在单个程序中有效。断电以后系统自 动清零。 1.35 1.36 2.公共变量(#100-#199,#500-#999) 1.37公共变量和局部变量的区别在于,局部变量是 在局部,或则单个程序中有效,而公共变量是 指如果一个程序同时拥有主程序和子程序的情 况下,在主程序中如果已经赋值,在子程序中 可以不用从新赋值,可以共用。而#100-#199和 #500-#999的区别在于,前者断电清零,而后者 不会清零会一直保存在系统内部。比如: 1.38#500=TAN[15] 1.39 1.40#500一旦赋值就将保存在系统内部,下次可以 直接调用#500使用。 1.41 1.423.系统变量(#1000-#17200) 1.43系统变量是用于我们机床系统储存一些刀补数 据参数等等的东西,我们可以不用管它,不会 用的,慎用) 1.44

宏程序基础知识

瑞鹄汽车模具有限公司内部教材 第一章宏程序基础知识 第一节常量与变量的含义 常量与变量的含义及编程案例 数控程序中含有变量的程序称为宏程序。虽然子程序对编制相同的加工程序非常有用,但用户宏程序由于允许使用变量、算术和逻辑运算及条件转移,使得编制同样的加工程序更简便。 常量 普通加工程序直接用数值指定G代码和移动距离;例如,GO1和X100.0。 变量 使用用户宏程序时,数值可以直接指定或用变量指定。当用变量时,变量值可用程序或用MDI面板上的操作改变。 #1=#2+100 G01 X#1 F300 变量用变量符号(#)和后面的变量号指定。例如:#1 表达式可以用于指定变量号。此时,表达式必须封闭在括号中。例如:#[#1+#2-12] 变量根据变量号可以分成四种类型:1.空变量2.局部变量3.公共变量4.系统变量 1.空变量: #0 该变量总是空,没有值能赋给该变量. 2.局部变量: #1-#33 局部变量只能用在宏程序中存储数据,例如,运算结果.当断电时,局部变量被初始化为空. 调用宏程序时,自变量对局部变量赋值. 3.公共变量 #100-#199 #500-#999 公共变量在不同的宏程序中的意义相同.当断电时,变量#100-#199初始化为空.变量#500-#999的数据保存,即使断电也不丢失. 4.系统变量:#1000以上的变量 系统变量用于读和写CNC的各种数据,例如刀具补偿,当前位置信息, 变量的引用 为在程序中使用变量值,指定后跟变量号的地址。当用表达式指定变量时,要把表达式放在

括号中。例如:G01X[#1+#2]F#3; 被引用变量的值根据地址的最小设定单位自动地舍入。 例如:当G00X#1;以1/1000mm的单位执行时,CNC把123456赋值给变量#1,实际指令值为G00X12346. 改变引用变量的值的符号,要把负号(-)放在#的前面。例如:G00X-#1 当引用未定义的变量时,变量及地址都被忽略。例如:当变量#1的值是0,并且变量#2的值是空时,G00X#1 Y#2的执行结果为G00X0 未定义的变量当变量值未定义时,这样的变量成为空变量。变量#0总是空变量。它不能写,只能读。 当#1= (空)时 G90 X100 Y#1实际与 G90 X100运行结果一样 当#1=0 时 G90 X100 Y#1实际与 G90 X100 Y0 运行结果一样 运算 除了用<空>赋值以外,其余情况下<空>与0 相同。

数控铣宏程序实例

第四章数控铣宏程序实例 §4、1 椭圆加工(编程思路:以一小段直线代替曲线) 例1 整椭圆轨迹线加工(假定加工深度为2mm) 方法一:已知椭圆的参数方X=acosθ Y=bsinθ 变量数学表达式 设定θ= #1(0°~ 360° ) 那么 X= #2 = acos[#1] Y= #3= bsin[#1] 程序 O0001; S1000 M03; G90 G54 G00 Z100; G00 Xa Y0; G00 Z3; G01 Z-2 F100; #1=0; N99 #2=a*cos[#1]; #3=b*sin[#1]; G01 X#2 Y#3 F300; #1=#1+1; IF[#1LE360]GOTO99; GOO Z50; M30;

例2 斜椭圆且椭心不在原点的轨迹线加工(假设加工深度为2mm) 椭圆心不在原点的参数方程 X=a*COS[#1]+ M Y=b*SIN[#1]+ N 变量数学表达式 设定θ=#1; (0°~360°) 那么X=#2=a*COS[#1]+ M Y=#3=b*SIN[#1]+ N 因为此椭圆绕(M ,N)旋转角度为A 可运用坐标旋转指令G68 格式 G68 X - Y - R - X,Y:旋转中心坐标; R: 旋转角度 程序 O0002; S1000 M03; G90 G54 G00 Z100; GOO X0 Y0; GOO Z3; G68 XM YN R45; #1=0; N99 #2=a*COS[#1]+M; #3=b*SIN[#1]+N;

GO1 X#2 Y#3 F300; G01 Z-2 F100; #1=#1+1; IF[#1LE360]GOTO99; G69 GOO Z100; M30; 例3:椭圆轮廓加工(深度2mm) 采用椭圆的等距加工方法使椭圆的长半轴与短半轴同时减少一个行距的方法直到短半轴小于刀具的半径R 根据椭圆的参数方程可设 变量表达式θ=#1(0°~360°) a=#2 b=#3(b-R~R) X=#2*COS[#1]=#4 Y=#3*SIN[#1]=#5 程序 O0003; S1000 M03; G90 G54 G00 Z100;

宏程序基础知识资料

第一章宏程序基础知识 第一节常量与变量的含义 常量与变量的含义及编程案例 数控程序中含有变量的程序称为宏程序。虽然子程序对编制相同的加工程序非常有用,但用户宏程序由于允许使用变量、算术和逻辑运算及条件转移,使得编制同样的加工程序更简便。 常量 普通加工程序直接用数值指定G代码和移动距离;例如,1和X100.0。变量 使用用户宏程序时,数值可以直接指定或用变量指定。当用变量时,变量值可用程序或用面板上的操作改变。 #1=#2+100 G01 1 F300 变量用变量符号(#)和后面的变量号指定。例如:#1 表达式可以用于指定变量号。此时,表达式必须封闭在括号中。例如:#[#12-12] 变量根据变量号可以分成四种类型:1.空变量2.局部变量3.公共变量4.系统变量 1.空变量: #0 该变量总是空,没有值能赋给该变量. 2.局部变量:

#133 局部变量只能用在宏程序中存储数据,例如,运算结果.当断电时,局部变量被初始化为空. 调用宏程序时,自变量对局部变量赋值. 3.公共变量 #100199 #500999 公共变量在不同的宏程序中的意义相同.当断电时,变量#100199初始化为空.变量#500999的数据保存,即使断电也不丢失. 4.系统变量1000以上的变量 系统变量用于读和写的各种数据,例如刀具补偿,当前位置信息,变量的引用 为在程序中使用变量值,指定后跟变量号的地址。当用表达式指定变量时,要把表达式放在括号中。例如:G01X[#12]3; 被引用变量的值根据地址的最小设定单位自动地舍入。 例如:当G001;以1/1000的单位执行时,把123456赋值给变量#1,实际指令值为G00X12346. 改变引用变量的值的符号,要把负号(-)放在#的前面。例如:G00X -#1 当引用未定义的变量时,变量及地址都被忽略。例如:当变量#1的值是0,并且变量#2的值是空时,G001 2的执行结果为G00X0 未定义的变量当变量值未定义时,这样的变量成为空变量。变量#0总是空变量。它不能写,只能读。 当#1= (空)时 G90 X100 1实际与G90 X100运行结果一样 当#1=0 时 G90 X100 1实际与G90 X100 Y0 运行结果一样 运算 除了用<空>赋值以外,其余情况下<空>与0 相同。

FANUC用户宏程序学习教程

用户宏程序 宏程序是指含有变量的子程序,在程序中调用用户宏程序的那条指令叫做用户宏指令(这里用G65) 1、变量 用一个可赋值的代号代替具体的坐标值,这个代号称为变量。变量分为系统变量、全局变量和局部变量三类,它们的性质和用途个不相同。(1)系统变量是固定用途的变量,它的值决定了系统的状态。FANUC 中的系统变量为#1000~#1005、#1032、#3000等。 (2)全局变量是指在主程序内和由主程序调用的各用户宏程序内公用的变量。FANUC中的全局变量有60个,它们分两组,一组是#100~#149;另一组是#500~#509。 (3)局部变量是仅局限于在用户宏程序内使用的变量。同一个局部变量在不同的宏程序内的值是不通用的。FANUC中的局部变量有33个,分别为#1~#33。 表1 FANUC系统中局部变量赋值(部分)对照表

2、变量的演算 (1)加减型运算加减型运算包括加、减、逻辑加和排它的逻辑加。分别用以下四个形式表达: #i = #j +#k #i = #j -#k #i = #j OR #k #i = #j XOR #k 式中,i、j、k为变量;+、-、OR、XOR称为为演算子。 (2)乘除型运算乘除型运算包括乘、除和逻辑乘。分别用以下形式表达: #i = #j * #k #i = #j / #k #i = #j AND #k 4.变量的赋值 由于系统变量的赋值情况比较复杂,这里只介绍公共变量和局部变量的赋值。变量的赋值方式可分为直接和间接两种。

(1)直接赋值 例:#1=115(表示将变量115赋值于#1变量) #100=#2(表示将变量#2的即时值赋于变量#100) (2)间接赋值间接赋值就是用演算式赋值,即把演算式内演算的结果赋给某个变量。在演算式中有自变量代号,自变量每得到一个即时值,相应就得到一个演算结果,该结果就赋值给变量,该变量也叫应变量。5.转向语句 转向语句分为无条件转向语句和条件转向语句两种。 (1)无条件转向语句 程序段格式:GOTO N ;其中N后面的数值为程序段号。 例如:GOTO 55;表示无条件转向执行N55程序段,而不论N55程序段在转向语句之前还是之后。 (2)条件转向语句条件转向语句一般由判断条件式和转向目标两部分构成。 程序段格式:IF [a GT b ] GOTO c;表示为“如果a>b,那么转向执行第Nc句程序段”。a和b可以是数值、变量或含有数值及变量的算式,c 是转向目标的程序段。 大于、等于、大于等于、小于等于分别用GT、EQ、GE、LE表示。

宏程序基础知识资料

瑞鹄汽车模具有限公司内部教材 第一章第一节宏程序基础知识常量与变量的含义 常量与变量的含义及编程案例 数控程序中含有变量的程序称为宏程序。虽然子程序对编制相同的加工程序非常有用,但用户宏程序由于允许使用变量、算术和逻辑运算及条件转移,使得编制同样的加工程序更简便。 常量 普通加工程序直接用数值指定G代码和移动距离;例如,GO1和X100.0。 变量 使用用户宏程序时,数值可以直接指定或用变量指定。当用变量时,变量值可用程序或用MDI面板上的操作改变。 #1=#2+100 G01 X#1 F300 变量用变量符号(#)和后面的变量号指定。例如:#1 表达式可以用于指定变量号。此时,表达式必须封闭在括号中。例如:#[#1+#2-12] 变量根据变量号可以分成四种类型:1.空变量2.局部变量3.公共变量4.系统变量 1.空变量: #0 该变量总是空,没有值能赋给该变量. 2.局部变量: #1-#33 局部变量只能用在宏程序中存储数据,例如,运算结果.当断电时,局部变量被初始化为空. 调用宏程序时,自变量对局部变量赋值. 3.公共变量 #100-#199 #500-#999 公共变量在不同的宏程序中的意义相同.当断电时,变量#100-#199初始化为空.变量#500-#999的数据保存,即使断电也不丢失. 4.系统变量:#1000以上的变量 系统变量用于读和写CNC的各种数据,例如刀具补偿,当前位置信息, 变量的引用 为在程序中使用变量值,指定后跟变量号的地址。当用表达式指定变量时,要把表达式放

在括号中。例如:G01X[#1+#2]F#3; 被引用变量的值根据地址的最小设定单位自动地舍入。 例如:当G00X#1;以1/1000mm的单位执行时,CNC把123456赋值给变量#1,实际指令值为G00X12346. 改变引用变量的值的符号,要把负号(-)放在#的前面。例如:G00X-#1 当引用未定义的变量时,变量及地址都被忽略。例如:当变量#1的值是0,并且变量#2的值是空时,G00X#1Y#2的执行结果为G00X0 未定义的变量当变量值未定义时,这样的变量成为空变量。变量#0总是空变量。它不能写,只能读。 当#1= (空)时 G90 X100 Y#1实际与G90 X100运行结果一样 当#1=0 时 G90 X100 Y#1实际与G90 X100 Y0 运行结果一样 运算 除了用<空>赋值以外,其余情况下<空>与0 相同。

数控铣床宏程序编程 经典

变量 普通加工程序直接用数值指定G代码和移动距离;例如,GO1和X100.0。使用用户宏程序时,数值可以直接指定或用变量指定。当用变量时,变量值可用程序或用MDI面板上的操作改变。 #1=#2+100 G01 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报警NO.111. 小数点的省略 当在程序中定义变量值时,小数点可以省略。 例:当定义#1=123;变量#1的实际值是123.000。 变量的引用 为在程序中使用变量值,指定后跟变量号的地址。当用表达式指定变量时,要把表达式放在括号中。 例如:G01X[#1+#2]F#3; 被引用变量的值根据地址的最小设定单位自动地舍入。 例如:

新代宏程序实例

新代宏程序实例文件编码(GHTU-UITID-GGBKT-POIU-WUUI-8968)

1、R E P E A T直到型循环REPEAT <循环体> UNTIL <条件表达式> END_REPEAT; 说明:REPEAT直到型循环控制,先执行循环体,后判断条件表达式,当条件满足时退出循环。 例如: % @MACRO ,为了;?倾向于;?关于;?当作; conj.因为,由于;? FOR <循环变量> := <表达式1> TO <表达式2> [ BY <表达式3>] DO <循环体> END_FOR; 说明:FOR循环控制,式中各参数意义如下 循环变量——控制循环次数的变量; 表达式1——循环计数的起始值,可为整数或表达式; 表达式2——循环计数的终止值,可为整数或表达式; 表达式3——循环计数每次的累加值,可为整数或表达式; 循环体——循环每次执行内容; FOR循环执行过程为:先给循环变量赋起始值,然后判断循环变量是否为终止值,当循环变量已为终止值时退出循环,否则执行循环体,再对循环变量加上每次累加值, 4、无条件转移

GOTO转移语句 语法: GOTO n; 说明:无条件地跳到指定的n行号执行,其中n可为整数或表达式。GOTO常和IF语句搭配使用,那就是说当程序检查到某个条件满足时用GOTO语句去进一步处理,但应尽量少用该语句以提高程序可读性。 范例: % @MACRO Z10.; … N100 G01 X30. Z30.; … M02; EXIT循环中断语句 语法:EXIT; 说明:循环中断,跳离循环控制;用在循环控制中,通常EXIT都和IF 语句搭配使用,当某个条件满足后就跳离循环。请参考WHILE范例。

宏程序编程

用户宏程序 虽然子程序对编制相同加工操作的程序非常有用,但用户宏程序由于允许使用变量、算术和逻辑运算及条件转移,使得编制相同加工操作的程序更方便,更容易。可将相同加工操作编为通用程序,如型腔加工宏程序和固定加工循环宏程序。使用时,加工程序可用一条简单指 令调出用户宏程序,和调用子程序完全一样。 一、变量 普通加工程序直接用数值指定G代码和移动距离;例如,G01和X100。 使用用户宏程序时,数值可以直接指定或用变量指定。当用变量时,变量值可用程序或用MDI面板上的操作改变。 #1=#2+100; G01 X#1 F300; 说明: 1、变量的表示 计算机允许使用变量名,用户宏程序不行。变量用变量符号(#)和后面的变量号指定。 例如:#1 表达式可以用于指定变量号。此时,表达式必须封闭在括号中。 例如:#[#1+#2-12] 2、变量的类型 变量根据变量号可以分成四种类型。 3、变量值的表示范围 局部变量和公共变量可以有0值或下面范围中的值: -1047至-10-29或10-29到1047 如果计算结果超出有效范围,则发出P/S报警No.111。 4、小数点的省略 当在程序中定义变量值时,小数点可以省略。 例:当定义#1=123;变量#1的实际值是123.000; 5、变量的引用 为在程序中使用变量值,指定后跟变量号的地址。当用表达式指定变 量时,要把表达式放在括号中。 例如:G01X[#1+#2]F#3; 被引用变量的值根据地址的最小设定单位自动地舍入。 例如:

当G00X#1;以1/1000mm的单位执行时,CNC把12.3456赋值给 变量#1,实际指令值为G00X12.346; 改变引用变量的值的符号,要把负号(一)放在#的前面。 例如:GOOX-#1; 当引用未定义的变量时,变量及地址字都被忽略。 例如: 当变量#1的值是0,并且变量#2的值是空时,G00X#1 Y#2的执行结果为G00X0;。 6、未定义的变量 当变量值未定义时,这样的变量成为“空”变量。变量#0总是空变量。 它不能写,只能读。 (a)引用

用户宏程序

用户宏程序 1.概念 反复进行同一切削动作时,使用子程序效果较好,但若使用用户宏程序的话,可以使用运算指令、条件转移等,适于编制更简单、通用性更强的程序。并且与子程序一样,在加工程序中用简单地命令就可以调用用户宏程序。在FANUC系统中,包含变量、转向、比较判别等功能的指令称为宏指令。包含有宏指令的子程序称为宏程序。这里以FANUC系统中B类用户宏程序来作简单介绍,也就是FANUC Power Mater O系统所用的方法。 宏程序的最大特征有以下几个方面: (1)可以在宏程序主体中使用变量。 (2)可以进行变量之间的演算。 (3)可以用宏程序命令对变量进行赋值。 使用宏程序时的主要方便之处在于由于可以用变量代替具体数值,因而在加工同一类的工件时,只需将实际的值赋与变量既可,而不需要对每一个零件都编一个程序。 例:a=10,b=20,c=5,d=8时其精加工轨迹运行程序为: N10 G00 X0 Z0; N20 G03 X10. W-5. R5. F100; N30 G01 X20. W-8.; N40 G00 X100. Z100.; a,b,c,d值变化时则又需要编一个程序。 实际上我们可以将程序写为: N10 G00 X0. Z0.; N20 G03 Xa W-c Rc F100; N30 G01 Xb W-d; N40 G00 X100. Z100.; 此时可以将其中变量,用宏程序中的变量# i的对应为:a:#1;b:#2;c:#3;d:#7。则宏程序即可写成如表6-14所示形式: 表6-14 例6-10宏程序编写 用A,B,C,D分别代表变量#1,#2,#3和#7,用a,b,c和d赋值后,用宏命令G65 P9810 Aa Bb Cc Dd来调用。 如上述所示,当加工同一类,但只是尺寸不同的工件时,只需改变宏命令的数值即可,而没有必要针对每一个零件都编一个程序。 2.变量 在一般的加工程序中,G代码移动距离可直接用数值指令,如G00 X100.0。但在用宏程序中,数值可直接指定,也可用变量号指定。因此,变量是指可以在宏主体的地址上代替具体数值,在调用宏主体时再用引数进行赋值的符号:# i(i=1,2,3……)。使用变量可以

EXCEL宏编程实例.doc

Excel 宏编程举例说明 学习宏编程,需要VB基础,如果一点VB基础和面向对象的概念,建议先去补补VB,不然即使自认为学好了也只能拿着高射炮打蚊子! 一)、宏学习 首先需要明确的是,本文不可能教会您关于宏的所有内容。您需要学会利用"录制宏"的方法来学习宏:点击Excel"工具"下拉菜单中"宏"下?quot;录制新宏",此后可象平时一样进行有关操作,待完成后停止录制。然后再点击"工具"下拉菜单中"宏"下"宏"的"编辑"选项即可打开刚才所录制的宏的Visual Basic源程序,并且可以在此时的"帮助"下拉菜单中获得有关的编程帮助。对录制宏进行修改不仅可以学习宏的使用,还能大大简化宏的编写。 二)、基本概念 为了学习Excel中的宏,我们需要先了解以下一些基本概念。 1、工作簿:Workbooks、Workbook、ActiveWorkbook、ThisWorkbook Workbooks集合包含Excel中所有当前打开的Excel工作簿,亦即所有打开的Excel文件;Workbook对应Workbooks中的成员,即其中的Excel文件;ActiveWorkbook代表当前处于活动状态的工作簿,即当前显示的Excel文件;ThisWorkbook代表其中有Visual Basic代码正在运行的工作簿。 在具体使用中可用Workbooks(index)来引用Workbook对象,其中index为工作簿名称或编号;如Workbooks(1)、Workbooks("年度报表.xls")。而编号按照创建或打开工作簿的顺序来确定,第一个打开的工作簿编号为1,第二个打开的工作簿为2……。 2、工作表:Worksheets、Worksheet、ActiveSheet Worksheets集合包含工作簿中所有的工作表,即一个Excel文件中的所有数据表页;而Worksheet则代表其中的一个工作表;ActiveSheet代表当前处于的活动状态工作表,即当前显示的一个工作表。 可用Worksheets(index)来引用Worksheet对象,其中index为工作表名称或索引号;如Worksheets(1)、Worksheets("第一季度数据")。工作表索引号表明该工作表在工作表标签中的位置:第一个(最左边的)工作表的索引号为1,最后一个(最右边的)为Worksheets.Count。需要注意的是:在使用过程中Excel会自动重排工作表索引号,保持按照其在工作表标签中的从左至右排列,工作表的索引号递增。因此,由于可能进行的工作表添加或删除,工作表索引号不一定始终保持不变。3、图表:Chart 、Charts、ChartObject、ChartObjects、ActiveChart Chart代表工作簿中的图表。该图表既可为嵌入式图表(包含在ChartObject中),也可为一个分开的(单独的)图表工作表。 Charts代表指定工作簿或活动工作簿中所有图表工作表的集合,但不包括嵌入式在工作表或对话框编辑表中的图表。使用Charts(index) 可引用单个Chart图表,其中index是该图表工作表的索引号或名称;如Charts(1)、Charts("销售图表")。图表工作表的索引号表示图表工作表在工作簿的工作表标签栏上的位置。Charts(1)是工作簿中第一个(最左边的)图表工作表;Charts(Charts.Count)为最后一个(最右边的)图表工作表。 ChartObject代表工作表中的嵌入式图表,其作用是作为Chart对象的容器。利用ChartObject 可以控制工作表上嵌入式图表的外观和尺寸。 ChartObjects代表指定的图表工作表、对话框编辑表或工作表上所有嵌入式图表的集合。可由ChartObjects(index)引用单个ChartObject,其中index为嵌入式图表的编号或名称。如

新代宏程序实例

1、REPEAT直到型循环 REPEAT <循环体> UNTIL <条件表达式> END_REPEAT; 说明:REPEAT直到型循环控制,先执行循环体,后判断条件表达式,当条件满足时退出循环。 例如: % @MACRO // 启动MACRO语法% @MACRO (宏指令开始) #1=-0.2 REPEAT REPEAT(重复) G01Z#1F80; G1X-20.F700; #2=#1-0.2; G1Z#2F80; G1X-53.F700; #1=#1-0.4; UNTIL (#1<-2.6) END_REPEAT; UNTIL(到…为止,在…以前)END(结束,终止)M30; 2、WHILE当型循环 WHILE <条件表达式> DO→<循环体>→END_WHILE; 说明:WHILE当型循环控制,先判断条件表达式,当条件满足时执行循环体,否则退出循环。例如: % @MACRO; #1=-0.2; WHILE (#14>-2.6) DO WHILE(虽然; 在…期间; 与…同时) IF #1<-2.6THEN EXIT; EXIT(退出; 退场; 离开; 去世) END_IF; G01Z#1F80; G1X-20.F700; #2=#1-0.2; G1Z#2F80; G1X-53.F700; #1=#1-0.4; END_WHILE; M30 3、FOR循环 FOR 翻译:p rep.为,为了; 倾向于; 关于; 当作; conj.因为,由于; FOR <循环变量> := <表达式1> TO <表达式2> [ BY <表达式3>] DO <循环体> END_FOR;

宏程序加工举例

毛坯为150㎜×70㎜×20㎜块料,要求铣出如图2-25所示的椭球面,工件材料为蜡块。见图 程序: 1.根据图样要求、毛坯及前道工序加工情况,确定工艺方案及加工路线 1)以底面为主要定位基准,两侧用压板压紧,固定于铣床工作台上。 2)加工路线 Y方向以行距小于球头铣刀逐步行切形成椭球形成。 2.选择机床设备 根据零件图样要求,选用经济型数控铣床即可达到要求。故选用华中Ⅰ型(ZJK7532A型)数控钻铣床。3.选择刀具 球头铣刀大小f6mm。 4.确定切削用量 切削用量的具体数值应根据该机床性能、相关的手册并结合实际经验确定,详见加工程序。 5.确定工件坐标系和对刀点 在XOY平面内确定以工件中心为工件原点,Z方向以工件表面为工件原点,建立工件坐标系,如图2-25所示。 采用手动对刀方法把0点作为对刀点。 6.编写程序(用于华中I型铣床) 按该机床规定的指令代码和程序段格式,把加工零件的全部工艺过程编写成程序清单。该工件的加工程序如下: %8005(用行切法加工椭园台块,X,Y按行距增量进给) #10=100 ;毛坯X方向长度 #11=70 ;毛坯Y方向长度 #12=50 ;椭圆长轴 #13=20 ;椭圆短轴 #14=10 ;椭园台高度 #15=2 ;行距步长 G92 X0 Y0 Z[#13+20] G90G00 X[#10/2] Y[#11/2] M03 G01 Z0 X[-#10/2] Y[#11/2] G17G01 X[-#10/2] Y[-#11/2] X[#10/2] Y[#11/2] #0=#10/2 #1=-#0 #2=#13-#14 #5=#12*SQRT[1-#2*#2/#13/#13] G01 Z[#14] WHILE #0 GE #1 IF ABS[#0] LT #5 #3=#13*SQRT[1-#0*#0/[#12*#12]] IF #3 GT #2 #4=SQRT[#3*#3-#2*#2] G01 Y[#4] F400

数控宏程序实例

第7章宏程序 7.3 宏程序调用 7.3.1 宏程序调用指令(G65) 在主程序中可以用G65调用宏程序。指令格式如下: G65 P L 〈自变量赋值〉; 其中:P指定宏程序号:L为重复调用次数(1—9999);自变量赋值是由地址和数值构成的,用以对宏程序中的局部变量赋值。 例如: 主程序: O7002 ... G65 P7100 L2 A1.0 B2.0 ... M30 宏程序: #3=#1+#2; IF [#3 GT 360] GOTO 9; G00 G91 X#3 N9 M99 7.3.2 自变量赋值 自变量赋值有两种类型。自变量I使用除去G,L,N,O,P以外的其他字母作为地址,自变量II可以使用A,B,C每个字母一次,I,J,K每个字母可使用十次作为地址。表7—3和7—4分别为两种类型自变量赋值的地址和变量号码之间的对应关系: 表7—3 自变量赋值的地址和变量号码之间的对应关系

时使用表4—1及表4—2中的两组自变量赋予值。系统可以根据使用的字母自动判断自变量赋值的类型。 7.4 变量的控制和运算指令 7.4.1 算术运算和逻辑运算 在变量之间,变量和常量之间,可以进行各种运算,常用的见表7—5。

运算的优先顺序如下: 1)函数。 2)乘除,逻辑与。 3)加减,逻辑或,逻辑异或。 可以用[ ]来改变顺序 7.4.2 控制指令 1.无条件转移(GOTO语句) 语句格式为: GOTO n 其中n为顺序号(1—9999),可用变量表示。例如: GOTO 1; GOTO #10; 2. 条件转移(IF 语句) 语句格式为: IF [条件式] GOTO n 条件式成立时,从顺序号为n的程序段开始执行;条件式不成立时,执行下一个程序段。 条件式有以下几类: # j EQ # K # j NE # K # j GT # K # j LT # K # j GE # K # j LE # K 条件式中变量#J或#K可以是常量也可以是表达式,条件式必须用括弧括起来。下面的程序可以得到1到10的和: O7100 #1=0 #2=1 N1 IF [#2 GT 10] GOTO 2 #1=#1+#2 #2=#2+1 GOTO 1 N2 M30 3循环语句(WHILE 语句) 语句格式为: WHILE [条件式] DO m (m=1,2,3) … END m 当条件语句成立时,程序执行从DO m到END m之间的程序段;如果条件不成立,则执行

相关文档
最新文档