3.4 程序的编辑和管理
3.4.1 程序的创建
使用系统操作面板创建并输入程序的步骤如下。
① 把[方式选择]旋钮旋转到EDIT方式位置处。
② 按下[PROG]键。
③ 按下地址键[O],输入程序号码(数字)。
④ 按下[INSERT]键。
⑤ 输入程序,每个程序段尾按[EOB]键,程序段自动录入。
3.4.2 程序的编辑
程序编辑操作包括插入、修改、删除和字的替换。编辑还包括删除整个程序。扩展程序编辑功能包括拷贝、移动和合并程序,此外,还包括程序号检索、顺序号检索、字检索、地址检索等,这是在程序编辑之前必要的操作。
(1)字的插入、替换和删除
对已经输入到内存中的程序进行字的插入、替换和删除的步骤如下。
① 在[方式选择]旋钮上选择[EDIT](编辑)方式。
② 按下[PROG]键。
③ 选择要进行编辑的程序。如果已选择了要编辑的程序则执行操作④;如果尚未选择将要编辑的程序则进行程序号检索。
④ 检索一个将要修改的字有扫描和字检索两种方法。
⑤ 执行替换、插入、删除字等操作。字是一个地址后面带有一个数字,对于用户宏程序,字的概念变得很模糊。所以在这里考虑编辑单元的概念。编辑单元是一个用来进行替换或删除操作的单位。在一次扫描操作中光标标明了编辑单元开始的位置。插入是在编辑单元后进行的。编辑单元的定义如下。
a.程序中,从一个地址到另一个地址的程序部分。
b.一个地址是一个字母,如IF、WHILE、GOTO、END、DO=或(EOB)等。根据这个定义一个字是一个编辑单元。
“字”的含义,当使用在编辑操作中时意味着是有精确定义的编辑单元。
注意:用户通过单段运行或进给暂停使自动运行停止,进行程序的编辑,如替换、插入或删除后,不能继续程序的执行。这样做是很危险的,有可能使系统不按显示的程序内容执行。因此,当要通过编辑功能修改内存中的数据时,一定要进入复位状态,或者在编辑执行完后,执行程序之前复位系统。
① 字的检索。字的检索可以通过简单地在文本中移动光标(扫描)、字检索或者是地址检索实现。
a.扫描程序的步骤。
ⅰ.按下向右光标键。光标在屏幕上向前一个字一个字地移动,光标显示在所选的字上。
ⅱ.按下向左光标键。光标在屏幕上向左一个字一个字地移动,光标显示在所选的字上。例如扫描Z1250.0时,如图3-6所示。
图3-6 扫描Z1250.0
ⅲ.持续按下向右光标键或向左光标键,对字进行连续扫描。
ⅳ.当按下向下光标键时,检索下一程序段的第一个字。
ⅴ.当按下向上光标键时,检索上一程序段的第一个字。
ⅵ.持续按下向上光标键或向下光标键,会连续地将光标移动到各程序段的开头。
ⅶ.按下翻页键显示下一页并检索该页中的第一个字。
ⅷ.按下翻页键显示前一页并检索该页中的第一个字。
ⅸ.持续按下翻页键或会连续显示各页面。
b.字检索的步骤。例如检索S12。如图3-7所示。
图3-7 检索S12
ⅰ.键入地址S。
ⅱ.键入12。如果仅输入S1就不能检索S12,如果仅输入S09就不能检索S9,如果要检索S09就必须输入S09。
ⅲ.按下[SRH↓]键开始检索过程。检索完成后,光标显示在S12上。若按下[SRH↑]而不是[SRH↓]键就会执行相反方向的检索操作。
c.检索一个地址的操作步骤。例如检索M03。如图3-8所示。
图3-8 检索M03
ⅰ.键入地址M。
ⅱ.按下[SRH↓]键。在检索完成后光标显示在M03上。若按下[SRH↑]键而不是[SRH↓]键就会执行相反方向的检索操作。报警号No.71表示没有找到检索的字或地址。
② 跳到程序头。光标可以跳到程序头,该功能称为定位程序头指针。有以下3种定位程序头指针的方法。
a.方法1。当处于[EDIT]方式的程序画面时,按下键。当光标回到程序的起始部分后,在画面上从头开始显示程序的内容。
b.方法2。检索程序号。
ⅰ.当处于[MEMORY]或[EDIT]方式的程序画面时按下地址键[O]。
ⅱ.输入程序号。
ⅲ.按下软键[OSRH]。
c.方法3。
ⅰ.选择[MEMORY]或者[EDIT]方式。
ⅱ.按下键。
ⅲ.按下[(OPRT)]键。
ⅳ.按下[REWIND]键。
③ 字的插入。
a.插入一个字的步骤如下。
ⅰ.检索或扫描插入位置前的字。
ⅱ.键入将要插入的地址字。
ⅲ.键入数据。
ⅳ.按下[INSERT]键。
b.举例:插入T15。
ⅰ.检索或扫描Z1250.0。如图3-9所示。
图3-9 检索或扫描Z1250.0
ⅱ.键入T15。
ⅲ.按下[INSERT]键。如图3-10所示。
图3-10 插入T15
④ 字的替换。
a.字的替换步骤。
ⅰ.检索或扫描将要替换的字。
ⅱ.输入将要插入的地址字。
ⅲ.输入数据。
ⅳ.按下[ALTER]键。
b.举例:将T15替换为M15。
ⅰ.检索或扫描T15。如图3-11所示。
图3-11 检索或扫描T15
ⅱ.键入M15。
ⅲ.按下[ALTER]键。如图3-12所示。
图3-12 将T15替换为M15
⑤ 字的删除。
a.删除一个字的步骤。
ⅰ.检索或扫描将要删除的字。
ⅱ.按下[DELETE]键。
b.举例:删除X100.0。
ⅰ.检索或扫描X100.0。如图3-13所示。
图3-13 检索或扫描X100.0
ⅱ.按下[DELETE]键。如图3-14所示。
图3-14 删除了X100.0
(2)程序段的删除
程序中的一个段或者几个段可被删除。
① 删除一个程序段。
a.删除一个程序段的步骤。以下的步骤将删除一个程序段直到它的EOB码:光标前进到下一程序段开头的字地址。
ⅰ.检索或扫描将要删除的程序段地址N。
ⅱ.按下[EOB]键。
ⅲ.按下[DELETE]键。
b.举例:删除N01234的程序段。
ⅰ.检索或扫描N01234。如图3-15所示。
图3-15 检索或扫描N01234
ⅱ.按下[EOB]键。
ⅲ.按下[DELETE]键。如图3-16所示。
图3-16 N01234的程序段被删除
② 删除多个程序段。从当前显示的程序段到指定顺序号的程序段都被删除。
a.删除多个程序段步骤。
ⅰ.检索或扫描将要删除的第一个程序段的第一个字。
ⅱ.键入地址N。
ⅲ.键入将要删除的最后一个程序段的顺序号。
ⅳ.按下[DELETE]键。
b.举例:删除从N01234到N56789的程序段的所有内容。
ⅰ.检索或扫描N01234。如图3-17所示。
图3-17 检索或扫描N01234
ⅱ.键入N56789。如图3-18所示。
图3-18 选择被删除的程序段的范围
ⅲ.按下[DELETE]键。如图3-19所示。
图3-19 从N01234到N56789的程序段的所有内容被删除
(3)程序号检索
当内存中存有多个程序时可以检索出其中的一个程序,有以下三种方法。
① 方法1。
a.选择[EDIT]或[MEMORY]方式。
b.按下[PROG]键显示程序屏幕。
c.输入地址O。
d.输入要检索的程序号。
e.按下[OSRH]键。
f.检索结束后,检索到的程序号显示在屏幕的右上角。如果没有找到该程序,就会出现P/S报警No.71(指定的程序号未检索到)。
② 方法2。
a.选择[EDIT]或[MEMORY]方式。
b.按下[PROG]键显示程序屏幕。
c.按下[OSRH]键。此时,检索程序目录中的下个程序。
③ 方法3。该方法检索0001~0015号程序,与机床自动运行的启动信号有关。
a.选择[MEMORY]方式。
b.设置复位状态(*1)。复位状态是自动运行的关闭状态,由自动运行灯(灭)指示。
c.在机床上设定程序号选择信号(从01~15)。如果机床上与程序相关的信号没有设定,就会出现P/S报警No.059(选择的程序号不能在外部的程序号检索中检索)。
d.按下循环启动按钮。当机床侧的信号为00时,表示程序号检索操作没有进行。
(4)程序段号检索
顺序号检索通常用于在程序中间检索某个程序段,以便从该段开始执行程序。例如检索程序O0002中的顺序号02346。如图3-20所示。
图3-20 检索程序O0002中的程序段号02346
① 程序段检索的步骤。
a.选择[MEMORY]方式。
b.按下[PROG]键显示程序屏幕。
c.如果程序包含有要检索的程序段号则执行下面d~g步的操作。如果程序中不含有要查找的程序段号,选择含有要查找的程序段号的程序的程序号。
d.输入地址N。
e.输入要检索的程序段号。
f.按下[NSRH]键。
g.检索完成后,找到的程序段号显示在屏幕的右上角。如果在当前程序中没有找到指定的程序段号,则出现P/S报警No.060(在程序段号检索过程中没有找到要检索的程序段号)。
② 注意点。
a.在检索过程中的操作。那些被跳过的程序段并不影响CNC。这就意味着在跳过程序段中的坐标值M、S、T代码及模态值等数据并不改变。因此,通过程序段号检索命令找到的将要开始执行或者重新开始执行的程序段中,一定要确保含有需要的M、S和T代码及坐标值。通过顺序号检索的程序段通常是从一个过程转换到另一个过程的转移点。当必须检索加工过程中间的一个程序段,以便从该段重新启动程序时,应该用MDI键盘输入所需的M、S、T、G代码及相应的坐标值,并仔细检查机床和CNC后从该点(程序段)启动程序。
b.在检索过程中的检查。在检索过程中执行“程序段的选择跳过”检查。
c.不能在子程序中检索程序段号。在程序段号检索过程中不能执行M98P××××(子程序调用)。如果试图在当前执行的程序中的子程序段中检索一个顺序号时,就会出现P/S报警No.060(在程序段号检索过程中没有找到要检索的程序段号)。例如试图在图3-21中检索N8888,就会出现报警。
图3-21 不能在子程序O5678中检索N8888
(5)程序的删除
存储到内存中的程序可以被删除,一个程序或者所有的程序都可以被一次删除。同时,也可以通过指定一个范围删除多个程序。
① 删除一个程序。可以删除存储在内存中的一个程序。步骤如下。
a.选择[EDIT]方式。
b.按下[PROG]键显示程序屏幕。
c.键入地址O。
d.键入要删除的程序号。
e.按下[DELETE]键。输入的程序号的程序被删除。
② 删除所有程序。删除存储在内存中的所有程序。步骤如下。
a.选择[EDIT]方式。
b.按下[PROG]键显示程序屏幕。
c.键入地址O。
d.键入-9999。
e.按下[DELETE]键。所有的程序都被删除。
③ 删除指定范围内的多个程序。内存中指定的程序号范围中的程序被删除。
a.选择[EDIT]方式。
b.按下[PROG]键显示程序屏幕。
c.以如下格式输入将要删除的程序号的范围:Oxxxx,Oyyyy。其中xxxx代表将要删除程序的起始程序号,yyyy代表将要删除的程序的终了程序号。
d.按下[DELETE]键。删除程序号从No.xxxx到No.yyyy之间的程序。
(6)扩展的零件程序编辑功能
使用扩展的零件程序编辑功能,可以通过软键对存在内存中的程序执行如下操作。
① 拷贝一个完整的程序。通过拷贝可以生成一个新的程序。如图3-22所示。具有程序号xxxx的程序被拷贝并重新创建一个程序号为yyyy的程序。通过拷贝创建的程序除了程序号,其他都和原程序一样。拷贝一个完整程序的步骤如下。
图3-22 拷贝一个完整的程序
a.进入[EDIT]方式。
b.按下功能键。
c.按下软键[(OPRT)]。
d.按下菜单扩展键。
e.按下软键[EX-EDT]。
f.检查拷贝的程序是否已经选择,并按下软键[COPY]。
g.按下软键[ALL]。
h.输入新建的程序号(只用数字键)并按下[INPUT]键。
i.按下软键[EXEC]。
② 拷贝程序的一部分。通过拷贝程序的一部分也可以生成一个新的程序。如图3-23所示,程序号xxxx的程序的一部分被拷贝生成一个新的程序号为yyyy的程序。拷贝操作后,指定编辑范围的程序保持不变。
图3-23 拷贝程序的一部分
拷贝部分程序的步骤如下。
a.进入[EDIT]方式。
b.按下功能键。
c.按下软键[(OPRT)]。
d.按下菜单扩展键。
e.按下软键[EX-EDT]。
f.检查拷贝的程序是否已经选择,并按下软键[COPY]。
g.将光标移动到要拷贝范围的开头,按下软键[CRSR~]。
h.将光标移动到要拷贝范围的末尾,按下软键[~CRSR]或[~BTTM](在后一种情况下,不管光标的位置如何,直到程序结束的程序都将被拷贝)。
i.输入新的程序号(只用数字键)并按下[INPUT]键。
j.按下软键[EXEC]。
③ 移动程序的一部分。通过移动程序的一部分,可以生成一个新的程序。如图3-24所示,程序号为xxxx的程序的B部分被移出并生成了一个新程序,程序号为yyyy,程序号为xxxx的B部分程序被删除。移动部分程序的步骤如下。
图3-24 移动程序的一部分
a.进入[EDIT]方式。
b.按下功能键。
c.按下软键[(OPRT)]。
d.按下菜单扩展键。
e.按下软键[EX-EDT]。
f.检查程序屏幕中将要移动的程序是否被选出并按下[MOVE]键。
g.将光标移动到要拷贝范围的开头,按下软键[~CRSR]。
h.将光标移动到要拷贝范围的末尾,按下软键[~CRSR]或[~BTTM](在后一种情况下,不管光标的位置如何,直到程序结束的程序段都将被拷贝)。
i.输入新程序号(只用数字键)并按下[INPUT]键。
j.按下软键[EXEC]。
④ 合并程序。另外一个程序可以插入到当前程序的任何位置。如图3-25所示,程序号为xxxx的程序被合并到程序号为yyyy的程序中。程序Oyyyy在合并之后保持不变。
图3-25 在指定位置合并一个程序
合并程序步骤如下。
a.进入[EDIT]方式。
b.按下功能键。
c.按下软键[(OPRT)]。
d.按下菜单扩展键。
e.按下软键[EX-EDT]。
f.检查是否选出将要编辑的程序,并按下[MERGE]键。
g.将光标移动到插入另一个程序的位置,按下软键[~CRSR]或[~BTTM](在后一种情况下,显示当前程序的末尾)。
h.输入将要插入的程序号(使用数字键)并按下键。
i.按下软键[EXEC]。在第四步中指定的程序号就被插入到在第三步中指定的光标位置的前面。
⑤ 使用拷贝、移动和合并程序时的注意点。
a.设置编辑范围。使用软键[~CRSR]设置编辑范围的起始点,在使用软键[~CRSR]或[~BTTM]指定编辑程序的终点之前可以任意地改变。如果编辑范围的起始点被设置到编辑范围终点之后,则编辑范围必须对起始点进行重新设定。起始点设定和终点设定在执行使设置无效的操作之前都有效。以下的操作可以使设置无效。
ⅰ.在设定完起始点和终点后,执行编辑操作,而不是地址检索、字检索/扫描和检索程序的起始点等操作。
ⅱ.在起始点和终点设定后,处理过程回到了操作选择。
b.不指定程序号。拷贝和移动程序时,在编辑范围终点设置之后,如果没有指定程序号就按下[EXEC]键,则程序O0000就被注册为工件程序。程序O0000具有如下特点。
ⅰ.程序可以像通常的程序一样进行编辑(不要运行程序)。
ⅱ.如果执行了新的拷贝和移动操作,则在执行时,以前的信息被删除,并注册新的设置信息(程序的全部或者部分在合并时,不删除以前的信息)。然而,被设置为前景操作的程序,不能被注册到背景中,否则会产生P/S报警(No.140)。在注册程序时,会产生一个空白区域。用键删除这个区域。当程序已经无用时,使用通常的操作删除该程序。
c.在系统等待输入程序号时进行编辑。当系统在等待输入程序号时,不能执行任何的编辑操作。
d.程序号码的位数。如果指定了5位或者更多的程序号码,就会产生格式错误。
e.报警。
ⅰ.70:拷贝或者插入程序时若内存不够,拷贝或者插入操作将终止。
ⅱ.101:拷贝、移动或者插入程序时断电,必须清除用来进行编辑的内存。当出现这个报警时,按下键的同时按下键仅删除正在进行编辑的程序。
⑥ 字和地址的替换。替换一个或者多个指定的字。替换操作可以替换程序中指定的字或地址的全部或者只替换其中一部分。
a.替换字或地址的步骤。
ⅰ.进入[EDIT]方式。
ⅱ.按下功能键。
ⅲ.按下软键[(OPRT)]。
ⅳ.按下菜单扩展键。
ⅴ.按下软键[EX-EDT]。
ⅵ.按下软键[CHANGE]。
ⅶ.输入要被替换的字或地址。
ⅷ.按下软键[BEFORE]。
ⅸ.输入新字或地址。
ⅹ.按下软键[AFTER]。
ⅺ.按下软键[EXEC],替换光标后的所有指定的字或地址。按下软键[1-EXEC],搜索并替换光标后的第一个找到的指定字或地址。
按下软键[SKIP],仅搜索光标后的第一个指定的字或地址。
b.举例。
ⅰ.用Y200替换X100:[CHANGE]X100[BEFORE]Y200[AFTER][EXEC]。
ⅱ.用X30替换X100Y200:[CHANGE]X100Y200[BEFORE]X30[AFTER][EXEC]。
ⅲ.用WHILE替换IF:[CHANGE]IF[BEFORE]WHILE[AFTER][EXEC]。
ⅳ.用“,C10”替换X:[CHANGE]X[BEFORE],C10[AFTER][EXEC]。
c.注意事项。
ⅰ.替换用户宏程序。以下的用户宏指令字是可以替换的:IF、WHILE、GOTO、END、DO、BPRNT、DPRNT、POPEN、PCLOS。可以指定用户宏指令的缩写。当使用缩写时,屏幕的显示就像用键输入的一样,即使在软键[BEFORE]和[AFTER]被按下以后也是这样。
ⅱ.要替换的字符数。可以替换最多15个字符(替换前和替换后相同,不能指定16个及以上的字符)。
ⅲ.在替换前和替换后的字必须以地址字符开头,否则会发生格式错误。
(7)用户宏程序的编辑
和通常的程序不同,用户宏程序是按编辑单元进行修改、插入或删除的。用户宏程序可以以简写形式输入。程序中可以加入注释。
① 编辑单元。当编辑已经存在的宏程序时,用户可以将光标移动到下列任何一种字符或符号开头的编辑单元上。
a.地址。
b.以“#”开头的赋值语句。
c.“/”“(”“=”和“;”。
d.IF、WHILE、GOTO、END、DO、POPEN、BPRNT、DPRNT和PCLOS的第一个字符。
屏幕上在以上任何一种字符或符号的前面都有一个空格。
举例:光标放在编辑单元的起始位置。
N001 X#100;#1=123; N002/2 X[12/#3]; N003 X-SQRT[#3/3*[#4+1]]; N004 X-#2 Z#1; N005 #5=1+2-#10; IF[#1NE0]GOTO10; WHILE[#2LE5]DO1; #[200+#2]=#2*10;#2=#2+1; END1;
② 用户宏程序字的缩写。当替换或者插入用户宏指令字时,开始的两个或多个字符可以替换整个字。如:WHILE→WH;GOTO→GO;XOR→XO;AND→AN;SIN→SI;ASIN→AS;COS→CO;ACOS→AC;TAN→TA;ATAN→AT;SQRT→SQ;ABS→AB;BCD→BC;BIN→BI;FI X→FI;FUP→FU;ROUND→RO;END→EN;EXP→EX;THEN→TH;POPEN→PO;BPRNT→BP;DPRNT→DP;PCLOS→PC。
举例如下。
键入WH[AB[#2]LE RO[#3]]。与下面语句具有相同的效果:WHILE[ABS[#2]LE ROUND[#3]]程序也是以这种形式显示的。
(8)背景编辑
当执行一个程序时编辑另一个程序称为背景编辑。编辑方法和通常的编辑方法(前景编辑)一样。背景操作中编辑的程序应该通过以下的操作注册到前景程序的内存中。在背景编辑中,所有的程序都不能被立即删除。
① 背景编辑的操作步骤。
a.进入[EDIT]或者[MEMORY]方式。[MEMORY]方式即使在程序执行时也是允许的。
b.按下功能键。
c.按下软键[(OPRT)],然后按下软键[BG-EDT]。背景操作编辑屏幕(PRO-GRAM(BG-EDIT)显示在屏幕的左上角。
d.在背景操作中编辑程序,方法和在前景操作中一样。
e.编辑完成后,按下软键[(OPRT)],然后按下软键[BG-EDT]。被编辑的程序就注册到前景程序内存中了。
② 在背景操作编辑中的报警。背景编辑出现的报警不影响前景的运行。同样,在前景运行中出现的报警也不影响背景操作。在背景编辑中,如果试图编辑在前景操作中正在执行的程序,就会发生P/S报警(No.140)。另外,如果试图在前景运行时选择正在背景操作中编辑的程序(如子程序调用或者通过外部信号进行的程序号检索),在前景运行中就会发生P/S报警(No.059、No.078)。同理,如果试图在前景运行中选择正在背景操作中编辑的程序,就会在背景中产生一个P/S报警。这两种报警的区别方法是在背景编辑屏幕的数据输入行会显示P/S报警。
(9)口令功能
口令功能[参数No.3202的第4位(NE9)]可以通过参数No.3210(PASSWD)和参数No.3211(KEYWD)将程序锁住,以保护程序No.9000~No.9999。在锁住状态下,除非输入了正确的口令,否则程序No.9000~No.9999将不能被修改。锁住状态意味着参数PASSWD的设置值与参数KEYWD的设置值不同。这些参数中的设置值不显示。当参数PASSWD的设置值与参数KEYWD的设置值相同时就可以解锁。当参数PASSWD显示为0时,表明PASSWD没有设置。
① 锁住和解锁的步骤。
a.锁住。
ⅰ.设置为MDI方式。
ⅱ.设置参数开关为可写。这时,在CNC上显示P/S100报警。
ⅲ.设置参数No.3210(PASSWD),这时就设定为锁住状态。
ⅳ.将参数写入开关置为“禁止写入”。
ⅴ.按下键,解除报警状态。
b.解锁。
ⅰ.置为MDI方式。
ⅱ.设置参数开关为可写。这时,在CNC上显示P/S(No.100)报警。
ⅲ.在参数No.3211(KEYWD)中设置与参数No.3210(PASSWD)相同的值,这时锁住状态解除。
ⅳ.将参数NE9(No.3202#4)设置为0。
ⅴ.将参数写入开关置为“禁止写入”。
ⅵ.按下键,解除报警状态。
ⅶ.程序No.9000~No.9999现在就可以编辑了。
② 设置参数PASSWD。当参数PASSWD中设置非0值时,就设置了锁住状态。然而,参数PASSWD仅在锁住状态尚未设置时(当PASSWD=0或PASSWD=KEYWD),才可以设置。如果在其他情况下设置该参数,就会出现一个不能写入的警告。当设置了锁住状态后(当PASSWD=0,且PASSWD=KEYWD),参数NE9就会自动设置为1。如果在这时试图将NE9改为0,就会出现一个不能写入的警告。
③ 改变参数PASSWD。当锁住状态解除后(当PASSWD=0或PASSWD=KEYWD),就可以更改设置状态。在解锁步骤的第3步后,可以在参数PASSWD中设置一个新的参数,从这时起,必须在KEYWD中设置一个新值才能解除锁住状态。
④ 在参数PASSWD中设置0。当在参数PASSWD中设置0时,显示数字0,并且口令功能被设为无效。换句话说,口令功能可以通过将KEYWD中的值设为与KEYWD中一样的值,或者干脆不设置PASSWD来取消。为了确保不进入锁住状态,必须千万小心不要在参数PASSWD中设置非0值。
⑤ 重新锁住。在锁住状态解除后,可以通过在PASSWD参数中设置一个不同的值来重新设定,或者通过关掉NC电源再打开后将KEYWD复位来设定。注意:一旦设定了锁住状态,参数NE9就不能被设为0,并且参数PASSWD在锁住状态解除之前或者执行清除所有内存的操作之前不能进行修改。在设置PASSWD时要千万小心。