(57)【要約】【課題】ユーザーにより作成されたタスクの実行時間に基づいて、異常処理を検出する。【解決手段】制御装置は、ユーザーにより作成されたタスクを受け付ける受付部と、前記受付部が受け付けた前記タスクの実行時間に基づいて、異常処理を検出する検出部と、を備える。【選択図】図３
2018094696.tif 000002
【特許請求の範囲】
【請求項１】
ユーザーにより作成されたタスクを受け付ける受付部と、
前記受付部が受け付けた前記タスクの実行時間に基づいて、異常処理を検出する検出部と、
を備える制御装置。
【請求項２】
前記検出部は、
前記制御装置が行う処理の時間を計測する計測時間と、前記計測時間に対する前記実行時間の割合に基づいて、前記異常処理を検出する
請求項１に記載の制御装置。
【請求項３】
前記計測時間とは、
前記処理のうち、前記タスクが実行された後の時刻である第１時刻と、前記第１時刻とは異なる時刻であって、前記第１時刻より後の時刻である第２時刻との差である
請求項２に記載の制御装置。
【請求項４】
前記検出部は、
前記割合が所定割合以上である、又は前記実行時間が所定時間以上である場合、前記タスクを前記異常処理として検出する
請求項２又は請求項３に記載の制御装置。
【請求項５】
前記検出部は、
前記割合が所定割合以上であって、かつ前記実行時間が所定時間以上である場合、前記タスクを前記異常処理として検出する
請求項２から請求項４のいずれか一項に記載の制御装置。
【請求項６】
前記タスクは、
前記検出部によって前記異常処理として検出された場合、中断される
請求項１から請求項５のいずれか一項に記載の制御装置。
【請求項７】
前記タスクは、
前記検出部によって前記異常処理として検出された場合、終了される
請求項１から請求項６のいずれか一項に記載の制御装置。
【請求項８】
請求項１から７のうちいずれか一項に記載の制御装置を備え、
当該制御装置は、ロボットを制御するロボット制御部を備える、
ロボット制御装置。
【請求項９】
請求項８に記載のロボット制御装置と、
前記ロボットと、
を備えるロボットシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、制御装置、ロボット制御装置及びロボットシステムに関する。
【背景技術】
【０００２】
従来、ユーザーがロボットを制御することを目的としたロボット制御言語に関する技術の研究や開発が行われている。
【０００３】
ここで、ロボットを制御するシステムは、ロボット制御言語によって記述されるマルチタスクシステムによって実現される場合がある。
これに関し、マルチタスクシステムのタスク動作異常検知方法であって、実行対象タスクに関して連続して実行される命令の数を計数する計数工程と、当該計数した命令数が予め定めた閾値を超えた場合に、実行対象タスクに動作異常が生じていると判断する工程と、動作異常が生じていると判断したタスクの動作を停止する停止制御工程とを備えるタスク動作異常検知方法が知られている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−２０４０１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、このようなタスク動作異常検知方法では、タスクの動作に異常が生じているか否かを、各タスクに含まれる命令の実行ステップ数に基づいて検出するため、各命令の実行時間が一定ではない場合、タスク毎に異常を検出する条件が異なる場合があった。この結果、当該タスク動作異常検知方法では、所定の条件に基づいてタスクの動作に異常が生じているか否かを検知することが困難である場合があった。
【課題を解決するための手段】
【０００６】
上記課題の少なくとも一つを解決するために本発明の一態様は、ユーザーにより作成されたタスクを受け付ける受付部と、前記受付部が受け付けた前記タスクの実行時間に基づいて、異常処理を検出する検出部と、を備える制御装置である。
この構成により、制御装置では、ユーザーにより作成されたタスクの実行時間に基づいて、異常処理を検出する。これにより、制御装置は、所定の条件に基づいて異常処理を検出することができる。
【０００７】
また、本発明の他の態様は、制御装置において、前記検出部は、前記制御装置が行う処理の時間を計測する計測時間と、前記計測時間に対する前記実行時間の割合に基づいて、前記異常処理を検出する、構成が用いられてもよい。
この構成により、制御装置では、検出部は、制御装置が行う処理の時間を計測する計測時間と、計測時間に対する実行時間の割合に基づいて、異常処理を検出する。これにより、制御装置は、制御装置が行う処理の時間を計測する計測時間と、計測時間に対する実行時間の割合に関する所定の条件に基づいて異常処理を検出することができる。
【０００８】
また、本発明の他の態様は、制御装置において、前記計測時間とは、前記処理のうち、前記タスクが実行された後の時刻である第１時刻と、前記第１時刻とは異なる時刻であって、前記第１時刻より後の時刻である第２時刻との差である、構成が用いられていてもよい。
この構成により、制御装置では、計測時間とは、制御装置が行う処理のうち、ユーザーにより作成されたタスクが実行された後の時刻である第１時刻と、第１時刻とは異なる時刻であって、第１時刻より後の時刻である第２時刻との差である。これにより、制御装置は、第１時刻と、第２時刻との差に関する所定の条件に基づいて異常処理を検出することができる。
【０００９】
また、本発明の他の態様は、制御装置において、前記検出部は、前記割合が所定割合以上である、又は前記実行時間が所定時間以上である場合、前記タスクを前記異常処理として検出する、構成が用いられていてもよい。
この構成により、制御装置では、検出部は、計測時間に対する実行時間の割合が所定割合以上である、又は実行時間が所定時間以上である場合、ユーザーにより作成されたタスクを異常処理として検出する。これにより、制御装置は、割合が所定割合以上であること、又は実行時間が所定時間以上であることを所定の条件として異常処理を検出することができる。
【００１０】
また、本発明の他の態様は、制御装置において、前記検出部は、前記割合が所定割合以上であって、かつ前記実行時間が所定時間以上である場合、前記タスクを前記異常処理として検出する、構成が用いられていてもよい。
この構成により、制御装置では、検出部は、計測時間に対する実行時間の割合が所定割合以上であって、かつ実行時間が所定時間以上である場合、ユーザーにより作成されたタスクを異常処理として検出する。これにより、制御装置は、割合が所定割合以上であって、かつ実行時間が所定時間以上であることを所定の条件として異常処理を検出することができる。
【００１１】
また、本発明の他の態様は、制御装置において、前記タスクは、前記検出部によって前記異常処理として検出された場合、中断される、構成が用いられていてもよい。
この構成により、制御装置では、ユーザーにより作成されたタスクは、検出部によって異常処理として検出された場合、中断される。これにより、制御装置は、異常処理が検出されたことに応じて、ユーザーにより作成されたタスクを中断することができる。
【００１２】
また、本発明の他の態様は、制御装置において、前記タスクは、前記検出部によって前記異常処理として検出された場合、終了される、構成が用いられていてもよい。
この構成により、制御装置では、ユーザーにより作成されたタスクは、検出部によって異常処理として検出された場合、終了される。これにより、制御装置は、異常処理が検出されたことに応じて、ユーザーにより作成されたタスクを終了することができる。
【００１３】
また、本発明の他の態様は、上述に記載の制御装置を備え、当該制御装置は、ロボットを制御するロボット制御部を備える、ロボット制御装置である。
この構成により、ロボット制御装置では、ユーザーにより作成されたタスクの実行時間に基づいて、異常処理を検出する。これにより、ロボット制御装置は、異常処理によってロボットが停止してしまうことを抑制することができる。
【００１４】
また、本発明の他の態様は、上述に記載のロボット制御装置と、前記ロボットと、を備えるロボットシステムである。
この構成により、ロボットシステムでは、ユーザーにより作成されたタスクの実行時間に基づいて、異常処理を検出する。これにより、ロボットシステムは、所定の条件に基づいて異常処理を検出することができる。
【００１５】
以上により、制御装置及びロボットシステムは、ユーザーにより作成されたタスクの実行時間に基づいて、異常処理を検出する。これにより、制御装置及びロボットシステムは、所定の条件に基づいて異常処理を検出することができる。
また、ロボット制御装置は、ユーザーにより作成されたタスクの実行時間に基づいて、異常処理を検出する。これにより、ロボット制御装置は、異常処理によってロボットが停止してしまうことを抑制することができる。
【図面の簡単な説明】
【００１６】
【図１】実施形態に係るロボットの構成の一例を示す図である。
【図２】実施形態に係るロボット制御装置のハードウェア構成の一例を示す図である。
【図３】実施形態に係るロボット制御装置の機能構成の一例を示す図である。
【図４】実施形態に係るロボット制御装置の異常処理の検出処理の流れの一例を示すフローチャートである。
【図５】変形例に係るロボット制御装置の異常処理の検出処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【００１７】
＜実施形態＞
以下、本発明の実施形態について、図面を参照して説明する。
【００１８】
＜ロボットの構成＞
まず、ロボット１の構成について説明する。
図１は、実施形態に係るロボット１の構成の一例を示す図である。ロボット１は、支持台Ｂと、支持台Ｂにより支持された可動部Ａを備えるスカラロボット（水平多関節ロボット）である。なお、ロボット１は、スカラロボットに代えて、垂直多関節ロボットや直角座標ロボット等の他のロボットであってもよい。なお、当該垂直多関節ロボットは、１つの腕を備える単腕ロボットであってもよく、２つの腕を備える双腕ロボット（２つの腕を備える複腕ロボット）であってもよく、３つ以上の腕を備える複腕ロボットであってもよい。また、当該直角座標ロボットは、例えば、ガントリロボットである。
【００１９】
支持台Ｂは、２つの部位から構成されている。当該部位のうちの一方が基台Ｂ１であり、他方が第１筐体Ｂ２である。なお、支持台Ｂは、基台Ｂ１のみによって構成されてもよい。
【００２０】
基台Ｂ１は、床面や壁面等の設置面に設置される。基台Ｂ１は、外形として、ほぼ直方体（又は、立方体でもよい）の形状を有しており、板状の面から構成されていて、中空となっている。基台Ｂ１の上面の一部である第１上面Ｍ１には、第１筐体Ｂ２が固定されている。そして、基台Ｂ１の内側の空間は、第１筐体Ｂ２の内側の空間と繋がっている。基台Ｂ１の上面は、基台Ｂ１が有する面のうち設置面と反対側の面である。また、基台Ｂ１の上面のうち第１上面Ｍ１以外の部分である第２上面Ｍ２と設置面との間の距離は、第１上面Ｍ１と設置面との間の距離と比べて短い。このため、第２上面Ｍ２と第１筐体Ｂ２との間には、間隙が存在する。また、第２上面Ｍ２には、可動部Ａが設けられている。すなわち、基台Ｂ１は、可動部Ａを支持している。なお、基台Ｂ１の形状は、このような形状に代えて、可動部Ａを支持可能であり、且つ、基台Ｂ１の上面の一部に第１筐体Ｂ２が固定可能な形状であれば他の形状であってもよい。
【００２１】
第１筐体Ｂ２は、外形として、直方体（又は、立方体でもよい）を構成する互いに対向する２つの面に対して垂直な方向に、これら２つの面のそれぞれにおける１個の頂点を含む三角形の部分が除かれるように切り落とした形状を有している。ここで、当該部分を切り落とした形状は、必ずしも当該部分を切り落とす加工によって構成されなくてもよく、例えば、初めから同様な形状を形成する加工によって構成されてもよい。第１筐体Ｂ２は、外形としてこのような多面体の形状を有しており、板状の面から構成されていて、中空となっている。なお、第１筐体Ｂ２の形状は、このような形状に代えて、基台Ｂ１の上面の一部に第１筐体Ｂ２が固定可能な形状であれば他の形状であってもよい。
【００２２】
可動部Ａは、基台Ｂ１によって第１軸ＡＸ１周りに回動可能に支持された第１アームＡ１と、第１アームＡ１によって第２軸ＡＸ２周りに回動可能に支持された第２アームＡ２と、第２アームＡ２によって第３軸ＡＸ３周りに回動可能且つ第３軸ＡＸ３の軸方向に並進可能に支持されたシャフトＳＴを備える。
【００２３】
シャフトＳＴは、円柱形状の軸体である。シャフトＳＴの周表面には、図示しないボールねじ溝と、図示しないスプライン溝とがそれぞれ形成されている。シャフトＳＴは、この一例において、第２アームＡ２の端部のうちの第１アームＡ１と反対側の端部を、支持台Ｂが設置された設置面に対して垂直な方向である第１方向に貫通し、設けられる。また、シャフトＳＴの端部のうちの当該設置面側の端部は、エンドエフェクターを取り付け可能である。当該エンドエフェクターは、物体を把持可能なエンドエフェクターであってもよく、空気や磁気等によって物体を吸着可能なエンドエフェクターであってもよく、他のエンドエフェクターであってもよい。
【００２４】
第１アームＡ１は、この一例において、第１軸ＡＸ１周りに回動するので、第２方向に移動する。第２方向は、前述の第１方向に直交する方向である。第２方向は、例えば、ワールド座標系やロボット座標系ＲＣにおけるＸＹ平面に沿った方向である。第１アームＡ１は、支持台Ｂが備える第１モーター４１によって第１軸ＡＸ１周りに回動させられる。すなわち、第１軸ＡＸ１は、第１モーター４１の回動軸と一致する軸である。なお、図１において、第１モーター４１は、図を簡略化するため、省略している。
【００２５】
第２アームＡ２は、この一例において、第２軸ＡＸ２周りに回動するので、第２方向に移動する。第２アームＡ２は、第２アームＡ２が備える第２モーター４２によって第２軸ＡＸ２周りに回動させられる。すなわち、第２軸ＡＸ２は、第２モーター４２の回動軸と一致する軸である。なお、図１において、第２モーター４２は、図を簡略化するため、省略している。
【００２６】
また、第２アームＡ２は、第３モーター４３及び第４モーター４４を備え、シャフトＳＴを支持する。第３モーター４３は、シャフトＳＴのボールねじ溝の外周部に設けられたボールねじナットをタイミングベルト等で回動させることにより、シャフトＳＴを第１方向に移動（昇降）させる。第４モーター４４は、シャフトＳＴのスプライン溝の外周部に設けられたボールスプラインナットをタイミングベルト等で回動させることにより、シャフトＳＴを第３軸ＡＸ３周りに回動させる。なお、図１において、第３モーター４３及び第４モーター４４は、図を簡略化するため、省略している。
【００２７】
以下では、一例として、第１モーター４１〜第４モーター４４のそれぞれが、すべて同じ構成を有している場合について説明する。また、以下では、説明の便宜上、第１モーター４１〜第４モーター４４のそれぞれを区別する必要がない限り、モーター４と称して説明する。なお、モーター４のうちの一部又は全部は、互いに異なる構成を有するモーターであってもよい。
モーター４は、ロボット制御装置３０によってその動作が制御される。
【００２８】
ロボット１は、ロボット制御装置３０の一部を基台Ｂ１の内側の空間に内蔵し、ロボット制御装置３０の残りの一部を第１筐体Ｂ２の内側の空間に内蔵する。これにより、ロボット１は、ロボット制御装置３０が基台Ｂ１及び第１筐体Ｂ２の外部に設けられている場合と比較して、ロボット１が設置されている範囲の専有面積を小さくすることができる。なお、ロボット１は、ロボット制御装置３０の全部を基台Ｂ１と第１筐体Ｂ２とのうちいずれか一方の内側に内蔵する構成であってもよい。この場合、ロボット１は、ロボット制御装置３０が基台Ｂ１又は第１筐体Ｂ２の外部に設けられている場合と比較して、ロボット１が設置されている範囲の専有面積を小さくすることができる。また、ロボット１は、ロボット制御装置３０を内蔵する構成に代えて、ロボット１と別体のロボット制御装置３０が外付けされる構成であってもよい。なお、ロボット１と、ロボット制御装置３０とが別体に構成される場合、ロボット１と、ロボット制御装置３０とは、ロボットシステムを構成する。換言すると、当該ロボットシステムは、ロボット１と、ロボット制御装置３０とを備える。
【００２９】
＜ロボットの動作の制御＞
上述したように、ロボット１は、ロボット制御装置３０によってその動作が制御される。具体的には、ロボット１の動作は、ユーザーによって指示される。ユーザーとは、ロボット１やロボット制御装置３０の使用者である。より具体的には、ユーザーは、ロボット１の動作の指示を示すプログラムを設計し、ロボット制御装置３０が当該プログラムの処理を実行することによって、ロボット１がユーザーの指示通りに動作する。
ここで、ロボット１を制御するプログラムは、マルチタスクシステムによって実現される場合がある。マルチタスクシステムは、ロボット制御言語によって記述される複数のタスクによって構成される。マルチタスクシステム及びマルチタスクシステムに含まれるタスクは、ユーザーが独自に設計することが可能である。以降の説明において、マルチタスクシステムに含まれる複数のタスクのうち、ユーザーが設計したタスクをユーザータスクＴＫと記載する。
ユーザーは、マルチタスクシステムに含まれる複数のタスクのうち、ユーザータスクＴＫが優先的に処理されるようにマルチタスクシステムを構成する場合がある。また、マルチタスクシステムは、ロボット１の制御を行う性質上、リアルタイム性が求められる場合がある。ここで、リアルタイム性とは、ロボット制御装置３０がロボット１の制御を指示してから、当該指示に応じたロボット１の制御が完了されるまでの時間が、予め定められた時間内において行われる性質を示す。したがって、ユーザータスクＴＫは、リアルタイム性を損なわないように予め定められた時間間隔において処理を完了するように設計されることが好ましい。換言すると、ユーザータスクＴＫが、リアルタイム性を損なうような処理を行う場合、当該ユーザータスクＴＫによって行われる処理は異常処理ＡＰｒｇとして検出されることが好ましい。ここで、異常処理ＡＰｒｇは、ユーザータスクＴＫが行う処理のうち、予め定められた時間を超えて実行される処理である。
本発明のロボット制御装置３０は、ロボット１を制御するマルチタスクシステムにおいて、ユーザータスクＴＫが異常処理ＡＰｒｇであるか否かを検出する。
【００３０】
＜ロボット制御装置のハードウェア構成＞
以下、図２を参照し、ロボット制御装置３０のハードウェア構成について説明する。図２は、ロボット制御装置３０のハードウェア構成の一例を示す図である。
【００３１】
ロボット制御装置３０は、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３１と、記憶部３２と、入力受付部３３と、通信部３４と、表示部３５を備える。これらの構成要素は、バスＢｕｓ１を介して相互に通信可能に接続されている。また、ロボット制御装置３０は、通信部３４を介してロボット１と通信を行う。
【００３２】
ＣＰＵ３１は、記憶部３２に格納された各種プログラムを実行する。
記憶部３２は、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）やＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等を含む。なお、記憶部３２は、ロボット制御装置３０に内蔵されるものに代えて、ＵＳＢ等のデジタル入出力ポート等によって接続された外付け型の記憶装置であってもよい。記憶部３２は、ロボット制御装置３０が処理する各種情報、ロボット１を動作させる動作プログラムを含む各種プログラム、各種の画像等を格納する。
【００３３】
入力受付部３３は、例えば、キーボードやマウス、タッチパッド、その他の入力装置である。なお、入力受付部３３は、これらに代えて、表示部３５と一体に構成されたタッチパネルであってもよい。
通信部３４は、例えば、ＵＳＢ等のデジタル入出力ポートやイーサネット（登録商標）ポート等を含んで構成される。
表示部３５は、例えば、液晶ディスプレイパネル、あるいは、有機ＥＬ（ＥｌｅｃｔｒｏＬｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイパネルである。
【００３４】
＜ロボット制御装置の機能構成＞
以下、図３を参照し、ロボット制御装置３０の機能構成について説明する。図３は、実施形態に係るロボット制御装置３０の機能構成の一例を示す図である。
【００３５】
ロボット制御装置３０は、記憶部３２と、通信部３４と、制御部３６とを備える。
【００３６】
制御部３６は、ロボット制御装置３０の全体を制御する。制御部３６は、受付部３６１と、第１計時部３６３と、第２計時部３６５と、検出部３６７と、処理部３６９と、ロボット制御部３７１を備える。制御部３６が備えるこれらの機能部は、例えば、ＣＰＵ３１が、記憶部３２に記憶された各種プログラムを実行することにより実現される。また、当該機能部のうちの一部又は全部は、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）やＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）等のハードウェア機能部であってもよい。
【００３７】
受付部３６１は、異常処理ＡＰｒｇを検出する検出対象のユーザータスクＴＫの処理の開始を受け付ける。マルチタスクシステムは、例えば、記憶部３２に予め記憶されており、ＣＰＵ３１によって実行される。なお、マルチタスクシステムは、記憶部３２に予め記憶される構成に代えて、通信部３４を介して他の装置から受信する構成であってもよい。この場合、ＣＰＵ３１は、通信部３４が受信したマルチタスクシステムを実行する。受付部３６１は、ＣＰＵ３１によって実行されるマルチタスクシステムのうち、異常処理ＡＰｒｇを検出する検出対象のユーザータスクＴＫの処理が開始されたことを受け付ける。
【００３８】
第１計時部３６３は、受付部３６１が開始を受け付けたユーザータスクＴＫにおいて行われる処理に要する時間を計時する。上述したように、タスク及びユーザータスクＴＫは、ロボット制御言語によって記述される。ロボット制御言語には、タスク及びユーザータスクＴＫ内において処理を行うコマンドと、他のタスク及び他のユーザータスクＴＫに処理を行わせるコマンドとが存在する。第１計時部３６３は、検出対象のユーザータスクＴＫ内において処理を行うコマンドが、当該処理に要する時間である実行時間ｔを計時する。
【００３９】
第２計時部３６５は、受付部３６１が開始を受付けたユーザータスクＴＫの計測時間ｓを計時する。計測時間ｓとは、ユーザータスクＴＫの処理が開始されてから終了するまでに要する時間である。
【００４０】
検出部３６７は、第１計時部３６３が計時する実行時間ｔと、第２計時部３６５が計時する計測時間ｓとに基づいて、ユーザータスクＴＫによって行われる異常処理ＡＰｒｇを検出する。
具体的には、検出部３６７は、実行時間ｔが所定時間以上である場合であって、かつ実行率が所定割合以上である場合にユーザータスクＴＫによって行われる処理を異常処理ＡＰｒｇとして検出する。実行率とは、計測時間ｓに対する実行時間ｔの割合のことである。所定時間は、例えば、１ｍｓｅｃである。また、所定割合とは、３０％である。なお、所定時間は、リアルタイム性を損なわないようにタスクが実行可能な時間であれば、他の時間であってもよい。また、所定割合は、リアルタイム性を損なわないようにタスクが実行可能な割合であれば、他の割合であってもよい。
また、所定時間及び所定割合は、異常処理ＡＰｒｇを検出する検出対象のユーザータスクＴＫ毎に異なる値であってもよい。また、所定時間及び所定割合は、ユーザーによって設定される値であってもよい。
【００４１】
処理部３６９は、検出部３６７の検出結果ＤＲを示す情報を検出部３６７から取得する。検出結果ＤＲは、ユーザータスクＴＫの処理が異常処理ＡＰｒｇとして検出されたか否かを示す。
処理部３６９は、ユーザータスクＴＫの処理が異常処理ＡＰｒｇとして検出されたことを検出結果ＤＲが示す場合、当該ユーザータスクＴＫの処理を一時中断する。具体的には、処理部３６９は、ユーザータスクＴＫの処理が異常処理ＡＰｒｇとして検出されたことを検出結果ＤＲが示す場合、異常処理ＡＰｒｇが検出されたユーザータスクＴＫの処理を一時中断するようにＣＰＵ３１に指示する。ＣＰＵ３１は、当該処理が一時中断されている間にマルチタスクシステムに含まれる他のタスク又は他のユーザータスクＴＫの処理を行う。ここで、ユーザータスクＴＫの処理が一時中断される時間とは、例えば、５００μｓｅｃである。なお、ユーザータスクＴＫの処理が一時中断される時間は、マルチタスクシステムがリアルタイム性を損なわないように動作することが可能であれば、５００μｓｅｃに代えて、他の時間であってもよい。また、処理部３６９は、実行率に基づいて、マルチタスクシステムがリアルタイム性を損なわないように動作するための一時中断時間を算出してもよい。この場合、処理部３６９は、当該算出した一時中断時間の間、ユーザータスクＴＫの処理を中断する。
【００４２】
ロボット制御部３７１は、実行されたユーザータスクＴＫの処理に応じてロボット１を動作させる。
【００４３】
＜ロボット制御装置の異常処理検出処理＞
以下、図４を参照し、ロボット制御装置３０の異常処理ＡＰｒｇの検出処理について説明する。図４は、実施形態に係るロボット制御装置３０の異常処理ＡＰｒｇの検出処理の流れの一例を示すフローチャートである。
【００４４】
受付部３６１は、異常処理ＡＰｒｇを検出する検出対象のユーザータスクＴＫの開始を受け付ける（ステップＳ１０）。次に、第２計時部３６５は、受付部３６１がユーザータスクＴＫの開始を受け付けたことに応じて、当該開始を受け付けた時刻を第１計測時間ｓ１として計時する（ステップＳ１５）。第１計測時間ｓ１は、第２計時部３６５が計測時間ｓを算出する際に使用する変数のことである。
【００４５】
次に、第１計時部３６３は、ユーザータスクＴＫ内において処理を行うコマンドが実行された場合（ステップＳ２０−ＹＥＳ）、当該コマンドが実行された時刻を第１実行時間ｔ１として計時する（ステップＳ２５）。第１実行時間ｔ１は、第１計時部３６３が実行時間ｔを算出する際に使用する変数である。なお、第１計時部３６３は、ユーザータスクＴＫ内において処理を行うコマンドが実行されるまでの間（ステップＳ２０−ＮＯ）、待機する。次に、第１計時部３６３は、ユーザータスクＴＫ内において処理を行うコマンドが実行された後、当該コマンドが中断又は終了された場合（ステップＳ３０−ＹＥＳ）、当該コマンドが中断又は終了された時刻を第２実行時間ｔ２として計時する（ステップＳ３５）。第２実行時間ｔ２は、第１計時部３６３が実行時間ｔを算出する際に使用する変数のことであって、第１実行時間ｔ１よりも後の時刻を示す変数である。なお、第１計時部３６３は、当該コマンドが中断又は終了されるまでの間（ステップＳ３０−ＮＯ）、待機する。
次に、第２計時部３６５は、第１計時部３６３が第２実行時間ｔ２を計時したことに応じて、第２計測時間ｓ２を計時する（ステップＳ４０）。第２計測時間ｓ２は、第２計時部３６５が計測時間ｓを算出する際に使用する変数のことであって、第１計測時間ｓ１よりも後の時刻を示す変数である。ここで、ステップＳ３５と、ステップＳ４０とは、処理が並列又は逆の順序で行われてもよい。
【００４６】
次に、第１計時部３６３は、計時した第１実行時間ｔ１及び第２実行時間ｔ２に基づいて、実行時間ｔを算出する（ステップＳ４５）。具体的には、第１計時部３６３は、第２実行時間ｔ２から第１実行時間ｔ１を差し引いた時間を実行時間ｔとして算出する。次に、第２計時部３６５は、計時した第１計測時間ｓ１及び第２計測時間ｓ２に基づいて、計測時間ｓを算出する（ステップＳ５０）。具体的には、第２計時部３６５は、第２計測時間ｓ２から第１計測時間ｓ１を差し引いた時間を計測時間ｓとして算出する。ここで、ステップＳ４５と、ステップＳ５０とは、処理が並列又は逆の順序で行われてもよい。
【００４７】
次に、検出部３６７は、第１計時部３６３が算出する実行時間ｔと、第２計時部３６５が算出する計測時間ｓとに基づいて、前述の実行率を算出する（ステップＳ５５）。次に、検出部３６７は、実行時間ｔと、実行率とに基づいて、異常処理ＡＰｒｇを検出する（ステップＳ６０）。そして、検出部３６７は、ユーザータスクＴＫの処理を異常処理ＡＰｒｇとして検出した否かを示す検出結果ＤＲを処理部３６９に供給する。
【００４８】
次に、処理部３６９は、検出部３６７から取得した検出結果ＤＲがユーザータスクＴＫの処理を異常処理ＡＰｒｇとして検出したことを示す場合（ステップＳ６０−ＹＥＳ）、ユーザータスクＴＫの処理を一時中断する（ステップＳ６５）。一方、ロボット制御装置３０は、検出結果ＤＲがユーザータスクＴＫの処理を異常処理ＡＰｒｇとして検出していないことを示す場合（ステップＳ６０−ＮＯ）、ステップＳ２０からステップＳ６０までの処理を繰り返す。
【００４９】
なお、上述では、第１計測時間ｓ１がユーザータスクＴＫの開始を受け付けた時刻である場合について説明したが、これに限られない。第１計測時間ｓ１は、例えば、マルチタスクシステムが開始された時刻を第１計測時間ｓ１として計時してもよい。この場合、所定時間とは、ユーザータスクＴＫ以外のマルチタスクシステムの処理が行われる時間を含む時間であることが好ましい。
【００５０】
また、上述では、検出部３６７は、実行率が所定割合以上であって、かつ実行時間ｔが所定時間以上である場合に、ユーザータスクＴＫの処理を異常処理ＡＰｒｇとして検出する場合について説明したがこれに限られない。検出部３６７は、実行率が所定割合以上である、又は実行時間ｔが所定時間以上である場合に、ユーザータスクＴＫの処理を異常処理ＡＰｒｇとして検出してもよい。
【００５１】
また、上述では、処理部３６９が、検出結果ＤＲがユーザータスクＴＫの処理が異常処理ＡＰｒｇであることを示す場合、当該ユーザータスクＴＫの処理を一時中断する場合について説明したが、これに限られない。処理部３６９は、検出結果ＤＲがユーザータスクＴＫの処理が異常処理ＡＰｒｇであることを示す場合、当該ユーザータスクＴＫの処理を終了してもよく、当該ユーザータスクＴＫを含むマルチタスクシステムの処理を終了してもよく、他の処理を行ってもよい。また、検出結果ＤＲがユーザータスクＴＫの処理が異常処理ＡＰｒｇであることを示す場合、処理部３６９がユーザータスクＴＫを終了させる処理を行うか一時中断させる処理を行うかは、ユーザーによって選択されてもよい。
【００５２】
＜変形例：ロボット制御装置の異常処理検出処理の他の例＞
以下、図５を参照し、変形例に係るロボット制御装置３０の異常処理ＡＰｒｇの検出処理について説明する。図５は、変形例に係るロボット制御装置３０の異常処理ＡＰｒｇの検出処理の流れの一例を示すフローチャートである。
上述の実施形態では、第１実行時間ｔ１と第２実行時間ｔ２との差に基づいて、実行時間ｔを算出する場合について説明した。変形例では、ユーザータスクＴＫ内において処理を行うコマンドが実行された場合、当該処理に要する時間をカウントし、第３実行時間ｔ３として計時する場合について説明する。
なお、上述した実施形態と同様の構成については、同一の符号を付して説明を省略する。
【００５３】
受付部３６１は、異常処理ＡＰｒｇを検出する検出対象のユーザータスクＴＫの開始を受け付ける（ステップＳ１００）。
次に、第１計時部３６３は、受付部３６１がユーザータスクＴＫの開始を受け付けたことに応じて、第３実行時間ｔ３の値を初期値に設定する（ステップＳ１１０）。第３実行時間ｔ３とは、第１計時部３６３が実行時間ｔを算出する際に使用する変数のことである。次に、第２計時部３６５は、受付部３６１がユーザータスクＴＫの開始を受け付けたことに応じて、当該開始を受け付けた時刻を第１計測時間ｓ１として計時する（ステップＳ１２０）。
次に、第１計時部３６３は、ユーザータスクＴＫ内において処理を行うコマンドが実行された場合、当該処理に要する時間をカウントし、カウントした当該時間を第３実行時間ｔ３に加算する。以降の説明において、第１計時部３６３が処理に要する時間をカウントし、第３実行時間ｔ３に加算することを、第１計時部３６３が第３実行時間ｔ３を計時すると記載する。つまり、第１計時部３６３は、ユーザータスクＴＫ内において処理を行うコマンドが実行された場合（ステップＳ１３０−ＹＥＳ）、当該処理に要する時間をカウントし、第３実行時間ｔ３として計時する（ステップＳ１４０）。なお、第１計時部３６３は、ユーザータスクＴＫ内において処理を行うコマンドが実行されるまでの間（ステップＳ１３０−ＮＯ）、待機する。
次に、第２計時部３６５は、第１計時部３６３が第３実行時間ｔ３を計時することに応じて、当該第３実行時間ｔ３を計時した時刻を第２計測時間ｓ２として計時する（ステップＳ１５０）。ここで、ステップＳ１４０と、ステップＳ１５０とは、処理が並列又は逆の順序で行われてもよい。
【００５４】
次に、第１計時部３６３は、第３実行時間ｔ３の値を実行時間ｔとして算出する（ステップＳ１５５）。次に、第２計時部３６５は、第１計測時間ｓ１及び第２計測時間ｓ２に基づいて、計測時間ｓを算出する（ステップＳ１６０）。ここで、ステップＳ１５５と、ステップＳ１６０とは、処理が並列又は逆の順序で行われてもよい。
【００５５】
次に、検出部３６７は、第１計時部３６３が算出する実行時間ｔと、第２計時部３６５が算出する計測時間ｓとに基づいて、実行率を算出する（ステップＳ１７０）。次に、検出部３６７は、実行時間ｔと、実行率とに基づいて、異常処理ＡＰｒｇを検出する（ステップＳ１８０）。そして、検出部３６７は、ユーザータスクＴＫの処理を異常処理ＡＰｒｇとして検出したか否かを示す検出結果ＤＲを処理部３６９に供給する。
次に、処理部３６９は、検出部３６７から取得した検出結果ＤＲがユーザータスクＴＫの処理が異常処理ＡＰｒｇであることを示す場合（ステップＳ１８０−ＹＥＳ）、ユーザータスクＴＫの処理を一時中断する（ステップＳ１９０）。次に、ロボット制御装置３０は、検出結果ＤＲがユーザータスクＴＫの処理が異常処理ＡＰｒｇではないことを示す場合（ステップＳ１８０−ＮＯ）、ステップＳ１３０からステップＳ１８０までの処理を繰り返す。
【００５６】
なお、上述では、ロボット制御装置３０がロボット１を制御するマルチタスクシステムにおいて、ユーザータスクＴＫが異常処理ＡＰｒｇであるか否かを検出する場合について説明したが、これに限られない。例えば、ロボット制御装置３０は、ロボット１以外の他の装置を制御するマルチタスクシステムにおいて、ユーザータスクＴＫが異常処理ＡＰｒｇであるか否かを検出してもよい。以降の説明において、ロボット１以外の他の装置を制御するロボット制御装置３０を単に制御装置と記載する。制御装置とは、マルチタスクシステムによって制御され、かつマルチタスクシステムに含まれるタスクのうち、少なくとも一部のタスクがユーザータスクＴＫである装置である。制御装置は、例えば、ロジスティックアナライザー、券売機、医療機器、工作機械及び画像処理装置等である。なお、制御装置は、ロボット制御部３７１に代えて、制御装置が制御する制御対象を制御する制御部を備える。
【００５７】
以上のように、制御装置（本実施形態の一例では、ロボット制御装置３０）では、ユーザーにより作成されたタスク（本実施形態の一例では、ユーザータスクＴＫ）の実行時間（本実施形態の一例では、実行時間ｔ）に基づいて、異常処理（本実施形態の一例では、異常処理ＡＰｒｇ）を検出する。これにより、制御装置は、所定の条件に基づいて異常処理を検出することができる。
【００５８】
また、制御装置では、検出部（本実施形態の一例では、検出部３６７）は、制御装置が行う処理の時間を計測する計測時間（本実施形態の一例では、計測時間ｓ）と、計測時間に対する実行時間の割合（本実施形態の一例では、実行率）に基づいて、異常処理を検出する。これにより、制御装置は、制御装置が行う処理の時間を計測する計測時間と、計測時間に対する実行時間の割合に関する所定の条件に基づいて異常処理を検出することができる。
【００５９】
また、制御装置では、計測時間とは、制御装置が行う処理のうち、ユーザーにより作成されたタスクが実行された後の時刻である第１時刻（本実施形態の一例では、第１計測時間ｓ１）と、第１時刻とは異なる時刻であって、第１時刻より後の時刻である第２時刻（本実施形態の一例では、第２計測時間ｓ２）との差である。これにより、制御装置は、第１時刻と、第２時刻との差に関する所定の条件に基づいて異常処理を検出することができる。
【００６０】
また、制御装置では、検出部は、計測時間に対する実行時間の割合が所定割合以上である、又は実行時間が所定時間以上である場合、ユーザーにより作成されたタスクを異常処理として検出する。これにより、制御装置は、割合が所定割合以上であること、又は実行時間が所定時間以上であることを所定の条件として異常処理を検出することができる。
【００６１】
また、制御装置では、検出部は、計測時間に対する実行時間の割合が所定割合以上であって、かつ実行時間が所定時間以上である場合、ユーザーにより作成されたタスクを異常処理として検出する。これにより、制御装置は、割合が所定割合以上であって、かつ実行時間が所定時間以上であることを所定の条件として異常処理を検出することができる。
【００６２】
また、制御装置では、ユーザーにより作成されたタスクは、検出部によって異常処理として検出された場合、中断される。これにより、制御装置は、異常処理が検出されたことに応じて、ユーザーにより作成されたタスクを中断することができる。
【００６３】
また、制御装置では、ユーザーにより作成されたタスクは、検出部によって異常処理として検出された場合、終了される。これにより、制御装置は、異常処理が検出されたことに応じて、ユーザーにより作成されたタスクを終了することができる。
【００６４】
また、制御御装置を備え、ロボットを制御するロボット制御部（本実施形態の一例では、ロボット制御部３７１）を備えるロボット制御装置（本実施形態の一例では、ロボット制御装置３０）では、ユーザーにより作成されたタスクの実行時間に基づいて、異常処理を検出する。これにより、ロボット制御装置は、異常処理によってロボットが停止してしまうことを抑制することができる。
【００６５】
また、ロボットと、ロボット制御装置とを備えるロボットシステムでは、ユーザーにより作成されたタスクの実行時間に基づいて、異常処理を検出する。これにより、ロボットシステムは、所定の条件に基づいて異常処理を検出することができる。
【００６６】
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない限り、変更、置換、削除等されてもよい。
【００６７】
また、以上に説明した装置（例えば、ロボット制御装置３０）における任意の構成部の機能を実現するためのプログラムを、コンピューター読み取り可能な記録媒体に記録し、そのプログラムをコンピューターシステムに読み込ませて実行するようにしてもよい。なお、ここでいう「コンピューターシステム」とは、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や周辺機器等のハードウェアを含むものとする。また、「コンピューター読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ）−ＲＯＭ等の可搬媒体、コンピューターシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピューター読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピューターシステム内部の揮発性メモリー（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００６８】
また、上記のプログラムは、このプログラムを記憶装置等に格納したコンピューターシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピューターシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
また、上記のプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、上記のプログラムは、前述した機能をコンピューターシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【００６９】
１…ロボット、３０…ロボット制御装置、ＴＫ…ユーザータスク、３６…制御部、３６１…受付部、３６３…第１計時部、３６５…第２計時部、３６７…検出部、３６９…処理部、ＡＰｒｇ…異常処理、ＤＲ…検出結果、ｓ…計測時間、ｓ１…第１計測時間、ｓ２…第２計測時間、ｔ…実行時間、ｔ１…第１実行時間、ｔ２…第２実行時間、ｔ３…第３実行時間
【図１】
2018094696.tif 000003
【図２】
2018094696.tif 000004
【図３】
2018094696.tif 000005
【図４】
2018094696.tif 000006
【図５】
2018094696.tif 000007