控制装置的制作方法

文档序号:19384667发布日期:2019-12-11 00:47阅读:151来源:国知局
控制装置的制作方法

本发明涉及控制装置,特别是涉及能够在多处理器或多核处理器等多个处理器之间共享资源的控制装置。



背景技术:

一般情况下,控制机器人或机床等工业机械(以下,简单地称为机械)的控制装置具有进行各种数据的备份的功能。例如,控制装置在检查出因停电等使得电源切换为ups(无停电电源装置)时,将控制装置的再次开启所需的内存上的数据备份到预定的存储设备。之后,控制装置停止来自ups的电源供给。即,控制处理执行关机(shutdown)处理。此外,控制装置不仅在产生停电这样的事件时,而且是定期执行上述那样的备份。由此,控制装置提高包括该控制装置的系统的可用性。

若在备份的数据中存在不整合或不良,则在再次开启时产生机械无法启动,或机械不正常动作等情况。在这样的情况下,可能产生加工不良或压坏等,结果可能产生重大的损害。此外,如果备份了整合的数据或正常的数据,则可以向具有与备份了该数据的机械和控制装置一样的机械和控制装置的其他系统移植该数据。由此,比较简单地进行移植目的地的系统的启动。

在具有多处理器或多核处理器的控制装置中,有时从多个处理器或核同时产生对处于内存上的备份对象的数据的访问或对备份目的地的存储设备的访问。例如如图1所示,处理器#2对内存上的数据进行访问时,或处理器#3对存储设备进行访问时,处理器#1将内存上的数据备份到存储设备。这样的情况下,可能无法实现保证数据的整合性的备份。即,处理器#1可能无法正常地备份数据。或者,备份花费非常长的时间。

为了避免这样的情况,一般情况下,控制装置具有对从多个处理器或核针对内存或存储设备等的资源的访问进行管理的机构(使用了日本特开昭和62-219058号公报所公开那样的信号量(semaphore)的排他控制机构等)。但是,因具有较多的处理器或核,在访问处理具有复杂的依存关系的系统中,访问管理变得非常复杂。这里所谓依存关系表示某个处理器(或核)对特定的资源的访问与由其他处理器(或核)执行的处理相互竞争,或影响的关系性。对这样的访问处理的依存关系进行解析、或对执行访问处理的程序的每一个安装排他控制用的程序非常消耗工数,成为开发者的负担。此外,因安装排他控制用的程序而产生的开销造成的性能的降低、成本量的增加也成为问题。

通用的计算机用操作系统提供了快照(snapshot)或休眠(hibernation)这样的、将内存上的数据备份到规定的存储设备的功能。但是,这样的功能是直接备份任意瞬间的内存上的数据的功能,无法保证内存上的数据的整合性。

例如如图2所示,具有四个成员变量的构造体被定义为一个数据集。并且在控制装置执行某个指令时,这四个成员变量全部被更新。该情况下,假设在更新到第三个成员变量,第四个成员变量还未更新的状态下执行快照功能时,备份的数据集无法保证数据的整合性。也就是说,所谓保证数据的整合性表示指令的执行结果为完全反映到该指令的执行所关联的所有数据(前一个示例中的四个成员变量)的状态。

快照或休眠这样的功能对于不良的调查、从系统故障的快速的再启动是有效的。但是,这样的功能不适合要求严格地保证数据的整合性的备份用途。特别是,在实时性高,且作为数据集的更新频率高的工业机械的控制装置中,难以采用快照或休眠这样的功能。

还考虑如下情况:在数据集完全更新之前在各处理器间或各核间进行等候,由此保证数据的整合性。但是,一般情况下,在数据集完全更新之前,为了在各处理器间或各核间进行等候,需要在由各处理器或各核执行的程序内安装用于进行等候的命令。此外,在各处理器间或各核间,若每当进行数据集的更新时就进行等候,则性能可能大幅降低。

此外,有时在多个处理器或核协作而进行数据更新处理那样的情况下,若在任意时刻进行备份则产生数据的不整合。例如如图3所示,考虑如下情况:以通过某个序列的执行而连动地更新的方式来设计数据集data_set#1以及data_set#2。该情况下,若在处理器#1完成data_set#1的更新,处理器#2没有完成data_set#2的更新的状态下执行备份,则在data_set#1与data_set#2之间产生不整合。

这样,在任意时刻进行数据的备份的以往技术中,难以保证数据的整合性。这并不限于内存内容的备份,而是在输入输出存储于存储设备或便携设备等的数据时、或执行关机序列时也同样产生的问题。此外,即使在备份目的地和输入输出目的地的存储设备或设备中,也需要进行访问管理。如此,在多处理器或多核的处理器运转的信息处理系统,特别是在实时性高的工业机械的控制装置中,备份或数据输入输出可以说是非常困难的处理。

从这样的背景出发,以往,在工业机械的控制装置中,多数情况下在接通控制装置的电源之后,在控制装置通过单处理器或单核进行动作的阶段实施数据的备份和输入输出。在工业机械中,强烈要求数据的整合性,并且应该备份的参数等数据的数量非常多。但是,只是为了数据的备份和数据的输入输出而重新接通控制装置的电源对周边设备(例如,致动器、计量设备和电动机放大器等)的负担较大。并且,重新接通控制装置的电源对制造工序的影响也较大,是无用的作业。



技术实现要素:

本发明用于解决这样的课题,其目的在于提供一种控制装置,能够在多处理器或多核处理器等多个处理器间安全地共享资源。

本发明的一实施方式涉及的控制装置,具有分别管理资源、或共享资源的多个处理器,所述控制装置具有:第一处理器,其执行对所述资源之间的整合性造成影响的处理;以及第二处理器,所述第二处理器在接收了请求开始所述第一处理器进行的所述处理的请求消息时,根据所述处理的内容,执行用于维持所述资源之间的整合性的序列处理。

本发明的一实施方式涉及的控制装置的所述第一处理器执行内存上的数据的备份处理作为所述处理。

本发明的一实施方式涉及的控制装置的所述第一处理器执行关机处理作为所述处理。

本发明的一实施方式涉及的控制装置具有:请求消息收发单元,其对所述第二处理器通知请求开始所述处理的请求消息;就绪消息收发单元,其对所述第一处理器通知表示受所述处理的影响的序列处理完成的就绪消息;以及结束消息收发单元,其对所述第二处理器通知表示所述处理完成的结束消息,所述第一处理器在通知所述请求消息之后为待机状态,在通知所述就绪消息之后再次开始动作,所述第二处理器在通知所述就绪消息之后为待机状态,在通知所述结束消息之后再次开始动作。

通过本发明,可以提供一种控制装置,能够在多处理器或多核处理器等多个处理器之间安全地共享资源。

附图说明

通过参照附图的以下实施例的说明可以清楚本发明的所述以及其他目的和特征。这些图中:

图1是表示产生数据的不整合的示例的图。

图2是表示产生数据的不整合的示例的图。

图3是表示产生数据的不整合的示例的图。

图4是表示控制装置的功能和动作的图。

图5是表示控制装置的功能和动作的图。

图6是表示控制装置的动作的图。

图7是表示控制装置的功能和动作的图。

图8是表示控制装置的动作的图。

图9是表示控制装置的硬件结构的图。

图10是表示各处理器的关系的图。

具体实施方式

<实施方式1>

图9是表示本发明的实施方式1涉及的控制装置1的概略硬件结构图。控制装置1例如是通过读入程序而进行机床或机器人等机械的控制的数值控制装置。控制装置1具有多个处理器11(在本图中例示11a、11b两个)、rom(readonlymemory)12、ram(randomaccessmemory)13、非易失性存储器14、接口18、总线10、轴控制电路16、以及伺服放大器17。接口18例如与操作盘60等连接。

处理器11是对控制装置1进行整体控制的处理器。处理器11经由总线10读出存储于rom12的系统程序,按照系统程序来对控制装置1整体进行控制。

在本实施方式中,控制装置1具有多个处理器11(11a、11b)。各处理器11(11a、11b)例如相当于多处理器环境下的各处理器、多核处理器中的各核。

rom12预先存储用于执行机械的各种控制等的系统程序。

ram13暂时存储临时的计算数据或显示数据、操作员经由操作盘60输入的数据等。ram13例如是dram(dynamicrandomaccessmemory)。

非易失性存储器14例如通过未图示的电池而被备份。因此,即使断开控制装置1的电源,非易失性存储器14也可保持存储状态。非易失性存储器14例如是通过电池而被备份的sram(staticrandomaccessmemory)。非易失性存储器14例如用作ram13上的数据的备份用的存储设备。

轴控制电路16控制机械的动作轴。轴控制电路16接收处理器11输出的轴的移动指令量,将轴的移动指令输出给伺服放大器17。

伺服放大器17接收轴控制电路16输出的轴的移动指令,驱动伺服电动机50。

伺服电动机50由伺服放大器17来驱动而使机械的动作轴工作。伺服电动机50典型来说内置位置/速度检测器。位置/速度检测器输出位置/速度反馈信号。该位置/速度反馈信号反馈给轴控制电路16,由此,进行位置/速度的反馈控制。

在图1中,分别示出了一个轴控制电路16、一个伺服放大器17、以及一个伺服电动机50。但是,实际上以成为控制对象的机械具备的轴数量的量来分别准备轴控制电路16、伺服放大器17、以及伺服电动机50。例如,有时在对具有六轴的机器人进行控制的情况下,各轴对应的轴控制电路16、伺服放大器17、以及伺服电动机50合计准备六组。

操作盘60是具有显示器、硬件按键等的数据输入输出装置。操作盘60将经由接口18从处理器11接收到的信息显示于显示器。操作盘60将从硬件按键等输入的指令或数据等经由接口18转发给处理器11。

图4是表示本实施方式中的控制装置1的概略功能和动作的框图。控制装置1具有:请求消息收发单元101、序列处理完成判定单元102、就绪消息(readmessage)收发单元103、以及结束消息收发单元104。请求消息收发单元101、序列处理完成判定单元102、就绪消息收发单元103、以及结束消息收发单元104可以作为处理器11的一个功能而以硬件来实现。此外,请求消息收发单元101、序列处理完成判定单元102、就绪消息收发单元103、以及结束消息收发单元104例如也可以通过处理器11执行存储于rom12、ram13、或非易失性存储器14的程序来实现。

图4的处理器11a(处理器#1)、以及处理器11b(处理器#2)分别管理ram13上的各资源。在本实施例中,如图10所示,处理器11a和处理器11b分别独立地管理一个数据集中的不同的数据(数据#1、数据#2)。

请求消息收发单元101从处理器11a(任意的处理器或核。在图4中是处理器#1)向处理器11b(其他所有的处理器或核的每一个。在图4中是处理器#2)发送请求消息。处理器11a与处理器11b是一对多的关系。

所谓请求消息是消息的发送者(处理器11a)向接收者(处理器11b)通知执行备份处理的主旨的消息。在请求消息中包含确定备份对象的数据(包含数据集)的信息(内存块的索引)。

发送请求消息之后,请求消息收发单元101将处理器11a设为等待执行备份处理的状态(待机状态)。

接收到请求消息的处理器11b将请求消息的内容通知给序列处理完成判定单元102。

序列处理完成判定单元102判定由请求消息的接受者(处理器11b)执行的序列处理是否完成。这里,序列处理是与请求消息的内容关联的处理。也就是说,处理器11b确定访问请求消息所含的内存块的索引的数据,结束该数据有关的序列处理。

在判断为序列处理完成时,序列处理完成判定单元102将处理器11b设定为待机状态,将通知发送给就绪消息收发单元103。

就绪消息收发单元103从请求消息的接收者(处理器11b)向请求消息的发送者(处理器11a)发送就绪消息。

所谓就绪消息是对请求消息的发送者(处理器11a)通知请求消息的发送者(处理器11a)执行的与备份处理关联的序列处理中的、请求消息的接收者(处理器11b)相关的部分的处理完成的消息。

处理器11a判断是否从成为请求消息的发送目的地的所有处理器11b接收到就绪消息。在处理器11a判断为从成为请求消息的发送目的地的所有处理器11b接收到就绪消息时,就绪消息收发单元103解除处理器11a的等待执行备份处理的状态(待机状态)。

处理器11a执行备份处理。

结束消息收发单元104从请求消息的发送者(处理器11a)向请求消息的接收者(处理器11b)发送结束消息。

结束消息是通知在请求消息的发送者(处理器11a)处备份处理完成的消息。

结束消息收发单元104解除接收到结束消息的处理器11b的待机状态。

使用图5,对本实施方式相对于以往技术的优点进行说明。作为本实施方式的结构要素的序列处理完成判定单元102确认在接收到请求消息的所有处理器11b处与备份处理的对象数据关联的序列处理完成。之后,序列处理完成判定单元102使处理器11b向待机状态转移。假设,处理器11b接收请求消息后立即向待机状态转移,则在数据集中产生不整合。但是,在本实施方式中,序列处理完成判定单元102在序列处理结束之前不使处理器11b向待机状态转移,在数据集整合之前继续序列处理。因此,不会产生数据集的不整合。

图6是表示在处理器11a(处理器#1)、处理器11b(处理器#2)、处理器11c(处理器#3)分别执行系统1的控制轴、系统2的轴控制、系统3的轴控制的控制装置1中,处理器11b(处理器#2)执行数据备份时的处理器之间的处理流程的示例的流程图。

在初始状态下,处理器11a、处理器11b、处理器11c分别执行系统1的轴控制、系统2的轴控制、系统3的轴控制有关的处理(s11、s21、s31)。

处理器11b将备份处理的请求消息发送给处理器11a、处理器11c(s22)。之后,处理器11b为待机状态。

接收到请求消息的处理器11a、处理器11c分别完成与该请求消息的内容相关的序列处理(s12、s32)。之后,处理器11a、处理器11c对处理器11b发送就绪消息。之后,处理器11a、处理器11c为待机状态。

处理器11b在确认从所有处理器11a、处理器11c接收到就绪消息时,解除待机状态而执行备份处理(s23)。在备份处理完成时,处理器11b对处理器11a、处理器11c发送结束消息(s24)。此外,处理器11b再次开始系统2的轴控制的执行(s25)。

处理器11a、处理器11c在接收到结束消息时解除待机状态,再次开始系统1的轴控制、系统3的轴控制的执行(s13、s33)。

根据本实施方式,即使是频繁地更新数据,执行复杂的访问处理的控制装置1,也可以执行保证了数据的整合性的数据备份、数据输入输出、以及关机序列等。此外,也可以避免在安装了排他控制用的程序时产生的开销造成的性能降低、代码量的增加造成的存储设备或内存的紧张等问题。

此外,在本实施方式中,构成为:在为了根据请求消息的内容而维持数据的整合性所需的范围中,在备份之前完成序列处理。即,在本实施方式中,构成为:在序列处理完成之前,使备份处理待机。因此,例如按照系统之间或控制轴之间的依存关系,适当设定序列处理的执行范围,即保证数据的整合性的范围。

另外,在上述实施方式中,示出了将备份处理的请求消息作为触发,执行一连串的处理的示例。但是,请求消息的种类、形式、内容、序列处理的内容或范围等可以根据主要的处理器或核执行的处理的种类而不同。例如,在执行备份处理的情况下,也可以根据对非易失性存储设备14或rom12的备份、对未图示的外部存储设备的备份这样的方式的差异,适当变更诸多条件。

<实施方式2>

使用图7,对实施方式2的控制装置1的动作进行说明。实施方式2是实施方式1的变形例。除非特别说明,实施方式2的控制装置1的结构要素和动作与实施方式1相同。

在本实施方式中,不依存于通过请求消息而通知的处理(在实施方式1的示例中是备份处理)的(不造成影响的)处理作为另一任务安装于请求消息的接收者(实施方式1的示例中是处理器11b)。并且,代替发送就绪消息后,向待机状态转移,处理器11b执行该另一任务。即,处理器11b在独立于备份处理的内存空间继续执行与备份处理无关的任务。

该情况下,结束消息收发单元104在接收到结束消息时,判定处理器11b是等待完成备份处理的状态(待机状态),还是执行另一任务的状态。如果是等待完成备份处理的状态(待机状态),则解除待机状态。另一方面,如果是执行另一任务的状态,则执行在接收请求消息时进行的任务(例如,轴控制)。

根据本实施方式,接收到请求消息的处理器或核可以在等待请求的处理完成的期间执行另一任务,因此,可以提升控制装置1整体的处理效率。

<实施方式3>

使用图8对实施方式3的控制装置1的动作进行说明。实施方式3是实施方式1的变形例。除非特别说明,实施方式3的控制装置1的结构要素和动作与实施方式1相同。

在本实施方式中,根据从主要的处理器发送的消息的种类,改变序列处理完成的判定处理、接收结束消息后的动作。

图8是表示将实施方式3的备份处理相关的运行方案应用于系统错误产生时的关机序列时的、处理器11a(处理器#1)、处理器11b(处理器#2)、处理器11c(处理器#3)的动作的流程图。

在初始状态下,处理器11a、处理器11b、处理器11c分别执行系统1的轴控制、系统2的轴控制、系统3的轴控制有关的处理(s211、s221、s231)。

处理器11b对处理器11a、处理器11c发送系统错误产生通知(与实施方式1的备份处理的请求消息相当)(s222)。另外,系统错误产生通知中也包含备份对象的数据所在的内存块的索引相关的信息。之后,处理器11b为待机状态。

接收到系统错误产生通知的处理器11a、处理器11c分别完成备份对象的数据相关的序列处理。处理器11a、处理器11c在接收系统错误产生通知时,为准备关机序列的执行,可以执行重置寄存器的处理、或降低核的频率的处理等(s212、s232)。序列处理等完成之后,处理器11a、处理器11c对处理器11b发送就绪消息。之后,处理器11a、处理器11c为待机状态。

处理器11b在确认从所有的处理器11a、处理器11c接收到就绪消息时,解除待机状态而执行关机序列(s223)。当关机序列完成时,处理器11b对处理器11a、处理器11c发送处理器停止请求(与实施方式1的结束消息相当)(s224)。此外,处理器11b停止动作(s225)。

处理器11a和处理器11c接收处理器停止请求时解除待机状态,停止动作(s213、s233)。

以上,对本发明的实施方式进行了说明,但是本发明不只限定于上述实施方式的示例,可以通过增加适当的变更而以各种方式来实施。

例如,本发明不局限于数据备份、数据输入输出、以及关机序列,能够应用于各种用途。例如,可以应用于系统错误产生时的处理器之间或核之间的通信方法、用于安全地停止系统的紧急停止处理的执行方法等。此外,在再次启动应用时,可以用作使内存映像上的特定的内存初始化的方法。

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