JP2013168188A - ロボット制御のログ取得システム - Google Patents

ロボット制御のログ取得システム Download PDF

Info

Publication number
JP2013168188A
JP2013168188A JP2013117743A JP2013117743A JP2013168188A JP 2013168188 A JP2013168188 A JP 2013168188A JP 2013117743 A JP2013117743 A JP 2013117743A JP 2013117743 A JP2013117743 A JP 2013117743A JP 2013168188 A JP2013168188 A JP 2013168188A
Authority
JP
Japan
Prior art keywords
log
cycle
long
execution
robot control
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2013117743A
Other languages
English (en)
Other versions
JP5387794B2 (ja
Inventor
Kenji Kikuchi
健司 菊池
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Wave Inc
Original Assignee
Denso Wave Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Denso Wave Inc filed Critical Denso Wave Inc
Priority to JP2013117743A priority Critical patent/JP5387794B2/ja
Publication of JP2013168188A publication Critical patent/JP2013168188A/ja
Application granted granted Critical
Publication of JP5387794B2 publication Critical patent/JP5387794B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Numerical Control (AREA)
  • Manipulator (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】記憶容量の増大を招くことなく不適切な挙動に対応するログが取得され、短時間でロボット制御プログラムの正確な確認が容易なロボット制御のログ取得システムを提供する。
【解決手段】実行ログ取得部24は、ロボット制御プログラム40の実行によりロボット制御プログラム40で使用される実行行および変数を取得する。実行行および実行変数ログは、ログ取得スタート行からログ取得エンド行までロボット制御プログラム40が周回するごとに一周期ログとして取得される。比較部26は、取得する一周期ログと、長期記憶部32に蓄積された最新長期記憶一周期ログとを比較する。長期記憶判断部27は、これらが異なるとき、取得した一周期ログの長期記憶が必要であると判断して長期記憶部32に記憶する。これにより、記憶容量の増大を招くことなく短時間でロボット制御プログラム40の動作を正確かつ容易に確認される。
【選択図】図2

Description

本発明は、ロボット制御のログ取得システムに関し、特に制御装置で実行されるロボット制御プログラムのバグを解析するためのログを取得するシステムに関する。
ロボット制御システムは、各種のプログラムを実行する例えばパーソナルコンピュータなどの電子計算機、シーケンサなどの各種の外部入出力機器、実際の動作を実行するロボット、並びにこれら電子計算機、外部入出力機器およびロボットからの種々の入力または出力に応じてロボットを制御する制御装置によって構成されている。ロボット制御システムは、システムを構成する電子計算機、外部入出力機器およびロボットを接続した状態で制御装置においてロボット制御プログラムを実行することにより、正常に作動するか否かが確認される。一方、ロボット制御プログラムは、プログラムの異常いわゆるバグなどを含んでいる場合があり、最初から完全でないこともある。そのため、システムの作動を確認するためには、ロボット制御プログラムの実行時に実行記録を取得する、いわゆるログの取得が必須となる(例えば、特許文献1参照)。
しかしながら、ロボット制御プログラムは、一般に多数の行にわたる比較的長いものが多い。しかも、電子計算機、外部入出力機器およびロボットから構成されるシステムの場合、ロボット制御プログラムの実行に影響を与えるデータは時々刻々と電子計算機、外部入出力機器およびロボットから入力される。そのため、ロボット制御プログラムに基づくシステムの挙動は、これらデータの入力に応じて刻々と変化する。また、ロボット制御プログラムの場合、例えば実行の停止をともなう自身の不備だけでなく、プログラム自体は正常に実行されるものの例えばロボットの不適切な挙動などについても確認する必要がある。これらを確認するために、ロボット制御プログラムのすべてのログを取得すると、正確なロボット制御プログラムの確認のために膨大な時間を必要とするだけでなく、ログの取得に膨大な記憶領域が必要になるという問題がある。また、ロボット制御プログラムのうち問題を生じる部分いわゆるバグは一部である。そのため、ロボット制御プログラムのすべてのログを取得すると、バグの発見が困難になるという問題がある。
特開2001−209558号公報
そこで、本発明の目的は、記憶容量の増大を招くことなく不適切な挙動に対応するログが取得され、短時間でロボット制御プログラムの正確な確認が容易なロボット制御のログ取得システムを提供することにある。
請求項1または3記載の発明では、実行ログ取得手段は、ロボット制御プログラムの実行にともなってロボット、電子計算機および外部入出力機器から出力された信号に基づいて変化しつつロボット制御プログラムで使用される実行行および変数を取得する。実行行および実行変数ログは、ログ取得スタート行からログ取得エンド行までロボット制御プログラムが周回するごとに一周期ログとして取得される。そして、取得した一周期ログが蓄積された長期記憶一周期ログのうち最新の長期記憶一周期ログと異なるとき、その取得した一周期ログは長期記憶が必要であると判断されて長期記憶手段に記憶される。すなわち、ロボット制御プログラムの実行の一周期において実行行および変数に変化が生じると、取得される一周期ログは、長期記憶一周期ログとして長期記憶手段に記憶され、次回以降の一周期ログとの比較の対象となる。したがって、短時間でロボット制御プログラムの動作を正確かつ容易に確認することができる。
また、請求項1記載の発明では、比較手段は、一周期ログに含まれる対応するロボット制御プログラムの一行ごとに、取得する一周期ログと長期記憶手段に記憶されている最新の長期記憶一周期ログとを逐次比較する。対応するロボット制御プログラムの一行ごとに長期記憶一周期ログと比較することにより、比較は短時間で実行される。そのため、ログ取得スタート行とログ取得エンド行との間を短時間で周回するロボット制御プログラムからログを取得する場合でも、ロボット制御プログラムの動作を正確に比較することができる。さらに、取得される一周期ログが最新の長期記憶一周期ログと同一の場合、一時記憶手段に記憶された一周期ログは長期記憶手段に記憶されることなくクリアされる。そのため、例えば今回取得した一周期ログが前回の周期と同一であれば今回取得した一周期ログはクリアされる。すなわち、最新の長期記憶一周期ログと重複する一周期ログは長期記憶手段に記憶されることなく、前回の周期との間で変化が生じた一周期ログのみが長期記憶一周期ログとして長期記憶手段に記憶される。したがって、長期記憶手段の記憶容量の増大を招くことなく、挙動の変化の変遷を追跡することができる。
請求項2記載の発明では、実行ログ取得手段は、ロボット制御プログラムの実行にともなってロボット、電子計算機および外部入出力機器から出力された信号に基づいて変化しつつロボット制御プログラムで使用される実行行および変数を取得する。実行変数ログは、ログ取得スタート行からログ取得エンド行までロボット制御プログラムが周回するごとに取得される。移行処理手段は、n周期目に取得したn周期ログが第m記憶領域に記憶された一周期ログと一致するとき、n周期ログが記憶された第m+1記憶領域を更新せずに次回の一周期ログの取得へ移行し、n周期ログが第m記憶領域に記憶された一周期ログと異なるとき、n周期ログを記憶した第m+1記憶領域を長期保護領域とする。すなわち、ロボット制御プログラムの実行のn周期目において、第m記憶領域に記憶された一周期ログとの間で実行行および変数に変化が生じると、取得されるn周期ログは、n周期ログが記憶された第m+1記憶領域において長期保護領域として保護される。そして、n+1周期目のn+1周期ログは、第m+1記憶領域の次のアドレスに位置する第m+2記憶領域に記憶される。長期保護領域に記憶されたn周期ログは、次回以降の一周期ログとの比較の対象となる。したがって、短時間でロボット制御プログラムの動作を正確かつ容易に確認することができる。
また、請求項2記載の発明では、移行処理手段は、一周期ログに含まれる対応するロボット制御プログラムの一行ごとに、取得する一周期ログと第m記憶領域で長期保護の対象となっている一周期ログとを逐次比較する。対応するロボット制御プログラムの一行ごとに長期記憶一周期ログと比較することにより、比較は短時間で実行される。そのため、ログ取得スタート行とログ取得エンド行との間を短時間で周回するロボット制御プログラムからログを取得する場合でも、ロボット制御プログラムの動作を正確に比較することができる。さらに、取得される一周期ログが長期保護領域に記憶されている長期記憶一周期ログと同一の場合、記憶領域に記憶された一周期ログは次回の一周期ログによって上書きされる。そのため、一周期ログが変化するごとに、長期保護領域が形成されつつ、新たな一周期ログが取得される。すなわち、最新の長期保護領域に記憶された一周期ログと重複する一周期ログが記憶された記憶領域は長期保護領域と設定されることなく、前回の周期との間で一周期ログに変化が生じたときのみ長期保護領域が設定される。したがって、記憶容量の増大を招くことなく単一の記憶手段を一時記憶のための領域および長期保護のための領域として共用しつつ、挙動の変化の変遷を追跡することができる。
また、請求項3記載の発明では、比較手段は、一時記憶手段に設けられている複数の一時記憶領域のいずれか一つに最新の一周期ログを記憶している間に、一時記憶領域に記憶されている最古一周期ログと長期記憶手段に記憶されている最新長期記憶一周期ログとを比較する。一時記憶手段に複数の一時記憶領域を設け、一時記憶領域に記憶された最古一周期ログと長期記憶一周期ログとを比較することにより、比較のために必要な時間は長く設定可能となる。そのため、ログ取得スタート行とログ取得エンド行との間を短時間で周回するロボット制御プログラムからログを取得する場合でも、制御装置のプロセッサの性能を高めることなくロボット制御プログラムの動作を正確に比較することができる。さらに、最古一周期ログが最新の長期記憶一周期ログと同一の場合、一時記憶手段に記憶された最古一周期ログは長期記憶手段に記憶されることなくクリアされる。そのため、最新の長期記憶一周期ログと重複する最古一周期ログは長期記憶手段に記憶されることなく、前回の周期との間で変化が生じた最古一周期ログのみが長期記憶一周期ログとして長期記憶手段に記憶される。したがって、長期記憶手段の記憶容量および制御装置の処理能力の増大を招くことなく、挙動の変化の変遷を追跡することができる。
本発明の第1実施形態によるロボット制御システムを示す概略図 第1実施形態によるロボット制御システムを示すブロック図 第1実施形態によるロボット制御システムの処理の流れを示す概略図 第1実施形態によるロボット制御プログラムの周期ごとの実行行および実行変数を示す模式図 第1実施形態によるロボット制御プログラムと一周期ログとの関係を示す模式図 第1実施形態において、一時記憶部に記憶されている現在の一周期ログ、および長期記憶領域に記憶されている長期記憶一周期ログを示す模式図 第2実施形態によるロボット制御システムを示すブロック図 第2実施形態によるロボット制御システムの処理の流れを示す概略図 第2実施形態において、一時記憶部に記憶されている現在の一周期ログ、および長期記憶領域に記憶されている長期記憶一周期ログを示す模式図 第3実施形態によるロボット制御システムを示すブロック図 第3実施形態による記憶部の構成を示す模式図
以下、本発明の実施形態を図面に基づいて説明する。なお、複数の実施形態において実質的に同一の構成部位には同一の符号を付し、説明を省略する。
(第1実施形態)
第1実施形態によるロボット制御システムを図1および図2に示す。ロボット制御システム10は、図1に示すようにロボット11、電子計算機としてのパーソナルコンピュータ(以下、「パソコン」と省略する。)12、外部入出力機器13および制御装置14を備えている。ロボット11は、例えば部品の組み立て用あるいは部品の検査用など、任意の構成のロボットである。
ロボット11は、例えば六軸の垂直多関節型のロボットとして構成されている。ロボット11は、周知の通り、アーム15を有している。アーム15は、それぞれアクチュエータであるサーボモータ16などからの駆動力で駆動される。アーム15は、先端にエンドエフェクタ17を有している。例えばロボット11で部品の運搬や組み立てなどを行う場合、これらの部品を保持するためのハンドがエンドエフェクタ17として用いられる。また、例えばロボット11で部品の検査などを行う場合、対象となる部品を撮影するカメラなどがエンドエフェクタ17として用いられる。このように、エンドエフェクタ17は、ロボット11を適用する工程に応じて任意に選択される。サーボモータ16からアーム15のエンドエフェクタ17までの間には、図示しない減速機構やリンクなどの駆動力伝達機構が設けられている。これにより、アーム15の先端に設けられているエンドエフェクタ17は、サーボモータ16からの駆動力によって駆動される。ロボット11と制御装置14との間は、通信手段としての接続ケーブル18によって接続されている。通信手段は、接続ケーブル18などの有線に限らず、無線であってもよい。ロボット11と制御装置14との間を接続ケーブル18によって接続することにより、ロボット11の各軸を駆動するサーボモータ16および作業を実施するエンドエフェクタ17は、制御装置14によって制御される。
パソコン12は、例えば汎用のノートパソコンなどから構成され、制御装置14と相互に通信可能に接続している。ユーザは、プログラミングソフトをパソコン12で実行することにより、アプリケーションに応じてロボット11の動作手順などを記述したロボット制御プログラムを作成可能である。この場合、ユーザは、アプリケーションに応じてパッケージ命令を組み合わせたり、修正を加えたりすることにより、比較的簡単にロボット制御プログラムを作成することができる。パソコン12は、必要に応じてロボット制御システム10の作動中に所定のデータを入力する際にも利用される。
外部入出力機器13は、例えばPLC(Programmable Logic Controller)やティーチングペンダントなどが含まれる。例えばPLCやティーチングペンダントなどの外部入出力機器13と制御装置14との間では、ロボット制御システム10の作動中に外部入出力機器13から制御装置14へデータやパラメータが適宜入力されたり、制御装置14から外部入出力機器13へデータやパラメータが適宜出力される。このように、制御装置14は、ロボット制御システム10の作動中、すなわちロボット制御作動プログラムの実行中に、ロボット11、パソコン12および外部入出力機器13からデータの入力および出力が行われる。
制御装置14は、図2に示すように制御部21を有している。制御部21は、図示しないCPU、ROMおよびRAMなどからなるマイクロコンピュータを主体として構成されている。制御部21は、予め入力および記憶されたロボット制御プログラム、ロボット11、パソコン12あるいは外部入出力機器13から入力された各種データやパラメータなどの変数に基づいて、サーボ制御部22を経由してロボット11の各軸のサーボモータ16を駆動する。これにより、制御装置14は、ロボット11の動作を制御する。
制御装置14は、上記の制御部21に加え、プログラム実行部23、実行ログ取得部24、記憶部25、比較部26、長期記憶判断部27、移行処理部28および表示部29を備えている。これらプログラム実行部23、実行ログ取得部24、比較部26、長期記憶判断部27および移行処理部28は、制御部21で実行されるコンピュータプログラムによってソフトウェア的に機能する構成でもよく、ハードウェアとして機能する構成でもよい。
プログラム実行部23は、例えばパソコン12から入力されたスタート指示によりロボット制御プログラムを実行する。プログラム実行部23は、ロボット制御プログラムを実行することにより、ロボット11、パソコン12および外部入出力機器13から出力された信号に基づいて変数の値またはロボット制御プログラムの実行行を変更する。
実行ログ取得部24は、ロボット制御プログラムに含まれるログ取得プログラムにしたがって作動する。実行ログ取得部24は、ロボット制御プログラムにおいて変化した実行行および実行変数ログを取得する。実行変数ログは、制御装置14に接続するロボット11、パソコン12および外部入出力機器13から出力された信号によって変化しつつロボット制御プログラムで使用される変数のログである。実行ログ取得部24は、これらの変化する実行行および実行変数ログを、ロボット制御プログラムの所定の範囲で一周するごと、すなわち一周期ごとに一周期ログとして取得する。ここで、一周期とは、ロボット制御プログラムにおいて予め設定されているログ取得スタート行からこのログ取得スタート行が再び実行されるまでの間、またはロボット制御プログラムにおいてログ取得スタート行から予め設定されているログ取得エンド行までのログ取得範囲を意味する。そして、一周期ログとは、上記のように設定した一周期において取得された実行行および実行変数ログを記録したログを意味する。
記憶部25は、一時記憶部31および長期記憶部32を有している。一時記憶部31は、制御部21のRAMと共用され、実行ログ取得部24で取得された一周期ログを一時的に記憶する。一方、長期記憶部32は、例えば不揮発性メモリやHDDなどの長期記憶可能な媒体で構成されており、一時記憶部31に記憶された一周期ログのうち長期記憶判断部27において長期記憶が必要と判断された長期記憶一周期ログを逐次蓄積しながら記憶する。なお、長期記憶部32は、例えば制御部21のRAMをバッテリなどでバックアップする構成としてもよい。
比較部26は、実行ログ取得部24で一周期ログを取得するとき、一周期ログとして取得されるロボット制御プログラムの一行ごとに、取得される現在の一周期ログと長期記憶部32に記憶された長期記憶一周期ログとを逐次比較する。比較部26は、長期記憶部32に記憶されている長期記憶一周期ログのうち、最新の長期記憶一周期ログと取得される現在の一周期ログとを比較する。比較部26は、上記のように、現在の一周期ログと長期記憶一周期ログとを、現在の一周期ログに対応するロボット制御プログラムのログが一行得られるごとに、逐次最新の長期記憶一周期ログの対応するロボット制御プログラムのログの一行と比較する。長期記憶判断部27は、取得する現在の一周期ログと最新の長期記憶一周期ログとを比較部26で比較した結果、互いに異なるとき、取得する現在の一周期ログについて長期記憶が必要であると判断する。長期記憶判断部27は、長期記憶が必要であると判断すると、長期記憶フラグをオンにする。
移行処理部28は、ロボット制御プログラムにおいてログ取得スタート行が再実行、またはログ取得エンド行が実行されると、所定の処理を実行して次回の一周期ログの取得へ移行する。具体的には、移行処理部28は、ログ取得スタート行が再実行またはログ取得エンド行が実行されると、一時記憶部31に記憶されている一周期ログの長期記憶フラグがオンであるか否かを判断する。移行処理部28は、その一周期ログの長期記憶フラグがオフであれば、一時記憶部31をクリアして、一時記憶部31に記憶された一周期ログを消去する。一方、移行処理部28は、その一周期ログの長期記憶フラグがオンであれば、一時記憶部31に記憶されている一周期ログを長期記憶部32に書き込み、一時記憶部31に記憶された一周期ログを消去する。
表示部29は、パソコン12の例えば液晶ディスプレイと共用される。表示部29は、長期記憶部32に最初に記憶された長期記憶一周期ログ、一時記憶部31に記憶されている現在の一周期ログ、または長期記憶部32に記憶されている全ての長期記憶一周期ログのいずれか一つまたは全部を選択的に表示する。
次に、上記の構成によるロボット制御システム10の作動について、図3に示す処理の流れに基づいて説明する。
ロボット制御システム10が起動されると、制御装置14はプログラム実行部23においてロボット制御プログラムを実行する(S101)。プログラム実行部23は、パソコン12で設定されたロボット制御プログラムを実行する。ロボット制御プログラムが実行されると、実行ログ取得部24は、ロボット制御プログラムに含まれるログ取得プログラムにしたがって、実行行および実行変数ログを一周期ログとして取得する(S102)。実行ログ取得部24は、取得した一周期ログを一時記憶部31に記憶する(S103)。
例えば図4に示すように、ロボット制御プログラム40は記述されており、入力される変数の値(例えば、「I[0]=3」など)によって実行行が変化する。この入力される変数は、ロボット11、パソコン12または外部入出力機器13の動作などによって逐次変化する。そのため、実行ログ取得部24は、ロボット制御プログラム40の実行の際に、変化しつつ入力される変数のログである実行変数ログ、および変数の変化にともなって選択される実行行を取得する。この場合、入力される変数および実行行は、ロボット制御プログラム40の全体において変化するとは限らない。そのため、実行ログ取得部24は、ロボット制御プログラム40のうち、予め設定されたログ取得スタート行41からログ取得エンド行42までのログを一周期ログとして取得する。また、実行ログ取得部24は、予め設定されたログ取得スタート行41が実行されるごとに、ログ取得スタート行41以降のログを一周期ログとして取得してもよい。以下、実行ログ取得部24は、ログ取得スタート行41からログ取得エンド行42までのログを一周期ログとして取得する例について説明する。
実行ログ取得部24は、例えば図5に示すように実行行およびその実行行における変数の値を関連づけて一周期ログ43を作成して一時記憶部31に記憶する。図5に示す一周期ログ43の例の場合、実行ログ取得部24は、ロボット制御プログラム40においてログ取得スタート行41以降の最初の実行行である「3行目」で変数「I[0]=3」が入力されたことを一時記憶部31に記憶する。そして、実行ログ取得部24は、「4行目」および「5行目」が実行行となったことを一時記憶部31へ順に記憶する。さらに、実行ログ取得部24は、6行目も実行行となるため、「6行目」についても変数「I[0]=3」を一時記憶部31に記憶する。「3行目」で変数「I[0]=3」が入力された場合、7行目から12行目は実行行に該当しないため、実行ログ取得部24はこれらの行を一時記憶部31に記憶することなくログ取得エンド行42である「13行目」を実行行として一時記憶部31に記憶する。このように、実行ログ取得部24は、ログ取得スタート行41からログ取得エンド行42までの実行行および実行変数ログを一周期ログ43として一時記憶部31に記憶する。
制御装置14は、一周期ログ43が取得および記憶されると、取得した現在の一周期ログ43が第1周期目の取得であるか否かを比較部26において判断する(S104)。ロボット制御プログラム40は、ロボット11の作動によって同一のプログラムが何度も繰り返して実行される。そのため、実行行および実行変数は、ロボット制御プログラム40の実行とともに変化し、繰り返し実行されるロボット制御プログラム40に応じて図4に示すように繰り返し何度も変化する。比較部26は、既に説明したように過去に取得した一周期ログ43のうち長期記憶部32に記憶されている最新の長期記憶一周期ログと現在取得した一周期ログ43とを比較する。取得した一周期ログ43が第1周期目の取得である場合、長期記憶部32には比較の対象となる長期記憶一周期ログが記憶されていない。そこで、比較部26は、取得した現在の一周期ログ43がロボット制御プログラム40の実行によって取得された第1周期目の一周期ログであれば(S104:Yes)、取得した現在の一周期ログ43について長期記憶が必要であると判断し、長期記憶フラグを「オン」にする(S105)。
一方、比較部26は、取得した現在の一周期ログ43が第1周期目でないと判断すると(S104:No)、取得した現在の一周期ログ43と最新の長期記憶一周期ログとを比較する(S106)。取得した現在の一周期ログ43が第1周期目の取得でない場合、すなわち第2周期目以降の取得であれば、長期記憶部32には既に少なくとも一つの長期記憶一周期ログが記憶されている。そこで、比較部26は、取得した現在の一周期ログ43と長期記憶部32に記憶されている最新の長期記憶一周期ログとを比較する。例えば取得した現在の一周期ログ43が第2周期目の取得であれば、比較部26は第2周期目に取得した現在の一周期ログ43と長期記憶一周期ログとして第1周期目に取得した一周期ログとを比較する。
比較部26は、現在の一周期ログ43と最新の長期記憶一周期ログとが同一であるか否かを判断する(S107)。第1実施形態の場合、比較部26は、現在の一周期ログ43を構成する実行変数ログまたは実行行を取得するごとに、長期記憶一周期ログを構成する実行変数ログまたは実行行と逐次比較する。例えば図6に示す場合、長期記憶部32には、時期的に最古の長期記憶一周期ログ44から最新の長期記憶一周期ログである最新長期記憶一周期ログ45まで少なくとも一つ以上の長期記憶一周期ログが記憶されている。なお、図6の場合、長期記憶の対象となった長期記憶一周期ログ44および最新長期記憶一周期ログ45などの各長期記憶一周期ログは、実行行および実行変数ログを関連づけて記憶する例について示している。しかし、長期記憶の対象となった一周期ログは、実行行および実行変数ログだけでなく、実行の対象となったロボット制御プログラム40の全体をログとして記憶してもよい。記憶形態としていずれを採用するかは、長期記憶部32の記憶容量などに応じて任意に選択することができる。
図6に示す場合、比較部26は、現在の一周期ログ43を構成する実行変数ログとしてログ取得スタート行である「3行目」が取得されると、最新長期記憶一周期ログ45の「3行目」と比較する。図6に示す場合、現在の一周期ログ43の「3行目」で取得された変数「I[0]=3」は最新長期記憶一周期ログ45の「3行目」で取得された変数「[0]=3」とは同一であるので、比較部26はそのまま処理を継続する。一方、図6に示す場合、現在の一周期ログ43の実行行である「5行目」は最新長期記憶一周期ログ45の実行行である「7行目」と異なる。同様に、現在の一周期ログ43の実行行である「6行目」、「13行目」は、いずれも最新長期記憶一周期ログ45の実行行である「8行目」、「15行目」と異なる。このように、比較部26は、現在の一周期ログ43を構成する実行変数ログまたは実行行を取得するごとに、最新長期記憶一周期ログ45の各実行変数ログまたは実行行と比較する。
比較部26による比較の結果、現在の一周期ログ43が最新長期記憶一周期ログ45と同一であるとき(S107:Yes)、長期記憶判断部27は取得した現在の一周期ログ43について「長期記憶フラグ」を「オフ」にする(S108)。一方、図6に示すように現在の一周期ログ43が最新長期記憶一周期ログ45と異なるとき(S107:No)、長期記憶判断部27は取得した現在の一周期ログ43について「長期記憶フラグ」を「オン」にする(S109)。
長期記憶判断部27は、現在の一周期ログ43の実行変数ログまたは実行行が取得されると一行ごとに比較部26において最新長期記憶一周期ログ45と逐次比較する。この比較の結果、現在の一周期ログ43と最新長期記憶一周期ログ45との間に異なる実行変数ログまたは実行行があれば長期記憶フラグを「オン」にする。すなわち、図6に示す場合、現在の一周期ログ43の実行行である「5行目」が取得された時点で最新長期記憶一周期ログ45の実行行である「7行目」と異なると比較部26において判断され、長期記憶判断部27は「長期記憶フラグ」を「オン」にする。一方、ログ取得スタート行41からログ取得エンド行42までの間に、現在の一周期ログ43と最新長期記憶一周期ログ45との間で実行変数ログまたは実行行の変化がないと比較部26で判断されたとき、長期記憶判断部27は長期記憶フラグを「オフ」にする。
長期記憶フラグがオンまたはオフされると、移行処理部28は長期記憶フラグが「オン」であるか否かを判断する(S110)。移行処理部28は、長期記憶フラグが「オン」であれば(S110:Yes)、一時記憶部31に記憶されている取得された現在の一周期ログ43を長期記憶部32に書き込む(S111)。長期記憶フラグが「オン」であるとき、取得された現在の一周期ログ43は後のログ解析などのために利用する必要がある。そのため、移行処理部28は、一時記憶部31に記憶された一周期ログ43の長期記憶フラグが「オン」であれば、その一周期ログ43を長期記憶部32へ書き込む。この長期記憶部32へ書き込まれた一周期ログ43は、その後に取得される一周期ログとの比較の対象となる最新長期記憶一周期ログとなる。また、移行処理部28は、取得した現在の一周期ログ43が第1周期目の取得であり(S104:Yes)、S105において長期記憶フラグが「オン」されている場合も、その一周期ログ43すなわち第1周期目に取得した一周期ログ43を長期記憶部32へ記憶する。
移行処理部28は、S111において一時記憶部31の一周期ログ43を長期記憶部32へ書き込んだ後、およびS110において長期記憶フラグが「オフ」であると判断されると(S110:No)、一時記憶部31をクリアする(S112)。すなわち、移行処理部28は、一時記憶部31へ一時的に記憶された現在の一周期ログ43を消去し、次回以降に取得される一周期ログの取得に備える。なお、移行処理部28は、一時記憶部31へ一時的に記憶された現在の一周期ログ43を消去することなく、次回以降に取得される一周期ログを上書きする構成としてもよい。移行処理部28は、一時記憶部31のクリアが完了すると、次回の一周期ログの取得へ移行し(S113)、S102へリターンする。
上記の手順によって取得された一周期ログ43や長期記憶一周期ログは、例えばパソコン12の液晶ディスプレイと共用される表示部29に表示される。表示部29は、長期記憶部32に最初に記憶された長期記憶一周期ログすなわち最古の長期記憶一周期ログ44、一時記憶部31に記憶されている現在の一周期ログ43、または長期記憶部32に記憶されている全ての長期記憶一周期ログなどを、いずれか一つまたは全部を選択的に表示する。
以上説明した第1実施形態では、実行ログ取得部24は、ロボット制御プログラム40の実行にともなってロボット11、パソコン12および外部入出力機器13から出力された信号に基づいて変化しつつロボット制御プログラム40で使用される実行行および変数を取得する。実行行および実行変数ログは、ログ取得スタート行41からログ取得エンド行42までロボット制御プログラム40が周回するごとに一周期ログ43として取得される。比較部26は、取得された現在の一周期ログ43と、長期記憶部32に蓄積された長期記憶一周期ログのうち最新長期記憶一周期ログ45とを比較する。長期記憶判断部27は、取得された現在の一周期ログ43と、最新長期記憶一周期ログ45とが異なるとき、取得した現在の一周期ログ43の長期記憶が必要であると判断し、取得した現在の一周期ログ43を長期記憶部32に記憶する。すなわち、ロボット制御プログラム40の実行の一周期において実行行および変数に変化が生じると、取得される現在の一周期ログ43は、長期記憶一周期ログとして長期記憶部32に記憶され、次回以降に取得する一周期ログとの比較の対象となる。表示部29は、長期記憶部32に最初に記憶された最古の長期記憶一周期ログ44、一時記憶部31に現在記憶されている一周期ログ43、または全ての長期記憶一周期ログを選択的に表示する。そのため、ロボット制御プログラム40に基づいてロボット制御システム10が作動しているときでも、実行行および変数の変化にともなう不適切な挙動は、表示部29に表示された最古の長期記憶一周期ログ44、現在記憶されている一周期ログ43、または全ての長期記憶一周期ログなどを対比することによって認識される。したがって、短時間でロボット制御プログラム40の動作を正確かつ容易に確認することができる。そして、これらを対比することにより、ロボット制御プログラム40のバグであるのか入力された変数に問題があるのかを容易に区別して認識することができる。
また、第1実施形態では、比較部26は、一周期ログ43に含まれる対応するロボット制御プログラム40の一行ごとに、取得する一周期ログ43と長期記憶部32に記憶されている最新長期記憶一周期ログ45とを逐次比較する。対応するロボット制御プログラム40の一行ごとに比較することにより、ログの比較は短時間で実行される。そのため、ログ取得スタート行41とログ取得エンド行42との間を短時間で周回するロボット制御プログラム40からログを取得する場合でも、ロボット制御プログラム40の動作を正確に比較することができる。さらに、取得される現在の一周期ログ43が最新長期記憶一周期ログ45と同一の場合、一時記憶部31に記憶された一周期ログ43は長期記憶部32に記憶されることなくクリアされる。そのため、例えば今回取得した一周期ログ43が前回の周期と同一であれば今回取得した一周期ログ43はクリアされる。すなわち、最新長期記憶一周期ログ45と重複する一周期ログ43は長期記憶部32に記憶されることなく、前回の周期との間で変化が生じた一周期ログ43のみが長期記憶一周期ログとして長期記憶部32に記憶される。したがって、長期記憶部32の記憶容量の増大を招くことなく、挙動の変化の変遷を追跡することができる。
なお、第1実施形態では、S104において一周期ログ43の取得は第1周期目であるか否かを判断している。しかし、S104の処理を省略してもよい。この場合、第1周期目に取得した一周期ログは、比較の対象となる最新長期記憶一周期ログが存在しないため、この最新長期記憶一周期ログと必然的に異なることになる。そのため、S104の処理を省略しても、S106において第1周期目に取得した一周期ログはS109において長期フラグが「オン」となる。したがって、S104の処理を省略しても、上記の第1実施形態と同様の処理を実行することができる。
(第2実施形態)
第2実施形態によるロボット制御システムを図7に示す。
図7に示す第2実施形態によるロボット制御システム10は、制御装置14の記憶部25を除きその構成が第1実施形態と同一であるので相違点のみを説明し、同一点については説明を省略する。第2実施形態の場合、記憶部25は、一時記憶部51および長期記憶部52を有している。一時記憶部51は、第1実施形態と同様に制御部21のRAMと共用される。一時記憶部51は、実行ログ取得部24で取得された一周期ログを一時的に記憶する複数の一時記憶領域53を有している。一時記憶領域53は、二つ以上の複数が設定されている。すなわち、第2実施形態の場合、一時記憶部51は複数の一時記憶領域53で構成されている。一方、長期記憶部52は、第1実施形態と同様である。実行ログ取得部24は、一周期ログを取得すると、一時記憶部51のいずれかの一時記憶領域53に取得した一周期ログを一時的に記憶させる。一時記憶部51は、実行ログ取得部24で取得された一周期ログを複数の一時記憶領域53のいずれかに割り当てながら順次記憶する。
比較部26は、一時記憶部51のいずれかの一時記憶領域53に記憶された一周期ログのうち記憶時期が最も古い最古一周期ログと、長期記憶部52に記憶された時期が最も新しい最新長期記憶一周期ログとを比較する。比較部26は、実行ログ取得部24で最新の一周期ログを一時記憶領域53のいずれかに記憶している間に、一時記憶領域53の他のいずれかに既に記憶されている最古一周期ログと最新長期記憶一周期ログとを比較する。すなわち、比較部26は、実行ログ取得部24で最新の一周期ログが取得されている間に、既に記憶されている最古一周期ログの全体と最新長期記憶一周期ログの全体とを比較する。
長期記憶判断部27は、この比較部26で比較した最古一周期ログと最新長期記憶一周期ログとが互いに異なるとき、比較の対象となった最古一周期ログについて長期記憶が必要であると判断する。長期記憶判断部27は、長期記憶が必要であると判断すると、長期記憶フラグをオンにする。
次に、上記の構成の第2実施形態によるロボット制御システム10の作動について説明する。第2実施形態によるロボット制御システム10の作動についても、その処理の流れは第1実施形態とほぼ同一であるので、図8を参照して主に相違点を説明する。
第2実施形態の場合、制御装置14は図8(A)に示す処理、および図8(B)に示す処理を並列して実行する。具体的には、制御装置14は、一周期ログを取得する図8(A)に示す処理と、取得した一周期ログを長期記憶の対象とするか否かを判断する図8(B)に示す処理とを並列して実行する。
まず、図8(A)に基づいて一周期ログの取得について説明する。ロボット制御システム10が起動されると、制御装置14はプログラム実行部23においてロボット制御プログラムを実行する(S201)。ロボット制御プログラムが実行されると、実行ログ取得部24は、ロボット制御プログラム40に含まれるログ取得プログラムにしたがって、実行行および実行変数ログを一周期ログとして取得する(S202)。実行ログ取得部24は、取得した一周期ログを一時記憶部51の一時記憶領域53のいずれかに記憶する(S203)。この場合、実行ログ取得部24および一時記憶部51は、複数の一時記憶領域53のうち空いているいずれかの一時記憶領域53に取得した一周期ログを記憶する。実行ログ取得部24は、取得した一周期ログを一時記憶部51のいずれかの一時記憶領域53に記憶すると、S201へリターンして、一周期ログの取得を繰り返す。このように、実行ログ取得部24は、図8(B)に示す長期記憶の対象とするか否かの判断に関わらず、例えばロボット制御プログラムが終了などのように一周期ログの取得が停止されるまで一周期ログの取得を繰り返す。
次に、図8(B)に基づいて取得した一周期ログを長期記憶の対象とするか否かの判断の流れについて説明する。制御装置14は、図8(A)に示す処理にしたがって一周期ログが取得および記憶されると、一時記憶部51のいずれかの一時記憶領域53に記憶された一周期ログを読み取り、読み取った一周期ログが長期記憶の対象となるか否かを判断する。具体的には、制御装置14の比較部26は、一時記憶部51から読み取った一周期ログが第1周期目の取得であるか否かを比較部26において判断する(S204)。図8(A)および図8(B)に示す処理を並列して実行する場合、図8(A)において最初に一周期ログが取得されると、比較部26はすぐに取得した一周期ログを一時記憶部51から読み取り、この一周期ログの判断を開始する。比較部26は、取得した一周期ログがロボット制御プログラムの実行によって取得された第1周期目の一周期ログであれば(S204:Yes)、一時記憶領域53に記憶した一周期ログについて長期記憶が必要であると判断し、長期記憶フラグを「オン」にする(S205)。
一方、比較部26は、一時記憶領域53に記憶した一周期ログが第1周期目でないと判断すると(S204:No)、一時記憶部51のいずれの一時記憶領域53に一周期ログが記憶されているか否か、すなわち一時記憶領域53のいずれかに最古一周期ログが記憶されているかを判断する(S206)。一時記憶領域53のいずれかに最古一周期ログが記憶されていないとき(S206:No)、比較部26における比較の対象が存在しないため、S204にリターンし、S204以降の処理を再実行する。なお、比較部26は、S204へリターンした後、図8(A)に示す処理によって一時記憶領域53のいずれかに一周期ログが記憶されるまで待機してもよい。一方、一時記憶領域53のいずれかに最古一周期ログが記憶されているとき(S206:Yes)、比較部26は最古一周期ログと最新長期記憶一周期ログとを比較する(S207)。
比較部26は、最古一周期ログと最新長期記憶一周期ログとが同一であるか否かを判断する(S208)。第2実施形態の場合、比較部26は、一時記憶領域53のいずれかに記憶されている最古一周期ログの全体と最新長期記憶一周期ログの全体とを比較する。一時記憶部51の複数の一時記憶領域53には、ロボット制御プログラムのログ取得スタート行が実行されるごとに、一周期ログが順次いずれかの一時記憶領域53に記憶される。そのため、例えば図9に示すように、一時記憶部51に記憶されている一周期ログは、時間的に最も古いものから最も新しいものまで存在する。また、長期記憶部52には、時間的に最も古い長期記憶一周期ログ62から最も新しい最新長期記憶一周期ログ63まで少なくとも一つ以上の長期記憶一周期ログが記憶されている。比較部26は、これら一時記憶部51に記憶されている複数の一周期ログのうち、記憶された時期が古い最古一周期ログ61について長期記憶部52に記憶されている最新長期記憶一周期ログ63と比較する。図9に示す場合、比較部26は、一時記憶領域53の最古一周期ログ61と長期記憶部52の最新長期記憶一周期ログ63とを全体的に比較する。第2実施形態の場合、取得される現在の一周期ログ64は、一時記憶部51のいずれかの一時記憶領域53に一旦記憶される。そのため、比較部26は、最古一周期ログ61と最新長期記憶一周期ログ63とを全体的に比較する時間的な余裕が確保される。すなわち、比較部26は、図8(A)に示す処理にしたがって現在の一周期ログ64が一時記憶領域53のいずれかに記憶されている間に、図8(B)に示す処理にしたがって一時記憶領域53の他のいずれかに記憶されている最古一周期ログ61と最新長期記憶一周期ログ63とを比較する。これにより、制御部21を構成するCPUなどプロセッサの能力が比較的低く処理速度が遅い場合、あるいはログ取得スタート行が実行されるまでの時間的な間隔が短い場合でも、最古一周期ログ61と最新長期記憶一周期ログ63とを確実に比較することができる。
比較部26による比較の結果、一時記憶領域53の最古一周期ログ61が最新長期記憶一周期ログ63と同一であるとき(S208:Yes)、長期記憶判断部27は一時記憶領域53に記憶した最古一周期ログ61について「長期記憶フラグ」を「オフ」にする(S209)。一方、一時記憶領域53の最古一周期ログ61が最新長期記憶一周期ログ63と異なるとき(S208:No)、長期記憶判断部27は一時記憶領域53の最古一周期ログ61について「長期記憶フラグ」を「オン」にする(S210)。
長期記憶判断部27は、一時記憶領域53の最古一周期ログ61の全体と長期記憶部52の最新長期記憶一周期ログ63の全体を比較した結果、異なる実行変数ログまたは実行行があれば長期記憶フラグを「オン」にする。一方、最古一周期ログ61の全体と最新長期記憶一周期ログ63の全体とが同一であると比較部26で判断されたとき、長期記憶判断部27は長期記憶フラグを「オフ」にする。
長期記憶フラグがオンまたはオフされると、移行処理部28は長期記憶フラグが「オン」であるか否かを判断する(S211)。移行処理部28は、長期記憶フラグが「オン」であれば(S211:Yes)、一時記憶部51の一時記憶領域53に記憶されている最古一周期ログ61を長期記憶部52に書き込む(S212)。また、移行処理部28は、取得した一周期ログが第1周期目の取得であり(S204:Yes)、S205において長期記憶フラグが「オン」されている場合も、その一周期ログすなわち第1周期目に取得した一周期ログを長期記憶部52に記憶する。
移行処理部28は、S212において一時記憶領域53の最古一周期ログ61を長期記憶部52へ書き込んだ後、およびS211で長期記憶フラグが「オフ」であると判断されると(S211:No)、最古一周期ログ61が記憶された一時記憶領域53をクリアする(S231)。すなわち、移行処理部28は、一時記憶領域53へ一時的に記憶された最古一周期ログ61を消去し、次回以降に取得される一周期ログの取得に備える。移行処理部28は、一時記憶領域53のクリアが完了すると、S204へリターンする。制御装置14は、例えばロボット制御プログラムが終了などのように処理が停止されるまでS204以降の処理を繰り返す。図8(B)に示す処理にしたがって上記のS204からS213の処理を実行している間であっても、実行ログ取得部24はロボット制御プログラム40がログ取得スタート行41へリターンするごとに図8(A)に示す処理にしたがって一周期ログを取得しつつ空いている一時記憶領域53へ逐次記憶する。
上記の手順によって取得された一周期ログや長期記憶一周期ログは、例えばパソコン12の液晶ディスプレイと共用される表示部29に表示される。表示部29は、長期記憶部52に最初に記憶された最古の長期記憶一周期ログ62、一時記憶領域53に記憶されている現在の一周期ログ64、または長期記憶部52に記憶されている全ての長期記憶一周期ログのいずれか一つまたは全部を選択的に表示する。
以上説明した第2実施形態では、実行ログ取得部24は、ロボット制御プログラム40の実行にともなってロボット11、パソコン12および外部入出力機器13から出力された信号に基づいて変化しつつロボット制御プログラム40で使用される実行行および変数を取得する。実行行および実行変数ログは、ログ取得スタート行41からログ取得エンド行42までロボット制御プログラム40が周回するごとに一周期ログとして取得される。比較部26は、一時記憶領域53に記憶された最古一周期ログ61と、長期記憶部52に蓄積された最新長期記憶一周期ログ63とを比較する。長期記憶判断部27は、最古一周期ログ61と最新長期記憶一周期ログ63とが異なるとき、長期記憶が必要であると判断し、最古一周期ログ61を長期記憶部52に記憶する。すなわち、ロボット制御プログラム40の実行の一周期において実行行および変数に変化が生じると、その最古一周期ログ61は、長期記憶一周期ログとして長期記憶部52に記憶され、次回以降の一周期ログとの比較の対象となる。表示部29は、長期記憶部52に最初に記憶された最古の長期記憶一周期ログ62、一時記憶領域53に現在記憶されている一周期ログ、または長期記憶部52に記憶されている全ての長期記憶一周期ログを選択的に表示する。そのため、ロボット制御プログラム40に基づいてロボット制御システム10が作動しているときでも、実行行および変数の変化にともなう不適切な挙動は、表示部29の表示を対比することによって認識される。したがって、短時間でロボット制御プログラム40の動作を正確かつ容易に確認することができる。これらを対比することにより、ロボット制御プログラム40のバグであるのか入力された変数に問題があるのかを容易に区別して認識することができる。
また、第2実施形態では、比較部26は、一時記憶部51に設けられている複数の一時記憶領域53のいずれか一つに現在の一周期ログ64を記憶している間に、一時記憶領域53に記憶されている最古一周期ログ61と長期記憶部52に記憶されている最新長期記憶一周期ログ63とを比較する。一時記憶部51に複数の一時記憶領域53を設け、この一時記憶領域53のいずれかに記憶された最古一周期ログ61と長期記憶一周期ログとを比較することにより、比較のために必要な時間は長く確保される。そのため、ログ取得スタート行41とログ取得エンド行42との間を短時間で周回するロボット制御プログラム40からログを取得する場合でも、制御装置14のプロセッサの性能を高めることなくロボット制御プログラム40の動作を正確に比較することができる。さらに、比較される最古一周期ログ61が最新長期記憶一周期ログ63と同一の場合、一時記憶部51の一時記憶領域53に記憶された最古一周期ログ61は長期記憶部52に記憶されることなくクリアされる。すなわち、最新長期記憶一周期ログ63と重複する最古一周期ログ61は長期記憶部52に記憶されることなく、前回の周期との間で変化が生じた最古一周期ログ61のみが長期記憶一周期ログとして長期記憶部52に記憶される。したがって、長期記憶部52の記憶容量および制御装置14の処理能力の増大を招くことなく、挙動の変化の変遷を追跡することができる。
なお、第2実施形態では、S204において一周期ログの取得は1周期目であるか否かを判断している。しかし、S204の処理を省略してもよい。この場合、1周期目に取得した一周期ログは、比較の対象となる最新の長期記憶一周期ログが存在しないため、この最新の長期記憶一周期ログと必然的に異なることになる。そのため、S204の処理を省略しても、S207において1周期目に取得した最古一周期ログはS210において長期フラグが「オン」となる。したがって、S204の処理を省略しても、上記の第2実施形態と同様の処理を実行することができる。
(第3実施形態)
第3実施形態によるロボット制御システムを図10に示す。
図10に示す第3実施形態によるロボット制御システム10の場合、制御装置14は、第1実施形態の比較部26および長期記憶判断部27に対応する構成を有していない。また、第3実施形態の場合、記憶部70は、一連の複数の記憶領域を有している。記憶部70は、例えばバッテリでバックアップされたRAM、EPROMあるいはHDDなどで構成されている。記憶部70の複数の記憶領域71、72、73・・・は、いずれも上述の第1実施形態や第2実施形態における一時記憶領域に類似するとともに、長期保護フラグがオンになると、その記憶領域が長期的に保護される長期保護領域に移行する。
第3実施形態では、ロボット制御プログラムを実行すると、第1実施形態と同様にログ取得プログラムにしたがって実行ログ取得部24によって実行行および実行変数ログが一周期ログとして取得される。取得された一周期ログは、図11に示すように記憶部70の先頭から順に記憶される。例えば図11に示す場合、第1周期目の一周期ログが第1周期ログとして取得されると、記憶部70のアドレス「0001」から設定されている第一記憶領域71に第1周期ログが書き込まれる。この第1周期ログは、第2周期目以降に取得される一周期ログとの比較の対象として長期保護が必要となる。そのため、移行処理部28は、この第1周期ログが記憶された第一記憶領域71について、長期保護領域とするために「長期保護フラグ」を「オン」にする。図11に示す場合、アドレス「0001」に実行行および実行変数ログとして「3行目 I[0]=3」が記憶され、アドレス「0002」、「0003」、「0004」、「0005」に実行行である「4行目」、「5行目」、「6行目」、「13行目」が順に記憶される。そして、これらアドレス「0001」から「0005」で設定された第一記憶領域71は、長期保護領域となる。
次に、第2周期目の一周期ログが第2周期として取得されると、第一記憶領域71の次のアドレス「0006」に位置する第二記憶領域72に第2周期が一時的に書き込まれる。移行処理部28は、第2周期を取得するとき、第一記憶領域71に記憶した第1周期ログと比較しながら第2周期を第二記憶領域72に記憶する。比較部26は、第1実施形態と同様に、第2周期の実行行または実行変数ログを取得するごとに、一行ずつ第1周期ログの実行行または実行変数ログと比較する。
そして、移行処理部28は、第二記憶領域72に一時的に記憶した第2周期と、長期保護領域に設定した第一記憶領域71に記憶した第1周期ログとを比較した結果、第2周期が第1周期ログと一致するとき、取得した第2周期が記憶された第二記憶領域72を更新することなく次回すなわち第3周期の一周期ログである第3周期ログの取得へ移行する。この場合、移行処理部28は、第3周期で取得される第3周期ログを、第2周期ログが記憶されたアドレス「0006」以降の第二記憶領域72に記憶する。移行処理部28は、第3周期ログを第二記憶領域72に記憶するとき、第3周期ログと長期保護領域となった第一記憶領域71に記憶された第1周期ログとを比較する。ここで、第二記憶領域72の更新とは、第二記憶領域72に記憶された第2周期ログをクリアした後に取得する第3周期ログを書き込む構成、または第二記憶領域72に記憶された第2周期ログをクリアすることなく第3周期ログを上書きする構成のいずれであってもよい。
一方、移行処理部28は、第二記憶領域72に一時的に記憶した第2周期ログと、第一記憶領域71に記憶した第1周期ログとを比較した結果、第2周期ログが第1周期ログと異なるとき、第2周期ログを記憶した第二記憶領域72を長期保護領域とする「長期保護フラグ」を「オン」にして、次回すなわち第3周期ログの取得へ移行する。この場合、移行処理部28は、第3周期で取得される第3周期ログを、第2周期ログが記憶された第二記憶領域72の次のアドレスに位置するアドレス「000B」以降の第三記憶領域73に記憶する。移行処理部28は、第3周期ログを第三記憶領域73に記憶するとき、第3周期ログと長期保護領域となった第二記憶領域72に記憶された第2周期ログとを比較する。
以上のような第3実施形態を一般化すると、取得したn周期目の一周期ログであるn周期ログを第m+1記憶領域に記憶しつつ、第m記憶領域において長期保護の対象として記憶された一周期ログと比較する。比較の結果、n周期ログが第m記憶領域の一周期ログと一致すれば、n+1周期ログの取得へ移行し、n周期ログが記憶されていた第m+1記憶領域にn+1周期ログが書き込まれる。一方、比較の結果、n周期ログが第m記憶領域の一周期ログと異なれば、n周期ログが記憶された第m+1記憶領域を長期保護領域とする長期保護フラグがオンされた後、第m+1記憶領域の次のアドレスに位置する第m+2記憶領域に取得したn+1周期目ログが書き込まれる。その結果、記憶部70は、前後の周期において取得された一周期ログが異なるごとに、後の一周期ログが記憶された記憶領域が長期保護領域として設定され、記憶領域のアドレスが進行していく。したがって、前後の周期において取得された一周期ログが重複する場合、後の一周期ログは廃棄され、前後の周期において取得された一周期ログが異なる場合、後の一周期ログは長期保護の対象となって保護される。
上記の手順によって取得された一周期ログは、例えばパソコン12の液晶ディスプレイと共用される表示部29に表示される。表示部29は、長期保護領域として最初に設定された記憶領域すなわち第一記憶領域71に記憶されている第1周期目に取得された第1周期ログ、記憶部70に記憶されている最新の一周期ログすなわちn周期ログ、または長期保護領域として設定された全ての記憶領域に記憶されている一周期ログのいずれか一つまたは全部を選択的に表示する。
第3実施形態では、実行ログ取得部24は、ロボット制御プログラムの実行にともなってロボット11、パソコン12および外部入出力機器13から出力された信号に基づいて変化しつつロボット制御プログラムで使用される実行行および変数を取得する。実行変数ログは、ログ取得スタート行からログ取得エンド行までロボット制御プログラムが周回するごとに取得される。移行処理部28は、n周期目に取得したn周期ログが第m記憶領域において長期保護の対象となった一周期ログと一致するとき、n周期ログが記憶された第m+1記憶領域を更新せずに次回の一周期ログの取得へ移行し、n周期ログが第m記憶領域において長期保護の対象となった一周期ログと異なるとき、n周期ログを記憶した第m+1記憶領域を長期保護領域とする。すなわち、ロボット制御プログラムの実行のn周期において、第m記憶領域で長期保護の対象となった一周期ログとの間で実行行および変数に変化が生じると、取得されるn周期ログは、第m+1記憶領域において長期保護領域として保護される。そして、n周期に続くn+1周期ログは、第m+1記憶領域の次のアドレスに位置する第m+2記憶領域に記憶される。長期保護領域に記憶されたn周期ログは、次回以降の一周期ログとの比較の対象となる。表示部29は、第1周期目の第1周期ログ、記憶部70に記憶されている最新の一周期ログ、または全ての記憶領域に記憶されている一周期ログを選択的に表示する。そのため、ロボット制御プログラムに基づいてロボット制御システム10が作動しているときでも、実行行および変数の変化にともなう不適切な挙動は、表示部29に表示された第1周期ログ、最新の一周期ログ、または全ての長期保護の対象となっている一周期ログなどを対比することによって認識される。したがって、短時間でロボット制御プログラムの動作を正確かつ容易に確認することができる。
また、第3実施形態では、移行処理部28は、一周期ログに含まれる対応するロボット制御プログラムの一行ごとに、n周期目ログと第m記憶領域に記憶されている長期保護対象の一周期ログとを逐次比較する。対応するロボット制御プログラムの一行ごとに長期記憶一周期ログと比較することにより、比較は短時間で実行される。そのため、ログ取得スタート行とログ取得エンド行との間を短時間で周回するロボット制御プログラムからログを取得する場合でも、ロボット制御プログラムの動作を正確に比較することができる。さらに、取得される一周期ログが長期保護領域に記憶されている長期記憶一周期ログと同一の場合、記憶領域に記憶された一周期ログは次回の一周期ログによって上書きされる。そのため、一周期ログが変化するごとに、長期保護領域が形成されつつ、新たな一周期ログが取得される。すなわち、最新の長期保護領域に記憶された一周期ログと重複する一周期ログが記憶された記憶領域は長期保護領域と設定されることなく、前回の周期との間で一周期ログに変化が生じたときのみ長期保護領域が設定される。したがって、記憶容量の増大を招くことなく単一の記憶部70を一時記憶のための領域および長期保護のための領域として共用しつつ、挙動の変化の変遷を追跡することができる。
以上説明した本発明は、上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々の実施形態に適用可能である。
図面中、10はロボット制御プログラム、11はロボット、12はパソコン(電子計算機)、13は外部入出力機器、14は制御装置、23はプログラム実行部(プログラム実行手段)、24は実行ログ取得部(実行ログ取得手段)、26は比較部(比較手段)、27は長期記憶判断部(長期記憶判断手段)、28は移行処理部(移行処理手段)、29は表示部(表示手段)、31、51は一時記憶部(一時記憶手段)、32、52は長期記憶部(長期記憶手段)、53は一時記憶領域、70は記憶部、71、72、73は記憶領域を示す。

Claims (3)

  1. ロボット、電子計算機、外部入出力機器、およびこれらを総括してロボット制御プログラムに基づいて前記ロボットを制御する制御装置を備えるロボット制御のログ取得システムにおいて、
    前記制御装置は、
    スタート指示により前記ロボット制御プログラムを実行し、前記ロボット、前記電子計算機および前記外部入出力機器から出力された信号に基づいて変数の値または前記ロボット制御プログラムの実行行を変更するプログラム実行手段と、
    ログ取得プログラムに基づいて、前記制御装置に接続されている前記ロボット、前記電子計算機および前記外部入出力機器から出力された信号に基づいて変化しつつ前記ロボット制御プログラムで使用される変数のログである実行変数ログを取得可能であって、前記ロボット制御プログラムにおいて予め設定されたログ取得スタート行から前記ログ取得スタート行が再び実行されるまでの一周期において前記実行行および前記実行変数ログを変化の有無に関わらず前記ロボット制御プログラムの一周期ログとして取得、または前記ロボット制御プログラムのうち前記ログ取得スタート行から予め設定されたログ取得エンド行までのログ取得範囲において前記実行行および前記実行変数ログを変化の有無に関わらず前記ロボット制御プログラムの一周期ログとして取得する実行ログ取得手段と、
    前記実行ログ取得手段で取得された前記一周期ログを記憶する一時記憶手段と、
    前記一時記憶手段に記憶した前記一周期ログのうち長期記憶が必要と判断された長期記憶一周期ログを逐次蓄積しながら記憶する長期記憶手段と、
    前記実行ログ取得手段で前記一周期ログを取得するとき、前記一周期ログに含まれる前記ロボット制御プログラムを一行取得するごとに、取得される前記一周期ログにおける前記ロボット制御プログラムの対応する一行と前記長期記憶手段に記憶されている最新の前記長期記憶一周期ログで対応する一行とを逐次比較する比較手段と、
    前記比較手段の比較の結果、取得した前記一周期ログと最新の前記長期記憶一周期ログとが異なるとき、取得した前記一周期ログは前記長期記憶手段への記憶が必要であると判断して長期記憶フラグをオンにする長期記憶判断手段と、
    前記ロボット制御プログラムにおいて前記ログ取得スタート行が実行、または前記ログ取得エンド行が実行されると、前記一時記憶手段に記憶されている前記一周期ログの長期記憶フラグがオフであれば前記一時記憶手段をクリアし、前記一時記憶手段に記憶されている前記一周期ログの長期記憶フラグがオンであれば前記一時記憶手段に記憶されている前記一周期ログを前記長期記憶手段に書き込んで前記一時記憶手段をクリアして次回の一周期ログの取得へ移行する移行処理手段と、
    を備えることを特徴とするロボット制御のログ取得システム。
  2. ロボット、電子計算機、外部入出力機器、およびこれらを総括してロボット制御プログラムに基づいて前記ロボットを制御する制御装置を備えるロボット制御のログ取得システムにおいて、
    前記制御装置は、
    スタート指示により前記ロボット制御プログラムを実行し、前記ロボット、前記電子計算機および前記外部入出力機器から出力された信号に基づいて変数の値または前記ロボット制御プログラムの実行行を変更するプログラム実行手段と、
    ログ取得プログラムに基づいて、前記制御装置に接続されている前記ロボット、前記電子計算機および前記外部入出力機器から出力された信号に基づいて変化しつつ前記ロボット制御プログラムで使用される変数のログである実行変数ログを取得可能であって、前記ロボット制御プログラムにおいて予め設定されたログ取得スタート行から前記ログ取得スタート行が再び実行されるまでの一周期において変化した前記実行行および前記実行変数ログを前記ロボット制御プログラムの一周期ログとして取得、または前記ロボット制御プログラムのうち前記ログ取得スタート行から予め設定されたログ取得エンド行までのログ取得範囲において変化した前記実行行および前記実行変数ログを前記ロボット制御プログラムの一周期ログとして取得する実行ログ取得手段と、
    複数の記憶領域を有し、前記実行ログ取得手段で取得された前記一周期ログを記憶する記憶手段と、
    前記実行ログ取得手段でn−1周期目(n≧2)に取得した前記一周期ログであるn−1周期ログを前記記憶手段の第m記憶領域に記憶し、前記実行ログ取得手段でn周期目に取得しつつ前記第m記憶領域の次のアドレスに位置する第m+1記憶領域に記憶する前記一周期ログであるn周期ログと前記第m記憶領域に記憶された一周期ログとを比較して、前記n周期ログが前記第m記憶領域の一周期ログと一致するとき前記n周期ログが記憶された前記第m+1記憶領域を更新することなく次回の一周期ログの取得へ移行し、前記n周期ログが前記第m記憶領域の一周期ログと異なるとき前記n周期ログを記憶した前記第m+1記憶領域を長期保護領域とする長期保護フラグをオンにして、次回のn+1周期目に取得する前記一周期ログであるn+1周期ログを前記第m+1記憶領域の次のアドレスに位置する第m+2記憶領域に記憶する移行処理手段と、
    を備えることを特徴とするロボット制御のログ取得システム。
  3. ロボット、電子計算機、外部入出力機器、およびこれらを総括してロボット制御プログラムに基づいて前記ロボットを制御する制御装置を備えるロボット制御のログ取得システムにおいて、
    前記制御装置は、
    スタート指示により前記ロボット制御プログラムを実行し、前記ロボット、前記電子計算機および前記外部入出力機器から出力された信号に基づいて変数の値または前記ロボット制御プログラムの実行行を変更するプログラム実行手段と、
    ログ取得プログラムに基づいて、前記制御装置に接続されている前記ロボット、前記電子計算機および前記外部入出力機器から出力された信号に基づいて変化しつつ前記ロボット制御プログラムで使用される変数のログである実行変数ログを取得可能であって、前記ロボット制御プログラムにおいて予め設定されたログ取得スタート行から前記ログ取得スタート行が再び実行されるまでの一周期において変化した前記実行行および前記実行変数ログを前記ロボット制御プログラムの一周期ログとして取得、または前記ロボット制御プログラムのうち前記ログ取得スタート行から予め設定されたログ取得エンド行までのログ取得範囲において変化した前記実行行および前記実行変数ログを前記ロボット制御プログラムの一周期ログとして取得する実行ログ取得手段と、
    複数の一時記憶領域を有し、前記実行ログ取得手段で前記一周期ログが取得されるごとに、前記一周期ログを複数の一時記憶領域のいずれかに割り当てながら順次記憶する一時記憶手段と、
    前記一時記憶手段に記憶した前記一周期ログのうち長期記憶が必要と判断された長期記憶一周期ログを逐次蓄積しながら記憶する長期記憶手段と、
    前記実行ログ取得手段で最新の前記一周期ログを前記一時記憶領域のいずれか一つに記憶している間に、前記一時記憶領域のいずれか一つに記憶されている最古の前記一周期ログである最古一周期ログと、前記長期記憶手段に記憶されている最新の前記長期記憶一周期ログである最新長期記憶一周期ログとを比較する比較手段と、
    前記比較手段の比較の結果、前記最古一周期ログと最新長期記憶一周期ログとが異なるとき、取得した前記最古一周期ログは前記長期記憶手段への記憶が必要であると判断してその最古一周期ログに対応する長期記憶フラグをオンにする長期記憶判断手段と、
    前記最古一周期ログの長期記憶フラグがオフであれば前記最古一周期ログが記憶された一時記憶領域をクリアし、前記最古一周期ログの長期記憶フラグがオンであれば前記最古一周期ログを前記長期記憶手段に書き込んで前記最古一周期ログが記憶された一時記憶領域をクリアして次回の一周期ログの取得へ移行する移行処理手段と、
    を備えることを特徴とするロボット制御のログ取得システム。
JP2013117743A 2013-06-04 2013-06-04 ロボット制御のログ取得システム Active JP5387794B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013117743A JP5387794B2 (ja) 2013-06-04 2013-06-04 ロボット制御のログ取得システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013117743A JP5387794B2 (ja) 2013-06-04 2013-06-04 ロボット制御のログ取得システム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2009051954A Division JP5287367B2 (ja) 2009-03-05 2009-03-05 ロボット制御システム

Publications (2)

Publication Number Publication Date
JP2013168188A true JP2013168188A (ja) 2013-08-29
JP5387794B2 JP5387794B2 (ja) 2014-01-15

Family

ID=49178470

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013117743A Active JP5387794B2 (ja) 2013-06-04 2013-06-04 ロボット制御のログ取得システム

Country Status (1)

Country Link
JP (1) JP5387794B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200045168A (ko) * 2018-10-22 2020-05-04 씨제이올리브네트웍스 주식회사 휴머노이드 로봇 개발 프레임워크 시스템

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01195548A (ja) * 1988-01-30 1989-08-07 Fanuc Ltd プログラム実行状態の記録方式
JPH0264749A (ja) * 1988-08-30 1990-03-05 Fujitsu Ltd ログデータの記録処理方式
JPH02247745A (ja) * 1989-03-20 1990-10-03 Fujitsu Ltd ロギング処理方式
JPH03290741A (ja) * 1990-04-06 1991-12-20 Fujitsu Ltd エラーロギング方法
JPH07219807A (ja) * 1994-02-08 1995-08-18 Toshiba Corp プログラマブルコントローラシステム
JPH07281929A (ja) * 1994-04-06 1995-10-27 Oki Electric Ind Co Ltd トレース情報収集装置
JP2000047909A (ja) * 1998-07-31 2000-02-18 Nec Corp システムログ記録装置、システムログ記録方法および記録媒体
JP2002268921A (ja) * 2001-03-08 2002-09-20 Hitachi Information Systems Ltd 複数時系列情報ファイルの併合方法,その併合プログラム及びその併合システム
JP2005259041A (ja) * 2004-03-15 2005-09-22 Yaskawa Electric Corp データ蓄積方法および装置
JP2006330778A (ja) * 2005-05-23 2006-12-07 Ricoh Co Ltd データトレース装置及びプログラムデバッグ装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01195548A (ja) * 1988-01-30 1989-08-07 Fanuc Ltd プログラム実行状態の記録方式
JPH0264749A (ja) * 1988-08-30 1990-03-05 Fujitsu Ltd ログデータの記録処理方式
JPH02247745A (ja) * 1989-03-20 1990-10-03 Fujitsu Ltd ロギング処理方式
JPH03290741A (ja) * 1990-04-06 1991-12-20 Fujitsu Ltd エラーロギング方法
JPH07219807A (ja) * 1994-02-08 1995-08-18 Toshiba Corp プログラマブルコントローラシステム
JPH07281929A (ja) * 1994-04-06 1995-10-27 Oki Electric Ind Co Ltd トレース情報収集装置
JP2000047909A (ja) * 1998-07-31 2000-02-18 Nec Corp システムログ記録装置、システムログ記録方法および記録媒体
JP2002268921A (ja) * 2001-03-08 2002-09-20 Hitachi Information Systems Ltd 複数時系列情報ファイルの併合方法,その併合プログラム及びその併合システム
JP2005259041A (ja) * 2004-03-15 2005-09-22 Yaskawa Electric Corp データ蓄積方法および装置
JP2006330778A (ja) * 2005-05-23 2006-12-07 Ricoh Co Ltd データトレース装置及びプログラムデバッグ装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200045168A (ko) * 2018-10-22 2020-05-04 씨제이올리브네트웍스 주식회사 휴머노이드 로봇 개발 프레임워크 시스템
KR102144891B1 (ko) * 2018-10-22 2020-08-14 씨제이올리브네트웍스 주식회사 휴머노이드 로봇 개발 프레임워크 시스템

Also Published As

Publication number Publication date
JP5387794B2 (ja) 2014-01-15

Similar Documents

Publication Publication Date Title
JP5218585B2 (ja) 制御装置およびシステムプログラム
KR100549910B1 (ko) 플래시 메모리 디바이스, 플래시 메모리 명령어 추상화방법 및 컴퓨터 프로그램 제품
JP4969315B2 (ja) プログラマブルコントローラ
JP5387794B2 (ja) ロボット制御のログ取得システム
JP5287367B2 (ja) ロボット制御システム
JP5241388B2 (ja) ログデータ取得システムおよびプログラマブル表示器
JP6486005B2 (ja) ロボット、ロボットの制御方法、及びロボットの制御プログラム
JP2013073344A (ja) プログラマブルコントローラ、プログラム作成支援装置、デジタル制御プログラム、およびプログラム作成支援プログラム
JP5459601B2 (ja) ロボットコントロール・システム、ロボットコントロール方法
JP5148021B1 (ja) 変換装置、周辺装置およびプログラマブルコントローラ
CN113632017A (zh) 驱动控制装置
JP2001154711A (ja) 工程歩進型プログラムのデバッグ方法および装置
US20210366437A1 (en) Device state reproduction device, device state reproduction method, and storage medium
US20180274913A1 (en) Measurement system, measurement program, and control method
JPWO2019207679A1 (ja) モニタ支援装置、モニタ支援方法およびモニタ支援プログラム
JP7404645B2 (ja) プログラマブルコントローラの動作履歴記録方法及びシーケンスプログラム
JP2010039737A (ja) プログラマブルコントローラ高速化方式およびこの方式によるプログラマブルコントローラ
WO2021199192A1 (ja) 制御装置及びロギング方法
JP6901430B2 (ja) 制御装置及び編集装置
JP2008257415A (ja) プログラム書き込み機能を有するコントローラ
JP2009015751A (ja) ラダープログラムのrun中書込み制限方法
JPH0458303A (ja) プログラマブルコントローラ
JP2009252077A (ja) プログラマブル表示器
JP2005301334A (ja) モーションコントローラ
JP2002268709A (ja) プログラマブルコントローラのシーケンス演算実行装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130604

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130910

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130923

R150 Certificate of patent or registration of utility model

Ref document number: 5387794

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250