JP2023064893A - シミュレーションのためのプログラムおよびシステム - Google Patents

シミュレーションのためのプログラムおよびシステム Download PDF

Info

Publication number
JP2023064893A
JP2023064893A JP2021175328A JP2021175328A JP2023064893A JP 2023064893 A JP2023064893 A JP 2023064893A JP 2021175328 A JP2021175328 A JP 2021175328A JP 2021175328 A JP2021175328 A JP 2021175328A JP 2023064893 A JP2023064893 A JP 2023064893A
Authority
JP
Japan
Prior art keywords
assembly
settings
user
connection
simulation
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.)
Pending
Application number
JP2021175328A
Other languages
English (en)
Inventor
直人 長谷川
Naoto Hasegawa
慎太郎 岩村
Shintaro Iwamura
はる奈 大貫
Haruna Onuki
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.)
Omron Corp
Original Assignee
Omron Corp
Omron Tateisi Electronics Co
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 Omron Corp, Omron Tateisi Electronics Co filed Critical Omron Corp
Priority to JP2021175328A priority Critical patent/JP2023064893A/ja
Priority to PCT/JP2022/036480 priority patent/WO2023074249A1/ja
Priority to CN202280065052.XA priority patent/CN118043814A/zh
Publication of JP2023064893A publication Critical patent/JP2023064893A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/12Geometric CAD characterised by design entry means specially adapted for CAD, e.g. graphical user interfaces [GUI] specially adapted for CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Architecture (AREA)
  • Human Computer Interaction (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Programmable Controllers (AREA)

Abstract

【課題】シミュレーションにおける部品間の結合関係の調整を容易に行うための技術を提供する。【解決手段】シミュレーションのプログラムは、コンピュータに、アセンブリを構成する複数の部品データを取得することと、複数の部品データの各々の間の結合設定を生成することと、ユーザからの操作入力を受け付けることと、ユーザからの操作入力に基づいて、結合設定を調整することと、ユーザプログラムに基づいてアセンブリを制御する制御装置をエミュレートすることと、3D(Dimensional)空間において、アセンブリを動作させることとを実行させる。アセンブリを動作させることは、調整された結合設定に基づいて、複数の部品データの各々を連動させて動作させることを含む。【選択図】図4

Description

本開示は、機械のシミュレーションに関し、より特定的には、シミュレーションで使用するアセンブリの結合設定のための技術に関する。
従来、機械の設計のための3DCAD(Three Dimensional Computer Aided Design)ソフトウェアが知られている。3DCADソフトウェアにおいて、機械は、複数の部品からなるアセンブリとして表現され得る。アセンブリに含まれる複数の部品の各々は、お互いの相対的な位置および結合関係(拘束関係、接続関係等とも呼ばれる)を定義される。また、3DCADソフトウェアは、1または複数の機械の部品(パーツ)、1または複数のアセンブリ、またはその両方を含むデータとして、CADデータを生成し得る。
さらに、近年、3DCADソフトウェアで設計された機械のCADデータを用いて、FA(Factory Automation:ファクトリーオートメーション)における製造ラインのシミュレーション等も行われている。一部のシミュレーションソフトウェアは、PLC(Programmable Logic Controller:プログラマブルロジックコントローラ)等を仮想的に表現した制御装置エミュレータと連携する機能を備える。このようなCADデータを用いたシミュレーションにおいては、アセンブリに含まれる各部品の結合関係の抽出および動作設定を容易に行うための技術が望まれている。
CADデータの結合関係を抽出する技術に関し、例えば、特開2001-202393号公報(特許文献1)は、「対象とする部品から代表点を選択し、他の部品との間の接続関係を各座標軸方向に投影した直線との交点を求めることにより検出する。また、部品を総当たりするのではなく、グルーピング等により効率的に接続関係を抽出する」部品接続関係抽出方法及び部品接続関係抽出装置を開示している([要約]参照)。
また、別のCADデータの結合関係を抽出する技術が、例えば、特開2006-190183号公報(特許文献2)に開示されている。
特開2001-202393号公報 特開2006-190183号公報
特許文献1および2に開示された技術は、部品間の結合関係を抽出すること、または部品間の干渉チェックを主な目的としている。そのため、これらの技術では、シミュレーションにおける機械全体の動作を実現するために、部品間の結合関係の設定を調整することができない。したがって、シミュレーションにおける機械全体の動作を実現するために、部品間の結合関係の調整を容易に行うための技術が必要とされている。
本開示は、上記のような背景に鑑みてなされたものであって、ある局面における目的は、シミュレーションにおける機械全体の動作を実現するために、部品間の結合関係の調整を容易に行うための技術を提供することにある。
ある実施の形態に従うと、シミュレーションのプログラムが提供される。プログラムは、コンピュータに、アセンブリを構成する複数の部品データを取得することと、複数の部品データの各々の間の結合設定を生成することと、ユーザからの操作入力を受け付けることと、ユーザからの操作入力に基づいて、結合設定を調整することと、ユーザプログラムに基づいてアセンブリを制御する制御装置をエミュレートすることと、3D(Dimensional)空間において、アセンブリを動作させることとを実行させる。アセンブリを動作させることは、調整された結合設定に基づいて、複数の部品データの各々を連動させて動作させることを含む。
この開示によれば、プログラムは、複数の部品データの各々の間の結合設定を生成すると共に、ユーザからの結合設定の変更入力を受け付けることができる。その結果、ユーザは、部品データの形状のみからでは判別が困難な結合関係についても適切に設定することができる。
上記の開示において、結合設定の調整は、複数の部品データの各々の間の結合の種類の選択、結合ポイントの調整、および、複数の部品データに含まれる第1の部品の動作方向の設定を含む。
この開示によれば、プログラムは、結合関係の種類、結合ポイントの調整、および、複数の部品データに含まれる第1の部品の動作方向の設定を変更する手段をユーザに提供し得る。
上記の開示において、プログラムは、コンピュータに、ユーザからの操作入力を受け付ける画面において、3D空間における複数の部品データの各々の部位にカーソルをスナップすることをさらに実行させる。
この開示によれば、プログラムは、3D空間におけるスナッピングモードを提供し得る。ユーザは、スナッピングモードを使用することで、カーソルを部品の特定の部位(エッジ、穴の中心等)に容易に合せることができる。
上記の開示において、プログラムは、コンピュータに、アセンブリの移動量の入力を受け付けることをさらに実行させる。アセンブリを動作させることは、アセンブリの試運転の画面において、アセンブリの移動量が入力されたことに基づいて、3D空間上で複数の部品データの各々を動作させることを含む。
この開示によれば、プログラムは、可動部品の移動量の入力を受け付ける機能と、可動部品の移動量の入力に基づいてアセンブリの動作をシミュレートする機能とを提供し得る。ユーザは、シミュレーション画面を確認しながら、アセンブリが破損しない範囲で可動部品の移動量を調整し得る。
上記の開示において、プログラムは、コンピュータに、制御装置が有する複数のインターフェイスの各々の設定を受け付けることをさらに実行させる。複数のインターフェイスの各々の設定は、複数のインターフェイスの各々が接続される装置、機械またはセンサの設定を含む。制御装置をエミュレートすることは、複数のインターフェイスの各々の設定に基づいて、複数のインターフェイスの各々の入出力信号をエミュレートすることを含む。
この開示によれば、プログラムは、制御装置のインターフェイスの設定を受け付けることで、制御装置のエミュレータと、シミュレーションを実行する物理エンジンとを連携させることができる。これにより、ユーザは、ユーザプログラムを用いて、アセンブリの動作シミュレーションを行い得る。
上記の開示において、プログラムは、コンピュータに、制御装置によって制御されるモータドライバの動作設定を受け付けることをさらに実行させる。制御装置をエミュレートすることは、制御装置からモータドライバに動作設定に対応する命令を出力することを含む。
この開示によれば、プログラムは、モータドライバの動作設定を事前に受け付けることができる。これにより、シミュレーションの中で、制御装置は、モータドライバおよびモータを介して、アセンブリを動作させ得る。
上記の開示において、プログラムは、コンピュータに、仮想センサの設定の入力を受け付けることをさらに実行させる。仮想センサの設定は、3D空間上への仮想センサの設置情報と、仮想センサと制御装置のあるインターフェイスとの接続情報とを含む。制御装置をエミュレートすることは、仮想センサの設定に基づいて、制御装置における仮想センサの入力信号をエミュレートすることを含む。
この開示によれば、プログラムは、仮想センサを用いたシミュレーションを可能にする。ユーザは、仮想センサを用いることで現実により近い環境を3D空間内に再現することができる。
上記の開示において、プログラムは、コンピュータに、エミュレーションによるユーザプログラムの実行結果と、シミュレーションの実行結果とを表示することをさらに実行させる。エミュレーションによるユーザプログラムの実行結果と、シミュレーションの実行結果とを表示することは、ユーザプログラムの各ステップの実行結果と、ユーザプログラムの各ステップに対応するシミュレーションの実行結果とを表示することを含む。
この開示によれば、プログラムは、ユーザプログラムの実行結果と、シミュレーションの実行結果とをユーザに提示することができる。ユーザは、ユーザプログラムの変数の値と、アセンブリの動作とを確認することで、ユーザプログラムまたはアセンブリの問題点を容易に把握し得る。
上記の開示において、プログラムは、コンピュータに、ユーザプログラムにブレークポイントを設定する入力を受け付けることと、ユーザプログラムがブレークポイントにて停止したことに基づいて、ブレークポイントに対応するシミュレーションの実行結果を表示することとをさらに実行させる。
この開示によれば、プログラムは、ブレークポイントに合せてシミュレーションの再生を一時停止することができる。これにより、ユーザは、問題が発生したと推測されるコードの実行時またはその直前におけるアセンブリの動作を確認し得る。
他の実施の形態に従うと、アセンブリの動作のシミュレーションシステムが提供される。シミュレーションシステムは、アセンブリを構成する複数の部品データを取得する部品取得部と、複数の部品データの各々の間の結合設定を生成する自動結合部と、ユーザからの操作入力を受け付ける操作入力部と、ユーザからの操作入力に基づいて、結合設定を調整するための結合調整部と、ユーザプログラムに基づいてアセンブリを制御する制御装置のエミュレータと、3D(Dimensional)空間において、アセンブリを動作させる物理エンジンとを備える。物理エンジンは、結合調整部により調整された結合設定に基づいて、複数の部品データの各々を連動させて動作させる。
この開示によれば、シミュレーションシステムは、複数の部品データの各々の間の結合設定を生成すると共に、ユーザからの結合設定の変更入力を受け付けることができる。その結果、ユーザは、部品データの形状のみからでは判別が困難な結合関係についても適切に設定することができる。
上記の開示において、結合設定を調整することは、複数の部品データの各々の間の結合の種類の選択、結合ポイントの調整、および、複数の部品データに含まれる第1の部品の動作方向の設定を含む。
この開示によれば、シミュレーションシステムは、結合関係の種類、結合ポイントの調整、および、複数の部品データに含まれる第1の部品の動作方向の設定を変更する手段をユーザに提供し得る。
上記の開示において、操作入力部は、3D空間において、複数の部品データの各々の部位にカーソルをスナップ可能に構成される。
この開示によれば、シミュレーションシステムは、3D空間におけるスナッピングモードを提供し得る。ユーザは、スナッピングモードを使用することで、カーソルを部品の特定の部位(エッジ、穴の中心等)に容易に合せることができる。
上記の開示において、操作入力部は、アセンブリの移動量の入力を受け付ける。物理エンジンは、アセンブリの試運転の画面において、アセンブリの移動量が入力されたことに基づいて、3D空間上で複数の部品データの各々を動作させる。
この開示によれば、シミュレーションシステムは、可動部品の移動量の入力を受け付ける機能と、可動部品の移動量の入力に基づいてアセンブリの動作をシミュレートする機能とを提供し得る。ユーザは、シミュレーション画面を確認しながら、アセンブリが破損しない範囲で可動部品の移動量を調整し得る。
上記の開示において、操作入力部は、制御装置が有する複数のインターフェイスの各々の設定を受け付ける。複数のインターフェイスの各々の設定は、複数のインターフェイスの各々が接続される装置、機械またはセンサの設定を含む。エミュレータは、複数のインターフェイスの各々の設定に基づいて、複数のインターフェイスの各々の入出力信号をエミュレートする。
この開示によれば、シミュレーションシステムは、制御装置のインターフェイスの設定を受け付けることで、制御装置のエミュレータと、シミュレーションを実行する物理エンジンとを連携させることができる。これにより、ユーザは、ユーザプログラムを用いて、アセンブリの動作シミュレーションを行い得る。
上記の開示において、操作入力部は、制御装置によって制御されるモータドライバの動作設定をさらに受け付ける。エミュレータは、制御装置からモータドライバに動作設定に対応する命令を出力する。
この開示によれば、シミュレーションシステムは、モータドライバの動作設定を事前に受け付けることができる。これにより、シミュレーションの中で、制御装置は、モータドライバおよびモータを介して、アセンブリを動作させ得る。
上記の開示において、操作入力部は、仮想センサの設定の入力を受け付ける。仮想センサの設定は、3D空間上への仮想センサの設置情報と、仮想センサと制御装置のあるインターフェイスとの接続情報とを含む。エミュレータは、仮想センサの設定に基づいて、制御装置における仮想センサの入力信号をエミュレートする。
この開示によれば、シミュレーションシステムは、仮想センサを用いたシミュレーションを可能にする。ユーザは、仮想センサを用いることで現実により近い環境を3D空間内に再現することができる。
上記の開示において、シミュレーションシステムは、エミュレータによるユーザプログラムの実行結果と、物理エンジンによるシミュレーションの実行結果とを表示するための表示部をさらに備える。表示部は、ユーザプログラムの各ステップの実行結果と、ユーザプログラムの各ステップに対応するシミュレーションの実行結果とを表示する。
この開示によれば、シミュレーションシステムは、ユーザプログラムの実行結果と、シミュレーションの実行結果とをユーザに提示することができる。ユーザは、ユーザプログラムの変数の値と、アセンブリの動作とを確認することで、ユーザプログラムまたはアセンブリの問題点を容易に把握し得る。
上記の開示において、操作入力部は、ユーザプログラムにブレークポイントを設定する入力を受け付ける。表示部は、ユーザプログラムがブレークポイントにて停止したことに基づいて、ブレークポイントに対応するシミュレーションの実行結果を表示する。
この開示によれば、シミュレーションシステムは、ブレークポイントに合せてシミュレーションの再生を一時停止することができる。これにより、ユーザは、問題が発生したと推測されるコードの実行時またはその直前におけるアセンブリの動作を確認し得る。
ある実施の形態に従うと、シミュレーションにおける機械全体の動作を実現するために、部品間の結合関係の調整を容易に行うことが可能である。
この開示内容の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解される本開示に関する次の詳細な説明から明らかとなるであろう。
ある実施の形態に従うプログラム、システムまたは方法により動作をシミュレーション可能な機械のCADデータの一例を示す図である。 ある実施の形態に従うシステム100の機能の一例を示す模式図である。 システム100を構成する装置300の一例を示す図である。 結合設定画面の例を示す図である。 結合設定画面におけるスナッピングモードの例を示す図である。 結合設定画面における第1の設定例を示す図である。 結合設定画面における第2の設定例を示す図である。 結合設定画面における第3の設定例を示す図である。 結合設定画面における第4の設定例を示す図である。 動作方向設定画面の例を示す図である。 動作方向設定画面における第1の設定例を示す図である。 動作方向設定画面における第2の設定例を示す図である。 動作方向設定画面における第3の設定例を示す図である。 アセンブリの試運転画面の例を示す図である。 アセンブリの試運転画面の使用例を示す図である。 システム100に設定される結合設定の一例を示す図である。 シミュレーションの実行画面の一例を示す図である。 モータドライバの設定画面の一例を示す図である。 ユーザプログラムのデバッグ画面の第1の例を示す図である。 ユーザプログラムのデバッグ画面の第2の例を示す図である。 仮想センサの設定画面の一例を示す図である。 システム100における各種設定の生成およびシミュレーションの実行までの一連の処理手順の一例を示すフローチャートである。 システム100における仮想センサを用いたシミュレーションの手順の一例を示すフローチャートである。
以下、図面を参照しつつ、本開示に係る技術思想の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
<A.適用例>
本開示に係る技術は、例えば、3DCADソフトウェアを用いて設計された機械のCADデータを取得し、PLC等を仮想的に表現した制御装置エミュレータと物理エンジンとを連携させることで、取得した機械の動作をシミュレートする、プログラム、システムおよび方法に関する。
ある局面において、本開示の技術は、例えば、図2以降を参照して説明される機能を備える配布可能なプログラム(例えば、統合開発環境130)として実現されてもよい。この場合、本開示の技術を提供するプログラムは、例えば、装置300等の任意のハードウェア上で実行され得る。
他の局面において、本開示の技術は、例えば、図2以降を参照して説明される機能を備えるシステムとして実現されてもよい。本明細書において、「システム」との用語は、機械の動作シミュレーションの機能を提供する1または複数の装置からなる構成を包含する。以下の説明においては、主として、統合開発環境130を提供する装置300(図3参照)により構成されるシステム100(図2参照)の例を示すが、これに限らず、複数の装置が連係することで、機械の動作シミュレーションの機能を提供するようにしてもよい。
また、システム100は、クラウド環境、またはクラウド環境上のサービス、インスタンスまたは仮想マシンとして実現されてもよい。この場合、クラウド環境を実現するデータセンターのハードウェアは、複数の装置300によって実現されてもよいし、装置300が備える各ハードウェアの任意の組み合わせにより実現されてもよい。
ユーザは、ユーザ端末のブラウザ機能またはユーザ端末にインストールされたアプリケーションを介して、システム100の機能を使用してもよいし、システム100として動作する装置を直接使用してもよい。さらに、システム100は、1または複数のPLC等の制御装置を含んでいてもよい。この場合には、機械の動作シミュレーションの機能が制御装置に配置されてもよい。
以下の説明においては、本開示の技術を実現するシステム100を例に説明するが、システム100の動作は、本開示の技術を実現するプログラム(統合開発環境130)がハードウェアと協業することによって実現する動作であると読み替えてもよい。
図1は、本実施の形態に従うプログラム、システムまたは方法により動作をシミュレーション可能な機械のCADデータの一例を示す図である。
(a.CADデータにおける結合関係)
CADデータ1およびCADデータ2は、システム100によって動作シミュレーション可能な機械のCADデータの一例である。最初に、CADデータ1およびCADデータ2を例に、CADデータが含み得る結合関係について説明する。
CADデータ1は、アセンブリ10を含む。アセンブリ10は、主な部品として、部品11と、部品12と、部品13と、部品14とを含む。部品11は、部品14に固定されている。部品12は部品11に対して直動する。部品13は、その端部においてボルトによって回転自在に部品12に接続されており、部品13の端部は、部品12の直動運動に応じて移動する。すなわち、アセンブリ10は、部品12の直動運動を利用して、部品13を動かすことができる。例えば、部品13は、リンクの一部であり、部品12から得られた動力を別の形で他の部品に伝達し得る。
CADデータ2は、アセンブリ20を含む。アセンブリ20は、主な部品として、部品21と、部品22と、部品23と、部品24と、部品25とを含む。部品21は、部品25に固定されている。部品22は、部品21に対して直動する。部品23は、その端部においてボルトによって回転自在に部品22に接続されている。また、部品23は、別の端部においてボルトによって回転自在に部品24に接続されている。部品24は、レールを介して部品25と接続されており、部品25に対して平行に移動し得る。アセンブリ20は、部品22の直動運動を利用して、部品23の端部を部品24の方向に移動させる。これにより、部品24は、部品23の別の端部に押されることで、部品25に対してスライドする。
CADデータは、上記のように複数の部品を含む場合(アセンブリを含む場合)、各部品間の結合関係を含むことがある。「結合関係」とは、ある部品の他の部品に対する相対的な位置、結合の種類を含み得る。相対的な位置(または絶対座標でもよい)は、3D空間内での各部品の座標、または、各部品の特定の部位の位置関係により定義され得る。結合の種類は、ある部品の他の部品に対する動作または固定方法により定義され得る。例えば、部品11は、部品14の表面に固定されている。すなわち、部品11および部品14の結合の種類は「固定」である。他の例では、部品12は、部品11に対して直動可能である。すなわち、部品11および部品14の結合の種類は「スライダージョイント」である。さらに別の例では、部品13は、部品12に対してボルト(ボルト用の穴)を中心に回転可能である。すなわち、部品13および部品12の結合の種類は「ヒンジジョイント」である。
3DCADソフトウェアは、アセンブリまたは部品の設計時のヒストリーを記録する。そのため、CADデータは、部品間の結合関係も保持し得る。しかしながら、CADデータが、3DCADソフトウェアからエクスポートされて、他のソフトウェア(例えば、統合開発環境130等)にインポートされた場合、ヒストリーが失われることがある。そのため、特定の3DCADソフトウェアのフォーマットに依存せずに、アセンブリに含まれる各部品の形状から、部品間の結合関係を生成することが望ましい。
ただし、必ずしもアセンブリに含まれる各部品の形状から正確な結合ポイントおよび結合の種類を判別できない場合がある。そのため、システム100は、任意のアセンブリの動作シミュレーションを可能にするために、部品間の結合関係の調整機能を含むいくつかの機能を提供する。次に、システム100が提供する各機能について説明する。
(b.本開示のプログラムまたはシステムが提供する機能)
システム100は、主な機能として、結合設定機能と、部品の動作方向の設定機能と、アセンブリの試運転機能と、制御装置の設定機能と、シミュレーション機能と、デバッグ機能とを提供する。なお、「結合設定」とは、部品間の結合関係に関する任意の情報を含み得る。例えば、結合設定は、結合ポイント(結合関係を有する2つの部品が結合するポイント、位置または座標)、結合の種類、動作方向(可動部品の動作方向)、移動量(可動部品の限界移動量または移動範囲)の少なくとも一部を含む。
結合設定機能は、部品間の結合ポイントの調整機能と、部品間の結合の種類の選択機能とを含み得る。「部品間の結合ポイントの調整機能」は、結合関係を有する2つの部品の結合ポイント(座標)を調整する機能である。結合ポイントは、複数の座標を含んでいてもよい(回転軸、スライド方向等を表現するため)。例えば、部品間の結合ポイントの調整機能は、部品22および部品23のボルト用の穴をヒンジジョイントの回転軸として選択すること、部品11と部品14との固定面(例えばオフセット値)の調整等を含み得る。また、部品間の結合ポイントの調整機能は、各部品を移動させて、部品の位置を調整することを含んでもよい。「部品間の結合の種類の選択機能」は、結合関係を有する2つの部品間の結合の種類(固定、ヒンジジョイント、ポールジョイント、スライダージョイント等)を選択する機能である。ある局面において、結合設定機能は、第1の部品の移動方向を設定する機能を含み、第1の部品の移動可能な範囲(限界移動量)を設定する機能を含まなくてもよい。他の局面において、結合設定機能は、第1の部品の移動方向を設定する機能と、第1の部品の移動可能な範囲(限界移動量)を設定する機能とを含んでいてもよい。
システム100は、インポートされたCADデータ(またはSTEPファイル等の中間データ)に含まれる各部品の形状および各部品の位置関係に基づいて、各部品間の結合設定を自動的に生成し得る。しかしながら、部品形状からのみでは、正確に結合設定を生成できない場合がある。例えば、部品11,12は、ヒストリーを管理していないシステム100から見ると、重なっており、部品11は部品12に固定されているのか、または、部品11は部品12に対して直動可能なのかが判別できない可能性がある。また、部品12が複数の部品からなるアセンブリである場合、どの部品の組み合わせが部品11に対して直動可能であるかが判別できない可能性がある。
そのため、ユーザは、システム100が提供するUI(User Interface:ユーザインターフェイス)を介して、結合設定機能を用いることにより、結合ポイントの調整および結合の種類の選択を行い得る。例えば、部品の形状から結合設定を容易に生成可能な場合、システム100が結合設定を自動的に生成し、そうでない場合、ユーザが結合設定を入力することで、システム100にインポートされた任意のアセンブリに対して、少ない工数で正確な結合設定を生成し得る。結合設定機能およびそのUIの詳細に関しては、図4~図9を参照して後述する。
部品の動作方向設定機能は、第1の部品(可動部品)の動作方向を設定する機能を含み得る。例えば、ユーザは、システム100が提供するUIを介して、部品11(可動部品)の動作方向(スライド方向)を設定し得る。また、アセンブリによっては、直動および回転を含む複雑な複合動作をするものもある。ユーザは、このような複雑な動作を含むアセンブリに対しても、システム100が提供するUIを介して、動作設定を行い得る。部品の動作方向の設定機能およびそのUIの詳細に関しては、図10~図13を参照して後述する。
アセンブリの試運転機能は、部品間の結合ポイント、部品間の結合の種類、および、部品の動作方向の設定に基づいて、アセンブリの動作検証を行う機能である。アセンブリを動作させることは、調整された結合設定に基づいて、複数の部品データの各々を連動させて動作させることを含む。例えば、ユーザは、システム100が提供するUI(例えば、シミュレーション画面および操作UI等)を介して、アセンブリ10またはアセンブリ20等のFAの製造ラインの一部の機構の動作を検証し得る。
また、ユーザは、アセンブリの試運転機能を使用することで、各部品の移動量の限界を調べることもできる。一例として、ユーザが、システム100が提供するUIを介して、部品22をスライドさせるとする。この場合、システム100は、物理エンジンの機能を用いて、部品24もスライドさせる。仮に、部品24のスライド移動可能な距離が、部品22のスライド移動可能な距離よりも短い場合に、部品22が部品24の限界移動量を超えてスライドしたとき、アセンブリ20に含まれる各部品には過度な負荷がかかる。この場合、システム100のUIは、部品間の結合が外れる描写または壊れる描写をシミュレーション画面に出力する。ユーザは、シミュレーション画面に映るアセンブリを確認することで、限界移動量を確認し得る。アセンブリの試運転機能およびそのUIの詳細に関しては、図14~図16を参照して後述する。
制御装置の設定機能は、FAの製造ラインにおける各機械を制御する制御装置およびドライバの設定を行うための機能である。通常、FAの製造ラインにおいて、PLC等の制御装置がモータドライバに指令を送信する。モータドライバは、受信した指令に基づいて、モータに駆動信号を出力する。そして、モータが駆動することにより、モータに取り付けられたアセンブリも動作する。物理エンジンを制御装置エミュレータと連携させて、上記の一連の動作をシミュレートするために、ユーザは、システム100が提供するUIを介して、制御装置およびモータドライバのIO設定、モータドライバごとの動作設定等を行うことができる。ユーザは、制御装置の設定機能を用いて制御装置のIO設定等を行うことにより、制御装置エミュレータと、物理エンジンとを連携させることができる。制御装置の設定機能およびそのUIの詳細に関しては、図17および図18を参照して後述する。
シミュレーション機能は、制御装置エミュレータと物理エンジンとを連携させてシミュレーションを実行する機能である。より具体的には、ユーザは、開発したユーザプログラムを制御装置エミュレータにインストールする。制御装置エミュレータは、ユーザプログラムに基づいて、IOから信号を出力する。シミュレータは、制御装置エミュレータからの信号に基づいて、モータの動作をシミュレートし、アセンブリを駆動させる。これにより、ユーザは、自身の開発したユーザプログラムにより、製造ラインが正しく動作するか否かを確認し得る。
デバッグ機能は、制御装置にインストールされるユーザプログラムをデバッグするための機能である。システム100は、ユーザプログラムのステップと連動して、シミュレーションを実行し得る。ある局面において、システム100は、ユーザプログラムのステップ実行機能を提供してもよい。
システム100は、各ステップに対応するユーザプログラムの各変数の値およびシミュレーション画面をUIに表示し得る。ユーザは、ステップ毎に、シミュレーションの画面(アセンブリの動き)と、変数の値とを比較することで、ユーザプログラムをデバッグし得る。ユーザプログラムが含む変数は、一例として、IEC(International Electrotechnical Commission)変数であってもよい。
また、ある局面において、デバッグ機能は、ブレークポイントの設定機能を備えていてもよい。ユーザプログラムにブレークポイントが設定されている場合に、ユーザプログラムがブレークポイントまで実行されたとき、シミュレーションの実行画面もブレークポイントに対応する場面で一時停止する。ユーザは、ブレークポイントを起点として、ユーザプログラムをステップ実行することで、ブレークポイント前後で何が起きたかを把握し得る。
上記のように、システム100は、結合設定機能と、部品の動作方向設定機能と、アセンブリの試運転機能を提供することにより、アセンブリの動作検証を可能にする。また、システム100は、制御装置の設定機能と、シミュレーション機能と、デバッグ機能とを提供することにより、ユーザプログラムを用いて、アセンブリを動作させることができる。
<B.システムの構成>
次に、図2および図3を参照して、本実施の形態に従うシステム100の機能およびハードウェア構成の一例について説明する。
図2は、本実施の形態に従うシステム100の機能の一例を示す模式図である。ある局面において、図2に示される各機能は、プログラムモジュールとして実現されてもよい。また、他の局面において、図2に示される各機能は、統合開発環境130の機能の一部として実現されてもよい。これらの場合、図2に示される各機能は、装置300によってプログラム(例えば、統合開発環境130または他のプログラム)が実行されることにより実現され得る。さらに、他の局面において、図2に示される各機能の一部は、少なくとも1つのFPGA(Field Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)またはこれらの組み合わせ等によって実現されてもよい。
システム100は、操作入力部151と、部品取得部152と、自動結合部153と、結合調整部154と、動作設定部155と、制御装置設定部156と、試運転部157と、物理エンジン158と、制御装置エミュレータ159と、モータドライバエミュレータ160と、表示部161とを備える。
操作入力部151は、システム100が提供するUIを介して、ユーザからの各種操作入力を受け付ける。一例として、操作入力部151は、CADデータのインポート操作、部品間の結合ポイントの調整操作、部品間の結合の種類の選択操作、部品の動作方向の設定操作、部品の動作量の設定操作、アセンブリの試運転の実行操作、制御装置の設定操作、物理エンジン158および制御装置エミュレータ159を連携させたシミュレーションの実行操作およびデバッグの操作等を含み得る。
部品取得部152は、ユーザによるCADデータまたは中間データのインポート操作に基づいて、システム100にCADデータをインポートする。ある局面において、部品取得部152は、任意の3DCADソフトウェアのCADファイルをインポートしてもよいし、IGES、STEP、Parasolid等の中間ファイルをインポートしてもよい。
自動結合部153は、システム100にインポートされたCADデータに含まれる各部品の形状および位置に基づいて、部品間の結合設定を自動生成する。
結合調整部154は、ユーザの操作に基づいて、自動結合部153によって生成された部品間の結合設定を変更する。より具体的には、自動結合部153は、部品間の結合ポイントの調整、および、部品間の結合の種類の選択処理を行い得る。ある局面において、ユーザは、自動結合部153の機能を使用せずに、結合調整部154の機能を用いて、部品間の結合設定を全て定義してもよい。
動作設定部155は、ユーザの操作に基づいて、部品の動作方向を設定する。例えば、結合関係を有する第1の部品および第2の部品がある場合に第1の部品が可動部品であるとき、動作設定部155は、第1の部品の動作方向を設定し得る。ある局面において、動作設定部155は、ユーザの操作に基づいて、部品の動作量を設定してもよい。例えば、動作設定部155は、第1の部品の動作量の限界または動作範囲を設定し得る。
制御装置設定部156は、ユーザの操作に基づいて、制御装置の設定およびモータドライバの設定を行い得る。例えば、制御装置の設定およびモータドライバの設定は、IO設定を含み得る。また、IO設定は、ポートに接続される機器の情報を含み得る。モータドライバの設定は、モータをどのように駆動させるかの動作設定を含み得る。モータドライバは、動作設定に対応する指令を制御装置から受信することで、その動作設定に基づく信号をモータに出力する。
試運転部157は、アセンブリ単体の動作のシミュレーション機能、物理エンジン158および制御装置エミュレータ159を連携させたシミュレーション機能、および、デバッグ機能を提供する。
物理エンジン158は、3D空間におけるオブジェクトの描画を行う。また、物理エンジン158は、各オブジェクトの動きおよび各オブジェクトにかかる力の計算等を行う。物理エンジン158は、試運転部157によって呼び出される。
制御装置エミュレータ159は、PLC等の制御装置の動作をエミュレートする。また、制御装置エミュレータ159は、現実の制御装置と同様にユーザプログラムを解釈して実行し得る。試運転部157は、物理エンジン158および制御装置エミュレータ159間のデータの受け渡しを行う。例えば、試運転部157は、制御装置からの出力信号、センサの出力信号等の受け渡しを行い得る。
モータドライバエミュレータ160は、サーボモータ、ステッピングモータ等のモータドライバの動作をエミュレートする。ある局面において、モータドライバエミュレータ160は、物理エンジン158または制御装置エミュレータ159の一部であってもよい。
表示部161は、システム100が提供する各種UI、シミュレーションの実行画面、および、ユーザプログラムの実行画面等を出力する。ある局面において、システム100が提供するUIは、各種操作項目、シミュレーションの実行画面、およびユーザプログラムの実行画面の全てまたは一部を含み得る。
図3は、システム100を構成する装置300の一例を示す図である。装置300は、コンピュータ等の情報処理装置であり、システム100として動作し得る。ある局面において、システム100は、1つ以上の装置300、装置300のハードウェア構成の少なくとも一部を備えるシステム、装置300のハードウェア構成の少なくとも一部を備えるクラウド環境上の仮想マシン等により実現されてもよい。
装置300は、主たるコンポーネントとして、オペレーティングシステム(OS:Operating System)およびOS上で動作するプログラムを実行するプロセッサ102と、プロセッサ102によるプログラムの実行に必要なデータを格納するための作業領域を提供する主メモリ104と、キーボードやマウス等のユーザ操作を受付ける操作ユニット106(操作受付部)と、ディスプレイ109、各種インジケータ、プリンタ等の処理結果を出力する出力ユニット108と、各種ネットワークに接続されるネットワークインターフェイス110と、光学ドライブ112と、外部装置と通信するローカル通信インターフェイス116と、ストレージ111とを含む。これらのコンポーネントは、内部バス118等を介してデータ通信可能に接続される。
装置300は、光学ドライブ112を有しており、コンピュータ読取可能なプログラムを非一過的に格納する光学記録媒体(例えば、DVD(Digital Versatile Disc)等)を含むコンピュータ読取可能な記録媒体114から各種プログラムを読み取って、ストレージ111等に当該各種プログラムをインストールしてもよい。
装置300で実行される各種プログラムは、コンピュータ読取可能な記録媒体114を介して装置300にインストールされ得る。他の局面において、当該プログラムは、ネットワーク上の図示しないサーバ装置等からネットワークインターフェイス110を介して装置300にインストールされてもよい。
ストレージ111は、例えば、HDD(Hard Disk Drive)またはSSD(Flash Solid State Drive)等で構成され、プロセッサ102で実行されるプログラムを格納する。より具体的には、ストレージ111は、OS120と、統合開発環境130とを格納する。統合開発環境130は、OS120上で動作するアプリケーションとして実現され得る。
統合開発環境130は、本実施の形態に従うシステム100の機能を提供する。すなわち、システム100の機能は、プロセッサ102が主メモリ104に展開された統合開発環境130を実行することで実現され得る。
<C.結合設定>
次に、図4~図9を参照して、システム100が提供する結合設定機能およびそのUIについて説明する。ユーザは、図4~図9を参照して説明される結合設定画面を介して、部品間の結合ポイントの調整、結合の種類の選択を行い得る。さらには、ユーザは、結合設定画面を介して、第1の部品(可動部品)の移動量(移動範囲)も設定し得る。また、ユーザは、結合設定画面を介して、アセンブリに含まれる各部品の位置を調整してもよい。
図4は、結合設定画面の例を示す図である。結合設定画面400は、結合設定入力パネル401と、3D表示画面402とを含む。3D表示画面402は、第1の部品410および第2の部品411の結合ポイントを設定するためのツール420を表示する。ユーザは、マウス等でツール420を操作することで(回転、平行移動等)、結合ポイントの座標を調整し得る。
結合設定入力パネル401は、第1の部品410および第2の部品411の結合設定に関する。結合設定入力パネル401は、設定項目として、結合対象1_430と、結合対象2_440と、結合ポイント450と、結合部の接続方法460と、移動距離470とを含む。
結合対象1_430は、結合対象となる第1の部品410の選択項目である。例えば、ユーザは、結合対象1_430のプルダウンを選択してリストから第1の部品410を選択してもよいし、ストレージ111内のディレクトリから第1の部品410のCADデータを選択してもよい。
結合対象2_440は、結合対象となる第2の部品411の選択項目である。例えば、ユーザは、結合対象2_440のプルダウンを選択してリストから第2の部品411を選択してもよいし、ストレージ111内のディレクトリから第2の部品411のCADデータを選択してもよい。
結合ポイント450は、第1の部品410と、第2の部品411との結合場所の座標の設定項目である。ある局面において、結合ポイント450は、1つの座標のみを含んでいてもよいし、2つ以上の座標を含んでいてもよい。例えば、結合ポイント450は、ネジ穴の中心軸、第1の部品410の面と第2の部品411の面とが接触する位置、スライド部品のスライド方向等を含み得る。ユーザは、3D表示画面402上で、ツール420をマウスまたはタッチパネル等により操作することで、結合ポイント450を選択し得る。または、ユーザは、結合ポイント450に座標を直接入力してもよい。
結合部の接続方法460は、第1の部品410と、第2の部品411との接続の種類の設定項目である。例えば、結合部の接続方法460は、スライダージョイント、ヒンジジョイント、ポールジョイント、回転ジョイント、固定ジョイント等の任意の接続方法を含み得る。
移動距離470は、第1の部品410(可動部品)の移動距離の範囲の設定項目である。ユーザは、図14~図16を参照して後述するアセンブリの試運転の実行結果に基づいて、移動距離470を適宜変更し得る。
図5は、結合設定画面におけるスナッピングモードの例を示す図である。結合設定画面500は、結合設定画面400において、スナッピングモード510を有効にした場合の画面である。スナッピングモード510において、カーソルは、部品の特定の部位にスナップする。特定の部位とは、例えば、長方形のエッジ、円の外周、円の中心等である。ユーザは、スナッピングモード510を有効にすることで、ネジ穴の中心等の結合ポイントになりやすい部位を容易に選択し得る。図5に示される例では、カーソルは、第1の部品410のネジ穴の外周上の点520にスナップされている。
図6は、結合設定画面における第1の設定例を示す図である。結合設定画面600は、上述した第1の部品410と第2の部品411との接続設定を表示している。結合設定画面600では、結合部の接続方法460として、スライダージョイントが選択されている。また、移動距離470の入力項目は、スライド距離の最大値および最小値になっている。
図7は、結合設定画面における第2の設定例を示す図である。結合設定画面700は、第1の部品710と第2の部品711との接続設定を表示している。結合設定画面700では、結合部の接続方法460として、ヒンジジョイントが選択されている。また、移動距離470の入力項目は開放可能角度の最大値および最小値になっている。
図8は、結合設定画面における第3の設定例を示す図である。結合設定画面800は、第1の部品810と第2の部品811との接続設定を表示している。第1の部品810および第2の部品811は、第1の部品710および第2の部品711と異なり、ジョイント部分がポールジョイントになっている。結合設定画面800では、結合部の接続方法460として、ポールジョイントが選択されている。また、移動距離470の入力項目は、Y軸最大開放可能角度およびZ軸最大開放可能角度になっている。
図9は、結合設定画面における第4の設定例を示す図である。結合設定画面900は、第1の部品910と第2の部品911との接続設定を表示している。第1の部品910および第2の部品911は、第1の部品710および第2の部品711と異なり、ジョイント部分が回転ジョイントになっている。結合設定画面900では、結合部の接続方法460として、回転ジョイントが選択されている。また、回転ジョイントの場合、移動距離の限度は存在しないため、移動距離470の入力項目は非表示になっている。
<D.動作方向設定>
次に、図10~図13を参照して、システム100が提供する動作方向設定機能およびそのUIについて説明する。ユーザは、図10~図13を参照して説明される動作方向設定画面を介して、第1の部品の動作方向を設定し得る。
図10は、動作方向設定画面の例を示す図である。動作方向設定画面1000は、動作方向設定入力パネル1001と、3D表示画面1002とを含む。3D表示画面1002には、結合関係を有する第1の部品1010および第2の部品1011と、第1の部品1010の動作方向を設定するためのツール1003,1004とが表示されている。ユーザは、マウス等でツール1003をドラッグもしくは選択、またはツール1004を回転させることにより、第1の部品1010の動作方向を設定し得る。
動作方向設定入力パネル1001は、第1の部品1010の動作方向の設定に関する。動作方向設定入力パネル1001は、設定項目として、部品名1020と、動作種別1030と、動作方向調整1040と、動作確認入力1050とを含む。
部品名1020は、可動する部品を選択する項目である。図10の例では、第1の部品1010が選択されている。
動作種別1030は、第1の部品1010の動作の種別を選択する項目である。動作種別は、直動、回転、および直動・回転の複合動作等の任意の動作を含み得る。ある局面において、動作種別1030の項目は、結合設定の画面の結合部の接続方法460の設定に基づいて、自動的に選択されてもよい。
動作方向調整1040は、第1の部品1010の動作の方向を調整する項目であり、動作を表現するための複数の座標(直動方向の始点および終点、回転軸を表す2点等)を含んでいてもよい。ユーザは、動作方向調整1040に対して直接数値を入力してもよい。また、ユーザは、マウス等でツール1003をドラッグもしくは選択、またはツール1004を回転させることにより、動作方向調整1040の数値を調整してもよい。
動作確認入力1050は、第1の部品1010の動作を確認するための項目である。ユーザは、動作確認入力1050に座標を入力、または動作確認入力1050に表示されるスライダを動かす等して、3D表示画面1002上の第1の部品1010の動作を確認することができる。動作確認入力1050の表示内容は、動作種別1030において選択された動作によって変更され得る。
図11は、動作方向設定画面における第1の設定例を示す図である。動作方向設定画面1100は、上述した第1の部品1010の動作方向設定を表示している。動作方向設定画面1100では、動作種別1030として、直動が選択されている。また、動作方向調整1040として、第1の部品1010が直動する方向(ツール1003,1004によって調整可能)が設定されている。動作確認入力1050として、第1の部品1010の直動距離を表すスライダと、スライダの上限および下限の入力欄が表示されている。ユーザは、スライダのグリッパを動かすことで第1の部品1010の動作を確認し得る。また、ユーザは、スライダの上限および下限の値を変更することで、第1の部品1010の動作範囲を変更し得る。
図12は、動作方向設定画面における第2の設定例を示す図である。3D表示画面1002には、結合関係を有する第1の部品1210および第2の部品1211と、第1の部品1210の動作方向を設定するためのツール1203,1204とが表示されている。動作方向設定画面1200は、第1の部品1210の動作方向設定を表示している。動作方向設定画面1200では、動作種別1030として、回転が選択されている。また、動作方向調整1040として、第1の部品1210の回転軸(ツール1203,1204によって調整可能)が設定されている。動作確認入力1050として、第1の部品1210の回転角度を表すスライダが表示されている。ユーザは、スライダのグリッパを動かすことで第1の部品1210の動作を確認し得る。
図13は、動作方向設定画面における第3の設定例を示す図である。3D表示画面1002には、結合関係を有する第1の部品1310および第2の部品1311と、第1の部品1310の動作方向を設定するためのツール1303,1304とが表示されている(第1,第2の部品の間の機構は省略している)。動作方向設定画面1300は、第1の部品1310の動作方向設定を表示している。動作方向設定画面1300では、動作種別1030として、直動・回転が選択されている。「直動・回転」は、直動および回転を含む複合動作を表す。また、動作方向調整1040として、第1の部品1310の直動方向設定1040Aと、第1の部品1310の回転軸設定1040Bとが設定されている。第1の部品1310の直動方向および回転軸は、いずれもツール1303,1304によって調整可能である。動作確認入力1050として、直動動作の動作確認入力1050Aと、回転動作の動作確認入力1050Bとが表示されている。ユーザは、直動動作の動作確認入力1050Aと、回転動作の動作確認入力1050Bとを操作することで第1の部品1310の動作を確認し得る。
<E.アセンブリの試運転>
次に、図14~図16を参照して、システム100が提供するアセンブリの試運転機能およびそのUIについて説明する。ユーザは、図14および図15を参照して説明される試運転画面を介して、アセンブリを動作させ得る。
図14は、アセンブリの試運転画面の例を示す図である。試運転画面1400は、試運転入力パネル1401と、3D表示画面1402とを含む。3D表示画面1402には、図10を参照して説明された第1の部品1010および第2の部品1011を含むアセンブリが表示されている。試運転入力パネル1401は、試運転の設定パネル1420を含む。試運転の設定パネル1420は、入力項目として、試運転機能の有効・無効の切り替え1421と、移動量1422と、回転量1423とを含む。また、試運転の設定パネル1420は、現在の可動部品の移動距離1424と、現在の可動部品の回転量1425とを表示し得る。ユーザは、試運転の設定パネル1420を介して、試運転機能の有効・無効の切り替え、可動部品の直動移動距離、回転量等を入力することができる。さらに、3D表示画面1402上の可動部品(図14の例では、第1の部品1010)は、試運転の設定パネル1420における入力値に基づいて動作する。
図15は、アセンブリの試運転画面の使用例を示す図である。ユーザは、移動量1422の値を更新することで、稼働部品である第1の部品1010を少しずつ動作させることができる。移動量1422の値が変化すると、3D表示画面1402上の可動部品である第1の部品1010の位置も変化する。図15の例では、第1の部品1010が一定以上動作することで、第1の部品1010と他の部品1510との接続が外れている。この表示は、第1の部品1010が一定以上動くことで、アセンブリが破損することを示している。このように、ユーザは、試運転画面において、可動部品を動作させることで、アセンブリ全体の動作を確認すると共に、どの程度可動部品を動作させることでアセンブリが破損するかについても確認することができる。
図16は、システム100に設定される結合設定の一例を示す図である。ユーザは、図4~図15に示される画面等を介して、システム100にアセンブリの結合設定を入力し得る。結合設定は、結合の種類によらず共通である「結合ポイントの座標」を含む。また、結合設定は、結合の種類毎の情報を含む。例えば、ヒンジジョイントであれば「解放可能角度(最大・最小)」が、ポールジョイントであれば「解放可能角度(Y軸の最大、Z軸の最大」が、スライダージョイントであれば「スライド距離(最大・最小)」が結合設定に含まれる。
<F.制御装置の設定およびシミュレーション機能>
次に、図17および図18を参照して、システム100が提供する制御装置の設定機能、シミュレーション機能(物理エンジン158と制御装置エミュレータとを連携させたシミュレーション機能)、およびこれらのUIについて説明する。
図17は、シミュレーションの実行画面の一例を示す図である。シミュレーションの実行画面1700A,1700B,1700Cは、シミュレーションの実行画面の遷移を示している。
図17の例では、アセンブリの結合設定および制御装置の設定が既に完了された状態であり、システム100は、物理エンジン158と制御装置エミュレータとを連携させたシミュレーションを実行している。ユーザは、システム100が提供するUIを介して、事前に制御装置の各IOの接続設定等を行い得る。制御装置エミュレータ159は、制御装置の設定に基づいて、各IOの入出力信号をエミュレートし得る。
シミュレーションの実行画面は、制御装置パネル1701と、3D表示画面1702とを含む。制御装置パネル1701は、シミュレーションの対象となるアセンブリとモータ等を介して接続される制御装置の情報を含む。ユーザは、制御装置パネル1701を介して、物理エンジン158と連携させる制御装置を選択し得る。ここで選択される制御装置とは、例えば、制御装置エミュレータ159が動作をシミュレートする制御装置のオブジェクトファイル等である。
また、制御装置パネル1701は、少なくとも、IO信号パネル1710を含む。IO信号パネル1710は、物理エンジン158と連携する制御装置が備える各IOの信号状態を示す。図17に示される各ブロックは、各IOに対応する。例えば、第1のIOが出力ポートとして使用される場合、ユーザは、第1のIOのブロックを選択することで、第1のIOのブロックの出力信号のオン/オフを切り替え得る。また、例えば、第2のIOが入力ポートとして使用される場合、第2のIOに入力される信号が変化した事に基づいて、第2のIOのブロックの表示(オン/オフを示す)が更新される。
次に、実行画面1700A,1700B,1700Cの遷移を例に、物理エンジン158および制御装置エミュレータ159の連携の一例について説明する。図17の例では、シミュレーションの対象は、図10を参照して説明された第1の部品1010と第2の部品1011とを含むアセンブリである。
実行画面1700A,1700B,1700Cは、制御装置がモータを介してアセンブリ(より具体的には第1の部品1010)を動作させてから、制御装置が第1の部品1010が予め定められた終了位置に到達したことを示す信号をセンサから取得するまでの一連の流れを示している。
実行画面1700Aでは、ユーザがIO信号パネル1710上のIO「1」のブロックをクリックしたことにより、IO制御装置のIO「1」の信号がオンになっている。IO「1」が入力ポートであれば、制御装置エミュレータ159は、制御装置のIO「1」の信号がオンになったことを検出し得る。また、ユーザプログラムが、IO「1」の信号がオンになったことに基づいて、モータドライバへの指令を出力する処理を含んでいるとする。この場合、制御装置エミュレータ159は、制御装置のIO「1」の信号がオンになったことに基づいて、アセンブリを動作させるモータに接続されたモータドライバに指令を出力する。
実行画面1700Bでは、指令を受けたモータドライバがモータに駆動信号を出力している。モータに駆動信号が出力されたことに基づいて、物理エンジン158は、モータの動作と、モータによって動作するアセンブリの動作とをシミュレートする。すなわち、物理エンジン158は、第1の部品1010の直動動作をシミュレートする。
ある局面において、モータドライバおよびモータの動作は、制御装置エミュレータ159によってエミュレートされてもよい。この場合、物理エンジン158は、制御装置エミュレータ159から、モータの動作量に関する情報を取得して、モータによって動作するアセンブリの動作をシミュレートする。
また、他の局面において、モータドライバおよびモータの動作は、物理エンジン158によってシミュレートされてもよい。この場合、物理エンジン158は、制御装置エミュレータ159から、モータドライバへの指令を取得して、モータの動作と、モータによって動作するアセンブリの動作とをシミュレートする。
さらに、他の局面において、モータドライバ動作は制御装置エミュレータ159によってエミュレートされ、モータの動作は物理エンジン158によってシミュレートされてもよい。この場合、物理エンジン158は、制御装置エミュレータ159から、モータドライバから出力される駆動信号を取得して、モータの動作と、モータによって動作するアセンブリの動作とをシミュレートする。
実行画面1700Cでは、IO信号パネル1710上のIO「2」の信号がオンになっている。例えば、IO「2」はユーザプログラムにより入力ポートとして設定されており、IO「2」は仮想センサ(図21の仮想センサ2111,2112参照)に接続されているとする。この場合、仮想センサは、第1の部品1010が終了位置に到達した場合、IO「2」に対して信号を出力する。仮想センサの詳細については、図21を参照して後述する。
上記のように、システム100は、制御装置の設定およびアセンブリの結合設定、さらには仮想センサの設定に基づいて、物理エンジン158および制御装置エミュレータ159を連携させて動作させる。これにより、ユーザは、ユーザプログラおよびアセンブリが意図したとおりに動作するか否かを確認し得る。
図18は、モータドライバの設定画面の一例を示す図である。システム100は、制御装置のIO設定だけでなく、モータドライバの設定機能を備える。制御装置エミュレータ159は、制御装置からモータドライバに、モータドライバの設定に基づく命令を出力することをエミュレートし得る。
モータドライバの設定画面1800は、項目として、対象コントローラ1810と、1以上の動作設定1820(図18の例では、第1の動作設定1830、第2の動作設定1831)とを含む。
対象コントローラ1810は、モータドライバに指令を送信する制御装置の設定項目である。対象コントローラ1810には、制御装置名または制御装置の識別子等が設定される。
動作設定1820は、制御装置から指令を受けた場合のモータドライバの動作の設定である。より具体的には、モータドライバによって駆動させられるサーボモータ等の速度、位置、角度等の設定である。動作設定1820は、項目として、開始変数1840と、終了変数1850と、動作番号変数1860と、動作パターン1870とを含む。
開始変数1840は、モータドライバに動作を開始させるトリガーとなる変数である。例えば、ユーザプログラム内で開始変数1840の値が「True」になると、制御装置はモータドライバに指令を送信する。
終了変数1850は、モータに接続されたアセンブリがターゲット位置に到達したことを示す変数である。制御装置は、アセンブリが予め定められた位置に到達したことを示すセンサの出力信号等に応じて、終了変数1850を書き換えてもよい。例えば、制御装置は、ユーザプログラム内で終了変数1850の値が「True」になると、モータドライバに停止指令を送信し得る。
動作番号変数1860は、動作設定を識別する変数である。動作設定1820は、第1の動作設定1830、第2の動作設定1831のように複数の動作設定を含み得る。ユーザプログラムは、動作番号変数1860で動作番号を指定することにより、適宜使用する動作設定を選択し得る。
動作パターン1870は、モータドライバが駆動させるモータ、またはモータによって動作するアセンブリの動作内容を定義する。動作パターン1870は、1以上の動作の組み合わせを登録し得る。各動作は、要素として、速度(回転速度)、位置、角度等を含み得る。
ある局面において、システム100は、ユーザプログラムのビルド時に、ユーザプログラムにモータドライバの設定画面1800の設定に基づくコードを組み込んでもよい。
<G.デバッグ機能>
次に、図19および図20を参照して、システム100が提供するデバッグ機能について説明する。
図19は、ユーザプログラムのデバッグ画面の第1の例を示す図である。ユーザは、デバッグ画面1900を参照して、アセンブリの動作を確認しながら、ユーザプログラムをデバッグし得る。
デバッグ画面1900は、エクスプローラ1901と、ユーザプログラムのコードエディタ1902と、ウォッチウィンドウ1903と、3D表示画面1904とを備える。ある局面において、デバッグ画面1900は、その他の任意の表示項目を含んでいてもよい。
エクスプローラ1901は、制御装置の設定、ネットワークの設定、増設機器の設定等の各種設定を選択するための表示である。
ユーザプログラムのコードエディタ1902は、ユーザプログラムを表示する。また、ユーザプログラムのコードエディタ1902は、ユーザプログラムに含まれる各変数の現在の値を表示し得る。ある局面において、ユーザプログラムのコードの画面と、各変数の現在の値の画面とは分離されていてもよい。
ウォッチウィンドウ1903は、ユーザが指定した変数の情報を表示する。例えば、ユーザは、ウォッチウィンドウ1903を用いることで、特に重要な変数の値の変化を追跡し得る。
3D表示画面1904は、アセンブリの動作を表示する。3D表示画面1904上のアセンブリの動作は、ユーザプログラムの動作と連動する。すなわち、ユーザプログラムのコードエディタ1902は、現在のユーザプログラムの実行状況(現在実行されているステップにおける各変数の値)を表し、3D表示画面1904は、現在のユーザプログラムによって動作したアセンブリの状態、またはユーザプログラムの各ステップに対応するアセンブリの状態を表している。ユーザは、ユーザプログラムおよびアセンブリの状態の両方を確認することで、現実に近い環境で製造ラインの動きを確認することができる。
図20は、ユーザプログラムのデバッグ画面の第2の例を示す図である。デバッグ画面2000は、デバッグ画面1900において、ブレークポイント機能を使用した状態を表している。
ユーザは、ユーザプログラムのコードエディタ1902上で特定の行(ステップとも呼ぶ)に、ブレークポイント2010を設定し得る。ブレークポイント2010が設定された状態でユーザプログラムが実行された場合、ユーザプログラムはブレークポイントで一時停止する。また、システム100は、ユーザプログラムのブレークポイントに対応する状態で、アセンブリの動作も一時停止させる。さらに、ウォッチウィンドウ1903は、ブレークポイントにおける、ウォッチ対象の変数の値を表示する。
例えば、ユーザは、ユーザプログラム上で問題が発生していると思われるステップまたはその直前のステップにブレークポイント2010を設定し、ブレークポイントにおける各変数の値と、アセンブリの動作状態とを確認することで、容易にプログラムまたはアセンブリの不具合を発見し得る。
ある局面において、システム100は、ユーザプログラムおよびアセンブリの動作シミュレーションの実行をステップ毎に行う機能を備えていてもよい。また、システム100は、ユーザプログラムおよびアセンブリの動作シミュレーションの実行の逆再生機能、またはステップ単位での逆再生機能を備えていてもよい。
<H.仮想センサ>
次に、図21を参照して、システム100が提供する仮想センサの設定機能およびそのUIについて説明する。現実のFAの製造ラインには各種センサが配置されていることが多い。そのため、より現実に近い環境でアセンブリのシミュレーションを行うためには、3D空間内にも制御装置エミュレータ159に信号を出力する仮想的なセンサを設置できることが望ましい。そこで、システム100は、以下の説明するように、仮想センサを3D空間に設置する機能を提供する。
図21は、仮想センサの設定画面の一例を示す図である。ユーザは、仮想センサの設定画面2100を介して、3D空間に仮想センサを設置すると共に、ユーザプログラムに仮想センサに関する処理を記述し得る。制御装置エミュレータ159は、仮想センサの設定に基づいて、仮想センサの入力信号をエミュレートし得る。
仮想センサの設定画面2100は、ユーザプログラムのコードエディタ2102と、3D表示画面2104とを備える。ユーザは、3D表示画面2104上に任意の数の仮想センサを配置することができる。図21の例では、仮想センサ2111,2112が3D表示画面2104上に配置されている。また、仮想センサは、線またはブロック等によりセンサが反応する領域を表現し得る。例えば、仮想センサ2111の線にアセンブリが接触した場合、変数「IsOpen」の値は「True」になる。また、仮想センサ2112の線にアセンブリが接触した場合、変数「IsClose」の値は「True」になる。さらに、システム100は、仮想センサと制御装置のIOとの接続関係の入力も受け付ける。
さらに、ユーザは、ユーザプログラムのコードエディタ2102に、3D表示画面2104上に配置された仮想センサに関するコードを記述し得る。例えば、ユーザは、変数「IsOpen」の値が「True」になったことに基づいて、ある処理を実行するコードを記述し得る。また、ユーザは、変数「IsClose」の値が「True」になったことに基づいて、別のある処理を実行するコードを記述し得る。
ユーザは、仮想センサの設定画面2100を介して、3D空間に仮想センサを設置すると共にユーザプログラムに仮想センサに関する処理を記述することで、より現実に近い環境でユーザプログラムおよびアセンブリの動作を検証し得る。
<I.フローチャート>
次に、図22および図23を参照してシステム100の処理手順について説明する。ある局面において、プロセッサ102は、図22および図23の処理を行うためのプログラム(統合開発環境130等)をストレージ111から主メモリ104に読み込んで、当該プログラムを実行してもよい。他の局面において、当該処理の一部または全部は、当該処理を実行するように構成された回路素子の組み合わせとしても実現され得る。また、他の局面において、各ステップの実行順序は任意に入れ替え可能である。例えば、ユーザの操作入力に基づく処理の順番は、ユーザが各操作を行う順番に応じて変動し得る。
図22は、システム100における各種設定の生成およびシミュレーションの実行までの一連の処理手順の一例を示すフローチャートである。
ステップS2210において、システム100は、可動部品のCADデータをインポートする。より具体的には、システム100が装置として提供される場合、システム100は、ユーザの操作に基づいて、ストレージ111に保存されたCADデータを統合開発環境130にインポートし得る。システム100がクラウドサービスとして提供される場合、システム100は、ユーザ端末のブラウザ等を介して取得したCADデータを統合開発環境130にインポートし得る。ある局面において、システム100は、複数の部品からなるアセンブリを含むCADデータをインポートしてもよい。他の局面において、システム100は、部品単位のCADデータを個別にインポートしてもよい。
ステップS2220において、システム100は、可動部品の動作方向の設定を行う。より具体的には、システム100は、図10~図13を参照して説明された動作方向設定画面を介して、ユーザから可動部品の動作方向の設定の入力を受け付け得る。システム100は、受け付けた動作方向の設定の入力に基づいて、可動部品の動作方向の設定を行う。
ステップS2230において、システム100は、部品間の結合の自動設定を行う。例えば、システム100は、各可動部品の動作方向設定および各部品の形状に基づいて、部品間の結合の自動設定を行い得る。
ステップS2240において、システム100は、部品間の結合設定の微調整を行う。より具体的には、システム100は、図4~図9を参照して説明された結合設定画面を介して、ユーザから可動部品の結合設定の入力を受け付け得る。システム100は、受け付けた結合設定の入力に基づいて、部品間の結合設定の微調整を行う。部品間の結合設定の微調整は、例えば、結合ポイントの調整、結合の種類の選択等を含み得る。
ステップS2250において、システム100は、可動部品の移動量の設定を行う。より具体的には、システム100は、図4~図9を参照して説明された結合設定画面を介して、ユーザから可動部品の動作範囲または移動量の入力を受け付け得る。システム100は、受け付けた動作範囲または移動量の設定の入力に基づいて、可動部品の移動量の設定を行う。ある局面において、ステップS2250の処理は、図14および図15を参照して説明された画面を介して、ユーザからアセンブリ単位の動作確認の操作を受け付ける処理を含んでいてもよい。
ステップS2260において、システム100は、制御装置の設定を行う。より具体的には、システム100は、制御装置の設定画面を介して、ユーザからの操作入力を受け付け、制御装置の設定を行い得る。ある局面において、ステップS2260の処理は、図15を参照して説明された画面を介して、ユーザからモータドライバの設定の操作を受け付ける処理を含んでいてもよい。
ステップS2270において、システム100は、物理エンジン158に結合設定を渡す。ある局面において、ステップS2270の処理は、制御装置エミュレータ159に制御装置の設定およびモータドライバの設定を渡す処理を含んでいてもよい。
ステップS2280において、システム100は、試運転を行う。より具体的には、システム100は、物理エンジン158および制御装置エミュレータ159を連携させてシミュレーションを実行し得る。ユーザは、図17を参照して説明した画面等を介して、制御装置の動作(各IOの信号の変化)およびアセンブリの動作を確認し得る。
ステップS2290において、システム100は、結合設定または制御装置の設定に関する再設定の入力があるか否かを判定する。システム100は、結合設定または制御装置の設定に関する再設定の入力があると判定した場合(ステップS2290にてYES)、制御をステップS2240に移す。そうでない場合(ステップS2290にてNO)、システム100は、処理を終了する。なお、ステップS2290の処理は一例であり、システム100は、ユーザから受け付けた設定変更等の操作に応じて、ステップS2210~ステップS2270までの任意の処理に制御を移してもよい。
図23は、システム100における仮想センサを用いたシミュレーションの手順の一例を示すフローチャートである。図23に示される処理は、図21を参照して説明された仮想センサの設定を用いた場合のシミュレーションの手順を表している。なお、図21に示されるアセンブリは、クランプ機構であり、一旦クランプを開き、その後、ワークを挟むためにクランプを閉じる動作を行う。
以降の処理は、制御装置を主体として説明するが、制御装置はインストールされたユーザプログラムに基づいて以下の処理を実行する。制御装置の動作は、実際には制御装置エミュレータ159によってエミュレートされる。制御装置によって動作するアセンブリの動作は、物理エンジン158によってシミュレートされる。
ステップS2310において、制御装置は、動作を開始する。より具体的には、IO「1」の信号がオンになったことに基づいて、制御装置は、モータドライバを介してアセンブリを動作させる。この時点では、クランプ(アセンブリ)は開いた状態である。
ステップS2320において、制御装置は、アセンブリが仮想センサ(変数)「IsOpen」と接触したことを検知する。
ステップS2330において、制御装置は、変数「IsOpen」の値が「True」になったことに基づいて、変数「clampIndex」の値を「1」にする。例えば、変数「clampIndex=1」は、クランプが予め定められた位置まで開いたことを示す。
ステップS2340において、制御装置は、クランプを閉じる方向に移動させる。より具体的には、制御装置は、モータドライバにモータの回転方向を変更する指令を送信する。
ステップS2350において、制御装置は、アセンブリが仮想センサ(変数)「IsClose」と接触したことを検知する。
ステップS2360において、制御装置は、変数「IsClose」の値が「True」になったことに基づいて、変数「clampIndex」の値を「0」にする。例えば、変数「clampIndex=0」は、クランプが予め定められた位置(ワークを挟み込む位置)まで閉じたことを示す。
ステップS2370において、制御装置は、クランプを開く方向(初期状態)に移動させる。より具体的には、制御装置は、モータドライバにモータの回転方向を変更する指令を送信する。
以上説明した通り、本実施の形態に従うシステム100は、物理エンジン158および制御装置エミュレータ159を連携させることで、ユーザプログラムおよびアセンブリの動作の両方を検証することを可能にする。
また、システム100は、アセンブリの結合設定を調整する機能を提供することで、部品の形状のみからでは判別が困難である結合ポイント、動作方向、動作の種類等の詳細な設定を可能にする。
また、システム100は、制御装置の設定機能、プログラム実行状況およびシミュレーション画面の同時表示機能、および、デバッグ機能(ステップ実行、ブレークポイント機能等)を提供することで、アセンブリの動作およびプログラムの変数の値を確認しながらのデバッグを可能にする。
さらに、システム100は、仮想センサをシミュレーション内に設置する機能を提供することで、より現実環境に近いシミュレーションの実行を可能にする。
なお、本開示の技術は、システム100の機能を提供するクラウドサービス、スタンドアロンで動作する配布可能なソフトウェア、システム100の機能を提供するソフトウェアをインストールされたパーソナルコンピュータ等の任意の手段により実現され得る。
<J.付記>
以上のように、本実施の形態は以下のような開示を含む。
[構成1]
シミュレーションのプログラムであって、
コンピュータ(300)に、
アセンブリを構成する複数の部品データを取得することと、
上記複数の部品データの各々の間の結合設定を生成することと、
ユーザからの操作入力を受け付けることと、
ユーザからの操作入力に基づいて、上記結合設定を調整することと、
ユーザプログラムに基づいて上記アセンブリを制御する制御装置をエミュレートすることと、
3D(Dimensional)空間において、上記アセンブリを動作させることとを実行させ、
上記アセンブリを動作させることは、調整された上記結合設定に基づいて、上記複数の部品データの各々を連動させて動作させることを含む、プログラム。
[構成2]
上記結合設定の調整は、上記複数の部品データの各々の間の結合の種類の選択、結合ポイントの調整、および、上記複数の部品データに含まれる第1の部品の動作方向の設定を含む、構成1に記載のプログラム。
[構成3]
上記コンピュータ(300)に、上記ユーザからの操作入力を受け付ける画面において、上記3D空間における上記複数の部品データの各々の部位にカーソルをスナップすることをさらに実行させる、構成1または2に記載のプログラム。
[構成4]
上記コンピュータ(300)に、上記アセンブリに含まれる可動部品の移動量の入力を受け付けることをさらに実行させ、
上記アセンブリを動作させることは、上記アセンブリの試運転の画面において、上記アセンブリに含まれる可動部品の移動量が入力されたことに基づいて、上記3D空間上で上記複数の部品データの各々を動作させることを含む、構成3に記載のプログラム。
[構成5]
上記コンピュータ(300)に、上記制御装置が有する複数のインターフェイスの各々の設定を受け付けることをさらに実行させ、
上記複数のインターフェイスの各々の設定は、上記複数のインターフェイスの各々が接続される装置、機械またはセンサの設定を含み、
上記制御装置をエミュレートすることは、上記複数のインターフェイスの各々の設定に基づいて、上記複数のインターフェイスの各々の入出力信号をエミュレートすることを含む、構成1~4のいずれかに記載のプログラム。
[構成6]
上記コンピュータ(300)に、上記制御装置によって制御されるモータドライバの動作設定を受け付けることをさらに実行させ、
上記制御装置をエミュレートすることは、上記制御装置から上記モータドライバに上記動作設定に対応する命令を出力することを含む、構成1~5のいずれかに記載のプログラム。
[構成7]
上記コンピュータ(300)に、仮想センサの設定の入力を受け付けることをさらに実行させ、
上記仮想センサの設定は、上記3D空間上への上記仮想センサの設置情報と、上記仮想センサと上記制御装置のあるインターフェイスとの接続情報とを含み、
上記制御装置をエミュレートすることは、上記仮想センサの設定に基づいて、上記制御装置における上記仮想センサの入力信号をエミュレートすることを含む、構成1~6のいずれかに記載のプログラム。
[構成8]
上記コンピュータ(300)に、エミュレーションによる上記ユーザプログラムの実行結果と、シミュレーションの実行結果とを表示することをさらに実行させ、
上記エミュレーションによる上記ユーザプログラムの実行結果と、上記シミュレーションの実行結果とを表示することは、上記ユーザプログラムの各ステップの実行結果と、上記ユーザプログラムの各ステップに対応するシミュレーションの実行結果とを表示することを含む、構成1~7のいずれかに記載のプログラム。
[構成9]
上記コンピュータ(300)に、
上記ユーザプログラムにブレークポイントを設定する入力を受け付けることと、
上記ユーザプログラムが上記ブレークポイントにて停止したことに基づいて、上記ブレークポイントに対応するシミュレーションの実行結果を表示することとをさらに実行させる、構成8に記載のプログラム。
[構成10]
アセンブリの動作のシミュレーションシステム(100)であって、
上記アセンブリを構成する複数の部品データを取得する部品取得部(152)と、
上記複数の部品データの各々の間の結合設定を生成する自動結合部(153)と、
ユーザからの操作入力を受け付ける操作入力部(151)と、
ユーザからの操作入力に基づいて、上記結合設定を調整するための結合調整部(154)と、
ユーザプログラムに基づいて上記アセンブリを制御する制御装置のエミュレータ(159)と、
3D(Dimensional)空間において、上記アセンブリを動作させる物理エンジン(158)とを備え、
上記物理エンジン(158)は、上記結合調整部(154)により調整された上記結合設定に基づいて、上記複数の部品データの各々を連動させて動作させる、シミュレーションシステム(100)。
[構成11]
上記結合設定を調整することは、上記複数の部品データの各々の間の結合の種類の選択、結合ポイントの調整、および、上記複数の部品データに含まれる第1の部品の動作方向の設定を含む、構成10に記載のシミュレーションシステム(100)。
[構成12]
上記操作入力部(151)は、上記3D空間において、上記複数の部品データの各々の部位にカーソルをスナップ可能に構成される、構成10または11に記載のシミュレーションシステム(100)。
[構成13]
上記操作入力部(151)は、上記アセンブリの移動量の入力を受け付け、
上記物理エンジン(158)は、上記アセンブリの試運転の画面において、上記アセンブリの移動量が入力されたことに基づいて、上記3D空間上で上記複数の部品データの各々を動作させる、構成12に記載のシミュレーションシステム(100)。
[構成14]
上記操作入力部(151)は、上記制御装置が有する複数のインターフェイスの各々の設定を受け付け、
上記複数のインターフェイスの各々の設定は、上記複数のインターフェイスの各々が接続される装置、機械またはセンサの設定を含み、
上記エミュレータ(159)は、上記複数のインターフェイスの各々の設定に基づいて、上記複数のインターフェイスの各々の入出力信号をエミュレートする、構成10~13のいずれかに記載のシミュレーションシステム(100)。
[構成15]
上記操作入力部(151)は、上記制御装置によって制御されるモータドライバの動作設定をさらに受け付け、
上記エミュレータ(159)は、上記制御装置から上記モータドライバに上記動作設定に対応する命令を出力する、構成10~14のいずれかに記載のシミュレーションシステム(100)。
[構成16]
上記操作入力部(151)は、仮想センサの設定の入力を受け付け、
上記仮想センサの設定は、上記3D空間上への上記仮想センサの設置情報と、上記仮想センサと上記制御装置のあるインターフェイスとの接続情報とを含み、
上記エミュレータ(159)は、上記仮想センサの設定に基づいて、上記制御装置における上記仮想センサの入力信号をエミュレートする、構成9~15のいずれかに記載のシミュレーションシステム(100)。
[構成17]
上記エミュレータ(159)による上記ユーザプログラムの実行結果と、上記物理エンジン(158)によるシミュレーションの実行結果とを表示するための表示部をさらに備え、
上記表示部は、上記ユーザプログラムの各ステップの実行結果と、上記ユーザプログラムの各ステップに対応するシミュレーションの実行結果とを表示する、構成10~16のいずれかに記載のシミュレーションシステム(100)。
[構成18]
上記操作入力部(151)は、上記ユーザプログラムにブレークポイントを設定する入力を受け付け、
上記表示部は、上記ユーザプログラムが上記ブレークポイントにて停止したことに基づいて、上記ブレークポイントに対応するシミュレーションの実行結果を表示する、構成17に記載のシミュレーションシステム(100)。
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本開示の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内で全ての変更が含まれることが意図される。また、実施の形態および各変形例において説明された開示内容は、可能な限り、単独でも、組合わせても、実施することが意図される。
10,20 アセンブリ、11,12,13,14,21,22,23,24,25,1510 部品、100 システム、102 プロセッサ、104 主メモリ、106 操作ユニット、108 出力ユニット、109 ディスプレイ、110 ネットワークインターフェイス、111 ストレージ、112 光学ドライブ、114 記録媒体、116 ローカル通信インターフェイス、130 統合開発環境、151 操作入力部、152 部品取得部、153 自動結合部、154 結合調整部、155 動作設定部、156 制御装置設定部、157 試運転部、158 物理エンジン、159 制御装置エミュレータ、160 モータドライバエミュレータ、161 表示部、300 装置、400,500,600,700,800,900 結合設定画面、401 結合設定入力パネル、402,1002,1402,1702,1904,2104 表示画面、410,710,810,910,1010,1210,1310 第1の部品、411,711,811,911,1011,1211,1311 第2の部品、420,1003,1004,1203,1204,1303,1304 ツール、430 結合対象1、440 結合対象2、450 結合ポイント、460 結合部の接続方法、470 移動距離、510 スナッピングモード、1000,1100,1200,1300 動作方向設定画面、1001 動作方向設定入力パネル、1020 部品名、1030 動作種別、1040 動作方向調整、1040A 直動方向設定、1040B 回転軸設定、1050,1050A,1050B 動作確認入力、1400 試運転画面、1401 試運転入力パネル、1420 設定パネル、1421 試運転機能の有効・無効の切り替え、1422 移動量、1423 回転量、1424 現在の可動部品の移動量、1425 現在の可動部品の回転量、1700A,1700B,1700C 実行画面、1701 制御装置パネル、1710 信号パネル、1800,2100 設定画面、1810 対象コントローラ、1820 動作設定、1830 第1の動作設定、1831 第2の動作設定、1840 開始変数、1850 終了変数、1860 動作番号変数、1870 動作パターン、1900,2000 デバッグ画面、1901 エクスプローラ、1902,2102 コードエディタ、1903 ウォッチウィンドウ、2010 ブレークポイント、2111,2112 仮想センサ。

Claims (18)

  1. シミュレーションのプログラムであって、
    コンピュータに、
    アセンブリを構成する複数の部品データを取得することと、
    前記複数の部品データの各々の間の結合設定を生成することと、
    ユーザからの操作入力を受け付けることと、
    ユーザからの操作入力に基づいて、前記結合設定を調整することと、
    ユーザプログラムに基づいて前記アセンブリを制御する制御装置をエミュレートすることと、
    3D(Dimensional)空間において、前記アセンブリを動作させることとを実行させ、
    前記アセンブリを動作させることは、調整された前記結合設定に基づいて、前記複数の部品データの各々を連動させて動作させることを含む、プログラム。
  2. 前記結合設定の調整は、前記複数の部品データの各々の間の結合の種類の選択、結合ポイントの調整、および、前記複数の部品データに含まれる第1の部品の動作方向の設定を含む、請求項1に記載のプログラム。
  3. 前記コンピュータに、前記ユーザからの操作入力を受け付ける画面において、前記3D空間における前記複数の部品データの各々の部位にカーソルをスナップすることをさらに実行させる、請求項1または2に記載のプログラム。
  4. 前記コンピュータに、前記アセンブリに含まれる可動部品の移動量の入力を受け付けることをさらに実行させ、
    前記アセンブリを動作させることは、前記アセンブリの試運転の画面において、前記アセンブリに含まれる可動部品の移動量が入力されたことに基づいて、前記3D空間上で前記複数の部品データの各々を動作させることを含む、請求項3に記載のプログラム。
  5. 前記コンピュータに、前記制御装置が有する複数のインターフェイスの各々の設定を受け付けることをさらに実行させ、
    前記複数のインターフェイスの各々の設定は、前記複数のインターフェイスの各々が接続される装置、機械またはセンサの設定を含み、
    前記制御装置をエミュレートすることは、前記複数のインターフェイスの各々の設定に基づいて、前記複数のインターフェイスの各々の入出力信号をエミュレートすることを含む、請求項1~4のいずれかに記載のプログラム。
  6. 前記コンピュータに、前記制御装置によって制御されるモータドライバの動作設定を受け付けることをさらに実行させ、
    前記制御装置をエミュレートすることは、前記制御装置から前記モータドライバに前記動作設定に対応する命令を出力することを含む、請求項1~5のいずれかに記載のプログラム。
  7. 前記コンピュータに、仮想センサの設定の入力を受け付けることをさらに実行させ、
    前記仮想センサの設定は、前記3D空間上への前記仮想センサの設置情報と、前記仮想センサと前記制御装置のあるインターフェイスとの接続情報とを含み、
    前記制御装置をエミュレートすることは、前記仮想センサの設定に基づいて、前記制御装置における前記仮想センサの入力信号をエミュレートすることを含む、請求項1~6のいずれかに記載のプログラム。
  8. 前記コンピュータに、エミュレーションによる前記ユーザプログラムの実行結果と、シミュレーションの実行結果とを表示することをさらに実行させ、
    前記エミュレーションによる前記ユーザプログラムの実行結果と、前記シミュレーションの実行結果とを表示することは、前記ユーザプログラムの各ステップの実行結果と、前記ユーザプログラムの各ステップに対応するシミュレーションの実行結果とを表示することを含む、請求項1~7のいずれかに記載のプログラム。
  9. 前記コンピュータに、
    前記ユーザプログラムにブレークポイントを設定する入力を受け付けることと、
    前記ユーザプログラムが前記ブレークポイントにて停止したことに基づいて、前記ブレークポイントに対応するシミュレーションの実行結果を表示することとをさらに実行させる、請求項8に記載のプログラム。
  10. アセンブリの動作のシミュレーションシステムであって、
    前記アセンブリを構成する複数の部品データを取得する部品取得部と、
    前記複数の部品データの各々の間の結合設定を生成する自動結合部と、
    ユーザからの操作入力を受け付ける操作入力部と、
    ユーザからの操作入力に基づいて、前記結合設定を調整するための結合調整部と、
    ユーザプログラムに基づいて前記アセンブリを制御する制御装置のエミュレータと、
    3D(Dimensional)空間において、前記アセンブリを動作させる物理エンジンとを備え、
    前記物理エンジンは、前記結合調整部により調整された前記結合設定に基づいて、前記複数の部品データの各々を連動させて動作させる、シミュレーションシステム。
  11. 前記結合設定を調整することは、前記複数の部品データの各々の間の結合の種類の選択、結合ポイントの調整、および、前記複数の部品データに含まれる第1の部品の動作方向の設定を含む、請求項10に記載のシミュレーションシステム。
  12. 前記操作入力部は、前記3D空間において、前記複数の部品データの各々の部位にカーソルをスナップ可能に構成される、請求項10または11に記載のシミュレーションシステム。
  13. 前記操作入力部は、前記アセンブリの移動量の入力を受け付け、
    前記物理エンジンは、前記アセンブリの試運転の画面において、前記アセンブリの移動量が入力されたことに基づいて、前記3D空間上で前記複数の部品データの各々を動作させる、請求項12に記載のシミュレーションシステム。
  14. 前記操作入力部は、前記制御装置が有する複数のインターフェイスの各々の設定を受け付け、
    前記複数のインターフェイスの各々の設定は、前記複数のインターフェイスの各々が接続される装置、機械またはセンサの設定を含み、
    前記エミュレータは、前記複数のインターフェイスの各々の設定に基づいて、前記複数のインターフェイスの各々の入出力信号をエミュレートする、請求項10~13のいずれかに記載のシミュレーションシステム。
  15. 前記操作入力部は、前記制御装置によって制御されるモータドライバの動作設定をさらに受け付け、
    前記エミュレータは、前記制御装置から前記モータドライバに前記動作設定に対応する命令を出力する、請求項10~14のいずれかに記載のシミュレーションシステム。
  16. 前記操作入力部は、仮想センサの設定の入力を受け付け、
    前記仮想センサの設定は、前記3D空間上への前記仮想センサの設置情報と、前記仮想センサと前記制御装置のあるインターフェイスとの接続情報とを含み、
    前記エミュレータは、前記仮想センサの設定に基づいて、前記制御装置における前記仮想センサの入力信号をエミュレートする、請求項10~15のいずれかに記載のシミュレーションシステム。
  17. 前記エミュレータによる前記ユーザプログラムの実行結果と、前記物理エンジンによるシミュレーションの実行結果とを表示するための表示部をさらに備え、
    前記表示部は、前記ユーザプログラムの各ステップの実行結果と、前記ユーザプログラムの各ステップに対応するシミュレーションの実行結果とを表示する、請求項10~16のいずれかに記載のシミュレーションシステム。
  18. 前記操作入力部は、前記ユーザプログラムにブレークポイントを設定する入力を受け付け、
    前記表示部は、前記ユーザプログラムが前記ブレークポイントにて停止したことに基づいて、前記ブレークポイントに対応するシミュレーションの実行結果を表示する、請求項17に記載のシミュレーションシステム。
JP2021175328A 2021-10-27 2021-10-27 シミュレーションのためのプログラムおよびシステム Pending JP2023064893A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2021175328A JP2023064893A (ja) 2021-10-27 2021-10-27 シミュレーションのためのプログラムおよびシステム
PCT/JP2022/036480 WO2023074249A1 (ja) 2021-10-27 2022-09-29 シミュレーションのためのプログラムおよびシステム
CN202280065052.XA CN118043814A (zh) 2021-10-27 2022-09-29 用于仿真的程序和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021175328A JP2023064893A (ja) 2021-10-27 2021-10-27 シミュレーションのためのプログラムおよびシステム

Publications (1)

Publication Number Publication Date
JP2023064893A true JP2023064893A (ja) 2023-05-12

Family

ID=86157875

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021175328A Pending JP2023064893A (ja) 2021-10-27 2021-10-27 シミュレーションのためのプログラムおよびシステム

Country Status (3)

Country Link
JP (1) JP2023064893A (ja)
CN (1) CN118043814A (ja)
WO (1) WO2023074249A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220055216A1 (en) * 2020-08-20 2022-02-24 Smart Building Tech Co., Ltd. Cloud based computer-implemented system and method for grouping action items on visual programming panel in robot simulator

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3361007B2 (ja) * 1995-11-07 2003-01-07 富士通株式会社 リンク機構解析装置
JP2001202393A (ja) 2000-01-21 2001-07-27 Mitsubishi Electric Corp 部品接続関係抽出方法及び部品接続関係抽出装置
JP4199491B2 (ja) * 2002-07-26 2008-12-17 富士通株式会社 機構モデルシミュレータ、プログラム
JP2006190183A (ja) 2005-01-07 2006-07-20 Fujitsu Ltd 拘束部品抽出プログラムおよび拘束部品抽出方法
JP7456249B2 (ja) * 2020-04-10 2024-03-27 オムロン株式会社 シミュレーションのためのプログラムおよび装置

Also Published As

Publication number Publication date
CN118043814A (zh) 2024-05-14
WO2023074249A1 (ja) 2023-05-04

Similar Documents

Publication Publication Date Title
TWI521316B (zh) 可程式邏輯控制器的周邊裝置及除錯支援程式產品
CN109814478B (zh) 基于iOpenWorks的虚拟调试系统
EP2244143B1 (en) Method and device for programming an industrial controller of an automated installation
JP6476594B2 (ja) シミュレーションシステム
JP2020013526A (ja) プログラマブルロジックコントローラおよびメインユニット
JP2006350549A (ja) 統合シミュレーションシステム
WO2023074249A1 (ja) シミュレーションのためのプログラムおよびシステム
KR20040007701A (ko) 제조 설비의 설계를 지원하기 위한 방법 및 시스템
KR102198204B1 (ko) 시뮬레이션 장치
Dzinic et al. Simulation-based verification of PLC programs
JP2012104081A (ja) 分離型リアルタイム車両運動シミュレーション・システム
JP7212496B2 (ja) プログラマブルロジックコントローラシステム、プログラム作成支援装置およびコンピュータプログラム
DUMITRAȘCU et al. Virtual commissioning of a robotic cell using tecnomatix process simulate
JP2022189270A (ja) シミュレーションシステム、シミュレーション方法およびシミュレーションプログラム
US11983363B1 (en) User gesture behavior simulation system and user gesture behavior simulation method applied thereto
US20230004482A1 (en) Simulation system, method for simulation system, and non-transitory computer-readable storage medium storing simulation program
Pang et al. Systematic closed-loop modelling in IEC 61499 function blocks: A case study
US11960379B2 (en) Simulation system, method for simulation system, and non-transitory computer-readable storage medium storing simulation program
US20230367558A1 (en) Engineering Station and Method for Diagnosing a User Program
US20220057769A1 (en) Programmable microgrid control system
JP7412076B2 (ja) プログラマブルロジックコントローラ用のエンジニアリングツール
JP2012248055A (ja) シミュレーション装置及びシミュレーション方法
JP2023151726A (ja) 開発装置、開発プログラムおよび開発方法
KR101522430B1 (ko) 실시간 시뮬레이터를 이용한 파트 프로그램의 그래픽 설명 정보 제공 장치 및 방법
JP2023547855A (ja) コードを書くことなしに自動化インタフェース及びプロセスをオーサリングし開発するためのシステム及び機器