文档库 最新最全的文档下载
当前位置:文档库 › 关于宏程序

关于宏程序

关于宏程序
关于宏程序

大家都在问宏程序”其实说起来宏就是用公式来加工零件的,比如说椭圆,如果没有宏的话,我们要逐点算出曲线上的点,然后慢慢来用直线逼近,如果是个光洁度要求很高的工件的话,那么需要计算很多的点,可是应用了宏后,我们把椭圆公式输入到系统中然后我们给出Z 坐标并且每次加10um那么宏就会自动算出X坐标并且进行切削,实际上宏在程序中主要起到的是运算作用..宏一般分为A类宏和B类宏.A类宏是以G65HxxP#xxQ#xxR#xx的格式输入的,而B类宏程序则是以直接的公式和语言输入的和C语言很相似在0i系统中应用比较广.由于现在B类宏程序的大量使用很多书都进行了介绍这里我就不再重复了,但在一些老系统中,比如法兰克OTD系统中由于它的MDI键盘上没有公式符号,连最简单的等于号都没有,为此如果应用B 类宏程序的话就只能在计算机上编好再通过RSN-32接口传输的数控系统中,可是如果我们没有PC机和RSN-32电缆的话怎么办呢,那么只有通过A类宏程序来进行宏程序编制了,下面我介绍一下A类宏的引用;

A类宏是用G65HxxP#xxQ#xxR#xx或G65HxxP#xxQxxRxx格式输入的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加指令;格式G65H02P#101Q#102R#103,把#102的数值加上#103的数值赋予#101

G65H02P#101Q#102R10

G65H02P#101Q10R#103

G65H02P#101Q10R20

上面4个都是加指令的格式都是把Q后面的数值或变量号内的数值加上R后面的数值或变量号内的数值然后等于到P后面的变量号中.

H03减指令;格式G65H03P#101Q#102R#103,把#102的数值减去#103的数值赋予#101

G65H03P#101Q#102R10

G65H03P#101Q10R#103

G65H03P#101Q20R10

上面4个都是减指令的格式都是把Q后面的数值或变量号内的数值减去R后面的数值或变量号内的数值然后等于到P后面的变量号中.

H04乘指令;格式G65H04P#101Q#102R#103,把#102的数值乘上#103的数值赋予#101

G65H04P#101Q#102R10

G65H04P#101Q10R#103

G65H04P#101Q20R10

上面4个都是乘指令的格式都是把Q后面的数值或变量号内的数值乘上R后面的数值或变量号内的数值然后等于到P后面的变量号中.

H05除指令;格式G65H05P#101Q#102R#103,把#102的数值除以#103的数值赋予#101

G65H05P#101Q#102R10

G65H05P#101Q10R#103

G65H05P#101Q20R10

上面4个都是除指令格式都是把Q后面的数值或变量号内的数值除以R后面的数值或变量号内的数值然后等于到P后面的变量号中.(余数不存,除数如果为0的话会出现112报警)三角函数指令:

H31SIN正玄函数指令:格式G65H31P#101Q#102R#103;含义Q 后面的#102是三角形的斜边R后面的#103内存的是角度.结果是#101=#102*SIN#103,也就是说可以直接用这个求出三角形的另一条边长.和以前的指令一样Q和R后面也可以直接写数值.

H32COS余玄函数指令:格式G65H32#101Q#102R#103;含义Q 后面的#102是三角形的斜边

R后面的#103内存的是角度.结果是#101=#102*COS#103,也就是说可以直接用这个求出三角形的

另一条边长.和以前的指令一样Q和R后面也可以直接写数值.

H33和H34本来应该是TAN和A TAN的可是经过我使用得数并不准确,希望有知道的人能够告诉我是为什么?

开平方根指令:

H21;格式G65H21P#101Q#102;意思是把#102内的数值开了平方根然后存到#101中(这个指令是非常重要的如果在车椭圆的时候没有开平方跟的指令是没可能用宏做到的.

无条件转移指令:

H80;格式:G65H80P10;直接跳到第10程序段

有条件转移指令:

H81H82H83H84H85H86,分别是等于就转的H81;不等于就转的H82;小于就转的H83;大于就转的H84;小于等于就转的H85;大于等于就转的H86;

格式:G65H8xP10Q#101R#102;将#101内的数值和#102内的数值

相比较,按上面的H8x的码带入H8x中去,如果条件符合就跳到第10程序段,如果不符合就继续执行下面的程序段.

新代数控车床宏程序说明

一.用户宏程序的基本概念 用一组指令构成某功能,并且象子程序一样存储在存储器中,再把这些存储的功能由一个指令来代表,执行时只需写出这个代表指令,就可以执行其相应的功能。 在这里,所存储的一组指令叫做宏程序体(或用户宏程序),简称为用户宏。其代表指令称为用户宏命令,也称作宏程序调用指令。 用户宏有以下四个主要特征: 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

B类宏程序

二、教学过程 1.变量 B类宏程序的变量与A类宏程序的变量基本相似,但也略有不同,主要区别有以下几个方面。 (1)变量的表示:B类宏程序除可采用A类宏程序的变量表示方法外,还可以用表达式表示,但表达式必须封闭在方括号“[ ]”中。程序的圆括号“()”用于注释。 例# [#1+#2+10] 当#1=10,#2=100时,该变量表示#120。 (2)变量的引用:引用变量也可以用表达式表示 例G01 X [#100-30.0] Y- #101 F [#101+#103] ; 当#100=100时、#101=50、#103=80时,上式即表示为G01 X70.0 Y-50.0 F130; (3)变量的种类:B类与A类宏程序的变量种类相同 2.变量的赋值 (1)直接赋值变量可以在操作面板上用MID方式直接赋值,也可在程序中以等式方式赋值,在等号左边不能用表达式。 例#100 =100.0;#100 =30.0+20.0 (2)引数赋值宏程序以子程序方式出现,所用的变量可在宏调用时赋值。如下所示: 例G65 P1000 X100.0 Y30.0 Z20.0 F100.0; 此处的X、Y、Z不代表坐标字,F也不代表进给字,而是对应与宏程序中的变量号,变量的具体数值由引数后的数值决定。引用宏程序体中的变量对应关系有两种,见表2—4—2及表2—4—3。此两种方法可以混用,其中G、L、N、O、P不能作为引数替变量赋值。 例变量赋值方法1 G65P0030 A50.0 I40.0 J100.0 K0 I20 J10.0 K40.0; 经赋值后#1=50.0,#4=40.0,#5=100.0,#6=0,#7=20.0,#8=10.0,#9=40.0。 变量赋值方法2 G65 P0020 A50.0 X40.0 F100 经赋值后#1=50.0,#24=40.0,#9=100.0。 变量的赋值方法1、2混合 G65 P0030 A50.0 D40.0 I100.0 K0 I20.0 经赋值后,I20.0与D40.0同时分配给变量# 7,则后一个# 7有效,所以变量# 7=20.0,其余同上。 采用赋值后前面A类宏程序例题精加工程序可改写成如下形式: O010;(主程序) … G65 P0210 X28.0 Z-20.0 A20.0 B0 R20.0;(赋值后,#24=28.0,#26=-20.0,#1=20.0,#2=0,#18=20.0)… O210;(精加工宏程序) N1000 G01Z#26;

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

由浅入深宏程序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 相同。

新代宏程序实例

新代宏程序实例文件编码(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代码和移动距离;例如,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 相同。

数控宏程序实例

第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 自变量赋值的地址和变量号码之间的对应关系 表7—4 自变量II的地址与变量号码之间的对应关系

上表中的I,J,K的下标只表示顺序,并不写在实际命令中。在G65的程序段中,可以同时使用表4—1及表4—2中的两组自变量赋予值。系统可以根据使用的字母自动判断自变量赋值的类型。 7.4 变量的控制和运算指令 7.4.1 算术运算和逻辑运算 在变量之间,变量和常量之间,可以进行各种运算,常用的见表7—5。

表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

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为嵌入式图表的编号或名称。如

数控机床宏程序编程的技巧和实例

论文: 数控机床宏程序编程的技巧和实例 2011年8月11日

前言 随着工业技术的飞速发展,产品形状越来越复杂,精度要求越来越高,产品更新换代越来越快,传统的设备已不能适应新要求。现在我国的制造业中已广泛地应用了数控车床、数控铣床、加工中心机床、数控磨床等数控机床。这些先进设备的加工过程都需要由程序来控制,需要由拥有高技能的人来操作。要发挥数控机床的高精度、高效率和高柔性,就要求操作人员具有优秀的编程能力。 常用的编程方法有手工编程和计算机编程。计算机编程的应用已非常广泛。与手工编程比较,在复杂曲面和型腔零件编程时效率高、质量好。因此,许多人认为手工编程已不再重要,特别是比较难的宏程序编程也不再需要。只须了解一些基本的编程规则就可以了。这样的想法并不能全面。因为,计算机编程也有许多不足:1、程序数据量大,传输费时。2、修改或调整刀具补偿需要重新后置输出。3、打刀或其他原因造成的断点时,很难及时复位。 手工编程是基础能力,是数控机床操作编程人员必须掌握的一种编程方法。手工编程能力是计算机编程的基础,是刀具轨迹设计,轨迹修改,以及进行后置处理设计的依据。实践证明,手工编程能力强的人在计算机编程中才能速度快,程序质量高。 在程序中使用变量,通过对变量进行赋值及处理使程序具有特殊功能,这种有变量的程序叫宏程序。宏程序是数控系统厂家面向客户提供的的二次开发工具,是数控机床编程的最高级手工方式。合理有效的利用这个工具将极大地提升机床的加工能力。

作为一名从事数控车床、数控铣床、加工中心机床操作编程二十多年的技师,在平时的工作中,常常用宏程序来解决生产中的难题,因此对宏程序的编程使用积累了一些经验。在传授指导徒弟和与同事探讨中,总结了许多学习编制宏程序应注意的要点。有关宏编程的基础知识在许多书籍中讲过,我们在这里主要通过实例从编制技巧、要点上和大家讨论。 一、非圆曲面类的宏程序的编程技巧 1、非圆曲面可以分为两类; (1)、方程曲面,是可以用方程描述其零件轮廓的曲面的。如 抛物线、椭圆、双曲线、渐开线、摆线等。这种曲线可以用先求节点,再用线段或圆弧逼近的方式。以足够的轮廓精度加工出零件。选取的节点数目越多,轮廓的精度越高。然而节点的增多,用普通手工编程则计算量就会增加的非常大,数控程序也非常大,程序复杂也容易出错。不易调试。即使用计算机辅助编程,其数据传输量也非常大。而且调整尺寸补偿也很不方便。这时就显出宏程序的优势了,常常只须二、三十句就可以编好程序。而且理论上还可以根据机床系统的运算速度无限地缩小节点的间距,提高逼近精度。 (2)、列表曲面,其轮廓外形由实验方法得来。如飞机机翼、汽车的外形由风洞实验得来。是用一系列空间离散点表示曲线或曲面。这些离散点没有严格一定的连接规律。而在加工中则要求曲线能平滑的通过各坐标点,并规定了加工精度。加工列表曲线的方法很多,可以采

数控宏程序实例

数控宏程序实例 第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 自变量赋值的地址和变量号码之间的对应关系 地址宏程序中变量地址宏程序中变量 A #1 Q #17 B #2 R #18 C #3 S #19 D #7 T #20 E #8 U #21 F #9 V #22 H #11 W #23 I #4 X #24 J #5 Y #25 K #6 Z #26 M #13 表7—4 自变量II的地址与变量号码之间的对应关系 地址宏程序中变量地址宏程序中变量 A #1 #18 B #2 #19 C #3 #20 #4 #21 #5 #22 #6 #23 #7 #24 #8 #25

#9 #26 #10 #27 #11 #28 #12 #29 #13 #30 #14 #31 #15 #32 #16 #33 #17 上表中的I,J,K的下标只表示顺序,并不写在实际命令中。在G65的程序段中,可以同时使用表4—1及表4—2中的两组自变量赋予值。系统可以根据使用的字母自动判断自变量赋值的类型。 7.4 变量的控制和运算指令 7.4.1 算术运算和逻辑运算 在变量之间,变量和常量之间,可以进行各种运算,常用的见表7—5。 表7—5 算术和逻辑运算 运算格式说明 赋值 #i=#j 加 #i=#j+#k 减 #i=#j-#k 乘 #i=#j*#k 除 #i=#j/#k 正弦 #i=sin[#j] 角度单位为度余弦 #i=cos[#j] 正切 #i=tan[#j]

(整理)数控宏程序教程(车床篇)1(经典)

由浅入深宏程序1-宏程序入门基础之销轴加工对于没有接触过宏程序 人,觉得它很神秘,其实很简单,只要掌握了各类系统宏程序的基本格式,应用指令代码,以及宏程序编程的基本思路即可。 对于初学者,尤其是要精读几个有代表性的宏程序,在此基础上进行模仿,从而能够以此类推,达到独立编制宏程序的目的。本教程将分步由浅入深的将宏程序讲解给大家,作者水平有限,也希望各位同仁提供更好的思路。 下面大家先看一个简单的车床的程序,图纸如下: 要求用外圆刀切削一个短轴,这里只列举程序的前几步: O0001 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] GOTO 10如果#1 >= 40,即此表达式满足条件,则程序跳转到N10继续执行。G0X150Z150;当不满足#1 >= 40,即#1<40,则跳过循环判断语句,由此句继续向后执行。M5; M30;

【免费下载】数控宏程序实例

第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 自变量赋值的地址和变量号码之间的对应关系地 址宏程序中变量地 址宏程序中变量A #1Q #17 B #2R #18 C #3S #19 D #7T #20 E #8U #21 F #9V #22H #11W #23I #4X #24J #5Y #25K #6Z #26对全部高中资料试卷电气设备,在安装过程中以

M #13表7—4 自变量II 的地址与变量号码之间的对应关系地 址宏程序中变量地 址宏程序中变量 A #1#18 B #2#19 C #3#20#4#21#5#22#6#23#7#24#8#25#9#26#10#27#11#28#12#29#13#30#14#31#15#32#16#33#17 上表中的I ,J ,K 的下标只表示顺序,并不写在实际命令中。在G65的程序段中,可以同时使用表4—1及表4—2中的两组自变量赋予值。系统可以根据使用的字母自动判断自变量赋值的类型。 7.4 变量的控制和运算指令7.4.1 算术运算和逻辑运算在变量之间,变量和常量之间,可以进行各种运算,常用的见表7—5。表7—5 算术和逻辑运算运算格式说明赋值#i=#j 加 #i=#j+#k 减#i=#j-#k 乘#i=#j*#k 除#i=#j/#k 正弦#i=sin[#j]余弦#i=cos[#j]正切#i=tan[#j]反正切#i=atan[#j] 角度单位为度平方根#i=sqrt[#j]绝对值#i=abs[#j]壁薄、接口不严等问题,合理利用管线敷设技术。线缆敷设原则:在分线盒处,当不同电压回路交叉时,应采用金属隔板进行隔开处理;同一线槽内,强电回路须同时切断习题电源,线缆敷设完毕,要进行检查和检测处理。对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电试卷电气设备进行调试工作并且进行过关运行高中资料试卷技术指导。对于调试过程中高中资料试卷技术问题,作为调试人员,需要在事前掌握图纸资料、设备制造厂家出具高中资料试卷试验报告与相关技术资料,并且了解现场设备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。电力高中资料试卷保护装置调试技术,要求电力保护装置做到准确灵活。对于差动保护装置高中资料试卷调试技术是指发电机一变压器组在发生内部故障时,需要进行外部电源高中资料试卷切除从而采用高中资料试卷主要保护装置。

相关文档