ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:25.13KB ,
资源ID:18570356      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18570356.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(新代数控车床宏程序说明范本模板文档格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

新代数控车床宏程序说明范本模板文档格式.docx

1、 5 但一般地,由符号后面加上变量编号构成的变量称为全局变量,不提倡在用户宏程序中使用,具体见后面的介绍。2、变量的引用在地址符后的数值可以用变量置换.若写成F#33,则当331。5时,与F1。5相同.若写成Z18,则当#1820.0时,与Z20.0相同.但需要注意,作为地址符的O、N、等,不能引用变量。例如,O#27、N#1等,都是错误的。3、未定义变量尚未被定义的变量,被称为空(VACANT)。变量#0,0 始终为空,经常被用作空变量使用。3变量赋值和引数赋值变量赋值:用户宏程序中变量赋值使用赋值运算符“:=”,不可仅用“=”符号。因为在本系统中符号“=” 是被规定为关系运算符,用来比较是

2、否相等的.例如30:=100,会将变量#30赋值为整数100;而#30=100,将不能为变量#30赋值,实际上是比较变量30是否与整数100相等。四变量运算及变量表达式用户宏运算符要对变量进行各种运算操作就要用到运算符,它是“能对变量所存数据进行运算的符号”。本系统的运算符及其优先级如表3-2所示。表3-2 运算符及其优先级运算名符号优先级括号( ), 1函数调用运算函数名(,=,=6相等运算7不等运算8布尔逻辑/按位与&,AND9布尔逻辑/按位 异或XOR10布尔逻辑/按位 或OR11、基本算数运算符 (1) + (加法运算符,如3+5,#12+4) (2) (减法运算符,或取负运算符,如#

3、3316,16) (3) (乘法运算符,如9*2,#13*8) (4) / (除法运算符,如10/3,43/15) (5)MOD (模运算符,或称求余运算符,其两侧均应为整型数据,如7 MOD4的值为3,当#18=20时#18 MOD4的值为2)、算术表达式和运算符优先级用算术运算符和括号将运算对象连接起来的、符合语法规则的式子称为算术表达式,运算对象可以是常数、变量、函数等。#68/321.5+#18+ ROUND(#1) 这就是一个算术运算式,它可以作为一个整体赋值给某个变量,或用作其他表达式中的一个运算对象。本系统按表表3-2规定了运算符的优先级和结合性.在表达式求值时,先按运算符的优先

4、级别高低次序执行,例如先乘除后加减。如表达式12-41*5的左侧为减,右侧为乘号,而乘号优先于减号,因此,相当于12-(415)。如果在一个运算对象两侧的运算符的优先级别相同,如#25+23,则按规定的结合性(结合方向)处理,算术运算符的结合方向为“自左至右”,即先左后右。因此5先与减号结合,执行#25的运算,再执行加23的运算。这样“自左至右的结合方向”又称为“左结合性”,即运算对象先与左面的运算符结合;对应地,也有“右结合性”的运算符,例如赋值运算符“:=就是. 、关系运算符和关系表达式 关系运算符是逻辑运算中比较简单的一种。所谓“关系运算”实际上就是“比较运算”。将两个值进行比较,判断比

5、较的结果是否符合给定的条件。例如,310是一个关系表达式,大于号()是一个关系运算符,如果#3=12,则满足给定的“#310”条件,因此关系表达式的值为“真(即“条件满足”);如果3=6,不满足“310”条件,则称关系表达式的值为“假。 本系统提供6种关系运算符:优先级相同(高)优先级(较高)优先级(低) (1) (小于) (2) = (小于或等于) (3) (大于)(4) = (大于或等于)(5) = (等于)(6) )的优先级别相同,它们却高于关系运算符“=”,而“=”又高于“2、关系运算符的优先级低于算术运算符。3、关系运算符的优先级高于赋值运算符。用两个关系运算符将两个表达式连接起来的

6、式子,称为关系表达式。636,#13+423关系表达式的值是一个逻辑值,即“真”或“假”.例如,若#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.(高)

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

8、ND_IF;说明:IF条件判断,根据真假情况到指定的地方去执行程序. % MACRO / 启动MACRO语法#1 := 3.0;G01 X20。 15. F200;IF #1 = 1 THEN;X(1.01);(1。01);ELSEIF 1 = 2 THEN;X(1.0*2);(1.02);ELSEIF #1 = 3 THEN;X(1。0*3);03);ELSE;0*4);0*4);END_IF;0)(1.0);M30;然而在实际使用中,可以有以下一些变形:2)变形1语法:IF ELSEEND_IF;编程时可根据需要选择合适的语法格式。、循环控制1、REPEAT直到型循环REPEAT #12)

9、 OR (#15 13) END_REPEAT;X(1.0) (1.0);。WHILE当型循环WHILE 条件表达式 DO循环体END_WHILE;WHILE当型循环控制,先判断条件表达式,当条件满足时执行循环体,否则退出循环。 % MACRO; 10 := 20.;= 15.;12 :#13 :#15 := 1.5;G01 X#12 #13 F200。WHILE (#14 = #12) AND (15 = #13) DO G00 X(12+14) (#13+15); G01 X(#12+14) (13-15); X(#1214) (#1315); IF 14 6。0 THENEXIT;X(#

10、12-#14) (#13+#15);X(#12+#14) (#13+#15);14 := 14 + 2.0;= #15 + 1.5;END_WHILE;X(-5.0) Z(5.0);M02;。FOR循环FOR TO 表达式2 BY 表达式3 DO循环体END_FOR;FOR循环控制,式中各参数意义如下循环变量控制循环次数的变量;表达式1循环计数的起始值,可为整数或表达式;表达式2循环计数的终止值,可为整数或表达式;表达式3循环计数每次的累加值,可为整数或表达式;循环体 -循环每次执行内容;FOR循环执行过程为:先给循环变量赋起始值,然后判断循环变量是否为终止值,当循环变量已为终止值时退出循环,

11、否则执行循环体,再对循环变量加上每次累加值,、无条件转移GOTO转移语句GOTO n;无条件地跳到指定的n行号执行,其中n可为整数或表达式。GOTO常和IF语句搭配使用,那就是说当程序检查到某个条件满足时用GOTO语句去进一步处理,但应尽量少用该语句以提高程序可读性。范例: MACRO / 启动MACRO语法 IF( 1 = 2 ) THEN GOTO 100;G01 X10。 10。N100 G01 X30. 30。M02;EXIT循环中断语句语法:循环中断,跳离循环控制;用在循环控制中,通常EXIT都和IF语句搭配使用,当某个条件满足后就跳离循环。请参考WHILE范例.六 库函数1、ABS

12、调用方法:ABS()函数描述:求一个数的绝对值1 := ABS(2。3); / #1 的结果是 2.3注:此处函数内“参数”既可为实际数值,也可为变量或表达式,以下若无特殊说明均按此处理.2、SIN调用方法:SIN (求一个数的反正弦值 1 := ASIN(10);4、MAXMAX(参数1,参数2)函数描述:求两个数的最大值范例1:#1 := MAX(10,20); / 1等于20范例2: #1 := MAX(#2,3);5、SQRTSQRT (参数)求一个数的平方根值范例1:2 := SQRT(3); / #2 等于 1.732#16 := SQRT(#10);6、SIGNSIGN (参数)

13、返回一个数的符号,1表示该数是负数,1表示该数是正数,0表示该数是零.IF( SIGN(#10) 0 ) THEN5、CEILCEIL(参数)返回比一个数大或与其相等的最小整数#2 := CEIL(2.3); / #2 等于 3范例2:#2 := CEIL(#10);7、ROUNDROUND (四舍五入化整,= ROUND(2。3); / #2 等于 2 2 := ROUND(10);七用户宏程序编写注意事项1.用户宏文档第一行必须为%MACRO;程序段的每一行结束需加“;”结束符;对于用户宏子程序最后需加“M99;”,以便能返回到主程序。2.变量赋值使用“:=”符号,不可仅用“=”符号.3.

14、文档名储存需依照下列规则。编写G100之MACRO,需将该MACRO程序存在C:CNCMACRO目录底下,且文件名需为G0100,不需扩展名。而编写G100。1之MACRO,需将该MACRO程序存在C:CNCMACRO目录底下,且文件名需为G100001,不需扩展名.4.请多使用局部变量(1#50), 模态变量(#2001#2100,30013100)为所有扩充G码的共享资源,请仅用于多个扩充G码间的数据交换,以节省共享资源;如果需要系统定义的初始值,请使用用户参数( #4001#4100,5001 #5100 )。5.请不要使用全局变量(Global Variables,1999),因为G码

15、执行时,使用者的数据是由自变量(A_,B_,Z_)传入,由公共变量传递不符合使用习惯。6.系统在执行加工时对于MACRO程序会事先预编译,因此MACRO执行速度会超前于G、M 代码指令,因此当要求变量赋值或数据读取须与G、M代码指令发出的时间进程相同时,请于变量赋值或数据读取前加WAIT()指令,否则该变量赋值或该数据读取将无法与G、M 代码同步。7.不可改变模式G码(G00/G01/G02/G03/G33/G34/G35,G91/G90,G40/G41/G42,,)的状态,如果用户宏程序中需要改变其状态时,就需要模态信息的回复,8.对于长度或角度的自变量在运算前请使用STD()函数将单位标准

16、化,以符合工具机使用习惯.9.不可以改变坐标系统设定,G92/G54/G52等与坐标系统相关指令不能使用,否则图形仿真功能将失去参考意义.10.请在程序中加上必要的注释,养成良好的编程习惯,以增加程序可读性和可维护性,以帮助后续开发人员维护和排除问题.附录 运算符及其优先级(参数列表 )*,,AND函数名描述ABS #1 := ABS(-2。 /1 的结果是 2。ACOS求一个数的反余弦值= ACOS(10);ASINATAN求一个数的反正切值 1 := ATAN(10);COS求一个数的余弦值= COS(#10);MAX= MAX(10,20); / #1等于20= MAX(#2,#3);M

17、IN求两个数的最小值= MIN(10.0,20.0); / 1等于10。 1 := MIN(10,#11);SINSQRT / 2 等于 1。732。 2 := SQRT(#10);TAN求一个数的正切值= TAN(#10);SIGN返回一个数的符号,1表示该数是负数,1表示该数是正数,0表示该数是零 。CEIL2 := CEIL(2.3);= CEIL(10);FLOOR返回比一个数小或与其相等的最大整数= FLOOR(2。 / 2 等于 2= FLOOR(10);ROUND四舍五入化整= ROUND(2.3); #2 := ROUND(#10);STD参数规范化, 读第一个参数为规范化对象

18、, 根据第二个参数使用最小增量方法,特别对小数编程尤为必要.9 := STD(9,#1600); / 根据远轴规范化STDAX参数规范化, 读第一个参数为规范化对象, 根据第二个轴地址参数使用最小增量方法#24 := STDAX(24,X); /根据X轴规范化#3 := STDAX(#3,A); /根据A轴规范化RANDOM产生一个伪随机数= RANDOM();PUSH进宏堆栈PUSH(#1); / 变量#1 内容进栈PUSH(#3); / 变量#3 内容进栈POP出宏堆栈= POP( ); /出栈值赋给变量#1STKTOP从栈顶依据索引获取堆栈元素,但不弹出此元素 STKTOP(0); /栈顶元素 STKTOP(1); /栈顶下的第一个元素 STKTOP(2); /栈顶下的第二个元素 etcALARM发出宏警告 ALARM(300); / 发出标识号为300的警告 ALARM(1); / #1 必须为整数SLEEP临时放弃执行循环 SLEEP();

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1