变量编程宏程序
- 格式:ppt
- 大小:1.48 MB
- 文档页数:29
宏程序之系统变量普通的加工程序直接数字标注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 内部的数据,如当前的工件坐标系中的位置和刀具偏置数据,有些系统变量只能读。
系统变量对编写自动化程序和通用程序十分重要。
宏程序大家都在问宏程序~其实说起来宏就是用公式来加工零件的,比如说椭圆,如果没有宏的话,我们要逐点算出曲线上的点,然后慢慢来用直线逼近,如果是个光洁度要求很高的工件的话,那么需要计算很多的点,可是应用了宏后,我们把椭圆公式输入到系统中然后我们给出Z坐标并且每次加10um那么宏就会自动算出X坐标并且进行切削,实际上宏在程序中主要起到的是运算作用..宏一般分为A类宏和B类宏.A类宏是以G65 Hxx P#xx Q#xx R#xx的格式输入的,而B类宏程序则是以直接的公式和语言输入的和C语言很相似在0i系统中应用比较广.由于现在B类宏程序的大量使用很多书都进行了介绍这里我就不再重复了,但在一些老系统中,比如法兰克O TD系统中由于它的M DI键盘上没有公式符号,连最简单的等于号都没有,为此如果应用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加指令;格式G65H02 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减指令;格式G65H03 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乘指令;格式G65H04 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正玄函数指令:格式G65H31 P#101 Q#102 R#103;含义Q后面的#102是三角形的斜边R后面的#103内存的是角度.结果是#101=#102*SIN#103,也就是说可以直接用这个求出三角形的另一条边长.和以前的指令一样Q和R后面也可以直接写数值. H32 COS余玄函数指令:格式G65H32 #101 Q#102 R#103;含义Q后面的#102是三角形的斜边R后面的#103内存的是角度.结果是#101=#102*COS#103,也就是说可以直接用这个求出三角形的另一条边长.和以前的指令一样Q和R后面也可以直接写数值. H33和H34本来应该是TAN和ATAN的可是经过我使用得数并不准确,希望有知道的人能够告诉我是为什么? 开平方根指令: H21;格式G65H21 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.变量:正如计算机程序设计中的变量一样,数控程序中也需要使用变量。
要进行程序流程控制,变量是必不可少的。
数控编程中的变量用符号#跟一个整数表示。
例如#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就可以对例如椭圆形状的曲线进较小程序的运算。
宏程序编程的最佳操作方法宏程序编程是一种用于自动化重复性任务的方法,它可以简化代码编写,并提高开发效率。
以下是关于宏程序编程的最佳操作方法: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程序段,如果不符合就继续执行下面的程序段. 用户宏程序能完成某一功能的一系列指令像子程序那样存入存储器,用一个总指令来它们,使用时只需给出这个总指令就能执行其功能。