normal style="MARGIN: 0cm 0cm 0pt"> 一、 主程序和子程序
normal style="MARGIN: 0cm 0cm 0pt">
normal style="MARGIN: 0cm 0cm 0pt">
normal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">程序分为主程序和子程序,通常CNC系统按主程序指令运行,但在主程序中遇见调用子程序的情形时,则 CNC 系统将按子程序的指令运行,在子程序调用结束后控制权重新交给主程序。
normal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">CNC 存储区内可存 l25个主程序和子程序。程序开始的程序号用 EIA 标准代码O地址指令。
normal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">2、子程序
normal style="MARGIN: 0cm 0cm 0pt">
normal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">子程序和主程序必须存在同一个文件中,调出的子程序可以再调用另一个子程序,我们将主程序调用子程序称为一重子程序调用,子程序调用子程序称为多重调用。
normal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">一个子程序可被多次调用,用一次调用指令可以重复 999 次调用。
normal style="MARGIN: 0cm 0cm 0pt">
normal style="MARGIN: 0cm 0cm 0pt"> l )子程序的编制
normal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">在子程序的开始为O地址指定的程序号、子程序中最后结束子程序指令 M99 ,为一单独程序段。
normal style="MARGIN: 0cm 0cm 0pt">
normal style="MARGIN: 0cm 0cm 0pt"> 2 )子程序的执行
normal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">子程序是由主程序或上层子程序调山并执行的。
normal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">子程序调用指令如下:
normal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">M98 P **** L x x x x
normal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">调用子程序指令 子程序号 子程序调用次数
normal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">子程序调用次数的默认值为 1
normal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">(例 l ) ; M98PL
normal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">M98 指令可与刀具移动指令放于同一程序段中。
normal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">[注1]子程序和主程序必须存在同一个文件中
normal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">[注2]子程序名和主程序名不得相同。
normal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">[注3]M98 , M99 信号不愉出到机床处,
normal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">[注4]当找不到 p 地址指定的子程序号时报警。
normal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">[注5]在 MDI 下使用 M98 P **** 调用指定的子程序是无效的。
normal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
normal style="MARGIN: 0cm 0cm 0pt">
normal style="MARGIN: 0cm 0cm 0pt">
normal style="MARGIN: 0cm 0cm 0pt"> CNG 装置可以装人许多程序文件,以磁盘文件的方式读写。文件名格式为(有别于DOS的其他文件名) :
normal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">%XXXX(地址 O 后面必须有四位数字)
normal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">程序以程序号开始,以 M 叩或 M 的结束。
normal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">程序号格式为% XxXx ; (地址 O 后面必须有四位数字)
normal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">M02 表示主程序结束。
normal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">M99 表示子程序结束,并返回到主程序中。
normal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
normal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
normal style="MARGIN: 0cm 0cm 0pt"> 三、顺序号和程序段
normal style="MARGIN: 0cm 0cm 0pt">
normal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">程序是由多条指令组成,每一条指令都称为程序段(占一行)。
normal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">程序段之间应用符号隔开,本说明书规定每个程序段的末尾以“;”作为程序段的结束,构成程序段的要素是程序字,程序字由地址及其后续的数值构成。
normal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">[注1] 程序段中字符数没有限制.
normal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">[注2] ISO代码中程序段结束符号为 LF
normal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 68.25pt; mso-char-indent-count: 6.5">EIA 代码中程序段结束符号为 CRo
normal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">程序顺序号由 N 指明,范围为1—9999,顺序号是任意给定的,可以不连续可以在所有的程序段中都指定顺序号,也可只在必要的程序段指明顺序号
normal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">
normal style="MARGIN: 0cm 0cm 0pt">
normal style="MARGIN: 0cm 0cm 0pt"> 四、字和地址
normal style="MARGIN: 0cm 0cm 0pt">
normal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">程序段由字组成,而字由地址和地址后带符号的数字构成,如下所示:
normal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; TEXT-ALIGN: center; mso-char-indent-count: 2.0" align=center>X-----------------------------1000
normal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 10.5pt; TEXT-ALIGN: center; mso-char-indent-count: 1.0" align=center>[地址 数字] 字
normal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt; mso-char-indent-count: 2.0">地址是大写字母 A 到 2 中的一个,它规定了其后数字的意义,以下是本系统使用的各个地址的含义和指令值范围。见表 1一1
normal style="MARGIN: 0cm 0cm 0pt; TEXT-ALIGN: center" align=center>表 1一1
这些字组合在一起就形成了一个程序段,如下例所示:
normal style="MARGIN: 0cm 0cm 0pt"> M10 Xl00 Z
normal style="MARGIN: 0cm 0cm 0pt">
normal style="MARGIN: 0cm 0cm 0pt 36.75pt; TEXT-INDENT: -36.75pt; mso-char-indent-count: -3.5">注 1 NC 装置所引起的限制和机床的限制是二个完全不同的概念,例如 NC 装置 X 轴的移动量可以指令约 l
normal style="MARGIN: 0cm 0cm 0pt 36.75pt; TEXT-INDENT: -36.75pt; mso-char-indent-count: -3.5">
normal style="MARGIN: 0cm 0cm 0pt">注 2 每转进给速度是根据主抽转速而转换成每分钟进给量后按每分
normal style="MARGIN: 0cm 0cm 0pt">
normal style="MARGIN: 0cm 0cm 0pt"> 钟进给量执行的