台湾新代宏程序(Macro)用户手册.pdf

上传人:wj 文档编号:14656157 上传时间:2023-06-25 格式:PDF 页数:48 大小:343KB
下载 相关 举报
台湾新代宏程序(Macro)用户手册.pdf_第1页
第1页 / 共48页
台湾新代宏程序(Macro)用户手册.pdf_第2页
第2页 / 共48页
台湾新代宏程序(Macro)用户手册.pdf_第3页
第3页 / 共48页
台湾新代宏程序(Macro)用户手册.pdf_第4页
第4页 / 共48页
台湾新代宏程序(Macro)用户手册.pdf_第5页
第5页 / 共48页
台湾新代宏程序(Macro)用户手册.pdf_第6页
第6页 / 共48页
台湾新代宏程序(Macro)用户手册.pdf_第7页
第7页 / 共48页
台湾新代宏程序(Macro)用户手册.pdf_第8页
第8页 / 共48页
台湾新代宏程序(Macro)用户手册.pdf_第9页
第9页 / 共48页
台湾新代宏程序(Macro)用户手册.pdf_第10页
第10页 / 共48页
台湾新代宏程序(Macro)用户手册.pdf_第11页
第11页 / 共48页
台湾新代宏程序(Macro)用户手册.pdf_第12页
第12页 / 共48页
台湾新代宏程序(Macro)用户手册.pdf_第13页
第13页 / 共48页
台湾新代宏程序(Macro)用户手册.pdf_第14页
第14页 / 共48页
台湾新代宏程序(Macro)用户手册.pdf_第15页
第15页 / 共48页
台湾新代宏程序(Macro)用户手册.pdf_第16页
第16页 / 共48页
台湾新代宏程序(Macro)用户手册.pdf_第17页
第17页 / 共48页
台湾新代宏程序(Macro)用户手册.pdf_第18页
第18页 / 共48页
台湾新代宏程序(Macro)用户手册.pdf_第19页
第19页 / 共48页
台湾新代宏程序(Macro)用户手册.pdf_第20页
第20页 / 共48页
亲,该文档总共48页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

台湾新代宏程序(Macro)用户手册.pdf

《台湾新代宏程序(Macro)用户手册.pdf》由会员分享,可在线阅读,更多相关《台湾新代宏程序(Macro)用户手册.pdf(48页珍藏版)》请在冰点文库上搜索。

台湾新代宏程序(Macro)用户手册.pdf

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有着一定的对应关系当执行用户宏调用程序段时地址码后面的实际数值就被赋予给用户宏程序中所对应的变量这个过程就称为引数赋值。

除去G、L、N、O、P以外的地址码都可作为引数赋值的地址码大部分无顺序要求但对I、J、K则必须按字母顺序排列对没有使用的地址可省略。

例如B_A_D_I_K_正确而B_A_D_J_I_就是不允许。

引数赋值所指定的地址码和用户宏程序中所使用的变量编号的对应关系如表21所示。

表21引数赋值的地址码和变量的对应关系引数赋值的地址码用户宏中的变量引数赋值的地址码用户宏中的变量A#1P#16B#2Q#17C#3R#18D#7S#19E#8T#20F#9U#21H#11V#22I#4W#23J#5X#24K#6Y#25M#13Z#26注关于扩充的地址码X1=请使用GETARG(address)函式读取。

三、变量的种类按变量的组成符号和编号可将变量分为局部(Local)变量、系统变量System和全局变量Global其性质和用途都是不同的。

1、局部变量#1#50所谓局部变量就是在用户宏程序内部使用的变量它只在定义它的用户宏程序中有效也就是说只有该用户宏程序内使用在此用户宏程序以外是使用不到这些变量的。

但这并不意味着在此外的用户宏程序就不可以再使用i这样的变量编号因为在某一时刻调出的用户宏中所使用的局部变量编号i和另一时刻调用的用户宏(也不论与前一个用户宏相同还是不同)中所使用的i是不同的或者说不同的用户宏调用实例中的i所占用系统内存地址是不同的即使在多重调用情况下当用户宏A调用用户宏B的情况下也不会将A中的局部变量破坏。

我们可以用局部变量级的这样一个概念来理解作用于宏程序某一级中的变称为本级变即这一变在同一程序级中调用时内容相同在另一级程序如子程序中使用则意义同。

本级变主要用于变间的相互传递初始状态下未赋值的本级变即为空白变。

如图21就是用G代码(或G65时)调用宏时局部变量级会随着调用多重度的增加而增加即存在如图的关系主程序用户宏用户宏(第1级)(第2级)局部变量(0级)(1级)(2级)上图说明了以下几点1主程序中具有150的局部变量0级。

2用G65调用宏第1级时主程序的局部变量0级被保存起来。

再重新为用户宏第1级准备了另一套局部变量150第1级可以再向它赋值。

3下一用户宏第2级被调用时其上一级的局部变量(第l级)被保存再准备出新的局部变量150(第2级)如此类推。

4当用M99从各用户宏回到前一程序时所保存的局部变量(第0、1、2级)#150#150#150O_G65P_M99O_G65P_M99G65P_存在的状态出现。

对于没有赋值的局部变量其初始状态为空用户可自由使用。

2、系统变量#100031986系统变量是根据用途而被固定的变量。

主要有以下各种表22详情请见附录。

表22系统变量分配变量编号用途#1000#1058模态信息#1500#1624运行控制/状态#1301#1436运行时状态变量#1800#1916模态变量40015100用户参数60016032信号接口7001#7101模式组变量1100012999刀具补偿变2000125986工件坐标系补偿值(工件点偏移值)2600131986参考点3、全局变量114095与局部变量相对全局变量是在主程序以及调用的子程序中通用的变量它在同程序级中调用时内容相同即它在同一系统中的所有程序中都有效因为全局变量在系统中所占用的内存地址是唯一不变的。

因此对于任何一个全局变量i它都可以在主程序和用户宏或者用户宏之间相互使用传递数值并对其操作。

全局变量在114095的范围内按用途主要分为四组。

其中1400和656999两组可以被用户宏程序所使用可读可写但它们具有不同的性质和使用方法前者中的变量常用于一般的运算可以用操作面板人机界面来读取显示而后者中的变量为保持形变量有记忆性变量可以被永久保存即掉电不丢失在操作面板上可进行读写操作。

具体可见表23。

表23全局变使用对照表变量编号说明宏程序人机界面永久保存1400一般运算用变量读/写只读否401655对应PLC寄存器R1R255401=R1655=R255656999有记忆性变量读/写读/写是1000014095对应PLC寄存器R0R409510000=R014095=R4095注表示具体参见资源分配表表24中对应寄存器。

而401655和1000014095两组变则影射为PLC中系统预定义的一些寄存器用户宏程序对其的读写规则和使用方法不尽相同具体可参见表24资源分配表中对应的寄存器至于更详细的寄存器资源用途和规则可参阅OpenCNCPLC发展手册书中介绍。

表24资源分配表读写规则编号说明宏程序或人机接口阶梯程序是否可位(Bit)存取永久保存R0R39CNC系统接口区R40R49PLC警报讯息区只读是否R50R80使用者自行定义读/写读/写是否R81R100对应到系统参数34013420PLC参数只读只读是否R101R102刀具状态读/写读/写是是R103R255是R256R511使用者自行定义读/写读/写是否R512R639是R640R1023CNC系统接口区只读否否R1023R4095使用者自行定义读/写读/写否否注表示更详细的寄存器资源用途和规则可参阅OpenCNCPLC发展手册一书。

第二节变量运算及变量表达式一、用户宏运算符要对变进各种运算操作就要用到运算符它是“能对变所存数据进运算的符号。

本系统的运算符及其优先级如表3-2所示。

表3-2运算符及其优先级运算名符号优先级括号()1函数调用运算()2取负-3求补运算NOT3乘法运算*4除法运算/4模运算/求余运算MOD4加法运算+5减法运算-5关系运算=6相等运算=7不等运算8布尔逻辑/按位与&AND9布尔逻辑/按位异或XOR10布尔逻辑/按位或OR11二、基本算数运算符

(1)+加法运算符如3+5#12+4

(2)-减法运算符或取负运算符如#33-16-#16(3)*乘法运算符如9*2#13*8(4)/除法运算符如10/3#43/15(5)MOD模运算符或称求余运算符其两侧均应为整型数据如7MOD4的值为3当#18=20时#18MOD4的值为2三、算术表达式和运算符优先级用算术运算符和括号将运算对象连接起来的、符合语法规则的式子称为算术表达式运算对象可以是常数、变、函数等。

例如#6*8/#32-1.5+#18+ROUND1这就是一个算术运算式它可以作为一个整体赋值给某个变量或用作其他表达式中的一个运算对象。

本系统按表表3-2规定了运算符的优先级和结合性。

在表达式求值时先按运算符的优先级别高低次序执行例如先乘除后加减。

如表达式#12-#41*5的左侧为减右侧为乘号而乘号优先于减号因此相当于#12-#41*5。

如果在一个运算对象两侧的运算符的优先级别相同如#2-5+#23则按规定的结合性结合方向处理算术运算符的结合方向为“自左至右”即先左后右。

因此5先与减号结合执行#2-5的运算再执行加#23的运算。

这样“自左至右的结合方向”又称为“左结合性”即运算对象先与左面的运算符结合对应地也有“右结合性”的运算符例如赋值运算符“=”就是。

四、关系运算符和关系表达式关系运算符是逻辑运算中比较简单的一种。

所谓“关系运算”实际上就是“比较运算”。

将两个值进行比较判断比较的结果是否符合给定的条件。

例如#310是一个关系表达式大于号是一个关系运算符如果#3=12则满足给定的“#310”条件因此关系表达式的值为“真”即“条件满足”如果#3=6不满足“#310”条件则称关系表达式的值为“假”。

本系统提供6种关系运算符

(1)小于

(2)大于(4)=大于或等于(5)=等于(6)不等于关于优先次序优先级相同高优先级较高优先级低1、前4种关系运算符的优先级别相同它们却高于关系运算符“=”而“=”又高于“”2、关系运算符的优先级低于算术运算符。

3、关系运算符的优先级高于赋值运算符。

用两个关系运算符将两个表达式连接起来的式子称为关系表达式。

例如#636#13+4#23关系表达式的值是一个逻辑值即“真”或“假”。

例如若#12为8则关系表达式“#12=10”的值为“假”“#12=6”的值为“真”。

五、逻辑运算和逻辑表达式用逻辑运算符将关系表达式或逻辑量连接起来就是逻辑表达式。

本系统提供6种逻辑运算符和逻辑运算

(1)&AND逻辑与

(2)XOR逻辑或(3)OR逻辑异或它们都是“双目元运算符”它要求有两个运算量操作数逻辑运算举例如下#1AND#2若#1、#2为真则#1AND#2为真。

#1OR#2若#1、#2之一为真则#1XOR#2为真。

逻辑运算符低于关系运算符见图3-1。

图3-1第三节用户宏程序的程控制所谓程序的流程FlowControl是通过控制程序的执行方向进而掌握程序动态。

这用户宏程序区别于一般数控程序的特征之一也是用户选择用户宏程序编写数控代码的一大理由。

用户宏程序的流程控制包括无条件判断、循环控制、无条件转移三大类这与其他的高级语言程序类似下面将分别介绍其功能和使用语法。

一、条件判断判断条件的真假然后根据真假或者对应情况到指定的地方去执行程序这方面的语句有IF和CASE语句。

1、IF条件语句1基本语法算术运算符关系运算符逻辑运算符赋值运算符高低IFTHENELSEIFTHENELSEEND_IF;说明IF条件判断根据真假情况到指定的地方去执行程序。

例如%MACRO/启动MACRO语法#1:

=3.0;G01G91G92X20.Y15.F200000;IF#1=1THENX(1.0*1);Y(1.0*1);ELSEIF#1=2THENX(1.0*2);Y(1.0*2);ELSEIF#1=3THENX(1.0*3);Y(1.0*3);ELSEX(1.0*4);Y(1.0*4);END_IF;X(1.0)Y(1.0);M30;然而在实际使用中可以有以下一些变形2变形1语法IFTHENELSEEND_IF;3变形2语法IFTHENEND_IF;编程时可根据需要选择合适的语法格式。

2、CASE分支语句语法CASEOFELSEEND_CASE;说明CASE多条件判断分支根据条件表达式运算结果所对应的条件值整数分别执行不同程序区块。

例如%MACRO/启动MACRO语法#1:

=8;G01G91G92X20.Y15.F200000;CASE#1OF1:

X(1.0*1);Y(1.0*1);2:

X(1.0*2);Y(1.0*2);345:

X(1.0*#1);Y(1.0*#1);ELSEX(1.0*6);Y(1.0*6);END_CASE;X(1.0)Y(1.0);M30;二、循环控制1、REPEAT直到型循环语法REPEATUNTILEND_REPEAT说明REPEAT直到型循环控制先执行循环体后判断条件表达式当条件满足时退出循环。

例如%MACRO/启动MACRO语法#10:

=30.;#11:

=22.5.;#12:

=#10/2;#13:

=#11/2;#14:

=2.0;#15:

=1.5;G01G92X#12Y#13F200.0;REPEATG00X(#12+#14)Y(#13+#15);G01X(#12+#14)Y(#13-#15);X(#12-#14)Y(#13-#15);X(#12-#14)Y(#13+#15);X(#12+#14)Y(#13+#15);#14:

=#14+2.0;#15:

=#15+1.5;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2