具有重新开始程序块先行处理功能的数值控制器的制作方法

文档序号:6282953阅读:178来源:国知局
专利名称:具有重新开始程序块先行处理功能的数值控制器的制作方法
技术领域
本发明涉及用于控制机械工具的数值控制器。特别地,本发明涉及一种数 值控制器,其中,在生成可执行数据之前从程序中读取命令块,该执行数据临
时存储在先行緩冲器中,并且基于该执行数据执行插值处理;更具体地,本发
明涉及能够缩短先行停止控制的周期时间的数值控制器。
背景技术
在数值控制器中执行先行控制中,直接执行机械加工程序的较后阶段的序 列中的系统变量操作的程序块,而不存储在先行緩冲器中,因此这可能影响执 行数据的处理,该执行数据被分析并临时存储在先行緩冲器中。在该情况下执 行先行停止控制。
在数值控制器中的常规的先行停止控制中,用于该控制的命令作为一个程 序块插入机械加工程序中,并通过该插入的程序块停止该初4戒加工程序的先行 处理(lookahead)(图8a)。在图8a所示的程序示例中,插入先行停止代码的 程序块N14以防止程序块N15被预先读取或先行处理。还存在一种先行停止 代码,可以通过将该先行停止控制的代码插入该机械加工程序中来共同命令机 械加工程序的程序块和该种先行停止代码。然而,在包括先行停止代码的程序 块的全部处理完成之后才停止先行处理(图8b)。在图8b所示的程序示例中, 将是辅助函数(auxiliary function )的M代码作为先行停止代码插入程序块N13 中,以免预先读取程序块N14。此外,存在公知的技术,其中当在机器人控制 方法中调整变量时,重新开始先行处理(见JP 05-218445A )。
存在一个问题如果对一个程序块插入先行停止程序,则该程序块的处理
时间必然被加到机械加工程序的处理时间,因此延长了机械加工时间。由于可 以与机械加工程序一起发出的先行停止代码是辅助函数,而且在程序块的执行 的结尾需要用于可编程控制器的信号操作。从而,执行被延迟,使得机械加工 时间被进一步延长。

发明内容
本发明提供一种数值控制器,该数值控制器能够通过暂停机械加工程序的 读取程序块的分析并且在所读取的程序块的前面的程序块的执行完成时重新 开始暂停阶段的读取的程序块的分析来执行先行控制,以缩短先行控制的周期 时间。
程序块来获得执行数据的先行处理并在緩冲器中存储该执行数据,并且执行所
存储的执行数据来进行数值控制。根据本发明的一个方面,数值控制器包括
从而停止先行处理的暂停代码;暂停装置,用于暂停由所述代码确定装置确定 所述读取的程序块为包括该暂停代码的所述读取的程序块的分析;执行完成确 定装置,用于确定被暂停的程序块的前面的程序块的存储的执行数据的执行是 否完成;及重新开始装置,当由所述执行完成确定装置确定被暂停的程序块的 前面的程序块的存储的执行数据的执行完成时,重新开始被暂停的程序块的分析。
在这种情况下,数值控制器可以进一步包括使用参数来注册(registering) 停止该先行处理的暂停代码的装置。
根据本发明的另一个方面,数值控制器包括代码确定装置,用于确定读 取的程序块是否包括宏变量操作的代码,对于该操作,所述读取的程序块的分 析被暂停从而停止先行处理;暂停装置,用于暂停读取的程序块的分析,所述 读取的程序块由所述代码确定装置确定为包括所述读取的程序块的分析要被 暂停的宏变量操作的代码;执行完成确定装置,用于确定被暂停的程序块的前 面的程序块的存储的执行数据的执行是否完成;及重新开始装置,当由所述执 行完成确定装置确定被暂停的程序块的前面的程序块的存储的执行数据的执 行完成时,重新开始被暂停的程序块的分析。
在这种情况下,数值控制器可以进一步包括使用参数来指示该宏变量的范 围的装置,该宏变量的范围用于确定宏变量操作的代码,对于该宏变量操作, 读取的程序块的分析要被暂停。
此外,数值控制器可以包括使用参数来指示宏变量操作的阶段的装置,对于该宏变量操作,读取的程序块的分析要被暂停。
根据本发明的再一个方面,数值控制器包括代码确定装置,用于确定读 取的程序块是否包括停止先行处理的先行停止代码;代码类型确定装置,用于 确定由所述代码确定装置确定的先行停止代码是否是暂停所述读取的程序块 的分析的代码;执行完成确定装置,用于确定该暂停的程序块的前面的程序块 的存储的执行数据的执行是否完成;及暂停/继续装置,根据由所述代码类型 确定装置确定的和由所述执-f于完成确定装置确定的结果,暂停包含要暂停所述 读取的程序块的分析的代码的所述读取的程序块的分析并重新开始被暂停的 程序块的分析以获得执行数据,或可选择地继续所述读取的程序块的分析以获 得执行数据。
在这种情况下,数值控制器可以进一步包括使用 一个或多个参数来注册一 个或多个先行停止代码的装置。
通过在机械加工程序命令中包括暂停读取的程序块的分析来停止先行处 理的代码,可以比在插入停止该先行处理的程序块的常M^的方法的情况下缩短 用于机械加工程序的周期时间。此外,在被插入机械加工程序的现有程序块中 的常规的先行停止代码中还存在这样的问题在包括先行代码的程序块的处理 完成之后停止该先行处理。但是,通过暂停机械加工程序分析可以消除这个问 题。由于机械加工程序的分析处理被暂停并从该暂停阶段重新开始,而且比常 规的先行控制方法较少耗费(less wastefbl),从而可以进一步缩短周期时间。


图1是根据本发明的一个实施例具有控制机械工具的先行控制功能的数 值控制器的示意图2是表示根据该实施例的分析被暂停并被保存在先行緩冲器中的算法 的流程图3是表示根据该实施例的分析被暂停并不存储在先行緩冲器中的算法 的流程图4是表示根据该实施例包括两种类型的先行停止代码的算法的流程图; 图5是表示从该先行緩冲器读取执行数据并执行该数据的处理的流程图; 图6是表示对于G90(H皮用作停止先行处理的代码的情况的程序示例;图7是表示对于停止先行处理的代码被用作宏变量操作的代码的情况的 程序示例;
图8a和8b表示对于G900被用作停止先行处理的代码的情况的程序示例。
具体实施例方式
根据图1所示的本发明的实施例的数值控制器8提供先行停止代码表4。 先行停止代码表4加载停止先行处理的类型的代码及暂停程序块分析以停止 先行处理的类型的代码。在这些情况下,宏变量可以被用作存储在先行停止代 码表4中的代码。参考图1,当执行时,程序读取/分析装置1连续地读取并分 析当前程序块之前的一个或多个程序块,并将分析的结果加载入先行缓冲器2 中。先行援冲器2加载多条信息,例如用于每个程序块的模式信息、每个轴的 移动、命令的主轴(spindle)速度、进给速度等。图1所示的程序读取/分析 装置1从机械加工程序中一个一个地读取程序块并分析所读取的程序块。当在 先行停止代码表4中注册的先行停止代码出现时,停止机械加工程序的先行处 理。先行停止代码包括已注册的代码和宏变量,例如在图6的机械加工程序示 例中的N14中的G900和在图7的机械加工程序示例中的N14中的#13020。
数值控制器8中的程序块分析表示将作为源代码的程序块转换为目标代 码,即可由计算机识别的执行数据。该转换包括七个类型的处理词法(lexical) 分析(1 ),宏分析(2 ),宏执行(3 ),句法(syntactic )分析(4 ),语义(semantic) 分析(5 ),目标代码生成(6 )以及优化(7 )。词法分析(1 )是用于从数值符 号中划分出字母符号的处理。宏分析(2)表示当词法分析的结果包括宏变量 的特定符号时执行宏分析。分析变量值(variable number)和宏句法,并且如 果在先行停止代码表4中注册的任意变量操作被执行,则停止该分析。宏执行 (3)是已分析的宏的执行。依据该宏程序,根据词法分析的结果重写宏区域。 例如G00X#100是这样含义的信息当该命令被执行时,如果#100的值是 350.0,则将350.0输入到词法分析的结果数据的X地址。句法分析(4)仅用 于确定G命令的数值。语义分析(5)可以由G命令的数值指定该函数,从而 对每个函数能够执行处理。目标代码生成(6)表示语义分析的结果的目标代 码。在本发明的本实施例中,通过连续地先行处理的程序块的前述处理来生成 执行数据。如果没有先行处理是基于宏变量操作执行的,则不执行宏分析(2)和宏执行(3)的转换处理。
如果在程序块中出现暂停程序块分析的类型的任意代码,则数值控制器8 执行在预定的一个前述处理中暂停该程序块分析的处理。对数值控制器8提供 先行停止代码注册装置5和宏变量范围指定装置6。使用参数可以在先行停止 代码注册装置5中注册一个或多个先行停止代码。宏变量范围指定装置6可以 使用参数来指定宏变量的范围,该宏变量用于确定程序块分析的暂停,从而当 搡作#10000到#11000范围内的变量时,可以暂停程序块分析以停止先行处理。 此外,作为变量操作的示例,使用参数还可以指定(1)读取变量的值、(2) 改变变量的内容等也可由参数指定。对于这些指定,可以对数值控制器8提供 宏变量操作阶段指定装置7,宏变量操作阶段指定装置7可以指定仅操作(2 ) 的先行处理被停止,而不允许停止操作(1)的先^f亍处理。这在对数值控制器 8仅提供这些装置5、 6和7中的一个装置时才是必需的。
有一种方法,例如,通过指定作为参数的特定示例的变量值的范围进一步 指定操作方法,包括
参数15010= 13000,
参数15010 = 13000 (或数值例如100被输入), 参数15010 = 0:用于读和写操作,
1:仅用于读操作,
2:仅用于写操作。 例如,基于函数的指定方法,包括
参数15000# 0=1:当偏移(offset)函数的变量被读出和写入时停止先 行处理。
参数15000#1 = 1:仅当偏移函数的变量被读出时停止先行处理。 参数15000#2=1:仅当偏移函数的变量被写入时停止先行处理。 因此,设置参数具有含义,并注册这些参数的一些设置。 图2是表示使用代码的先行处理的算法的流程图,该代码用于程序块分析 的暂停及用于先行处理停止,该程序块分析是由本实施例的数值控制器的处理 器执行的。像G900 —样设置包括暂停程序块分析的类型的先行处理停止的代 码,G900被用在图6的机械加工程序示例中。首先,从机械加工程序读取一个程序块(步骤Al )。确定所读取的程序块是否是程序结尾(步骤A2 )。例如, 通过识别序列号和表示程序结尾的代码可以确定所读取的程序块是否是程序
结尾。在图6所示的机械加工程序示例中,通过识别M30可以识别该程序结 尾,M30是表示程序结尾的辅助函数。如果识别出程序结尾,则机械加工程 序的处理结束。
在步骤A3,确定为数值控制器提供的先行緩冲器是否为满。如果先行缓 沖器是满的,则它等待直到先行緩冲器不再为满(步骤A3)。例如,通过识别 表示位置的指针来确定先行緩冲器是否为满,在该位置先行緩冲器存储程序块 执行数据。如果断定先行緩冲器不满,则确定表示先行处理停止的标记F是否 设置为1 (步骤A4)。如果标记F不是1 (即,如果先行处理没有停止),则分 析所读取的程序块(步骤A5 )。在步骤A5的分析包括词法分析和句法分析。
程序块信息中(步骤A6 )。如杲在步骤A6断定没有任何暂停程序块分析的类 型的先行停止代码,则继续所读取的程序块的分析以生成执4亍数据(步骤A7 )。 以语义分析开始继续步骤A7中的分析。生成的执行数据保存在先行緩冲器中
(步骤A8)。然后,过程返回至开始来读取下一个程序块。
如果在步骤A6断定有暂停程序块分析的类型的先行停止代码,则暂停包 括该代码的程序块的分析(步骤A9)。然后,将用于先行停止的标记设置为1
(步骤AIO)。由于程序块分析被暂停,因此过程返回至识别程序结尾的步骤 A2和确定先行緩冲器是否为满的步骤A3之间的阶段,以免下一个程序块被 读取。
如果在步骤A4断定该标记为1,即先行处理被停止,则确定先行緩冲器 是否为空,即被暂停的程序块前面的程序块的执行数据的执行是否完成(步骤 All),该前面的程序块已存储在该先行緩冲器中。如果在步骤A11确定先行 緩冲器不空,则等待直到该緩冲器为空。如果断定先行緩冲器为空,则重新开 始在步骤A9暂停分析的程序块的分析处理并被继续生成执行数据(步骤 A12)。以语义分析开始继续步骤A12中的分析。生成的执行数据保存在先行 緩冲器中(步骤A13)。由于重新开始并继续暂停的程序块分析处理,因此标 记F重新设置为0以取消先行处理停止状态,以便能够执行下一个程序块的分析(步骤A14)。然后,过程返回至开始来读取下一个程序块。
图3是表示使用宏变量操作作为辨别代码的先行处理的算法的流程图,该 辨別代码用于程序块分析的暂停及用于先行处理停止,该程序块分析是由本实 施例的数值控制器的处理器执行的。首先,从机械加工程序中读取一个程序块 (步骤B1)。确定所读取的程序块是否是程序结尾(步骤B2)。例如,通过识 别序列号和表示程序结尾的代码可以确定所读取的程序块是否是程序结尾。在 图6所示的机械加工程序示例中,通过识别M30可以识别程序结尾,M30是 表示程序结尾的辅助函数。如果识别出程序结尾,则机械加工程序的处理结束。
在步骤B3,确定为数值控制器提供的先行緩冲器是否为满。如果先行緩 沖器是满的,则等待直到先行緩冲器不再为满(步骤B3)。例如,通过识别表 示位置的指针来确定先行緩冲器是否为满,在该位置先行緩冲器存储程序块执 行数据。如果确定先行缓冲器不满,则确定表示先行处理停止的标记F是否设 置为1 (步骤B4)。如果标记F不是1 (即,如果先行处理没有停止),则分析 所读取的程序块(步骤B5)。步骤B5中的程序块分析包括词法分析和宏分析。 确定要暂停程序块分析的类型的任何宏变量操作是否出现在步骤B5所分析的 程序块信息中(步骤B6)。如果在步骤B6中断定没有前述类型的宏变量操作, 则继续所读取的程序块的分析以生成执行数据(步骤B7 )。以宏执行开始继续 步骤B7中的分析。生成的执行数据保存在先行緩冲器中(步骤B8)。然后, 过程返回至开始来读取下一个程序块。
如果在步骤B6断定有暂停程序块分析的类型的宏变量操作,则暂停包括 该宏变量操作的程序块的分析(步骤B9)。然后,先行停止的标记设置为l(步 骤BIO)。由于程序块分析被暂停,因此过程返回至识别程序结尾的步骤B2 和确定先行緩冲器是否满的步骤B3之间的阶段,以免下一个程序块被读取。
如果在步骤B4断定标记F为1,即先行处理停止,则确定先行緩冲器是 否为空(步骤Bll)。如果在步骤Bll断定先行緩沖器不空,则等待直到该緩 冲器为空。如果断定先行緩冲器为空,则重新开始在步骤B9暂停分析的程序 块的分析处理并继续生成执行数据(步骤B12)。以宏执行开始继续步骤B12 中的分析,并且进行执行处理(步骤B13)。由于重新开始并继续暂停的程序 块分析处理,因此标记F重新设置为O以取消先行处理停止状态,从而允许先行处理,以便能够执行下一个程序块的分析(步骤B14)。然后,过程返回至
开始来读取下一个程序块。
图2和3的流程图的区别在于步骤A13和B13。虽然在步骤A13中所获 得的执行数据保存在先行緩冲器中,但是在步骤B13中直接进行执行处理, 而不在先行緩冲器中保存该执行数据。
图4是表示使用在图1的先行停止代码表4中存储的两种类型的代码(用 于暂停预先读取的程序块的分析的代码和用于继续分析处理以生成执行数据 的代码)的先行处理的算法的流程图。首先,从机械加工程序读取一个程序块 (步骤C1)。确定所读取的程序块是否是程序结尾(步骤C2)。例如,通过识
图6所示的机械加工程序示例中,通过识别M30可以识别程序结尾,M30是 表示程序结尾的辅助函数。如果识别出程序结尾,则机械加工程序的处理结束。
在步骤C3,确定对数值控制器提供的先行緩沖器是否为满。如果先行緩 冲器为满,则等待直到先行緩冲器不再为满(步骤C3)。例如,通过识别表示 位置的指针来确定先行緩冲器是否为满,在该位置先行緩冲器存储程序块执行 数据。如果确定先行緩沖器不满,则确定表示先行处理停止的标记F是否设置 为1 (步骤C4)。如果标记F不是1 (即,如果先行处理没有停止),则分析所 读取的程序块(步骤C5 )。步骤C5中的分析包括词法分析和句法分析。确定 暂停程序块分析类型的任何先行停止代码是否出现在步骤C5所分析的程序块 信息中(步骤C6)。如果在步骤C6断定没有先行停止代码,则继续所读取的 程序块的分析以生成执行数据(步骤C7 )。生成的执行数据保存在先行緩沖器 中(步骤C8)。然后,过程返回至开始来读取下一个程序块。
如果在步骤C6断定有先行停止代码,则确定先行停止代码是否为暂停程 序块分析的类型(步骤C9 )。在图6的机械加工程序示例中先行代码G900表 示为暂停程序块分析的类型。此外,图8a和8b表示M900为对所读取的程序 块的分析处理和执行数据的生成的代码。如果在步骤C9断定有暂停程序块分 析类型的先行停止代码,则暂停包括该代码的程序块的分析(步骤C10),并 且标记设置为先行停止的1 (步骤Cll)。由于程序块分析被暂停,因此过程 返回至识别程序结尾的步骤C2和确定先行緩冲器是否满的步骤C3之间的阶段,以免下一个程序块被读取。
如果在步骤C9断定先行停止代码如M900不是暂停程序块分析的类型, 则继续包括这种类型的先行停止代码的程序块的分析(步骤C12)。获得的执 行数据保存在先行緩冲器中(步骤C13)。然后,等待直到緩冲器为空(步骤 C14),并且过程返回至开始。
如果在步骤C4断定标记F为1,即先行处理被停止,则确定先行緩冲器 是否为空(步骤C15)。如果在步骤C15断定先行緩冲器不空,则等待直到緩 冲器为空。如果断定先行缓冲器为空,则重新开始并继续在步骤C10暂停分 析的程序块的分析处理以生成执行数据(步骤C16)。生成的执行数据保存在 先行緩冲器中(步骤C17)。由于重新开始并继续暂停的程序块分析处理,因 此标记F重新设置为0以取消先行处理停止状态,以便能够执行下一个程序块 的分析(步骤C18)。然后,过程返回至开始来读取下一个程序块。
图5是表示从先行緩冲器中读取执行数据并执行该执行数据的处理的算 法的流程图。确定先行缓冲器是否为空。如果先行緩沖器不空,则从先行緩冲 器中取出并执行该执行数据。每次一块接一块的或每次多块的出取在先行緩冲 器中存储的执行数据并执行。
图6表示G卯O被用作停止先行处理的代码的情况的机械加工程序示例。 例如,"G90 G00 X0.Y0.;,,是机械加工程序的开始程序块,"G41 D10 G01 X100 Y100 F500.;"是下一个程序块。D10是工具直径校正值。"M30;,,是机 械加工程序的最后的程序块。图6中所示的机械加工程序由21个程序块组成。 变量#13010是宏变量,如果内容改变,该宏变量可以改变工具直径校正的第 十偏移值,并且指示#13010加载变量#100和0.5的和。如果在程序块分析中 辨别出G900,则暂停程序的分析。"(CHANGE VALUE-D10)"(改变值= D10)是用于改变D10的值的帮助文本。
图7表示辨别程序块分析的暂停的代码被用作宏变量操作的代码的情况 的机械加工程序示例。当由程序块分析辨别出N14的宏变量操作的代码时, 暂停程序块分析。当程序块N13的执行完成时,从分析被暂停的程序块N14 重新开始分析,并且也重新开始先行处理。
权利要求
1. 一种数值控制器,通过预先地执行连续地读取并分析才几械加工程序的 程序块来获得执行数据和在緩沖器中存储该执行数据的先行处理,并且执行所存储的执行数据来进行数值控制,所述数值控制器包括代码确定装置,用于确定读取的程序块是否包括暂停所述读取的程序块的 分析从而停止该先行处理的暂停代码;暂停装置,用于暂停由所述代码确定装置确定为包括该暂停代码的所述读 取的程序块的分析;执行完成确定装置,用于确定在被暂停的程序块的前面的程序块的存储的 执行数据的执行是否完成;和重新开始装置,当由所述执行完成确定装置确定在被暂停的程序块的前面 的程序块的存储的执行数据的执行完成时,重新开始被暂停的程序块的分析。
2. 根据权利要求1所述的数值控制器,进一步包括使用参数来注册停止 先行处理的该暂停代码的装置。
3. —种数值控制器,通过预先地执行连续地读取并分析机械加工程序的 程序块来获得执行数据和在緩冲器中存储该执行数据的先行处理,并且执行所 存储的执行数据来进行数值控制,所述数值控制器包括代码确定装置,用于确定读取的程序块是否包括所述读取的程序块的分析 被暂停从而停止该先行处理的宏变量操作的代码;暂停装置,用于暂停读取的程序块的分析,所述读取的程序块由所述代码 确定装置确定为包括所述读取的程序块的分析被暂停的宏变量操作的代码;执行完成确定装置,用于确定在被暂停的程序块的前面的程序块的存储的 执行数据的执行是否完成;和重新开始装置,当由所述执行完成确定装置确定在^^皮暂停的程序块的前面 的程序块的存储的执行数据的执行完成时,重新开始被暂停的程序块的分析。
4. 根据权利要求3所述的数值控制器,进一步包括使用参数来指定宏变 量的范围的装置,该宏变量的范围用于确定该读取的程序块的分析被暂停的宏 变量操作的代码。
5. 根据权利要求3所述的数值控制器,进一步包括使用参数来指定该读取的程序块的分析被暂停的宏变量操作的阶段的装置。
6. —种数值控制器,通过预先地执行连续地读取和分析机械加工程序的 程序块以获得执行数据和在援冲器中存储该执行数据的先行处理,并且执行所 存储的执行数据来进行数值控制,所迷数值控制器包括代码确定装置,用于确定读取的程序块是否包括停止该先行处理的先行停 止代码;代码类型确定装置,用于确定由所述代码确定装置确定的该先行停止代码 是否是暂停所述读取的程序块的分析的代码;执行完成确定装置,用于确定在被暂停的程序块的前面的程序块的存储的 执行数据的执行是否完成;和暂停/继续装置,#4居由所述代码类型确定装置确定的和由所述执行完成 确定装置确定的结果,暂停包含要暂停所述读耳又的程序块的分析的代码的所述 读取的程序块的分析并重新开始被暂停的程序块的分析以获得该执行数据,或 可选择地继续所述读取的程序块的分析以获得该执行数据。
7. 根据权利要求6所述的数值控制器,进一步包括使用一个或多个参数 来注册一个或多个先行停止代码的装置。
全文摘要
本发明提供一种数值控制器。该数值控制器通过暂停机械加工程序的读取的程序块的分析并在所读取的程序块的前面的程序块的执行完成时重新开始在暂停阶段的所读取的程序块的分析来执行先行控制。该数值控制器预先连续地读取并分析机械加工程序的程序块,将分析的程序块存储在缓冲器中,然后执行所存储的程序块。该数值控制器包括确定所读取的程序块是否包括暂停程序块的分析的先行停止代码的装置;当先行停止代码被确定时暂停程序块的分析的装置;确定在被暂停的程序块的前面的程序块的执行是否完成的装置;和当在被暂停的程序块的前面的程序块的执行完成时重新开始被暂停的程序块的分析的装置。
文档编号G05B19/4155GK101311857SQ20081010906
公开日2008年11月26日 申请日期2008年5月23日 优先权日2007年5月24日
发明者细川匡彦, 芳贺斌 申请人:发那科株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1