新代数控车床宏程序说明_第1页
新代数控车床宏程序说明_第2页
新代数控车床宏程序说明_第3页
新代数控车床宏程序说明_第4页
新代数控车床宏程序说明_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 一用户宏程序的基本概用一 指令构成某功能, 并且象子程序一 存 在存 器中, 再把 些存 的功能由一个指令来代表, 行 只需写出 个代表指令, 就可以 行其相 的功能。 在 里,所存 的一 指令叫做宏程序体 (或用 宏程序 ), 称 用 宏。 其代表指令称 用 宏命令,也称作宏程序 用指用 宏有以下四个主要特1)在用 用 宏程序中可以使用 量,即宏程序体中能含有复 的表达2)能 行 量之 的各种运3)可以用用 宏指令 量 行 , 就象 多高 言中的 参函数或 程, 参能 形4)容易 程序流程的控制。 使用用 宏 的主要方便之 在于由于可以用 量代替具体数 ,因而在加工同一 的工件 只得将 的

2、 予 量既可,而不需要 每个不同的零件都 一个程序。 二 基本书写格式 数控程序文档中,一般以“ %”字符作 第一行的起 , 行将被 行。当 行含有关 字“ MACRO ” 整个文档就会以系 所定 的 MACRO 法 理。如果 行无 “ MACRO ”关 此档案就会被 一般 ISO 程序文档格式 理,此 将不能 写用 宏和使用其 MACRO 法。而当 写 ISO 程序文档 行一般可以省略,直接 写数控程序。“ MACRO ”关 必 是大写字 于程序的注 可以采用“ /?”的形式, 和高 言 C+一 。 例一: MACRO 格式% MACRO /用 宏程序文档,必 包含“ MACRO ”关IF

3、1 = 1 THEG00 X100ELSG00 Z100END_IM99; 例二: ISO 格式文% 是 行,可当作档案用途 明,此行可有G00 X100G00 Z100G00 XG00 ZM99; 第 页 三 用户宏程序的编写 如前所述, 量是指可以在用 宏程序中的地址 后代替具体数 ,在 用宏程序 行 的符号 i (i 1,2,3,? )。使用 量可以使用 宏程序具有通用性。用 宏程序中可以使用多个 量,以 量 号 行 1、 量的形 量是用符号或 后面加上 量 号所构成的,即 i(i 1, 2, 3,? 例如: 5101005也可用 表达式 的形式来表示例如: #100 #10011 #6

4、/2其 ,通 用符号 后面加上 量 号也可构成的 量, i(i 1,2,3,? 例如: 5 5 但一般地,由符号 后面加上 量 号构成的 量称 全局 量,不提倡在用 宏程序中使用,具体 后面的介 2、 量的在地址符后的数 可以用 量置 例如若写成 F#33, 当 331.5 ,与 F1.5 相同若写成 Z#18, 当 1820.0 ,与 Z20.0 相同但需要注意,作 地址符的 O、N、等,不能引用 量例如, O#27、N#1 等,都是 3、未定 尚未被定 的 量,被称 空( VACANT ) 量 0,0 始 空, 常被用作空 量使用。 3变量赋值和引数 量 :用 宏程序中 量 使用 运算符

5、“:=”,不可 用 “ =”符号因 在本系 中符号“ =” 是被 定 关系运算符,用来比 是否相等的。 例如 #30:=100,会将 量 #30 整数 100;而 #30=100,将不能 量 #30 , 上是量 #30 是否与整数 100 相等。 第 页 四变量运算及变量表达式 用户宏运算符 要对变量进行各种运算操作就要用到运算符 ,它是“能对变量所存数据进行运算的符号”。 本系统的 运算符及其优先级如表 3-2 所示。 表 3-2 运算符及其优先级 运算名 符号 优先级 括号 (), 1 函数调用运算 ( ) 2 取负 - 3 求补运算 NOT 3 乘法运算 * 4 除法运算 / 4 模运算

6、 /求余运算 MOD 4 加法运算 + 5 减法运算 - 5 关系运算 ,= 6 相等运算 = 7 不等运算 8 布尔逻辑 /按位与 & ,AND 9 布尔逻辑 /按位 异或 XOR 10 布尔逻辑 /按位 或 OR 11 、基本算数运算符 (1) +(加法运算符,如 3+5,#12+(2) -(减法运算符,或取负运算符,如 #33-16,-#1(3) *(乘法运算符,如 9*2 ,#13*8 ) (4) /(除法运算符,如 10/3, #43/15(5)MOD (模运算符,或称求余运算符,其两侧均应为整型数据,如 7 MOD4 的值为 3,当 #18=20 时 #18 MOD4 的值为 2)

7、 、算术表达式和运算符优先级 用算术运算符和括号将运算对象连接起来的、符合语法规则的式子称为算术 表达式,运算对象 可以是常数、变量、函数 等例如: #6*8/#32-1.5+#18+ ROUND ( 1) 这就是一个算术运算式,它可以作为一个整体赋值给某个变量,或用作其他表达式中的一个运算对象本系统按表表 3-2 规定了运算符的优先级和结合性。在表达式求值时,先按运 算符的优先级别高低次序执行, 例如先乘除后加减。如表达式 #12-#41*5 的左侧为减, 右侧为乘号,而乘号优先于减号,因此,相当于 #12-( #41*5)。 如果在一个运算对象两侧的运算符的优先级别相同,如 #2-5+#2

8、3,则按规定的结合性(结合方向)处理,算术运算符的结合方向为“自左至右”,即先左后右。 因此 5 先与减号结合,执行 #2-5 的运算,再执行加 #23 的运算。这样“自左至右的结合方向”又称为“左结合性”,即运算对象先与左面的运算符结合;对应地,也有“右结合性”的运算符,例如赋值运算符“: =”就是。 、关系运算符和关系表达式 关系运算符是逻辑运算中比较简单的一种。所谓“关系运算”实际上就是“比较运算”。将两个值进行比较,判断比较的结果是否符合给定的条件。 例如,#310 是一个关系表达式, 大于号()是一个关系运算符, 如果 #3=12,则满足给定的“ #310”条件,因此关系表达式的值为

9、“真”(即“条件满足”);如果 #3=6,不满足“ #310”条件,则称关系表达式的值为“假”本系统提供 6 种关系运算符: (1) (小(2) (大(4) = (大于或等(5) = (等于) (6) (不等于) 优先级相同(高) 优先级(较高) 优先级(低) 关于优先次序: 1、前 4 种关系运算符(, )的优先级别相同,它们却高于关系运算符“ =”,而“ =”又高于“ 2、关系运算符的优先级低于算术运算符3、关系运算符的优先级高于赋值运算用两个关系运算符将两个表达式连接起来的式子,称为关系表达式例如: #6 36,#13+4#23 关系表达式的值是一个逻辑值,即“真”或“假”。例如,若 #

10、12 为 8,则关系表达式“ #12=10”的值为“假”,“ #12=6”的值为“真”。 、逻辑运算和逻辑表达式用逻辑运算符将关系表达式或逻辑量连接起来就是逻辑表达式本系统提供 6 种逻辑运算符和逻辑运算 (1) & ,AND 逻辑与 (2) XOR逻(3) OR 逻辑异或 它们都是“双目(元)运算符”,它要求有两个运算量(操作数),逻辑运算举例如#1 AND #2 若#1 、 #2 为真,则 #1 AND #2 为真。 #1 OR #2 若#1 、 #2 之一为真,则 #1 XOR #2 为真。 逻辑运算符低于关系运算符,见图 3-1。 算术运算符 (高) 关系运算符 逻辑运算符 (低) 赋

11、值运算符 图 3-1 五 用户宏程序的流程控制 所谓程序的流程( Flow Control )是通过控制程序的执行方向,进而掌握程序动态。这用户宏程序区别于一般数控程序的特征之一,也是用户选择用户宏程序编写数控代码的一大理由。用户宏程序的流程控制包括无条件判断、循环控制、无条件转移三大类,这与其他的高级语言程序类似,下面将分别介绍其功能和使用语法。 、条件判断 判断条件的真假,然后根据真假或者对应情况到指定的地方去执行程序,这方面的语句有 IF 和 CASE 语句。 1、IF 条件语句 1)基本语法: IF THEN ELSEIF THEN ELSE END_IF ;说明: IF 条件判断,根

12、据真假情况到指定的地方去执行程序。 例% MACRO / 启动 MACRO #1 := 3.0;G01 X20. 15. F200;IF #1 = 1 THEN;X(1.0*1); (1.0*1)ELSEIF #1 = 2 THEN;X(1.0*2); (1.0*2)ELSEIF #1 = 3 THEN;X(1.0*3); (1.0*3)ELSE;X(1.0*4); (1.0*4END_IF;X(1.0) (1.0)M30;然而在实际使用中,可以有以下一些变形: 2)变形 1语法: IF THE N ELSE END_IF ; 3)变形 2语法IF THEN END_IF 编程时可根据需要选择

13、合适的语法格式。 、循环控制 1、REPEAT 直到型循语REPEAT循环体 UNTIL END_REPEAT 说明: REPEAT 直到型循环控制,先执行循环体,后判断条件表达式,当条件 满足时退出循环。 例如% MACRO / 启动 MACRO #10 := 30#11 := 22.5.#12 := #10/#13 := #11/2#14 := 2.#15 := 1.5;G01 X#12 #13 F200.REPEATG00 X(#12+#14) (#13+#15)G01 X(#12+#14) (#13-#15)X(#12-#14) (#13-#15)X(#12-#14) (#13+#15

14、X(#12+#14) (#13+#15#14 := #14 + 2.#15 := #15 + 1.5;UNTIL (#14 #12) OR (#15 #13) END_REPEATX(1.0) (1.0M30; . WHILE 当型循环语法WHILE DO END_WHILE ; 说明: WHILE 当型循环控制,先判断条件表达式,当条件满足时执行循环体, 否则退出循环。 例如: % MACRO; #10 := 20.; #11 := 15.; #12 := #10/2; #13 := #11/2; #14 := 2.0#15 := 1.5;G01 X#12 #13 F200.0WHILE (

15、#14 = #12) AND (#15 6.0 THEN EXIEND_IF;X(#12-#14) (#13+#15X(#12+#14) (#13+#15)#14 := #14 + 2.#15 := #15 + 1.END_WHILX(-5.0) Z(5.0M02; . FOR 循环 语法FOR : = TO BY D O循环体 END_FOR ;说明: FOR 循环控制,式中各参数意义如下循环变量控制循环次数的变量; 表达式 1循环计数的起始值,可为整数或表达式;表达式 2循环计数的终止值,可为整数或表达式; 表达式 3循环计数每次的累加值,可为整数或表达式;循环体 循环每次执行内容FOR

16、循环执行过程为:先给循环变量赋起始值,然后判断循环变量是否为终止 值,当循环变量已为终止值时退出循环,否则执行循环体,再对循环变量加上每次累加值, 、无条件GOTO 移 法:GOTO n; 明:无条件地跳到指定的 n 行号 行,其中 n 可 整数或表达式。 GOTO 常和 IF 句搭配使用,那就是 当程序 到某个条件 足 用 GOTO 句去 一步 理,但 尽量少用 句以提高程序可 性。范例: % MACRO / 启 MACRO IF( #1 = 2 ) THEN GOTO 10G01 X10. 1N100 G01 X30. 30M02;EXIT 循 中断 法: EXIT 明:循 中断,跳离循

17、控制;用在循 控制中,通常 配使用,当某个条件 足后就跳离循 参考 WHILE 范例 。 EXIT 都和 IF 句搭 六 库函数 1、ABS 用方法: ABS() 函数描述:求一个数的 范例#1 := ABS(-2.3); / #1 的 果是 2.3 注 :此 函数内“参数”既可 数 ,也可 量或表达式,以下若无特殊 明均按此 理。 2、SIN 用方法: SIN () 函数描述:求一个数的正弦 范例 #1 := SIN(#10); 3、ASIN 用方法: ASIN () 函数描述:求一个数的反正弦 范例 : #1 := ASIN(#10); 4、MAX 用方法: MAX() 函数描述:求两个数

18、的最大 范例 1#1 := MAX(10 ,20); / #1 等于 20 范例 2#1 := MAX(#2 ,#3); 5、SQRT 用方法: SQRT () 函数描述:求一个数的平方根 范例 1#2 := SQRT(3); / #2 等于 1.732 范例 2:#16 := SQRT(#10); 6、SIGN 用方法: SIGN () 函数描述:返回一个数的符号, -1 表示 数是 数, 1 表示 数是正数, 0 表示 数是零。 范例 :IF( SIGN(#10) 0 ) THEEND_IF; 5、 CEIL 用方法: CEIL() 函数描述:返回比一个数大或与其相等的最小整数 范例 1#

19、2 := CEIL(2.3); / #2 等于 3 范例 2:#2 := CEIL(#10); 7、ROUND 用方法: ROUND () 函数描述:四舍五入化整, 范例 1#2 := ROUND(2.3); / #2 等于 2 范例 2: #2 := ROUND(#10); 七用户宏程序编写注意事项 1. 用 宏文档第一行必 %MACRO ;程序段的每一行 束需加“ ;” 束符; 于用 宏子程序最后需加“ M99;”,以便能返回到主程2. 量 使用“ :=”符号,不可 用“ =”符3. 文档名 存需依照下列 例如: 写 G100 之 MACRO ,需将 MACRO 程序存在 C:CNCMAC

20、R目 底下,且文件名需 G0100,不需 展而 写 G100.1 之 MACRO ,需将 MACRO 程序存在 C:CNCMACRO 底下,且文件名需 G100001,不需 展名。 4. 多使用局部 量 (#1#50), 模 量 (#2001#2100,#3001#3100) 所有 充 G 的共享 源, 用于多个 充 G 的数据交 ,以 省共享 源;如果需要系 定 的初始使用用 参数 ( #4001#4100,#5001 #5100 )。5. 不要使用全局 量 (Global Variables,1999),因 G 行 ,使用者的数据是由自 量 (A_,B_?,Z_) 入,由公共 量 不符合使

21、用 。 6. 系 在 行加工 于 MACRO 程序会事先 ,因此 MACRO 行速度会超前于 G、M 代 指令,因此当要求 量 或数据 取 与 G代 指令 出的 程相同 , 于 量 或数据 取前加 WAIT (指令,否 量 或 数据 取将无法与 G、 M 代 同步。 7. 不可改 模式 G (G00/G01/G02/G03/G33/G34/G35,G91/G90,G40/G41/G42,?,)的状 ,如果用 宏程序中需要改 其状 ,就需要模 信息的回复8. 于 度或角度的自 量在运算前 使用 STD()函数将 位 准化,以符合工具机使用 9. 不可以改 坐 系 定, G92/G54/G52 等

22、与坐 系 相关指令不能使用,否 形仿真功能将失去参考意 。 10. 在程序中加上必要的注 ,养成良好的 程 ,以增加程序可 性和可 性,以帮助后 开 人 和排除 。 运算名 括号 函数调用运算 取负 求补运算 乘法运算 除法运算 模运算 /求余运算加法运算减法运算 关系运算 相等运算 不等运算 布尔逻辑 /按位与 布尔逻辑 /按位 异或布尔逻辑 /按位 或 函数名 ABS ACOS ASIN ATAN COS MAX 附录 运算符及其优先级 符号 优先级 (), 1 ( ) 2 - 3 NOT 3 * 4 / 4 MOD 4 + 5 - 5 ,= 6 = 7 8 & ,AND 9 XOR 10

23、 OR 11 描述 求一个数的绝对值 范例 : #1 := ABS(-2.3); /#1 的结果是 2.3 求一个数的反余弦值 范例 : #1 := ACOS(#10); 求一个数的反正弦值 范例 : #1 := ASIN(#10); 求一个数的反正切值 范例 : #1 := ATAN(#10); 求一个数的余弦值 范例 : #1 := COS(#10); 求两个数的最大值 范例 1: 第 页 函数名 MIN SIN SQRT TAN SIGN CEIL FLOOR ROUND 描述 #1 := MAX(10 ,20); / #1 等于 20 范例 2: #1 := MAX(#2 ,#3); 求两个数的最小 范例 1: #1 := MIN(10.0 ,20.0); / #1 等于 10.0 范例 2: #1 := MIN(#10 ,#11); 求一个数的正弦 范例 : #1 := SIN(#10); 求一个数的平方根 范例 1: #2 := SQRT(3); / #2 等于 1.732. 范例 2: #2 := SQRT(#10); 求一个数的正切 范例 : #1 := TAN(#10); 返回一个数的符号, -1 表示 数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论