控制器和系统构建方法与流程

文档序号:33253156发布日期:2023-02-18 05:58阅读:54来源:国知局
控制器和系统构建方法与流程

1.本公开涉及控制器和系统构建方法。


背景技术:

2.日本未审查专利公开第2015-176340号公开了一种控制器,该控制器包括:存储单元,该存储单元存储设置信息,该设置信息指定是使用真实设备还是使用模拟真实设备的虚拟设备程序替代真实设备;以及程序执行单元,当参考设置信息指定使用虚拟设备时,该程序执行单元执行虚拟设备程序。


技术实现要素:

3.本公开提供了一种控制器,其对于容易地模拟至少部分地被虚拟机器替代的系统的操作是有效的。
4.根据本公开的一个方面的控制器是可与另一控制器通信的控制器,并且该控制器包括:确定单元,被配置为确定另一控制器是控制机器还是控制对应于机器的虚拟机器;以及处理单元,被配置为在另一控制器控制机器时执行预定的真实处理,并且在另一控制器控制虚拟机器时执行与真实处理至少部分不同的虚拟处理。
5.根据本公开的另一方面的控制器是可与另一控制器通信并且被配置为控制控制目标的控制器,并且该控制器包括:控制目标确定单元,被配置为确定控制目标是机器还是虚拟机器;以及发送单元,被配置为向另一控制器发送附加有控制目标确定单元的确定结果的信息。
6.根据本公开的又一方面的系统构建方法包括:基于从另一控制器接收到的信息,确定另一控制器控制对应于机器的虚拟机器;执行虚拟处理并显示执行结果;基于从另一控制器接收到的信息,确定由另一控制器控制的目标从虚拟机器改变为机器;响应于由另一控制器控制的目标从虚拟机器改变为机器,将虚拟处理改变为与虚拟处理至少部分不同的真实处理;以及执行真实处理并显示执行结果。
7.根据本公开,可以提供一种有效地用于容易地模拟至少部分地被虚拟机器替代的系统的操作的控制器。
附图说明
8.图1是示出机器系统的示例配置的示意图。
9.图2是示出机器人的示例配置的示意图。
10.图3是示出机器人的示例配置的示意图。
11.图4是示出模拟设备的示例配置的示意图。
12.图5是示出机器系统的示例操作的流程图。
13.图6是示出机器和虚拟机器的混合示例的示意图。
14.图7是示出机器和虚拟机器的另一混合示例的示意图。
15.图8是示出机器和虚拟机器的另一混合示例的示意图。
16.图9是示出主机控制器的示例功能配置的框图。
17.图10是示出机器人控制器的示例功能配置的框图。
18.图11是示出虚拟控制器的示例功能配置的框图。
19.图12是示出虚拟控制器的示例功能配置的框图。
20.图13是示出设置控制器的示例功能配置的框图。
21.图14是示出示例处理生成界面的示意图。
22.图15是示出控制器的示例硬件配置的框图。
23.图16是示出示例系统构建过程的流程图。
24.图17是示出示例系统构建过程的流程图。
25.图18是示出用于生成虚拟处理的示例过程的流程图。
26.图19是示出控制条件的示例设置过程的流程图。
27.图20是示出示例处理过程的流程图。
具体实施方式
28.在下文中,将参照附图详细描述实施例。在描述中,相同的元件或具有相同功能的元件由相同的附图标记表示,并且将省略多余的描述。
29.机器系统
30.图1所示的机器系统1是通过多台机器的协作来执行工件的生产等的系统。作为示例,机器系统1包括机器2、机器3a和3b、摄像头5、用于控制的控制器100、200a和200b、用于设置的控制器300、以及模拟设备400。
31.机器2是传送工件90的传送设备,并且包括装载台11、自动导引车12、以及负载传感器13。装载台11支撑要传送的工件90。自动导引车12支撑装载台11并行驶预定的传送路线。负载传感器13例如基于装载台11的重量来检测工件90是否存在于装载台11上。
32.机器3a对工件90执行螺钉紧固操作。例如,机器3a是所谓的垂直铰接机器人,通过铰接臂调整用于螺钉紧固的工具60a的位置和姿势,并且工具60a执行螺钉紧固操作。机器3b将工件90布置在机器3a进行螺钉紧固的作业位置p1上,并且在螺钉紧固之后,将工件90从作业位置p1传送至装载台11。例如,机器3b是所谓的垂直铰接机器人,通过用用于把持的工具60b来把持工件90并用铰接臂改变工具60b的位置和姿势,从而传送工件90。摄像头5检测工件90在作业位置p1的安装状态。
33.如图2所示,机器3a包括例如基部21、枢转部22、第一臂23、第二臂24、腕部25、末端部26、致动器51、52、53、54、55和56、以及工具60a。基部21安装在作业区域的地面表面等上。枢转部22安装在基部21上,以便可绕垂直轴31旋转。例如,机器3a具有接头41,该接头41将枢转部22安装至基部21,以便可绕轴31旋转。第一臂23连接到枢转部22,以便可绕与轴31相交(例如,正交)的轴32旋转。例如,机器3a具有接头42,接头42将第一臂23连接到枢转部22,以便可绕轴32旋转。相交包括像所谓的三维相交那样的扭曲关系。这同样适用于以下描述。第一臂23从枢转部22沿与轴32相交(例如,正交)的一个方向延伸。
34.第二臂24连接到第一臂23的一端,以便可绕平行于轴32的轴33旋转。例如,机器3a具有接头43,该接头43将第二臂24连接到第一臂23以便可绕轴33旋转。第二臂24包括从第
一臂23的一端沿与轴33相交(例如,正交)的一个方向延伸的臂基部27,以及从臂基部27的一端沿同一方向进一步延伸的臂端28。臂端28可相对于臂基部27绕轴34旋转。轴34与轴33相交(例如,正交)。例如,机器3a具有接头44,该接头44将臂端28连接到臂基部27以便可绕轴34旋转。
35.腕部25连接到臂端28的端部,以便可绕与轴34相交(例如,正交)的轴35旋转。例如,机器3a具有接头45,该接头45将腕部25连接到臂端28,以便可绕轴35旋转。腕部25从臂端28的端部沿与轴35相交(例如,正交)的一个方向延伸。末端部26连接到腕部25的端部以便可绕与轴35相交(例如,正交)的轴36旋转。例如,机器3a具有接头46,该接头46将末端部26连接到腕部25以便可绕轴36旋转。
36.致动器51、52、53、54、55和56驱动接头41、42、43、44、45和46。致动器51、52、53、54、55和56中的每一个包括例如电动机和将电动机的功率发送到接头41、42、43、44、45和46的发送单元(例如,减速器)。例如,致动器51驱动接头41以使枢转部22绕轴31旋转。致动器52驱动接头42以使第一臂23绕轴32旋转。致动器53驱动接头43以使第二臂24绕轴33旋转。致动器54驱动接头44以使臂端28绕轴34旋转。致动器55驱动接头45以使腕部25绕轴35旋转。致动器56驱动接头46以使末端部26绕轴36旋转。
37.致动器51、52、53、54、55和56驱动接头41、42、43、44、45和46以自由地调整末端部26的位置和姿势。工具60a是用于螺钉紧固的工具,并且固定到末端部26。因此,工具60a的位置和姿势随着末端部26的位置和姿势的变化而变化。工具60a可以包括用于检测螺钉紧固的扭矩的扭矩传感器61。
38.如图3所示,机器3b包括基部21、枢转部22、第一臂23、第二臂24、腕部25、末端部26、致动器51、52、53、54、55和56、以及工具60b。基部21、枢转部22、第一臂23、第二臂24、腕部25、末端部26、以及致动器51、52、53、54、55和56与机器3a的那些类似。另外,在机器3b中,致动器51、52、53、54、55和56驱动接头41、42、43、44、45和46以自由地调整末端部26的位置和姿势。工具60b是把持工件90的机器人手,并且固定到末端部26。因此,工具60b的位置和姿势随着末端部26的位置和姿势的变化而变化。工具60b可以包括检测工件90是否被保持的把持传感器62。
39.返回图1,控制器100可经由诸如局域网的通信网络900与其他控制器(例如,控制器200a、200b和300)通信。尽管在附图中,控制器100、控制器200a、200b和300以及模拟设备400经由一个通信网络900连接,但控制器100可以经由多个通信网络与控制器200a、200b和300以及模拟设备400连接。例如,控制器100可以经由用于控制的通信网络连接到控制器200a和200b,并且可以经由与用于控制的通信网络不同的通信网络连接到控制器300和模拟设备400。这里的“连接”包括可以进行有线通信的状态和可以进行无线通信的状态。
40.例如,控制器100是主机控制器,并且经由多个控制器200a和200b(本地控制器)控制机器3a和3b(本地机器)。
41.控制器100进一步控制机器2。与控制器200a和200b插置在控制器100与机器3a和3b之间的情况一样,基于来自控制器100的命令控制机器2的本地控制器可以插置在控制器100与机器2之间。
42.控制器200a可经由通信网络900与其他控制器(例如,控制器100、200b和300)通信。控制器200a基于来自控制器100的命令控制机器3a。控制器200b可经由通信网络900与
其他控制器(例如,控制器100、200a和300)通信。控制器200b基于来自控制器100的命令控制机器3b。
43.控制器300是经由通信网络900对控制器100、200a和200b执行各种设置的终端设备。控制器100、200a和200b的各种设置的具体示例包括各种控制参数(例如控制增益)的设置。
44.模拟设备400是模拟机器2、机器3a和3b的操作以及基于这些机器的操作的环境变化(例如,工件90的移动)的设备。模拟是指通过数值计算模拟机器2和机器3a和3b的操作以及基于这些机器的操作的环境变化,而不实际操作机器2和机器3a和3b。
45.如图4所示,模拟设备400包括模型存储单元410、虚拟控制器500、以及虚拟控制器600a和600b。模型存储单元410存储机器2、机器3a和3b以及它们的周围环境的三维模型。三维模型是通过虚拟空间vs中的三维坐标表示机器2、机器3a和3b以及它们的周围环境的三维结构的数值数据。虚拟空间vs是机器2和机器3a和3b实际上不存在的虚拟空间。另一方面,以下将机器2、机器3a和3b实际存在的空间称为“真实空间rs”。
46.虚拟控制器500是虚拟主机控制器,并且分别经由多个虚拟控制器600a和600b(虚拟本地控制器)控制虚拟机器v3a和虚拟机器v3b。虚拟机器v3a和虚拟机器v3b分别是表示机器3a和3b的操作的模拟结果的数值,并且在虚拟空间vs中虚拟地操作以便模拟真实空间rs中的机器3a和3b的操作。
47.虚拟控制器500还控制虚拟机器v2。虚拟机器v2表示机器2的操作的模拟结果,并且在虚拟空间vs中虚拟地操作,以便模拟机器2在真实空间rs中的操作。与虚拟控制器600a和600b插置在虚拟控制器500与虚拟机器v3a和虚拟机器v3b之间的情况一样,基于来自虚拟控制器500的命令控制虚拟机器v2的虚拟本地控制器可以插置在虚拟控制器500与虚拟机器v2之间。
48.例如,虚拟控制器500基于用于使控制器100操作机器2的程序,根据时间的流逝依次计算机器2的可动部(自动导引车12)的操作量。在每次计算机器2的可动部的操作量时,虚拟控制器500基于机器2的可动部的操作量和三维模型,计算可动部的操作之后的虚拟机器v2。
49.虚拟控制器600a基于来自虚拟控制器500的命令控制虚拟机器v3a。例如,虚拟控制器600a基于来自虚拟控制器500的命令在虚拟空间vs中操作虚拟机器v3a。例如,虚拟控制器600a基于来自虚拟控制器500的命令和用于操作机器3a的程序,根据时间的流逝依次计算机器3a的可动部(接头41、42、43、44、45和46)的操作量。在每次计算机器3a的可动部的操作量时,虚拟控制器600a基于机器3a的可动部的操作量和三维模型,计算可动部的操作之后的虚拟机器v3a。
50.虚拟控制器600b基于来自虚拟控制器500的命令控制虚拟机器v3b。例如,虚拟控制器600b基于来自虚拟控制器500的命令在虚拟空间vs中操作虚拟机器v3b。例如,虚拟控制器600b基于来自虚拟控制器500的命令和用于操作机器3b的程序,根据时间的流逝依次计算机器3b的可动部(接头41、42、43、44、45和46)的操作量。在每次计算机器3b的可动部的操作量时,虚拟控制器600b基于机器3b的可动部的操作量和三维模型,计算可动部的操作之后的虚拟机器v3b。
51.在此,机器系统1被配置为通过将控制器100、200a和200b的至少一部分替代为虚
拟控制器500、600a和600b而能够操作。例如,虚拟控制器500、600a和600b中的每一个可以经由通信网络900与控制器100、200a和200b(其他控制器)进行通信。因此,控制器100、200a和200b中的每一个也可以经由通信网络900与虚拟控制器500、600a和600b(其他控制器)进行通信。如图4所示,虚拟控制器500、600a和600b可以被配置为经由通信网络900相互通信。
52.控制器100被配置为能够经由虚拟控制器600a和600b控制虚拟机器v3a和虚拟机器v3b,而不是经由控制器200a和200b控制机器3a和3b。虚拟控制器500被配置为能够经由控制器200a和200b控制机器3a和3b,而不是经由虚拟控制器600a和600b控制虚拟机器v3a和虚拟机器v3b。
53.如上所述,当控制器100、200a和200b和虚拟控制器500、600a和600b可以经由通信网络900相互通信时,控制器300可以被配置为以与经由通信网络900对控制器100、200a和200b执行各种设置相同的方式,经由通信网络900对虚拟控制器500、600a和600b执行各种设置。
54.通过可以将控制器100、200a和200b的至少一部分替代为虚拟控制器500、600a和600b的配置,可以用虚拟机器v2、v3a和v3b在虚拟空间vs中的操作来替代机器2、3a和3b在真实空间rs中的操作的至少一部分,以模拟整个系统的处理。然而,当机器2、3a和3b的至少一部分被虚拟机器v2、v3a和v3b替代时,机器系统1的操作可能不继续。例如,即使机器2、3a和3b的操作可以通过虚拟机器v2、v3a和v3b的操作来模拟,因为真实空间不会随着虚拟机器v2、v3a和v3b的操作而改变,基于真实空间的状态的处理可以不在控制器100、200a和200b、以及虚拟控制器500、600a和600b中的任一个中执行。
55.另一方面,控制器100、200a和200b以及虚拟控制器500、600a和600b中的每一个被配置为确定另一控制器是控制机器还是控制对应于机器的虚拟机器,并且当另一控制器控制机器时执行预定的真实处理,且当另一控制器控制虚拟机器时执行与真实处理至少部分不同的虚拟处理。如上所述,根据取决于另一控制器的控制目标是机器还是虚拟机器来改变控制器的处理内容的配置,可以容易地模拟整个系统的处理。
56.例如,控制器100、200a和200b以及虚拟控制器500、600a和600b可以被配置为:执行处理以与在真实空间中由第二控制器控制的第二机器协同操作控制对象(例如,第一机器);响应于确定第二控制器控制模拟第二机器在虚拟空间中的操作的虚拟第二机器而不是控制第二机器来修改处理;以及执行经过修改的处理,以与在虚拟空间中操作的虚拟第二机器协同操作控制对象。修改处理包括用修改前的处理替代处理。
57.控制器100、200a和200b以及虚拟控制器500、600a和600b中的每一个可以确定第二控制器是控制第二机器还是基于从第二控制器接收到的信息控制虚拟第二机器。
58.例如,从第二控制器接收到的信息包括第二机器或虚拟第二机器的操作信息,以及指示另一控制器是控制第二机器还是控制虚拟第二机器的标志,并且控制器100、200a和200b以及虚拟控制器500、600a和600b中的每一个可以被配置为:基于该标志确定另一控制器是控制第二机器还是控制虚拟第二机器;以及基于操作信息执行处理或经过修改的处理。
59.确定单元111可以基于用于从另一控制器接收信息的通信条件确定另一控制器是控制机器还是控制虚拟机器。例如,另一控制器(第二控制器)可以被配置为:在控制机器(第二机器)时,在第一通信条件下与控制器100通信;以及在控制虚拟机器(虚拟第二机器)
时,在第二通信条件下与控制器100通信。确定单元111可以被配置为:响应于确定控制器100在第一通信条件下与第二控制器通信,确定第二控制器控制第二机器;以及响应于确定控制器100在第二通信条件下与第二控制器通信,确定第二控制器控制虚拟机器。
60.控制器100、200a和200b以及虚拟控制器500、600a和600b中的每一个可以被配置为:基于从真实空间获得的一组真实数据,执行处理;以及修改处理,使得在没有一组真实数据的情况下,执行经过修改的处理。
61.控制对象和第二机器对工件进行操作,并且一组真实数据可以包括工件在真实空间中的状态。
62.控制器100、200a和200b以及虚拟控制器500、600a和600b中的每一个可以被配置为:修改处理以补充一组虚拟数据,而不是获得一组真实数据;以及基于补充的一组虚拟数据执行经过修改的处理。
63.控制器100、200a和200b以及虚拟控制器500、600a和600b中的每一个可以被配置为通过忽视一组真实数据,修改处理。
64.控制器100、200a和200b以及虚拟控制器500、600a和600b中的每一个可以被配置为:提取基于从真实空间获得的一组真实数据执行的处理的一部分;以及响应于确定第二控制器控制虚拟第二机器而修改处理的提取的部分。
65.控制器100、200a和200b以及虚拟控制器500、600a和600b中的每一个可以被配置为:提取基于从真实空间获得的一组真实数据执行的处理的一部分;生成指示处理的提取的部分的用户界面;以及基于用户输入修改处理以修改处理的提取的部分。
66.控制器100、200a和200b以及虚拟控制器500、600a和600b中的每一个可以与第三控制器通信,并且可以被配置为:执行处理以与第二机器和在真实空间中由第三控制器控制的第三机器协同操作第一机器;响应于确定第二控制器控制虚拟第二机器,修改处理的第一部分;响应于确定第三控制器控制模拟第三机器在虚拟空间中的操作的虚拟第三机器而不是控制第三机器,修改处理的第二部分;以及执行包括修改的第一部分和修改的第二部分的经过修改的处理,以与在虚拟空间中操作的虚拟第二机器和虚拟第三机器协同操作真实空间中的第一机器。
67.控制对象可以是在真实空间中操作的第一机器,或者在虚拟空间中模拟第一机器的操作的虚拟第一机器。
68.此外,控制器100、200a和200b以及虚拟控制器500、600a和600b中的每一个可以被配置为确定其自身的控制目标是机器还是对应于机器的虚拟机器,并且当控制机器时执行真实处理,且当控制虚拟机器时执行虚拟处理。
69.控制器100、200a和200b以及虚拟控制器500、600a和600b中的每一个可以被配置为:响应于确定控制器控制虚拟第一机器,修改处理的第一部分;响应于确定第二控制器控制虚拟第二机器,修改处理的第二部分;以及执行包括修改的第一部分和修改的第二部分的经过修改的处理以与虚拟空间中的虚拟第二机器协同操作虚拟第一机器。
70.控制器100、200a和200b以及虚拟控制器500、600a和600b中的每一个可以被配置为向第二控制器发送通知信息,以通知第二控制器控制器是控制第一机器还是控制虚拟第一机器。
71.在下文中,将具体描述真实处理和虚拟处理的示例。图5是示出机器系统1中的机
器2、3a和3b执行的过程的流程图。首先,机器3b将工件90布置在作业位置p1(步骤s101)。当摄像头5确认工件90布置在作业位置p1时,机器3a对布置在作业位置p1的工件90执行螺钉紧固(步骤s102)。然后机器3b将工件90从作业位置p1传送到装载台11上(步骤s103)。当负载传感器13确认工件90放置在装载台11上时,机器2传送工件90(步骤s104)。
72.图6示意性地示出了控制器100、200a和200b中的控制器200b被虚拟控制器600b替代并且因此机器2、机器3a和虚拟机器v3b以混合方式操作的情况。当控制器200b控制机器3b时,控制器100执行包括以下过程1的真实处理。
73.过程1)在机器3b完成将工件90放置在作业位置p1的操作并且摄像头5检测到工件90之后,向控制器200a发送螺钉紧固的开始命令(步骤s102)
74.在图6的情况下,在虚拟空间vs中,虚拟控制器600b使虚拟机器v3b执行将工件90布置在作业位置p1的操作,但在真实空间rs中,工件90没有布置在作业位置p1,并且因此摄像头5没有检测到工件90。因此,当虚拟控制器600b控制虚拟机器v3b时,控制器100执行包括以下过程2而不是过程1的虚拟处理。
75.过程2)在虚拟机器v3b完成将工件90布置在作业位置p1的操作之后,不等待摄像头5检测到工件90(通过执行跳过等待的过程),向控制器200a发送螺钉紧固的开始命令(步骤s102)
76.因此,即使在图6的情况下,步骤s102开始。
77.当控制器200b控制机器3b时,控制器200a执行包括以下过程2-1的真实处理。
78.过程2-1)在控制机器3a开始利用工具60a进行的螺钉紧固(步骤s102)之后,当扭矩传感器61检测到的扭矩达到预定值时,控制机器3a完成利用工具60a进行的螺钉紧固
79.在图6的情况下,由于工件90在真实空间rs中没有布置在作业位置p1,因此扭矩传感器61检测到的扭矩未达到预定值。因此,当虚拟控制器600b控制虚拟机器v3b时,控制器200a执行包括以下过程2-2而不是过程2-1的虚拟处理。
80.过程2-2)在控制机器3a开始利用工具60a进行的螺钉紧固(步骤s102)之后,当预定时间已经流逝时,控制机器3a完成利用工具60a进行的螺钉紧固
81.因此,即使在图6的情况下,步骤s102完成。
82.在步骤s102之后,控制器200b执行包括以下过程3-1的真实处理。
83.过程3-1)在控制机器3b执行用工具60b将工件90把持在作业位置p1的操作之后,在把持传感器62检测到工具60b对工件90的把持之后,控制机器3b将工件90从作业位置p1传送到装载台11上
84.在图6的情况下,在虚拟空间vs中,虚拟控制器600b使虚拟机器v3b执行利用工具60b将工件90把持在作业位置p1的操作。然而,由于在真实空间rs中工件90未被工具60b把持,所以把持传感器62没有检测到工具60b对工件90的把持。因此,虚拟控制器600b执行包括以下过程3-2而不是过程3-1的虚拟处理。
85.过程3-2)在控制虚拟机器v3b执行利用工具60b将工件90把持在作业位置p1的操作之后,不等待把持传感器62检测到把持(通过执行跳过等待的过程),控制机器3b将工件90从作业位置p1传送到装载台11上
86.因此,即使在图6的情况下,步骤s103被执行。
87.当控制器200b控制机器3b时,控制器100在步骤s103之后执行包括以下过程4-1的
真实处理。
88.过程4-1)在机器3b完成将工件90从作业位置p1传送到装载台11上的操作,并且负载传感器13检测到工件90放置在装载台11上之后,控制机器2开始传送工件90(步骤s104)
89.在图6的情况下,在虚拟空间vs中,虚拟控制器600b控制虚拟机器v3b执行将工件90从作业位置p1传送到装载台11上的操作。然而,由于在真实空间rs中工件90没有放置在装载台11上,并且因此负载传感器13没有检测到工件90放置在装载台11上。因此,控制器100执行包括以下过程4-2而不是过程4-1的虚拟处理。
90.过程4-2)在机器3b完成将工件90从作业位置p1传送到装载台11的操作之后,不等待负载传感器13检测到工件90布置在装载台11上(通过执行跳过等待的过程),控制机器2开始传送工件90(步骤s104),
91.因此,即使在图6的情况下,步骤s104被执行。
92.图7示意性地示出了控制器100、200a和200b中的控制器200a被虚拟控制器600a替代并且因此机器2、虚拟机器v3a和机器3b以混合方式操作的情况。控制器200a执行包括以下过程5-1的真实处理。
93.过程5-1)在控制机器3a开始利用工具60a进行的螺钉紧固(步骤s102)之后,当扭矩传感器61检测到的扭矩达到预定值时,控制机器3a完成利用工具60a进行的螺钉紧固
94.在图7的情况下,在虚拟空间vs中,虚拟控制器600a使虚拟机器v3a执行利用工具60a执行螺钉紧固的操作。然而,在真实空间rs中没有执行利用工具60a进行的螺钉紧固,并且因此扭矩传感器61检测到的扭矩没有达到预定值。因此,虚拟控制器600a执行包括以下过程5-2而不是过程5-1的虚拟处理。
95.过程5-2)在控制机器3a开始利用工具60a进行的螺钉紧固(步骤s102)之后,当预定时间流逝时,控制机器3a完成利用工具60a进行的螺钉紧固
96.因此,即使在图7的情况下,步骤s102完成。
97.当控制器200a控制机器3a时,控制器200b在步骤s102之后执行包括以下过程6-1的真实处理。
98.过程6-1)在把持传感器62检测到工具60b对工件90的把持之后,控制机器3b将工件90从作业位置p1传送到装载台11上,在控制机器3b之后使机器3b执行利用工具60b将工件90把持在作业位置的操作
99.在图7的情况下,由于在真实空间rs中没有执行利用工具60a进行的螺钉紧固,所以工件90可能不会被一体地传送。因此,当虚拟控制器600a控制虚拟机器v3a时,控制器200b执行包括以下过程6-2而不是过程6-1的虚拟处理。
100.过程6-2)控制机器3b将工件90从作业位置p1传送到装载台11上,而不控制虚拟机器v3b执行利用工具60b将工件90把持在作业位置p1的操作(通过执行跳过把持的过程)
101.因此,即使在图7的情况下,步骤s103被执行。
102.当控制器200a控制机器3a时,控制器100在步骤s103之后执行包括以下过程7-1的真实处理。
103.过程7-1)在机器3b完成将工件90从作业位置p1传送到装载台11上的操作,并且负载传感器13检测到工件90放置在装载台11上之后,控制机器2开始传送工件90(步骤s104)
104.在图7的情况下,由于在真实空间rs中工件90没有放置在装载台11上,因此负载传
感器13没有检测到工件90布置在装载台11上。因此,控制器100执行包括以下过程7-2而不是过程7-1的虚拟处理。
105.过程7-2)在机器3b完成将工件90从作业位置p1传送到装载台11上的操作之后,不等待负载传感器13检测到工件90放置在装载台11上(通过执行跳过等待的过程),控制机器2开始传送工件90(步骤s104)
106.因此,即使在图7的情况下,步骤s104被执行。
107.图8示意性地示出了控制器100、200a和200b中的控制器100被虚拟控制器500替代并且因此虚拟机器v2、机器3a和机器3b以混合方式操作的情况。当控制器100控制机器2时,控制器200b在步骤s102之后执行包括以下过程8-1的真实处理。
108.过程8-1)在控制机器3b执行用工具60b将工件90把持在作业位置p1的操作之后,在把持传感器62检测到用工具60b把持工件90之后,控制机器3b将工件90从作业位置p1传送到装载台11上
109.在图8的情况下,在真实空间rs中,工件90不能放置在装载台11上。因此,当虚拟控制器500控制虚拟机器v2时,控制器200b执行包括以下过程8-2而不是过程8-1的虚拟处理。
110.过程8-2)控制机器3b将工件90从作业位置p1传送到装载台11上,而不控制虚拟机器v3b执行用工具60b将工件90把持在作业位置p1的操作(通过执行跳过把持的过程)
111.因此,即使在图8的情况下,步骤s103被执行。
112.在步骤s103之后,控制器100执行包括以下过程9-1的真实处理。
113.过程9-1)在机器3b完成将工件90从作业位置p1传送到装载台11上的操作,并且负载传感器13检测到工件90放置在装载台11上之后,控制机器2开始传送工件90(步骤s104),机器2对工件90的传送(步骤s104)开始
114.在图8的情况下,由于在真实空间rs中工件90没有放置在装载台11上,所以负载传感器13没有检测到工件90放置在装载台11上。因此,虚拟控制器500执行包括以下过程9-2而不是上述过程9-1的虚拟处理。
115.过程9-2)在机器3b完成将工件90从作业位置p1传送到装载台11上的操作之后,不等待负载传感器13检测到工件90放置在装载台11上(通过执行跳过等待的过程),控制机器2开始传送工件90(步骤s104)
116.因此,即使在图8的情况下,步骤s104被执行。
117.在下文中,将更详细地描述控制器100、200a和200b、虚拟控制器500、600a和600b以及控制器300的示例配置。
118.主机控制器
119.控制器100是能够与多个控制器200a、200b、600a和600b(本地控制器)进行通信的主机控制器,并且经由多个本地控制器分别控制机器3a和3b以及虚拟机器v3a和v3b。
120.如图9所示,控制器100包括确定单元111、程序存储单元112和处理单元113作为功能配置(以下称为“功能块”)。确定单元111确定另一控制器是控制机器还是控制对应于机器的虚拟机器。确定单元111可以基于从另一控制器接收到的信息来确定另一控制器是控制机器还是控制虚拟机器。从另一控制器接收到的信息可以包括另一控制器中的控制信息和指示另一控制器是控制机器还是控制虚拟机器的标志,并且确定单元111可以基于标志确定另一控制器是控制机器还是控制虚拟机器。
121.标志的示例是根据另一控制器控制机器还是虚拟机器而改变的数值。更详细地说,当另一控制器控制机器时标志可以是“1”,并且当另一控制器控制虚拟机器时标志可以是“0”。当另一控制器控制机器时标志可以是“0”,并且当另一控制器控制虚拟机器时标志可以是“1”。这同样适用于其他控制器的以下描述中的标志。
122.信息在另一控制器控制机器的情况和另一控制器控制虚拟机器的情况中的仅一者中包括标志的情况是信息包括标志的情况的示例。在这种情况下,确定单元111基于该信息是否包括标志来确定另一控制器是控制机器还是控制虚拟机器。如上所述,基于信息是否包括标志来确定另一控制器是控制机器还是控制虚拟机器也是基于标志确定另一控制器是控制机器还是控制虚拟机器的示例。这同样适用于其他控制器的以下描述中的标志。
123.控制信息的配置可以根据另一控制器是控制机器还是控制虚拟机器而变化。在这种情况下,确定单元111可以基于控制信息确定另一控制器是控制机器还是控制虚拟机器。
124.例如,在图5的示例中,当控制器200b控制机器3b时,控制器100从控制器200b接收的信息可以包括以下控制信息。
125.控制信息1)指示以下项的信息:机器3b已经完成将工件90传送到作业位置p1的操作,并且把持传感器62已经检测到工具60b对工件90的把持的释放
126.另一方面,当虚拟控制器600b控制虚拟机器v3b时,控制器100从虚拟控制器600b接收到的信息可以包括以下控制信息。
127.控制信息v1)指示虚拟机器v3b已经完成将工件90传送到作业位置p1的操作的信息
128.控制信息1和控制信息v1的彼此不同之处在于是否包括“把持传感器62已经检测到工具60b对工件90的把持的释放”。在这种情况下,确定单元111基于控制信息中包括“把持传感器62已经检测到工具60b对工件90的把持的释放”的事实,确定控制器200b控制机器3b。另一方面,确定单元111基于控制信息中不包括“把持传感器62已经检测到工具60b对工件90的把持的释放”的事实,确定虚拟控制器600b控制虚拟机器v3b。
129.此外,当控制器200a控制机器3a时,控制器100从控制器200a接收到的信息可以包括以下控制信息。
130.控制信息2)指示机器3a已经完成利用工具60a的螺钉紧固操作的信息以及在螺钉紧固操作完成时由扭矩传感器61检测到的扭矩
131.另一方面,当虚拟控制器600a控制虚拟机器v3a时,控制器100从虚拟控制器600a接收到的信息可以包括以下控制信息。
132.控制信息v2)指示机器3a已经完成利用工具60a的螺钉紧固操作的信息。
133.控制信息2与控制信息v2的不同之处在于是否包括“由扭矩传感器61检测到的扭矩”。在这种情况下,确定单元111基于控制信息中包括“由扭矩传感器61检测到的扭矩”的事实,确定控制器200a控制机器3a。另一方面,确定单元111基于控制信息中不包括“由扭矩传感器61检测到的扭矩”的事实,确定虚拟控制器600a控制虚拟机器v3a。
134.可以想象,当另一控制器控制机器时控制信息被加密,而当另一控制器控制虚拟机器时控制信息不被加密。在这种情况下,确定单元111可以基于控制信息是否被加密来确定另一控制器是控制机器还是控制虚拟机器。
135.根据另一控制器是控制机器还是控制虚拟机器,用于从另一控制器接收信息的通
信条件可能不同。通信条件的差异的具体示例包括通信延迟时间的差异、用于通信的端口的差异等。当用于从另一控制器接收信息的通信条件取决于另一控制器是控制机器还是控制虚拟机器而不同时,确定单元111可以基于用于从另一控制器接收信息的通信条件来确定另一控制器是控制机器还是控制虚拟机器。
136.程序存储单元112存储预定的真实程序。当另一控制器控制机器并且自身控制器控制机器时,真实程序是使控制器100执行预定的真实处理的程序。程序存储单元112还存储虚拟修改程序,该虚拟修改程序使控制器100在另一控制器控制虚拟机器时执行通过修改真实处理的至少一部分而获得的虚拟处理。
137.在图5的示例中,程序存储单元112存储的真实程序可以包括以下处理指令。
138.真实处理指令1)在机器3b完成将工件90放置在作业位置p1的操作并且摄像头5检测到工件90之后,向控制器200a发送螺钉紧固的开始指令(步骤s102)
139.真实处理指令2)在机器3b完成将工件90从作业位置p1传送到装载台11上的操作并且负载传感器13检测到工件90放置在装载台11上之后,控制机器2开始传送工件90(步骤s104)
140.虚拟处理可以包括补偿基于机器的操作获得的真实信息和基于虚拟机器的操作获得的虚拟信息之间的差异的补充处理。虚拟处理可以包括补充处理,该补充处理包括用预定数据补充真实信息和虚拟信息之间的差异的处理。
141.例如,虚拟修改程序可以包括以下补充处理指令。
142.补充处理指令1)在虚拟控制器600b控制虚拟机器v3b时,生成真实处理指令1中的第一补充数据,以模拟指示摄像头5已经检测到工件90补充处理指令2)在虚拟控制器600b控制虚拟机器v3b时,生成真实处理指令2中的第二补充数据,以模拟指示负载传感器13检测到工件90放置在装载台11上
143.补充处理指令3)在虚拟控制器600a控制虚拟机器v3a时,生成真实处理指令2中的上述第二补充数据
144.补充处理指令4)在自身控制器控制虚拟机器v2时,生成真实处理指令2中的上述第二补充数据
145.真实信息包括指示摄像头5检测到工件90的信息(第一检测信息)和指示负载传感器13检测到工件90放置在装载台11上的信息(第二检测信息)。在虚拟控制器600b控制虚拟机器v3b时,虚拟信息不包括第一检测信息或第二检测信息。另一方面,通过根据补充处理指令1的补充处理生成第一补充数据来补充第一检测信息。进一步地,通过根据补充处理指令2的补充处理生成第二补充数据来补充第二检测信息。
146.在虚拟控制器600a控制虚拟机器v3a时,虚拟信息不包括第二检测信息。另一方面,通过根据补充处理指令3的补充处理生成第二补充数据来补充第二检测信息。
147.在自身控制器控制虚拟机器v2时,虚拟信息不包括第二检测信息。另一方面,通过根据补充处理指令4的补充处理生成第二补充数据来补充第二检测信息。
148.虚拟处理可以包括用于跳过真实处理的至少一部分的跳过处理。例如,虚拟修改程序可以包括以下跳过处理指令。
149.跳过处理指令1)在虚拟控制器600b控制虚拟机器v3b时,在真实处理指令1中执行用于跳过等待摄像头5检测工件90的过程的第一跳过处理
150.跳过处理指令2)在虚拟控制器600b控制虚拟机器v3b时,在真实处理指令2中执行用于跳过等待负载传感器13检测工件90布置在装载台11上的过程的第二跳过处理
151.跳过处理指令3)在虚拟控制器600a控制虚拟机器v3a时,在真实处理指令2中执行第二跳过处理
152.跳过处理指令4)在自身控制器控制虚拟机器v2时,在真实处理指令2中执行第二跳过处理
153.处理单元113在另一控制器控制机器时执行预定的真实处理,并且在另一控制器控制虚拟机器时执行与真实处理至少部分不同的虚拟处理。当虚拟控制器600a(第一控制器)控制虚拟机器v3a(第一虚拟机器)并且控制器200b(第二控制器)控制机器3b(第二机器)时,处理单元113可以执行其中与机器3a(第一机器)的操作有关的第一部分不同于真实处理的虚拟处理。当控制器200a(第一控制器)控制机器3a并且虚拟控制器600b(第二控制器)控制虚拟机器v3b(第二虚拟机器)时,处理单元113可以执行其中与机器3b(第二机器)的操作有关的第二部分不同于真实处理的虚拟处理。
154.处理单元113可以执行包括用于补偿真实信息和虚拟信息之间的差异的补充处理的虚拟处理。处理单元113可以执行补充处理,包括用于通过预定信息补偿真实信息和虚拟信息之间的差异的处理。
155.例如,当控制器200a控制机器3a并且控制器200b控制机器3b时,处理单元113基于真实程序执行真实处理。详细地说,在机器3b根据真实处理指令1完成将工件90放置在作业位置p1的操作并且摄像头5检测到工件90之后,处理单元113向控制器200a发送螺钉紧固的开始命令。在机器3b完成将工件90从作业位置p1传送到装载台11上的操作并且负载传感器13检测到工件90放置在装载台11上之后,处理单元113使机器2根据真实处理指令2开始传送工件90。
156.当虚拟控制器600a替代控制器200a控制虚拟机器v3a时,处理单元113基于真实程序和虚拟修改程序执行其中与机器3a的操作相关的部分不同于真实处理的虚拟处理。详细地说,在机器3b根据真实处理指令1完成将工件90放置在作业位置p1的操作并且摄像头5检测到工件90之后,处理单元113向虚拟控制器600a发送螺钉紧固的开始命令。在机器3b完成将工件90从作业位置p1传送到装载台11上的操作之后,根据基于补充处理指令3修正的真实处理指令2,处理单元113生成第二补充数据,第二补充数据指示负载传感器13检测到工件90放置在装载台11上,并且处理单元113基于第二补充数据开始机器2对工件90的传送。
157.当虚拟控制器600b替代控制器200b控制虚拟机器v3b时,处理单元113基于真实程序和虚拟修改程序执行其中与机器3b的操作相关的部分不同于真实处理的虚拟处理。详细而言,在虚拟机器v3b根据基于补充处理指令1修改的真实处理指令1完成将工件90放置在作业位置p1的操作之后,处理单元113生成指示摄像头5检测到工件90的第一补充数据,并基于第一补充数据向控制器200a发送螺钉紧固的开始命令。在机器3b根据基于补充处理指令2修改的真实处理指令2完成将工件90从作业位置p1传送到装载台11上的操作之后,处理单元113生成指示负载传感器13已经检测到工件90布置在装载台11上的第二补充数据,并且基于第二补充数据开始机器2对工件90的传送。
158.处理单元113可以执行包括用于跳过真实处理的至少一部分的跳过处理指令的虚拟处理。作为示例,当虚拟控制器600a控制虚拟机器v3a而不是控制器200a时,在机器3b根
据真实处理指令1完成将工件90布置在作业位置p1的操作并且摄像头5检测到工件90之后,处理单元113向虚拟控制器600a发送螺钉紧固的开始命令。此外,在机器3b完成将工件90从作业位置p1传送到装载台11的操作之后,根据基于跳过处理指令3修改的真实处理指令2,处理单元113使机器2开始传送工件90,而不等待负载传感器13检测工件90放置在装载台11上。
159.当虚拟控制器600b替代控制器2b控制虚拟机器v3b时,根据基于跳过处理指令1修改的真实处理指令1,在虚拟机器v3b完成将工件90放置在作业位置p1的操作之后,不等待摄像头5检测到工件90,处理单元113就向控制器200a发送螺钉紧固的开始命令。另外,在机器3b完成将工件90从作业位置p1传送到装载台11上的操作之后,根据基于跳过处理指令2修改的真实处理指令2,处理单元113使机器2开始传送工件90,而不等待负载传感器13检测到工件90布置在装载台11上。
160.控制器100可以被配置为基于对用户界面的输入来生成虚拟处理。例如,控制器100还包括界面生成单元121、替代目标指定单元122和过程生成单元123。
161.界面生成单元121生成用户界面,该用户界面包括指示当另一控制器在真实处理中控制虚拟机器时不能执行的一个或多个不可执行部的显示部,以及用于向一个或多个不可执行部中的每一个输入替代处理的输入部。在本实施例中,界面生成单元121使控制器300显示用户界面。稍后在控制器300的描述中将描述用户界面的具体示例。
162.替代目标指定单元122基于真实信息和虚拟信息之间的差异指定一个或多个不可执行部。例如,在虚拟控制器600a控制虚拟机器v3a时,基于虚拟信息中不包括第二检测信息的事实,替代目标指定单元122将等待第二检测信息的部分指定为不可执行部。类似地,在虚拟控制器600b控制虚拟机器v3b时,基于虚拟信息中不包括第一检测信息和第二检测信息的事实,替代目标指定单元122将等待第一检测信息和第二检测信息的部分指定为不可执行部。界面生成单元121使显示部显示由替代目标指定单元122指定的一个或多个不可执行部。
163.过程生成单元123基于对用户界面的输入部的输入生成虚拟处理。例如,过程生成单元123基于对输入部的输入,生成上述的补充处理指令或跳过处理指令,并且使程序存储单元112存储辅助处理指令或跳过处理指令。
164.控制器100可以被配置为基于真实信息和虚拟信息之间的差异来生成补充处理。例如,过程生成单元123可以被配置为基于真实信息和虚拟信息之间的差异来生成补充处理。
165.例如,在虚拟控制器600a控制虚拟机器v3a时,基于虚拟信息中不包括第二检测信息的事实,过程生成单元123生成补充处理指令3,并将生成的补充处理指令3存储在程序存储单元112。类似地,当虚拟控制器600b控制虚拟机器v3b时,基于虚拟信息中不包括第一检测信息和第二检测信息的事实,过程生成单元123生成补充处理指令1和补充处理指令2,并将生成的补充处理指令1和补充处理指令2存储在程序存储单元112中。
166.控制器100可以被配置为即使当自身控制器的控制目标是虚拟机器时也执行虚拟处理。例如,控制器100还包括控制目标确定单元131和发送单元132。控制目标确定单元131单元确定自身控制器的控制目标是机器(从属机器)还是虚拟机器(从属虚拟机器)。例如,控制目标确定单元131确定自身控制器的控制目标是机器2还是虚拟机器v2。例如,控制目
标确定单元131基于自身控制器是否是在模拟设备400中配置的虚拟控制器,确定自身控制器的控制目标是机器2还是虚拟机器v2。
167.如稍后将描述的,控制器100本身可以被配置为执行用于实际控制机器2的真实模式和用于控制虚拟机器v2的虚拟模式。在这种情况下,控制目标确定单元131基于选择了真实模式和虚拟模式中的哪一个来确定自身控制器的控制目标是机器2还是虚拟机器v2。
168.处理单元113在自身控制器的控制目标是机器的情况下执行真实控制处理,并且在自身控制器的控制目标是虚拟机器的情况下执行与真实控制处理至少部分不同的虚拟控制处理。例如,当另一控制器控制虚拟机器并且自身控制器控制从属机器时,处理单元执行其中与机器(由另一控制器控制的机器)的操作相关的外部依赖部分与真实处理不同的虚拟处理。该虚拟处理包括在上述真实控制处理中。当另一控制器控制机器并且自身控制器控制从属虚拟机器时,处理单元113可以执行其中与从属机器的操作相关的从属部分不同于真实处理的虚拟处理。该虚拟处理包括在上述虚拟控制处理中。
169.发送单元132将附加了控制目标确定单元131的确定结果的信息发送到另一控制器。例如,发送单元132向控制器200a或虚拟控制器600a发送通过将控制目标确定单元131的确定结果(例如,标志)添加到用于操作机器3a的命令(控制信息)而获得的信息。另外,发送单元132将控制目标确定单元131的确定结果添加到用于操作机器3b的指令(控制信息)而获得的信息发送给控制器200b或虚拟控制器600b。
170.控制器100可以被配置为收集和存储机器2和机器3a、3b、v3a和v3b的控制数据。控制数据包括从控制器200a和200b或虚拟控制器600a和600b发送到控制器100的控制信息、从控制器100发送到控制器200a和200b或虚拟控制器600a和600b的控制命令、从控制器100发送到机器2的控制命令、摄像头5的检测结果、扭矩传感器61的检测结果、把持传感器62的检测结果等。例如,控制器100包括数据累积单元141、数据库142和数据显示单元143。数据累积单元141将机器2和机器3a、3b、v3a和v3b的控制数据按时间序列累积在数据库142中。数据显示单元143将数据库142中累积的控制数据显示在控制器300等上。
171.数据累积单元141可以将包括指示自身控制器的控制目标是从属机器还是从属虚拟机器的确定结果和指示另一控制器的控制目标是机器还是虚拟机器的确定结果包括在控制数据中,并将控制数据累积在数据库142中。在这种情况下,可以容易地区分在真实空间rs中获得的数据和在虚拟空间vs中获得的数据,并且可以提高累积控制数据的可用性。
172.机器人控制器
173.控制器200a是基于来自控制器100的命令控制机器3a的机器人控制器,并且控制器200b是基于来自控制器100的命令控制机器3b的机器人控制器。如图10所示,控制器200a包括向机器3a提供驱动功率的电源电路280和控制电源电路280的控制电路290。控制电路290包括确定单元211、程序存储单元212和处理单元213作为功能块。
174.确定单元211确定另一控制器是控制机器还是控制对应于机器的虚拟机器。确定单元211可以基于从另一控制器接收到的信息来确定另一控制器是控制机器还是控制虚拟机器。从另一控制器接收到的信息可以包括另一控制器中的控制信息和指示另一控制器是控制机器还是控制虚拟机器的标志,并且确定单元211基于标志可以确定另一控制器是控制机器还是控制虚拟机器。
175.控制信息的配置可以根据另一控制器是控制机器还是控制虚拟机器而变化。在这
种情况下,确定单元211可以基于控制信息确定另一控制器是控制机器还是控制虚拟机器。
176.可以想象,当另一控制器控制机器时控制信息被加密,而当另一控制器控制虚拟机器时控制信息不被加密。在这种情况下,确定单元211可以基于控制信息是否被加密来确定另一控制器是控制机器还是控制虚拟机器。
177.根据另一控制器是控制机器还是控制虚拟机器,用于从另一控制器接收信息的通信条件可能不同。通信条件的差异的具体示例包括通信延迟时间的差异、用于通信的端口的差异等。当用于从另一控制器接收信息的通信条件取决于另一控制器是控制机器还是控制虚拟机器而不同时,确定单元211可以基于用于从另一控制器接收信息的通信条件而确定另一控制器是控制机器还是控制虚拟机器。
178.程序存储单元212存储预定的真实程序。当另一控制器控制机器并且自身控制器控制机器时,真实程序是使控制器200a执行预定的真实处理的程序。程序存储单元212还存储虚拟修改程序,该虚拟修改程序使机器200在另一控制器控制虚拟机器时执行通过修改真实处理的至少一部分而获得的虚拟处理。
179.在图5的示例中,程序存储单元212存储的真实程序可以包括以下处理指令。
180.真实处理指令2-1)在机器3a开始利用工具60a进行的螺钉紧固之后,当扭矩传感器61检测到的扭矩达到预定值时,控制机器3a完成利用工具60a进行的螺钉紧固
181.虚拟处理可以包括补偿基于机器的操作获得的真实信息和基于虚拟机器的操作获得的虚拟信息之间的差异的补充处理。虚拟处理可以包括补充处理,该补充处理包括用预定数据补充真实信息和虚拟信息之间的差异的处理。
182.例如,虚拟修改程序可以包括以下补充处理指令。
183.补充处理指令2-1)当虚拟控制器600b控制虚拟机器v3b时,在真实处理指令2-1中利用工具60a进行的螺钉紧固开始之后预定时间已经流逝的时刻,生成补充数据以模拟地指示扭矩传感器61检测到的扭矩已达到预定值
184.补充处理指令2-2)当自身控制器控制虚拟机器v3a时,在真实处理指令2-1中利用工具60a进行的螺钉紧固开始之后预定时间流逝的时刻,生成上述补充数据
185.真实信息包括指示由扭矩传感器61检测到的扭矩已达到预定值的信息(检测信息)。虚拟控制器600b控制虚拟机器v3b时和自身控制器控制虚拟机器v3a时的检测信息不包括在虚拟信息中。另一方面,通过根据补充处理指令2-1或补充处理指令2-2的补充处理生成补充数据来补充检测信息。
186.虚拟处理可以包括用于跳过真实处理的至少一部分的跳过处理。例如,虚拟修改程序可以包括以下跳过处理指令。
187.跳过处理指令2-1)在虚拟控制器600b控制虚拟机器v3b时,在真实处理指令2-1中利用工具60a进行的螺钉紧固开始之后预定时间流逝(跳过处理指令)的时刻,跳过等待由扭矩传感器61检测到的扭矩达到预定值的处理
188.跳过处理指令2-2)当自身控制器控制虚拟机器v3a时,在真实处理指令2-1中利用工具60a进行的螺钉紧固开始之后预定时间流逝的时刻,执行上述跳过处理
189.处理单元213在另一控制器控制机器时执行预定的真实处理,并且在另一控制器控制虚拟机器时执行与真实处理至少部分不同的虚拟处理。在虚拟控制器600b(第一控制器)控制虚拟机器v3b(第一虚拟机器)并且控制器100(第二控制器)控制机器2(第二机器)
时,处理单元213可以执行其中与机器3b(第一机器)的操作有关的第一部分不同于真实处理的虚拟处理。当控制器200b(第一控制器)控制机器3b并且虚拟控制器500(第二控制器)控制虚拟机器v2(第二虚拟机器)时,处理单元213可以执行其中与机器2(第二机器)的操作有关的第二部分不同于真实处理的虚拟处理。
190.处理单元213可以执行包括用于补偿真实信息和虚拟信息之间的差异的补充处理的虚拟处理。处理单元213可以执行补充处理,包括用于通过预定信息补偿真实信息和虚拟信息之间的差异的处理。处理单元213可以执行包括用于跳过真实处理的至少一部分的跳过处理指令的虚拟处理。
191.例如,当控制器200b控制机器3b并且控制器100控制机器2时,处理单元213基于真实程序执行真实处理。具体而言,处理单元213根据真实处理指令2-1控制机器3a开始利用工具60a进行的螺钉紧固,然后当扭矩传感器61检测到的扭矩达到预定值时,控制机器3a完成利用工具60a进行的螺钉紧固。
192.当虚拟控制器600b替代控制器200b控制虚拟机器v3b时,处理单元213基于真实程序和虚拟修改程序执行与机器3b的操作相关的部分不同于真实处理的虚拟处理。详细地,处理单元213控制机器3a根据基于补充处理指令2-1修正的真实处理指令2-1开始由工具60a进行螺钉紧固,在预定时间流逝的时刻生成补充数据,并且基于补充数据控制机器3a完成由工具60a进行的螺钉紧固。
193.处理单元213可以根据基于跳过处理指令2-1修改的真实处理指令2-1控制机器3a开始利用工具60a进行的螺钉紧固,然后控制机器3a完成利用工具60a进行的螺钉紧固,而不在预定时间已经流逝的时刻等待由扭矩传感器61检测到的扭矩达到预定值。
194.控制器200a可以被配置为基于对用户界面的输入来生成虚拟处理。例如,机器200还包括界面生成单元221、替代目标指定单元222和过程生成单元223。
195.界面生成单元221生成用户界面,该用户界面包括指示当另一控制器在真实处理中控制虚拟机器时不能执行的一个或多个不可执行部的显示部,以及用于向一个或多个不可执行部中的每一个输入替代处理的输入部。在本实施例中,界面生成单元221使控制器300显示用户界面。稍后将在控制器300的描述中描述用户界面的具体示例。
196.替代目标指定单元222基于真实信息和虚拟信息之间的差异指定一个或多个不可执行部。例如,当虚拟控制器600b控制虚拟机器v3b时,替代目标指定单元222基于检测信息不包括在虚拟信息中的事实,将等待检测信息的部分指定为不可执行部。界面生成单元221使显示部显示由替代目标指定单元222指定的一个或多个不可执行部。
197.过程生成单元223基于对用户界面的输入部的输入生成虚拟处理。例如,过程生成单元223基于对输入部的输入,生成上述的补充处理指令或跳过处理指令,并且使程序存储单元112存储补充处理指令或跳过处理指令。
198.控制器200a可以被配置为基于真实信息和虚拟信息之间的差异来生成补充处理。例如,过程生成单元223可以被配置为基于真实信息和虚拟信息之间的差异来生成补充处理。例如,过程生成单元223在虚拟控制器600b控制虚拟机器v3b时基于检测信息不包括在虚拟信息中的事实生成补充处理指令2-1,并且将补充处理指令2-1存储在程序存储单元112中。
199.控制器200a可以被配置为即使当自身控制器的控制目标是虚拟机器时也执行虚
拟处理。例如,控制器200a还包括控制目标确定单元231和发送单元232。控制目标确定单元231确定自身控制器的控制目标是机器(从属机器)还是虚拟机器(从属虚拟机器)。例如,控制目标确定单元231确定自身控制器的控制目标是机器3a还是虚拟机器v3a。例如,控制目标确定单元231基于自身控制器是否是在模拟设备400中配置的虚拟控制器,确定自身控制器的控制目标是机器3a还是虚拟机器v3a。
200.如稍后将描述的,控制器200a本身可以被配置为执行用于实际控制机器3a的真实模式和用于控制虚拟机器v3a的虚拟模式。在这种情况下,控制目标确定单元231基于选择了真实模式和虚拟模式中的哪一个来确定自身控制器的控制目标是机器3a还是虚拟机器v3a。
201.处理单元213在自身控制器的控制目标是机器时执行真实控制处理,在自身控制器的控制目标是虚拟机器时执行与真实控制处理至少部分不同的虚拟控制处理。例如,当另一控制器控制虚拟机器并且自身控制器控制从属机器时,处理单元执行其中与机器(由另一控制器控制的机器)的操作相关的外部依赖部分与真实处理不同的虚拟处理。该虚拟处理包括在上述真实控制处理中。当另一控制器控制机器并且自身控制器控制从属虚拟机器时,处理单元213可以执行其中与从属机器的操作相关的从属部分与真实处理不同的虚拟处理。该虚拟处理包括在上述虚拟控制处理中。
202.作为示例,当自身控制器控制从属虚拟机器时,处理单元213根据基于补充处理指令2-2修改的真实处理指令2-1控制机器3a开始利用工具60a进行的螺钉紧固,在预定时间流逝的时刻生成补充数据,并且基于补充数据控制机器3a完成利用工具60a进行的螺钉紧固。
203.处理单元213可以根据基于跳过处理指令2-2修改的真实处理指令2-1控制机器3a开始利用工具60a进行的螺钉紧固,然后控制机器3a完成利用工具60a进行的螺钉紧固,而在预定时间已经流逝的时刻不等待由扭矩传感器61检测到的扭矩达到预定值。
204.发送单元232将附加了控制目标确定单元231的确定结果的信息发送到另一控制器。例如,发送单元232向控制器100或虚拟控制器500发送通过将控制目标确定单元231的确定结果(例如,标志)添加到指示机器3a的操作结果的信息(控制信息)而获得的信息。
205.类似于控制器200a,控制器200b包括电源电路280和控制电路290。在图5的示例中,存储在控制器200b的程序存储单元212中的真实程序可以包括以下处理指令。
206.真实处理指令3-1)控制机器3b执行用工具60b将工件90把持在作业位置p1的操作,然后在把持传感器62检测到工具60b把持工件90之后,控制机器3b执行将工件90从作业位置p1传送到装载台11上的操作
207.此外,虚拟修改程序可以包括以下补充处理指令。
208.补充处理指令3-1)当虚拟控制器600a控制虚拟机器v3a时,在真实处理指令2-1中生成模拟地指示把持传感器62检测到把持工件90的补充数据
209.补充处理指令3-2)当虚拟控制器500控制虚拟机器v2时,在真实处理指令2-1中生成上述补充数据
210.补充处理指令3-3)当自身控制器控制虚拟机器v3b时,在真实处理指令2-1中生成上述补充数据
211.真实信息包括指示把持传感器62已经检测到把持工件90的信息(检测信息)。当虚
拟控制器600a控制虚拟机器v3a时、虚拟控制器500控制虚拟机器v2时以及自身控制器控制虚拟机器v3b时,检测信息不包括在虚拟信息中。另一方面,通过根据补充处理指令3-1、补充处理指令3-2或补充处理指令3-3的补充处理生成补充数据来补充检测信息。
212.虚拟处理可以包括用于跳过真实处理的至少一部分的跳过处理指令。例如,虚拟修改程序可以包括以下跳过处理指令。
213.跳过处理指令3-1)当虚拟控制器600a控制虚拟机器v3a时,跳过真实处理指令3-1中控制机器3b执行用工具60b将工件90把持在作业位置p1的操作的处理(第一跳过处理)
214.跳过处理指令3-2)当虚拟控制器600a控制虚拟机器v3a时,等待由把持传感器62检测到把持工件90的跳过处理(在第一跳过处理之后的真实处理指令3-1中的第二跳过处理)
215.跳过处理指令3-3)当虚拟控制器500控制虚拟机器v2时,执行真实处理指令3-1中的第一跳过处理
216.跳过处理指令3-4)当虚拟控制器500控制虚拟机器v2时,在真实处理指令3-1中的第一跳过处理之后执行第二跳过处理
217.跳过处理指令3-5)在自身控制器控制虚拟机器v3b时,执行真实处理指令3-1中的第二跳过处理
218.当控制器200b控制机器3b并且控制器100控制机器2时,处理单元213基于真实程序执行真实处理。详细而言,处理单元213根据真实处理指令3-1,控制机器3b执行利用工具60b将工件90把持在作业位置p1的操作,然后在把持传感器62检测到工具60b把持工件90之后,控制机器3b将工件90从作业位置p1传送到装载台11。
219.当虚拟控制器600a替代控制器200a控制虚拟机器v3a时,处理单元213基于真实程序和虚拟修改程序执行其中与机器3a的操作相关的部分不同于真实处理的虚拟处理。详细地,根据基于跳过处理指令3-1和补充处理指令3-1修改的真实处理指令3-1,处理单元213生成补充数据,而不控制机器3b执行用工具60b将工件90把持在作业位置p1的操作,并且控制机器3b基于补充数据执行将工件90从作业位置p1传送到装载台11上的操作。
220.根据基于跳过处理指令3-1和跳过处理指令3-2修改的真实处理指令3-1,处理单元213可以将工件90从作业位置p1传送到装载台11上,而不使机器3b执行由工具60b把持机器3b的工件90的操作并且不等待由把持传感器62检测到把持工件90。
221.当虚拟控制器500控制虚拟机器v2而不是控制器100时,处理单元213基于真实程序和虚拟修改程序执行其中与机器2的操作相关的部分不同于真实处理的虚拟处理。具体而言,处理单元213根据基于跳过处理指令3-3和补充处理指令3-2修改的真实处理指令3-1生成补充数据,而不使机器3b执行由工具60b把持作业位置p1的工件90的操作,并基于补充数据使机器3b执行将工件90从作业位置p1传送到装载台11上的操作。
222.根据基于跳过处理指令3-3和跳过处理指令3-4修改的真实处理指令3-1,处理单元213可以将工件90从作业位置p1传送到装载台11,而不使机器3b执行由工具60b把持机器3b的工件90的操作并且不等待把持传感器62检测到把持工件90。
223.例如,在虚拟控制器600a控制虚拟机器v3a的情况下并且在虚拟控制器500控制虚拟机器v2的情况下,过程生成单元223可以基于检测信息不包括在虚拟信息中的事实来生成补充处理指令3-1和补充处理指令3-2,并且将生成的虚拟信息存储在程序存储单元112
中。
224.控制器200b的控制目标确定单元231确定自身控制器的控制目标是机器3b还是虚拟机器v3b。例如,控制目标确定单元231可以基于自身控制器是否是被配置为模拟设备400的虚拟控制器来确定自身控制器的控制目标是机器3b还是虚拟机器v3b。
225.如稍后将描述的,控制器200b本身可以被配置为执行用于实际控制机器3b的真实模式和用于控制虚拟机器v3b的虚拟模式。在这种情况下,控制目标确定单元231基于选择了真实模式和虚拟模式中的哪一个来确定自身控制器的控制目标是机器3b还是虚拟机器v3b。
226.处理单元213在自身控制器的控制目标是机器时执行实际控制处理,并且在自身控制器的控制目标是虚拟机器时执行与真实控制处理至少部分不同的虚拟控制处理。例如,当另一控制器控制虚拟机器并且自身控制器控制从属机器时,与机器(由另一控制器控制的机器)的操作相关的外部依赖部分在处理单元213中执行与真实处理不同的虚拟处理。该虚拟处理包括在上述真实控制处理中。当另一控制器控制机器并且自身控制器控制从属虚拟机器时,处理单元213可以执行其中与从属机器的操作相关的从属部分与真实处理不同的虚拟处理。该虚拟处理包括在上述虚拟控制处理中。
227.作为示例,当自身控制器控制从属虚拟机器时,处理单元213根据基于补充处理指令3-3修改的真实处理指令3-1,使机器3b执行由工具60b将工件90把持在作业位置p1的操作,生成补充数据,并基于补充数据使机器3b执行将工件90从作业位置p1传送到装载台11上的操作。
228.处理单元213可以根据基于跳过处理指令3-5修改的真实处理指令3-1,使机器3b执行由工具60b将工件90把持在作业位置p1的操作,然后使机器3b执行将工件90从作业位置p1传送到装载台11上的操作,而不等待把持传感器62检测到把持工件90。
229.发送单元232将附加了控制目标确定单元231的确定结果的信息发送到另一控制器。例如,发送单元232向控制器100或虚拟控制器500发送通过将控制目标确定单元231的确定结果(例如,标志)添加到指示机器3b的操作结果的信息(控制信息)而获得的信息。
230.虚拟控制器
231.如图11所示,虚拟控制器500包括作为功能块的分别对应于控制器100的确定单元111、程序存储单元112和处理单元113的确定单元511、程序存储单元512和处理单元513。与确定单元111类似,确定单元511确定另一控制器是控制机器还是控制对应于机器的虚拟机器。程序存储单元512存储与程序存储单元112中存储的真实程序和虚拟修改程序相同的程序。处理单元513在另一控制器控制机器时模拟处理单元113的真实处理,并且在另一控制器控制虚拟机器时模拟处理单元113的虚拟处理。
232.处理单元513执行的处理与处理单元113执行的处理的不同之处主要在于,基于模型存储单元410中存储的三维模型在虚拟空间vs中操作虚拟机器v2,而不在真实空间rs中操作机器2。在其他方面,处理单元513执行的处理与处理单元113执行的处理基本上相似。
233.虚拟控制器500还可以包括分别对应于控制器100的界面生成单元121、替代目标指定单元122和过程生成单元123的界面生成单元521、替代目标指定单元522和过程生成单元523。界面生成单元521生成与界面生成单元121生成的用户界面相似的用户界面。在本实施例中,界面生成单元521使控制器300显示用户界面。稍后将在控制器300的描述中描述用
户界面的具体示例。
234.与替代目标指定单元122类似,替代目标指定单元522基于真实信息和虚拟信息之间的差异指定一个或多个不可执行部。界面生成单元521使显示部显示由替代目标指定单元522指定的一个或多个不可执行部。
235.与过程生成单元123类似,过程生成单元523基于对用户界面的输入部的输入来生成虚拟处理。例如,过程生成单元523基于对输入部的输入,生成上述的补充处理指令或跳过处理指令,并且使程序存储单元512存储补充处理指令或跳过处理指令。
236.虚拟控制器500还可以包括分别对应于控制器100的控制目标确定单元131和发送单元132的控制目标确定单元531和发送单元532。与控制目标确定单元131类似,控制目标确定单元531确定自身控制器的控制目标是机器(从属机器)还是虚拟机器(从属虚拟机器)。
237.处理单元513在自身控制器的控制目标是机器时执行真实控制处理,并且在自身控制器的控制目标是虚拟机器时执行与真实控制处理至少部分不同的虚拟控制处理。例如,当另一控制器控制虚拟机器并且自身控制器控制从属机器时,处理单元513执行其中与机器(由另一控制器控制的机器)的操作相关的外部依赖部分与真实处理不同的虚拟处理。该虚拟处理包括在上述真实控制处理中。当另一控制器控制机器并且自身控制器控制从属虚拟机器时,处理单元513可以执行其中与从属机器的操作相关的从属部分不同于真实处理的虚拟处理。该虚拟处理包括在上述虚拟控制处理中。
238.与发送单元132类似,发送单元532将附加了控制目标确定单元531的确定结果的信息发送到另一控制器。例如,发送单元532向控制器200a或虚拟控制器600a发送通过将控制目标确定单元531的确定结果(例如,标志)添加到用于操作机器3a的命令(控制信息)而获得的信息。发送单元532向控制器200b或虚拟控制器600b发送将控制目标确定单元531的确定结果附加到用于操作机器3b的指令(控制信息)而获得的信息。
239.虚拟控制器500还可包括分别对应于控制器100的数据累积单元141、数据库142和数据显示单元143的数据累积单元541、数据库542和数据显示单元543。与数据累积单元141类似,数据累积单元541将机器2、机器3a、3b、v3a和v3b的控制数据按时间序列累积在数据库542中。数据显示单元543将数据库542中累积的控制数据显示在控制器300等上。
240.如图12所示,虚拟控制器600a包括作为功能块的分别对应于控制器200a的确定单元211、程序存储单元212和处理单元213的确定单元611、程序存储单元612和处理单元613。与确定单元211类似,确定单元611确定另一控制器是控制机器还是控制对应于机器的虚拟机器。程序存储单元612存储与程序存储单元212中存储的真实程序和虚拟修改程序相同的程序。处理单元613在另一控制器控制机器时模拟处理单元213的真实处理,并且在另一控制器控制虚拟机器时模拟处理单元213的虚拟处理。
241.处理单元613执行的处理与处理单元213执行的处理的不同之处主要在于基于模型存储单元410中存储的三维模型在虚拟空间vs中操作虚拟机器v3a而不在真实空间rs中操作机器3a。在其他方面,处理单元613执行的处理与处理单元213执行的处理基本上相似。
242.虚拟控制器600a还可以包括分别对应于控制器200a的界面生成单元221、替代目标指定单元222和过程生成单元223的界面生成单元621、替代目标指定单元622和过程生成单元623。界面生成单元621生成与界面生成单元221生成的用户界面相似的用户界面。在本
实施例中,界面生成单元621使控制器300显示用户界面。稍后将在控制器300的描述中描述用户界面的具体示例。
243.与替代目标指定单元222类似,替代目标指定单元622基于真实信息和虚拟信息之间的差异指定一个或多个不可执行部。界面生成单元621使显示部显示由替代目标指定单元622指定的一个或多个不可执行部。
244.与过程生成单元223类似,过程生成单元623基于对用户界面的输入部的输入来生成虚拟处理。例如,过程生成单元623基于对输入部的输入,生成上述的补充处理指令或跳过处理指令,并且使程序存储单元612存储补充处理指令或跳过处理指令。
245.虚拟控制器600a还可以包括分别对应于控制器200a的控制目标确定单元231和发送单元232的控制目标确定单元631和发送单元632。与控制目标确定单元231类似,控制目标确定单元631确定自身控制器的控制目标是机器(从属机器)还是虚拟机器(从属虚拟机器)。
246.处理单元613在自身控制器的控制目标是机器时执行真实控制处理,并且在自身控制器的控制目标是虚拟机器时,执行与真实控制处理至少部分不同的虚拟控制处理。例如,当另一控制器控制虚拟机器并且自身控制器控制从属机器时,处理单元613执行其中与机器(由另一控制器控制的机器)的操作相关的外部依赖部分与真实处理不同的虚拟处理。该虚拟处理包括在上述真实控制处理中。当另一控制器控制机器并且自身控制器控制从属虚拟机器时,处理单元613可以执行其中与从属机器的操作相关的从属部分不同于真实处理的虚拟处理。该虚拟处理包括在上述虚拟控制处理中。
247.与发送单元232类似,发送单元632将附加了控制目标确定单元631的确定结果的信息发送到另一控制器。例如,发送单元632向控制器100或虚拟控制器500发送通过将控制目标确定单元631的确定结果(例如,标志)添加到指示虚拟机器v3a的操作结果的信息(控制信息)而获得的信息。
248.类似于虚拟控制器600a,虚拟控制器600b包括分别对应于控制器200b的确定单元211、程序存储单元212和处理单元213的确定单元611、程序存储单元612和处理单元613。处理单元613执行的处理与处理单元213执行的处理的不同之处主要在于,基于模型存储单元410中存储的三维模型在虚拟空间vs中操作虚拟机器v3b,而不在真实空间rs中操作机器3b。在其他方面,处理单元613执行的处理与处理单元213执行的处理基本上相似。
249.与虚拟控制器600a类似,虚拟控制器600b还可以包括分别对应于控制器200b的界面生成单元221、替代目标指定单元222和过程生成单元223的界面生成单元621、替代目标指定单元622和过程生成单元623。与虚拟控制器600a类似,虚拟控制器600b还可以包括分别对应于控制器200b的控制目标确定单元231和发送单元232的控制目标确定单元631和发送单元632。发送单元632向控制器100或虚拟控制器500发送通过将控制目标确定单元631的确定结果(例如标志)附加到指示虚拟机器v3b的操作结果的信息(控制信息)而得到的信息。
250.设置控制器
251.控制器300是设置控制器100、200a和200b以及虚拟控制器500、600a和600b的控制条件的设置控制器。控制条件的具体示例,除了控制增益以外,还包括在由把持传感器62进行的螺钉紧固中由扭矩传感器61检测到的扭矩的上述预定值。控制器300是能够与控制器
100、200a和200b以及虚拟控制器500、600a和600b(其他控制器)中的每一个进行通信的控制器。
252.如图13所示,控制器300包括确定单元311、程序存储单元312和条件设置处理单元313作为功能块。确定单元311确定另一控制器是控制机器还是控制对应于机器的虚拟机器。确定单元311可以基于从另一控制器接收到的信息来确定另一控制器是控制机器还是控制虚拟机器。从另一控制器接收到的信息可以包括另一控制器中的控制信息和指示另一控制器控制机器还是虚拟机器的标志,并且确定单元311可以基于该标志来确定另一控制器是控制机器还是控制虚拟机器。
253.控制信息的配置可以根据另一控制器是控制机器还是控制虚拟机器而变化。在这种情况下,确定单元311可以基于控制信息确定另一控制器是控制机器还是控制虚拟机器。
254.可以想象,当另一控制器控制机器时,控制信息被加密,而当另一控制器控制虚拟机器时,控制信息不被加密。在这种情况下,确定单元311可以基于控制信息是否被加密来确定另一控制器是控制机器还是控制虚拟机器。
255.根据另一控制器是控制机器还是控制虚拟机器,用于从另一控制器接收信息的通信条件可能不同。通信条件的差异的具体示例包括通信延迟时间的差异、用于通信的端口的差异等。当用于从另一控制器接收信息的通信条件取决于另一控制器是控制机器还是控制虚拟机器而不同时,确定单元311可以基于用于从另一控制器接收信息的通信条件来确定另一控制器是控制机器还是控制虚拟机器。
256.程序存储单元312存储预定的真实程序。真实程序是当另一控制器控制控制器300时使机器执行预定真实处理的程序。程序存储单元312还存储虚拟修改程序,该虚拟修改程序使得控制器300在另一控制器控制虚拟机器时执行通过修改真实处理的至少一部分而获得的虚拟处理。
257.存储在程序存储单元312中的真实程序包括以下真实设置处理指令。
258.真实设置处理指令1)生成用于设置控制器100的控制条件的用户界面(以下称为“真实界面”),并基于对真实界面的输入来设置控制器100的控制条件
259.真实设置处理指令2)为控制器200a生成真实界面,并基于对真实界面的输入为控制器200a设置控制条件
260.真实设置处理指令3)为控制器200b生成真实界面,并基于对真实界面的输入为控制器200b设置控制条件
261.虚拟处理可以包括生成与由真实设置处理指令生成的真实界面的可配置项相比具有不同的可配置项的虚拟界面。
262.例如,虚拟修改程序可以包括以下项目改变指令。
263.项目改变指令1)当虚拟控制器500替代控制器100作为控制条件的设置目标时,使控制器100的真实界面中的设置项目的一部分无效
264.项目改变指令2)当虚拟控制器600a替代控制器200a作为控制条件的设置目标时,使控制器200a的真实界面中的设置项目的一部分无效
265.项目改变指令3)当虚拟控制器600b替代控制器200b作为控制条件的设置目标时,使控制器200b的真实界面中的设置项目的一部分无效
266.条件设置处理单元313在另一控制器控制机器时执行预定的真实处理,并且在另
一控制器控制虚拟机器时执行与真实处理至少部分不同的虚拟处理。作为示例,条件设置处理单元313在设置了控制条件的另一控制器是控制机器2的控制器100时,基于真实设置处理指令1对控制器100设置控制条件。当另一控制器是控制虚拟机器v2的虚拟控制器500时,条件设置处理单元313根据基于项目改变指令1修正的真实设置处理指令1生成虚拟界面,其中控制器100的真实界面中的设置项目的一部分无效,并且基于对虚拟界面的输入设置虚拟控制器500的控制条件。
267.条件设置处理单元313在设置了控制条件的另一控制器是控制机器3a的控制器200a时,基于真实设置处理指令2对控制器200a设置控制条件。当另一控制器是控制虚拟机器v3a的虚拟控制器600a时,条件设置处理单元313根据基于项目改变指令2修正的真实设置处理指令2生成虚拟界面,其中控制器200a的真实界面中的设置项目的一部分无效,并且基于对虚拟界面的输入设置虚拟控制器600a的控制条件。
268.条件设置处理单元313在设置了控制条件的另一控制器是控制机器3b的控制器200b时,基于真实设置处理指令3对控制器200b设置控制条件。当另一控制器是控制虚拟机器v3b的虚拟控制器600b时,条件设置处理单元313根据基于项目改变指令3修正的真实设置处理指令3生成虚拟界面,其中控制器200b的真实界面中的设置项目的一部分无效,并且基于对虚拟界面的输入设置虚拟控制器600b的控制条件。
269.控制器300可以被配置为基于对用户界面的输入来生成虚拟处理。例如,控制器300还包括界面生成单元321和过程生成单元322。
270.界面生成单元321生成用户界面,通过该用户界面可以为每个控制器输入真实界面中的设置项目中的要在虚拟界面中无效的项目。以下,该用户界面被称为“项目设置界面”。过程生成单元322基于对项目设置界面的输入生成项目改变指令1、项目改变指令2、项目改变指令3,并将它们存储在程序存储单元312中。
271.界面生成单元321还可以生成用于选择性地显示由控制器100、200a和200b以及虚拟控制器500、600a和600b中的每一个生成的用户界面的用户界面。以下,该用户界面被称为“处理生成界面”,并且与上述的真实界面、虚拟界面和项目设置界面进行区别。
272.图14是示出由界面生成单元321生成的示例处理生成界面的示意图。如图14所示,处理生成界面350包括控制器选择部351、机器选择部352、显示部353、输入部354和登记指令单元355。
273.控制器选择部351是用于选择控制器100、200a和200b以及虚拟控制器500、600a和600b之一的输入界面。
274.机器选择部352是用于基于控制器选择部351选择的控制器选择另一控制器控制的机器的输入界面。例如,当在控制器选择部351中选择了控制器100时,机器3a或机器3b中的一个对应于由另一控制器控制的机器。当在控制器选择部351中选择控制器200a时,机器2或机器3b中的一个是由另一控制器控制的机器。当在控制器选择部351中选择控制器200b时,机器2或机器3a中的一个是由另一控制器控制的机器。
275.在对应于在机器选择部352中选择的机器的虚拟机器在由控制器选择部351中选择的控制器执行的过程中被控制的情况下,显示部353显示不可执行部356。输入部354是用于将替代处理输入到每个不可执行部356的部分。例如,输入部354包括用于输入对应于在显示部353中选择的不可执行部356的替代处理的输入界面。显示部353和输入部354中的显
示内容由在控制器选择部351中选择的控制器的界面生成单元(界面生成单元121、221、521和621中的任何一个)生成。
276.登记指令单元355是用于基于输入部354中输入的替代处理请求虚拟处理的生成和登记的输入界面。当登记指令单元355请求虚拟处理的生成和登记时,控制器选择部351中选择的控制器的过程生成单元(过程生成单元123、223、523和623中的任何一个)基于输入部354的输入内容生成和登记虚拟处理。
277.控制器300还可以包括处理命令单元331和数据显示单元332。处理命令单元331指示控制器100或虚拟控制器500执行预定处理。数据显示单元332通过执行处理来显示控制器100或虚拟控制器500中累积的控制数据。
278.在以上描述中,已经说明了控制虚拟机器的虚拟控制器与控制机器的控制器100、200a和200b分开地设置在模拟设备400中的情况,但是配置不限于此。控制器100、200a和200b本身可以具有控制虚拟机器的功能(模拟机器的控制)。
279.在这种情况下,控制器200a和200b可以在自身控制器的控制目标是机器时执行包括用于使电源电路280输出驱动功率的处理的真实控制处理,并且可以在自身控制器的控制目标是虚拟机器时执行不包括用于使电源电路280输出驱动功率的处理的虚拟控制处理。
280.硬件配置
281.图15是示出控制器100、控制器200a、控制器200b、模拟设备400和控制器300的示例硬件配置的框图。控制器100包括控制电路190。控制电路190包括一个或多个处理器191、存储器192、存储装置193、通信端口194、控制端口195和机器系统196。存储装置193是非易失性存储介质,并且存储用于使控制电路190执行以下操作的程序:确定另一控制器是控制机器还是控制对应于机器的虚拟机器;当另一控制器控制机器时执行预定的真实处理;并且当另一控制器控制虚拟机器时,执行与真实处理至少部分不同的虚拟处理。例如,存储装置193将用于配置上述控制器100的功能块的程序存储到控制电路190中。存储装置193的具体示例包括闪存和硬盘。
282.存储器192临时存储从存储装置193加载的程序等。存储器192的具体示例包括随机存取存储器。处理器191重复执行加载在存储器192中的程序,并将通过执行程序产生的操作结果临时存储在存储器192中,从而配置控制电路190中的功能块。
283.通信端口194基于来自处理器191的命令经由通信网络900与其他控制器通信。控制端口195基于来自处理器191的命令控制机器2。
284.如上所述,控制器200a和控制器200b中的每一个都包括电源电路280和控制电路290。控制电路290包括一个或多个处理器291、存储器292、存储装置293和通信端口294。存储装置293是非易失性存储介质,并且存储用于使控制电路290执行以下操作的程序:确定另一控制器是控制机器还是控制对应于机器的虚拟机器;当另一控制器控制机器时执行预定的真实处理;并且当另一控制器控制虚拟机器时,执行与真实处理至少部分不同的虚拟处理。例如,存储装置293将用于配置上述控制器200a或控制器200b的功能块的程序存储到控制电路290中。存储装置293的具体示例包括闪存和硬盘。
285.存储器292临时存储从存储装置293加载的程序等。存储器292的具体示例包括随机存取存储器。处理器291重复执行加载在存储器292中的程序,并将通过执行程序产生的
操作结果临时存储在存储器292中,从而配置控制电路290中的功能块。
286.通信端口294基于来自处理器291的命令经由通信网络900与其他控制器通信。电源电路280基于来自处理器291的命令生成机器3a或机器3b的驱动功率。
287.模拟设备400包括模拟电路490。模拟电路490包括一个或多个处理器491、存储器492、存储装置493和通信端口494。存储装置493是非易失性存储介质,并且存储用于使模拟电路490执行以下操作的程序:确定另一控制器是控制机器还是控制对应于机器的虚拟机器;当另一控制器控制机器时执行预定的真实处理;并且当另一控制器控制虚拟机器时,执行与真实处理至少部分不同的虚拟处理。例如,存储装置493存储用于将上述模拟设备400的功能块配置到模拟电路490中的程序。存储装置493的具体示例包括闪存和硬盘。
288.存储器492临时存储从存储装置493加载的程序等。存储器492的具体示例包括随机存取存储器。处理器491重复执行加载在存储器492中的程序,并将通过执行程序产生的操作结果临时存储在存储器492中,从而配置模拟电路490中的功能块。通信端口494基于来自处理器291的命令经由通信网络900与其他控制器通信。
289.控制器300包括设置电路390。设置电路390包括一个或多个处理器391、存储器392、存储装置393、通信端口394、显示设备395和输入设备396。存储装置393是非易失性存储介质,并且存储用于使设置电路390执行以下操作的程序:确定另一控制器是控制机器还是控制对应于机器的虚拟机器;当另一控制器控制机器时执行预定的真实处理;并且当另一控制器控制虚拟机器时,执行与真实处理至少部分不同的虚拟处理。例如,存储装置393将用于配置上述控制器300的功能块的程序存储到设置电路390中。存储装置393的具体示例包括闪存和硬盘。
290.存储器392临时存储从存储装置393加载的程序等。存储器392的具体示例包括随机存取存储器。处理器391重复执行加载在存储器392中的程序,并将通过执行程序产生的操作结果临时存储在存储器392中,从而配置设置电路390中的功能块。
291.通信端口394基于来自处理器391的命令经由通信网络900与其他控制器通信。显示设备395基于来自处理器391的命令显示上述各种用户界面。显示设备395的具体示例包括液晶监视器。输入设备396获取对各种用户界面的输入。输入设备396的具体示例包括键盘和鼠标。输入设备396可以与显示设备395集成为所谓的触摸面板。
292.系统构建过程
293.接着,作为系统构建方法的示例,将描述由机器系统1执行的示例系统构建过程。这里,系统构建过程是指用于构建系统的过程,在该系统中,多个控制器中的每一个通过以逐步方式将多个控制器的控制目标从虚拟机器改变为机器来控制机器。
294.该过程包括:基于从另一控制器接收到的信息,确定另一控制器控制对应于机器的虚拟机器;执行虚拟处理并显示执行结果;基于从另一控制器接收的信息,确定另一控制器的控制目标从虚拟机器改变为机器;响应于另一控制器的机器目标从虚拟机器改变为机器,将虚拟处理改变为与虚拟处理至少部分不同的真实处理;以及执行真实处理并显示执行结果。
295.系统构建过程由例如控制器300整体执行。如图16所示,控制器300首先执行步骤s01和s02。在步骤s01中,控制器300为其他可通信控制器中的每一个生成虚拟处理。稍后将描述步骤s01的具体内容。
296.在步骤s02中,控制器300为其他可通信控制器中的每一个设置控制条件。稍后将描述步骤s02的具体内容。
297.接下来,控制器300执行步骤s03、s04、s05和s06。在步骤s03中,处理命令单元331等待由输入设备396等输入的在当前系统配置中处理的试用请求。在步骤s04中,处理命令单元331指示控制器100或虚拟控制器500执行处理。
298.此后,在控制器100或虚拟控制器500、控制器200a或虚拟控制器500a以及控制器200b或虚拟控制器500b中的每一个中,确定另一控制器是控制机器还是控制虚拟机器,以及当确定另一控制器控制虚拟机器时,执行与之对应的虚拟处理。在步骤s05中,数据显示单元332等待控制器100或虚拟控制器500中的处理完成。在步骤s06中,数据显示单元332执行处理以显示累积在控制器100或虚拟控制器500中的控制数据(处理结果)。
299.接着,控制器300执行步骤s07。在步骤s07中,处理命令单元331确认输入设备396等是否再次输入了处理的试用请求。如果在步骤s07中确定再次输入了试用请求,则控制器300执行步骤s08。在步骤s08中,处理命令单元331确认其他控制器中的任一个的控制目标是否从虚拟机器改变为机器。如果在步骤s08中确定其他控制器中的任何一个的控制目标从虚拟机器改变为机器,则控制器300执行与步骤s02类似的步骤s09。
300.此后,控制器300将处理返回到步骤s04。当步骤s07确定控制目标没有从虚拟机器改变为机器时,控制器300将处理返回到步骤s04而不执行步骤s09。如上所述,重复执行过程的试用和控制数据的显示(过程的执行结果)。在该重复过程中,当另一控制器的控制目标从虚拟机器改变为机器时,与机器相关的虚拟处理被真实处理替代,并显示真实处理的控制数据。
301.通过重复该过程,构建了多个控制器中的每一个控制机器的系统,并且当显示适当的控制数据时,系统构建过程完成。
302.当步骤s07确定没有再次输入试用请求时,控制器300执行如图17所示的步骤s11。在步骤s11中,处理命令单元331确认输入设备396等是否输入了虚拟处理的改变请求。如果在步骤s11中确定输入了改变虚拟处理的请求,则控制器300执行与步骤s01类似的步骤s12。
303.如果在步骤s11中确定没有输入改变虚拟处理的请求,则控制器300执行步骤s13。在步骤s13中,处理命令单元331确认输入设备396等是否输入了控制条件的改变请求。当在步骤s13中确定输入了控制条件的改变请求时,控制器300执行与步骤s02类似的步骤s14。
304.在步骤s12或s14之后,控制器300将处理返回到步骤s07。如果在步骤s13中确定没有输入控制条件的改变请求,则控制器300将处理返回到步骤s07而不执行步骤s12和s14。此后,直到再次输入试用请求,虚拟处理和控制条件响应于该请求被重置。
305.图18是示出在步骤s01中生成虚拟处理的过程的流程图。首先,控制器300执行步骤s21、s22和s23。在步骤s21中,界面生成单元321生成上述处理生成界面350,并将处理生成界面350显示在显示设备395等中。在步骤s22中,界面生成单元321等待在控制器选择部351中选择控制器。以下,在控制器选择部351中选择的控制器被称为“选择的控制器”。在步骤s23中,界面生成单元321等待在机器选择部352中选择机器。以下,在机器选择部352中选择的机器被称为“另一机器”,并且在机器选择部352中选择的另一机器被称为“选择的机器”。
306.接着,控制器300执行步骤s24。在步骤s24中,选择的控制器的替代目标指定单元(替代目标指定单元122、替代目标指定单元222、替代目标指定单元522和替代目标指定单元622中的任一个)基于真实信息和虚拟信息之间的差异指定对应于选择的机器的一个或多个不可执行部。选择的控制器的界面生成单元(界面生成单元121、221、521和621中的任一个)在显示部353中显示由替代目标指定单元指定的一个或多个不可执行部356。
307.接下来,控制器300执行步骤s25和s26。在步骤s25中,选择的控制器的界面生成单元等待在显示部353中选择的不可执行部356。在步骤s26中,选择的控制器的界面生成单元显示用于向选择的不可执行部356输入替代处理的输入部354。
308.接下来,控制器300执行步骤s27和s28。在步骤s27中,选择的控制器的过程生成单元(过程生成单元123、223、523和623中的任一个)等待登记指令单元355的登记请求的输入。在步骤s28中,选择的控制器的过程生成单元基于对登记指令单元355的输入生成虚拟处理。
309.接着,控制器300执行步骤s31。在步骤s31中,界面生成单元321确认是否为所有其他机器完成了虚拟处理的生成。
310.如果在步骤s31中确定还存在没有为其生成虚拟处理的机器,则控制器300将处理返回到步骤s23。此后,重复步骤s23至s31,直到为所有其他机器完成了虚拟处理的生成。
311.当在步骤s31中确定为所有其他机器完成了虚拟处理的生成时,控制器300执行步骤s32。在步骤s32中,检查是否为在控制器选择部351中要选择的所有控制器完成了虚拟处理的生成。如果在步骤s32中确定还存在没有为其生成虚拟处理的机器,则控制器300将处理返回到步骤s22。此后,重复步骤s22至s31,直到为所有控制器完成虚拟处理的生成。当在步骤s32中确定为所有控制器完成了虚拟处理的生成时,控制器300完成虚拟处理的生成过程。
312.图19是示出步骤s02中的控制条件的设置过程的流程图。首先,控制器300执行步骤s41和s42。在步骤s41中,条件设置处理单元313等待另一控制器设置输入设备396等选择的控制条件。以下,选择的另一控制器被称为“选择的控制器”。在步骤s42中,条件设置处理单元313确定选择的控制器的控制目标是机器还是虚拟机器。
313.如果在步骤s42中确定选择的控制器的控制目标是机器,则控制器300执行步骤s43。如果步骤s42确定选择的控制器的控制目标是虚拟机器,则控制器300执行步骤s44。在步骤s43中,条件设置处理单元313生成真实界面,并将真实界面显示在显示设备395等上。在步骤s44中,条件设置处理单元313生成虚拟界面,并将虚拟界面显示在显示设备395等上。
314.在步骤s43或步骤s44之后,控制器300执行步骤s45和s46。在步骤s45中,条件设置处理单元313等待输入设备396等输入控制条件的登记请求。在步骤s46中,基于对真实界面或虚拟界面的输入来设置选择的控制器的控制条件。
315.图20是示出在控制器100或虚拟控制器500、控制器200a或虚拟控制器500a、以及控制器200b或虚拟控制器500b中的每一个中响应于在步骤s04中执行处理的请求而执行的示例处理过程的流程图。以下,控制器100或虚拟控制器500、控制器200a或虚拟控制器500a、以及控制器200b或虚拟控制器500b被统称为“控制控制器”。
316.如图20所示,控制控制器首先执行步骤s51。在步骤s51中,检查自身控制器是控制
从属机器还是控制从属虚拟机器。如果在步骤s51中确定自身控制器控制从属机器,则控制控制器执行步骤s52。如果在步骤s51中确定自身控制器控制从属虚拟机器,则控制控制器执行步骤s53。在步骤s52中,处理单元生成与真实处理相同的待执行处理。在步骤s53中,处理单元生成从属部分与真实处理不同的待执行过程。
317.在步骤s52或步骤s53之后,控制控制器执行步骤s61。在步骤s61中,确定单元从另一控制器接收包括控制信息的信息。
318.接着,控制控制器执行步骤s62。在步骤s62中,确定单元基于从另一控制器接收到的信息检查另一控制器是控制机器还是控制虚拟机器。
319.如果在步骤s62中确定另一控制器控制机器,则控制控制器执行步骤s63。如果在步骤s62中确定另一控制器控制虚拟机器,则控制控制器执行步骤s64。在步骤s63中,处理单元将待执行的过程中与机器的操作相关的外部依赖部分与真实处理相匹配。在步骤s64中,处理单元基于虚拟修改程序相对于真实处理的外部依赖部分校正待执行的过程的外部依赖部分。
320.接着,控制控制器执行步骤s65。在步骤s65中,处理单元执行待执行的过程。接着,控制控制器执行步骤s66。在步骤s66中,处理单元确认是否已完成所有预定过程。如果在步骤s66中确定还有未完成的处理,则控制控制器执行步骤s67。在步骤s67中,处理单元将待执行的过程转移到下一过程。此后,控制控制器将处理返回到步骤s61。此后,直到完成所有过程,待执行的过程的生成和执行基于另一控制器是控制机器还是控制虚拟机器而重复。如果在步骤s66中确定所有处理完成,则控制控制器完成处理过程。
321.实施例的效果
322.如上所述,控制器100、200a、200b、500、600a、600b可与其他控制器100、200a、200b、500、600a、600b通信。控制器100、200a、200b、500、600a、600b包括:确定单元111、211、311、511、611,被配置为确定其他控制器100、200a、200b、500、600a、600b是控制机器2、3a、3b还是控制对应于机器2、3a、3b的虚拟机器v2、v3a、v3b;以及处理单元113、213、313、513、613,被配置为在其他控制器100、200a、200b、500、600a、600b控制机器2、3a、3b时执行预定的真实处理,并且当其他控制器100、200a、200b、500、600a、600b控制虚拟机器v2、v3a、v3b时,执行与真实处理至少部分不同的虚拟处理。
323.在其他控制器100、200a、200b、500、600a和600b中,即使机器2、3a和3b的操作可以被虚拟机器v2、v3a和v3b的操作模拟,因为真实空间不会随着虚拟机器v2、v3a和v3b的操作而改变,基于真实空间状态的过程不能在控制器100、200a、200b、500、600a和600b中执行,并且整个系统的过程可能无法模拟。另一方面,在控制器100、200a、200b、500、600a和600b中,确定其他控制器100、200a、200b、500、600a和600b是控制机器2、3a和3b还是控制虚拟机器v2、v3a和v3b,并且当其他控制器100、200a、200b、500、600a和600b控制虚拟机器v2、v3a和v3b时执行与真实处理至少部分不同的虚拟处理。如上所述,根据控制器100、200a、200b、500、600a和600b的处理内容取决于其他控制器100、200a、200b、500、600a和600b的控制目标是机器2、3a、3b还是虚拟机器v2、v3a和v3b而改变的配置,可以很容易地模拟整个系统的处理。
324.确定单元111、211、311、511和611可以被配置为基于用于从其他控制器100、200a、200b、500、600a和600b接收信息的通信条件确定其他控制器100、200a、200b、500、600a和
600b是控制机器2、3a和3b还是控制虚拟机器v2、v3a和v3b。基于来自其他控制器100、200a、200b、500、600a和600b的信息,可以容易且适当地确定其他控制器100、200a、200b、500、600a和600b是控制机器2、3a和3b还是控制虚拟机器v2、v3a和v3b。
325.从其他控制器100、200a、200b、500、600a和600b接收到的信息可以包括其他控制器100、200a、200b、500、600a和600b中的控制信息以及指示其他控制器100、200a、200b、500、600a和600b是控制机器2、3a和3b还是控制虚拟机器v2、v3a和v3b的标志。确定单元111、211、311、511和611可以被配置为基于标志确定其他控制器100、200a、200b、500、600a和600b是控制机器2、3a和3b还是控制虚拟机器v2、v3a和v3b。处理单元113、213、313、513和613可以被配置为基于控制信息执行真实处理或虚拟处理。可以更容易地确定其他控制器100、200a、200b、500、600a和600b是控制机器2、3a和3b还是控制虚拟机器v2、v3a和v3b。
326.从其他控制器100、200a、200b、500、600a和600b接收到的信息可以包括其他控制器100、200a、200b、500、600a和600b中的控制信息。确定单元111、211、311、511和611可以被配置为基于控制信息确定其他控制器100、200a、200b、500、600a和600b是控制机器2、3a和3b还是控制虚拟机器v2、v3a和v3b。处理单元113、213、313、513和613可以被配置为基于控制信息执行真实处理或虚拟处理。由于添加标志变得不必要,因此可以简化其他控制器100、200a、200b、500、600a和600b中的处理。
327.确定单元111、211、311、511和611可以被配置为基于用于从其他控制器100、200a、200b、500、600a和600b接收信息的通信条件,确定其他控制器100、200a、200b、500、600a和600b是控制机器2、3a、3b还是控制虚拟机器v2、v3a和v3b。即使在控制信息没有差异的情况下,也可以适当地确定其他控制器100、200a、200b、500、600a和600b是控制机器2、3a和3b还是控制虚拟机器v2、v3a和v3b。
328.处理单元113、213、313、513和613可以被配置为执行虚拟处理,包括用于补偿基于机器2、3a和3b的操作获得的真实信息与基于虚拟机器v2、v3a和v3b的操作获得的虚拟信息之间的差异的补充处理。可以更适当地模拟系统的操作。
329.处理单元113、213、313、513和613可以被配置为执行补充处理,补充处理包括用于相对于真实信息和虚拟信息之间的差异补充预定数据的处理。可以更适当地模拟系统的操作。
330.处理单元113、213、313、513和613可以被配置为执行包括用于跳过真实处理的至少一部分的跳过处理指令的虚拟处理。例如,通过跳过在虚拟机器v2、v3a和v3b的操作中不发生的等待真实空间变化的过程,可以容易地执行模拟。
331.控制器100、200a、200b、300、500、600a和600b还可以包括处理生成单元123、223、322、523和623,其被配置为基于真实信息和虚拟信息之间的差异来生成补充处理。可以更适当地模拟系统的操作。
332.控制器100、200a、200b、300、500、600a和600b可以包括:界面生成单元121、221、321、521和621,被配置为生成用户界面,该用户界面包括指示当其他控制器100、200a、200b、500、600a和600b在真实处理中控制虚拟机器v2、v3a和v3b时不能执行的一个或多个不可执行部的显示部,以及用于向一个或多个不可执行部中的每一个输入替代处理的输入部;以及处理生成单元123、223、322、523和623,被配置为基于对输入部的输入生成虚拟处理。提供支持虚拟处理的生成的用户界面可以提高控制器100、200a、200b、500、600a和600b
的可用性。
333.控制器100、200a、200b、500、600a和600b还可以包括替代目标指定单元122、222、522和622,其被配置为根据基于机器2、3a和3b的操作获得的真实信息和基于虚拟机器v2、v3a和v3b的操作获得的虚拟信息之间的差异来指定一个或多个不可执行部。界面生成单元121、221、321、521和621可以被配置为在显示部上显示由替代目标指定单元122、222、522和622指定的一个或多个不可执行部。还可以提高控制器100、200a、200b、500、600a和600b的可用性。
334.控制器100、200a、200b、500、600a和600b可以是其他控制器100、200a、200b、500、600a和600b,并且能够与第一控制器100、200a、200b、500、600a和600b以及第二控制器100、200a、200b、500、600a和600b通信,第一控制器100、200a、200b、500、600a和600b控制第一机器2、3a和3b作为机器2、3a和3b,第二控制器100、200a、200b、500、600a和600b控制第二机器2、3a和3b。确定单元111、211、311、511和611可以被配置为确定第一控制器100、200a、200b、500、600a和600b是控制第一机器2、3a和3b还是控制是虚拟机器v2、v3a和v3b的第一虚拟机器v2、v3a和v3b,以及第二控制器100、200a、200b、500、600a和600b是控制第二机器2、3a和3b还是控制对应于第二机器2、3a和3b的第二虚拟机器v2、v3a和v3b。处理单元113、213、313、513和613可以被配置为:当第一控制器100、200a、200b、500、600a和600b控制第一虚拟机器v2、v3a和v3b,并且第二控制器100、200a、200b、500、600a和600b控制第二机器2、3a和3b时,执行其中与第一机器2、3a和3b的操作相关的第一部分与真实处理不同的虚拟处理;以及当第一控制器100、200a、200b、500、600a和600b控制第一机器2、3a和3b,并且第二控制器100、200a、200b、500、600a和600b控制第二机器2、3a和3b时,执行其中与第二虚拟机器v2、v3a和v3b的操作相关的第二部分与真实处理不同的虚拟处理。由于处理单元113、213、313、513和613执行根据控制器100、200a、200b、500、600a和600b是虚拟的适当调整的虚拟处理,因此可以更适当地模拟系统的操作。
335.控制器100、200a、200b、500、600a和600b可以是可与包括其他控制器100、200a、200b、500、600a和600b的多个本地控制器100、200a、200b、500、600a和600b通信的主机控制器,并且可以被配置为经由本地控制器100、200a、200b、500、600a和600b中的每一个来控制包括机器2、3a和3b的多个本地机器2、3a和3b。
336.控制器100、200a、200b、500、600a和600b可以是被配置为控制从属机器2、3a和3b或对应于从属机器2、3a和3b的从属虚拟机器v2、v3a和v3b的控制器100、200a、200b、500、600a和600b。控制器100、200a、200b、500、600a和600b还可以包括控制目标确定单元131、231、531和631,其被配置为确定控制目标是从属机器2、3a和3b还是从属虚拟机器v2、v3a和v3b。处理单元113、213、313、513和613还可以被配置为:当其他控制器100、200a、200b、500、600a和600b控制虚拟机器v2、v3a和v3b并且控制器100、200a、200b、500、600a和600b控制从属机器2、3a和3b时,执行其中与机器2、3a和3b的操作相关的外部依赖部分与真实处理不同的虚拟处理;以及当其他控制器100、200a、200b、500、600a和600b控制机器并且控制器100、200a、200b、500、600a和600b控制从属虚拟机器v2、v3a和v3b时,执行与从属机器2、3a和3b的操作相关的从属部分不同于真实处理的虚拟处理。通过控制器100、200a、200b、500、600a和600b的处理内容根据控制器100、200a、200b、500、600a和600b自身是控制从属机器2、3a和3b还是控制从属虚拟机器v2、v3a和v3b而改变的配置,可以更容易地模拟整个系统的处
理。
337.控制器100、200a、200b、500、600a和600b还可以包括发送单元132、232、532和632,其被配置为向其他控制器100、200a、200b、500、600a和600b发送附加有控制目标确定单元131、231、531、631的确定结果的信息。这使得容易根据控制目标是从属机器2、3a和3b还是从属虚拟机器v2、v3a和v3b而改变其他控制器100、200a、200b、500、600a和600b的处理内容,并且可以更容易地模拟整个系统的处理。
338.根据本公开的另一方面的控制器100、200a、200b、500、600a和600b是可与其他控制器100、200a、200b、500、600a和600b通信并被配置为控制控制目标的控制器100、200a、200b、500、600a和600b。控制器100、200a、200b、500、600a和600b包括:控制目标确定单元131、231、531和631,被配置为确定控制目标是机器2、3a、3b还是虚拟机器v2、v3a、v3b;以及发送单元132、232、532和632,被配置为向其他控制器100、200a、200b、500、600a和600b发送附加有控制目标确定单元131、231、531和631的确定结果的信息。
339.根据控制器100、200a、200b、500、600a和600b,可以容易地确定在其他控制器100、200a、200b、500、600a和600b中,控制器100、200a、200b、500、600a和600b是控制控制机器2、3a、3b还是控制控制虚拟机器v2、v3a和v3b。这使得容易根据控制目标是从属机器2、3a和3b还是从属虚拟机器v2、v3a和v3b而改变其他控制器100、200a、200b、500、600a和600b中的处理内容,并且可以更容易地模拟涉及从属机器2、3a和3b的整个系统的处理。
340.控制器100、200a、200b、500、600a和600b还可以包括处理单元113、213、313、513和613,在控制目标是机器2、3a和3b时处理单元113、213、313、513和613执行真实控制处理,并且在控制目标是虚拟机器v2、v3a和v3b时处理单元113、213、313、513和613执行与真实控制处理至少部分不同的虚拟控制处理。因此,指示控制目标是从属机器2、3a和3b还是从属虚拟机器v2、v3a和v3b的确定结果能够有效地用于真实控制处理和虚拟控制处理之间的切换。
341.控制器100、200a、200b、500、600a和600b还可以包括电源电路,被配置为向机器2、3a和3b输出驱动功率。处理单元113、213、313、513和613在控制目标是机器2、3a和3b时,可以执行包括用于使电源电路输出驱动功率的处理的真实控制处理,并且在控制目标是虚拟机器v2、v3a和v3b时,可以执行不包括用于使电源电路输出驱动功率的处理的虚拟控制处理。
342.虽然以上对实施例进行了描述,但本发明并不限定于上述实施例,在不脱离本发明的范围内能够进行适当的修改。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1