专利名称:计算机系统,用于机器、特别是工业机器人的控制装置及工业机器人的制作方法
技术领域:
本发明涉及一种计算机系统,一种用于机器、特别是工业机器人的控制装置,以及 一种工业机器人。
背景技术:
由于成本原因,特别关注如何能够不使用特别的解决方案,而是使用普遍可用的 产品或解决方案。基于这个原因,自20世纪90年代中期以来就存在这样一种趋势在工业 机器控制当中使用来自办公环境的产品(例如PC)用来控制,并使用因特网作为通讯技术。然而,在使用办公环境中的软件时,其主要关注软件功能的正确性,而对于时间 的精确性方面则并不十分看重。这种软件的用途应该只处于对于人文条件(menschliche
Verhaltnisse )适用的范围内,即在几秒的范围内或者略微更小的范围内。因为在机器控
制中由软件预先设定机器的运动,所以软件必须在时间上相对精确且与机器运动同步地工 作。机器运动越快、越准确,则软件必须在时间上越精确。在现代化的、精度较高的机器当 中,其非同寻常之处在于,机器的电机必须在一秒内被再调整8000次(循环周期等于125 微秒),或必须由软件不时地进行调整。在这里,重要的不仅在于软件能够相对正确地执行 任务,还在于必须尽可能快地执行。与此相关的是软件的实时性。实时性越精确,机器就能 越快、越精确地运动。但是,也称作“通用,,操作系统并安装在办公室环境通用的PC中的标准操作系统 通常不是实时的,因为这种实时性对于所设定的应用而言并非必要。在系统负载较大时,标 准操作系统首先注意整个系统的稳定的平衡,而不对特定的应用区分优先级。
发明内容
因此本发明的目的在于,提出一种具有标准操作系统的计算机系统,使得该计算 机系统也适用于特别是实时的机器控制。本发明的目的通过一种计算机系统实现,该计算机系统具有多核处理器,其具有至少一个第一处理器核和至少一个第二处理器核,以及操作系统,特别是所谓的“通用”操作系统,该操作系统配置为,将实时任务仅分配 给第一处理器核,而将其他任务仅分配给第二处理器核。根据本发明的计算机系统包括具有多个处理器核的多核处理器。处理器核在英语 中称为“Core”并用于处理计算程序。根据本发明的计算机系统安装有操作系统。操作系统通常是能够使计算机系统运 行的软件。操作系统管理着资源(例如多核处理器)和可能连接在计算机系统上的输入及 输出设备,以及在操作系统上运行的计算程序的执行。 该操作系统特别是一种也被称为“通用”操作系统的标准操作系统。“通用”操作系统不是用于特殊应用的操作系统,尤其不是特别用于控制机器、例如工业机器人的操作 系统。虽然“通用”操作系统的一些制造商声称他们的操作系统具有实时性,但是这其实并 不会发生在“通用,,操作系统中。例如Microsoft 公司的Windows 操作系统就是一种 “通用”操作系统。术语“Windows”和“Microsoft”是Microsoft公司的受到商标法保护的 术语。因此,根据本发明,为使这种通常不用于实时任务的标准操作系统也能够执行实 时应用,根据本发明的计算机系统的操作系统配置成,将实时任务仅分配给第一处理器核, 而将其他任务,即可以非实时完成的任务分配给第二处理器核。由此确保该至少一个第一 处理器核仅处理高优先级的任务,而不会将计算能力用于低优先级的任务(其他任务)。低 优先级的任务例如为操作系统内部的任务。在计算机科学中,术语“实时”和“模型时间(Modellzeit) ”之间是有区别的。实 时是指在“现实世界”中的运行所消耗的时间。而模型时间是指计算程序自我管理的运行 时间。对于具有实时能力的系统可以理解为,必须在预定的时间范围内对事件做出反应 的系统。该预定的时间范围取决于各项要实时处理的任务,例如对于快速数字控制和/或 调节任务例如是微秒级;或者例如对于温度调节或液位监测是秒级。有时要区分软实时和硬实时。在所谓的硬实时中,超过预定时间范围就意味着错 误。与此相反,在所谓的软实时中,系统通常在预定时间范围内处理完相关的输入,在此原 则上可能有个别的处理超过预定的时间范围,但并不导致错误。根据本发明的计算机系统 的一种实施方式,其操作系统配置为,仅将硬实时任务分配给第一处理器核。而软实时任务 则是其他任务的一部分,仅被分配给第二处理器核进行处理。按照一种实施方式,根据本发明的计算机系统的操作系统配置为,将由第一外部 中断触发的、对应于实时任务或硬实时任务的第一中断例程分配给第一处理器核,将由第 二外部中断触发的、对应于其他任务的第二中断例程分配给第二处理器核。在计算机技术中中断被理解为外部事件,例如计时器或其他硬件信号的结束时 间,其强制处理器核的中断并跳转到相应的中断例程。根据中断或对应于中断的中断请求 来启动也称作“中断服务例程(ISR),,的中断例程,由操作系统所选择的处理器核来处理该 中断例程。根据中断请求来中断正常的程序运行(Programmablauf),以执行中断例程。如 果处理完中断例程,则程序运行再次回到中断前的位置。按照根据本发明计算机系统的这种变型,将由外部中断触发的、对应于实时任务 或硬实时任务的中断例程只分配给第一处理器核处理。而其余的中断例程由第二处理器核 处理。因此能够确保,保留至少一个仅用于处理对应于实时任务或硬实时任务的中断例程 的第一处理器核。根据系统,由中断请求就是不能使大多数操作系统调用不能执行也能使特定的操 作系统调用不能执行。但由所谓的延迟过程调用(DPC,Deferred Procedure Calls)这是 可能的。因此,根据本发明的计算机系统可以这样实施其操作系统配置为,由第一中断例 程启动第一延迟过程调用,以由此执行对应于实时任务的第一中断例程,由第二中断例程 启动第二延迟过程调用,以由此执行对应于其他任务的第二中断例程。由此可以使相关的中断例程本身不受限制地由相关的处理器核执行,其中例如可以实现与在计算机系统上运 行的程序线程的通信。在英语中称为“Thread”的程序线程是单独的程序运行过程。标准操作系统可以这样实施,即它将延迟过程调用存储在FIF0( “先进先出”)缓 存器中,并按照存储的顺序通过中断请求从系统再依次取出。根据本发明的计算机系统的 一种变型,其操作系统配置为,将第一 FIFO缓存器分配给第一处理器核,将第二 FIFO缓存 器分配给第二处理器核,以将第一延迟过程调用存储在第一 FIFO缓存器中,将第二延迟过 程调用存储在第二 FIFO缓存器中。由此确保没有低优先级的中断例程以及用于第二处理 器核的中断例程阻塞确定用于第一处理器核的高优先级的中断例程的传输。根据本发明的计算机系统的操作系统也可以配置为,将对应于实时任务或硬实时 任务的第一程序线程分配给第一处理器核,并将对应于其他任务的第二程序线程分配给第 二处理器核。通过根据本发明的计算机系统的这种变型可确保仅由第一处理器核处理对应 于实时任务或硬实时任务的程序线程,第一处理器核不处理对应于其他低优先级任务的程 序线程。根据本发明的另一方面,根据本发明的计算机系统用于控制机器、尤其是工业机 器人,其中设有用于控制机器的实时任务。由此,特别是也可以将不是为控制机器而开发的 标准操作系统用作控制、尤其是实时控制机器的控制装置。在这里“控制”也可以理解为“调 节”。待控制的机器特别是工业机器人。工业机器人是执行机器,其装备有特定的工具 以自动处理对象,并可沿多个运动轴,特别是关于方向、位置和工作流程进行编程。工业机 器人具有计算机系统,这种计算机系统在根据本发明的工业机器人中主要由根据本发明的 计算机系统构成。如果根据本发明的计算机系统的操作系统具有多媒体服务,则根据本发明的控制 装置的一种实施方式,操作系统配置为,通过多媒体服务区分对应于实时任务的程序线程 的优先级。多媒体服务设置用于,使多核处理器尽可能无中断地处理多媒体程序,例如尤其 是音频或视频再现程序。多媒体服务的执行能够做到,利用相应的编程方法向特定的程序 线程自动提供更多的处理器计算时间。借助相应的编程方法通过为程序线程提供更多的计 算时间可以实现应该由计算机系统尤其是多核处理器优先处理的特定的程序线程。如果操作系统是Microsoft 公司的Windows 操作系统,并且多媒体服务是该 操作系统的所谓的多媒体类调度程序服务(Multimedia Class Scheduler Service),则能 够通过存储在操作系统注册表中的信息来区分实时任务的优先级。根据本发明的另一方面提出一种用于控制机器、特别是用于控制工业机器人的控 制装置,该控制装置包括处理器和操作系统,特别是具有多媒体服务的“通用”操作系统,其 中操作系统配置为,通过多媒体服务来区分由处理器为控制机器而进行处理的实时任务尤 其是硬实时任务的优先级。操作系统尤其可以配置为,通过多媒体服务来区分对应于实时 任务的程序线程的优先级。如果操作系统是Microsoft 公司的Windows 操作系统,则 多媒体服务特别是该操作系统的多媒体类调度程序服务。
在所附的示意性附图中示例性描述了本发明的实施例。其中
图1示出了具有控制计算机的工业机器人,以及图2示出了另一种用于工业机器人的控制计算机。
具体实施例方式图1示出了一种作为机器的示例的具有运动构件的工业机器人,该运动构件用于 以例如六个自由度运动。工业机器人以普遍公知的方法具有带有六个运动轴、关节、杠杆3 和4以及法兰5的机器人臂1。在图1中仅设有一个用附图标记2表示的运动轴,机器人臂 1固定在基座7上。每个运动轴2均通过未详细示出的驱动装置运动。如专业人员普遍公知的,驱动 装置例如分别包括电动机和传动装置。另外,工业机器人还具有控制计算机6,控制计算机6以未示出的方式与工业机器 人的驱动装置连接,并利用在控制计算机6上运行的计算程序控制该驱动装置,使得工业 机器人的法兰5执行预定的运动。在此实施例的情况下,控制计算机6具有多核处理器20。该多核处理器固定在主 板23上,并在其壳体内具有第一处理器核21和第二处理器核22。这两个处理器核21、22 是独立的计算单元。控制计算机6的其他资源,例如存储器以及输入、输出设备没有详细示
出ο另外,控制计算机6配置有操作系统。操作系统通常是一种软件,其在控制计算机 6的此实施例的情况下可实现计算机的运行。操作系统管理控制计算机6的资源,例如多核 处理器20和必要时连接在控制计算机6上的输入输出设备,以及在控制计算机6上运行的 计算程序、例如用于控制工业机器人的计算程序的执行。在此实施例的情况下,操作系统是所谓的“通用”操作系统(标准操作系统)。 “通用”操作系统不是用于特殊应用的操作系统,尤其不是特别用于控制机器、例如工业机 器人的操作系统。在此实施例的情况下,在控制计算机6上运行的是Microsoft 公司的 Windows Vista 操作系统。术语 “Windows,,、“Microsoft,,和 “Vista,,是 Microsoft 公司的受商标法保护的术语。在这里还应该将术语“控制”理解为“调节”。在此实施例的情况下,控制计算机6的操作系统配置为,它将要实时地、特别是硬 实时地执行的、设置用于控制工业机器人1的计算程序的计算任务仅提供给第一处理器核 21进行处理,而将如操作系统内部任务或对时间要求不高、但也有可能是软实时任务的其 余任务,仅提供给第二处理器核22进行处理。此外,可以将以下类型的任务在不同的工作层面上加以区分中断,所谓的延迟过 程调用(DPC)和程序线程。在英语中称为“Thread”的程序线程是单独的程序运行过程。在计算机技术中可以将中断理解为外部事件,例如强制处理器核21、22的中断并 跳转到相应的中断例程的计时器的结束时间、与工业机器人的运动轴2的转动同步的脉冲 或其他硬件信号。根据中断或对应于中断的中断请求(Interrupt Request)启动也称为 “中断服务程序(ISR) ”的中断例程,由操作系统选择的处理器核21、22来处理该中断例程。 根据该中断请求来中断与处理器核21、22相关的正常的程序运行,以执行中断例程。如果 处理完中断例程,则程序运行过再次回到中断前的位置。在此实施例的情况下,如下实现将特定的任务分配给两个处理器核21、22等
7
中断控制计算机6正常程序运行的中断在系统中具有最高的优先级并由外部事 件触发。在此实施例的情况下,启动控制计算机6的操作系统,使用于处理它的中断例程的 特定中断仅提供给两个处理器核21、22中特定的一个。在此实施例的情况下操作系统配置 为,其将用于控制工业机器人的中断以及它的尤其是必须实时处理的中断例程仅提供给第 一处理器核21。所有其他中断都提供给第二处理器核22,以处理它们的中断例程。由此可 以确保,第一处理器核21主要仅被分配高优先级中断的中断例程,尤其是要实时处理的中 断例程,而且它的计算能力不会用于低优先级的任务。在这里所使用的Windows Vista 操作系统中,可以通过在操作系统的所谓的 注册表(Registry)中适当的项来实现将特定的中断分配给预定的处理器核21、22。根据系统,由中断请求就是不能使大多数操作系统调用不能执行也能使特定的操 作系统调用不能执行。但由所谓的延迟过程调用(DPC)这是可能的。基于这个原因,在此 实施例的情况下控制计算机6的操作系统配置为,一个中断例程触发一个延迟过程调用, 该延迟过程调用可使中断例程不受限制地执行,其中,例如能够实现与在控制计算机6上 运行的程序线程(线程)的通讯。在此实施例的情况下,将DPC临时存储在FIFO缓存器中,并通过中断例程按照它 们临时存储的顺序从系统中再依次调出,以进行处理。“FIFO”是“先进先出”的缩写。在此实施例的情况下,控制计算机6的操作系统这样执行,即其为每个处理器核 21、22分配一个自己的FIFO缓存器。在图1中示出了分配给第一处理器核21的第一 FIFO 缓存器24和分配给第二处理器核22的第二 FIFO缓存器25。因此在此实施例的情况下,与 其中断例程应由第一处理器核21执行的中断相对应的延迟过程调用临时存储在第一 FIFO 缓存器24中。与其中断例程应由第二处理器核22执行的中断相对应的延迟过程调用则临 时存储在第二 FIFO缓存器25中。在此实施例的情况下还可以在处理器20上处理程序线程(线程)。因此,可确保 也能够由处理器20(硬)实时地处理对应于用以控制工业机器人且尤其是必须(硬)实时 处理的计算程序的程序线程(线程),控制计算机6的操作系统配置为,将对应于用以控制 工业机器人的计算程序的程序线程分配给第一处理器核21进行处理。控制计算机6的操 作系统将所有其他的程序线程分配给第二处理器核22进行处理。在这里使用的Windows 操作系统中,这可以通过配置所谓的“线程关联掩码 (Thread Affinity Maske)”来实现。许多“通用”操作系统包括多媒体服务,借助该多媒体服务可以尽可能不中断地处 理多媒体程序,例如尤其是音频或视频播放程序。在Microsoft Vista 操作系统中,这种 机制称为多媒体类调度程序服务,它利用相应的编程方法自动为特定的程序线程(线程) 提供更多的多核处理器20的计算时间。在此多媒体类调度程序服务使用存储在注册表中 的信息,以识别相应的应用(任务)并确定这些应用的程序线程(线程)的相应的优先级。 对于相应的编程方法可以例如使用所谓的API调用(API是“应用程序界面(Application Program Interface),,的缩写,德语为Schnittstelle fiir Anwendungsprogramme)。替代地或附加地,对于对应于用于控制工业机器人的计算程序的、尤其是必须由 多核处理器20实时处理的程序线程(线程),通过操作系统的多媒体类调度程序服务给以 较高的优先级,使得多核处理器20在其余程序线程(线程)之前优先处理这些程序线程。
8
在图1中示出的多核处理器20具有恰好两个处理器核21、22。多核处理器也有可 以使用多于两个处理器核。在这种情况下将(硬)实时任务分配给至少一个处理器核,而 将其他任务分配给至少一个另外的处理器核。图2示出了另一个控制计算机36,其可以替代图1中示出的用于控制工业机器人 的控制计算机6来使用。与图1中的控制计算机6相比,在此实施例的情况下,控制计算机 36例如具有处理器30,处理器30具有唯一的处理器核31。然而控制计算机36也可以设有 多核处理器。处理器30固定在主板33上。控制计算机36的其他资源,例如存储器和输入 及输出设备在图中未详细示出。控制计算机36安装有操作系统。该操作系统管理控制计算机36的资源,例如处 理器30和可能连接在控制计算机36上的输入及输出设备,以及在控制计算机36上运行的 计算程序(例如用于控制工业机器人的计算程序)的执行。在此实施例的情况下,操作系统是所谓的“通用,,操作系统(标准操作系统)。在 此实施例的情况下,在控制计算机6上同样运行Miercsoft 公司的Windows Vista
操作系统。在此实施例的情况下,对于对应于用于控制工业机器人的计算程序的、特别是必 须由处理器30硬实时处理的程序线程(线程),可以通过操作系统的多媒体类调度程序服 务给以较高的优先级,从而使处理器30在其他程序线程(线程)之前优先处理这些程序线禾呈。
权利要求
一种计算机系统,具有 多核处理器(20),其具有至少一个第一处理器核(21)和至少一个第二处理器核(22),以及 操作系统,特别是所谓的“通用”操作系统,该操作系统配置为,将实时任务、尤其是硬实时任务仅分配给所述第一处理器核(21),并将其他任务仅分配给所述第二处理器核(22)。
2.如权利要求1所述的计算机系统,该计算机系统的操作系统配置为,将由第一外部 中断触发的、对应于实时任务的第一中断例程分配给所述第一处理器核(21),将由第二外 部中断触发的、对应于其他任务的第二中断例程分配给所述第二处理器核(22)。
3.如权利要求2所述的计算机系统,该计算机系统的操作系统配置为,由所述第一中 断例程启动第一延迟过程调用,以由此执行对应于实时任务的所述第一中断例程,以及由 所述第二中断例程启动第二延迟过程调用,以由此执行对应于其他任务的所述第二中断例 程。
4.如权利要求3所述的计算机系统,其操作系统配置为,将第一FIFO缓存器(24)分配 给所述第一处理器核(21),将第二 FIFO缓存器(25)分配给所述第二处理器核(22),以将 所述第一延迟过程调用存储在所述第一 FIFO缓存器(24)中,将所述第二延迟过程调用存 储在所述第二 FIFO缓存器(25)中。
5.如权利要求1到4中任一项所述的计算机系统,该计算机系统的操作系统配置为,将 对应于实时任务的第一程序线程分配给所述第一处理器核(21),并将对应于其他任务的第 二程序线程分配给所述第二处理器核(22)。
6.一种用于控制机器、特别是工业机器人的控制装置,其中,该控制装置(6)包括如权 利要求1到5中任一项所述的计算机系统,以及用于控制机器和/或各机器部件的实时任 务。
7.如权利要求6所述的控制装置,其中,所述计算机系统(6)的操作系统具有多媒体服 务,并且该操作系统配置为,通过所述多媒体服务区分对应于实时任务的程序线程的优先 级。
8.如权利要求7所述的控制装置,其中,所述操作系统是Microsoft 公司的 Windows :操作系统,所述多媒体服务是该操作系统的多媒体类调度程序服务。
9.一种用于控制机器、特别是用于控制工业机器人的控制装置,其具有-处理器(20,30),和-操作系统,特别是具有多媒体服务的所谓“通用”操作系统,其中,该操作系统配置为, 通过所述多媒体服务来区分实时任务、尤其是由所述处理器(20,30)处理的、用以控制机 器的硬实时任务的优先级。
10.如权利要求9所述的控制装置,其操作系统配置为,通过所述多媒体服务来区分对 应于所述实时任务的程序线程的优先级。
11.如权利要求9或10所述的控制装置,其中,所述操作系统是Microsoft 公司的 Windows 操作系统,所述多媒体服务是该操作系统的多媒体类调度程序服务。
12.—种工业机器人,其具有机器人臂(1)和用于控制所述机器人臂(1)的运动的如权 利要求6到11中任一项所述的控制装置(6,36)。
13.一种操作系统的多媒体服务的应用,用于区分实时任务、尤其是用于控制工业机器 人运动的硬实时任务的优先级。
14.如权利要求13所述的应用,其中,通过所述多媒体服务区分对应于所述实时任务 的程序线程的优先级。
15.如权利要求13或14所述的应用,其中,所述操作系统是Microsoft 公司的 Windows 操作系统,所述多媒体服务是该操作系统的多媒体类调度程序服务。
全文摘要
本发明涉及一种计算机系统(6),其具有多核处理器(20)和操作系统,特别是所谓的“通用”操作系统。该多核处理器(6)具有至少一个第一处理器核(21)和至少一个第二处理器核(22)。该操作系统配置为,将实时任务,特别是硬实时任务仅分配给第一处理器核(21),而将其他任务仅分配给第二处理器核(22)。
文档编号G06F9/50GK101911019SQ200980102405
公开日2010年12月8日 申请日期2009年1月13日 优先权日2008年1月18日
发明者海因里希·蒙茨 申请人:库卡罗伯特有限公司