数值控制装置的制作方法

文档序号:17583879发布日期:2019-05-03 21:09阅读:103来源:国知局
数值控制装置的制作方法

本发明涉及一种数值控制装置,特别是涉及一种能够安全地追加独特功能的数值控制装置。



背景技术:

希望对数值控制装置追加机床的状态监视、轴的高速控制、紧急情况下的安全功能这样的独特功能。为了实现这种愿望,需要用于在加工程序运行过程中等任意定时登录任务的接口、使特定处理在存储器上常驻来反复执行的机制等。

在通用的多任务操作系统中,能够进行在任意的定时对任务进行登录、启动、停止、删除的操作,向软件的开发者提供了根据目的、任务执行状况来进行这样的任务控制的接口。另外,通过指定任务的启动周期、优先度,还能够管理多个任务的执行顺序、执行时间,从而能够更精细地调整系统动作。

例如在日本特开2000-293386号公报中记载了以下一种操作系统:在判断为当前存储器余量不足以执行新任务的情况下,计算任务利用率,使任务利用率最低的执行中的任务停止,反复进行上述计算和任务的停止直到出现空闲为止。

然而,数值控制装置要求比通用的操作系统更高的可靠性、安全性。因此,以往的数值控制装置被设计为:以预先登录要执行的任务为前提,调整任务的切换定时等,使得存储器的使用率、cpu的运行率保持为恰当的值。换言之,在以往的数值控制装置中并未设想在用户的任意的定时进行任务的登录、启动等。

如果向这样以往的数值控制装置简单地追加用于任意地控制任务的接口,有可能产生意想不到的行为的变化。例如,考虑由于在任意的定时登录、启动任务而产生轴控制处理的延迟、通信速度的降低、由存储器用尽引起的系统错误等。由此,有可能使数值控制装置的可靠性、动作的稳定性降低。因此,要求一种能够在确保可靠性、安全性的同时任意地控制任务的接口。



技术实现要素:

本发明是为了解决这样的问题点而作出的,其目的在于提供一种能够安全地追加独特功能的数值控制装置。

本发明的一个实施方式的数值控制装置能够提供接口,该接口进行用于追加独特功能的安全的任务控制,该数值控制装置具有:存储器管理部,其将上述任务所执行的程序在存储器上展开或者初始化,分析上述程序来取得上述程序的信息;执行时间计算部,其计算上述任务的执行时间;执行条件设定部,其根据上述存储器管理部以及上述执行时间计算部的执行结果,设定上述任务的执行条件;任务监视部,其监视运算单元的状态,决定用于分配上述任务的上述运算单元;以及任务控制部,其根据上述执行条件,在上述分配的上述运算单元中进行上述任务的登录和启动。

在本发明的一个实施方式的数值控制装置中,上述任务控制部根据指令使已启动的上述任务停止。

在本发明的一个实施方式的数值控制装置中,上述任务控制部根据指令删除已停止的上述任务。

在本发明的一个实施方式的数值控制装置中,上述任务监视部根据多个上述运算单元的空闲时间、休眠或打盹模式的时间,决定用于执行上述任务的上述运算单元。

在本发明的一个实施方式的数值控制装置中,在上述存储器管理部无法将上述程序在上述存储器上展开的情况下或上述任务监视部无法决定用于执行上述任务的运算单元的情况下输出通知。

根据本发明,能够提供一种能够安全地追加独特功能的数值控制装置。

附图说明

通过参照附图对以下的实施例进行说明,本发明的上述和其它的目的以及特征会更加明确。在这些附图中:

图1是表示数值控制装置的功能结构的框图。

图2是表示任务的登录处理的结构要素的框图。

图3是表示将执行程序配置在存储器的方法的图。

图4是表示任务的启动处理的结构要素的框图。

图5表示正在执行任务的状况。

图6是表示任务的停止处理的结构要素的框图。

图7是表示任务的删除处理的结构要素的框图。

图8表示实施例的任务的登录处理。

图9表示实施例的任务的启动处理。

图10表示实施例的任务的停止处理。

图11表示实施例的任务的删除处理。

具体实施方式

使用附图说明本发明的实施方式的数值控制装置100。图1是表示数值控制装置100的功能结构的框图。

数值控制装置100具有任务控制部110、加工程序分析部120、执行数据变换部130、执行控制部140、轴驱动部150、存储器管理部160、执行时间计算部170、执行条件设定部180以及任务监视部190。典型的数值控制装置100具有中央处理装置(cpu)、存储装置以及输入输出装置等,通过由cpu执行存储于存储装置的程序,逻辑上实现这些处理部。

首先,说明作为数值控制装置的典型结构要素的任务控制部110、加工程序分析部120、执行数据变换部130、执行控制部140以及轴驱动部150。

任务控制部110进行任务的登录、启动、停止、删除这样的任务操作以及任务的调度、任务的资源管理。

加工程序分析部120读入加工程序对每个程序块进行词法分析,将与加工有关的指令输出到执行数据变换部130。另外,在本实施方式中,设为在加工程序内能够记载与任务有关的指令。与任务有关的指令包含构成执行程序的指令群以及与任务的登录、启动、停止、删除有关的指令。将执行程序输出到执行数据变换部130。将与任务的登录、启动、停止、删除有关的指令输出到任务监视部190。

执行数据变换部130将与加工有关的指令变换为执行形式的二进制数据,并输出给执行控制部140。另外,在输入了执行程序的情况下,将执行程序的指令群变换为执行形式的二进制数据,并输出到存储器管理部160。

执行控制部140基于执行形式的二进制数据进行插值处理,计算轴移动量并输出给轴驱动部150。

轴驱动部150根据由执行控制部140计算出的移动量,控制电流和电压来驱动轴。

接着,说明作为本实施方式的数值控制装置100独特具备的结构要素的存储器管理部160、执行时间计算部170、执行条件设定部180以及任务监视部190。根据这些结构要素,实现作为本发明的特征功能的任务登录处理、任务启动处理、任务停止处理以及任务删除处理。

如图2所示,与任务的登录处理相关联的结构要素主要为存储器管理部160、执行时间计算部170以及执行条件设定部180。

存储器管理部160暂时保存从执行数据变换部130输出的任务的执行形式的二进制数据,并计算任务执行的程序的大小。另外,计算存储器上的空闲区域,决定将程序在存储器上展开的方法。当在存储器上能够确保能够将整个程序展开的连续的空闲容量的情况下,将程序在该空闲区域中展开(图3的上图)。在无法确保能够将整个程序展开的连续的空闲容量,但是如果将多个空闲区域加在一起能够展开整个程序的情况下,将程序分割为多个片段并对分割后的程序附加链接信息,然后将分割后的程序在该多个空闲区域中展开(图3的中图)。链接信息典型地是表示下一个要读取的程序片段的开头地址的信息,附加在各程序片段的末尾。在不存在能够将整个程序展开的连续的空闲容量的情况下(图3的下图),通过报警等手段通知给用户。也可以使用户选择是否在不登录任务的状态下继续运行,根据选择结果使运行继续或中止。

并且,存储器管理部160分析程序来确定链接信息、所使用的变量的数量以及变量的类型等,根据所确定的信息来计算任务进行动作所需的资源,将计算出的资源通知给任务控制部110。此外,作为代表性的资源,例如存在堆栈大小、用户权限、账户信息等。任务控制部110确认是否能够确保需要的资源,将确认结果通知给存储器管理部160。

此外,关于执行周期、优先度,除了由存储器管理部160进行计算以外,可以在加工程序中预先设定,还可以由用户预先设定为参数。在加工程序中记载的执行周期、优先度能够经由存储器管理部160、执行时间计算部170来取得。

存储器管理部160在能够确保资源的情况下,将展开了程序的地址、程序大小、任务的进入点(在任务已启动时开始进行处理的初始代码)等信息通知给执行时间计算部170、执行条件设定部180。

另一方面,在无法确保资源的情况下,进行与上述无法确保将整个程序展开的连续的空闲容量的情况相同的处理。

执行时间计算部170根据由存储器管理部160通知的上述信息,推定所登录的任务的执行时间。例如,能够将程序内包含的每个命令的消耗时间(执行命令花费的时钟数)乘以任务能够执行的命令数而得到的值设为执行时间。此外,关于通过循环、子程序(子例程)调用等重复执行的命令群,对执行次数的时间进行累计。执行时间计算部170将计算出的执行时间作为任务信息通知给执行条件设定部180。

执行条件设定部180将从存储器管理部160、执行时间计算部170通知的上述信息分类为任务的登录所需的信息与任务的启动所需的信息,并通知给任务控制部110,由此请求登录新的任务。任务登录所需的信息例如是指任务的执行周期、优先度、堆栈大小、进入点等。任务的启动所需的信息例如是指执行程序的大小、任务的执行时间等。

优选任务控制部110能够根据任务的执行时间来调整任务的执行周期。在任务的执行时间>任务的执行周期的情况下,任务无法正常进行动作的可能性大。因此,在该情况下,如果可能则变更任务的执行周期,使得任务的执行时间≤任务的执行周期。如果不能,则将任务的执行周期尽可能设定为长的时间为好。

如图4所示,与任务的启动处理相关联的结构要素主要为任务监视部190。

如果cpu为多核心,则任务监视部190始终监视各核心的执行状态,决定能够确保所登录的任务的执行时间的核心。例如,如图5所示,测量各核心在执行周期内的空闲时间(或者也可以是休眠(sleep)、打盹(doze)模式的时间),将任务的执行时间≤空闲时间的核心作为登录目的地提取出。在提取出多个核心的情况下,能够将任务分配给在执行周期内空闲时间最长的核心。在上述判断中也可以将多个执行周期的空闲时间的平均值、累计值与任务的执行时间进行比较。例如在图5的示例中,核心1的空闲时间(用粗虚线表示)的累计值最大,因此判断为处理时间最富余。在该情况下,任务监视部190将新的任务的分配目的地决定为核心1。

如果决定了任务的分配目的地,则任务监视部190委托任务控制部110来启动该任务。然后,任务控制部110启动由任务监视部190指定的任务。

此外,当在所有的核心中空闲时间(或其平均值、累计值等)较少从而无法确保由执行时间计算部170计算出的任务的执行时间的情况下,通过报警等手段通知给用户。也可以由用户选择是否在不登录任务的状态下继续运行,根据选择结果使运行继续或中止。

或者,可以分配给优先度与新任务相接近的其它任务已经动作的核心(能够以轮询调度的方式在易于平均分配执行时间的环境下进行动作),也可以分配给已经动作的任务的数量较少的核心(能够在由于登录新的任务而受到影响的其它任务较少的环境下进行动作)。

如图6所示,与任务的停止处理相关联的结构要素主要为任务监视部190。

当从加工程序分析部120通知了特定任务的停止指令时,任务监视部190委托任务控制部110停止该任务。然后,任务控制部110使任务监视部190指定的任务停止。此外,优先在任务执行过程中的一系列的处理已完成的时间点执行针对任务控制部110的委托停止任务的通知。这是因为当在执行过程中停止任务时,有可能在存储器上残留有不匹配的数据或机械的行为变得不稳定。

如图7所示,与任务的删除处理相关联的结构要素主要为任务监视部190、存储器管理部160。

当从加工程序分析部120通知了特定任务的删除指令时,任务监视部190确认该任务已停止,如果已停止则委托任务控制部110删除该任务,并通知给存储器管理部160。

当从任务监视部190通知了特定任务的删除委托时,存储器管理部160确定该任务执行的程序,确认其它任务未使用该程序。在其它任务未使用的情况下,删除程序,并将存储器初始化(释放)。另一方面,在其它任务正在使用的情况下,将程序保留在存储器上或者仅将一部分不需要的存储器区域初始化而结束处理。

<实施例>

使用图8至图11说明数值控制装置100的一个实施例。本实施例中的数值控制装置100根据在加工程序内记述的指令对任务进行登录、启动、停止以及删除。

(任务的登录)

如图8所示,在本实施例中,在加工程序内能够记载构成执行程序的指令群以及任务的登录指令(图8中由虚线包围的部分)。“@@create[a]”为任务[a]的登录指令。“prioritylow”为将任务优先度设定为低的命令。“execcycle32”为将任务的执行周期设定为32的命令。而且,从“if……”到“endif;”为止的程序块为执行程序。

任务的登录指令以及构成执行程序的指令群由加工程序分析部120进行词法分析。另外,将构成执行程序的指令群在由执行数据变换部130变换为执行形式的二进制数据之后,输出到存储器管理部160。

以加工程序中的一个程序块“g110c50.0;”为例,表示词法分析处理和二进制数据变换处理的一例。首先,加工程序分析部120将上述程序块的字符串分割为“g”“110”“c”“50.0”“;”。关于“g”,解释为表示数值控制装置的准备功能的代码。关于“110”,解释为表示准备功能中的周边轴控制的代码。关于“c”,解释为用于设定c这样的周边轴的地址的代码。关于“50.0”,解释为在c的地址中存储50.0这样的浮点数的代码。关于“;”,解释为表示程序块结束的代码。

接着,执行数据变换部130根据词法分析结果生成二进制数据。首先,执行数据变换部130例如生成用于指定周边轴控制的二进制“0x36d00000”。接着,生成附加了c的地址的二进制“0x00001000”。最后,根据这些数据生成执行形式的二进制数据“0x36d010000”,并输出到存储器管理部160。

存储器管理部160计算所取得的执行形式的二进制数据所使用的存储器大小。在具有能够将二进制数据展开的存储器的空闲容量的情况下,在存储器中登录执行形式的数据。在不存在空闲容量的情况下,通过报警或警告等向用户通知无法登录任务。

另外,存储器管理部160将表示任务的各种属性的信息通知给执行时间计算部170、执行条件设定部180。执行时间计算部170计算任务的执行时间,并通知给执行条件设定部180。执行条件设定部180将表示任务的各种属性的信息和执行时间通知给任务控制部110来委托登录的任务。

(任务的启动)

如图9所示,在本实施例中,能够在加工程序内记载用于启动任务的指令(图9中国由虚线包围的部分)。“@@start[a]”为任务[a]的启动指令。“@@start[b]”为任务[b]的启动指令。

加工程序分析部120如果解释出任务启动指令,则对任务监视部190通知启动所指定的任务。在将还未登录的任务或已经启动的任务指定为启动对象的情况下,任务监视部190通过报警或警告等向用户通知无法启动任务。

任务监视部190监视在cpu的各核心进行动作的所有任务的执行状态,将任务分配给处理时间最富余的核心。此外,当在全部cpu中没有执行新任务的裕度的情况下,不启动任务而通过报警或警告等向用户通知无法启动任务。

(任务的停止)

如图10所示,在本实施例中能够在加工程序内记载停止任务的指令(图10中由虚线包围的部分)。“@@hold[a]”为任务[a]的停止指令。

加工程序分析部120如果解释出任务停止指令,则对任务监视部190通知停止所指定的任务。在将已经停止的任务指定为停止对象的情况下,任务监视部190通过报警或警告等向用户通知任务已经停止。

(任务的删除)

如图11所示,在本实施例中能够在加工程序内记载用于删除任务的指令(图11中由虚线包围的部分)。“@@delete[a]”为任务[a]的删除指令。

如果加工程序分析部120解释出任务删除指令,则对任务监视部190通知删除所指定的任务。在将不存在的任务或动作中的任务指定为删除对象的情况下,任务监视部190通过报警或警告等向用户通知无法删除任务。

如果被指定的任务所执行的程序未被其它任务使用,则存储器管理部160从存储器上删除该程序的执行形式的数据。如果被其它任务使用,则从存储器上仅删除一部分的不需要的执行形式的数据。

根据本实施方式,在数值控制装置100中能够提供一种用于追加独特功能的安全的任务控制接口。

以上说明了本发明的实施方式,但是本发明并不仅限于上述实施方式或实施例,通过施加适当的变更能够以各种方式来实施。

例如,在上述实施方式中,表示了任务监视部190在cpu为多核心的情况下决定成为任务分配目的地的核心的处理。然而,本发明并不限于此,例如在存在多个cpu时决定成为任务分配目的地的cpu,或者在存在多个信息处理装置时决定成为任务分配目的地的信息处理装置的情况下,也能够进行相同的处理。在本发明中,将通过这样的处理决定的核心、cpu以及信息处理装置总称为执行任务的运算单元。

另外,在上述实施例中表示的任务的登录、启动、停止以及删除命令只是一个例子,能够以其它任意的形式进行记述。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1