台湾新代宏程序(Macro)用户手册.pdf
《台湾新代宏程序(Macro)用户手册.pdf》由会员分享,可在线阅读,更多相关《台湾新代宏程序(Macro)用户手册.pdf(48页珍藏版)》请在冰豆网上搜索。
![台湾新代宏程序(Macro)用户手册.pdf](https://file1.bdocx.com/fileroot1/2022-10/29/455249af-cd5c-4365-9dfb-19f69b754c9a/455249af-cd5c-4365-9dfb-19f69b754c9a1.gif)
MatecMacro宏程序开发鑫泰科技2007/02/10目录第一章用户宏编程的基本概和基本书写格式-4第一节用户宏编程的基本概-4第二节基本书写格式-6一、用户宏文档格式-6二、普通数控程序段格式-6三、用户宏程序段格式-8第二章用户宏程序的编写-9第一节变-9一、变及其使用方法-9二、变赋值和引数赋值-9三、变的种类-10第二节变运算及变表达式-13一、用户宏运算符-13二、基本算数运算符-14三、算术表达式和运算符优先级-14四、关系运算符和关系表达式-14五、逻辑运算和逻辑表达式-15第三节用户宏程序的程控制-15一、条件判断-16二、循环控制-18三、无条件转移-21第四节库函数-21一、数学函数类-22二、信息传递类-23三、操作辅助类-24四、文档操作类-25五、仿真绘图类-25第三章宏程序的调用-27第一节简单宏调用-27一、简单宏调用指-27二、模态信息的回复-27第二节模态宏调用-27一、模态宏调用指G66-27二、模态宏调用指G66.1-28第三节扩充G代码宏指调用-29第四章用户宏程序范-30第一节用户宏程序编写注意事项-30第二节用户宏程序编写范-30一、车床G21车床车牙-30附录-35附录基本G码指一览表-35附录地址码一览表-36附录引数赋值的地址码和变的对应关系表-36附录运算符及其优先级-37附录系统变分配表-37附录库函数-41附录程序调用方法-48第一章用户宏编程的基本概和基本书写格式第一节用户宏编程的基本概念用一组指令构成某功能并且象子程序一样存储在存储器中再把这些存储的功能由一个指令来代表执行时只需写出这个代表指令就可以执行其相应的功能。
在这里所存储的一组指令叫做宏程序体(或用户宏程序)简称为用户宏。
其代表指令称为用户宏命令也称作宏程序调用指令。
使用时编程人员只需会使用用户宏指令即可而不必去关心宏程序体中的指令内容。
例如在下述程序流程中可以这样使用用户宏主程序用户宏O9011G65P9011A10I5X1Y4在这个程序的主程序中用G65P9011调用用户宏程序O9011并且对用户宏中的变量赋值110、45(A代表1、I代表4)。
而在用户宏中未知量用变量1及4来代表。
用户宏有以下四个主要特征1在用户用户宏程序中可以使用变量即宏程序体中能含有复杂的表达式2能够进行变量之间的各种运算3可以用用户宏指令对变量进行赋值就象许多高级语言中的带参函数或过程实参能赋值给形参4容易实现程序流程的控制。
使用用户宏时的主要方便之处在于由于可以用变量代替具体数值因而在加工同一类的工件时只得将实际的值赋予变量既可而不需要对每个不同的零件都编一个程序。
下面再以一个示意性的例子来说明用户宏的概念。
当图11中A、B、U、V的尺寸分别为A20、B10、U40、V20时其程序为O1G9lG00X20.0Y10.0G01Y10.0X40.0Y20.0X40.0G00X20.0Y10.0但是当图中A、B、U、V尺寸变化时则又需要编一个类似的程序。
实际上我们可以将程序写为O1G91G00XAYBG01YVXUYVXUG00XAYB此时可以将其中变量用用户宏中的变量i代替而字母与i的对应关系为A1B#2U#21V#22则用户宏程序即可写成如下形式09801G9lG00XlY2G01Y22X21Y22X21G00X1Y2M99使用时就可以用下述用户宏指令来调用G65P9801A20.0B10.0U40.0V20.0由于地址码A、B、U、V分别与变量1、#2、#21、#22有着一定的对应关系执行以上用户宏调用程序段时实际数值就会将被赋予给对应的变量其对应结果为120.0#210.0#21=40.0#22=20.0然后被调用的用户宏程序再按所得到的变量值在宏程序中进行运算或执行指令结束后返回主程序。
实际使用时一般还需要在这一指令前再加上F、S、T指令及进行坐标系设定等。
如上述所示当加工同一类但只是尺寸不同的工件时只需改变用户宏命令的数值即可而没有必要针对每一个零件都编一个程序。
第二节基本书写格式一、用户宏文档格式数控程序文档中一般以“%”字符作为第一行的起头该行将被视为标题行。
当标题行含有关键字“MACRO”时整个文档就会以系统所定义的MACRO语法处理。
如果该行无“MACRO”关键词此档案就会被视为一般ISO程序文档格式处理此时将不能编写用户宏和使用其MACRO语法。
而当书写ISO程序文档时标题行一般可以省略直接书写数控程序。
“MACRO”关键词必须是大写字母。
对于程序的注释可以采用“/”的形式这和高级语言C+一样。
例一MACRO格式文档%MACRO/用户宏程序文档必须包含“MACRO”关键词IF1=1THENG00X100.ELSEG00Y100.END_IF;M99;例二ISO格式文档%这是标题行可当作档案用途说明此行可有可无G00X100.G00Y100.G00X0G00Y0M99;二、普通数控程序段格式数控程序是由若干个程序段所组成而每个程序段是由若干个程序字和程序段结束组成。
例如N20G01X25Y-36F100S300T02M03而程序字又是由地址符及其后面的数字所组成如N(地址码)20(数字)、Y(地址码)-36(数字)。
在程序中能作指令的最小单位是字仅用地址码或仅用数字是不能作为指令的。
程序段的格式如下NGXYZFSTM顺序号准备功能字尺寸字进给功能字主轴转速功能刀具功能字辅助功能字程序段结束字程序字程序段内各字说明如下
(1)顺序号放在程序段前用以识别各程序段它由地址码N及其后面的5位以内数字组成的。
程序段号不是必须的可在需要时用数字号码的顺序也是任意的可以每段都加也可只加在需要的地方。
例如N20表示该的程序段号为20。
(2)准备功能字也称G功能字使数控机床做好某种操作准备指令它由地址码G及其后面的两位以内数字所组成。
主要指令有1)动作指令如G01(直线插补)、G02(圆弧插补)2)平面指令如G17(设定XY工作平面)3)刀补指令如G41(左刀径补偿)4)其它指令。
G代码及功能可参见表2-1。
G代码分为模态代码又称续效代码和非模态代码两种。
所谓模态代码是指某一G代码如G01一经指定就一直有效直到后面程序段中使用同组G代码如G03才能取代它。
而非模态代码只在指定的本程序段中有效。
下一程序段需要时必须重写如G04。
另外不同组的G代码可以放在同一程序段中。
但在同一程序段中出现2个以上同一组的G代码指令时则只有最后的G代码有效。
(4)尺寸字由地址码、符号及绝对值或增量的数值组成。
它主要包括以下几项1)坐标轴的移动指令例如X35.418。
2)附加轴的移动指令如回转轴的转动例如A45。
3)圆弧圆心坐标它是在圆弧插补时用来指定圆弧圆心的值用I、J、K表示。
(5)进给功能字指定刀具中心运动时的进给速度由地址码F及其后面的数字组成。
这个数字的单位取决于每个数控系统所采用的进给速度的指定方法。
例如F100表示进给速度为100mm/min。
(6)主轴功能字指定主轴转速或速度由地址码S及其后面的数字组成单位为转速单位r/min。
例如S300表示主轴转速为800r/min。
(7)刀具功能字指定刀号以选择刀具由地址码T及其后面的数字组成刀具功能字的数字就表示指定的刀号数字的位数由所用的系统决定。
例如T08表示第八号刀。
(8)辅助功能字又称M功能字主要用来表示机床操作时各种辅助动作及其状态它由地址码M及其后面的两位数字组成。
常用辅助代码可参见表1-3。
表13常用辅助功能代码功能说明代码功能说明M00程序停止M08切削液开M01选择停止M09切削液关M02程序结束M30程序结束M03主轴正转M98调用子程序M04主轴反转M99返回主程序M05主轴停止9程序段结束写在每一程序段之后表示程序结束一般用符号“”表示。
表12地址码一览表功能地址意义程序号/O/程序编号顺序号N程序段编号准备功能G建立工作方式X、Y、Z各坐标的移动指令A、B、C、U、V、W各附加轴的移动指令R圆弧半径尺寸字I、J、K圆弧圆心的增量坐标进给功能F指定进给的速度主轴功能S指定主轴的旋转速度刀具功能T刀具选择中用于指定刀号辅助功能M实现机床操作的各种辅助动作偏置号H、D偏置号的指定长度偏移用H半径补偿用D暂停P、X暂停时间指定子程序号指定P在M98程序段中用以指定子程序号顺序号指定P在顺序号的位置程序被重复执行重复次数L子程序或固定循环的重复次数参数P、Q、R固定循环中参数的指定三、用户宏程序段格式用户宏程序段的书写格式与普通数控程序段格式相似每个程序段也是由若干个程序字和程序段结束组成但是在地址码后面的具体数值可以被变量置换。
例如N100G33U-(#18*2-#31)W(#23-SIGN(#23)*#33)Q#37F(#9*#11)可见两者的不同之处就是组成程序字的地址符后面不仅仅可以是数字而且可以是变量或者变量的表达式如G(地址码)33(数字)、U(地址码)-(#18*2-#31)(表达式)、Q(地址码)#37变量。
但需注意的是作为地址码的O、N、/等不能引用变量其余功能字均可在用户宏中按上述格式使用功能字的意义和使用方法不变。
第页第二章用户宏程序的编写第一节变量一、变量及其使用方法如前所述变量是指可以在用户宏程序中的地址码后代替具体数值在调用宏程序时进行赋值的符号i(i123)。
使用变量可以使用户宏程序具有通用性。
用户宏程序中可以使用多个变量以变量编号进行识别。
1、变量的形式变量是用符号或后面加上变量编号所构成的即i(i123)例如51091005也可用表达式的形式来表示。
例如#100#10011#6/2其实通过用符号后面加上变量编号也可构成的变量即i(i123)例如55但一般地由符号后面加上变量编号构成的变量称为全局变量不提倡在用户宏程序中使用具体见后面的介绍。
2、变量的引用在地址符后的数值可以用变量置换。
例如若写成F#33,则当331.5时与F1.5相同。
若写成Z#18,则当1820.0时与Z20.0相同。
但需要注意作为地址符的O、N、等不能引用变量。
例如O#27、N#1等都是错误的。
3、未定义变尚未被定义的变量被称为空VACANT。
变量00始终为空经常被用作空变量使用。
二、变量赋值和引数赋值1、变赋值用户宏程序中变量赋值使用赋值运算符“=”不可仅用“=”符号。
因为在本系统中符号“=”是被规定为关系运算符用来比较是否相等的。
例如#30=100会将变量#30赋值为整数100而#30=100将不能为变量#30赋值实际上是比较变量#30是否与整数100相等。
2、引数赋值对于用户宏程序的另外一些接口变量如何获得实际的数值这是通过引数赋值实现的下面我们再回头看看第一章第一节中的用户宏程序调用例子G65P9801A20.0B10.0U40.0V20.0执行这条用户宏调用程序段后子程序中的变量就会得到120.0、#210.0、#21=40.0、#22=20.0的结果这就是引数赋值。
实际上用户宏编程系统中地址码A、B、C、D分别与变量1、#2、#3、#7有着一定的对应关系当执行用户宏调用程序段时地址码后面的实际数值就被赋予给用户宏程序中所对应的