数控车床宏程序编程.doc

合集下载

数控车宏程序编程方法及编程指令应用

数控车宏程序编程方法及编程指令应用
还是一个值小于或大于另一个值。一般情况不能使用不等符号。 常用运算符表
项目八 数控车宏程序编程方法及指令应用
一、宏程序的基本概念与原理 6、转移和循环
3)循环(While语句) 在 WHILE 后指定一个条件表达式,当指定条件满足时,执行从
DO 到END之间的程序。否则,转到 END后的程序段。 例如:
的无限循环。 • 未定义的变量 在使用 EQ 或 NE 的条件表达式中 <空>和零有不同的效果。
在其它形式的条件表达式中 <空>被当作零。 • 处理时间 当在 GOTO 语句中有标号转移的语句时。进行顺序号检索,
反向检索的时间要比正向检索长。用 WHILE 语句实现循环可减少 处理时间。
项目八 数控车宏程序编程方法及指令应用
G01 X80 Z-50 Z-90
X100 Z-110 M05
M30
项目八 数控车宏程序编程方法及指令应用
二、典型编程案例 3、椭圆加工编程 案例2
项目八 数控车宏程序编程方法及指令应用
二、典型编程案例 3、椭圆加工编程 案例2
O5521 T0101 M03 S1200 F0.1 G0 X80 Z50 G1 Z-15 X50 #1=360 WHILE [#1 GT 180] DO1 #2=30*COS[#1]-45 #3=24*SIN[#1]+50 G01 X[#3] Z[#2] F200 #1=#1-1 END1 G01 X80 Z50 M30
(6)
项目八 数控车宏程序编程方法及指令应用
二、典型编程案例 3、椭圆加工编程 案例3
O5218 T0101 M03 S1200 F0.1 G0 X80 Z50 G1 Z0 X0 #1=50 WHILE [#1 GE -40] DO1 #2=40*SQRT[50*50-#1*#1]/50 G01 X[#2] Z[#1-50] F0.2 #1=#1-0.2 END1 G01 X24 Z-90 X100 M30

数控车床车削宏程序

数控车床车削宏程序

例6 抛物线与椭圆的混合运用。
%8002 (程序名) G92 X50 Z0 (起点坐标) U32 V40 W55 A8 B5 C4 M98 P8001(定义#20=32、#21=40、#22=55、#0=8、#1=5、#2=4) W G36 G90 X50 Z0(到起点位置) M30 V %8001 (子程序名) U #10=0 #11=0 (抛物线起点X、 Z轴坐标值) #12=0 #13=0 (椭圆起点在X、Z轴方向增量值) G64 G37 (小线段连续加工、半径编程) WHILE #11 LE #20 (抛物线方程:Z=-X*X/C ) G01 X[2*#10] Z[-[#11]] F1500 #10=#10+0.08 (计算各段抛物线X轴坐标) #11=#10*#10/#2 (计算各段抛物线Z轴坐标) 抛物线 ENDW Z=-X² /c G01 X[2*[SQRT[#20*#2]]] Z[-#20] (到达抛物线终点) G01 Z[-#21] (到达直线终点) 椭 圆 X a / b b2 z 2 : WHILe #13 LE #1 (椭圆方程:X*X/A*A+Z*Z/B*B=1) 图4 #16=#1*#1-#13*#13 #15=SQRT[#16] #12=#15*[#0/#1] (计算椭圆X轴方向的增量) G01 X[2*[SQRT[#20*#2]+#0-#12]] Z[-#21-#13] #13=#13+0.08 (确定椭圆Z轴方向的增量) ENDW G01 X [2*[SQRT[#20*#2]+#0] ]Z[-#21-#1] (到达椭圆终点) 抛物线 椭圆 G01 Z[-#22] 2 2 Z=-X² /c X a / b b z U12 G00 Z0 m99

数控车宏程序编程方法及技巧通用课件

数控车宏程序编程方法及技巧通用课件
补的刀具路径计算和控制
05
06
宏程序在生产中的应用及调试
实例二:椭圆轮廓宏程序编写
总结词:利用宏程序实现椭圆轮廓的精 确、高效加工
宏程序在生产中的应用及调试 椭圆轮廓的刀具路径计算和控制
详细描述 椭圆轮廓的数学模型建立
实例三:倒角宏程序编写
详细描述
倒角的刀具路径计 算和控制
总结词:利用宏程 序实现倒角的精确 、快速加工
宏程序函数及调用
系统函数
系统函数是数控系统中已经定义 好的函数,可以直接调用,例如 坐标系设定函数、圆弧插补函数
等。
自定义函数
自定义函数是根据实际需要自定 义的函数,可以在程序中多次调 用,例如求绝对值函数、三角函
数等。
宏程序调用
宏程序调用是通过调用自定义函 数或系统函数来执行一段程序代 码,调用方式包括直接调用和间
01 02 03 04
不同点
使用方式不同:普通程序是按照规定的语法规则编写的,而宏程序则 是使用自定义的函数和变量进行编程。
功能不同:普通程序主要用于实现基本的加工操作,而宏程序则可以 完成更复杂的加工任务,如曲面加工、螺纹加工等。
灵活性不同:宏程序具有更高的灵活性和可扩展性,可以根据需要进 行修改和扩展,适应不同的机床和加工需求。
宏程序在生产中的应 用及调试
05
宏程序编程常见问题及解 决方案
常见问题一:变量赋值错误
01
总结词
在宏程序编程中,变量赋值是一个常见的错误。
02
详细描述
变量赋值错误通常是由于变量名错误或变量类型错误导致的。例如,将
一个整型变量赋值为字符串类型,或者将一个未定义的变量名赋值。
03
解决方案

数控车床宏程序

数控车床宏程序

数控车床宏程序FANUC数控车第一章编程代码----------------------------------------------------------1 1.准备功能G------------------------------------------------------------1 2.辅助功能M-----------------------------------------------------------6 第二章用户宏程序-------------------------------------------------------71. 运算符号---------------------------------------------------------------72.转移和循环-----------------------------------------------------------7 3.运算指令--------------------------------------------------------------8第三章宏程序编程------------------------------------------------------11 1.车V型圆锥- --------------------------------------------------------11 2.车U圆弧-------------------------------------------------------------12 3.方程曲线车削加工-------------------------------------------------13 5.车梯形螺纹36×6--------------------------------------------------14 6.蜗杆-------------------------------------------------------------------15 7.加工多件--------------------------------------------------------------17 第四章自动编程---------------------------------------------------------------21 1.UG建模--------------------------------------------------------------------21 2.创建几何体----------------------------------------------------------------24 附录--------------------------------------------------------------------------29第一章编程代码1.准备功能G00快速定位G01直线插补G02顺弧插补G03逆弧插补G04暂停G9,G60,G64准确/连续停G20英制输入G21米制输入G40取消刀具补偿G41建立左刀具补偿G42建立右刀具补偿G50坐标设定/主轴最高速设定G70精车循环格式:G70 P(ns) Q(nf)ns: 精加工形状程序的第一个段号。

数控车床华中系统用户宏程序编程

数控车床华中系统用户宏程序编程

如图2,Z坐标为自变量#2,则X坐标为因变量#1,那么X用Z表示为:
分别用宏变量#1、#2代替上式中的X、Z,即得因变量#1相对于自变量#2的宏表达式:
如图1,Z坐标为自变量#2,则X坐标为因变量#1,那么X用Z表示为:
3、如何进行函数变换,确定因变量相对于自变量的宏表达式

如图3,X坐标为自变量#1,因Z坐标为因变量#2,那么Z用X表示为:
IF 条件表达式 IF 条件表达式
02
… …
ELSE ENDIF

05
ENDIF
格式:WHILE 条件表达式

ENDW
5、循环语句WHILE,ENDW
二、公式曲线宏程序编程模板的具体应用实例
运用以上公式曲线宏程序模板,结合粗加工循环指令,就可以快速准确实现零件公式曲线轮廓的编程和加工。具体应用示例如下: 例1:如图1所示零件的外轮廓粗精加参考程序如下(设毛坯为直径25毫米的棒料): %0001(程序头) T0101(调用01号外圆刀及01号刀具偏置补偿) G90 M03 S700(绝对值编程;主轴以700转/分正转) G00 X33 Z2(快速定位到粗加工循环起点) G71 U1 R0.5 P10 Q20 X0.6 F100(外径粗车循环) N10 G01 X10 F60 S1000(精加工起始程序段) Z-10 X24 Z-22(公式曲线起点) #2=8(设Z为自变量#2,给自变量#2赋值8:Z1=8) WHILE #2 GE [-8](自变量#2的终止值-8:Z2=-8) (因变量#1: 用#1、#2代替X、Z) #11=-#1+15(工件坐标系下的X坐标值#11:编程使用的是负轮廓,#1前冠以负;ΔX=15) #22=#2-30(工件坐标系下的Z坐标值#22:ΔZ=-30) G01 X[2*#11] Z[#22](直线插补,X为直径编程) #2=#2-0.5(自变量以步长0.5变化) ENDW(循环结束) N20 G01 Z-50(精加工终止程序段) G00 X100 Z80(快速定位到退刀点) M30(程序结束)

数控车宏程序编程讲解

数控车宏程序编程讲解
的尺寸) (GE或GT都可以).
矩形螺纹
刀具
• 12. [矩形螺纹].
• 编程:
• O0001:(主程序) O0002: (子程序)
• N1 T0202 G99; G0 U–0.3; G0 U10; U–10;
• N2 M3 S200;
G32 Z–55 F12; Z14; M99;
• N3 G0 X82 Z12; G0 U10;
数控车床(宏程序)编程
特形零件练习
正切曲线方程:
椭圆
抛物线方程:
椭圆
双头螺纹.
材料:45#刚. 毛坯: 50*140.
华中系统(宏程序)编程
• 1. 图1.
方向
右偏刀
1.
• 抛物线方程:– X*X/10. • ①以(X轴)作变量. • 编程: • O0001; • N1 #1= 0; (X轴的起点) • N2 WHILE #1 LE [10]; (X轴的终点). • N3 #2= – #1*#1/10; (抛物线的公式) • N4 G01 X[2*#1] Z[#2]; (X,Z轴的坐标变量) • N5 #1= #1+0.1; (X轴的增量) • N6 ENDW; (调用返回) • ②以(Z轴)作变量. • 编程: • O0001; • N1 #1= 0; (Z轴的起点) • N2 WHILE #1 LE [10]; (Z轴的终点) • N3 #2= SQRT[#1*10]; (抛物线的公式) • N4 G01 X[2*#2] Z[–#1]; (X,Z轴的坐标变量) • N5 #1= #1+0.1; (Z轴的增量) • N6 ENDW; (调用返回)
图2.
方向
图2
右偏刀
• 2. 抛物线方程:–X*X/10. • ①以(X轴)作变量. • 编程: • O0001; • N1 #1= 0; • N2 #2= – #1*#1/10; • N3 G01 X[2*#1] Z[#2]; • N4 #1= #1+0.1; • N5 IF #1 LE [10] GOTO2; • ②以(Z轴)作变量. • 编程: • O0001; • N1 #1= 0; • N2 #2= SQRT[#1*10]; • N3 G01 X[2*#2] Z[–#1]; • N4 #1= #1+0.1; • N5 IF #1 LE [10] GOTO2;

数控车宏程序编程方法及技巧课件


常见问题三:条件语句使用不当导致逻辑错误
条件语句使用不当、条件判断过于复杂、条件判断错误。
在宏程序中,条件语句可以根据条件控制程序的流程。如果条件语句使用不当,可能导致程序逻辑错误;条件判断过于复杂 ,会使程序难以理解和维护;条件判断错误,会导致程序结果不正确。
06 数控车宏程序编 程的未来发展趋 势与展望

THANKS
感谢观看
发展趋势一:智能化编程技术的普及与应用
智能化编程技术是指通过人工智能和机器学习等技术,实现数控车宏程序的自动化 和智能化。
随着技术的发展,越来越多的企业开始应用智能化编程技术,以提高生产效率和加 工质量。
未来,智能化编程技术将在数控车宏程序编程中得到广泛应用,并成为主流趋势。
发展趋势二
01
02
03
变量命名不规范、变量初始化不正确、变量值未更新。
在宏程序中,变量的使用是相当频繁的。如果变量命名不规范,可能导致程序混 乱;变量初始化不正确,将影响程序计算;变量值未更新,会导致程序结果不正 确。
常见问题二:循环嵌套过深导致程序复杂化
循环嵌套过深、循环次数过多、循环条件过于复杂。
在宏程序中,循环结构的使用可以简化编程,但过度使用循环可能导致程序复杂化。如果循环嵌套过 深,会使程序难以理解和维护;循环次数过多,会浪费程序运行时间;循环条件过于复杂,可能增加 程序出错的风险。
SELECT语句
根据不同的条件,执行不同的程序 段。
CASE语句
对多个条件进行判断,执行对应的 程序段。
宏程序中的函数与变量
函数
可以进行数学运算、逻辑运算、字符 串处理等操作。
变量
可以存储数据,作为函数参数传递等 。
04 数控车宏程序应 用实例

数控宏程序教程(车床篇)1(经典)

由浅入深宏程序1-宏程序入门基础之销轴加工对于没有接触过宏程序人,觉得它很神秘,其实很简单,只要掌握了各类系统宏程序的基本格式,应用指令代码,以及宏程序编程的基本思路即可。

对于初学者,尤其是要精读几个有代表性的宏程序,在此基础上进行模仿,从而能够以此类推,达到独立编制宏程序的目的。

本教程将分步由浅入深的将宏程序讲解给大家,作者水平有限,也希望各位同仁提供更好的思路。

下面大家先看一个简单的车床的程序,图纸如下:要求用外圆刀切削一个短轴,这里只列举程序的前几步:O0001T0101;M3S800;G0X82Z5;G0X76;G1Z-40F0.2;X82;G0Z5;G0X72;G1Z-40F0.2;X82;G0Z5;G0X68;G1Z-40F0.2;X82;G0Z5;G0X68;G1Z-40F0.2;X82;G0Z5;........G0X40;G1Z-40F0.2;X82;G0Z5;G0X150Z150;M5;M30;从上面程序可以看出,每次切削所用程序都只是切削直径X有变化,其他程序代码未变。

因此可以将一个变量赋给X,而在每次切削完之后,将其改变为下次切削所用直径即可。

T0101;M3S800;G0X82Z5;#1=76;赋初始值,即第一次切削直径N10 G0X[#1] ;将变量赋给X,则X方向进刀的直径则为#1变量中实际存储值。

N10是程序G1Z-40F0.2;段的编号,用来标识本段,为后面循环跳转所用。

X82;G0Z5;#1=#1-4;每行切深为2mm,直径方向递减4mmIF [#1GE40] GOTO 10如果#1 >= 40,即此表达式满足条件,则程序跳转到N10继续执行。

G0X150Z150;当不满足#1 >= 40,即#1<40,则跳过循环判断语句,由此句继续向后执行。

M5;M30;由浅入深宏程序2-宏程序之销轴粗精加工本篇文章利用宏程序简单模仿数控系统的外圆车削循环功能。

在FANUC数控车床上使用宏程序编制椭圆加工程序-精选文档

在FANU数控车床上使用宏程序编制椭圆加工程序i=rCAD/CAM勺普及计算机自动编程虽然有取代手工编程的趋势。

但是巧用宏程序开发加工程序,可以提高编程效率, 达到事半功倍的效果。

1 宏程序概述1.1 宏程序定义所谓宏程序, 即用户宏程序的简称。

该功能的含义是把一组采用变量和演算式的命令所构成的某一功能, 如同子程序那样,记录在数控装置的存储器中, 其记录的这组命令(又称为用户宏程序体)就是宏程序。

它可以用一个特定的指令代码(如P XXXX )来代表,通过呼出用户程序指令(如G65X XXX )即可调用这一功能。

1.2 宏程序编程随着数控系统的不断更新, 宏指令应用越来越广泛。

以日本FANUC-O系统为例Q 系统使用B类宏指令,在0系列的早期版本中,曾使用A类宏指令,主要特征为使用G65代码为宏指令专用代码,包括宏变量的赋值、运算、条件调用等。

B类宏指令功能相对A类而言,其功能更强大,编程更直观。

在FANUC-Oi系统的固定循环指令中,毛坯切削循环G71指令内,平行轮廓削循环G73指令内部都可以使用宏程序进行编程。

宏指令编程像高级语言一样, 可以使用变量进行算术运算逻辑运算和函数混合运算进行编程。

在宏程序形式中, 一般都提供循环判断分支和子程序调用的方法。

可编制各种复杂的零件加工程序。

熟练应用宏程序指令进行编程, 可大大精简程序量, 还可以增强机床的加工适应能力。

比如可以将抛物线、椭圆等非圆曲线的算法标准化后做成内部宏程序, 以后就可以像圆弧插补一样按标准格式编程调用, 相当于增加了系统的插补功能。

2 椭圆形加工宏程序的编程在数控系统中,G02/G03圆弧插补指令只能加工标准圆弧,对于非标准圆弧所构成的特殊曲线或曲面除采用专业软件自动生成加工程序外, 还可利用宏程序编程方法进行加工。

设Z坐标为自变量#2,X坐标为因变量#1,自变量步长为△ W, 则公式曲线段的精加工程序宏指令编程模板如下#2=Z1(给自变量#2赋值Z1:Z1是公式曲线自身坐标系下起始点的坐标值)WHILE #2 GE Z2(自变量#2的终止值Z2:Z2是公式曲线自身坐标系下终止点的坐标值)#1=b*SQRT(1-#2*#2/a2)函数变换:确定因变量#1(X)相对于自变量#2(Z) 的宏表达式)#11=±#1 + △ X(计算工件坐标系下的X坐标值#11:编程中使用的是正轮廓,#1前冠以正,反之冠以负;△ X为公式曲线自身坐标原点相对于编程原点的X轴偏移量。

新代数控车床宏程序说明【范本模板】

一.用户宏程序的基本概念用一组指令构成某功能,并且象子程序一样存储在存储器中,再把这些存储的功能由一个指令来代表,执行时只需写出这个代表指令,就可以执行其相应的功能。

在这里,所存储的一组指令叫做宏程序体(或用户宏程序),简称为用户宏。

其代表指令称为用户宏命令,也称作宏程序调用指令。

用户宏有以下四个主要特征:1)在用户用户宏程序中可以使用变量,即宏程序体中能含有复杂的表达式;2)能够进行变量之间的各种运算;3)可以用用户宏指令对变量进行赋值,就象许多高级语言中的带参函数或过程,实参能赋值给形参;4)容易实现程序流程的控制。

使用用户宏时的主要方便之处在于由于可以用变量代替具体数值,因而在加工同一类的工件时.只得将实际的值赋予变量既可,而不需要对每个不同的零件都编一个程序。

二.基本书写格式数控程序文档中,一般以“%”字符作为第一行的起头,该行将被视为标题行。

当标题行含有关键字“@MACRO”时整个文档就会以系统所定义的MACRO语法处理.如果该行无“@MACRO”关键词此档案就会被视为一般ISO程序文档格式处理,此时将不能编写用户宏和使用其MACRO语法。

而当书写ISO程序文档时标题行一般可以省略,直接书写数控程序。

“@MACRO”关键词必须是大写字母。

对于程序的注释可以采用“//……"的形式,这和高级语言C++一样。

例一:MACRO格式文档%@MACRO //用户宏程序文档,必须包含“@MACRO”关键词IF @1 = 1 THENG00 X100.;ELSEG00 Z100。

;END_IF;M99;例二:ISO格式文档%这是标题行,可当作档案用途说明,此行可有可无G00 X100。

;G00 Z100.;G00 X0;G00 Z0;M99;三.用户宏程序的编写如前所述,变量是指可以在用户宏程序中的地址码后代替具体数值,在调用宏程序时进行赋值的符号#i (i=1,2,3,…).使用变量可以使用户宏程序具有通用性。

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

数控宏程序一.什么是宏程序?什么是数控加工宏程序?简单地说,宏程序是一种具有计算能力和决策能力的数控程序。

宏程序具有如下些特点:1.使用了变量或表达式(计算能力),例如:(1)G01 X[3+5] ; 有表达式3+5(2)G00 X4 F[#1] ; 有变量#1(3)G01 Y[50*SIN[3]] ; 有函数运算2.使用了程序流程控制(决策能力),例如:(1)IF #3 GE 9 ; 有选择执行命令⋯⋯ENDIF(2)WHILE #1 LT #4*5 ; 有条件循环命令⋯⋯ENDW二.用宏程编程有什么好处?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 X25#1=-10 ; 运行过程中可以随时改变#1的值G01 X[#1] ; 表示G01 X-10用变量不仅可以表示坐标,还可以表示G、M、F、D、H、M、X、Y、⋯⋯等各种代码后的数字。

如:#2=3G[#2] X30 ; 表示G03 X30例1 使用了变量的宏子程序。

%1000#50=20 ; 先给变量赋值M98 P1001 ; 然后调用子程序#50=350 ; 重新赋值M98 P1001 ; 再调用子程序M30%1001G91 G01 X[#50] ; 同样一段程序,#50的值不同,X移动的距离就不同M992.局部变量编号#0~ #49的变量是局部变量。

局部变量的作用范围是当前程序(在同一个程序号内)。

如果在主程序或不同子程序里,出现了相同名称(编号)的变量,它们不会相互干扰,值也可以不同。

例%100N10 #3=30 ; 主程序中#3为30M98 P101 ; 进入子程序后#3不受影响#4=#3 ; #3仍为30,所以#4=30M30%101#4=#3 ; 这里的#3不是主程序中的#3,所以#3=0(没定义),则:#4=0#3=18 ; 这里使#3的值为18,不会影响主程序中的#3M993.全局变量编号#50~ #199的变量是全局变量(注:其中#100~#199也是刀补变量)。

全局变量的作用范围是整个零件程序。

不管是主程序还是子程序,只要名称(编号)相同就是同一个变量,带有相同的值,在某个地方修改它的值,所有其它地方都受影响。

例%100N10 #50=30 ;先使#50为30M98 P101 ;进入子程序#4=#50 ;#50变为18,所以#4=18M30 %101#4=#50 ; #50的值在子程序里也有效,所以#4=30#50=18 ;这里使#50=18,然后返回M99为什么要把变量分为局部变量和全局变量?如果只有全局变量,由变量名不能重复,就可能造成变量名不够用;全局变量在任何地方都可以改变它的值,这是它的优点,也是它的缺点。

说是优点,是因为参数传递很方便;说是缺点,是因为当一个程序较复杂的时候,一不小心就可能在某个地用了相同的变量名或者改变了它的值,造成程序混乱。

局部变量的使用,解决了同名变量冲突的问题,编写子程序时,不需要考虑其它地方是否用过某个变量名。

什么时候用全局变量?什么时候用局部变量?在一般情况下,你应优先考虑选用局部变量。

局部变量在不同的子程序里,可以重复使用,不会互相干扰。

如果一个数据在主程序和子程序里都要用到,就要考虑用全局变量。

用全局变量来保存数据,可以在不同子程序间传递、共享、以及反复利用。

刀补变量(#100~#199)。

这些变量里存放的数据可以作为刀具半径或长度补偿值来使用。

如#100=8G41 D100 ;D100就是指加载#100的值8作为刀补半径。

注意:上面的程序中,如果把D100写成了D[#100] ,则相当于D8,即调用8号刀补,而不是补偿量为8。

4.系统变量#300以上的变量是系统变量。

系统变量是具有特殊意义的变量,它们是数控系统内部定义好了的,你不可以改变它们的用途。

系统变量是全局变量,使用时可以直接调用。

#0~#599是可读写的,#600以上的变量是只读的,不能直接修改。

其中,#300 ~#599 是子程序局部变量缓存区。

这些变量在一般情况下,不用关心它的存在,也不推荐你去使用它们。

要注意同一个子程序,被调用的层级不同时,对应的系统变量也是不同的。

#600~#899 是与刀具相关系统变量。

#1000~#1039 坐标相关系统变量。

#1040~#1143 参考点相关系统变量。

#1144~#1194 系统状态相关系统变量。

(详见:2.华中数控系统系统变量一览)有时候需要判断系统的某个状态,以便程序作相应的处理,就要用到系统变量。

5.常量PI 表示圆周率,TRUE 条件成立(真),FALSE 条件不成立(假) 。

二.运算符与表达式1.算术运算符加+ ,减- ,乘* ,除/2.条件运算符EQ NE GT GE LT LE宏程序运算符数学意义=≠>≥<≤条件运算符用在程序流程控制IF和WHILE 的条件表达式中,作为判断两个表达式大小关系的连接符。

注意:宏程序条件运算符与计算机编程语言的条件运算符表达习惯不同。

3.逻辑运算符在IF或WHILE语句中,如果有多个条件,用逻辑运算符来连接多个条件。

AND ( 且) 多个条件同时成立才成立OR (或) 多个条件只要有一个成立即可NOT ( 非) 取反(如果不是)例#1 LT 50 AND #1GT 20 ——表示:[#1<50] 且[#1>20]#3 EQ 8 OR #4 LE 10 ——表示:[#3=8] 或者[#4≤10]有多个逻辑运算符时,可以用方括号来表示结合顺序,如:NOT[#1 LT 50 AND #1GT 20] ——表示:如果不是“#1<50 且#1>20”更复杂的例子,如:[#1 LT 50 ] AND [#2GT 20 OR #3 EQ 8] AND [ #4 LE 10]4.函数正弦:SIN[a] 余弦:COS[a] 正切:TAN[a] 注:a为角度,单位是弧度值。

反正切:ATAN[a] (返回:度,范围:-90~+90)反正切:ATAN2[a]/[b] (返回:度,范围:-180~+180) (注:华中数控暂不支持)绝对值:ABS[a] ,表示|a|取整:INT[a] ,采用去尾取整,非“四舍五入”取符号:SIGN[a] ,a为正数返回1,0返回0,负数返回-1开平方:SQRT[a] ,表示指数:EXP[a] ,表示5.表达式与括号包含运算符或函数的算式就是表达式。

表达式里用方括号来表示运算顺序。

宏程序中不用圆括号,因圆括号是注释符。

例如175/SQRT[2] * COS[55 * PI/180 ]#3*6 GT 146.运算符的优先级方括号→函数→乘除→加减→条件→逻辑技巧:常用方括号来控制运算顺序,更容易阅读和理解。

7.赋值号=把常数或表达式的值送给一个宏变量称为赋值,格式如下:宏变量= 常数或表达式例如#2 = 175/SQRT[2] * COS[55 * PI/180 ]#3 = 124.0#50 = #3+12特别注意,赋值号后面的表达式里可以包含变量自身,如:#1 = #1+4 ;此式表示把#1的值与4相加,结果赋给#1。

这不是数学中的方程或等式,如果#1的值是2,执行#1 = #1+4后,#1的值变为6。

三.程序流程控制程序流程控制形式有许多种,都是通过判断某个“条件”是否成立来决定程序走向的。

所谓“条件”,通常是对变量或变量表达式的值进行大小判断的式子,称为“条件表达式”。

华中数控系统有两种流程控制命令:IF ——ENDIF,WHILE——ENDW。

1.条件分支IF需要选择性地执行程序,就要用IF命令。

格式1:(条件成立则执行)IF 条件表达式条件成立执行的语句组ENDIF功能:条件成立执行IF与ENDIF 之间的程序,不成立就跳过。

其中IF、ENDIF 称为关键词,不区分大小写。

IF为开始标识,ENDIF 为结束标识。

IF语句的执行流程如图1所示。

例:IF #1 EQ 10 ;如果#1=10M99 ;成立则,执行此句(子程返回)ENDIF ;条件不成立,跳到此句后面例:IF #1 LT 10 AND #1 GT 0 ;如果#1<10 且#1>0G01 x20 ;成立则执行Y15ENDIF ;条件不成立,跳到此句后面格式2:(二选一,选择执行)ELSE形式:条件不成立执行的语句组IF 条件表达式ENDIF条件成立执行的语句组例:IF #51 LT 20G91G01 X10F250 ELSEG91G01X35F200 ENDIF功能:条件成立执行IF与ELSE之间的程序,不成立就执行ELSE与ENDIF 之间的程序。

IF语句的执行流程如图1所示。

2.条件循环WHILE格式:WHILE 条件表达式条件成立循环执行的语句ENDW功能:条件成立执行WHILE 与ENDW 之间的程序,然后返回到WHILE 再次判断条件,直到条件不成立才跳到ENDW 后面。

WHILE 语句的执行流程如图 1所示。

例:#2=30WHILE #2 GT 0 ; 如果#2>0G91G01X10 ; 成立就执行#2=#2-3 ; 修改变量,ENDW ; 返回G90 G00 z50 ;不成立跳到这里执行WHILE中必须有“修改条件变量”的语句,使得其循环若干次后,条件变为“不成立”而退出循环,不然就成为死循环。

假IF 条件成假IF 条件成真WHILE条件程序A真真假程序1ELSE⋯⋯程序1程序N程序B⋯⋯程序N ENDIF ENDIFIF ⋯ENDIF流程IF ⋯ELSE⋯ENDIF流ENDW 图程图WHILE⋯ENDW流程图图1 流程控制四.子程序及参数递传1.普通子程序普通子程序指没有宏的子程序,程序中各种加工的数据是固定的,子程序编好后,子程序的工作流程就固定了,程序内部的数据不能在调用时“动态”地改变,只能通过“镜像”、“旋转”、“缩放”、“平移”来有限的改变子程序的用途。

相关文档
最新文档