宏程序编程
- 格式:doc
- 大小:155.50 KB
- 文档页数:13
宏程序编程实例与技巧方法概述宏程序是一种程序设计技术,它可以帮助程序员更高效地编写代码。
宏程序可以在代码中定义一系列指令,然后在需要的时候通过宏调用来简化代码。
本文将介绍宏程序编程的一些实例以及一些技巧方法,帮助读者更好地理解和应用宏程序。
宏程序的使用场景宏程序常常用于编写重复性高的代码,例如循环结构、条件判断等。
通过宏程序,可以减少代码量,提高代码的可读性和维护性。
同时,宏程序还可以用来定义一些常用的功能模块,如计算、字符串操作等,以便在多个地方复用。
宏的定义和调用在开始介绍宏程序编程的实例之前,我们先来了解一下宏的定义和调用。
在大多数编程语言中,宏的定义是通过使用特定的关键字或语法来定义的。
一旦定义了宏,就可以通过宏调用来使用它。
下面是一个简单的示例,展示了如何定义和调用一个简单的宏:// 定义一个宏#define MAX(a, b) ((a) > (b) ? (a) : (b))// 使用宏int maxNum = MAX(10, 20);在上面的示例中,我们定义了一个名为MAX的宏。
这个宏接受两个参数a和b,并返回它们中较大的一个。
在使用宏的时候,我们直接使用MAX(10, 20)来调用它。
宏编程的实例实例一:计算平方有时候,我们需要计算一个数的平方。
下面是一个使用宏实现计算平方的例子:// 定义一个宏#define SQUARE(x) ((x) * (x))// 使用宏int squareNum = SQUARE(5); // squareNum 的值为25在上面的例子中,我们定义了一个名为SQUARE 的宏,它接受一个参数x,并返回x的平方。
在使用宏的时候,我们直接使用SQUARE(5)来调用它,得到结果25。
实例二:计算阶乘下面是一个使用宏实现计算阶乘的例子:// 定义一个宏#define FACTORIAL(n) ((n == 0) ? 1 : (n * FACTORIAL(n - 1)))// 使用宏int factorialNum = FACTORIAL(5); // factorialNum的值为120在上面的例子中,我们定义了一个名为FACTORIAL的宏,它接受一个参数n,并返回n的阶乘。
宏程序编程教程范文一、什么是宏程序编程?宏程序是一种程序开发技术,它允许程序员在编写源代码时使用宏指令,用于执行一系列预定义的操作。
它通常用于简化重复性的工作,并提高代码的可维护性和可读性。
二、宏程序的基本语法1.定义宏指令在宏程序中,可以使用"#define"指令定义宏指令。
宏指令定义的基本语法格式如下所示:#define MACRO_NAME(parameter1, parameter2, ...) code其中,MACRO_NAME是宏指令的名称,parameter1、parameter2等是宏指令的参数,在code中可以使用这些参数。
宏指令的参数可以是任意的数据类型,如整数、字符串等。
2.调用宏指令在源代码中,可以使用宏指令进行调用。
宏指令的调用形式如下所示:MACRO_NAME(argument1, argument2, ...)其中,MACRO_NAME是宏指令的名称,argument1、argument2等是宏指令的参数,这些参数将替换宏指令定义中的参数。
三、宏程序的应用实例下面是一个简单的宏程序示例,用于计算两个数的和:#define ADD(a, b) ((a) + (b))int maiint num1 = 10;int num2 = 20;int sum = ADD(num1, num2);printf("The sum is %d\n", sum);return 0;上面的示例中,"ADD(a, b)"是一个宏指令,它的定义是将参数a和b相加。
在main函数中,调用了ADD宏指令,传入了num1和num2作为参数,它将替换成"((num1) + (num2))",最终计算出两个数的和并赋值给sum变量。
四、宏程序的优点和注意事项1.优点宏程序可以提高代码的可读性和可维护性,通过使用宏指令可以将复杂的操作封装为简单的函数,提高代码的可读性。
宏程序编程一百例宏程序编程是一种非常重要且常用的技术,它可以大大提高我们的工作效率。
在本文中,将为大家介绍一百个关于宏程序编程的例子,帮助读者更好地理解宏程序编程的应用场景和实际操作。
1. 实现一个宏,可以将单元格A1中的值复制到单元格B1中。
2. 编写一个宏,可以将选定的单元格字体设置为粗体。
3. 创建一个宏,可以将选定的单元格背景色设置为红色。
4. 编写一个宏,可以在选定的单元格中插入当前日期。
5. 实现一个宏,可以在选定的单元格中插入当前时间。
6. 编写一个宏,可以将选定的单元格格式设置为货币。
7. 创建一个宏,可以在选定的单元格中插入一个公式。
8. 编写一个宏,可以将选定的单元格合并为一个单元格。
9. 实现一个宏,可以将选定的单元格边框设置为虚线。
10. 编写一个宏,可以将选定的单元格字体颜色设置为绿色。
11. 创建一个宏,可以在选定的单元格中插入一个下拉列表。
12. 编写一个宏,可以将选定的单元格格式设置为百分比。
13. 实现一个宏,可以将选定的单元格对齐方式设置为居中。
14. 编写一个宏,可以将选定的单元格格式设置为日期。
15. 创建一个宏,可以在选定的单元格中插入一个图片。
16. 编写一个宏,可以将选定的单元格字体大小设置为14。
17. 实现一个宏,可以将选定的单元格格式设置为科学计数法。
18. 编写一个宏,可以将选定的单元格字体颜色设置为蓝色。
19. 创建一个宏,可以在选定的单元格中插入一个超链接。
20. 编写一个宏,可以将选定的单元格格式设置为斜体。
21. 实现一个宏,可以将选定的单元格对齐方式设置为左对齐。
22. 编写一个宏,可以将选定的单元格字体颜色设置为黄色。
23. 创建一个宏,可以在选定的单元格中插入一个复选框。
24. 编写一个宏,可以将选定的单元格格式设置为文本。
25. 实现一个宏,可以将选定的单元格对齐方式设置为右对齐。
26. 编写一个宏,可以将选定的单元格字体颜色设置为橙色。
基于华中数控系统的宏程序编制
以椭圆为例:
1、获得椭圆的参数方程
椭圆上任意一点的坐标可表示
为:
X=A×cosa
Y=B×sina
A为长半轴长度
B为短半轴长度(仅对此图而言)
数控机床的坐标系与平面直角坐标系不同:
如图所示:
经转换可得:
在数控机床坐标中,椭圆上任意
一点坐标可表示为:
X=B×sina(半径值)
Z=A×cosa-40(坐标原点移动一
个半轴长)
由上面两图我们可得任意位置的椭圆在数控机床坐标系内的X与Z值的参数方程。
2、编程实例:
分析零件图,得要加工椭圆长半轴长为40mm,短半轴长为25mm,以角度a为变量,设置为#1,椭圆上任意点坐标可表示为:
x=2※25※sin[#1](直径编程)
z=cos[#1]-40
具体程序如下
O1
%1
T0101
S1000M03
G0X80Z2
G71U2R1P1Q2X0.4Z0.2F200
GOX100Z80
T0202
S2000M03
N1GOXOG42
G1Z0F80
G64
#1=0
WHILE#1LE[PI/2]
G1X[2※25※sin[#1]]Z[cos[#1]-40]
#1=#1+PI/180
ENDW
G1X70
Z-60
N2X80
GOX100Z80
M30。
加工中心宏程序编程实例与技巧方法宏程序编程实例:假设需要对一个工件进行钻孔、镗孔和攻丝三个工艺步骤。
通过宏程序编程,可以将这三个步骤整合到一个宏程序中,实现自动化加工。
1.钻孔:首先,在宏程序中定义钻孔工艺参数,包括刀具类型、切削速度和进给速度等。
然后,使用钻孔刀具对工件进行钻孔操作,即通过设定好的参数进行切削。
2.镗孔:在钻孔结束后,切换到镗孔刀具。
同样,在宏程序中定义镗孔工艺参数,如刀具类型、切削速度和进给速度等。
使用镗孔刀具对钻孔后的孔进行进一步加工,确保孔的尺寸和精度。
3.攻丝:最后,切换到攻丝刀具。
在宏程序中定义攻丝工艺参数,包括切削速度和进给速度等。
使用攻丝刀具对孔进行攻丝操作,即切削螺纹。
通过将以上三个步骤整合到一个宏程序中,可以实现自动化的加工过程,提高加工效率和精度。
宏程序编程技巧方法:1.合理规划加工顺序:在编写宏程序时,需要根据工艺要求合理规划加工顺序。
例如,在上述实例中,需要先进行钻孔再进行镗孔,否则会对刀具和工件造成损坏。
2.制定合适的工艺参数:在宏程序中定义工艺参数时,需要根据具体的加工材料和刀具选择合适的切削速度、进给速度和切削深度等参数。
合适的工艺参数可以提高加工效率和质量。
3.考虑安全性:在编写宏程序时,需要考虑安全性因素。
例如,在镗孔和攻丝过程中,需要确保刀具和工件没有碰撞的风险,并且在孔的深度和尺寸达到要求之前,需要适时切换到下一个工艺步骤。
4.异常处理:在编写宏程序时,需要考虑到可能出现的异常情况,比如刀具断刀或者刮伤工件表面。
在出现异常情况时,宏程序需要能够自动停止加工并给出相应的报警信息。
5.考虑节约时间和工具寿命:在宏程序编程中,需要尽量减少无效移动和切削,以节约加工时间和延长刀具寿命。
例如,避免多次来回移动或者无效切削,需要根据实际情况来合理设置刀具路径和切削策略。
通过合理规划加工顺序、制定合适的工艺参数、考虑安全性和异常处理以及节约时间和工具寿命等技巧方法,可以更好地编写加工中心宏程序,提高加工效率和精度。
数控车床宏程序编程数控宏程序一.什么是宏程序?什么是数控加工宏程序?简单地说,宏程序是一种具有计算能力和决策能力的数控程序。
宏程序具有如下些特点:1.使用了变量或表达式(计算能力),例如:1)G01 X[3+5]。
有表达式3+52)G00 X4 F[#1]。
有变量#13)G01 Y[50*SIN[3]]。
有函数运算2.使用了程序流程控制(决策能力),例如:1)IF #3 GE 9.有选择执行命令ENDIF2)WHILE #1 LT #4*5.有条件循环命令XXX二.用宏程编程有什么好处?1.宏程序引入了变量和表达式,还有函数功能,具有实时动态计算能力,可以加工非圆曲线,如抛物线、椭圆、双曲线、三角函数曲线等;2.宏步伐可以完成图形一样,尺寸分歧的系列零件加工;3.宏程序可以完成工艺路径一样,位置不同的系列零件加工;4.宏程序具有一定决策能力,能根据条件选择性地执行某些部分;5.使用宏程序能极大地简化编程,精简程序。
适合于复杂零件加工的编程。
一.宏变量及宏常量1.宏变量先看一段简单的程序:G00 X25.0上面的步伐在X轴作一个快速定位。
个中数据25.0是固定的,引入变量后可以写成:1=25.0.#1是一个变量G00 X[#1]。
#1就是一个变量宏步伐中,用“#”号背面紧跟1~4位数字透露表现一个变量,如#1,#50,#101,……。
变量有甚么用呢?变量可以用来代替步伐中的数据,如尺寸、刀补号、G指令编号……,变量的使用,给步伐的设想带来了极大的灵活性。
使用变量前,变量必须带有精确的值。
如1=25G01 X[#1]。
表示G01 X251=-10.运行过程中可以随时改变#1的值G01 X[#1]。
表示G01 X-10用变量不仅可以透露表现坐标,还可以透露表现G、M、F、D、H、M、X、Y、……等各类代码后的数字。
如:2=3G[#2] X30.表示G03 X30例1使用了变量的宏子步伐。
100050=20.先给变量赋值M98 P1001.然后调用子程序50=350.重新赋值M98 P1001.再挪用子步伐M301001G91 G01 X[#50]。
新代宏程序编程一百例新代宏程序编程是一种用于自动化任务的编程技术,它能够帮助我们简化重复性的工作,提高工作效率。
下面我将给出一百个不同的例子,展示新代宏程序编程的多样性和应用场景。
1. 自动化数据清洗和整理。
2. 批量重命名文件。
3. 自动化生成报告和文档。
4. 自动化发送电子邮件。
5. 自动化网页数据抓取。
6. 批量处理图像或照片。
7. 自动化填充表单。
8. 自动化网页表单提交。
9. 自动化网页测试和自动化测试脚本。
10. 自动化爬虫程序。
11. 自动化数据分析和统计。
12. 自动化生成图表和可视化。
13. 自动化生成幻灯片演示。
14. 自动化生成代码文档。
15. 自动化生成API文档。
16. 自动化生成数据库文档。
17. 自动化生成用户手册。
18. 自动化生成测试报告。
19. 自动化生成日志文件。
20. 自动化生成备份文件。
21. 自动化生成配置文件。
22. 自动化生成安装程序。
23. 自动化生成更新程序。
24. 自动化生成卸载程序。
25. 自动化生成打包程序。
26. 自动化生成部署脚本。
27. 自动化生成编译脚本。
28. 自动化生成发布脚本。
29. 自动化生成运维脚本。
30. 自动化生成监控脚本。
31. 自动化生成日常任务脚本。
32. 自动化生成定时任务脚本。
33. 自动化生成备份任务脚本。
34. 自动化生成数据迁移脚本。
35. 自动化生成数据库操作脚本。
36. 自动化生成文件操作脚本。
37. 自动化生成网络操作脚本。
38. 自动化生成系统操作脚本。
39. 自动化生成安全操作脚本。
40. 自动化生成性能测试脚本。
41. 自动化生成压力测试脚本。
42. 自动化生成功能测试脚本。
43. 自动化生成接口测试脚本。
44. 自动化生成UI测试脚本。
45. 自动化生成集成测试脚本。
46. 自动化生成回归测试脚本。
47. 自动化生成单元测试脚本。
48. 自动化生成代码质量检查脚本。
49. 自动化生成代码风格检查脚本。
第五章宏程序编程实训要点:●熟悉FANUC系统宏程序编程的基本指令;●掌握常用的几个宏程序应用范例第一节宏程序编程概述宏程序编程简单地解释就是利用变量编程的方法。
在本书第二章中介绍的数控指令,其指令代码的功能是固定的,使用者只需(只能)按照指令规定的参数编程。
但有时候这些指令满足不了用户的需求,数控系统因此提供了宏程序编程功能,利用数控系统提供的变量、数学运算功能、逻辑判断功能、程序循环功能等功能,来实现一些特殊的用法。
宏程序编程实际上是数控系统对用户的开放,在数控系统的平台上进行二次开发,当然这里的开放和开发都是有条件和有限制的。
宏程序与普通程序存在一定的区别,认识和了解这些区别,将有助于宏程序的学习理解和掌握运用,表5-1为宏程序和普通程序的简要对比。
表5-1宏程序和普通程序的简要对比宏程序编程的技术特点和应用领域手工编程是数控编程的基础,在手工编程中使用宏程序编程。
其最大特点就是将有规律的形状或尺寸用最短的程序段表示出来,编写出的程序非常简洁,逻辑严密,通用性强。
任何数控加工只要能够用宏程序完整地表达,即使再复杂,其程序篇幅都比较精炼,任何一个合理、优化的宏程序,极少会超过60行,换算成字节数,至多不过2KB。
即使是最廉价的机床数控系统,其内部程序存储空间也完全容纳得下任何复杂的宏程序。
为了对复杂的加工运动进行描述,宏程序必然会最大限度地使用数控系统内部的各种指令代码,例如直线插补G01指令和圆弧插补G02/G03指令等。
因此机床在执行宏程序时,数控系统的计算机可以直接进行插补运算,且运算速度快,再加上伺服电动机和机床的迅速响应,使得加工效率极高。
宏程序的技术特点,使其特别适宜机械零件的批量加工。
机械零件的形状主要是由各种凸台、凹槽、圆孔、斜平面、回转面等组成,很少包含不规则的复杂曲面,构成其的几何因素无外乎点、直线、圆弧,最多加上各种二次圆锥曲线(椭圆、抛物线、双曲线),以及一些渐开线(常应用于齿轮及凸轮等),所有这些都是基于三角函数、解析几何的应用,而数学上都可以用三角函数表达式及参数方程加以表述,因此宏程序在此有广泛的应用空间,可以发挥其强大的作用。
用户宏程序虽然子程序对编制相同加工操作的程序非常有用,但用户宏程序由于允许使用变量、算术和逻辑运算及条件转移,使得编制相同加工操作的程序更方便,更容易。
可将相同加工操作编为通用程序,如型腔加工宏程序和固定加工循环宏程序。
使用时,加工程序可用一条简单指令调出用户宏程序,和调用子程序完全一样。
一、变量普通加工程序直接用数值指定G代码和移动距离;例如,G01和X100。
使用用户宏程序时,数值可以直接指定或用变量指定。
当用变量时,变量值可用程序或用MDI面板上的操作改变。
#1=#2+100;G01 X#1 F300;说明:1、变量的表示计算机允许使用变量名,用户宏程序不行。
变量用变量符号(#)和后面的变量号指定。
例如:#1表达式可以用于指定变量号。
此时,表达式必须封闭在括号中。
例如:#[#1+#2-12]2、变量的类型变量根据变量号可以分成四种类型。
3、变量值的表示范围局部变量和公共变量可以有0值或下面范围中的值:-1047至-10-29或10-29到1047如果计算结果超出有效范围,则发出P/S报警No.111。
4、小数点的省略当在程序中定义变量值时,小数点可以省略。
例:当定义#1=123;变量#1的实际值是123.000;5、变量的引用为在程序中使用变量值,指定后跟变量号的地址。
当用表达式指定变量时,要把表达式放在括号中。
例如:G01X[#1+#2]F#3;被引用变量的值根据地址的最小设定单位自动地舍入。
例如:当G00X#1;以1/1000mm的单位执行时,CNC把12.3456赋值给变量#1,实际指令值为G00X12.346;改变引用变量的值的符号,要把负号(一)放在#的前面。
例如:GOOX-#1;当引用未定义的变量时,变量及地址字都被忽略。
例如:当变量#1的值是0,并且变量#2的值是空时,G00X#1 Y#2的执行结果为G00X0;。
6、未定义的变量当变量值未定义时,这样的变量成为“空”变量。
变量#0总是空变量。
新代宏程序编程一百例随着科技的不断进步,计算机编程也在不断发展。
新代宏程序编程作为一种新兴的编程方式,正在逐渐受到人们的关注和喜爱。
它以宏为基础,通过宏的扩展和替换,实现了更加灵活和高效的编程方式。
下面,我将为大家介绍一百个新代宏程序编程的例子。
1. 定义一个宏,实现两个数相加的功能。
2. 定义一个宏,实现两个数相减的功能。
3. 定义一个宏,实现两个数相乘的功能。
4. 定义一个宏,实现两个数相除的功能。
5. 定义一个宏,实现计算一个数的平方的功能。
6. 定义一个宏,实现计算一个数的立方的功能。
7. 定义一个宏,实现计算一个数的平方根的功能。
8. 定义一个宏,实现计算一个数的绝对值的功能。
9. 定义一个宏,实现计算一个数的倒数的功能。
10. 定义一个宏,实现计算一个数的阶乘的功能。
11. 定义一个宏,实现计算一个数的对数的功能。
12. 定义一个宏,实现计算一个数的指数的功能。
13. 定义一个宏,实现计算一个数的正弦的功能。
15. 定义一个宏,实现计算一个数的正切的功能。
16. 定义一个宏,实现计算一个数的反正弦的功能。
17. 定义一个宏,实现计算一个数的反余弦的功能。
18. 定义一个宏,实现计算一个数的反正切的功能。
19. 定义一个宏,实现计算一个数的双曲正弦的功能。
20. 定义一个宏,实现计算一个数的双曲余弦的功能。
21. 定义一个宏,实现计算一个数的双曲正切的功能。
22. 定义一个宏,实现计算一个数的反双曲正弦的功能。
23. 定义一个宏,实现计算一个数的反双曲余弦的功能。
24. 定义一个宏,实现计算一个数的反双曲正切的功能。
25. 定义一个宏,实现计算一个数的最大值的功能。
26. 定义一个宏,实现计算一个数的最小值的功能。
27. 定义一个宏,实现计算一个数的平均值的功能。
28. 定义一个宏,实现计算一个数的和的功能。
29. 定义一个宏,实现计算一个数的差的功能。
30. 定义一个宏,实现计算一个数的乘积的功能。
用户宏程序虽然子程序对编制相同加工操作的程序非常有用,但用户宏程序由于允许使用变量、算术和逻辑运算及条件转移,使得编制相同加工操作的程序更方便,更容易。
可将相同加工操作编为通用程序,如型腔加工宏程序和固定加工循环宏程序。
使用时,加工程序可用一条简单指令调出用户宏程序,和调用子程序完全一样。
一、变量普通加工程序直接用数值指定G代码和移动距离;例如,G01和X100。
使用用户宏程序时,数值可以直接指定或用变量指定。
当用变量时,变量值可用程序或用MDI面板上的操作改变。
#1=#2+100;G01 X#1 F300;说明:1、变量的表示计算机允许使用变量名,用户宏程序不行。
变量用变量符号(#)和后面的变量号指定。
例如:#1表达式可以用于指定变量号。
此时,表达式必须封闭在括号中。
例如:#[#1+#2-12]2、变量的类型变量根据变量号可以分成四种类型。
3、变量值的表示范围局部变量和公共变量可以有0值或下面范围中的值:-1047至-10-29或10-29到1047如果计算结果超出有效范围,则发出P/S报警No.111。
4、小数点的省略当在程序中定义变量值时,小数点可以省略。
例:当定义#1=123;变量#1的实际值是123.000;5、变量的引用为在程序中使用变量值,指定后跟变量号的地址。
当用表达式指定变量时,要把表达式放在括号中。
例如:G01X[#1+#2]F#3;被引用变量的值根据地址的最小设定单位自动地舍入。
例如:当G00X#1;以1/1000mm的单位执行时,CNC把12.3456赋值给变量#1,实际指令值为G00X12.346;改变引用变量的值的符号,要把负号(一)放在#的前面。
例如:GOOX-#1;当引用未定义的变量时,变量及地址字都被忽略。
例如:当变量#1的值是0,并且变量#2的值是空时,G00X#1 Y#2的执行结果为G00X0;。
6、未定义的变量当变量值未定义时,这样的变量成为“空”变量。
变量#0总是空变量。
它不能写,只能读。
(a)引用7、限制程序号,顺序号和任选程序段跳转号不能使用变量。
例:下面情况不能使用变量:O#1;/#2G00X100;N#3Y200;二、算术和逻辑运算下表中列出的运算可以在变量中执行。
运算符右边的表达式可包含常量和/或由函数或运算符组成的变量。
表达式中的变量#J和#k可以用常数赋值。
左边的变量也可以用表达式赋值。
角度单位函数SIN,COS,ASIN,ACOS,TAN和ATAN的角度单位是度。
如90°30表示为90.5度。
三、宏程序语句和NC语句下面的程序段为宏程序语句:·包含算术或逻辑运算(=)的程序段。
·包含控制语句(例如,GOTO,DO,END)的程序段。
·包含宏程序调用指令(例如,用G65,G66,G67或其它G代码,M代码调用宏程序)的程序段。
除了宏程序语句以外的任何程序段都为NC语句。
说明1、与NC语句的不同即使置于单程序段运行方式,机床也不停止。
但是,当参数No。
6000#5 SBM设定为1时,在单程序段方式中,机床停止。
在刀具半径补偿方式中宏程序语句段不做为不移动程序段处理。
2、与宏程序语句有相同性质的NC语句含有子程序调用指令(例如,用M98或其它M代码或用T代码调用子程序)但没有除O,N或L地址之外的其它地址指令的NC语句其性质与宏程序相同。
不包含除O.N.P或L以外的指令地址的程序段其性质与宏程序语句相同。
四、转移和循环在程序中,使用GOTO语句和IF语句可以改变控制的流向。
有三种转移和循环操作可供使用:转移和循环GOTO语句(无条件转移)IF语句(条件转移:IF…THEN…)WHILE语句(当…时循环)a、无条件转移(GOTO语句)转移到标有顺序号n的程序段。
当指定1到99999以外的顺序号时,出现P/S报警No.128。
可用表达式指定顺序号。
GOTO n;n:顺序号(1到99999)例:GOTO 1;GOTO #10b、条件转移(IF语句)IF之后指定条件表达式。
IF[<条件表达式>] GOTO n如果指定的条件表达式满足时,转移到标有顺序号n的程序段。
如果指定的条件表达式不满足,执行下个程序段。
IF[<条件表达式>] THEN如果条件表达式满足,执行预先决定的宏程序语句。
只执行一个宏程序语句。
1、条件表达式条件表达式必须包括算符。
算符插在两个变量中间或变量和常数中间,并且用括号([,])封闭。
表达式可以替代变量。
2、 运算符运算符由2个字母组成,用于两个值的比较,以决定它们是相等还是一个值小于或大于另一个值。
注意,不能使用不等号。
典型程序下面的程序计算数值1-10的总和O9500;#1=0;存储和数变量的初值#2=1;被加数变量的初值N1 IF[#2 GT 10]GOTO 2; 当被加数大于10时转移到N2#1= #1+#2; 计算和数#2= #2+#1; 下一个被加数GOTO 1; 转到N1N2 M30; 程序结束c 、 循环(WHILE 语句)在WHILE 后指定一个条件表达式。
当指定条件满足时,执行从DO 到END之间的程序。
否则,转到END 后的程序段。
1、当指定的条件满足时,执行WHILE从DO到END之间的程序。
否则,转而执行END之后的程序段。
这种指令格式适用于IF语句。
DO后的号和END 后的号是指定程序执行范围的标号,标号值为1,2,3。
若用1,2,3以外的值会产生P/S报警No.126。
2、嵌套在DO—END循环中的标号(1到3)可根据需要多次使用。
但是,当程序有交叉重复循环(DO范围的重叠)时,出现P/S报警No.124。
a、标号(1到3)可以根据要求多次使用.WHILE […] DO 1;程序END 1;…WHILE […] DO 1;程序END 1;b、DO的范围不能交又.WHILE […] DO 1;程序WHILE […] DO 2;END 1;程序END2;c、DO循环可以嵌套3级.WHILE […] DO 1;WHILE […] DO 2;WHILE […] DO 3;程序END3;END2;END1;d、控制可以转到循环的外边.WHILE […] DO 1;IF […] GOTO n;END 1;Nnf、转移不能进入循环区内.IF […] GOTO n;WHILE[…]DO 1;Nn...;END l;无限循环当指定DO 而没有指定WHILE 语句时,产生从DO 到END 的无限循环。
处理时间当在GOTO 语句中有标号转移的语句时,进行顺序号检索。
反向检索的时间要比正向检索长。
用WHILE 语句实现循环可减少处理时间。
典型程序下面的程序计算数值1到10的总和O0001;#1=0;#2=1;WHILE [#2 LE 10] DO 1;#1= #1+#2;#2= #2+1:END l ;M30;五、宏程序的调用用下面的方法调用宏程序: 宏程序调用 非模态调用(G65)模态调用(G66,G67)用G 代码调用宏程序用M 代码调用宏程序用M 代码调用子程序用T 代码调用子程序宏程序调用(G65)和子程序调用(M98)的不同之处如下:a 、 用G65,可以指定自变量(数据传送到宏程序)。
M98没有该功能。
b 、 当M98程序段包含另一个NC 指令(例如,G01 X100 M98 Pp)时,在指令执行之后调用子程序。
相反,G65无条件地调用宏程序。
c 、 M98程序段包含另一个NC 指令(例如,G01 X100 M98 Pp)时,在单程序段方式中,机床停止。
相反,G65机床不停止。
d 、 用G65,改变局部变量的级别。
用M98,不改变局部变量的级别。
1、 非模态调用(G65)当指定G65时,以地址P 指定的用户宏程序被调用。
数据(自变量)能传递到用户宏程序体中。
G65 Pp L e<自变量指定>;P :要调用的程序L :重复次数(默认值为1)e :自变量:数据传递到宏程序a、呼调在G65之后,用地址P指定用户宏程序的程序号。
当要求重复时,在地址L后指定从1到9999的重复次数。
省略L值时,认为L等于1。
使用自变量指定,其值被赋值到相应的局部变量。
b、自变量指定可用两种形式的自变量指定。
自变量指定I使用除了G,L,O,N和P以外的字母,每个字母指定一次。
自变量指定Ⅱ使用A,B,C和Ii,Ji和Ki(i 为1~10)。
根据使用的字母,自动地决定自变量指定类型。
自变量指定I地址G,L,N,Q和P不能在自变量中使用。
不需要指定的地址可以省略,对应于省略地址的局部变量设定为空。
地址不需要按字母顺序指定。
但应符合字地址的格式。
但是,I,J和K需要按字母顺序指定。
例:B A D…J K正确B A D…J I不正确自变量指定Ⅱ自变量指定Ⅱ使用A,B和C各1次,I,J,K10次。
自变量指定Ⅱ用于传任何自变量前必须指定G65。
自变量指定I和Ⅱ的混合CNC内部自动识别自变量指定I和自变量指定Ⅱ。
如果自变量指定I和自变量指定Ⅱ混合指定的话,后指定的自变量类型有效。
例;<变量#1:1#2:2#4:#7:4 5本例中的I4和D5自变量都分配给变量#7,则后者D5有效。
典型程序编制一个宏程序加工轮圆上的孔。
圆周的半径为I,起始角为A,间隔为B,钻孔数为H,圆的中心是(X,Y)。
指令可以用绝对值或增量值指定。
顺时针方向钻孔时B应指定负值。
调用格式G65 P9100 Xx Yy Zz Rr Ii Aa Bb Hh;X:圆心的X坐标(绝对值或增量值指定)(#24)Y:圆心的Y坐标(绝对值或增量值指定)(#25)Z:孔深(#26)R:快速趋近点坐标(#18)F:切削进给速度(#9)I:圆半径(#4)A:第一孔的角度(#1)B:增量角(指定负值时为顺时针)(#2)H:孔数(#11)宏程序调用程序O0002;G90 G54 G00 X0 Y0 Z100;G65 P9100 X100 Y50 R30 Z-50 F500 I100 A0 B45 H5;M30;宏程序(被调用的程序)O9100;#3= #4003;储存03组G代码G81 Z#26 R#18 F#9;钻孔循环IF[#3 EQ 90]GOTO 1;在G90方式转移到N1#24= #5001+#24;计算圆心的X坐标#25= #5002+#25;计算圆心的Y坐标N1 WHILE [#11 GT 0] DO 1;直到剩余孔数为0#5= #24+#4*COS[#1];计算X轴上的孔位#6= #25+#4*SIN[#1];计算X轴上的孔位G90 X#5 Y#6;移动到目标位置之后执行钻孔#1= #1+#2;更新角度#11= #11-1;孔数-1END 1;G#3 G80;返回原始状态的G代码M99;变量的含义#3:贮存03组的G代码#5:下个孔的X坐标#6:下个孔的Y坐标2、模态调用(G66)一旦发出G66则指定模态调用,即指定沿移动轴移动的程序宏程序。