宏程序(教案)讲解

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

国家中职教育改革发展示范学校建设项目优质教案

宏程序

贵州省电子信息高级技工学校数控中心

2013年5月

第 1 页共16 页

国家中职教育改革发展示范学校建设项目

宏程序设计

宏程序与子程序类似,对编制相同加工的操作可以使程序简化.同时宏程序中可以使用变量,算术和逻辑运算及转移指令,还可以方便地实现循环程序设计。使相同加工操作的程序更方便,更灵活。本章以FANUC系统为例介绍宏程序设计的内容。

12.1 变量的定义

宏程序中使用的变量与日常生活中使用的变量不同,变量用符号“#”后跟变量的变量号指定。变量可分为四种类型。

1. 空变量

#0为空变量,该变量不能赋值。

2. 局部变量

#1~#33为局部变量,局部变量只能在宏程序中存储数据。当断电时局部变量被初始化为空,调用宏程序时,自变量对局部变量赋值。局部变量的数值范围10-29~1047或-1047~-10-29,如果计算结果超过该范围则发出P/S报警No.111。

3. 公共变量

#100~#199、#500~#999为公共变量,公共变量在不同的宏程序中意义相同。当断电时,变量#100~#199被初始化为空,变量#500~#999的数据不会丢失。全局变量的数值范围

10-29~1047或-1047~-10-29,如果计算结果超过该范围则发出P/S报警No.111。

4. 系统变量

#1000~为系统变量,系统变量用于读和写CNC运行时的各种数据,如刀具的当前位置和补偿值等。

5. 变量与地址(自变量)的对应关系

系统可用两种形式的自变量指定,表12-1为自变量指定I的自变量与变量的对应关系。表12-2为自变量指宾II的自变量与变量的对应关系。

表12-1 自变量指定I的变量对应关系

在自变量指定I中,G、L、O、N、P不能用,地址I、J、K必须按顺序使用,其它地址顺序无要求。

举例:G65 P3000 L2 B4 A5 D6 J7 K8 正确(J、K符合顺序要求)

在宏程序中将会把4赋给#2,把5赋给#1,把6赋给#7,把7赋给#5,把8赋给#6

第 1 页共16 页

国家中职教育改革发展示范学校建设项目

举例:G65 P3000 L2 B3 A4 D5 K6 J5 不正确(J、K不符合顺序要求)

表12-2 自变量指定II的变量对应关系

系统能够自动识别自变量指定I和自变量指定II并赋给宏程序中相应的变量号。如果自变量指定I和自变量指定II混合使用,则后指定的自变量类型有效。

举例:G65 A1.0 B2.0 I-3.0 I4.0 D5.0 p1000

宏程序中:#1:1.0

#2:2.0,

#3:

#4:-3.0

#5:

#6:

#7:5.0

说明:I4.0为自变量指定II,D为自变量指定I,所以#7使用指定类型中的D5.0,而不使用自变量指定II中的I4.0。

6. 本级变量#1~#33

作用于宏程序某一级中的变量称为本级变量,即这一变量在同一程序级中调用时含义相同,若在另一级程序(如子程序)中使用,则意义不同。本级变量主要用于变量间的相互传递,初始状态下未赋值的本级变量即为空白变量。

局部变量#1~#33(一个宏程序中的同名变量)从0到4级,主程序是0级。每调用一个含有同名变量的宏程序,级别加1,前一级的变量被保存。当一个宏程序结束(执行M99)时,级别减1。

例如:

主程序宏程序宏程序宏程序宏程序

(0级)(1级)(2级)(3级)(4级)

O0001 O0002 O0003 O0004 O0005

#1=1;#1=2 #1=3 #1=4 #1=5

G65P2A2;G65P3A3 G65P4A4 G65P5P5 ……

……………………M99

第 1 页共16 页

国家中职教育改革发展示范学校建设项目

M30 M99 M99 M99

12.2 变量的运算

对宏程序中的变量可以可以进行算术运算和逻辑运算。

1. 算术运算

可以进行加、减、乘、除运算。运算功能和格式如表12-3所示。

举例:G00X[#1+#2]

X坐标的值是变量1与变量2之和。

2. 三角函数计算

对宏程序中的变量可进行正弦(SIN)、反正弦(ASIN)、余弦(COS)、反余弦(ACOS)、正切(TAN)、反正切(ATAN)函数运算。三角函数中的角度以度为单位。运算功能和格式如表12-3所示。

表12-3 变量运算功能表

对于反反正弦(ASIN)取值范围如下:

当参数(No.6004#0)NAT位设为0时:270°~90°

当参数(No.6004#0)NAT位设为1时:-90°~90°

当#j超出-1~1时发出P/S报警No.111。

对于反余弦(ACOS)的取值范围如下:

第 1 页共16 页

国家中职教育改革发展示范学校建设项目

取值范围180°~0°

当#j超出-1~1时发出P/S报警No.111。

对于反正切(ATAN)的取值范围如下:

当参数(No.6004#0)NAT位设为0时:0°~360°

当参数(No.6004#0)NAT位设为1时:-180°~180°

3. 其它函数计算

对宏程序中的变量还可以进行平方根(SQRT)、绝对值(ABS)、舍入(ROUN)、上取整(FIX)、下取整(FUP)、自然对数(LN)、指数(EXP)运算。运算功能和格式如表12-3所示。

对于自然对数LN[#j],相对误差可能大于10-8。当#j≤0时,发出P/S报警No.111。

对于批数函数EXP[#j],相对误差可能大于10-8。当运算结果大于3。65×1047(j大约110)时,出现溢出并发出P/S报警No.111。

对于取整函数ROUN[#j],根据最小设定单位四舍五入。

例如,假设最小设定单位为1/1000mm,#1=1.2345,则#2=ROUN[#1]的值是1.0。

对于上取整FIF[#j],绝对值值大于原数的绝对值。对于下取整FUP绝对值小于原数的绝对值。

例如,假设#1=1.2,则#2=FIX[#1]的值是2.0。

假设#1=1.2,则#2=FUP[#1]的值是1.0。

假设#1=-1.2,则#2=FIX[#1]的值是-2.0。

假设#1=-1.2,则#2=FUP[#1]的值是-1.0。

4. 逻辑运算

对宏程序中的变量可进行与、或、异或逻辑运算。逻辑运算是按位进行。运算功能和格式如表12-3所示。

5. 数制转换

变量可以在BCD码与二进制之间转换。

6. 关系运算

由关系运算符和变量(或表达式)组成表达式。系统中使用的关系运算符如下。

(1)等于(EQ)

用EQ与两个变量(或表达式)组成表达式,当运算符EQ两边的变量(或表达式)相等时,表达式的值为真,否则为假。

例如,#1EQ#2,当#1与#2相等时,表达式的值为真。

(2)不等于(NE)

用NE与两个变量或表达式组成表达式,当运算符NE两边的变量(或表达式)不相等时,表达式的值为真,否则为假。

例如,#1NE#2,当#1与#2不相等时,表达式的值为真。

(3)大于等于(GE)

用GE与两个变量或表达式组成表达式,当左边的变量(或表达式)大于或等于右边的变量(或表达式)时,表达式的值为真,否则为假。

例如,#1GE#2,当#1大于或等于#2时,表达式的值为真。否则为假。

(4)大于(GT)

第 1 页共16 页

相关文档
最新文档