信息处理装置、信息处理方法以及计算机可读记录介质与流程

文档序号:17302563发布日期:2019-04-03 05:14阅读:261来源:国知局
信息处理装置、信息处理方法以及计算机可读记录介质与流程

本公开涉及一种信息处理装置、信息处理方法以及包括程序(program)的计算机可读记录介质,尤其涉及一种对驱动控制对象的驱动机器的行为进行推测的信息处理装置、信息处理方法以及程序。



背景技术:

在工厂自动化(factoryautomation,fa)领域中,各种自动控制技术正得到广泛利用。在应用此类自动控制技术的系统(system)的设计或研究阶段,必须预先评估系统的性能。关于此类需求(needs),提出有基于对评价对象的动作进行模拟而获得的数据(data)来实施所述评估的方法。例如,国际公开第2016/181455号(专利文献1)揭示了下述结构:将对象动作的模拟(simulate)结果保存为文件(file),从文件逐帧地读出、显示对象的状态。

而且,在日本专利特开2017-97426号公报(专利文献2)中,揭示了一种再现系统行为的模拟(simulation)装置。专利文献2在段落0073中揭示了下述结构:模拟装置使用依序保存的追踪数据(tracedata)来再现系统行为,并且根据用户操作来适当变更再现的系统行为的时间间隔及更新间隔等。

现有技术文献

专利文献

专利文献1:国际公开第2016/181455号

专利文献2:日本专利特开2017-97426号公报



技术实现要素:

发明所要解决的问题

在对生产线(line)上配设的与fa相关的实机的控制程序进行设计时,用户要对通过控制程序的执行来控制的机械的一连串动作进行验证,并基于验证结果来修正控制程序。此种验证能够通过使用实机来容易地确认,但在无法使用实机的情况下,用户执行通过运算来推测实机动作的模拟程序。在执行模拟程序时,当用户想要确认一连串动作中的规定点(point)的动作时,不得不等到与规定点对应的运算结果被输出为止,验证需要时间。因此,存在想要可变地调整验证所需时间的需求。

关于此点,专利文献1与专利文献2是临时保存所有模拟结果或追踪数据,在显示时,将所述保存内容逐帧、或者控制显示间隔等地显示于画面。因此,专利文献1与专利文献2的方法中,用户必须等到所有模拟结果或追踪数据的计算完成,从而无法应对所述需求。

本发明是面向此种需求,目的之一在于提供一种环境,在对控制对象的一连串动作进行推测时,能够变更一连串动作的推测所耗费的时间。

解决问题的技术手段

本公开的一例的信息处理装置包括:第1仿真器(emulator),推测第1驱动机器的行为,所述第1驱动机器用于驱动在第1目标轨迹上移动的第1控制对象;第2仿真器,推测第2驱动机器的行为,所述第2驱动机器用于驱动在第2目标轨迹上移动的第2控制对象;以及视觉化模块(module),生成描绘数据,所述描绘数据是在相同的三维虚拟空间内对第1控制对象的动作及第2控制对象的动作进行视觉化而描绘。第1仿真器依据来自信息处理装置的运算指令来运算第1指令值,所述第1指令值是在每个控制周期控制第1驱动机器,第2仿真器依据运算指令来运算第2指令值,所述第2指令值是在每个控制周期控制第2驱动机器,视觉化模块使用第1指令值及第2指令值来生成描绘数据,运算指令包含移动量可变指令,所述移动量可变指令是对移动中的每个控制周期的移动量为可变的指令值的计算进行指示。

根据所述公开,第1仿真器及第2仿真器依据移动量可变指令,来算出每个控制周期的控制对象的移动量为可变的指令值。因此,在对控制对象的一连串动作进行推测时,能够变更一连串动作的推测所耗费的时间。

所述公开中,运算指令包含等倍运算指令,所述等倍运算指令是对每个控制周期的移动量与预定的单位移动量相等的指令值的计算进行指示。

根据所述公开,能够算出每个控制周期的移动量固定为单位移动量的指令值。

所述公开中,移动量可变指令包含n倍运算指令,所述n倍运算指令是对每个控制周期的移动量为单位移动量的n倍(其中,n>1)的指令值的计算进行指示。

根据所述公开,能够算出每个控制周期的移动量为单位移动量的n倍的指令值。由此,在对控制对象的一连串动作进行推测时,能够加大每个控制周期的移动量。因此,与固定为单位移动量的情况相比,能够缩短一连串动作的推测所耗费的时间,并且能够降低运算次数而减轻信息处理装置的运算所承受的负载。

所述公开中,移动量可变指令包含1/n倍运算指令,所述1/n倍运算指令是对每个控制周期的移动量为单位移动量的1/n倍(其中,n>1)的指令值的计算进行指示。

根据所述公开,能够算出每个控制周期的移动量为单位移动量的1/n倍的指令值。由此,在对控制对象的一连串动作进行推测时,能够减少每个控制周期的移动量,与固定为单位移动量的情况相比,能够低速地描绘第1控制对象的动作及第2控制对象的动作。

所述公开中,信息处理装置对第1指令值在控制周期间的第1变化量及第2指令值在控制周期间的第2变化量进行检测,在第1目标轨迹及第2目标轨迹中的与从仿真开始时计起的共同的经过时间对应的区间、且第1变化量及第2变化量这两者为阈值以下的区间,输出n倍运算指令。

根据所述公开,对于n倍运算指令,在用于使第1控制对象及第2控制对象移动的第1指令值及第2指令值这两者各自在控制周期间的变化量均为阈值以下,即,推测为两者均等速移动的区间,输出n倍运算指令。由此,在等速移动的无动作变化的期间,即,不妨碍动作确认的期间,能够加大描绘中的每个控制周期的移动量。

所述公开中,描绘数据包含表示第1控制对象及第2控制对象在三维虚拟空间内的位置的数据,信息处理装置在第1控制对象及第2控制对象在三维虚拟空间内的相对位置关系满足预定条件时,输出移动量可变指令。

根据所述公开,能够依据第1控制对象及第2控制对象在三维虚拟空间内的相对位置关系来输出移动量可变指令。

所述公开中,信息处理装置包括受理部,所述受理部受理用户对所述信息处理装置的输入,依据由受理部所受理的输入,输出移动量可变指令。

根据所述公开,用户能够通过对信息处理装置的输入,来使信息处理装置输出移动量可变指令。

所述公开中,信息处理装置对第1指令值在控制周期间的第1变化量及第2指令值在控制周期间的第2变化量进行检测,当第1变化量或第2变化量超过变化量阈值时,输出警告。

根据所述公开,当第1指令值或第2指令值在控制周期间内的变化量超过变化量阈值时,输出警告。由此,当存在根据移动量可变指令所算出的指令值会使每个控制周期的移动量的变化过大的可能性时,输出警告。

所述公开中,描绘数据包含表示第1控制对象及第2控制对象在三维虚拟空间内的位置的数据,信息处理装置在基于第1控制对象在三维虚拟空间内的位置的、移动距离在控制周期间的变化量、或者基于第2控制对象在三维虚拟空间内的位置的、移动距离在控制周期间的变化量超过距离阈值时,输出警告。

根据所述公开,当存在根据移动量可变指令所算出的指令值会使每个控制周期的移动距离的变化过大的可能性时,输出警告。

所述公开中,信息处理装置还包括:计时器(timer),输出可变的虚拟时刻,控制周期表示将虚拟时刻设为尺度的周期。

根据所述公开,能够与第1仿真器及第2仿真器的运算周期对应地将控制周期设为可变。

本公开的一例的信息处理装置所实施的处理方法包括下述步骤:推测第1驱动机器的行为,所述第1驱动机器用于驱动在第1目标轨迹上移动的第1控制对象;推测第2驱动机器的行为,所述第2驱动机器用于驱动在第2目标轨迹上移动的第2控制对象;以及生成描绘数据,所述描绘数据是在相同的三维虚拟空间内对第1控制对象的动作及第2控制对象的动作进行视觉化而描绘,在推测第1驱动机器的行为的步骤中,依据来自信息处理装置的运算指令来运算第1指令值,所述第1指令值是在每个控制周期控制第1驱动机器,在推测第2驱动机器的行为的步骤中,依据运算指令来运算第2指令值,所述第2指令值是在每个控制周期控制第2驱动机器,在生成描绘数据的步骤中,使用第1指令值及第2指令值来生成描绘数据,运算指令包含移动量可变指令,所述移动量可变指令是对移动中的每个控制周期的移动量为可变的指令值的计算进行指示。

根据所述公开,第1仿真器及第2仿真器依据移动量可变指令,来算出每个控制周期的控制对象的移动量为可变的指令值。因此,在对控制对象的一连串动作进行推测时,能够变更一连串动作的推测所耗费的时间。

本公开的一例的程序是使计算机(computer)执行所述信息处理装置所实施的处理方法。

根据所述公开,能够使计算机执行下述程序,所述程序使第1仿真器及第2仿真器依据移动量可变指令,来算出每个控制周期的控制对象的移动量为可变的指令值。当执行程序时,在对控制对象的一连串动作进行推测时,能够变更一连串动作的推测所耗费的时间。

发明的效果

根据本公开,能够提供下述环境,即,在对控制对象的一连串动作进行推测时,能够变更一连串动作的推测所耗费的时间。

附图说明

图1是表示本实施方式的信息处理装置100的适用场景的一例的示意图。

图2是表示本实施方式的生产线中配设的在线(online)控制系统1的结构例的示意图。

图3是说明机器人(robot)300的各轴的目标位置的图。

图4是示意性地表示本实施方式的对相当于机器人300的各臂(arm)的轴在三维虚拟空间内的位置进行计算的过程的图。

图5是概略地表示本实施方式的信息处理装置100的结构的图。

图6是表示图1的程序执行部31的结构例的图。

图7是说明本实施方式的基于虚拟时刻的仿真器同步的图。

图8是表示本实施方式的基于描绘数据的显示画面的一例的图。

图9是表示本实施方式的基于描绘数据的显示画面的另一例的图。

图10是说明本实施方式的信息处理装置100所实施的离线(offline)系统20的处理的图。

图11是说明本实施方式的信息处理装置100所实施的离线系统20的处理的图。

图12a至图12d是将本实施方式的高速仿真的速度变化关联于所描绘的轨迹来说明的图。

图13是说明本实施方式的用于高速仿真的指令值运算处理41的一例的图。

图14的(a)及图14的(b)是表示本实施方式的高速仿真中的警告消息(message)的显示的一例的图。

图15a及图15b是说明本实施方式的指定拉长部分的方法的一例的图。

图16是说明本实施方式的拉长部分的另一指定例的图。

图17是说明本实施方式的用于仿真的指令值运算处理42的图。

图18a至图18d是将本实施方式的低速仿真的速度变化关联于所描绘的轨迹来说明的图。

图19是说明本实施方式的用于低速仿真的指令值运算处理43的图。

图20a至图20c是说明本实施方式的对实施低速仿真的部分进行指定的方法的一例的图。

图21的(a)至图21的(e)是说明本实施方式的对实施高速仿真与低速仿真的部分进行指定的方法的一例的图。

图22a及图22b是表示本实施方式的用于对仿真的动作模式进行指定的用户接口(userinterface,ui)画面的一例的图。

符号的说明

1:在线控制系统

11:输入受理部

12a:共享存储器

13e、13f:伺服驱动器

14、14a、14b、14c、14d、14e、14f:伺服马达

15:显示控制部

18:周期生成部

19:描绘数据生成部

20:离线系统

21:模拟控制程序

29:虚拟时刻生成程序

30:视觉化程序

31:程序执行部

32:程序编辑器

33:机器人程序编辑器

34:程序编辑部

36:运算指令部

37:键盘

38:显示器

38a、38d、38f:图标

38e:时间

38g:画面

39:显示器驱动器

40、41、42、43:指令值运算处理50、51、52、53:描绘更新处理92:存储介质

100:信息处理装置

144:输入数据

145:输出数据

200:plc

210、211、212、311:轨迹

213:部分

251、252:轨迹数据

253、254:图像数据

260:plc仿真器

270:机器人仿真器

271:轨迹运算命令

272:机构运算命令

280:运算指令

300:机器人

301、401:描绘数据

303:轨迹计算程序

310:机器人控制器

371:plc程序

371a、381a:命令群

381:机器人程序

382:警告消息

383:消息

384:多边形

400:载台

410、411:等速区间

v1、v2:指令值

具体实施方式

以下,参照附图来说明依据本发明的各实施方式。以下的说明中,对于同一零件及构成元件标注同一符号。它们的名称及功能也相同。因此,不再重复对它们的详细说明。另外,以下说明的各实施方式及各变形例也可适当地选择组合。

<a.适用例>

首先,参照图1来说明适用本发明的场景的一例。图1是表示本实施方式的信息处理装置100的适用场景的一例的示意图。本实施方式的信息处理装置100对驱动任意的第1控制对象及第2控制对象的各驱动机器(例如伺服马达(servomotor)等致动器(actuator))的行为(例如马达的旋转量(包含角度、方向)等)进行推测,并依据所推测的行为来生成描绘数据301、401,所述描绘数据301、401用于对受到控制的各控制对象的动作进行描绘。第1控制对象以在第1目标轨迹上移动的方式受到驱动,而且,第2控制对象以在第2目标轨迹上移动的方式受到驱动。第1控制对象例如相当于载台(stage),第2控制对象例如相当于机器人,但控制对象并不限定于这些,可从能够成为控制对象的制造装置或设备中适当选择。

如图1所示,信息处理装置100具备:第1仿真器(例如,可编程逻辑控制器(programmablelogiccontroller,plc)(可编程控制器)仿真器260),推测第1驱动机器的行为,所述第1驱动机器用于驱动第1控制对象;第2仿真器(例如机器人仿真器270),推测第2驱动机器的行为,所述第2驱动机器用于驱动第2控制对象;以及视觉化模块(例如三维(threedimensional,3d)视觉化程序30),生成描绘数据301、401,所述描绘数据301、401用于在相同的虚拟空间内对第1控制对象的动作及第2控制对象的动作进行视觉化而描绘。

第1仿真器依据来自信息处理装置100的运算指令280来运算第1指令值v1,所述第1指令值v1是在每个控制周期控制第1驱动机器。而且,第2仿真器依据所述运算指令280来运算第2指令值v2,所述第2指令值v2是在每个所述控制周期控制第2驱动机器。所述运算指令280包含下述指令,即,对以上所述的第1目标轨迹与第2目标轨迹的移动中的每个控制周期的移动量为可变的指令值的计算进行指示。视觉化模块使用这样算出的第1指令值及第2指令值来生成以上所述的描绘数据301、401。

第1仿真器相当于将第1驱动机器作为实机来进行控制的程序,例如相当于包含plc程序371的多个命令的仿真程序。第2仿真器相当于将第2驱动机器作为实机来进行控制的程序,例如相当于包含机器人程序381的多个命令的仿真程序。

这样,本实施方式中,通过使用运算指令280,能够使每个控制周期的移动量可变而非固定。因此,能够对推测第1目标轨迹与第2目标轨迹的移动中的第1驱动机器及第2驱动机器的行为的处理所需的时间进行调整,即,缩短而高速地实施仿真,或者延长而低速地实施仿真。

例如,在缩短所需时间的运算指令280的情况下,能够缩短直至获取与第1或第2目标轨迹上的规定点对应的指令值的运算结果为止的所需时间,用户能够缩短行为验证所需的时间。而且,在延长所需时间的运算指令280的情况下,能够将基于使用在规定点处算出的指令值的描绘数据的描绘设为低速(减少每描绘周期的移动量),用户能够根据描绘内容来详细确认规定点处的行为。

本说明书中,“指令值”例如是针对包含伺服马达等致动器的驱动机器,将例如位置、速度、加速度、急动度(jerk)(加加速度)、角度、角速度、角加速度、角加加速度等数值作为指令而表示者。

以下,作为本发明的更具体的应用例,对本实施方式的信息处理装置100的更详细的结构及处理进行说明。

<b.控制系统的整体结构例>

依据本实施方式的信息处理装置100对驱动机器的行为进行推测,所述驱动机器用于驱动生产线中配设的作为控制对象的多个机械。作为此类控制对象,例示可动的载台400与抓起载台400上的工件(work)w而移动的机器人300,但控制对象机械并不限定于这些。对配设有这些控制对象机械作为实机的环境的一例进行说明。

图2是表示本实施方式的生产线中配设的在线控制系统1的结构例的示意图。参照图2,在线控制系统1(以下简称作控制系统1)包含信息处理装置100、作为控制器的一例的plc200、控制机器人300的机器人控制器310以及伺服驱动器13e、13f。信息处理装置100例如包含个人计算机(personalcomputer,pc)、平板终端等终端装置。伺服驱动器13e、13f(以下也总称作“伺服驱动器13”)驱动对应的伺服马达(m)14e、14f。

在plc200,经由现场网络(fieldnetwork)nw1而连接有信息处理装置100。对于现场网络nw1,例如采用以太网(ethernet(注册商标))。但是,现场网络nw1并不限定于ethernet,可采用任意通信方式。例如,plc200及信息处理装置100也可利用信号线直接连接。信息处理装置100提供设计控制程序的环境,所述控制程序用于控制机器人300及载台400的机械。在信息处理装置100上设计的控制程序经由现场网络nw1被送往plc200。

plc200执行所设计的控制程序,依照执行结果来对机器人控制器310或伺服驱动器13分别给予目标值,由此来对包含机器人300及载台400的对象进行控制。

在plc200,连接有机器人控制器310及伺服驱动器13。plc200、机器人控制器310及伺服驱动器13经由现场网络nw2而菊链(daisychain)地连接。对于现场网络nw2,例如采用ethercat(注册商标)。但是,现场网络nw2并不限定于ethercat,可采用任意通信方式。而且,连接形态并不限定于所述菊链,也可为树型(tree)连接或星型(star)连接之类的其他连接形态。

机器人300与载台400一边彼此联动一边使工件w移动。另外,此处为了简化说明,对工件w的移动进行说明,但并不限定于移动。例如也可为载台400上的机器人300对工件w的加工。

图2中,作为机器人300的驱动装置的一例,例示机器人300中所设的伺服马达14a~14d(以下也总称作“伺服马达14”)与驱动伺服马达14的机器人控制器310。同样地,作为载台400的驱动装置的一例,例示对载台400中所设的伺服马达14e、14f(以下也总称作“伺服马达14”)进行驱动的伺服驱动器13。机器人300受到驱动,由此,其行为在正交的x轴、y轴及z轴的三维空间内发生变化。载台400受到驱动,由此,其行为在与机器人300相同的三维空间内受到规定,特别是在x轴及y轴的平面内受到规定。

作为驱动装置,并不限定于伺服驱动器,根据作为被驱动装置的马达来采用对应的驱动装置。例如,在驱动感应马达或同步马达的情况下,作为驱动装置,也可采用逆变器(inverter)驱动器等。

机器人控制器310驱动机器人300的伺服马达14。在伺服马达14的旋转轴上配置有编码器(encoder)(未图示)。所述编码器将伺服马达的位置(旋转角度)、旋转速度、累计转数等作为伺服马达14的反馈(feedback)值而输出至机器人控制器310。

同样地,伺服驱动器13驱动载台400的伺服马达14。在伺服马达14的旋转轴上配置有编码器(未图示)。所述编码器将伺服马达的位置(旋转角度)、旋转速度、累计转数等作为伺服马达14的反馈值而输出至伺服驱动器13。

<c.机器人与载台的控制>

对控制系统1中的机器人300与载台400的控制进行说明。机器人300与载台400如上所述,具有可通过多个驱动轴来移动的可动部。这些各驱动轴受伺服马达驱动。具体而言,机器人300具有通过伺服马达14(伺服马达14a~14d)旋转而受到驱动的多个臂。伺服马达14分别旋转,由此来驱动对应的各臂。通过机器人控制器310控制伺服马达14的驱动,从而各臂三维移动。通过这样的各臂的移动,实现机器人300的动作。同样地,载台400也通过伺服马达14(伺服马达14e、14f)旋转而载台400移动。此种机器人300或载台400的移动量(移动的方向、移动距离)是由伺服马达14的旋转量(旋转的方向、角度)所决定。

本实施方式中,机器人300的各臂关联有虚拟的轴,由各轴的位置来决定机器人300的动作。图3是说明机器人300的各轴的目标位置的图。参照图3,各轴的目标位置依时间序列变化,以使机器人300的动作呈现成为目标的动作(以下也称作目标动作)。具体而言,机器人300的各臂依据依时间序列变化的图3的目标位置受到驱动,由此,各臂的移动速度及轨迹以成为依据目标的速度及轨迹的方式发生变化。

图3所示的、用于对机器人300的目标动作进行规定的目标位置被预先保存在plc200中。机器人控制器310从plc200接收目标位置,基于所接收的目标位置来决定各伺服马达的旋转量,并将指定所决定的旋转量的指令值输出至伺服马达14的各伺服马达。另外,目标位置也可仅保存在机器人控制器310中。

图4是示意性地表示本实施方式的对相当于机器人300的各臂的轴在三维虚拟空间内的位置进行计算的过程的图。参照图4,将伺服马达14a的旋转量表示为αa、伺服马达14b的旋转量表示为αb、伺服马达14c的旋转量表示为αc及伺服马达14d的旋转量表示为αd。对于伺服马达旋转量(αa,αb,αc,αd),使用规定函数来实施运算,由此,能够将伺服马达旋转量(αa,αb,αc,αd)转换为图3所示的xyz三维虚拟空间内的位置。图4中,例如表示抓住(catch)工件w的臂的轴在三维虚拟空间内的位置即三维坐标p(x,y,z),但其他轴的对应的三维坐标也能够同样地算出。因此,能够通过各臂的三维坐标p(x,y,z)的时间序列的变化,来表示机器人300在三维虚拟空间内的动作。

而且,本实施方式中,为了简化说明,将抓住工件w的臂的轴的三维坐标p(x,y,z),也用于检测后述的三维虚拟空间内的“干涉”。另外,在“干涉”的检测中,也可使用其他轴的三维坐标p(x,y,z),或者还可使用两个以上的轴的三维坐标p(x,y,z)的组合。

载台400也与机器人300同样地,载台400的移动速度及轨迹以表示目标位置的方式依时间序列变化,以使载台400的动作呈现目标动作。载台400的目标位置被预先保存在plc200中。

伺服驱动器13基于来自plc200的目标位置来决定各伺服马达的旋转量,并将指定所决定的旋转量的指令值输出至伺服马达14的各伺服马达。对于此种各伺服马达的旋转量,使用规定函数来实施运算,由此对于载台400,也能够转换成与机器人300相同的三维虚拟空间内的三维坐标q(x,y,0)。能够通过此种三维坐标q(x,y,0)的时间序列的变化,来表示载台400在三维虚拟空间内的动作。

另外,此处,载台400表示平面内的动作,因此三维坐标q的z轴固定为值0,但也可为其他固定值。

此种依据目标位置的载台400的移动轨迹是“第1目标轨迹”的一实施例。而且,依据目标位置的机器人300的移动轨迹是“第2目标轨迹”的一实施例。

<d.信息处理装置100的结构>

图5是概略地表示本实施方式的信息处理装置100的结构的图。在图2的控制系统1中,在将机器人300及载台400作为实机而由plc200控制的环境设为在线时,图5的信息处理装置100离线模拟控制系统1。

信息处理装置100是具备中央处理器(centralprocessingunit,cpu)2和保存程序及数据的保存部,并依据程序来进行动作的计算机系统。保存部包含只读存储器(readonlymemory,rom)3、随机存取存储器(randomaccessmemory,ram)4及硬盘驱动器(harddiskdrive,hdd)5。信息处理装置100还包含通信接口(interface)6及输入/输出(input/output,i/o)接口7。而且,信息处理装置100包含键盘(keyboard)37及显示器(display)38。键盘37受理包含来自用户的、对信息处理装置100的指示的输入。为了受理所述输入,信息处理装置100也可包含鼠标(mouse)等其他设备。信息处理装置100具备r/w(读写器(readerwriter))设备93,所述r/w设备93装卸自如地安装外部的存储介质92,向所安装的存储介质中读写程序和/或数据。

通信接口6是供信息处理装置100与包含plc200的外部机器进行通信的接口。

i/o接口7是对信息处理装置100的输入或来自信息处理装置100的输出的接口。如图5所示,i/o接口7连接于键盘37与显示器38,受理用户对键盘37输入的信息。而且,将信息处理装置100的处理结果输出至显示器38。显示器38包含液晶显示器(liquidcrystaldisplay,lcd)或有机电致发光(electroluminescence,el)显示器,显示依据从信息处理装置100输出的影像信号或图像信号的影像或图像。

<e.离线系统20的结构>

参照图1,将本实施方式的离线系统20的结构例关联于周边部来进行说明。图6是表示图1的程序执行部31的结构例的图。离线系统20模拟控制系统1。在此模拟中,由仿真器来执行机器人300及载台400的控制程序中所含的多个命令,由此,对驱动机器人300及载台400的伺服马达14的行为进行推测。

参照图1,信息处理装置100具备对信息处理装置100的各部进行控制的控制部10、受理用户对信息处理装置100的输入的输入受理部11及离线系统20。在离线系统20连接有显示器38。显示器38包含显示器驱动器39,所述显示器驱动器39依据显示控制数据而生成应显示的影像(image)数据,并依据影像数据来驱动显示器38。输入受理部11受理基于对键盘37的操作、或对显示器38上显示的图标(icon)等的操作的用户输入。控制部10是通过cpu2执行模拟控制程序21而实现。控制部10依据经由输入受理部11而受理的用户指示,来控制离线系统20。

离线系统20是包含程序及数据而构成,依据来自控制部10的指令,由cpu2执行程序,由此实现离线系统20。而且,在将离线系统20的处理结果显示于显示器38时,处理结果被转换为显示控制数据并输出至显示器驱动器39。显示器驱动器39按照依据显示控制数据的影像数据来驱动显示器38。由此,在显示器38的画面上,显示表示信息处理装置100及离线系统20的处理结果的图像。

(e-1.离线系统20的结构)

对离线系统20的结构进行说明。用于实现离线系统20的各部的程序及数据例如被保存在包含rom3、ram4及hdd5等的保存部中。

参照图1,离线系统20具备执行plc仿真器260及机器人仿真器270的主体即程序执行部31、及包含3d视觉化程序30并生成描绘数据的描绘数据生成部19。它们例如是作为程序模块(programmodule)而提供。

离线系统20也可还具备生成显示控制数据的显示控制部15、包含输出虚拟时刻的计时器的周期生成部18、及对控制程序进行编辑的程序编辑部34。

显示控制部15由描绘数据等生成显示控制数据,并输出至显示器驱动器39。显示器驱动器39依据来自显示控制部15的显示控制数据来驱动显示器38。由此,在画面上显示依据描绘数据的图像。

周期生成部18生成表示虚拟时刻的信号st,并将所生成的信号st输出至离线系统20的各部。信号st所表示的虚拟时刻可变。各部是与将信号st所表示的虚拟时刻设为尺度的周期同步地进行动作。本实施方式中,将虚拟时刻设为尺度的周期包含以上所述的控制周期。周期生成部18包含运算指令部36,所述运算指令部36依据来自控制部10的指示来生成运算指令280,并输出至程序执行部31。运算指令部36所生成的运算指令280例如包含后述的等倍运算指令、n倍运算指令及1/n倍运算指令。

而且,参照图1,离线系统20关联于描绘数据生成部19而包含轨迹数据251、252及图像数据253、254。而且,离线系统20关联于程序编辑部34而包含机器人300的控制程序即机器人程序381、载台400的控制程序即plc程序371。机器人程序381与plc程序371被保存在保存部中。当图1的各部包含程序时,这些程序及关联的数据例如被保存在rom3、ram4及hdd5等中。cpu2执行所保存的程序。

(e-2.程序执行部的仿真)

程序执行部31相当于执行plc仿真器260及机器人仿真器270的主体即执行引擎(engine)。参照图6,程序执行部31包含对plc200及伺服驱动器13的控制程序进行仿真的plc仿真器260、对机器人控制器310的控制程序进行仿真的机器人仿真器270及共享存储器12a。plc仿真器260与机器人仿真器270之间的数据交换是使用共享存储器12a来实现。经由共享存储器12a的、plc仿真器260与机器人仿真器270之间的数据交换,相当于plc200、伺服驱动器13及机器人控制器310之间的、经由现场网络nw2的ethercat的通信中的数据交换。

plc仿真器260是对机器人300及载台400的行为进行推测的程序,相当于包含plc程序371及机器人程序381中所含的多个命令的仿真程序。所述多个命令包含:命令群371a,包含plc程序371中所含的用于对载台400的行为进行控制的运动(motion)命令及运动运算命令;以及命令群381a,包含机器人程序381中所含的用于对机器人300的行为进行控制的多个机器人命令。命令群381a及命令群371a也可包含四则运算命令之类的其他命令。plc程序371例如是以循环(cyclic)执行型语言(例如梯形(ladder)语言)记载的程序,机器人程序381例如是以逐次执行型语言(例如解释器(interpreter)语言)记载的程序。因此,程序执行部31具备用于执行这些不同语言的程序的仿真器执行引擎。

每当基于共享存储器12a的输入数据144来执行plc仿真器260的这些命令群381a及命令群371a的各命令时,生成用于伺服马达的、以上所述的指令值v1,并作为输出数据145而保存到共享存储器12a中。

而且,机器人仿真器270相当于包含机器人控制器310的程序中所含的命令群的仿真程序。所述命令群包含:一个以上的轨迹运算命令271,用于基于共享存储器12a的输出数据,来算出机器人300的目标轨迹;以及一个以上的机构运算命令272,基于所算出的轨迹来算出各轴的指令值v2。

当基于共享存储器12a的输出数据145来执行机器人仿真器270的命令群时,生成用于机器人300的各轴的、以上所述的指令值v2,并作为输入数据144而保存到共享存储器12a中。

这样,由plc仿真器260与机器人仿真器270所生成的指令值可表示机器人300与载台400的伺服马达的被推测出的行为。而且,plc仿真器260与机器人仿真器270分别基于另一者所算出的指令值,来算出新的指令值。因此,能够通过根据这样算出的指令值所推测的伺服马达的行为,来表示机器人300与载台400的彼此联动的动作。

(e-3.描绘数据的生成)

参照图1,描绘数据生成部19执行包含轨迹计算程序303的、生成三维(3-dimensions,3d)描绘数据的3d视觉化程序30。3d视觉化程序30是“视觉化模块”的一实施例。当执行3d视觉化程序30时,描绘数据生成部19基于轨迹数据251、252与表示机器人300及载台400的图像数据253及图像数据254,生成将机器人300及载台400的所仿真的动作描绘于显示器38的描绘数据301、401。表示机器人300及载台400的图像数据253及图像数据254包含计算机辅助设计(computer-aideddesign,cad)数据等。

轨迹计算程序303对图6的共享存储器12a的输入数据144使用规定函数来实施运算,由此算出三维坐标p(x、y、z)及三维坐标q(x、y、0),获取轨迹数据251、252。这样,轨迹数据包含表示通过仿真而推测的机器人300、载台400在三维虚拟空间内的动作的信息。描绘数据生成部19依据所算出的轨迹数据251与机器人300的图像数据253,生成描绘数据301,并输出至显示控制部15,所述描绘数据301用于在三维虚拟空间内立体地描绘机器人300的动作。

同样,轨迹计算程序303对轨迹数据252使用规定函数来实施运算,由此算出时间序列的三维坐标q(x、y、0),并保存为轨迹数据252。这样,轨迹数据252是用于在三维虚拟空间内立体地描绘通过仿真而推测出的载台400的动作的信息。描绘数据生成部19依据所算出的轨迹数据252与载台400的图像数据254,生成描绘数据401,并输出至显示控制部15,所述描绘数据401用于在与机器人300相同的三维虚拟空间内立体地描绘载台400的动作。

(e-4.同步处理)

周期生成部18执行生成信号st的虚拟时刻生成程序29。周期生成部18将所生成的信号st输出至其他各部。各部是与从周期生成部18输出信号st的周期同步地执行处理或程序。由此,离线系统20的各部的处理或程序以信号st的周期,或者与此周期同步地执行。信号st的周期相当于图1的控制系统1的现场网络nw2的通信周期。现场网络nw2的通信周期可变更,信号st的周期可变更为与变更后的现场网络nw2的通信周期同步。另外,通信周期是与“控制周期”同步的周期。

图7是说明本实施方式的基于虚拟时刻的仿真器的同步的图。参照图7,周期生成部18由cpu2所具有的计时器(未图示)的虚拟时刻的输出,生成例如具有1毫秒(msec)周期的信号st并予以输出。程序执行部31依照信号st的共同周期,使plc仿真器260与机器人仿真器270开始指令值v1、v2的计算。由此,与信号st所表示的共同周期同步且周期性地执行plc仿真器260与机器人仿真器270。当开始计算时,plc仿真器260基于输入数据144来算出指令值v1,而且,机器人仿真器270基于输出数据145来算出指令值v2。程序执行部31在每个周期,将所算出的指令值v1、v2输出(写入)至共享存储器12a。

由此,即使在plc仿真器260与机器人仿真器270这两者中指令值v1、v2的运算所需的计算时间存在偏差,换言之,即使在plc程序371与机器人程序381之间计算时间不同,plc仿真器260与机器人仿真器270也能够分别使输出所算出的指令值v1、v2的时机(timing)一致于信号st的周期。

此处,本实施方式中,“控制周期”是与信号st的周期同步,因此plc仿真器260与机器人仿真器270这两者能够在各控制周期内,使用在之前的控制周期内算出的指令值v1、v2来算出新的指令值v1、v2。

所述plc程序371与机器人程序381之间的计算时间的偏差例如基于plc程序371与机器人程序381的程序语言的种类。例如,本实施方式中,如上所述,机器人程序381是以逐次执行型语言所记载,plc程序371是以循环执行型语言所记载,在两程序间,一个命令的执行完成所需的时间不同。本实施方式中,能够通过使plc仿真器260及机器人仿真器270的执行周期同步于共同的控制周期,来吸收此种差异。

(e-5.程序编辑)

本实施方式中,离线系统20也可提供对控制程序进行编辑的环境。具体而言,程序编辑部34为了对控制程序进行编辑而包含plc程序编辑器(programeditor)32及机器人程序编辑器33。plc程序编辑器32及机器人程序编辑器33分别相当于依据控制部10经由输入受理部11而受理的用户输入来对机器人程序381及plc程序371进行编辑(变更、追加、删除等)的编辑器程序。

程序编辑部34从保存部中读出机器人程序381与plc程序371,并将所读出的各程序经由显示控制部15而显示于显示器38。用户对显示于显示器38的控制程序进行编辑。例如,用户通过基于仿真结果来对控制程序进行编辑,能够对控制程序进行调试(debug)。

在进行基于仿真结果的调试的情况下,当实施了如后所述的高速仿真时,能够削减基于仿真结果的调试所需的时间与工夫。

<f.显示画面的例示>

图8是表示本实施方式的基于描绘数据的显示画面的一例的图。显示控制部15在显示器38上显示基于描绘数据301、401的图像ob1、ob2。图像ob1、ob2表示机器人300及载台400在三维虚拟空间内的动作。机器人300的动作例如包含握持载台400上的工件而搬送配置到规定位置的动作。此种由机器人300进行的握持/搬送/配置的一连串动作也被称作“拾取与放置(pickandplace)动作”。本实施方式中,通过描绘数据301、401,能够在同一画面中描绘“拾取与放置动作”的动作和与此同步的载台400的动作。

图9是表示本实施方式的基于描绘数据的显示画面的另一例的图。本实施方式的plc仿真器260及机器人仿真器270即使是进行与“拾取与放置动作”不同的动作的类型的机器人也能够同样地适用。例如,图9中,表示滑台(slider)和与滑台的直线方向的动作同步地运动的机器人。

<g.离线系统20的整体处理>

图10与图11是说明本实施方式的信息处理装置100所实施的离线系统20的处理的图。图10与图11中,离线系统20的处理是与表示各部间的信号输入/输出关系的时序图(timingchart)相关联地表示。

参照图10,控制部10的模拟控制程序21在经由输入受理部11而从用户受理启动指令时(步骤t1)进行启动。

控制部10的模拟控制程序21对周期生成部18输出启动指令(步骤t3)。周期生成部18依照启动指令来启动虚拟时刻生成程序29。当虚拟时刻生成程序29启动时,开始信号st的输出,并且对plc仿真器260与机器人仿真器270输出启动指令(步骤t4、t5)。

程序执行部31依照启动指令来启动plc仿真器260与机器人仿真器270。由此,实施算出指令值v1、v2的指令值运算处理40。指令值运算处理40是在将信号st所表示的虚拟时刻设为尺度的每个控制周期反复(循环(loop))实施。

当实施指令值运算处理40时,用户进行指定动作模式的操作(步骤t6)。关于动作模式的指定,将在图22a及图22b中后述。控制部10依照经由输入受理部11而受理的用户的操作内容,将表示所指定的动作模式的模式指令mc输出至程序执行部31(步骤t7)。程序执行部31依据模式指令mc所表示的动作模式来实施指令值运算处理40。

参照图11,在指令值运算处理40中,首先,控制部10的模拟控制程序21判断程序执行部31的仿真器是否已暂停。控制部10在判断为程序执行部31的仿真器的执行已停止时,跳过(skip)以后的处理。由此,指令值运算处理40结束。

另一方面,控制部10的模拟控制程序21在判断为程序执行部31的仿真器的执行尚未暂停,即正在执行中时,首先,周期生成部18通过虚拟时刻生成程序29,将运算指令输出至程序执行部31。程序执行部31的plc仿真器260与机器人仿真器270依据运算指令来算出各轴的指令值v1、v2,并作为输入数据144而保存到共享存储器12a中(步骤s1)。周期生成部18的虚拟时刻生成程序29在程序执行部31的运算完成时,待机到下个控制周期为止(步骤s2)。

在描绘更新处理50中,描绘数据生成部19通过3d视觉化程序30来判断是否为描绘的更新时机。描绘数据生成部19在判断为并非描绘的更新时机时,跳过描绘更新处理50。由此,描绘更新处理50结束。

此处,本实施方式中,在相当于控制周期的m(m≧2)倍的周期的每个描绘周期实施描绘更新处理50。因此,与在每个控制周期实施描绘更新处理50的情况相比,能够减轻信息处理装置100中的与描绘相关的处理的负载。

描绘数据生成部19在判断为描绘的更新时机时,即基于信号st而判断为已从前次的描绘时刻经过了描绘周期时,获取由plc仿真器260与机器人仿真器270所算出的各轴的指令值v1、v2(步骤s3)。具体而言,描绘数据生成部19通过3d视觉化程序30来检索共享存储器12a,从共享存储器12a中获取指令值v1、v2。描绘数据生成部19通过3d视觉化程序30,由所获取的指令值v1、v2算出轨迹数据251、252,并由所算出的轨迹数据251、252与图像数据253、254生成描绘数据301、401。描绘数据生成部19为了对显示器38的图像进行更新,而将描绘数据301、401输出至显示控制部15(步骤s4)。

图10与图11中,在显示器38的画面上,在每个描绘周期,描绘出使用所述描绘周期内算出的各轴的指令值v1、v2的描绘数据301、401所表示的机器人300及载台400的动作。由此,用户能够根据显示器38的画面而看到在每个描绘周期,机器人300与载台400的动作从之前的描绘周期发生的变化量,即机器人300的臂或载台400的移动量。

<h.各种运算指令>

本实施方式中,运算指令280可分类为依据模式指令mc的多种指令。运算指令280例如可分类为:机器人300或载台400在每一控制周期的移动量与预定的单位移动量相等的等倍运算指令;以及每一控制周期的移动量为与单位移动量不同的移动量的可变运算指令。可变运算指令例如可分类为n倍(其中,n>1.0)运算指令及1/n倍(其中,n>1.0)运算指令。

n倍运算指令例如是对每一控制周期的移动量为(n×单位移动量)的指令值v1、v2的计算进行指示。在n倍运算指令的情况下,程序执行部31的plc仿真器260及机器人仿真器270通过一次运算,算出移动量为(n×单位移动量)的指令值v1、v2。这样,在n倍运算指令的情况下,通过一次运算便能够算出,即,能够省略(n-1)次运算而算出通过等倍运算指令的n次运算才算出的移动量的指令值v1、v2。因此,运算次数得到削减,由此,能够减轻与指令值v1、v2的计算相关的、信息处理装置100所承受的处理负载。而且,能够在显示器38上高速地描绘机器人300与载台400的动作,所谓的动作快进成为可能。

1/n倍运算指令例如是对每一控制周期的移动量为(1/n×单位移动量)的指令值v1、v2的计算进行指示。在1/n倍运算指令的情况下,程序执行部31的plc仿真器260及机器人仿真器270通过一次运算,算出移动量为(1/n×单位移动量)的指令值v1、v2。

例如,1/n倍运算指令可包含等倍运算指令与睡眠(sleep)指令的组合,所述等倍运算指令是在连续的两个控制周期中的第一个控制周期中,对移动量为单位移动量的指令值v1、v2的计算进行指示,所述睡眠指令是在接下来的第二个控制周期中,指示停止指令值v1、v2的计算。由此,程序执行部31的plc仿真器260与机器人仿真器270仅在n个控制周期中的一个控制周期实施运算而算出指令值v1、v2。因此,能够通过睡眠指令来停止运算,因此能够减轻与指令值v1、v2的计算相关的信息处理装置100所承担的处理负载。而且,在描绘周期,与等倍运算指令的情况相比,能够以1/n倍的慢速度来描绘机器人300与载台400的动作,用户能够看到机器人300或载台400的详细动作。

<i.仿真速度的高速化>

参照图12a至图12d与图13来说明n倍运算指令的高速仿真。

(i-1.仿真的高速化与描绘)

图12a至图12d是将本实施方式的高速仿真的速度变化关联于所描绘的轨迹来进行说明的图。图12a至图12d中,为了说明,将控制周期设为1msec及将描绘周期设为4msec,但控制周期并不限定于1msec,而且,描绘周期也不限定于4msec。

图12a至图12d例如是在每个控制周期输出运算指令280。图12a中,在每个控制周期,周期生成部18的运算指令部36输出等倍运算指令,plc仿真器260及机器人仿真器270依据等倍运算指令,在每个控制周期算出指令值v1、v2。3d视觉化程序30在每个描绘周期,根据在所述描绘周期内算出的指令值v1、v2生成描绘数据301、401,在显示器38上,描绘机器人300与载台400的动作。此时,例如能够如图12b那样描绘机器人300的移动轨迹210。

与此相对,图12c表示下述案例(case),即,在每个控制周期,周期生成部18的运算指令部36输出n倍运算指令。例如在n=2的情况下,plc仿真器260及机器人仿真器270依据n倍运算指令,在每个控制周期,一边进行一次运算的省略om,一边算出成为n倍单位移动量的指令值v1、v2。3d视觉化程序30在每个描绘周期,根据在所述描绘周期内算出的指令值v1、v2生成描绘数据301、401,在显示器38上,描绘机器人300与载台400的动作。此时,例如能够如图12d那样描绘机器人300的移动轨迹211。

由根据n倍运算指令所算出的指令值而描绘的图12d的轨迹211与由根据等倍运算指令所算出的指令值而描绘的图12b的轨迹210相比,为粗略地描绘的轨迹,但如上所述,能够实现高速仿真。

(i-2.高速仿真的处理)

图13是说明本实施方式的用于高速仿真的指令值运算处理41的一例的图。图13的指令值运算处理41是图11的指令值运算处理40的变形例。

参照图13,在指令值运算处理41中,周期生成部18将例如对速度、加速度、急动度(加加速度)进行指定的参数指定指令,作为用于将与机器人300及载台400相关的移动量设为单位移动量的n倍的参数,经由虚拟时刻生成程序29而输出至程序执行部31(步骤s10),程序执行部31的plc仿真器260与机器人仿真器270受理所述指令(步骤s11)。

周期生成部18经由虚拟时刻生成程序29将n倍运算指令输出至程序执行部31(步骤s12)。程序执行部31的plc仿真器260及机器人仿真器270依据n倍运算指令,算出与在步骤s11中指定的参数对应的各轴的指令值v1、v2(步骤s13),并作为输入数据144而保存到共享存储器12a中。

在图13的处理中,当程序执行部31判断为正在实施高速仿真时,也可实施后述的警告处理(步骤s14~步骤s16)。

在描绘更新处理51中,当描绘数据生成部19判断为描绘的更新时机时,描绘数据生成部19通过3d视觉化程序30,根据共享存储器12a的指令值v1、v2算出轨迹数据251、252,使用所算出的轨迹数据251、252来生成描绘数据301、401并输出至显示控制部15。此时,若收到警告处理的警告消息的显示指令(步骤s17),则将警告消息输出至显示控制部15。

(i-3.高速仿真的警告处理)

在图13的警告处理(步骤s14~s16)中,程序执行部31的plc仿真器260与机器人仿真器270各自对控制周期彼此的指令值v1之差即变化量dv1、及控制周期彼此的指令值v2之差即变化量dv2进行检测。对变化量dv1与变化量dv2进行检查(check)(判断),并依据检查结果来将警告消息通知给周期生成部18。

具体而言,plc仿真器260算出根据此次的控制周期的n倍运算指令所算出的指令值v1、与根据之前的控制周期的n倍运算指令所算出的指令值v1之差即变化量dv1,并判断是否满足例如以(变化量dv1>变化量阈值)所示的预定条件(步骤s14)。plc仿真器260在判断为满足此条件时,生成警告消息(步骤s15)。

同样地,机器人仿真器270算出根据此次的控制周期的n倍运算指令所算出的指令值v2、与根据之前的控制周期的n倍运算指令所算出的指令值v2之差即变化量dv2,并判断是否满足(变化量dv2>变化量阈值)的预定条件(步骤s14)。机器人仿真器270在判断为满足此条件时,生成警告消息(步骤s15)。另外,变化量阈值例如是预先设定的值。

程序执行部31在依据n倍运算指令的运算结束时,将运算完成通知输出至周期生成部18。此时,在通过以上所述的警告处理而输出有警告消息时,程序执行部31将附有警告消息的运算完成通知通知给周期生成部18(步骤s16)。

周期生成部18的虚拟时刻生成程序29在判断为来自程序执行部31的运算完成通知中附加有警告消息时,将警告消息的显示指令输出至描绘数据生成部19的3d视觉化程序30(步骤s17)。在描绘更新处理51中,3d视觉化程序30生成附有警告消息的描绘数据301、401并输出至显示控制部15。由此,在显示器38上,进行表示机器人300与载台400的动作的描绘、及警告消息的显示。

关于警告处理,对本实施方式的背景进行说明。在本实施方式的高速仿真的情况下,n倍运算指令的n的值越大,基于每一控制周期算出的指令值v1、v2而移动量越大,因而在显示器38的画面上,存在机器人300及载台400的动作描绘变得越粗糙的倾向。若描绘变粗糙,例如会妨碍用户根据显示器38的画面来准确掌握机器人300或载台400的动作。

因此,本实施方式的警告处理中,为了防止此种妨碍,当判断为满足与所述变化量dv1、dv2相关的条件时,输出警告消息,从而能够示意用户仿真的速度有可能过快。

本实施方式中,警告处理并非由描绘数据生成部19,而是由程序执行部31的plc仿真器260及机器人仿真器270各自实施。因此,例如即使根据cpu2的规格(spec),而有可能因负载的大小省略描绘数据生成部19的处理,根据本实施方式,仍能够在每个控制周期切实地实施警告处理。

另外,警告处理的所述条件是基于指令值v1、v2的变化量,但并不限定于指令值的变化量。例如,也可从3d视觉化程序30所算出的三维坐标值p、q的轨迹数据251的位置数据中,对机器人300的臂的移动距离在控制周期间的变化量、或载台400的控制周期间的移动距离在控制周期间的变化量进行检测,当这些变化量超过预定的距离阈值时,输出警告。

而且,警告处理也可将所述指令值v1、v2的变化量与移动距离的变化量予以组合而实施。

(i-4.警告消息的显示例)

图14的(a)、图14的(b)是表示本实施方式的高速仿真中的警告消息的显示的一例的图。图14的(a)是高速仿真的显示画面的一例,图14的(b)表示警告消息382的显示的一例。在图14的(a)的画面中,显示表示高速仿真正在实施中的消息383与时间38e。消息383例如表示字符串,但并不限定于字符串,也可为标记(mark)。时间38e是基于信号st所表示的虚拟时刻的时间,例如表示从仿真开始计起的经过时间。而且,图14的(b)中,为基于字符串的警告消息382,但并不限定于此。例如也可为警告标记,或者还可为基于声音的警告。而且,也可将显示与声音加以组合。

(i-5.拉长部分的指定的一例)

本实施方式中,当实施高速仿真时,如图12c所示进行运算的省略om。此种运算的省略om相当于将描绘中的机器人300及载台400的一连串动作的一部分拉长。本实施方式中,能够可变地指定所述拉长部分。

图15a及图15b是说明本实施方式的指定拉长部分的方法的一例的图。图15a表示机器人300的依据目标位置的移动轨迹210的一例,图15b表示载台400的依据目标位置的移动轨迹311的一例。

拉长部分例如可对应于轨迹210、311上的等速移动的区间(以下称作等速区间)。为了检测等速区间,本实施方式中,在指令值运算处理40或指令值运算处理41中,plc仿真器260及机器人仿真器270实施等速区间的检测处理,在检测到等速区间时,将等速区间通知输出至周期生成部18。周期生成部18在从plc仿真器260及机器人仿真器270分别收到等速区间通知时,将n倍运算指令输出至程序执行部31。

在等速区间的检测处理中,plc仿真器260及机器人仿真器270各自对控制周期彼此的指令值v1的变化量dv1及指令值v2的变化量dv2进行检测。当表示下述情况的条件(将其称作等速条件)持续成立预定时间时(将其称作等速区间),plc仿真器260及机器人仿真器270各自输出等速区间通知,所述情况是:plc仿真器260及机器人仿真器270各自从第1目标轨迹及第2目标轨迹中的与从仿真开始时计起的共同的经过时间对应的区间开始,变化量dv1及变化量dv2这两者为阈值(例如大致为零)以下。

周期生成部18在从plc仿真器260及机器人仿真器270这两者收到等速区间通知时,将运算指令切换为n倍运算指令,收到等速通知的期间输出n倍运算指令。并且,若未检测到等速区间(即,未从plc仿真器260及机器人仿真器270中的至少一者受理等速区间通知时),周期生成部18将运算指令切换为原本的等倍运算指令,恢复为基于原本的等倍运算指令的仿真。由此,能够仅在等速区间实施依据n倍运算指令的高速仿真。

例如,在图15a的机器人300的轨迹210中,检测到三个等速区间,与此相对,在图15b的载台400的轨迹311中,检测到一个等速区间。此时,例如,机器人300的轨迹210中的第二个等速区间410、与载台400的轨迹311中的等速区间411从仿真开始时计起的经过时间共同。由此,周期生成部18在此共同的等速区间410、411的时间,输出n倍运算指令,在程序执行部31中,实施将动作拉长的高速仿真。

(i-6.拉长部分的指定的另一例)

图16是说明本实施方式的拉长部分的另一指定例的图。图16中,表示用于受理用户对拉长部分的指定的画面的显示例。图16的显示器38的画面包含仿真的机器人300及载台400的动作描绘与对话框(dialogbox)。对话框包含为了对仿真的“开始”、“暂停”、“逐帧”及“速度变更”分别进行指示而操作的图标38a、38b、38c及38d。

用户操作图标38d的下拉菜单(menu)来指定n倍运算指令的“n”的值。输入受理部11将经由图标38d而受理的操作内容输出至控制部10。控制部10将所受理的操作内容输出至周期生成部18。例如,当用户操作内容表示“值=1.0”时,周期生成部18决定为输出等倍运算指令来作为运算指令,而且,当表示“值>1.0”时,决定为输出n倍运算指令。而且,当“值<1.0”时,决定为输出1/n倍运算指令。

由此,用户通过操作图标38d,便能够变更仿真速度。例如要在从仿真开始经过30分钟后详细确认机器人300或载台400的动作时,通过在仿真开始时,用户操作图标38d来对“n”指定超过1.0的值,即使未实际等待30分钟,仍能够使机器人300或载台400的动作前进至经过了30分钟的状态。并且,用户在进行了30分钟后的描绘时,通过操作图标38d来将“n”的值变更为1.0,便能够在30分钟以后,描绘基于等倍运算指令的仿真的详细动作。

作为适用通过操作图标38d来变更仿真速度的场景(scene),例如有对机器人300的臂的动作与载台400的动作有无“干涉”进行检查的情况。例如,有对从仿真开始30分钟后的“干涉”进行检查的情况等,但适用例并不限定于此。

关于“干涉”,例如在机器人300的“拾取与放置动作”中,机器人300的臂握持(拾取)载台400上的工件时、与将握持的工件配置(放置)于载台400上时,存在容易产生“干涉”的倾向。因此,此种场景下,用户也可在拾取动作之前或放置动作之前实施高速仿真,而在拾取动作时或放置动作时,减慢仿真速度。

拾取或放置动作的检测例如利用图案匹配(patternmatching)。预先保存拾取或放置时的机器人300与载台400的坐标p(x、y、z)与坐标q(x、y、0)图案,在仿真时,当检测时对坐标p、q与登记图案进行比对,基于比对结果来检测是否符合拾取或放置动作。

而且,应实施高速仿真的区间例如也可为机器人300与载台400在三维虚拟空间内的相对位置关系满足预定条件的区间。具体而言,周期生成部18根据轨迹数据251所示的机器人300的坐标p(x、y、z)、与轨迹数据252所示的载台400的坐标q(x、y、0),算出两者的位置间的相对距离。周期生成部18将满足表示(所算出的距离>距离a)的预定条件的区间,判定为应实施高速仿真的区间。由此,在机器人300与载台400这两者的相对位置关系呈现两者充分远离的关系的区间,即,在判断为产生“干涉”的可能性低的区间,实施高速仿真。

而且,周期生成部18也可在图15a的等速区间、与满足(所算出的距离>距离a)的条件的区间中的其中任一者或两者中,输出n倍运算指令。

(i-7.等速区间内的高速仿真处理)

图17是说明本实施方式的用于仿真的指令值运算处理42的图。图18a至图18d的指令值运算处理42是图13的指令值运算处理41的变形例,包含检测等速区间的处理。

参照图17,在指令值运算处理42中,周期生成部18在实施仿真时,向程序执行部31的plc仿真器260及机器人仿真器270询问是否检测到等速区间(步骤s4)。

plc仿真器260及机器人仿真器270各自实施等速区间检测处理(步骤s5),并输出是否检测到等速区间(真或伪(trueorfalse))(步骤s6)。在检测到等速区间时,将‘真’(即,等速区间通知)输出至周期生成部18(步骤s6)。

周期生成部18在从plc仿真器260及机器人仿真器270这两者均收到等速区间通知时,与图13的步骤s10同样,将对用于将移动量设为单位移动量的n倍的参数进行指定的参数指定指令,经由虚拟时刻生成程序29而输出至程序执行部31(步骤s10a),程序执行部31的plc仿真器260与机器人仿真器270受理所述指令(步骤s8)。

另一方面,周期生成部18在未从plc仿真器260及机器人仿真器270这两者收到等速区间通知时,将对速度、加速度、急动度进行指定的参数指定指令作为应将移动量设为单位移动量的等倍的参数,经由虚拟时刻生成程序29而输出至程序执行部31(步骤s10b),程序执行部31的plc仿真器260与机器人仿真器270受理所述指令(步骤s8)。

随后,周期生成部18将依据等速区间通知的运算指令(n倍运算指令及等倍运算指令中的其中一个)输出至程序执行部31(步骤s12)。由此,plc仿真器260及机器人仿真器270在两者检测到等速区间时,依据n倍运算指令来算出指令值v1、v2(步骤s13)。在plc仿真器260及机器人仿真器270这两者未检测到等速区间时,依据等倍运算指令来算出指令值v1、v2(步骤s13)。

在图17的指令值运算处理42中,也可也与图13的处理同样,实施警告处理(步骤s14~步骤s16),并实施警告处理的警告消息382的显示(步骤s17)。

在描绘更新处理52中,与图13的描绘更新处理51同样地进行显示器38上的描绘。具体而言,根据在等速区间一边实施高速仿真一边算出的指令值v1、v2,生成描绘数据301、401,依据所生成的描绘数据301、401而在显示器38上进行描绘。

另外,图17的处理是在等速区间实施高速仿真的案例,但即使是在用户操作图标38d来指定的区间实施的案例、或在满足(所算出的距离>距离a)的条件的区间实施的案例,也能够同样适用图17的处理。

<j.减慢仿真速度>

图18a至图18d是将本实施方式的低速仿真的速度变化关联于所描绘的轨迹来说明的图。图18a至图18d中,与图12a至图12d同样,为了说明,将控制周期设为1msec及将描绘周期设为4msec。图18a与图18b例示基于图12a与图12b所示的等倍运算指令的仿真。

与此相对,图18c与图18d例如表示输出1/2倍运算指令的情况。在1/2倍运算指令中,在一控制周期(例如1msec)执行指令值v1、v2的运算,在下一控制周期,plc仿真器260及机器人仿真器270停止指令值v1、v2的计算。

由此,在每个描绘周期,进行依据基于指令值v1、v2的移动量的轨迹212的描绘,所述指令值v1、v2相当于等倍运算指令下的两个控制周期,由此,与等倍运算指令的轨迹211的描绘相比,缓慢地进行低速描绘。因此,例如,在原本为表示曲线轨迹的描绘的情况下,若是等倍运算指令,则由于是相对较快的描绘,因此用户会将曲线轨迹看成大致直线轨迹,与此相对,若为1/n倍运算指令,则会缓慢详细地描绘曲线轨迹,由此,用户能够看到原本的曲线轨迹。参照图19~图21的(e)来说明实施此种仿真速度的低速化的具体例。

(j-1.低速仿真处理)

图19是说明本实施方式的用于低速仿真的指令值运算处理43的图。图19的指令值运算处理43是图13的指令值运算处理41的变形例。

参照图19,在指令值运算处理43中,周期生成部18将对速度、加速度、急动度进行指定的参数指定指令作为应将移动量设为单位移动量的1/n倍的参数,经由虚拟时刻生成程序29而输出至程序执行部31(步骤s10a),程序执行部31的plc仿真器260与机器人仿真器270受理所述指令(步骤s11)。

周期生成部18将1/n倍运算指令输出至程序执行部31(步骤s12a)。程序执行部31的plc仿真器260及机器人仿真器270依据1/n倍运算指令来实施运算(步骤s13a、s13b)。此处,例如设为n=2.0来进行说明,但n的值并不限定于“2.0”。

程序执行部31在输入了1/n倍运算指令时,将输入指令开始连续的两个控制周期ct中的第一个控制周期判断为运算周期,plc仿真器260及机器人仿真器270与等倍运算指令同样地算出指令值v1、v2(步骤s13a)。程序执行部31判断为,在接下来的第二个控制周期ct通过睡眠指令来停止指令值的计算,plc仿真器260及机器人仿真器270停止(跳过)运算(步骤s13b)。因此,在程序执行部31中,仅在两个控制周期中的第一个控制周期算出指令值v1、v2。

图19的处理中,程序执行部31也在运算周期实施与图13同样的警告处理(步骤s14a、s15a、s16),并非运算周期时,跳过警告处理而不实施(步骤s14b)。

在描绘更新处理53中,与图13的描绘更新处理51同样地,使用根据共享存储器12a的指令值v1、v2而算出的轨迹数据251、252来生成描绘数据301、401,并输出至显示控制部15。此时,若收到警告处理的警告消息的显示指令(步骤s17),则将警告消息与描绘数据301、401一同输出至显示控制部15。

(j-2.对实施低速仿真的区间进行指定的方法)

本实施方式中,在机器人300及载台400的依据目标值的轨迹中,能够可变地指定实施低速仿真的部分。图20a至图20c是说明本实施方式的对实施低速仿真的部分进行指定的方法的一例的图。参照图20a,在低速仿真正在实施中的显示器38的画面上,显示有表示低速仿真正在实施中的消息383。

实施低速仿真的区间与应实施高速仿真的区间同样,例如也可为机器人300与载台400在三维虚拟空间内的相对位置关系满足预定条件的区间。具体而言,周期生成部18根据轨迹数据251所示的机器人300的坐标p(x、y、z)与轨迹数据252所示的载台400的坐标q(x、y、0)来算出两者的距离,当满足(所算出的距离<距离b)的条件时,判定为实施低速仿真的区间。此处,距离b例如是有可能产生“干涉”的距离,例如为预先设定的值。

另外,当满足(所算出的距离<距离b)的条件时,描绘数据生成部19也可经由显示控制部15而使图20a至图20c的多边形(polygon)384显示于显示器38,以告知“干涉”的可能性。

而且,周期生成部18中,机器人300与载台400在三维虚拟空间内的相对位置关系的条件例如也可包含:“拾取与放置动作”中的容易产生“干涉”的拾取或放置前后的动作中的三维虚拟空间内的相对位置关系的条件。例如,图20b中,机器人300的轨迹211中的部分213为所述“拾取与放置动作”的部分的一例,在此部分213实施低速仿真。

而且,实施低速仿真的部分也可由用户指定。图20c的显示器38的画面包含仿真的机器人300及载台400的动作描绘与对话框。对话框包含与图16同样的图标38a、38b、38c及38d。

用户操作图标38d的下拉菜单来指定1/n倍运算指令的“1/n”的值。图20c中,例如指定为1/n=0.5。周期生成部18在利用图标38d设定了小于1的值时,可判断为下面将开始低速仿真。

这样,例如对像“拾取与放置动作”中的拾取或放置前后的动作等那样,发生“干涉”的可能性高的部分指定实施低速仿真,由此,用户能够根据所描绘的动作来容易地掌握有无“干涉”或“干涉”的程度、或者干涉前后的动作。

<k.高速仿真与低速仿真的组合>

本实施方式中,能够通过高速仿真与低速仿真的组合来实施仿真。具体而言,程序执行部31能够一边切换高速仿真与低速仿真一边实施。

图21的(a)至图21的(e)是说明本实施方式的对实施高速仿真与低速仿真的部分进行指定的方法的一例的图。所述部分的指定方法例如包含基于下述事项的指定方法,即,机器人300及载台400在三维虚拟空间内的相对位置关系满足预定条件。例如能够使用基于根据坐标p(x、y、z)与坐标q(x、y、0)而算出的机器人300与载台400之间在三维虚拟空间内的距离的指定方法。

图21的(a)的显示器38的画面上,用户对成为仿真对象的机器人300与载台400进行指定,并且在对话框中,对高速仿真的实施条件(距离>距离a1)与低速仿真的实施条件(距离<距离b1)下的距离a1与距离b1的值进行指定。

在仿真的实施过程中,周期生成部18根据坐标p(x、y、z)与坐标q(x、y、0)来算出距离,当判定为满足(所算出的距离>距离a1)的条件时,如图21的(b)那样输出用于高速仿真的n倍运算指令,当判定为所算出的距离满足(距离b1≦所算出的距离≦距离a1)的条件时,如图21的(c)那样输出等倍运算指令,当判定为满足(所算出的距离<距离b1)的条件时,如图21的(d)或图21的(e)那样,输出用于低速仿真的1/n倍运算指令。

图21的(d)表示例如在低速仿真的实施过程中检测到“干涉”的案例。若是低速仿真的实施过程中,则用户能够通过缓慢的描绘来细致地掌握检测到“干涉”前后的机器人300或载台400的动作(例如图21的(e)的动作)。另外,当如图21的(d)那样检测到“干涉”时,程序执行部31也可停止plc仿真器260及机器人仿真器270的执行。或者,当检测到“干涉”时,用户也可输入仿真的停止指令,将此停止指令给予至程序执行部31。

<l.用于仿真的详细设定>

图22a及图22b是表示本实施方式的用于指定仿真的动作模式的用户接口(userinterface,ui)画面的一例的图。输入受理部11受理经由图22a及图22b的显示器38的ui画面的用户操作,并将所受理的操作内容输出至控制部10。控制部10基于用户的操作内容来生成表示用于仿真的动作模式的模式指令mc,并输出至周期生成部18。周期生成部18将依据以模式指令mc所设定的动作模式的运算指令输出至程序执行部31。

在图22a的对话框中,对以上所述的图标38a~38d追加了图标38f。图标38f是为了详细设定动作模式而操作。

当用户操作图标38f时,在显示器38上显示图22b的画面38g。画面38g是用于受理用户操作的画面的一例,所述用户操作是用于动作模式的详细设定。画面38g例如包含用于设定高速仿真的动作模式的区域g1、及用于设定低速仿真的动作模式的区域g2、及区域g3。在区域g3中,例如在组合实施高速仿真与低速仿真的情况下,能够设定用于切换仿真的动作模式。

在区域g1中,可设定的动作模式例如包含是否在等速区间实施高速仿真的设定,但可设定的模式并不限定于此。

在区域g2中,可设定的动作模式例如包含:满足以上所述的(所算出的距离<距离b)的条件时应进行低速仿真的目标(object)(例如机器人300与载台400)的组的设定pr1、及距离b的设定pr2。而且,可包含与“拾取与放置动作”相关的设定pr3。设定pr3表示与在拾取或放置前后的动作时应实施低速仿真的部分对应的移动量。例如,作为设定pr3,例如可将机器人300的轨迹211中的包含拾取或放置在内的前后部分设为轨迹上的移动距离。

在区域g3中,可设定的动作模式例如包含:应组合实施高速仿真与低速仿真的目标(例如机器人300与载台400)的组的设定pr4、以上所述的距离a1与距离b1的设定pr21及设定pr22。而且,可设定的动作模式例如包含低速仿真的速度及高速仿真的速度,即n倍运算指令及1/n倍运算指令的值“n”的设定pr41及pr42。

由此,图22a及图22b的画面上的各种设定内容可包含在周期生成部18的运算指令中而输出至程序执行部31。因此,plc仿真器260及机器人仿真器270在依据n倍运算指令来实施高速仿真时,实施依据区域g1的设定的仿真,在依据1/n倍运算指令来实施低速仿真时,实施依据区域g2的设定的仿真。而且,在组合实施高速仿真与低速仿真时,实施依据区域g3的设定的仿真。

<m.计算机程序>

图1中例示了通过信息处理装置100的cpu2执行程序所提供的结构,也可使用专用的硬件电路(例如专用集成电路(applicationspecificintegratedcircuit,asic)或现场可编程门阵列(field-programmablegatearray,fpga)等)来实现这些提供的结构的一部分或全部。或者,也可使用遵循通用架构(architecture)的硬件(hardware)来实现信息处理装置100的主要部分。此时,也可使用虚拟技术来并列执行用途不同的多个操作系统(operatingsystem,os),并且在各os上执行所需的应用(application)。

而且,信息处理装置100也可具备多个cpu2之类的处理器(processor)。此时,图1所示的各部可由多个处理器来执行。而且,当cpu2包含多个核心(core)时,图1所示的各部可由cpu2内的多个核心来执行。

离线系统20包含cpu2、rom3、ram4等,根据信息处理来进行各构成元件的控制。存储各构成元件的程序的存储部例如是hdd5、固态硬盘(solidstatedrive)等辅助存储装置,存储由程序执行部31所执行的plc仿真器260及机器人仿真器270、虚拟时刻生成程序29、3d视觉化程序30、模拟控制程序21等。

存储介质92是如下所述的介质,即,以计算机或其他装置、机械等可读取所记录的程序等信息的方式,将所述程序等信息通过电、磁、光学、机械或化学作用予以贮存。信息处理装置100的cpu2也可从所述存储介质92获取以上所述的程序。

<n.附注>

如上所述的本实施方式包含以下所述的技术思想。

结构1

一种信息处理装置100,其包括:

第1仿真器260,推测第1驱动机器14的行为,所述第1驱动机器14用于驱动在第1目标轨迹上移动的第1控制对象400;

第2仿真器270,推测第2驱动机器14的行为,所述第2驱动机器14用于驱动在第2目标轨迹上移动的第2控制对象300;以及

视觉化模块30,生成描绘数据301、401,所述描绘数据301、401是在相同的三维虚拟空间内对所述第1控制对象的动作及所述第2控制对象的动作进行视觉化而描绘,

所述第1仿真器依据来自所述信息处理装置的运算指令280来运算第1指令值v1,所述第1指令值v1是在每个控制周期控制所述第1驱动机器,

所述第2仿真器依据所述运算指令来运算第2指令值v2,所述第2指令值v2是在每个所述控制周期控制所述第2驱动机器,

所述视觉化模块使用所述第1指令值及所述第2指令值来生成所述描绘数据,

所述运算指令包含移动量可变指令,所述移动量可变指令是对所述移动中的每个控制周期的移动量为可变的指令值的计算进行指示。

结构2

根据结构1所述的信息处理装置,其中,

所述运算指令包含等倍运算指令,所述等倍运算指令是对每个所述控制周期的移动量与预定的单位移动量相等的指令值的计算进行指示。

结构3

根据结构2所述的信息处理装置,其中,

所述移动量可变指令包含n倍运算指令,所述n倍运算指令是对每个所述控制周期的移动量为所述单位移动量的n倍(其中,n>1)的指令值的计算进行指示。

结构4

根据结构2或3所述的信息处理装置,其中,

所述移动量可变指令包含1/n倍运算指令,所述1/n倍运算指令是对每个所述控制周期的移动量为所述单位移动量的1/n倍(其中,n>1)的指令值的计算进行指示。

结构5

根据结构3所述的信息处理装置,其中,

所述信息处理装置对所述第1指令值在控制周期间的第1变化量dv1及所述第2指令值在控制周期间的第2变化量dv2进行检测,

在所述第1目标轨迹及所述第2目标轨迹中的与从仿真开始时计起的共同的经过时间对应的区间、且所述第1变化量及所述第2变化量这两者为阈值以下的区间410、411,输出所述n倍运算指令。

结构6

根据结构1至5中任一项所述的信息处理装置,其中,

所述描绘数据包含表示所述第1控制对象及所述第2控制对象在所述三维虚拟空间内的位置的数据251、252,

所述信息处理装置在所述第1控制对象及所述第2控制对象在所述三维虚拟空间内的相对位置关系满足预定条件时,输出所述移动量可变指令。

结构7

根据结构1至6中任一项所述的信息处理装置,其中,

所述信息处理装置包括受理部11,所述受理部11受理用户对所述信息处理装置的输入,

依据由所述受理部所受理的输入,输出所述移动量可变指令。

结构8

根据结构1至7中任一项所述的信息处理装置,其中,

所述信息处理装置对所述第1指令值在控制周期间的第1变化量dv1及所述第2指令值在控制周期间的第2变化量dv2进行检测,

当所述第1变化量或所述第2变化量超过变化量阈值时,输出警告382。

结构9

根据结构1至8中任一项所述的信息处理装置,其中,

所述描绘数据包含表示所述第1控制对象及所述第2控制对象在所述三维虚拟空间内的位置的数据251、252,

所述信息处理装置在基于所述第1控制对象在所述三维虚拟空间内的位置的、移动距离在控制周期间的变化量、或者基于所述第2控制对象在所述三维虚拟空间内的位置的、移动距离在控制周期间的变化量超过距离阈值时,输出警告382。

结构10

根据结构1至9中任一项所述的信息处理装置,还包括:

计时器18,输出可变的虚拟时刻,

所述控制周期表示将所述虚拟时刻设为尺度的周期。

结构11

一种信息处理方法,是由信息处理装置实施的处理方法,其包括:

步骤40、41、42、43,推测第1驱动机器14的行为,所述第1驱动机器14用于驱动在第1目标轨迹上移动的第1控制对象400;

步骤40、41、42、43,推测第2驱动机器的行为,所述第2驱动机器用于驱动在第2目标轨迹上移动的第2控制对象;以及

步骤50、51、52、53,生成描绘数据,所述描绘数据是在相同的三维虚拟空间内对所述第1控制对象的动作及所述第2控制对象的动作进行视觉化而描绘,

在所述推测第1驱动机器的行为的步骤中,依据来自所述信息处理装置的运算指令来运算第1指令值,所述第1指令值是在每个控制周期控制所述第1驱动机器s1、s13、s13a,

在所述推测第2驱动机器的行为的步骤中,依据所述运算指令来运算第2指令值,所述第2指令值是在每个所述控制周期控制所述第2驱动机器s1、s13、s13a,

在所述生成描绘数据的步骤中,使用所述第1指令值及所述第2指令值来生成所述描绘数据s4,

所述运算指令包含移动量可变指令,所述移动量可变指令是对所述移动中的每个控制周期的移动量为可变的指令值的计算进行指示。

结构12

一种程序,其用于使计算机执行根据结构11所述的信息处理方法。

<o.优点>

如上所述,根据本实施方式,在仿真中,能够根据作为运算指令的等倍运算指令、n倍运算指令及1/n倍运算指令中的任一个来算出指令值v1、v2。在n倍运算指令的情况下,通过一次运算便能够算出通过等倍运算指令的n次运算才算出的移动量的指令值v1、v2,即,能够省略(n-1)次运算。因此,运算次数得到削减,由此,能够减轻实施仿真时的信息处理装置100所承受的处理负载。而且,能够在显示器38上高速地描绘机器人300与载台400的动作,所谓的动作快进成为可能。

在1/n倍运算指令的情况下,例如可包含等倍运算指令与睡眠指令的组合。由此,能够仅在n个控制周期中的一个控制周期实施运算,而在其他控制周期通过睡眠指令来停止运算,因此能够减轻与指令值v1、v2的计算相关的、信息处理装置100所承受的处理负载。而且,在描绘周期,与等倍运算指令的情况相比,能够以1/n倍的慢速度来描绘机器人300与载台400的动作,从而如所谓的慢速播放那样,用户能够确认机器人300或载台400的详细动作。

应认为,本次揭示的实施方式在所有方面仅为例示而非限制者。本发明的范围是由权利要求而非所述说明所示,且意图包含与权利要求均等的含义及范围内的所有变更。

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