JP2022189270A - シミュレーションシステム、シミュレーション方法およびシミュレーションプログラム - Google Patents

シミュレーションシステム、シミュレーション方法およびシミュレーションプログラム Download PDF

Info

Publication number
JP2022189270A
JP2022189270A JP2021097766A JP2021097766A JP2022189270A JP 2022189270 A JP2022189270 A JP 2022189270A JP 2021097766 A JP2021097766 A JP 2021097766A JP 2021097766 A JP2021097766 A JP 2021097766A JP 2022189270 A JP2022189270 A JP 2022189270A
Authority
JP
Japan
Prior art keywords
assembly
program
simulation system
simulation
component
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
JP2021097766A
Other languages
English (en)
Inventor
はる奈 大貫
Haruna Onuki
慎太郎 岩村
Shintaro Iwamura
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 JP2021097766A priority Critical patent/JP2022189270A/ja
Priority to EP22175653.9A priority patent/EP4102389A1/en
Priority to CN202210580222.XA priority patent/CN115469562A/zh
Priority to US17/826,472 priority patent/US20220397881A1/en
Publication of JP2022189270A publication Critical patent/JP2022189270A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B17/00Systems involving the use of models or simulators of said systems
    • G05B17/02Systems involving the use of models or simulators of said systems electric
    • 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
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/17Mechanical parametric or variational design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23456Model machine for simulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Automation & Control Theory (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Architecture (AREA)
  • Human Computer Interaction (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Programmable Controllers (AREA)
  • Stored Programmes (AREA)
  • General Factory Administration (AREA)

Abstract

Figure 2022189270000001
【課題】予め用意されていない部品を組み合わせたアセンブリのシミュレーションの実行を可能にする技術を提供する。
【解決手段】シミュレーションシステムは、シミュレーションのためのデータを格納する記憶部と、シミュレーションを実行する制御部とを備える。制御部は、第1の部品および第2の部品の登録操作を受け付け(S1620,S1630)、第1の部品および第2の部品からなるアセンブリの動作を設定する操作を受け付け(S1640)、第1の部品と、第2の部品と、アセンブリの動作情報とに基づいて、アセンブリを動作させるためのプログラムを生成し(S1650)、第1の部品と、第2の部品と、アセンブリの動作情報と、プログラムとをシミュレーションのためのデータとして記憶部に格納する。
【選択図】図16

Description

本開示は、シミュレーションに関し、より特定的には、シミュレーションに使用するデータのカスタム機能に関する。
コンピュータを用いたシミュレーションは様々な技術分野に応用されている。このようなシミュレーションを用いることで、現実の装置が存在しない状態であっても、様々な事前検討が可能となる。
シミュレーションに関し、例えば、特開2021-045797号公報(特許文献1)は、「付属機器が装着された第1の機器に対応する仮想空間に配置された第1の対象の挙動を算出する第1の挙動算出部と、第2の機器に対応する仮想空間における第2の対象の挙動を算出する第2の挙動算出部を備え、第2の機器は付属機器を含む。所定のタイムステップ毎に、当該タイムステップにおいて、第1の挙動算出部は付属機器が装着された第1の機器に対応する第1の対象の挙動を算出し、その後に、第2の挙動算出部が当該算出された第1の対象の挙動に基づき第1の機器に装着された付属機器の挙動を算出する」装置を開示している([要約]参照)。
特開2021-045797号公報
特許文献1に開示された技術によると、予め用意されていない部品を組み合わせたアセンブリのシミュレーションを実行することができない。したがって、予め用意されていない部品を組み合わせたアセンブリのシミュレーションの実行を可能にするための技術が必要とされている。
本開示は、上記のような背景に鑑みてなされたものであって、ある局面における目的は、予め用意されていない部品を組み合わせたアセンブリのシミュレーションの実行を可能にするための技術を提供することにある。
ある実施の形態に従うと、シミュレーションシステムが提供される。シミュレーションシステムは、シミュレーションのためのデータを格納する記憶部と、シミュレーションを実行する制御部とを備える。制御部は、第1の部品および第2の部品の登録操作を受け付け、第1の部品および第2の部品からなるアセンブリの動作を設定する操作を受け付け、第1の部品と、第2の部品と、アセンブリの動作情報とに基づいて、アセンブリを動作させるためのプログラムを生成し、第1の部品と、第2の部品と、アセンブリの動作情報と、プログラムとをシミュレーションのためのデータとして記憶部に格納する。
この開示によれば、シミュレーションシステムは、任意の部品からなるアセンブリをシミュレーションのために必要なデータとして、保存し得る。
上記の開示において、アセンブリの動作を設定する操作を受け付けることは、第1の部品と第2の部品とをアセンブリに登録する操作を受け付けることと、第2の部品の動作を設定する操作を受け付けることと、第1の部品と第2の部品との間の接続を設定する操作を受け付けることとを含む。
この開示によれば、シミュレーションシステムは、登録したアセンブリに含まれる各部品の動作と、部品間の接続とを設定し得る。
上記の開示において、第2の部品の動作を設定する操作を受け付けることは、第2の部品の動作の種類を選択する操作を受け付けることと、第2の部品の動作の範囲を設定する操作を受け付けることとを含む。
この開示によれば、シミュレーションシステムは、可動部品の動作の種類を選択すると共に、動作範囲を設定し得る。
上記の開示において、プログラムは、アセンブリのラダープログラムを含む。プログラムを生成することは、アセンブリの機能ごとにモジュールを分割して、ラダープログラムを生成することを含む。
この開示によれば、シミュレーションシステムは、アセンブリの機能ごとにモジュールを分割して、ラダープログラムを生成し得る。その結果、ラダープログラムの可読性が向上し、ユーザはラダープログラムを容易にデバッグし得る。
上記の開示において、プログラムを生成することは、アセンブリの機能ごとにセクションを変更して、ラダープログラムを生成することを含む。
この開示によれば、シミュレーションシステムは、アセンブリの機能ごとにセクションを変更し得る。その結果、ラダープログラムの再利用性が向上する。
上記の開示において、プログラムを生成することは、第1の部品と、第2の部品と、アセンブリの動作情報とに基づいて、プログラムに含まれる1または複数の変数を生成することを含む。
この開示によれば、シミュレーションシステムは、第1の部品と、第2の部品と、アセンブリの動作情報とに基づいて、プログラムに挿入するための変数を自動的に生成し得る。
上記の開示において、プログラムは、テキストコードを含む。プログラムを生成することは、記憶部から、テキストコードに含まれる命令を定義したテンプレートを取得することと、テンプレートに、変数を挿入してテキストコードを生成することとを含む。
この開示によれば、シミュレーションシステムは、テンプレートに従い、可読性の高いテキストコードを生成し得る。その結果、ユーザは、容易にテキストコードの編集およびデバッグを行い得る。
上記の開示において、制御部は、プログラムの編集操作を受け付ける。
この開示によれば、シミュレーションシステムは、生成したプログラムの編集操作を受け付け得る。すなわち、ユーザは、自動生成されたプログラムを編集することで、一からコーディングするよりも効率的に所望のプログラムを開発し得る。
他の実施の形態に従うと、コンピュータによって実行されるシミュレーション方法が提供される。シミュレーション方法は、第1の部品および第2の部品の登録操作を受け付けるステップと、第1の部品および第2の部品からなるアセンブリの動作を設定する操作を受け付けるステップと、第1の部品と、第2の部品と、アセンブリの動作情報とに基づいて、アセンブリを動作させるためのプログラムを生成するステップと、第1の部品と、第2の部品と、アセンブリの動作情報と、プログラムとをシミュレーションのためのデータとして保存するステップとを含む。
この開示によれば、シミュレーション方法は、任意の部品からなるアセンブリをシミュレーションのために必要なデータとして保存し得る。
さらに他の実施の形態に従うと、上記の方法をコンピュータに実行させるためのシミュレーションプログラムが提供される。
この開示によれば、シミュレーションプログラムは、任意の部品からなるアセンブリをシミュレーションのために必要なデータとして保存し得る。
ある実施の形態に従うと、予め用意されていない部品を組み合わせたアセンブリのシミュレーションの実行を可能にすることが可能である。
この開示内容の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解される本開示に関する次の詳細な説明から明らかとなるであろう。
ある実施の形態に従うシミュレーションシステムにおいてシミュレーション可能なアセンブリの一例を示す図である。 ある実施の形態に従うシミュレーション技術を適用可能な機械を含む制御システム2のユニット構成の一例を示す図である。 シミュレーションシステムとして動作する装置の構成の一例を示す図である。 装置100が備えるコンポーネントの一例を示す図である。 シミュレーションシステムへの部品の追加の流れの第1の例を示す図である。 シミュレーションシステムへの部品の追加の流れの第2の例を示す図である。 シミュレーションシステムへの部品の追加の流れの第3の例を示す図である。 シミュレーションシステムへの部品の追加の流れの第4の例を示す図である。 シミュレーションシステムによるプログラム生成の手順の第1の例を示す図である。 シミュレーションシステムによるプログラム生成の手順の第2の例を示す図である。 シミュレーションシステムによるプログラム生成の手順の第3の例を示す図である。 シミュレーションシステムによるプログラム生成の手順の第4の例を示す図である。 シミュレーションシステムによるプログラム生成の手順の第5の例を示す図である。 シミュレーションシステムによるプログラム生成の手順の第6の例を示す図である。 シミュレーションシステムによるプログラム生成の手順の第7の例を示す図である。 シミュレーションシステムの内部処理の流れの一例を示すフローチャートである。
以下、図面を参照しつつ、本開示に係る技術思想の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
<A.適用例>
図1は、本実施の形態に従うシミュレーションシステムにおいてシミュレーション可能なアセンブリの一例を示す図である。本実施の形態に従うシミュレーションシステム(以下、「シミュレーションシステム」と呼ぶ)は、FA(Factory Automation)等において使用される機器の動作の確認、および、当該装置を動作させるためのプログラムの動作の確認のために使用され得る。
図1を参照して、シミュレーションシステムがシミュレーションの対象とする機器の種類と、シミュレーションシステムが提供する機能とについて説明する。
(a.シミュレーションの対象となる機器)
まず、シミュレーションに使用される部品およびアセンブリについて説明する。工場等で使用される機器は、通常、複数の部品が組み合わされたものであり、アセンブリと呼ばれることもある。シミュレーションシステムは、当該アセンブリの動作をシミュレートする。なお、図1に示すアセンブリは一例であり、シミュレーションシステムが扱えるアセンブリの例はこれらに限られない。ある局面において、シミュレーションシステムは、1または複数の任意の部品からなる任意のアセンブリの動作のシミュレーションを実行し得る。
シミュレーションシステムは、一例として、3DCAD(Three-Dimensional Computer-Aided Design)ソフトウェア等で作成された部品データを使用する。また、シミュレーションシステムは、部品の組み合わせからなるアセンブリデータを使用する。ある局面において、アセンブリは、その一部としてアセンブリおよび部品のいずれかまたは両方を含み得る。例えば、アセンブリ(A)は、アセンブリ(B)、アセンブリ(C)および部品(D)から構成されていてもよい。なお、これ以降の説明で、シミュレーションで使用される「部品」および「アセンブリ」は、部品データおよびアセンブリデータを意味する。
画面150Aおよび画面150Bは、直動部品を含むアセンブリのシミュレーション画面の一例である。アセンブリは、第1の部品151と、第2の部品152とから構成される。また、第2の部品152は、第1の部品151上を直線上に動作する。
画面160Aおよび画面160Bは、回転部品を含むアセンブリのシミュレーション画面の一例である。アセンブリは、第2の部品162の下に位置する第1の部品(図示せず)と、第2の部品162とから構成される。また、第2の部品162は、第1の部品上で回転する。
画面170Aおよび画面170Bは、直動部品を含むアセンブリのシミュレーション画面の一例である。画面170Aは、アセンブリを構成する第1の部品171を表示している。画面170Bは、第1の部品171の上部の軸に取り付けられる第2の部品172の動作を示している。第2の部品172は、第1の部品171上で、上下運動および回転運動を同時に行う。
上記のように、シミュレーションシステムは、直動、回転または複合動作等を行う任意のアセンブリの動作シミュレーションを実行し得る。ある局面において、シミュレーションシステムは、3以上の部品を含む複雑なアセンブリのシミュレーションも実行し得る。
(b.シミュレーションシステムの機能)
次に、シミュレーションシステムが提供する主な機能について説明する。シミュレーションシステムは、主に、アセンブリのカスタム機能と、ラダープログラムの生成機能と、テンプレートを用いたテキストコードの生成機能とを備える。
まず、第1の機能であるアセンブリのカスタム機能について説明する。シミュレーションシステムは、新しいアセンブリをシミュレーションシステムに登録する機能を備える。シミュレーションシステムは、シミュレーションシステムに登録されているアセンブリを用いたシミュレーションを行い得る。しかしながら、FA等で使用される機器は多岐にわたるため、シミュレーションシステムに登録されていないアセンブリも存在する。
そのため、シミュレーションシステムは、ユーザが任意のアセンブリをシミュレーションシステムに登録するための機能を提供する。より具体的には、ユーザは、シミュレーションシステムが提供するUI(User Interface)を介して、次のような操作を行い得る。
まず、ユーザは、3DCAD等で作成した1または複数の部品をアセンブリの一部としてシミュレーションシステムに登録する。この登録操作は、3D空間上への各部品の配置も含み得る。画面150Aを例に説明すると、ユーザは、第1の部品151に接触するように第2の部品152を3D空間上に配置してもよい。言い換えれば、ユーザは、複数の部品に基づいて、アセンブリを定義する。
次に、ユーザは、各部品の動作を設定する。例えば、ユーザは、ある部品の動作の種類を動作リストの中から選択してもよい。また、ユーザは、ある部品の動作範囲を設定してもよい。画面150Aを例に説明すると、ユーザは、第2の部品152の動作を直動移動に設定する。また、ユーザは、第2の部品152の動作範囲を第1の部品151の長手方向の一定範囲に設定する。
次に、ユーザは、各部品間の接続を設定する。「接続」は、部品同士がどのように接続しているかを示す。画面150Aを例に説明すると、ユーザは、第2の部品152を第1の部品151に対してスライド移動以外できないように接続し得る。ある局面において、ユーザは、部品間に複数の接続を設定してもよい。また、他の局面において、接続は、位置関係のオフセットを含んでいてもよい。なお、接続は、一種の拘束であるとも言える。
第1の機能を用いることにより、ユーザは、シミュレーションシステムに登録されていない任意のアセンブリをシミュレーションシステムに登録し、さらに当該アセンブリの動作情報を生成し得る。アセンブリの動作情報は、実際には、アセンブリに含まれる各部品の動作および/または接続関係(動作の制限)等を含み得る。
次に、第2の機能であるラダープログラムの生成機能について説明する。新しいアセンブリがシミュレーションシステムに登録されただけでは、シミュレーションシステムは、当該新しいアセンブリのシミュレーションを実行することができない。そこで、シミュレーションシステムは、登録された部品およびアセンブリの動作情報に基づいて、新しく登録されたアセンブリを動作させるためのラダープログラムを生成する。
より具体的には、シミュレーションシステムは、新しいアセンブリの機能または動作に応じて、ラダープログラムの生成時にモジュール化を行い得る。例えば、生成されたラダープログラムは、アセンブリの起動処理のモジュール、初期化処理のモジュール、および、アセンブリの動作処理のモジュール等を含み得る。ここでのモジュールとは、例えば、POU(Program Organization Unit)という機能単位であってもよい。
上記のように、アセンブリの機能または動作に基づいて、ラダープログラムのモジュールを細分化することにより、ユーザは登録された新しいアセンブリのラダープログラムを容易にデバッグおよび再利用し得る。
最後に、第3の機能であるテンプレートを用いたテキストコードの生成機能について説明する。シミュレーションシステムは、ユーザがアセンブリの動作をより簡単に定義できるように、テキストコードのプログラムを生成し得る。
シミュレーションシステムによって生成されるテキストコードは、一例として、関数単位で命令を含んでいる。ある局面において、テキストコードは、クラスメンバ、構造体等も含んでいてもよい。各関数は、ラダープログラムの命令に対応し得る。
最初に、シミュレーションシステムは、登録された各部品と、アセンブリの動作情報等に基づいて、テキストコード内で使用する変数を定義する。ある局面において、テキストコード内の変数は、ラダープログラム内の変数と対応付けられていてもよい。
次に、シミュレーションシステムは、予め用意されているテンプレートをストレージ111(図3参照)から取得して、当該テンプレートに変数を挿入する。こうすることで、シミュレーションシステムは、常にテンプレートに従った形式で新しく登録されたアセンブリのテキストコードをユーザに提供し得る。その結果、テキストコードの可読性は向上する。
ある局面において、テンプレートは、ラダープログラムのテンプレートを含んでいてもよい。この場合、シミュレーションシステムは、アセンブリの動作情報に基づいてテンプレートを選択し、当該選択されたテンプレートに変数を挿入し得る。他の局面において、シミュレーションシステムは、ラダープログラムの各モジュールに対応する単位でテキストコードを生成してもよい。また、他の局面において、シミュレーションシステムは、ラダープログラムの各モジュールに対応する単位で関数を生成してもよい。このように、ラダープログラムおよびテキストコードを対応付けることにより、ユーザは、ラダープログラムおよびテキストコードの双方を容易にデバッグし得る。
上記のように、シミュレーションシステムは、アセンブリの登録機能と、プログラム(ラダープログラムおよびテキストコード)の生成機能とを提供する。アセンブリおよびプログラムは、シミュレーションに必要なデータとして、またはその一部として、ストレージ111に格納され得る。ある局面において、シミュレーションシステムは、登録された部品およびアセンブリの動作情報に基づいて、自動的にプログラム(ラダープログラムおよびテキストコード)を生成してもよい。他の局面において、シミュレーションシステムは、ボタンの押下等のユーザの操作に基づいて、プログラム(ラダープログラムおよびテキストコード)を生成してもよい。
<B.システム構成>
次に、図2~4を参照して、アセンブリが使用されるシステムの構成例と、シミュレーションシステムを実現する装置のハードウェア構成および機能構成について説明する。
図2は、本実施の形態に従うシミュレーション技術を適用可能な機械を含む制御システム2のユニット構成の一例を示す図である。図1に示す各アセンブリは、制御システム2に含まれる機器として、またはその一部として使用され得る。例えば、シミュレーションシステムによって動作検証されるアセンブリは、サーボモータ41,42によって駆動される機器、ロボットコントローラ310によって制御されるロボットハンド210、ロボットハンド210の先端に取り付けられるツール、または、その他の任意の機器であってもよい。
制御システム2は、一例として、PLC(Programmable Logic Controller)200と、PLC200とフィールドネットワーク22を介して接続されるサーボモータドライバ531,532およびIOリモートターミナル5と、ロボットコントローラ310と、フィールドに設けられたIOデバイス(光電センサ6、ストッパ等が備える近接スイッチ(または近接センサ)87およびエンコーダ236、238等)とを含む。
PLC200は、主たる演算処理を実行する演算ユニット13、1つ以上のIOユニット14および特殊ユニット17を含む。これらのユニットは、システムバス81を介して、データを互いに遣り取りできるように構成されるとともに、電源ユニット12から電力の供給を受ける。演算ユニット13には、シミュレーション用の装置100が接続され得る。
装置100は、シミュレーションシステムとして動作して、アセンブリの動作シミュレーションを実行し得る。また、装置100は、シミュレーションにて動作検証が完了したアセンブリのプログラムを演算ユニット13にインストールし得る。演算ユニット13は、インストールされたプログラムに基づいて、制御システム2に含まれる各装置(アセンブリ)を制御し得る。装置100は、ネットワーク80を介して、演算ユニット13に接続され得る。
IOユニット14は、光電センサ6、ストッパ等の近接スイッチ87、エンコーダ236,238等を含むIOデバイスから検出値61,71,237および239を収集する。近接スイッチ87は、例えばストッパに対するトレイが所定距離まで接近したことを非接触で検出する。各IOデバイスからの検出値は、例えばIOユニット14が備えるメモリの対応ビットに設定(書込)される。
演算ユニット13は、IOユニット14により収集された値を用いて制御プログラムの演算を実行し、演算結果の値をIOユニット14の対応のビットに設定(書込)する。周辺機器またはIOデバイスは、IOユニット14の各ビットの値を参照して動作する。このように、PLC200は、IOユニット14を介してIOデバイスおよび周辺機器と相互にデータを遣り取りしながら、制御対象であるロボットまたはコンベア等を制御することができる。
特殊ユニット17は、アナログデータの入出力、温度制御、特定の通信方式による通信といった、IOユニット14ではサポートされない機能を有する。
フィールドネットワーク22には、例えば、ロボットコントローラ310、サーボモータドライバ531,532、およびIOリモートターミナル5等が接続されてもよい。
IOリモートターミナル5は、基本的には、IOユニット14と同様に、一般的な入出力処理に関する処理を行う。より具体的には、IOリモートターミナル5は、フィールドネットワーク22でのデータ伝送に係る処理を行うための通信カプラ52と、1つ以上のIOユニット53とを含む。これらのユニットは、IOリモートターミナルバス51を介して、データを互いに遣り取りできるように構成される。
サーボモータドライバ531,532は、フィールドネットワーク22を介して演算ユニット13に接続されるとともに、演算ユニット13からの指令値に従ってサーボモータ41,42を駆動する。具体的には、サーボモータドライバ531,532は、PLC200から、制御周期等の一定周期で、位置指令値、速度指令値、トルク指令値といった指令値を受ける。演算ユニット13は、エンコーダ236,238からの検出値237,239に基づいて、これらの指令値を生成する。
演算ユニット13は、上記に述べたIOデバイスからの検出値を参照して、所定の制御プログラムを実行することで、ロボットハンド210に、ワークのピックアンドプレース、ワークの押さえ等の操作を実行させることができる。
具体的には、演算ユニット13は、ロボットアームのための制御指令211と、ロボットハンド210のための制御指令222とを生成し、ロボットコントローラ310を介して、ロボットハンド210にこれらの制御信号を出力する。また、演算ユニット13は、制御指令211を生成する際には、上記に述べたIOデバイスからの検出値61,71に加えて、ロボットハンド210の状態値を参照し得る。ロボットアームは、例えば、サーボモータ1301~1304等の任意の数のサーボモータを含んでいてもよい。
図3は、シミュレーションシステムとして動作する装置の構成の一例を示す図である。図1を参照して説明されたシミュレーションは、装置100上で動作するソフトウェアにより実行され得る。
装置100は、主たるコンポーネントとして、オペレーティングシステム(OS:Operating System)および後述するような各種プログラムを実行するプロセッサ102と、プロセッサ102によるプログラムの実行に必要なデータを格納するための作業領域を提供する主メモリ104と、キーボードやマウス等のユーザ操作を受付ける操作ユニット106(操作受付部)と、ディスプレイ109、各種インジケータ、プリンタ等の処理結果を出力する出力ユニット108と、ネットワーク80を含む各種ネットワークに接続されるネットワークインターフェイス110と、光学ドライブ112と、外部装置と通信するローカル通信インターフェイス116と、ストレージ111とを含む。これらのコンポーネントは、内部バス118等を介してデータ通信可能に接続される。
装置100は、光学ドライブ112を有しており、コンピュータ読取可能なプログラムを非一過的に格納する光学記録媒体(例えば、DVD(Digital Versatile Disc)等)を含むコンピュータ読取可能な記録媒体114から各種プログラムを読み取って、ストレージ111等に当該各種プログラムをインストールしてもよい。
装置100で実行される各種プログラムは、コンピュータ読取可能な記録媒体114を介して装置100にインストールされてもよいが、ネットワーク上の図示しないサーバ装置等からネットワークインターフェイス110を介して装置100にインストールされてもよい。
ストレージ111は、例えば、HDD(Hard Disk Drive)またはSSD(Flash Solid State Drive)等で構成され、プロセッサ102で実行されるプログラムを格納する。より具体的には、ストレージ111は、OS(Operating System)120と、統合開発環境130とを格納する。統合開発環境130は、OS120上で動作するアプリケーションとして実現され得る。
統合開発環境130は、図1を参照して説明された第1の機能、第2の機能および第3の機能を提供する。すなわち、統合開発環境130は、シミュレーションに使用される新しい部品およびアセンブリの登録操作を受け付ける。また、統合開発環境130は、登録されたアセンブリの動作情報の設定を受け付ける。さらに、統合開発環境130は、登録されたアセンブリのプログラムを生成する。
ある局面において、図1を参照して説明されたアセンブリのカスタム機能と、ラダープログラムの生成機能と、テンプレートを用いたテキストコードの生成機能とは、統合開発環境130のアドインとして実現されてもよい。
また、他の局面において、統合開発環境130は、複数の装置100、装置100のハードウェア構成の少なくとも一部を備えるシステム、装置100のハードウェア構成の少なくとも一部を備えるクラウド環境上の仮想マシン等により、ソフトウェアとして実行され得る。
また、装置100は、統合開発環境130の機能の一部または全てを、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)等を用いて実現してもよい。
図4は、装置100が備えるコンポーネントの一例を示す図である。図4に示される各コンポーネントは、統合開発環境130が、図3に示されるハードウェア上でソフトウェアとして実行されることにより実現され得る。図4に示される各コンポーネントは、互いに連携することで、図1を参照して説明された第1の機能、第2の機能および第3の機能を提供し得る。
装置100は、主たるコンポーネントとして、可動部品選択画面401と、可動部品追加部410と、可動部品接続設定部411と、可動部品接続動作設定部412と、動作用スクリプト実行部413と、動作用スクリプト作成部414とを備える。また、可動部品選択画面401は、3次元形状読取部402と、3次元形状解析部403と、CAD構成要素表示部404と、モーション構成要素設定部405と、3次元形状表示部406とを含む。また、装置100は、テンプレートセット420と、変数データセット430とに対して書込処理および読込処理を実行し得る。
可動部品選択画面401は、シミュレーションシステムに新しく部品を登録するための画面である。また、可動部品選択画面401は、アセンブリの定義、部品またはアセンブリの動作設定、および、プログラムの表示および編集を行うための画面を含み得る。
3次元形状読取部402は、新しい部品を読み込む。一例として、ユーザは、可動部品選択画面401を操作することにより、ストレージ111内または外部装置から、CADファイル440(新規部品等)を選択し得る。3次元形状読取部402は、当該選択された新規部品を読み込むことができる。CADファイル440は、1または複数の部品を含み得る。
3次元形状解析部403は、3次元形状読取部402によって読み込まれたCADファイル440を解析する。一例として、3次元形状解析部403は、CADファイル440が含む1または複数の部品の形状、部品間の接続関係、または各部品の寸法および素材等の各種情報を解析し得る。
CAD構成要素表示部404は、3次元形状解析部403によって解析された各種情報を可動部品選択画面401に表示する。一例として、CAD構成要素表示部404は、解析された部品の形状、当該部品に設定されている接続、および、部品の寸法および素材等の情報を可動部品選択画面401に表示し得る。
モーション構成要素設定部405は、読み込まれた部品のモーションを設定する機能を提供する。一例として、ユーザは、モーション構成要素設定部405の機能を使用することで、図1に示すように、第2の部品152の動作(モーション)等を設定することができる。
3次元形状表示部406は、シミュレーションシステムに読み込まれた部品を3D空間内に表示する。
可動部品追加部410は、シミュレーションシステムに、可動部品を追加する機能を提供する。可動部品追加部410の機能は、可動部品選択画面401を介した操作に基づいて、実行され得る。一例として、可動部品追加部410は、ユーザの操作に基づいて、ストレージ111等から選択されたCADファイル440に含まれる部品をあるアセンブリに追加し得る。ある局面において、可動部品追加部410によって追加されたCADファイル440が、3次元形状読取部402に渡されてもよい。
可動部品接続設定部411は、あるアセンブリに含まれる部品間の接続を設定する。可動部品接続設定部411の機能は、可動部品選択画面401を介した操作に基づいて、実行され得る。一例として、可動部品接続設定部411は、ユーザの操作に基づいて、第1の部品および第2の部品間の接続を設定する。
可動部品接続動作設定部412は、あるアセンブリに含まれる部品の動作を設定する。可動部品接続動作設定部412の機能は、可動部品選択画面401を介した操作に基づいて、実行され得る。一例として、可動部品接続動作設定部412は、ユーザの操作に基づいて、第1の部品に対する第2の部品の動作を設定する。当該動作の設定は、動作の種類、動作の範囲の設定を含み得る。
動作用スクリプト実行部413は、可動部品選択画面401内で動作を定義されたアセンブリのスクリプト(プログラム)を実行する。動作用スクリプト実行部413の機能は、可動部品選択画面401を介した操作に基づいて、実行され得る。
動作用スクリプト作成部414は、可動部品選択画面401内で動作を定義されたアセンブリのスクリプトを生成する。動作用スクリプト作成部414の機能は、可動部品選択画面401を介した操作に基づいて、実行され得る。動作用スクリプト作成部414によって生成されるスクリプトは、ラダープログラムおよびテキストコードを含み得る。また、動作用スクリプト作成部414は、アセンブリの動作の設定等から変数データを生成して、当該変数データを変数データセット430に格納する。さらに、動作用スクリプト作成部414は、アセンブリの動作の設定等に基づいて、テンプレートセット420に含まれる特定のテンプレートを選択する。そして、動作用スクリプト作成部414は、選択したテンプレートに変数データを挿入してプログラムを生成する。ある局面において、テンプレートは、テキストコードのテンプレートであってもよい。他の局面において、テンプレートは、テキストコードのテンプレートに加えて、ラダープログラムのテンプレートを含んでいてもよい。
テンプレートセット420および変数データセット430は、リレーショナルデータベースまたはその他の任意のフォーマットで表現され得る。テンプレートセット420および変数データセット430は、ストレージ111等に格納されている。
<C.部品の追加>
次に、図5~図8を参照して、複数の部品を含むアセンブリをシミュレーションシステムに追加する手順について説明する。図5~図8に示す画面は、ディスプレイ109に表示される。
図5は、シミュレーションシステムへの部品の追加の流れの第1の例を示す図である。画面500は、可動部品選択画面401の一表示形態である。画面500は、設定画面501と、3D画面502とを含む。設定画面501は、3D画面502に表示されている部品(CADデータ)の設定を表示する。また、設定画面501は、部品の設定の編集操作を受け付ける。3D画面502は、3D空間に登録された部品のCADデータを表示する。また、3D画面502は、部品のCADデータの移動操作を受け付ける。
画面500は、可動部品追加ボタン511をさらに備える。ユーザは、可動部品追加ボタン511を押すことで、新しい部品をシミュレーションシステムに追加し得る。より具体的には、ユーザが可動部品追加ボタン511を押したことに基づいて、ファイル選択ダイアログ(図示せず)がディスプレイ109に表示される。ユーザは、ファイル選択ダイアログを介して、新しい部品を選択し、当該新しい部品をシミュレーションシステムに登録し得る。図5に示される例では、追加された部品550が3D画面502に表示されている。また、部品550の設定項目512が設定画面501に表示されている。ユーザは、画面500を介して、部品550の移動(配置)と、設定項目512の編集とを行い得る。
図6は、シミュレーションシステムへの部品の追加の流れの第2の例を示す図である。図6に示される例では、ユーザは、可動部品追加ボタン511を押すことにより、さらに、部品551をシミュレーションシステムに追加している。設定画面501は、3D画面502上で選択されている部品の設定項目512を表示する。
図7は、シミュレーションシステムへの部品の追加の流れの第3の例を示す図である。図7に示される例では、ユーザは、画面500を介して、可動部品である部品551の動作の種類を選択し、部品551の動作方向および動作範囲を設定している。より具体的には、ユーザは、動作設定710から、部品551の動作の種類を選択する。部品551の動作の種類が選択されたことに基づいて、設定画面501の表示が動作設定項目711を含む表示に切り替わる。次に、ユーザは、3D画面502に表示されるアイコン750を操作することで部品551の動作方向を設定し得る。アイコン750は、動作方向の種類を示すアイコンである。ある局面において、ユーザは、部品551の動作方向の設定のために、アイコン750をドラッグしてもよいし、キーボードの方向キー等を用いてもよい。また、ユーザは、動作設定項目711を用いることで、部品551の動作の種類を選択し、かつ、部品551の動作方向および範囲を調整してもよい。
図8は、シミュレーションシステムへの部品の追加の流れの第4の例を示す図である。図8に示される例では、ユーザは、画面500を介して、固定部品である部品550と、可動部品である部品551との接続の種類を選択している。より具体的には、ユーザは、部品選択リスト810により、可動部品である部品551に対する親部品である部品550を選択する。次に、ユーザは、結合部の接続方法ボタン811を押す。結合部の接続方法ボタン811が押されると、結合部の動作設定ダイアログ800がディスプレイ109に表示される。ユーザは、結合部の動作設定ダイアログ800上で、部品550と部品551との接続方法を選択し得る。
上記のように、ユーザは、図5~図8を参照して説明された操作を実行することで、シミュレーションシステムに新しいアセンブリを登録し得る。さらに、ユーザは、アセンブリに含まれる各部品の配置、動作、接続方法も設定し得る。
<D.プログラムの生成>
次に、図9~図15を参照して、シミュレーションシステムが、新しく登録されたアセンブリのプログラムを生成する手順について説明する。シミュレーションシステムが生成するプログラムは、ラダープログラムおよびテキストコードを含む。
図9は、シミュレーションシステムによるプログラム生成の手順の第1の例を示す図である。まず、ユーザは、シミュレーションシステムのメニュー画面900から、シミュレーションシステムに登録された機構(アセンブリ)を選択し、さらに当該機構のプログラム生成の項目を選択する。プログラム生成の項目が選択されると、プログラム生成ダイアログ910がディスプレイ109に表示される。
ユーザは、プログラム生成ダイアログ910上の機能選択項目911から、所望の機能を選択する。機能選択項目911は、アセンブリの機能(起動、初期化、動作等)を項目として含む。機能選択項目911から1つの機能が選択されたことに基づいて、シミュレーションシステムは、選択された機能のラダープログラムを生成し、当該ラダープログラムを画面920に表示する。画面920は、ラダープログラムの編集画面である。図9に示される例では、機能「MC_Power」が選択されている。ある局面において、シミュレーションシステムは、アセンブリの情報およびテンプレートセット420に基づいて、機能選択項目911に含める項目を適宜変更してもよい。
シミュレーションシステムは、登録されたアセンブリの情報から、ラダープログラムに必要な命令および変数を生成する。ある局面において、シミュレーションシステムは、図5~図8に示す操作を受け付けたことに基づいて、アセンブリに関する変数を生成し、当該変数を変数データセット430に登録してもよい。
シミュレーションシステムは、機能選択項目911から選択された機能に予め紐付けられている命令に、変数データセット430から読み出した変数(例えば、軸変数等)を挿入し得る。また、シミュレーションシステムは、機能毎に、一つのモジュールに関するコメントを生成し得る。
図10は、シミュレーションシステムによるプログラム生成の手順の第2の例を示す図である。図10に示される例では、ユーザは、図9に示す手順と同様の手順で、機能「MC_Home」のラダープログラムを生成している。
プログラム生成ダイアログ910で選択されたPOU名およびセクション名が同じであるため、機能「MC_Home」のラダープログラムは、機能「MC_Power」のラダープログラムと同じ画面1020に表示される。このとき、シミュレーションシステムは、機能「MC_Home」の回路と、機能「MC_Power」の回路とを異なるモジュールとして配置する(母線は共通である)。こうすることで、機能毎にモジュールが明確に分離されるため、ユーザは、各機能を容易にデバッグすることができる。なお、画面1020は、画面920に機能「MC_Home」のラダープログラムが追加されたものである。
図11は、シミュレーションシステムによるプログラム生成の手順の第3の例を示す図である。図11に示される例では、ユーザは、図9および図10に示す手順と同様の手順で、機能「MC_Move」のラダープログラムを生成している。
ただし、機能「MC_Move」は、部品(またはアセンブリ)の移動処理を含む。そのため、機能「MC_Move」のラダープログラムを生成する処理は、図9および図10に示す処理と異なり、可動部品の動作設定の画面1120を介して、ユーザから部品の動作設定の入力を受け付ける処理を含む。機能選択項目911から部品の動作を含む機能が選択されたことに基づいて、シミュレーションシステムは、画面1120を表示する。画面1120は部品の動作設定の入力を受け付けるための画面である。
ユーザは、画面1120を介して、部品の現在位置(または初期位置)、目標位置を入力し得る。ある局面において、ユーザが画面500を介して予め部品の動作設定の入力を完了している場合、シミュレーションシステムは、機能選択項目911から部品の動作を含む機能が選択されたことに基づいて、画面1120を表示する代わりに、画面1220(図12参照)を表示してもよい。ユーザが画面1120のOKボタンを押したことに基づいて、シミュレーションシステムは、画面1220を表示する。
図12は、シミュレーションシステムによるプログラム生成の手順の第4の例を示す図である。図12に示される例では、画面1220には、生成された機能「MC_Move」のラダープログラムが表示されている。プログラム生成ダイアログ910で選択されたPOU名およびセクション名が同じであるため、機能「MC_Move」のラダープログラムは、機能「MC_Power」および機能「MC_Home」のラダープログラムと同じ画面1220に生成される。なお、画面1220は、画面1020に機能「MC_Move」のラダープログラムが追加されたものである。
一例として、機能「MC_Move」のラダープログラムは、軸変数の設定、目標値の設定、ユーザが設定した項目以外の項目のデフォルト値の設定等を含み得る。
図13は、シミュレーションシステムによるプログラム生成の手順の第5の例を示す図である。図13を参照して、プログラム生成ダイアログ910でセクションを変更した場合の処理について説明する。ラダープログラムはセクションという単位で切り分けることができる。例えば、ユーザは、図11に示す操作の代わりに、プログラム生成ダイアログ910にて、セクション名を「Section0」から「Section1」に変更したとする。また、ユーザは、機能選択項目911から機能「MC_Move」を選択したとする。さらに、ユーザは、可動部品の動作設定の画面1320を介して、部品の現在位置(または初期位置)、目標位置を入力したとする。この場合、シミュレーションシステムは、画面1420(図14参照)を表示する。
図14は、シミュレーションシステムによるプログラム生成の手順の第6の例を示す図である。画面1420は、「Section1」に含まれる機能「MC_Move」のラダープログラムのみを表示している。機能「MC_Power」および機能「MC_Home」のラダープログラムは、「Section0」に含まれている。ユーザが、画面1420の左側の「Section0」を選択すると、画面1420には、機能「MC_Power」および機能「MC_Home」のラダープログラムが表示される。このように、シミュレーションシステムは、セクション毎にラダープログラムを分離する機能も備える。当該機能により、ユーザは、例えば、デバッグしやすい単位でセクションを分割することができる。
図15は、シミュレーションシステムによるプログラム生成の手順の第7の例を示す図である。図15を参照して、テキストコードの生成処理について説明する。シミュレーションシステムは、ラダープログラムの生成と同時にテキストコードも生成し得る。
画面1500は、テキストコードの表示画面である。画面1500は、変数リスト1510と、パラメータリスト1520と、ソースコード(テキストコード)1530と、テンプレートリスト1540とを含む。ある局面において、画面1500は、ラダープログラムの編集画面(画面920~画面1420等)またはメニュー画面900から遷移可能に構成されていてもよい。
ユーザは、画面1500を介して、生成されたソースコード1530を編集できる。シミュレーションシステムは、テンプレートセット420から選択されたテンプレートに変数リスト1510の変数(変数データセット430から選択された変数)を挿入することで、ソースコード1530を生成する。パラメータリスト1520に含まれるパラメータは、変数リスト1510に含まれる各変数に代入される。なお、パラメータリスト1520に含まれるパラメータは、アセンブリの情報(部品の配置、動作、接続等)から生成され得る。
ある局面において、ユーザは、画面右側のテンプレートリスト1540から、所望のテンプレートをソースコード1530に追加してもよい。ソースコード1530に追加されたテンプレートには、自動的に変数およびパラメータがセットされ得る。
上記のように、シミュレーションシステムは、テンプレートに基づいたテキストコード(ソースコード1530)を自動生成することで、可読性の高いプログラムをユーザに提供し得る。その結果、ユーザは、ラダープログラムと併せてテキストコードを容易に修正し、また、容易にデバッグし得る。
ある局面において、新たに登録されたアセンブリから生成されるテキストコードの各関数は、新たに登録されたアセンブリから生成されるラダープログラム上の回路の各機能と対応付けられてもよい。この場合、シミュレーションシステムは、関数および回路の機能間の関連がわかるように、関数、変数、および回路等の名称を決定し得る。
<E.フローチャート>
図16は、シミュレーションシステムの内部処理の流れの一例を示すフローチャートである。ある局面において、プロセッサ102は、図16の処理を行うためのプログラムをストレージ111から主メモリ104に読み込んで、当該プログラムを実行してもよい。他の局面において、当該処理の一部または全部は、当該処理を実行するように構成された回路素子の組み合わせとしても実現され得る。
ステップS1610において、プロセッサ102は、ユーザの操作に基づいて、シミュレーションシステムにEtherCAT(登録商標)のサーボモータ、IOおよび軸を追加する。これらのサーボモータ、IOおよび軸は、例えば、シミュレーションシステムに新しく追加される部品の動力源、入出力ポート、回転軸等として使用され得る。
ステップS1620において、プロセッサ102は、ユーザの操作に基づいて、カスタムメカニカル機構(部品)をシミュレーションシステムに追加する。ある局面において、カスタムメカニカル機構は、CADデータである。
ステップS1630において、プロセッサ102は、ユーザの操作に基づいて、可動部品をシミュレーションシステムに追加する。ある局面において、可動部品は、CADデータである。
ステップS1640において、プロセッサ102は、ユーザの操作に基づいて、可動部品の動作を設定する。プロセッサ102は、さらに、ユーザの操作に基づいて、カスタムメカニカル機構(第1の部品)と、可動部品(第2の部品)との接続を設定し得る。
ステップS1650において、プロセッサ102は、ユーザの操作に基づいて、カスタムメカニカル機構および可動部品を含むアセンブリの動作を確認し、さらに各種設定(可動範囲、接続関係等を含み得る)、およびプログラム(ラダープログラムおよびテキストコード)を自動生成する。ある局面において、プロセッサ102は、アセンブリの各種設定、ラダープログラムおよびテキストコードの編集操作を受け付けてもよい。ある局面において、プロセッサ102は、テンプレートセット420および変数データセット430を参照して、テキストコードを生成し得る。また、他の局面において、プロセッサ102は、テンプレートセット420および変数データセット430を参照して、ラダープログラムを生成し得る。また、プロセッサ102は、アセンブリの情報およびプログラム(ラダープログラムおよびテキストコード)をストレージ111に保存する。
ステップS1660において、プロセッサ102は、ユーザの操作に基づいて、3D Visualizerを用いて、アセンブリの動作を確認する。ユーザは、3D Visualizerの表示に基づいて、ラダープログラムおよびテキストコードを適宜デバッグし得る。また、ユーザは、3D Visualizerの表示に基づいて、アセンブリに含まれる部品間で干渉があるか否かを確認することができる。
以上説明したように、本実施の形態に従うシミュレーションシステムは、任意の部品を含む新しいアセンブリをシミュレーションシステムに登録する機能を備える。また、シミュレーションシステムは、アセンブリの設定に基づいて、ラダープログラムおよびテキストコードを自動生成する機能を備える。これらの機能により、ユーザは、新しく設計した機器のシミュレーションと、当該機器を動作させるためのプログラムの作成およびデバッグとを容易に行い得る。
<F.付記>
[構成1]
シミュレーションシステムであって、
シミュレーションのためのデータを格納する記憶部(111)と、
上記シミュレーションを実行する制御部(102)とを備え、
上記制御部(102)は、
第1の部品および第2の部品の登録操作を受け付け、
上記第1の部品および上記第2の部品からなるアセンブリの動作を設定する操作を受け付け、
上記第1の部品と、上記第2の部品と、上記アセンブリの動作情報とに基づいて、上記アセンブリを動作させるためのプログラムを生成し、
上記第1の部品と、上記第2の部品と、上記アセンブリの動作情報と、上記プログラムとを上記シミュレーションのためのデータとして上記記憶部(111)に格納する、シミュレーションシステム。
[構成2]
上記アセンブリの動作を設定する操作を受け付けることは、
上記第1の部品と上記第2の部品とを上記アセンブリに登録する操作を受け付けることと、
上記第2の部品の動作を設定する操作を受け付けることと、
上記第1の部品と上記第2の部品との間の接続を設定する操作を受け付けることとを含む、構成1に記載のシミュレーションシステム。
[構成3]
上記第2の部品の動作を設定する操作を受け付けることは、
上記第2の部品の動作の種類を選択する操作を受け付けることと、
上記第2の部品の動作の範囲を設定する操作を受け付けることとを含む、構成2に記載のシミュレーションシステム。
[構成4]
上記プログラムは、上記アセンブリのラダープログラムを含み、
上記プログラムを生成することは、上記アセンブリの機能ごとにモジュールを分割して、上記ラダープログラムを生成することを含む、構成1~3のいずれかに記載のシミュレーションシステム。
[構成5]
上記プログラムを生成することは、上記アセンブリの機能ごとにセクションを変更して、上記ラダープログラムを生成することを含む、構成4に記載のシミュレーションシステム。
[構成6]
上記プログラムを生成することは、上記第1の部品と、上記第2の部品と、上記アセンブリの動作情報とに基づいて、上記プログラムに含まれる1または複数の変数を生成することを含む、構成1~5のいずれかに記載のシミュレーションシステム。
[構成7]
上記プログラムは、テキストコードを含み、
上記プログラムを生成することは、
上記記憶部(111)から、上記テキストコードに含まれる命令を定義したテンプレートを取得することと、
上記テンプレートに、上記変数を挿入して上記テキストコードを生成することとを含む、構成6に記載のシミュレーションシステム。
[構成8]
上記制御部(102)は、上記プログラムの編集操作を受け付ける、構成1~7のいずれかに記載のシミュレーションシステム。
[構成9]
コンピュータによって実行されるシミュレーション方法であって、
第1の部品および第2の部品の登録操作を受け付けるステップと、
上記第1の部品および上記第2の部品からなるアセンブリの動作を設定する操作を受け付けるステップと、
上記第1の部品と、上記第2の部品と、上記アセンブリの動作情報とに基づいて、上記アセンブリを動作させるためのプログラムを生成するステップと、
上記第1の部品と、上記第2の部品と、上記アセンブリの動作情報と、上記プログラムとをシミュレーションのためのデータとして保存するステップとを含む、シミュレーション方法。
[構成10]
構成9に記載の方法をコンピュータに実行させるための、プログラム。
今回開示された実施の形態は全ての点で例示であって制限的なものではないと考えられるべきである。本開示の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内で全ての変更が含まれることが意図される。また、実施の形態および各変形例において説明された開示内容は、可能な限り、単独でも、組合わせても、実施することが意図される。
2 制御システム、5 IOリモートターミナル、6 光電センサ、12 電源ユニット、13 演算ユニット、14,53 IOユニット、17 特殊ユニット、22 フィールドネットワーク、41,42,1301,1302,1303,1304 サーボモータ、51 IOリモートターミナルバス、52 通信カプラ、61,71,237,239 検出値、80 ネットワーク、81 システムバス、87 近接スイッチ、100 装置、102 プロセッサ、104 主メモリ、106 操作ユニット、108 出力ユニット、109 ディスプレイ、110 ネットワークインターフェイス、111 ストレージ、112 光学ドライブ、114 記録媒体、116 ローカル通信インターフェイス、118 内部バス、120 OS、130 統合開発環境、150A,150B,160A,160B,170A,170B,500,920,1020,1120,1220,1320,1420,1500 画面、151171 第1の部品、152,162,172 第2の部品、200 PLC、210 ロボットハンド、211,222 制御指令、236,238 エンコーダ、310 ロボットコントローラ、401 可動部品選択画面、402 3次元形状読取部、403 3次元形状解析部、404 CAD構成要素表示部、405 モーション構成要素設定部、406 3次元形状表示部、410 可動部品追加部、411 可動部品接続設定部、412 可動部品接続動作設定部、413 動作用スクリプト実行部、414 動作用スクリプト作成部、420 テンプレートセット、430 変数データセット、440 CADファイル、501 設定画面、502 3D画面、511 可動部品追加ボタン、512 設定項目、531,532 サーボモータドライバ、550,551 部品、710 動作設定、711 動作設定項目、750 アイコン、800 動作設定ダイアログ、810 部品選択リスト、811 接続方法ボタン、900 メニュー画面、910 プログラム生成ダイアログ、911 機能選択項目、1510 変数リスト、1520 パラメータリスト、1530 ソースコード、1540 テンプレートリスト。

Claims (10)

  1. シミュレーションシステムであって、
    シミュレーションのためのデータを格納する記憶部と、
    前記シミュレーションを実行する制御部とを備え、
    前記制御部は、
    第1の部品および第2の部品の登録操作を受け付け、
    前記第1の部品および前記第2の部品からなるアセンブリの動作を設定する操作を受け付け、
    前記第1の部品と、前記第2の部品と、前記アセンブリの動作情報とに基づいて、前記アセンブリを動作させるためのプログラムを生成し、
    前記第1の部品と、前記第2の部品と、前記アセンブリの動作情報と、前記プログラムとを前記シミュレーションのためのデータとして前記記憶部に格納する、シミュレーションシステム。
  2. 前記アセンブリの動作を設定する操作を受け付けることは、
    前記第1の部品と前記第2の部品とを前記アセンブリに登録する操作を受け付けることと、
    前記第2の部品の動作を設定する操作を受け付けることと、
    前記第1の部品と前記第2の部品との間の接続を設定する操作を受け付けることとを含む、請求項1に記載のシミュレーションシステム。
  3. 前記第2の部品の動作を設定する操作を受け付けることは、
    前記第2の部品の動作の種類を選択する操作を受け付けることと、
    前記第2の部品の動作の範囲を設定する操作を受け付けることとを含む、請求項2に記載のシミュレーションシステム。
  4. 前記プログラムは、前記アセンブリのラダープログラムを含み、
    前記プログラムを生成することは、前記アセンブリの機能ごとにモジュールを分割して、前記ラダープログラムを生成することを含む、請求項1~3のいずれかに記載のシミュレーションシステム。
  5. 前記プログラムを生成することは、前記アセンブリの機能ごとにセクションを変更して、前記ラダープログラムを生成することを含む、請求項4に記載のシミュレーションシステム。
  6. 前記プログラムを生成することは、前記第1の部品と、前記第2の部品と、前記アセンブリの動作情報とに基づいて、前記プログラムに含まれる1または複数の変数を生成することを含む、請求項1~5のいずれかに記載のシミュレーションシステム。
  7. 前記プログラムは、テキストコードを含み、
    前記プログラムを生成することは、
    前記記憶部から、前記テキストコードに含まれる命令を定義したテンプレートを取得することと、
    前記テンプレートに、前記変数を挿入して前記テキストコードを生成することとを含む、請求項6に記載のシミュレーションシステム。
  8. 前記制御部は、前記プログラムの編集操作を受け付ける、請求項1~7のいずれかに記載のシミュレーションシステム。
  9. コンピュータによって実行されるシミュレーション方法であって、
    第1の部品および第2の部品の登録操作を受け付けるステップと、
    前記第1の部品および前記第2の部品からなるアセンブリの動作を設定する操作を受け付けるステップと、
    前記第1の部品と、前記第2の部品と、前記アセンブリの動作情報とに基づいて、前記アセンブリを動作させるためのプログラムを生成するステップと、
    前記第1の部品と、前記第2の部品と、前記アセンブリの動作情報と、前記プログラムとをシミュレーションのためのデータとして保存するステップとを含む、シミュレーション方法。
  10. 請求項9に記載の方法をコンピュータに実行させるための、シミュレーションプログラム。
JP2021097766A 2021-06-11 2021-06-11 シミュレーションシステム、シミュレーション方法およびシミュレーションプログラム Pending JP2022189270A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2021097766A JP2022189270A (ja) 2021-06-11 2021-06-11 シミュレーションシステム、シミュレーション方法およびシミュレーションプログラム
EP22175653.9A EP4102389A1 (en) 2021-06-11 2022-05-26 Simulation system, simulation method, and simulation program
CN202210580222.XA CN115469562A (zh) 2021-06-11 2022-05-26 仿真系统、仿真方法以及计算机可读的数据存储介质
US17/826,472 US20220397881A1 (en) 2021-06-11 2022-05-27 Simulation system, simulation method, and non-transitory computer-readable storage medium storing simulation program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021097766A JP2022189270A (ja) 2021-06-11 2021-06-11 シミュレーションシステム、シミュレーション方法およびシミュレーションプログラム

Publications (1)

Publication Number Publication Date
JP2022189270A true JP2022189270A (ja) 2022-12-22

Family

ID=81850808

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021097766A Pending JP2022189270A (ja) 2021-06-11 2021-06-11 シミュレーションシステム、シミュレーション方法およびシミュレーションプログラム

Country Status (4)

Country Link
US (1) US20220397881A1 (ja)
EP (1) EP4102389A1 (ja)
JP (1) JP2022189270A (ja)
CN (1) CN115469562A (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6161051A (en) * 1998-05-08 2000-12-12 Rockwell Technologies, Llc System, method and article of manufacture for utilizing external models for enterprise wide control
JP6950347B2 (ja) * 2017-08-10 2021-10-13 オムロン株式会社 情報処理装置、情報処理方法およびプログラム
JP7388074B2 (ja) 2019-09-17 2023-11-29 オムロン株式会社 シミュレーション装置、シミュレーションプログラムおよびシミュレーション方法

Also Published As

Publication number Publication date
US20220397881A1 (en) 2022-12-15
CN115469562A (zh) 2022-12-13
EP4102389A1 (en) 2022-12-14

Similar Documents

Publication Publication Date Title
Konstantinov et al. The cyber-physical e-machine manufacturing system: Virtual engineering for complete lifecycle support
US7174225B2 (en) Method and system for simulating processing of a workpiece with a machine tool
Schwartz HAL: Extension of a visual programming language to support teaching and research on robotics applied to construction
US9547746B1 (en) Systems and methods using models to evaluate physical components
US11366945B2 (en) Soft-real-time hub providing data transport for processor-in-the-loop (PIL) simulations
US10761513B2 (en) Information processing device, information processing method, and non-transitory computer-readable recording medium
US10814486B2 (en) Information processing device, information processing method, and non-transitory computer-readable recording medium
US8630829B1 (en) Computer aided design environment with electrical and electronic features
KR102198204B1 (ko) 시뮬레이션 장치
WO2023074249A1 (ja) シミュレーションのためのプログラムおよびシステム
JP2022189270A (ja) シミュレーションシステム、シミュレーション方法およびシミュレーションプログラム
Dzinic et al. Simulation-based verification of PLC programs
Zaeh et al. A model-based method to develop PLC software for machine tools
Hossain et al. Virtual control system development platform with the application of PLC device
JP2008077464A (ja) モデル作成装置
Anokhin et al. Direct control of 3D models through user input to simulate the behavior of mechatronic systems
WO2022162960A1 (ja) プログラム生成装置、プログラム生成プログラムおよびプログラム生成方法
Pang et al. Systematic closed-loop modelling in IEC 61499 function blocks: A case study
Chaaban et al. A HiL test bench for verification and validation purposes of model-based developed applications using Simulink® and OPC DA technology
JP2023006301A (ja) シミュレーションシステム、シミュレーションシステムの方法、およびシミュレーションのプログラム
Bartosinski et al. Integrated environment for embedded control systems design
Pereira et al. Remote Debugger: A Tool to Remotely Monitor and Operate IOPT-Nets Controllers
CN114386197A (zh) 一种数控雕刻机虚拟调试系统的创建方法
CN115878131A (zh) 数字孪生应用的代码生成方法、装置和电子设备
JP2023006299A (ja) シミュレーションシステム、シミュレーションシステムの方法、およびシミュレーションのプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240314