IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノン株式会社の特許一覧

特許7486982情報処理装置、生産装置、物品の製造方法、情報処理方法、プログラム、及び記録媒体
<>
  • 特許-情報処理装置、生産装置、物品の製造方法、情報処理方法、プログラム、及び記録媒体 図1
  • 特許-情報処理装置、生産装置、物品の製造方法、情報処理方法、プログラム、及び記録媒体 図2
  • 特許-情報処理装置、生産装置、物品の製造方法、情報処理方法、プログラム、及び記録媒体 図3
  • 特許-情報処理装置、生産装置、物品の製造方法、情報処理方法、プログラム、及び記録媒体 図4
  • 特許-情報処理装置、生産装置、物品の製造方法、情報処理方法、プログラム、及び記録媒体 図5
  • 特許-情報処理装置、生産装置、物品の製造方法、情報処理方法、プログラム、及び記録媒体 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-10
(45)【発行日】2024-05-20
(54)【発明の名称】情報処理装置、生産装置、物品の製造方法、情報処理方法、プログラム、及び記録媒体
(51)【国際特許分類】
   G05B 23/02 20060101AFI20240513BHJP
   G05B 19/05 20060101ALI20240513BHJP
【FI】
G05B23/02 302K
G05B19/05 D
【請求項の数】 27
(21)【出願番号】P 2020035166
(22)【出願日】2020-03-02
(65)【公開番号】P2021140259
(43)【公開日】2021-09-16
【審査請求日】2023-02-28
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003133
【氏名又は名称】弁理士法人近島国際特許事務所
(72)【発明者】
【氏名】藤井 信明
【審査官】大古 健一
(56)【参考文献】
【文献】特開平10-264058(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G05B 23/00 -23/02
G05B 19/04 -19/05
(57)【特許請求の範囲】
【請求項1】
動作プログラムに基づき、装置のシミュレーションを実行する情報処理装置であって、
前記動作プログラムには、前記装置に所定動作の実行を指示する信号を取得した場合に、所定条件が成立していれば前記装置に前記所定動作を実行させるインターロック処理が規定されており、
前記シミュレーションにおいて、前記信号を取得した場合に、前記所定条件が成立していなくても、前記装置に前記所定動作を実行させる第1処理を実行させ、前記装置が他の物体に干渉しなかった場合、前記動作プログラムに規定された前記インターロック処理の前記所定条件が過剰な状態であることを通知する
ことを特徴とする情報処理装置。
【請求項2】
前記インターロック処理は、前記所定条件が成立していなければ、前記信号を取得したとしても、前記装置に前記所定動作を実行させない、
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記第1処理を実行させ、前記装置が他の物体に干渉しなかった場合、前記動作プログラムに規定された前記インターロック処理の前記所定条件が過剰な状態であると判定する、
ことを特徴とする請求項1または2に記載の情報処理装置。
【請求項4】
前記第1処理を実行させ、前記装置が他の物体に干渉しなかった場合、前記動作プログラムにおいて修正が必要であることを通知する、
ことを特徴とする請求項1から3のいずれか1項に記載の情報処理装置。
【請求項5】
前記第1処理を実行させ、前記装置が他の物体に干渉した場合、前記動作プログラムにおいて修正が不要であることを通知する、
ことを特徴とする請求項1から4のいずれか1項に記載の情報処理装置。
【請求項6】
前記第1処理を実行させ、前記所定動作が完了しなった場合、前記動作プログラムにおいて修正が必要であることを通知する、
ことを特徴とする請求項1からのいずれか1項に記載の情報処理装置。
【請求項7】
前記シミュレーションにおいて、前記信号を取得した場合に前記所定条件が成立していれば、前記インターロック処理に従い、前記装置に前記所定動作を実行させる第2処理を実行する、
ことを特徴とする請求項1からのいずれか1項に記載の情報処理装置。
【請求項8】
前記第2処理を実行させ、前記装置が他の物体に干渉した場合、前記動作プログラムに規定された前記インターロック処理の前記所定条件が不足している状態であると判定する、
ことを特徴とする請求項に記載の情報処理装置。
【請求項9】
前記第2処理を実行させ、前記装置が他の物体に干渉した場合、前記動作プログラムにおいて修正が必要であることを通知する、
ことを特徴とする請求項またはに記載の情報処理装置。
【請求項10】
前記第2処理を実行させ、前記装置が他の物体に干渉しなかった場合、前記動作プログラムにおいて修正が不要であることを通知する、
ことを特徴とする請求項からのいずれか1項に記載の情報処理装置。
【請求項11】
前記第2処理を実行させ、前記装置が他の物体に干渉した場合、前記インターロックの前記所定条件が不足している状態であることを通知する、
ことを特徴とする請求項から1のいずれか1項に記載の情報処理装置。
【請求項12】
前記第2処理を実行させ、前記所定動作が完了しなった場合、前記動作プログラムにおいて修正が必要であることを通知する、
ことを特徴とする請求項から1のいずれか1項に記載の情報処理装置。
【請求項13】
前記シミュレーションにおいて、前記装置が他の物体と干渉した場合に、干渉した時点で前記シミュレーションを中断する、
ことを特徴とする請求項1から1のいずれか1項に記載の情報処理装置。
【請求項14】
前記シミュレーションにおいて、前記装置が他の物体と干渉しても前記シミュレーションを継続する、
ことを特徴とする請求項1から1のいずれか1項に記載の情報処理装置。
【請求項15】
前記シミュレーションにより前記装置の挙動を制御する第1制御部を更に備える、
ことを特徴とする請求項1から1のいずれか1項に記載の情報処理装置。
【請求項16】
前記動作プログラムは、前記装置の一連の動作を規定するシーケンスプログラムのうちの一部又は全部である、
ことを特徴とする請求項1から1のいずれか1項に記載の情報処理装置。
【請求項17】
前記シーケンスプログラムを配信する管理部を更に備える、
ことを特徴とする請求項16に記載の情報処理装置。
【請求項18】
前記管理部から前記シーケンスプログラムを取得し、取得した前記シーケンスプログラムに基づく制御信号を前記装置に出力して、前記装置の挙動を制御する第2制御部と、を更に備える、
ことを特徴とする請求項17に記載の情報処理装置。
【請求項19】
前記動作プログラムにおける修正が必要か否かを表示部に表示する、
ことを特徴とする請求項1から18のいずれか1項に記載の情報処理装置。
【請求項20】
前記動作プログラムはラダープログラムである、
ことを特徴とする請求項1から19のいずれか1項に記載の情報処理装置。
【請求項21】
前記第1処理を実行させ、前記装置が他の物体に干渉した場合、前記動作プログラムに規定された前記インターロック処理の前記所定条件が適正な状態であると判定する、
ことを特徴とする請求項1または2に記載の情報処理装置。
【請求項22】
前記所定条件は、前記動作プログラムにおいて規定される前記インターロック処理に対応する接点をОNまたはОFFにする条件である、
ことを特徴とする請求項1から21のいずれか1項に記載の情報処理装置。
【請求項23】
請求項1から2のいずれか1項に記載の情報処理装置と、前記装置と、前記装置を制御する制御装置と、を備えた生産装置であって、
前記情報処理装置により前記動作プログラムのシミュレーションを実行し、シミュレーションの結果に基づきユーザが前記情報処理装置を用いて前記動作プログラムを修正し、前記制御装置が、修正された前記動作プログラムに基づき前記装置を制御する、ことを特徴とする生産装置。
【請求項24】
請求項2に記載の生産装置を用いて物品の製造を行うことを特徴とする物品の製造方法。
【請求項25】
動作プログラムに基づき、装置のシミュレーションを実行する情報処理方法であって、
前記動作プログラムには、前記装置に所定動作の実行を指示する信号を取得した場合に、所定条件が成立していれば前記装置に前記所定動作を実行させるインターロック処理が規定されており、
前記シミュレーションにおいて、前記信号を取得した場合に、前記所定条件が成立していなくても、前記装置に前記所定動作を実行させる第1処理を実行させ、前記装置が他の物体に干渉しなかった場合、前記動作プログラムに規定された前記インターロック処理の前記所定条件が過剰な状態であることを通知する、
ことを特徴とする情報処理方法。
【請求項26】
請求項2に記載の情報処理方法をコンピュータに実行させるためのプログラム。
【請求項27】
請求項2に記載のプログラムを記録した、コンピュータにより読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、自動機の動作プログラムを診断する技術に関する。
【背景技術】
【0002】
工場等の生産ラインにおいて、ロボットなどのアクチュエータである自動機を動作プログラムに従って動作させることで、物品の製造を行っている。通常、生産ラインには複数台の自動機が配置される。複数台の自動機のうち、1の自動機が、他の自動機と干渉しないよう、動作プログラムには、インターロックが設定されている。特許文献1には、インターロックを自動で設定する方法が記載されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2007-164417号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
作成される動作プログラムには、インターロックが正常に作動することが要求される。動作プログラムはこのような観点で作成されるため、場合によってはインターロックの自動設定により、自動機の動作効率が低下してしまう可能性がある。
【0005】
本発明は、自動機の動作効率を向上させることを目的とする。
【課題を解決するための手段】
【0006】
本開示の第1態様は、動作プログラムに基づき、装置のシミュレーションを実行する情報処理装置であって、前記動作プログラムには、前記装置に所定動作の実行を指示する信号を取得した場合に、所定条件が成立していれば前記装置に前記所定動作を実行させるインターロック処理が規定されており、前記シミュレーションにおいて、前記信号を取得した場合に、前記所定条件が成立していなくても、前記装置に前記所定動作を実行させる第1処理を実行させ、前記装置が他の物体に干渉しなかった場合、前記動作プログラムに規定された前記インターロック処理の前記所定条件が過剰な状態であることを通知する、ことを特徴とする情報処理装置である。
【0007】
本開示の第2態様は、動作プログラムに基づき、装置のシミュレーションを実行する情報処理方法であって、前記動作プログラムには、前記装置に所定動作の実行を指示する信号を取得した場合に、所定条件が成立していれば前記装置に前記所定動作を実行させるインターロック処理が規定されており、前記シミュレーションにおいて、前記信号を取得した場合に、前記所定条件が成立していなくても、前記装置に前記所定動作を実行させる第1処理を実行させ、前記装置が他の物体に干渉しなかった場合、前記動作プログラムに規定された前記インターロック処理の前記所定条件が過剰な状態であることを通知する、ことを特徴とする情報処理方法である。
【発明の効果】
【0010】
本発明によれば、自動機の動作効率を向上させることができる。
【図面の簡単な説明】
【0011】
図1】実施形態に係る自動組立装置の模式図である。
図2】実施形態に係るシステムのブロック図である。
図3】実施形態に係るシステムの機能ブロック図である。
図4】実施形態における仮想空間の一例を示す模式図である。
図5】(a)は実施形態におけるラダープログラムの一例を示すラダー図である。(b)はラダープログラムに用いられる接点の情報を示す図である。
図6】実施形態に係るシミュレーション方法を示すフローチャートである。
【発明を実施するための形態】
【0012】
以下、本発明を実施するための形態を、図面を参照しながら詳細に説明する。図1は、実施形態に係るシステムの自動組立装置100の模式図である。図1には、実空間RSにおける自動組立装置100を図示している。図1に示す自動組立装置100は、例えば工場に設置される。自動組立装置100は、複数の自動機の一例として、3つの直交ロボット104,105,106を備える。3つの直交ロボット104,105,106は、架台20上に配置されている。これら直交ロボット104,105,106を用いることにより、第1ワークであるワークW1に第2ワークであるワークW2を組み付けることで、物品の一例であるワークW3が製造される。
【0013】
架台20上には、レール103が布設されており、ワークW1やワークW3が載置される搬送台111がレール103上を移動可能となっている。直交ロボット104は、ワークW1を保持可能な保持部の一例であるハンド114と、ハンド114を並進方向に移動させる移動機構124と、を有している。直交ロボット105は、ワークW1を保持可能な保持部の一例であるハンド115と、ハンド115を並進方向に移動させる移動機構125と、を有している。直交ロボット106は、ワークW2を保持可能な保持部の一例であるハンド116と、ハンド116を並進方向に移動させる移動機構126と、を有している。直交ロボット104,105,106は互いの動作可能範囲が重なるように配置されている。
【0014】
各直交ロボット104及び105は、搬送台111によって搬送されたワークW1を取得する。直交ロボット106は、不図示の搬送装置から搬送されたワークW2を取得する。そして、各直交ロボット104及び105は、ワークW1を取得した位置からワークW1にワークW2を組み付ける位置までワークW1を搬送する。直交ロボット106は、保持したワークW2を、各直交ロボット104及び105に保持されたワークW1に組み付ける。そして、各直交ロボット104及び105は、ワークW1,W2により構成されるワークW3を、搬送台111に搬送する。直交ロボット104と直交ロボット105とは、これら一連の動作を交互に繰り返し実行する。
【0015】
ここで、直交ロボット104,105同士、直交ロボット104,106同士、及び直交ロボット105,106同士が干渉しないように、インターロックが設定されている。インターロックは、所定条件が成立しない限り、いずれかの直交ロボットの動作を停止させる機能である。各直交ロボット104,105,106は、シーケンスプログラムであるラダープログラムに従って動作する。このラダープログラムには、インターロックを行うためのインターロック処理、即ちインターロックの接点が規定されている。
【0016】
ラダープログラムを作成したとき、インターロックが正常に働くかどうかを確認し、必要であればラダープログラムを修正するデバッグ作業を、事前に行う必要がある。実機を用いて、このデバッグ作業を行うには、多くの労力と時間を要する。そこで、デバッグ作業を、実空間における自動機を用いずに、自動機に対応する、仮想空間における疑似的な仮想機を用いて行う。
【0017】
図2は、実施形態に係るシステムの一例である生産システム1000のブロック図である。生産システム1000は、上述した自動組立装置100、情報処理装置200、シミュレーション装置300、及び管理装置400を備える。また、生産システム1000は、第1制御部の一例であるPLC(Programmable Logic Controller)500、及び第2制御部の一例であるPLC600を備える。
【0018】
情報処理装置200は、コンピュータで構成されており、プロセッサであるCPU(Central Processing Unit)201を備える。CPU201は、後述する診断部として機能する。また情報処理装置200は、記憶部として、ROM(Read Only Memory)202、RAM(Random Access Memory)203、HDD(Hard Disk Drive)204を備える。また、情報処理装置200は、入出力インタフェースであるI/O205、及びディスクドライブ206を備える。CPU201、ROM202、RAM203、HDD204、I/0205、及びディスクドライブ206は、互いに通信可能にバス210で接続されている。
【0019】
ROM202は、非一時的な記憶装置である。ROM202には、コンピュータ起動時にCPU201によって読み出される基本プログラムが格納されている。RAM203は、CPU201の演算処理に用いられる一時的な記憶装置である。HDD204は、CPU201の演算処理結果等、各種データを記憶する非一時的な記憶装置である。本実施形態では、HDD204には、CPU201に後述する診断部として機能させてシミュレーション方法の一部を実行させるための診断プログラム211が格納されている。ディスクドライブ206は、記録ディスク212に記録された各種データやプログラム等を読み出すことができる。I/O205は、外部との通信モジュールとして機能する。I/O205には、表示装置221、入力装置222、管理装置400、及びPLC500が接続されている。情報処理装置200のCPU201は、I/O205を介して、管理装置400及びPLC500と情報の通信が可能である。表示装置221は、各種画像を表示するディスプレイである。入力装置222は、作業者によってデータ入力が可能な装置、例えばキーボードやマウスである。
【0020】
シミュレーション装置300は、コンピュータで構成されており、プロセッサであるCPU301を備える。CPU301は、後述するシミュレーション部として機能する。またシミュレーション装置300は、記憶部として、ROM302、RAM303、HDD304を備える。また、シミュレーション装置300は、入出力インタフェースであるI/O305、及びディスクドライブ306を備える。CPU301、ROM302、RAM303、HDD304、I/0305、及びディスクドライブ306は、互いに通信可能にバス310で接続されている。
【0021】
ROM302は、非一時的な記憶装置である。ROM302には、コンピュータ起動時にCPU301によって読み出される基本プログラムが格納されている。RAM303は、CPU301の演算処理に用いられる一時的な記憶装置である。HDD304は、CPU301の演算処理結果等、各種データを記憶する非一時的な記憶装置である。本実施形態では、HDD304には、CPU301に後述するシミュレーション部として機能させてシミュレーション方法の一部を実行させるためのシミュレーションプログラム311が格納されている。ディスクドライブ306は、記録ディスク312に記録された各種データやプログラム等を読み出すことができる。I/O305は、外部との通信モジュールとして機能する。I/O305には、表示装置321、入力装置322、管理装置400、及びPLC500が接続されている。シミュレーション装置300のCPU301は、I/O305を介して、管理装置400及びPLC500と情報の通信が可能である。表示装置321は、各種画像を表示するディスプレイである。入力装置322は、作業者によってデータ入力が可能な装置、例えばキーボードやマウスである。
【0022】
管理装置400は、コンピュータで構成されており、プロセッサであるCPU401を備える。CPU401は、後述する管理部として機能する。また管理装置400は、記憶部として、ROM402、RAM403、HDD404を備える。また、管理装置400は、入出力インタフェースであるI/O405、及びディスクドライブ406を備える。CPU401、ROM402、RAM403、HDD404、I/0405、及びディスクドライブ406は、互いに通信可能にバス410で接続されている。
【0023】
ROM402は、非一時的な記憶装置である。ROM402には、コンピュータ起動時にCPU401によって読み出される基本プログラムが格納されている。RAM403は、CPU401の演算処理に用いられる一時的な記憶装置である。HDD404は、CPU401の演算処理結果等、各種データを記憶する非一時的な記憶装置である。HDD404には、CPU401に後述する管理部として機能させるための管理プログラム411が格納されている。ディスクドライブ406は、記録ディスク412に記録された各種データやプログラム等を読み出すことができる。I/O405は、外部との通信モジュールとして機能する。I/O405には、表示装置421、入力装置422、情報処理装置200、シミュレーション装置300、PLC500、及びPLC600が接続されている。管理装置400のCPU401は、I/O405を介して、情報処理装置200、シミュレーション装置300、PLC500、及びPLC600と情報の通信が可能である。表示装置421は、各種画像を表示するディスプレイである。入力装置422は、作業者によってデータ入力が可能な装置、例えばキーボードやマウスである。PLC600は、自動組立装置100に接続されている。
【0024】
PLC600は、自動組立装置100に制御信号を出力することにより、実空間における自動組立装置100の直交ロボット104,105,106をシーケンス制御することができる。PLC500は、PLC600と同様の構成であり、シミュレーション装置300に制御信号を出力することにより、仮想空間における仮想機をシーケンス制御することができる。
【0025】
なお、本実施形態では、コンピュータによって読み取り可能な非一時的な記録媒体がHDD204であり、HDD204にプログラム211が記録されているが、これに限定するものではない。プログラム211は、コンピュータによって読み取り可能な非一時的な記録媒体であれば、いかなる記録媒体に記録されていてもよい。プログラム311,411についても同様である。プログラム211,311,411をコンピュータに供給するための記録媒体としては、例えばフレキシブルディスク、光ディスク、光磁気ディスク、磁気テープ、不揮発性メモリ等を用いることができる。
【0026】
図3は、実施形態に係る生産システム1000の機能ブロック図である。図2に示す情報処理装置200のCPU201は、診断プログラム211を実行することにより、図3に示す診断部250として機能する。診断部250は、診断処理251を実行することにより、PLC500に登録されたラダープログラム800Aを診断する。この診断処理251により診断工程が実行される。
【0027】
図2に示すシミュレーション装置300のCPU301は、シミュレーションプログラム311を実行することにより、図3に示すシミュレーション部350として機能する。また、図2に示すシミュレーション装置300のHDD304の一部は、図3に示すモデル登録部360として機能する。
【0028】
図2に示す管理装置400のCPU401は、管理プログラム411を実行することにより、図3に示す管理部450として機能する。管理部450は、ラダープログラム管理451、3Dモデル管理452、診断範囲管理453、及び3DCAD変換処理454を実行する。
【0029】
シミュレーション装置300のシミュレーション部350は、モデル登録部360に登録された3Dモデルである仮想機に基づいて、PLC500の制御信号に従って仮想機の挙動をシミュレートするシミュレーション処理351を実行する。このシミュレーション処理351によりシミュレーション工程が実行される。
【0030】
図4は、実施形態における仮想空間の一例を示す模式図である。図4には、仮想空間VSにおける仮想組立装置100Vを図示している。仮想組立装置100Vは、自動組立装置100と対応し、シミュレーション装置300において仮想的に構築される。仮想組立装置100Vは、複数の仮想機の一例として、3つの仮想ロボット104V,105V,106Vを備える。仮想ワークW1VはワークW1と対応し、仮想ワークW2VはワークW2と対応し、仮想ワークW3VはワークW3と対応する。仮想ロボット104Vは、仮想ハンド114Vと、仮想ハンド114Vを並進方向に移動させる仮想機構124Vと、を有する。仮想ロボット105Vは、仮想ハンド115Vと、仮想ハンド115Vを並進方向に移動させる仮想機構125Vと、を有する。仮想ロボット106Vは、仮想ハンド116Vと、仮想ハンド116Vを並進方向に移動させる仮想機構126Vと、を有する。
【0031】
図3に示す管理部450は、シーケンスプログラムであるラダープログラム800Aやラダープログラム800を管理するラダープログラム管理451を実行する。管理部450は、ラダープログラム管理451において、ラダープログラム800AをPLC500に配信したり、ラダープログラム800をPLC600に配信したり、ラダープログラム800Aにおける接点情報を情報処理装置200に配信したりする。
【0032】
PLC600には、管理部450によって配信されたラダープログラム800が登録される。ラダープログラム800は、仮想空間における疑似的な仮想機を用いて、デバッグ済みである。PLC600は、登録されたラダープログラム800に基づく制御信号を自動組立装置100に出力することで、自動組立装置100の各直交ロボット104,105,106の挙動を制御し、自動組立装置100にワークW3を製造させる。
【0033】
作業者は、未デバッグのラダープログラム800Aを、入力装置422を操作して管理装置400に入力する。ラダープログラム800Aは、新規作成されて未診断のラダープログラム、又は修正後の未診断のラダープログラムである。ラダープログラム800Aは、作業者が入力装置422を操作することにより作成する場合に限らない。予め作成されたラダープログラム800Aを、外部ストレージやネットワークなどから管理装置400に入力するようにしてもよい。管理装置400において、ラダープログラム800A又は800は、例えば図2のHDD404に登録される。
【0034】
PLC500には、管理部450によって配信されたラダープログラム800Aが登録される。PLC500は、管理部450から取得したラダープログラム800Aを実行可能に構成されている。即ち、PLC500は、登録されたラダープログラム800Aに基づく制御信号をシミュレーション部350に出力して、シミュレーション部350による仮想ロボット104V,105V,106Vの挙動を制御する。
【0035】
ラダープログラム800Aは、診断対象であり、情報処理装置200の診断部250によって診断される。管理部450は、診断部250から取得したラダープログラム800Aの診断結果を示す画像を、表示装置421に表示させる。作業者は、表示装置421に表示された診断結果を参照することで、入力装置422を操作してラダープログラム800Aを修正したり、ラダープログラム800を登録したりすることができる。修正後のラダープログラム800Aは、再度、診断部250に診断させることもできる。ラダープログラム800Aの診断の結果、修正する必要がなければ、ラダープログラム800Aは、デバッグ済みのラダープログラム800として管理装置400に登録される。
【0036】
また、管理部450は、自動組立装置100のメカ機構の3Dモデルを管理する3Dモデル管理452を実行する。メカ機構の3Dモデルは、作業者が操作する入力装置422によって管理部450に入力され、例えば図2のHDD404に登録される。メカ機構の3Dモデルは、情報処理装置200の診断部250によって診断される。管理部450は、診断部250からメカ機構の診断結果を取得し、その診断結果に応じた画像を表示装置421に表示させる。管理部450は、メカ機構の修正が必要である場合は、メカ機構の修正箇所を表示装置421に表示させる。
【0037】
また、管理部450は、3Dモデル管理452で管理されている自動機のメカ機構の3Dモデルを、シミュレーション部350でシミュレーション可能な形式に変換し、シミュレーション装置300に配信する3DCAD変換処理454を実行する。管理部450により配信された3Dモデルは、シミュレーション装置300のモデル登録部360に登録される。
【0038】
また、管理部450は、ラダープログラム800Aの診断範囲を選択する診断範囲管理453を実行する。管理部450は、診断範囲管理453において、ラダープログラム800Aの全体のうち、一部又は全部を診断範囲として選択し、選択した診断範囲の情報を情報処理装置200に配信する。診断範囲は、例えば作業者が入力装置422を操作することにより選択される。また、診断範囲は、例えば作業者が入力装置422を操作してラダープログラム800Aを修正した修正箇所に応じて選択されるようにしてもよい。また、診断範囲は、例えば作業者が入力装置422を操作してメカ機構の3Dモデルを修正した修正箇所に応じて選択されるようにしてもよい。情報処理装置200の診断部250は、配信された診断範囲の情報に基づいて診断処理251を実行し、その診断結果を管理装置400に配信する。つまり、診断部250は、ラダープログラム800Aの診断範囲に基づき、PLC500を介してシミュレーション部350に仮想ロボット104Vの動作をテストさせ、そのテスト結果を管理装置400に配信する。
【0039】
PLC500は、ラダープログラム800Aに基づき、あたかも直交ロボット104をシーケンス制御するのと同様に、シミュレーション部350によって仮想空間VSに構築される仮想ロボット104Vをシーケンス制御する。仮想ロボット105V,106Vについても同様である。
【0040】
以下、本実施形態のシミュレーション方法について説明する。シミュレーション方法として、実空間RSにおける直交ロボット104に対応する、仮想空間VSにおける仮想ロボット104Vを例にとって説明する。図5(a)は、実施形態において診断対象のラダープログラム800Aの一例を示すラダー図である。図5(b)は、ラダープログラム800Aに用いられる接点の情報を示す図である。
【0041】
管理部450は、図5(a)に示すようなラダープログラム800Aの情報をPLC500に配信する。また、管理部450は、図5(a)に示すラダープログラム800Aの一部である診断範囲801を選択する。そして、管理部450は、選択した診断範囲801に含まれる図5(b)に示す接点の情報を、情報処理装置200の診断部250、及びシミュレーション装置300のシミュレーション部350に配信する。
【0042】
診断範囲801は、直交ロボット104、即ち仮想ロボット104Vの一連の動作を規定するラダープログラム800Aのうちの一部又は全部、本実施形態では一部である動作プログラムである。この診断範囲801には、インターロック処理を行うための接点が含まれているものとする。インターロック処理とは、所定条件が成立していれば、入力信号により直交ロボット104の所定動作を開始し、所定条件が成立していなければ、入力信号の有無に関わらず直交ロボット104の動作停止を継続する処理である。
【0043】
シミュレーション部350は、ラダープログラム800Aにおける診断範囲801に基づくPLC500の制御により、仮想ロボット104Vの挙動を、仮想空間VSにおいてシミュレートする。そして、診断部250は、シミュレーション部350のシミュレーション結果により、ラダープログラム800Aにおける診断範囲801を診断する。
【0044】
本実施形態では、診断部250は、接点の情報に基づき、所定の接点をONさせる入力信号をPLC500へ入力して、PLC500を介してシミュレーション部350にシミュレーション処理351を実行させる。そして、シミュレーション部350によるシミュレーション結果として、PLC500から応答信号を受け取り、ラダープログラム800Aにおける診断範囲801を診断する。
【0045】
図5(a)に示す接点M100、M101、M102、M200、M201、M202は、a接点であり、PLC500においてコイルに相当する。接点M100は自動スイッチ、接点M101は手動スイッチ、接点M102はインターロック(I/L)に対応する。接点M200、M201、M202は、インターロックの所定条件に対応する。接点M200は条件1、接点M201は条件2、接点M202は条件3に対応する。本実施形態の例では、インターロックの所定条件は、複数の条件1,2,3からなる。接点M200は、条件1が成立したときにONする。接点M201は、条件2が成立したときにONする。接点M202は、条件3が成立したときにONする。3つの接点M200、M201、及びM202の全てがONしたときに、つまり所定条件が成立したときに、インターロックを示す接点M102がONする。また、3つの接点M200、M201、及びM202のうちの1つでもOFFしていれば、つまり所定条件が成立していなければ、インターロックを示す接点M102がOFFする。よって、図5(a)の例では、ラダープログラム800Aにおけるインターロック処理は、接点M200、M201、M202及びM102で構成されている。
【0046】
情報処理装置200は、診断処理251において、接点M101をONする入力信号をPLC500に入力すると、PLC500は、接点M101をONする。接点M101をONしたときの接点M102のON/OFFに応じて、仮想ロボット104Vに所定動作を開始させるか動作停止を継続させるかが決まる。
【0047】
接点M101及びM102がONすることで、動作指令152がONし、シミュレーション部350に仮想ロボット104Vを動作させる制御信号が出力される。接点M102がOFFであれば、接点M101がONしても、動作指令152がONすることはなく、仮想ロボット104Vは、動作停止が継続される。
【0048】
なお、図示は省略するが、PLC500は、動作指令152により仮想ロボット104Vの所定動作を開始した後、仮想ロボット104Vの所定動作が完了した場合には、動作完了信号をONする。診断部250は、PLC500の動作完了信号を監視することで、仮想ロボット104Vの所定動作が完了したかどうかを判断することができる。
【0049】
以下、情報処理装置200、PLC500及びシミュレーション装置300の動作について詳細に説明する。図6は、実施形態に係るシミュレーション方法を示すフローチャートである。
【0050】
まず、診断部250は、診断処理251によるインターロック診断を開始し、接点M101をONするように入力信号をPLC500に入力する。即ち診断部250は、入力信号をONする(S201)。このステップS201の処理により、PLC500において図5(a)の接点M101がONする。
【0051】
次に、診断部250は、入力信号をONした後、PLC500において、インターロックを示す接点M102がONしているかどうかを判断する(S202)。PLC500は、入力信号を受けたとき、接点M102がONしているかどうかを診断部250に応答信号として送信する。診断部250は、応答信号により、接点M102がONしているかどうかを判断することができる。
【0052】
PLC500は、入力信号の入力があった場合に、接点M200~M202の全てがONしていれば、接点M102をONするインターロック処理を実行することで、動作指令152をONする。PLC500は、入力信号の入力があったとしても、接点M200~M202の少なくとも1つがOFFしていれば、接点M102をOFFするインターロック処理を実行することで、動作指令152はOFFのまま維持される。
【0053】
接点M102がONしている場合(S202:YES)、PLC500は、ラダープログラム800Aのインターロック処理に従い動作指令152をONする。これにより、シミュレーション部350は、インターロック処理によりONされた動作指令152に従い、仮想ロボット104Vの所定動作を開始させる(S203)。このステップS203の処理が第2処理である。つまり、シミュレーション部350は、PLC500において診断部250から入力信号が入力された場合に所定条件が成立していれば、即ち接点M102がONであれば、インターロック処理に従い、仮想ロボット104Vに所定動作を開始させる。
【0054】
本実施形態では、シミュレーション部350は、動作中の仮想ロボット104Vが周囲の仮想物、例えば仮想ロボット105V及び106Vと干渉するかどうかを診断する機能を有する。仮想ロボット104Vが仮想ロボット105Vと干渉するとは、仮想ロボット104V、又は仮想ロボット104Vが保持している仮想ワークW1Vが、仮想ロボット105V、又は仮想ロボット105Vが保持している仮想ワークW1Vと衝突することである。仮想ロボット104Vが仮想ロボット106Vと干渉するとは、仮想ロボット104V、又は仮想ロボット104Vが保持している仮想ワークW1Vが、仮想ロボット106V、又は仮想ロボット106Vが保持している仮想ワークW2Vと衝突することである。仮想ロボット104Vが仮想ロボット105V又は106Vと干渉するかどうかの情報は、PLC500を介して診断部250に送信される。
【0055】
診断部250は、ステップS203で仮想ロボット104Vの所定動作が開始してから、仮想ロボット104Vが仮想ロボット105V及び106Vと干渉したかどうかを判断する(S204)。
【0056】
診断部250は、仮想ロボット104Vが仮想ロボット105V又は106Vと干渉した場合(S204:YES)、診断結果として、インターロック処理の修正が必要であることを示す情報を、管理部450に出力する(S208)。これにより、診断部250は、診断処理251を終了する。仮想ロボット104Vが仮想ロボット105V又は106Vと干渉した場合、干渉した箇所でシミュレーションを中断してもよいし、シミュレーションを継続してもよい。仮想ロボット104Vは、仮想動作中に仮想ロボット105V又は106Vと干渉しても、モデル同士が重なるだけであるので、その仮想動作を継続することができる。管理部450は、診断部250から取得した情報を表示装置421に表示させることで、作業者に、ラダープログラム800Aにおいてインターロック処理の修正が必要であることを通知する。この場合、インターロック処理における接点M102をONする条件が不足している状況であり、実際に直交ロボット104を動作すると干渉が発生する可能性がある。よって、管理部450は、作業者に、ラダープログラム800Aにおいてインターロック処理の条件が不足していることを通知する。これにより、作業者は、ラダープログラム800Aにおいて、直交ロボット104が動作しても、周囲の構造物、例えば直交ロボット105,106と干渉が発生しないように、インターロックである接点M102がONする条件を修正することができる。
【0057】
診断部250は、仮想ロボット104Vが仮想ロボット105V又は106Vと干渉しない場合(S204:NO)、PLC500において動作完了信号がONしたかどうかを判断する(S205)。即ち、診断部250は、動作完了信号がPLC500においてONされたかどうかで、仮想ロボット104Vの所定動作が完了したかどうかを判断する。ここで、ステップS205において動作完了信号がONしているということは、仮想ロボット104Vが所定動作を開始してから完了するまでの間に、仮想ロボット104Vが仮想ロボット105V及び106Vに干渉しなかったことを意味する。
【0058】
診断部250は、動作完了信号がONしていれば(S205:YES)診断結果として、インターロック処理の修正が不要であることを示す情報を管理部450に出力する(S206)。これにより、診断部250は、診断処理251を終了する。管理部450は、診断部250から取得した情報を表示装置421に表示させることで、作業者に、ラダープログラム800Aにおけるインターロック処理の修正が不要であることを通知する。
【0059】
動作指令152をONしたにも関わらず、動作完了信号がOFFした状態が続いてタイムアウトした場合には、仮想ロボット104Vの動作が完了し得ない、即ちラダープログラム800Aに不備が有る。このため、動作完了信号がOFFした状態が続いてタイムアウトした場合には(S205:NO)、診断部250は、診断結果として、ラダープログラム800Aの修正が必要であることを示す情報を管理部450に出力する(S207)。これにより、診断部250は、診断処理251を終了する。管理部450は、診断部250から取得した情報を表示装置421に表示させることで、作業者に、ラダープログラム800Aの修正が必要であることを通知する。これにより、ラダープログラム800Aの修正を作業者に促す。
【0060】
以上、診断部250は、シミュレーション部350によるステップS203の処理の実行により、仮想ロボット104Vが所定動作を開始してから仮想ロボット105V,106Vに干渉するかどうかに基づいて、診断範囲801の修正の要否を診断する。
【0061】
ステップS202において接点M102がOFFしている場合(S202:NO)、診断部250は、PLC500に動作指令152を強制的にONするよう指令を送る(S210)。これにより、PLC500は、ラダープログラム800Aにおけるインターロック処理を無視して、動作指令152を強制的にONする。これにより、シミュレーション部350は、インターロック処理に関わらず、動作指令152に従い、仮想ロボット104Vの所定動作を開始させる(S211)。このステップS211の処理が第1処理である。つまり、シミュレーション部350は、PLC500において診断部250から入力信号が入力された場合に、所定条件が成立していない、即ち接点M102がOFFであれば、仮想ロボット104Vに所定動作を強制的に開始させる。
【0062】
診断部250は、以下のステップS212~S216において、ステップS211の処理の実行結果に基づき、ラダープログラム800Aの診断範囲801を診断する。
【0063】
診断部250は、ステップS211で仮想ロボット104Vの所定動作が開始してから、仮想ロボット104Vが仮想ロボット105V及び106Vと干渉したかどうかを判断する(S212)。
【0064】
診断部250は、仮想ロボット104Vが仮想ロボット105V又は106Vと干渉した場合(S212:YES)、診断結果として、インターロック処理の修正が不要であることを示す情報を、管理部450に出力する(S216)。これにより、診断部250は、診断処理251を終了する。仮想ロボット104Vが仮想ロボット105V又は106Vと干渉した場合、干渉した箇所でシミュレーションを中断してもよいし、シミュレーションを継続してもよい。仮想ロボット104Vは、仮想動作中に仮想ロボット105V又は106Vと干渉しても、モデル同士が重なるだけであるので、その仮想動作を継続することができる。管理部450は、診断部250から取得した情報を表示装置421に表示させることで、作業者に、ラダープログラム800Aにおいてインターロック処理の修正が不要であることを通知する。即ち、接点M102がOFFしているのを無視し仮想ロボット104Vを強制的に動作させて他の仮想物と干渉するのであれば、ラダープログラム800Aにおけるインターロック処理が正しく機能することを意味している。この場合、インターロック処理は修正する必要がない。
【0065】
診断部250は、仮想ロボット104Vが仮想ロボット105V又は106Vと干渉しない場合(S212:NO)、PLC500において動作完了信号がONしたかどうかを判断する(S213)。即ち、診断部250は、動作完了信号がPLC500においてONされたかどうかで、仮想ロボット104Vの所定動作が完了したかどうかを判断する。ここで、ステップS213において動作完了信号がONしているということは、仮想ロボット104Vが所定動作を開始してから完了するまでの間に、仮想ロボット104Vが仮想ロボット105V及び106Vに干渉しなかったことを意味する。
【0066】
診断部250は、動作完了信号がONしていれば(S213:YES)、診断結果として、インターロック処理の修正が必要であることを示す情報を管理部450に出力する(S214)。これにより、診断部250は、診断処理251を終了する。この場合、インターロック処理における接点M102をONする条件が過剰である状況であり、実際に直交ロボット104を動作させても干渉が発生しないにも関わらず、直交ロボット104を過剰に待機させておくことになる。よって、管理部450は、作業者に、ラダープログラム800Aにおいてインターロック処理の条件が過剰であることを通知する。作業者は、ラダープログラム800Aにおけるインターロック処理の条件が過剰であることがわかるため、当該インターロック処理を修正することができる。これにより、ラダープログラム800に基づいて動作する直交ロボット104において過剰な待機時間が削減されるので、直交ロボット104の動作効率を向上させることができ、もってワークW3の生産性を向上させることができる。
【0067】
動作指令152をONしたにも関わらず、動作完了信号がOFFした状態が続いてタイムアウトした場合には、仮想ロボット104Vの動作が完了し得ない、即ちラダープログラム800Aに不備が有る。このため、動作完了信号がOFFした状態が続いてタイムアウトした場合には(S213:NO)、診断部250は、診断結果として、ラダープログラム800Aの修正が必要であることを示す情報を管理部450に出力する(S215)。これにより、診断部250は、診断処理251を終了する。管理部450は、診断部250から取得した情報を表示装置421に表示させることで、作業者に、ラダープログラム800Aの修正が必要であることを通知する。これにより、ラダープログラム800Aの修正を作業者に促す。
【0068】
以上、診断部250は、シミュレーション部350によるステップS211の処理の実行により、仮想ロボット104Vが所定動作を開始してから仮想ロボット105V,106Vに干渉するかどうかに基づいて、診断範囲801の修正の要否を診断する。これによりインターロック処理の不足だけでなく、インターロック処理が過剰に設定されている場合も判別でき、適切な数のインターロック処理を設定できる。よって、実際の自動機においてインターロック処理が過剰に設定されていることで、自動機が不必要に停止することを低減することができる。ゆえに自動機の動作効率を向上させることができる。
【0069】
本発明は、以上説明した実施形態に限定されるものではなく、本発明の技術的思想内で多くの変形が可能である。また、実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、実施形態に記載されたものに限定されない。
【0070】
上述の実施形態では、一連のラダープログラム800Aにおいて選択される診断範囲801が1つである場合について説明したが、これに限定するものではなく、一連のラダープログラム800Aにおいて選択される診断範囲801が複数あってもよい。また、ラダープログラム800Aに複数の自動機それぞれに対するインターロック処理が含まれていてもよく、この場合、複数のインターロック処理のそれぞれについて診断するようにしてもよい。
【0071】
また、診断部250が、手動スイッチに対応する接点M101をONさせる入力信号をPLC500に入力する場合について説明したが、これに限定するものではない。PLC500において、自動スイッチに対応する接点M100をONさせる入力信号を、条件に応じて自身で生成するようにしてもよい。
【0072】
また、上述の実施形態では、自動機が直交ロボットである場合について説明したがこれに限定するものではない。自動機が、直交ロボット以外のロボット、例えば垂直多関節ロボット、水平多関節ロボット、又はパラレルリンクロボットであってもよい。また自動機が、ロボット以外の装置、例えばシリンダ、サーボ機構、NC加工機等、移動動作を伴う装置であってもよい。また、制御装置に設けられる記憶装置の情報に基づき、伸縮、屈伸、上下移動、左右移動もしくは旋回の動作またはこれらの複合動作を自動的に行うことができる機械に適用可能である。
【0073】
また、上述の実施形態で説明した情報処理装置200、シミュレーション装置300、管理装置400、及びPLC500の機能を、1つ又は複数のコンピュータで実現してもよい。例えば、診断部、シミュレーション部及び管理部の機能を、3つのコンピュータで実現する場合に限らず、1つまたは2つのコンピュータで実現してもよいし、4つ以上のコンピュータで実現してもよい。また、PLC500の機能を、診断部、シミュレーション部又は管理部の機能を担うコンピュータで実現してもよい。
【0074】
具体例を挙げて説明すると、シミュレーション装置300のCPU301に、上述の実施形態で説明した診断部250及びシミュレーション部350の機能を実現させてもよい。更に、シミュレーション装置300のCPU301に、上述の実施形態で説明した管理部450の機能を実現させてもよい。
【0075】
また、別の具体例を挙げて説明すると、情報処理装置200のCPU201に、上述の実施形態で説明した診断部250及びシミュレーション部350の機能を実現させてもよい。更に、情報処理装置200のCPU201に、上述の実施形態で説明した管理部450の機能を実現させてもよい。
【0076】
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0077】
104…直交ロボット(自動機)、104V…仮想ロボット(仮想機)、105V…仮想ロボット(仮想物)、106V…仮想ロボット(仮想物)、250…診断部、350…シミュレーション部、450…管理部、800A…ラダープログラム、801…診断範囲(動作プログラム)、1000…生産システム(システム)
図1
図2
図3
図4
図5
図6