JP7674506B2 - 補助ファイルを生成するシミュレーション装置および制御システム - Google Patents

補助ファイルを生成するシミュレーション装置および制御システム Download PDF

Info

Publication number
JP7674506B2
JP7674506B2 JP2023555995A JP2023555995A JP7674506B2 JP 7674506 B2 JP7674506 B2 JP 7674506B2 JP 2023555995 A JP2023555995 A JP 2023555995A JP 2023555995 A JP2023555995 A JP 2023555995A JP 7674506 B2 JP7674506 B2 JP 7674506B2
Authority
JP
Japan
Prior art keywords
robot
program
file
simulation
plc
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.)
Active
Application number
JP2023555995A
Other languages
English (en)
Other versions
JPWO2023073883A1 (ja
Inventor
友樹 加藤
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.)
Fanuc Corp
Original Assignee
Fanuc Corp
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 Fanuc Corp filed Critical Fanuc Corp
Publication of JPWO2023073883A1 publication Critical patent/JPWO2023073883A1/ja
Application granted granted Critical
Publication of JP7674506B2 publication Critical patent/JP7674506B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1658Programme controls characterised by programming, planning systems for manipulators characterised by programming language
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1671Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Software Systems (AREA)
  • Manipulator (AREA)
  • Numerical Control (AREA)

Description

本発明は、補助ファイルを生成するシミュレーション装置および制御システムに関する。
工作機械およびロボット装置等の機械においては、機械に含まれるモータなどの駆動機を制御するためにスイッチおよびセンサ等が配置される。複数の駆動機を動作させる順序を設定するための装置として、プログラマブルロジックコントローラ(PLC)が知られている(例えば、特許第6914452号公報)。PLCは、駆動機の駆動、信号の発信、およびセンサからの信号の受信等の動作の順序を制御することができる。プログラマブルロジックコントローラは、例えば、ラダー言語にて記載されたラダー図等と称されるPLCプログラムに基づいて駆動する。
一方で、ロボットおよび作業ツールを備えるロボット装置は、ロボット言語にて記載されたロボットプログラムにて制御される。近年においては、PLCプログラムにてロボット装置を制御する機能が知られている。例えば、PLCの開発の効率化を目的としたPLCopen(登録商標)の規格では、PLCプログラムにてロボットの位置および姿勢を制御することが知られている。この機能により、ロボット言語に不慣れな作業者であっても、PLCプログラムの機能を使用することでロボットを動作させることができる。
特許第6914452号公報
ところで、ロボット装置を駆動するためのロボットプログラムを生成する場合に、ロボットの実機を駆動する作業では、最適な動作経路を定めることが難しい場合がある。ロボットの動作経路を生成する場合に、ロボットの動作を模擬するシミュレーション装置が用いられることが知られている。また、シミュレーション装置は、シミュレーションにて生成されたロボットの動作経路に基づいてロボットプログラムを生成することができる。ところが、従来の技術のシミュレーション装置は、ロボット言語にて記載されたロボットプログラムを出力していた。このために、PLCプログラムを熟知した作業者であっても、ロボット言語にて記載されるロボットプログラムを習得する必要が有った。
本開示の第1の態様は、ロボットの動作条件に基づいて、ロボットの動作のシミュレーションを実施するシミュレーション実行部を備えるシミュレーション装置である。シミュレーション装置は、シミュレーション実行部によるシミュレーションの結果に基づいて、ロボットの動作情報を取得する動作情報取得部を備える。シミュレーション装置は、ロボットの動作情報に基づいて、ロボットを制御可能なプログラマブルロジックコントローラが読み込んで実行することができる言語で記載されたプログラムを生成するための複数の補助ファイルを生成する補助ファイル生成部を備える。
本開示の第2の態様は、前述のシミュレーション装置と、プログラマブルロジックコントローラとを備える制御システムである。プログラマブルロジックコントローラは、複数の補助ファイルに基づいて、プログラマブルロジックコントローラを駆動する言語にて記載されたプログラムを生成するプログラム生成部を備える。
本開示の態様によれば、PLCプログラムを生成するための複数の補助ファイルを生成するシミュレーション装置およびシミュレーション装置を備える制御システムを提供することができる。
実施の形態におけるロボット装置の概略図である。 実施の形態における制御システムのブロック図である。 実施の形態におけるシミュレーション装置のブロック図である。 シミュレーション装置の表示部に表示される画像である。 シミュレーション装置にて生成されるプログラムファイルである。 シミュレーション装置にて生成される変数ファイルである。 シミュレーション装置にて生成される第1のFBファイルである。 シミュレーション装置にて生成される第2のFBファイルである。 シミュレーション装置にて生成される第3のFBファイルである。 実施の形態におけるPLCのブロック図である。 PLCにて生成されるPLCプログラムである。 実施の形態におけるロボット制御装置のブロック図である。
図1から図12を参照して、実施の形態におけるシミュレーション装置およびシミュレーション装置を備える制御システムについて説明する。本実施の形態のシミュレーション装置は、プログラマブルロジックコントローラ(以下、「PLC」と称する)を動作させるPLCプログラムを生成するための複数の補助ファイルを生成する。制御システムは、複数の補助ファイルを用いてPLCプログラムを生成する。
図1は、本実施の形態におけるシミュレーション装置にてシミュレーションを実施するロボット装置の概略図である。本実施の形態のロボット装置5は、ワーク91を搬送する作業を実施する。ロボット装置5は、作業ツールとしてのハンド2と、ハンド2を移動するロボット1とを備える。ロボット装置5は、ロボット1およびハンド2を制御するロボット制御装置40を備える。
本実施の形態のロボット1は、複数の関節部を含む多関節ロボットである。本実施の形態のロボット1は、ベース部14と、ベース部14に対して回転する旋回ベース13とを含む。ロボット1は、上部アーム11および下部アーム12を含む。下部アーム12は、旋回ベース13に回動可能に支持されている。上部アーム11は、下部アーム12に回動可能に支持されている。ロボット1は、上部アーム11に回動可能に支持されている手首部15を含む。手首部15のフランジ16には、ハンド2が固定されている。更に、上部アーム11およびフランジ16は、所定の駆動軸の周りに回転する。
本実施の形態のロボットは、6個の駆動軸を有するが、この形態に限られない。任意の機構にて位置および姿勢を変更するロボットを採用することができる。また、本実施の形態の作業ツールは、2つの爪部を有するハンドであるが、この形態に限れられない。作業ツールは、ロボット装置が行う作業に応じた任意の装置を採用することができる。
本実施の形態のロボット装置5には、ロボット座標系81が設定されている。ロボット座標系81はワールド座標系とも称される。ロボット座標系81は、原点の位置が固定され、更に、座標軸の向きが固定されている座標系である。ロボット1が駆動してもロボット座標系81の原点の位置および向きは変化しない。
また、ロボット装置5には、作業ツールの任意の位置に設定された原点を有するツール座標系82が設定されている。本実施の形態では、ツール座標系82の原点は、ツール先端点に設定されている。ツール座標系は、作業ツールと共に位置および姿勢が変化する。ロボット1の位置は、ロボット座標系81におけるツール座標系82の原点の位置に対応する。また、ロボット1の姿勢は、ロボット座標系81に対するツール座標系82の向きが対応する。
図2に、本実施の形態のロボットを制御する制御システムの概略図を示す。本実施の形態の制御システム9は、ロボット装置5の動作のシミュレーションを実施するシミュレーション装置20と、PLC30と、ロボット装置5のロボット制御装置40とを備える。
本実施の形態においては、ロボットの様々な動作のうち、ツール先端点(ロボットの位置に相当する点)が3個の教示点を通る動作およびプログラムを例に取り上げて説明する。その他のロボットの様々な動作についても、本実施の形態と同様の制御によりPLCプログラムを作成してロボットを制御することができる。
シミュレーション装置20は、ロボット装置5の動作のシミュレーションを実施する。図2においては、シミュレーション装置20の表示部に表示される画像65が示されている。画像65には、シミュレーション装置20により生成されたロボット1の動作経路66が示されている。シミュレーション装置20は、複数の教示点83a,83b,83cの位置等の動作条件に基づいてロボット1の動作経路66を生成する。
本実施の形態のシミュレーション装置20は、ロボット1の動作経路66を含むシミュレーションの結果に基づいて、補助ファイル群70を生成する。補助ファイル群70は、PLCプログラム76を生成するための複数の補助ファイルを含む。複数の補助ファイルは、ロボット1の動作を示す関数が記載されたプログラムファイル71と、PLCプログラム76において使用される変数の定義が記載された変数ファイル72とを含む。また、複数の補助ファイルは、プログラムファイル71に記載されたロボットの動作を示す関数に対応するロボットの動作の内容(動作指令の定義)が記載されたファンクションブロックファイル73~75を含む。本実施の形態のでは、ファンクションブロックファイルをFBファイルと称する。
PLC30は、補助ファイル群70を取得する。PLC30は、補助ファイルに基づいて、PLCを駆動する言語にて記載されたプログラムとしてのPLCプログラム76を生成する。PLCプログラムは、PLCが読み込んで実行可能な言語にて記載されている。本実施の形態のPLCプログラム76は、PLC30が読み込み可能な言語のうちST(Structured Text)言語にて記載されている。
本実施の形態のPLC30は、PLCプログラム76に記載された1個の指令文に対応する関数FRCごとにロボット装置5を駆動する制御を行うことができる。PLC30は、FBファイル73~75と共に、PLCプログラム76を実行してPLCプログラム76に含まれる指令文に係る制御信号を、ロボット制御装置40に送信する。ロボット制御装置40は、PLC30からの制御信号に基づいて、ロボット装置5を駆動するためにロボット言語にて記載された指令文を生成する。ロボット制御装置40は、ロボット言語の指令文に基づいてロボット装置を駆動することができる。
図3に、本実施の形態におけるシミュレーション装置のブロック図を示す。本実施の形態のシミュレーション装置20は、ロボット装置5の動作を模擬するように形成されたオフラインシミュレーション装置である。本実施の形態のシミュレーション装置20は、ロボット1の3次元モデル、ハンド2の3次元モデル、およびワーク91の3次元モデルを同一の仮想空間に配置して、ロボット装置5の動作のシミュレーションを実施する。
シミュレーション装置20は、プロセッサとしてのCPU(Central Processing Unit)を含む演算処理装置(コンピュータ)を備える。本実施の形態の演算処理装置は、パーソナルコンピュータにて構成されている。演算処理装置は、CPUにバスを介して接続されたRAM(Random Access Memory)およびROM(Read Only Memory)等を有する。
シミュレーション装置20は、ロボット装置5のシミュレーションに関する任意の情報を記憶する記憶部23を備える。記憶部23は、情報の記憶が可能で非一時的な記憶媒体にて構成されることができる。例えば、記憶部23は、揮発性メモリ、不揮発性メモリ、磁気記憶媒体、または光記憶媒体等の記憶媒体にて構成することができる。ロボット装置のシミュレーションを実施するためのプログラムは記憶部23に記憶される。
シミュレーション装置20には、ロボット1、ハンド2、およびワーク91の3次元形状データ61が入力される。3次元形状データ61には、ロボット装置5のシミュレーションを行うためのロボット、作業ツール、周辺機器、およびワークのデータが含まれる。3次元形状データ61としては、例えばCAD(Computer Aided Design)装置から出力されるデータを用いることができる。3次元形状データ61は、記憶部23に記憶される。
シミュレーション装置20は、ロボット装置5のシミュレーションに関する情報を入力する入力部21を含む。入力部21は、キーボード、マウス、およびダイヤルなどの操作部材により構成されている。シミュレーション装置20は、ロボット装置5のシミュレーションに関する情報を表示する表示部22を含む。表示部22は、ロボット装置5のモデルの画像およびワーク91のモデルの画像を表示する。表示部22は、液晶表示パネル等の表示パネルにて構成されている。なお、シミュレーション装置がタッチパネル方式の表示パネルを備える場合に、表示パネルは入力部および表示部として機能する。
シミュレーション装置20は、ロボット装置5のシミュレーションのために演算処理を行う処理部24を含む。処理部24は、3次元形状データ61に基づいて、部材のモデルを生成するモデル生成部25を含む。例えば、モデル生成部25は、ロボット装置のモデルであるロボット装置モデルおよびワークのモデルであるワークモデルを生成する。
処理部24は、ロボット装置5の動作のシミュレーションを実施するシミュレーション実行部26を含む。シミュレーション実行部26は、作業者による入力部21の操作に応じて、ロボット装置モデルを画面上で動かす機能を有する。または、シミュレーション実行部26は、予め定められたロボットの動作条件に基づいて、ロボットの動作のシミュレーションを実施する。
例えば、シミュレーション実行部26は、予め生成された教示点に基づいて、ロボット装置5の動作のシミュレーションを実施する。作業者は、入力部21の操作により、教示点の位置、教示点におけるロボットの姿勢、直線動作または曲線動作、およびロボットの駆動速度等を設定する。また、作業者は、ツール先端点が教示点を通るか、またはツール先端点が教示点の近傍を通る様に滑らかに駆動するかについて設定することができる。シミュレーション実行部26は、ロボットモデルのツール先端点が作業者により指定された移動方法により移動するようにロボットモデルを駆動するシミュレーションを実施する。
処理部24は、ロボット装置5の動作のシミュレーションに基づいて、ロボット1の動作情報を取得する動作情報取得部28を含む。動作情報取得部28は、ロボット1の動作情報として、ロボットが駆動するときの動作経路、およびロボットの動作速度等の動作条件を取得することができる。
処理部24は、動作情報取得部28により取得されるロボット1の動作情報に基づいて、補助ファイル群70を生成する補助ファイル生成部29を含む。補助ファイル群70は、PLCを駆動するPLCプログラムを生成するための複数の補助ファイルを含む。それぞれの補助ファイルは、PLCが読み込み可能な言語および規則にて形成されている。本実施の形態での補助ファイル生成部29は、プログラムファイル71、変数ファイル72、およびFBファイル73~75を生成する。
処理部24は、表示部22に表示する画像を制御する表示制御部27を含む。表示制御部27は、作業者による入力部21の操作に応じて、ロボットモデルの位置および姿勢を変化させる。また、表示制御部27は、ロボット装置が駆動した時のロボットの動作経路を表示部22に表示することができる。
処理部24は、シミュレーションのプログラム(ソフトウエア)に基づいて駆動するプロセッサに相当する。シミュレーションのプログラムは予め作成されて、記憶部23に記憶される。プロセッサがシミュレーションのプログラムに定められた制御を実施することにより、処理部24として機能する。また、モデル生成部25、シミュレーション実行部26、表示制御部27、動作情報取得部28、および補助ファイル生成部29は、シミュレーションのプログラムに基づいて駆動するプロセッサに相当する。プロセッサがプログラムに定められた制御を実施することにより、それぞれのユニットとして機能する。
図4に、シミュレーション装置の表示部に表示される画像の例を示す。画像65には、ロボット装置5のシミュレーションを実施した時の状態が示されている。図3および図4を参照して、モデル生成部25は、ロボット装置モデル5Mを生成する。モデル生成部25は、3次元形状データ61に基づいてロボットモデル1Mとハンドモデル2Mを生成する。モデル生成部25は、3次元形状データ61に基づいて、ワークモデル91Mを生成する。モデル生成部25は、3次元形状データ61に基づいて、ロボットの周りに配置されている周辺機器のモデルを表示しても構わない。
表示制御部27は、ロボットモデル1Mの画像、ハンドモデル2Mの画像、およびワークモデル91Mの画像を表示する。本実施の形態では、表示制御部27は、3次元の画像を表示しているが、2次元の画像を表示しても構わない。モデル生成部25は、ロボット装置モデル5Mおよびワークモデル91Mを配置する仮想空間に、実際のロボット装置5に設定されたロボット座標系81を設定することができる。実際のロボット装置5と同様に、ロボット座標系81を用いて、シミュレーションにおいてロボットの位置および姿勢を指定することができる。
シミュレーション実行部26は、入力部21の操作に応じて、画像65におけるロボットモデル1Mの位置および姿勢を変化させる。作業者は、例えば、教示点83a,83b,83cを指定する。ここでは、シミュレーション実行部26は、作業者の動作条件の入力により、ツール先端点が教示点83a,83b,83cを通る様にロボット1のシミュレーションを実施する。シミュレーション実行部26は、シミュレーションの結果に基づいて、ツール先端点が通った軌跡である動作経路66を算出することができる。表示制御部27は、ロボット装置モデル5Mおよびワークモデル91Mの画像に重ねて動作経路66を表示することができる。
作業者は、画面においてロボット装置モデル5Mを動かしてロボット装置の動作の状態を確認する。そして、作業者は、シミュレーションの結果が好ましくない場合には、教示点の位置および教示点におけるロボットの姿勢等のロボットの動作条件を修正することができる。ロボット装置モデル5Mが所望の状態にて駆動することが確認できた時に、作業者は、ロボット装置の動作を確定することができる。動作情報取得部28は、ロボットの動作経路を含むロボットの動作情報を取得することができる。動作情報取得部28は、ロボットが駆動した時の教示点の位置、教示点におけるロボットの姿勢、および動作経路等をロボット座標系81の座標値にて取得することができる。動作情報取得部28は、ロボットの動作速度等の動作条件を取得することができる。
処理部24の補助ファイル生成部29は、動作情報取得部28により取得されたロボット装置5の動作情報に基づいて補助ファイル群70を生成する。次に、補助ファイル群70に含まれるプログラムファイル71、変数ファイル72、およびFBファイル73~75について説明する。本実施の形態におけるプログラムファイル71、変数ファイル72、およびFBファイル73~75のそれぞれのファイルは、xmlファイルの形式にて構成されている。これらの補助ファイルは、例えば、PLCopenの規格などにて定められたxmlファイルの形式(xmlフォーマット)にて生成されることができる。
例えば、補助ファイルの始まりの部分と終わりの部分とに記載されるxmlファイルの定型文(テンプレート)は、PLCopenの規格などにて定められているテンプレートを採用することができる。このテンプレートには、ロボットをPLCで動かすための言語であることの宣言などが含まれている。
図5に、補助ファイル生成部にて生成されるプログラムファイルの例を示す。本実施の形態のプログラムファイルのファイル名は、「Main.xml」である。プログラムファイル71には、ロボット装置5の動作の指令文が関数にて記載されている。ここでは、第1の教示点83aを記号P[1]にて示し、第2の教示点83bを記号P[2]にて示し、第3の教示点83cを記号P[3]にて示している。
プログラムファイル71では、PLCプログラムにおける主たる処理が記載されている。プログラムファイル71は、複数の領域71a~71eから構成されている。プログラムファイル71の始めの領域71aには、xmlファイルの定型文(テンプレート)が記載されている。また、プログラムファイル71の終わりの領域71eには、xmlファイルの定型文が記載されている。領域71a,71eのテンプレート以外の記載がPLCプログラムに採用される。
領域71b~71dには、PLCプログラムにて指令文となる関数が記載されている。それぞれのロボットの動作に応じて、FRCから始まる関数が記載されている。領域71bには、ロボット装置が起動してツール先端点が第1の教示点83aまで駆動する動作が記載されている。領域71bの1行目には、関数FRC_MoveLinearAbsolute01が記載されている。この関数の名称は、引用するファンクションブロックのファイル名に対応している。
関数FRC_MoveLinearAbsolute01における動作では、ロボットの位置となるツール先端点が変数posにて示される位置P[1]まで移動する。ツール先端点が変数velocityにて示される速度1200mm/secにて直線的に移動する。ここでは、位置P[1]を通るように位置決めされる。変数Executeは、この関数の開始時期を示している。ここでは、ロボットの駆動の開始を示している。その後に、変数busy、変数Active、変数Doneなどの実行状態を示す変数が定義されている。
領域71cには、領域71bと同様に、ロボットを駆動する関数が記載されている。領域71cには、ツール先端点が第1の教示点83aから第2の教示点83bまで駆動する動作が記載されている。領域71cの1行目には、関数FRC_MoveAxesAbsolute01が記載されている。この関数では、ツール先端点が、位置P[2]まで最高速度の80%の速度にて、各軸の駆動により(曲線状の移動より)移動することが示されている。変数Executeの記載により、この関数は、領域71bの関数FRC_MoveLinearAbsolute01の動作の終了後に実施されることが示されている。
領域71dにおいても、領域71cと同様に、ロボットを駆動する関数が記載されている。関数FRC_MoveAxesAbsolute02では、領域71cの関数FRC_MoveAxesAbsolute01によるロボットの動作の終了後に、ツール先端点が位置P[3]まで移動することが示されている。ロボットは、最高速度に対して100%の速度にて各軸の駆動によりツール先端点が移動することが示されている。
図6に、補助ファイル生成部にて生成される変数ファイルの例を示す。変数ファイル72は、PLCプログラムにて使用されるグローバル変数および構造体の定義などが定められている。ここでの変数ファイル72のファイル名は「Global.xml」である。変数ファイル72は、複数の領域72a~72dにて構成されている。領域72a,72dは、xmlファイルの定型文(テンプレート)が記載されている。
領域72bの変数VARに示される領域では、グローバル変数が定義されている。ここでは、第1の教示点を示す位置P[1]におけるロボットの位置および姿勢がロボット座標系81の各座標軸の座標値にて定められている。また、位置P[1]に続いて、第2の教示点83bの位置P[2]および第3の教示点83cの位置P[3]のロボットの位置および姿勢が定められている。領域72cの変数STRUCTにて指定される領域では、構造体の定義が記載されている。ここでは、構造体の変数は実数型の値であり、0から8までの配列にて構成されることが定められている。このような変数VARおよび変数STRUCTは、規格などによって予め定められた変数を使用することが好ましい。また、変数ファイルにて定義される変数は、上記の形態に限られず、ロボットを駆動するための任意の変数を採用することができる。
図7に、補助ファイル生成部にて生成される第1のFBファイルを示す。第1のFBファイル73は、第1の教示点までロボットの位置を移動する為に記載された関数にて引用される。第1のFBファイル73は、図5に示すプログラムファイル71の領域71bに記載された関数FRC_MoveLinearAbsolute01が実行される時に引用される。第1のFBファイル73のファイル名は、プログラムファイル71に記載の関数の名称に対応して「FRC_MoveLinearAbsolute01.xml」に定められている。FBファイルには、PLCプログラムにて使用される関数におけるロボットの動作およびファンクションブロックの処理が定義されている。
第1のFBファイル73は、複数の領域73a~73eを有する。ファイルの始めの部分である領域73aとファイルの終わりの部分である領域73eには、xmlファイルの定型文が記載されている。
領域73bには、構造体の変数にて処理が記載されている。領域73bの1行目の変数plcrobot.input.CMD_IDは、ロボットの動作方法を示す。この変数が1の場合に、ロボットが直線的に駆動し、動作が位置決めであることが指定される。この変数が2の場合に、ロボットは各軸動作にて駆動して、動作が位置決めであることが指定される。なお、ロボットの動作が教示点を通る位置決めの動作であるか、または教示点の近くを通れば良い滑らかな動作であるかは、別の変数にしても構わない。
変数plcrobot.input.VAL1により、プログラムファイル71の領域71bの関数FRC_MoveLinearAbsolute01にて指定された動作速度(1200mm/sec)が引用される。変数plcrobot.input.POSにより、プログラムファイル71の上記の関数にて定められた位置P[1]が引用されて目標位置が指定される。
領域73cには、ファンクションブロックへの入力変数が示されている。変数VAR_INPUTから変数END_VARまでの領域に入力変数の定義が定められている。ここでの例では、制御の開始を示す変数Executeは、ブール型であり初期値が0に設定されている。また、速度の変数Velocityは、符号なしの倍精度整数型であり初期値が0に設定されている。位置の変数Posとしては、変数POS_Tが採用されている。
領域73dには、ファンクションブロックの出力変数が定義されている。変数VAR_OUTPUTから変数END_VARまでの領域に出力変数の定義が定められている。変数Busyは、動作中であることを示し、ブール型の変数である。変数Activeは、制御中であることを示す。変数Doneは、動作が終了したことを示す。変数CommandAbortedは、動作が途中で中断されたことを示す。変数Errorは、異常が生じたことを示す。そして、変数ErrorIDは、異常の内容に対応するコードを示す。それぞれの変数の初期値は0に設定されている。
図8に、補助ファイル生成部にて生成される第2のFBファイルを示す。第2のFBファイル74は、図5に示すプログラムファイル71の領域71cに記載されている関数FRC_MoveAxesAbsolute01が実行される時に引用される。第2のFBファイル74は、第1のFBファイル73と同様の構造を有する。領域74a,74eには、xmlファイルの定型文が記載されている。領域74bには、構造体の変数が定められている。領域74cには入力変数が定められ、領域74dには出力変数が定められている。
図9に、補助ファイル生成部にて生成される第3のFBファイルを示す。第3のFBファイル75は、図5に示すプログラムファイル71の領域71dに記載されている関数FRC_MoveAxesAbsolute02が実行される時に引用される。第3のFBファイル75は、第1のFBファイル73と同様の構造を有する。領域75a,75eには、xmlファイルの定型文が記載されている。領域75bには、構造体の変数が定められている。領域75cには入力変数が定められ、領域75dには出力変数が定められている。
このように、FBファイルには、プログラムファイルに記載されている関数に対応する機能が示されている。FBファイルの中には、具体的な制御の実施する指令が記載されている。なお、FBファイルは、作業者が内容を視認できる形式にて生成された補助ファイルでなくても構わない。すなわち、FBファイルは、作業者が読めない形式にて生成されていても構わない。
図3を参照して、補助ファイル生成部29は、シミュレーションの実行結果に基づいて、それぞれの補助ファイルを生成することができる。補助ファイル生成部29は、PLCにて読み込ことができる形式にて補助ファイルを生成する。本実施の形態においては、それぞれの補助ファイルは、ST言語にて記載されている。
PLCプログラムを生成する言語は、ST言語に限られない。補助ファイル生成部は、PLCが読み込むことできる任意の言語を用いることができる。例えば、プログラミング言語として、LD(Ladder Diagram)言語を用いたPLCプログラムを生成することができる。プログラミング言語としては、LD言語の他に、IL(Instruction List)言語、SFC(Sequential Function Chart)言語、またはFBD(Function Block Diagram)言語を採用することができる。または、これらの複数の言語を組み合わせて補助ファイルを生成しても構わない。
補助ファイルに含まれるそれぞれの関数および変数は、予め定めておくことができる。例えば、補助ファイルの関数および変数は、PLCopenの規格等で定められている関数および変数を使用することができる。補助ファイル生成部29は、予め作成された補助ファイルのテンプレートに変数の値を入力しても構わない。例えば、図6に示す変数ファイル72において、領域72bの変数のテンプレートを生成しておくことができる。そして、補助ファイル生成部29は、シミュレーションの結果に基づいて変数の値を入力することにより変数ファイルを生成しても構わない。
図10に、本実施の形態におけるPLCのブロック図を示す。PLC30は、プロセッサとしてのCPUを含む演算処理装置(コンピュータ)にて構成されている。PLC30は、シミュレーション装置20と同様に、入力部31、表示部32、および記憶部33を有する。入力部31は、キーボード、マウス、およびダイヤルなどの操作部材により構成されている。表示部32は、液晶表示パネル等の表示パネルにて構成されている。記憶部33は、情報の記憶が可能で非一時的な記憶媒体にて構成されることができる。
PLC30は、処理部34を備える。処理部34は、補助ファイルに基づいてPLCプログラム76を生成するPLCプログラム生成部35を含む。処理部34は、PLCプログラム76に基づいて、ロボット制御装置40にロボット装置5の駆動に関する制御信号39を送出する制御信号送出部36を含む。処理部34、PLCプログラム生成部35、および制御信号送出部36は、PLCを駆動するプログラム(ソフトウエア)に従って駆動するプロセッサに相当する。
図11に、本実施の形態におけるPLCプログラムを示す。PLCプログラム生成部35は、補助ファイル群70を読み込んでPLCプログラム76を生成する。PLCプログラム76は、例えば、領域76aおよび領域76bを有する。領域76aには、変数ファイル72に記載されていた変数が記載されている(図6を参照)。そして、領域76aに続く領域76bには、プログラムファイル71に記載されていた関数が記載されている(図5を参照)。このように、PLCプログラム生成部35は、プログラムファイル71と変数ファイル72とを組み合わせてPLCプログラム76を生成することができる。PLCプログラム76は、PLC30が読み込んで実行することができる任意の形式にて作成される。本実施の形態のPLCプログラム76は、xml形式にて作成されておらず、ST言語にて形成されている。
PLC30は、PLCプログラム生成部35にて生成されたPLCプログラム76およびFBファイル73~75に基づいて駆動する。制御信号送出部36は、PLCプログラム76に記載されている指令文としての関数FRCごとに、ロボット装置5を駆動するための制御信号をロボット制御装置40に送信する。
図12に、本実施の形態におけるロボット装置5のブロック図を示す。図1および図12を参照して、ロボット1は、ロボット1の位置および姿勢を変化させる駆動モータを含むロボット駆動装置17を備える。ロボット装置5は、ハンド2を駆動するハンド駆動装置18を備える。ハンド駆動装置18は、ハンド2の爪部を駆動するシリンダおよび空気ポンプ等を含む。
ロボット制御装置40は、プロセッサとしてのCPUを有する演算処理装置(コンピュータ)を含む。ロボット制御装置40は、ロボット1およびハンド2の動作指令を生成する動作制御部43を含む。動作制御部43は、ロボット1を駆動するための動作指令をロボット駆動部45に送出する。ロボット駆動部45は、ロボット駆動装置17を駆動する電気回路を含む。また、動作制御部43は、ハンド2を駆動する動作指令をハンド駆動部44に送出する。ハンド駆動部44は、ハンド駆動装置18を駆動する電気回路を含む。ロボット制御装置40は、PLC30からの制御信号に基づいて、ロボットプログラムの指令文を生成するロボットプログラム生成部46を備える。ロボットプログラム生成部46は、PLCプログラム76およびFBファイル73~75に関する制御信号39に基づいて、ロボット言語にてロボットプログラム77の指令文を生成する。
動作制御部43およびロボットプログラム生成部46は、ロボット装置を制御するプログラムに従って駆動するプロセッサに相当する。プロセッサがプログラムに定められた制御を実施することにより、動作制御部43およびロボットプログラム生成部46として機能する。
ロボット制御装置40は、ロボット1およびハンド2の制御に関する情報を記憶する記憶部42を含む。記憶部42は、情報の記憶が可能で非一時的な記憶媒体にて構成されることができる。例えば、記憶部42は、揮発性メモリ、不揮発性メモリ、磁気記憶媒体、または光記憶媒体等の記憶媒体にて構成することができる。
図2および図12を参照して、本実施の形態の動作制御部43は、ロボットを動作させるためのロボットプログラム77に記載される指令文に基づいて、ロボット1およびハンド2の動作指令を生成する。ロボットプログラムは、ロボット言語にて記載されている。ここでの例においては、3つの教示点の位置P[1]、位置P[2]、および位置P[3]を通る様に駆動するロボットのロボットプログラムが示されている。
1行目の指令文において、記号Lは、ロボットの位置が直線的に移動する指令を示している。記号P[1]は、教示点の位置および教示点におけるロボットの姿勢を示す。また、ロボットの位置(ツール先端点)の移動速度が1200mm/secであることが示されている。記号FINEは、教示点を通る様にロボットを駆動することを示している。
2行目の指令文および3行目の指令文において、記号Jは、ロボット1の複数の駆動軸の駆動によりロボットの位置が曲線状に移動する指令を示している。また、各駆動軸の最高速度に対して80%または100%の速度にて、各駆動軸を駆動することが示されている。
図10、図11、および図12を参照して、本実施の形態のPLC30の制御信号送出部36は、ロボット1の1個の動作を行うごとに制御信号39をロボット制御装置40に送信する。制御信号送出部36は、PLCプログラム76の領域76bに記載された関数FRCを実行するごとにロボット装置の動作に係る制御信号39を送出する。ロボットプログラム生成部46は、ロボット1の動作を行う制御信号39を受信するごとに、ロボット言語による指令文を生成する。
例えば、PLC30は、ロボット装置5を駆動するためにPLCプログラム76を実行する。FBファイルに定義されている変数plcrobot.input.のデータは、ロボットの動作に関するパラメーターとして使用される。制御信号送出部36は、変数plcrobot.input.に値が入力されると、変数plcrobot.input.のデータを、ロボット制御装置40のロボットプログラム生成部46に送信する。ロボットプログラム生成部46は、変数plcrobot.input.のデータに基づいて、ロボット言語にて生成された指令文を生成する。
図7を参照して、第1の教示点83aまでロボットの位置が移動する動作では、ロボットプログラム生成部46は、変数plcrobot.input.CMD_IDが1である制御信号を取得する。ロボットプログラム生成部46は、ロボットの動作が直線的な動作であり、位置決めの動作であると判別する。また、ロボットプログラム生成部46は、変数plcrobot.input.VAL1に関する制御信号により動作速度を取得し、変数plcrobot.input.POSに関する制御信号により目標位置を取得する。ロボットプログラム生成部46は、これらの変数のデータに基づいて、図2に示すロボットプログラム77の1行目の指令文を生成する。そして、ロボット制御装置40の動作制御部43は、生成された指令文を読み込んでロボット1を制御する。
本実施の形態における制御システム9では、シミュレーション装置20がPLCプログラム76を生成するための補助ファイル群70を出力できる。補助ファイルに含まれるPLCプログラム76にて使用される関数および変数は、ロボット1を動作させる制御の指令を含む。シミュレーション装置20は、PLCプログラム76にて使用される言語にて記載された補助ファイルを出力することができる。
このために、PLC30を使用する作業者は、シミュレーション装置20から出力される補助ファイル群70をPLCプログラム76の形式に変換することなく、PLC30に取り込むことができる。そして、PLC30にてPLCプログラム76を生成して、ロボット装置5を駆動することができる。また、PLC30において、プログラムファイル71およびFBファイル73~75等の補助ファイル、またはPLCプログラム生成部35にて生成されたPLCプログラム76を修正することができる。作業者は、PLC30にて使用される言語を用いてロボット装置5を駆動するプログラムを修正することができる。このように、作業者は、ロボット言語にて記載されたロボットプログラム77を作成する必要がなく、ロボット言語を熟知していなくても、PLCプログラム76にてロボット装置5を操作することができる。
本実施の形態においては、ロボット制御装置40は、PLC30からの制御信号39に基づいて、ロボットプログラム77の指令文を生成するが、この形態に限られない。ロボット制御装置40の動作制御部43は、PLC30からの制御信号39に基づいて、直接的にロボット1を動作させる動作指令を生成しても構わない。すなわち、ロボット制御装置40は、ロボットプログラム77の指令文を生成せずに動作指令を生成しても構わない。
また、本実施の形態では、PLC30にてロボットの1個の動作の指令文を実行する度に、制御信号39をロボット制御装置40に送出しているが、この形態に限られない。ロボット制御装置40のロボットプログラム生成部46は、シミュレーション装置20にて生成されたFBファイル73~75と、PLC30にて生成されたPLCプログラム76とを取得した後に、複数の指令文を含むロボットプログラム77を生成しても構わない。ロボット制御装置40は、取得したPLCプログラム76を記憶部42に記憶する。また、ロボット制御装置40は、シミュレーション装置20にて生成されたFBファイル73~75を予め定められた記憶領域に記憶する。
次に、ロボットプログラム生成部46は、PLCプログラム76およびFBファイル73~75に基づいて、ロボットプログラム77を生成しても構わない。ロボットプログラム生成部46は、PLCプログラム76のST言語にて記載された指令文を、ロボットプログラム77のロボット言語の指令文に変換する。ロボットプログラム生成部46は、複数の指令文を含むロボットプログラム77を生成することができる。ロボットプログラム77は、記憶部42に記憶される。動作制御部43は、ロボットプログラム生成部46にて生成されたロボットプログラム77に基づいて、ロボット1およびハンド2を制御することができる。
上述のそれぞれの制御においては、機能および作用が変更されない範囲において適宜ステップの順序を変更することができる。
本実施の形態のPLCプログラムを生成するPLCプログラム生成部は、PLCに配置されているが、この形態に限られない。PLCプログラム生成部は、シミュレーション装置に配置されていても構わない。すなわち、シミュレーション装置は、補助ファイル群に基づいてPLCプログラムを生成しても構わない。
上記の実施の形態は、適宜組み合わせることができる。上述のそれぞれの図において、同一または相等する部分には同一の符号を付している。なお、上記の実施の形態は例示であり発明を限定するものではない。また、実施の形態においては、請求の範囲に示される実施の形態の変更が含まれている。
1 ロボット
5 ロボット装置
9 制御システム
20 シミュレーション装置
24 処理部
26 シミュレーション実行部
28 動作情報取得部
29 補助ファイル生成部
30 PLC
35 PLCプログラム生成部
70 補助ファイル群
71 プログラムファイル
72 変数ファイル
73,74,75 FBファイル
76 PLCプログラム

Claims (4)

  1. ロボットの動作条件に基づいて、ロボットの動作のシミュレーションを実施するシミュレーション実行部と、
    シミュレーション実行部によるシミュレーションの結果に基づいて、ロボットの動作情報を取得する動作情報取得部と、
    ロボットの動作情報に基づいて、ロボットを制御可能なプログラマブルロジックコントローラが読み込んで実行することができる言語にて記載されたプログラムを生成するための複数の補助ファイルを生成する補助ファイル生成部と、を備える、シミュレーション装置。
  2. 複数の補助ファイルは、ロボットの動作を示す関数が記載されたプログラムファイルと、変数の定義が記載された変数ファイルと、プログラムファイルの前記関数に対応するロボットの動作の内容が記載されたファンクションブロックファイルとを含む、請求項1に記載のシミュレーション装置。
  3. プロセッサを含むパーソナルコンピュータを備え、
    プロセッサがシミュレーションを実施するためのプログラムに基づいて駆動することにより、前記シミュレーション実行部、前記動作情報取得部、および前記補助ファイル生成部として機能する、請求項1に記載のシミュレーション装置。
  4. 請求項1に記載のシミュレーション装置と、
    前記プログラマブルロジックコントローラと、を備え、
    前記プログラマブルロジックコントローラは、複数の補助ファイルに基づいて、前記プログラマブルロジックコントローラを駆動するプログラムを生成するプログラム生成部を備える、制御システム。
JP2023555995A 2021-10-28 2021-10-28 補助ファイルを生成するシミュレーション装置および制御システム Active JP7674506B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/039885 WO2023073883A1 (ja) 2021-10-28 2021-10-28 補助ファイルを生成するシミュレーション装置および制御システム

Publications (2)

Publication Number Publication Date
JPWO2023073883A1 JPWO2023073883A1 (ja) 2023-05-04
JP7674506B2 true JP7674506B2 (ja) 2025-05-09

Family

ID=86157519

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2023555995A Active JP7674506B2 (ja) 2021-10-28 2021-10-28 補助ファイルを生成するシミュレーション装置および制御システム

Country Status (6)

Country Link
US (1) US20240416515A1 (ja)
JP (1) JP7674506B2 (ja)
CN (1) CN118103182A (ja)
DE (1) DE112021008096T5 (ja)
TW (1) TW202333917A (ja)
WO (1) WO2023073883A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003108220A (ja) 2001-09-28 2003-04-11 Omron Corp 制御プログラム開発支援方法及び装置
JP2004148428A (ja) 2002-10-30 2004-05-27 Honda Motor Co Ltd シミュレーション装置
US20180203973A1 (en) 2017-01-16 2018-07-19 Siemens Aktiengesellschaft System and simulator for the disengageable simulation of installations or machines within programmable logic controllers
WO2019235313A1 (ja) 2018-06-05 2019-12-12 オムロン株式会社 シミュレーション装置、シミュレーション装置の制御方法、およびシミュレーション装置のプログラム
WO2021053855A1 (ja) 2019-09-17 2021-03-25 オムロン株式会社 シミュレーション装置、シミュレーションプログラムおよびシミュレーション方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9390203B2 (en) * 2004-06-15 2016-07-12 Abb Ab Method and system for off-line programming of multiple interacting robots
WO2015073322A1 (en) * 2013-11-13 2015-05-21 Abb Technology Ag System for robotic 3d printing
WO2016138242A1 (en) * 2015-02-25 2016-09-01 Abb Technology Ag Robotic additive manufacturing apparatuses, systems and methods
EP3434424A1 (de) * 2017-07-27 2019-01-30 Convergent Information Technologies GmbH Effiziente programmierung von robotern für die bearbeitung von werkstücken mit verschiedenen varianten
JP6950347B2 (ja) * 2017-08-10 2021-10-13 オムロン株式会社 情報処理装置、情報処理方法およびプログラム
JP6914452B1 (ja) 2019-09-13 2021-08-04 三菱電機株式会社 数値制御装置、および機械学習装置
JP7456249B2 (ja) * 2020-04-10 2024-03-27 オムロン株式会社 シミュレーションのためのプログラムおよび装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003108220A (ja) 2001-09-28 2003-04-11 Omron Corp 制御プログラム開発支援方法及び装置
JP2004148428A (ja) 2002-10-30 2004-05-27 Honda Motor Co Ltd シミュレーション装置
US20180203973A1 (en) 2017-01-16 2018-07-19 Siemens Aktiengesellschaft System and simulator for the disengageable simulation of installations or machines within programmable logic controllers
WO2019235313A1 (ja) 2018-06-05 2019-12-12 オムロン株式会社 シミュレーション装置、シミュレーション装置の制御方法、およびシミュレーション装置のプログラム
WO2021053855A1 (ja) 2019-09-17 2021-03-25 オムロン株式会社 シミュレーション装置、シミュレーションプログラムおよびシミュレーション方法

Also Published As

Publication number Publication date
US20240416515A1 (en) 2024-12-19
WO2023073883A1 (ja) 2023-05-04
TW202333917A (zh) 2023-09-01
DE112021008096T5 (de) 2024-07-04
JPWO2023073883A1 (ja) 2023-05-04
CN118103182A (zh) 2024-05-28

Similar Documents

Publication Publication Date Title
JP3819883B2 (ja) ロボットプログラム位置修正装置
JP6950347B2 (ja) 情報処理装置、情報処理方法およびプログラム
CN102119072B (zh) 有助于对离线编程机器人单元进行校准的方法和系统
Minhat et al. A novel open CNC architecture based on STEP-NC data model and IEC 61499 function blocks
EP1310844B1 (en) Simulation device
Zivanovic et al. An approach for applying STEP-NC in robot machining
EP1842631B1 (en) Apparatus and method for automatic path generation for an industrial robot
US7174225B2 (en) Method and system for simulating processing of a workpiece with a machine tool
US20230405819A1 (en) A robot controller with integrated logic functionality
JP7069971B2 (ja) 制御装置、ロボット、およびロボットシステム
JP2003117863A (ja) ロボットシミュレーション装置
JP2019061523A (ja) 情報処理装置、情報処理方法およびプログラム
JP2003150218A (ja) シミュレーション装置
JP2022190235A (ja) 情報処理装置、情報処理方法、ロボットシステム、物品の製造方法、プログラム及び記録媒体
JP2010218036A (ja) ロボットオフラインプログラミング装置
JP5272447B2 (ja) 数値制御機械の動作シミュレータ
JP7674506B2 (ja) 補助ファイルを生成するシミュレーション装置および制御システム
JP7167516B2 (ja) 制御装置、制御方法、および制御プログラム
JP6155570B2 (ja) データ表示装置、方法、プログラム
JPH02236704A (ja) 動作シミュレーションシステム
KR19980020028A (ko) 가상의 컴퓨터 수치 제어 공작 시스템 및 방법
JP7232704B2 (ja) ロボットプログラム評価装置、ロボットプログラム評価方法及びロボットプログラム評価プログラム
JP7797621B2 (ja) プログラム生成装置、及びプログラム生成方法
JP2001042907A (ja) シーケンス制御装置
KR101522430B1 (ko) 실시간 시뮬레이터를 이용한 파트 프로그램의 그래픽 설명 정보 제공 장치 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240515

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20250121

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20250310

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: 20250401

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20250424

R150 Certificate of patent or registration of utility model

Ref document number: 7674506

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150