宏程序的调用方法 |
您所在的位置:网站首页 › g117指令 › 宏程序的调用方法 |
宏程序可用以下方法调用: ① 简单调用 G65; ② 模态调用 G66、G67; ③ 用 G 代码调用宏程序; ④ 用 M 代码调用宏程序; ⑤ 用 M 代码的子程序调用; ⑥ 用 T 代码的子程序调用。 1.宏程序调用和子程序调用的区别 ① 用 G65 可以指定实参(传送给宏程序的数据),而 M98 没有此能力。 ② 当 M98 程序段包含其他 NC 指令(如:G01 X100.0 M98 P )时,在该指令执行完后调用子程序,而 G65 则无条件调用宏程序。 ③ 当 M98 程序段包含其他 NC 指令(如:G01 X100.0 M98 P )时,在程序单段运行模式下机床停止,而 G65 不会让机床停止。 ④ G65 调用时,局部变量的层次被修改,而 M98 调用不会更改局部变量的层次。 2.简单调用 G65 宏程序的简单调用是指在主程序中,宏程序可以被单个程序段单次调用。 当指定 G65 调用时,地址 P 后指定的用户宏程序被调用,同时数据(实参)被传递给用户宏程序。 调用指令格式:G65 P(宏程序号)L(重复次数)(变量分配) 其中:G65——宏程序调用指令; P(宏程序号)——被调用的宏程序号; L(重复次数)——宏程序重复运行的次数(1~99),重复次数为 1 时,可省略不写; (变量分配)——为宏程序中使用的变量赋值,通过使用实参描述,数值被指定给对应的局部变量。 宏程序与子程序相同的是一个宏程序可被另一个宏程序调用,最多可调用 4 重。例如: O0001; … G65 P9010 L2 A1.0 B2.0; … M30; O9010; #3=#1+#2; IF [#3 GT 360] GOTO 9; G00 G91 X#3; N9 M99; 3.实参描述(变量分配) 有两种实参描述类型,实参描述类型Ⅰ(见表 1⁃3)可同时使用除 G、L、O、N 和 P 之外的字母各一次。而实参描述类型 Ⅱ(见表 1⁃4)只能使用 A、B、C 各一次,使用 I、J、K 最多十次。实参描述类型根据使用的字符自动判断。 表 1⁃3 实参描述类型 Ⅰ 注:地址 G、L、N、O、P 不能用于实参;不需指定的地址可省略,省略地址对应的局部变量设成空(null)。 表 1⁃4 实参描述类型 Ⅱ 注:I、J、K 的下标(subscripts)用于表示实参描述的顺序,实际程序中不需写出。 4.使用限制 (1)格式 G65 必须在实参之前指定。 (2)实参描述 Ⅰ 和 Ⅱ 的混合 NC 内部识别实参描述 Ⅰ 和 Ⅱ,当二者混合指定时,实参描述类型由后出现的地址决定,即两种类型可同时使用,当多个地址对应同一个局部变量时,该变量的值由后出现的地址决定。 (3)小数点的位置 一个不带小数点的实参在数据传递时,其单位按其地址对应的最小精度解释,因此,不带小数点的实参,其值在传递时有可能根据机床的系统参数设置而被更改。所以一般应该在宏调用实参中使用小数点,这样可以保持程序的兼容性。 (4)调用嵌套 调用可嵌套四层,包括简单调用 G65 和模态调用 G66,但不包括子程序调用 M98。 (5)局部变量的层次 嵌套调用时,局部变量的层次指定为 0~4。主程序的层次为 0。宏程序每(嵌套)调用一次(G65、G66),局部变量的层次加一,原有局部变量的值被 NC 保存(不可见)。 当 M99 执行时,控制返回调用该子程序的位置。此时,局部变量层次减一,宏程序调用时保存的原有局部变量值被恢复。 宏程序的嵌套关系及局部变量和全局变量的使用如图 1⁃2 所示。 图 1⁃2 宏程序的嵌套关系及局部变量和全局变量的使用 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |