JP2018036945A - シミュレータ連携装置、シミュレータ連携装置の制御方法、情報処理プログラム、および記録媒体 - Google Patents

シミュレータ連携装置、シミュレータ連携装置の制御方法、情報処理プログラム、および記録媒体 Download PDF

Info

Publication number
JP2018036945A
JP2018036945A JP2016170755A JP2016170755A JP2018036945A JP 2018036945 A JP2018036945 A JP 2018036945A JP 2016170755 A JP2016170755 A JP 2016170755A JP 2016170755 A JP2016170755 A JP 2016170755A JP 2018036945 A JP2018036945 A JP 2018036945A
Authority
JP
Japan
Prior art keywords
simulator
simulation
execution result
sample interval
controller
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.)
Abandoned
Application number
JP2016170755A
Other languages
English (en)
Inventor
高史 藤井
Takashi Fujii
高史 藤井
正樹 浪江
Masaki Namie
正樹 浪江
美樹子 真鍋
Mikiko Manabe
美樹子 真鍋
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 JP2016170755A priority Critical patent/JP2018036945A/ja
Priority to CN201710092424.9A priority patent/CN107797462A/zh
Priority to EP17157169.8A priority patent/EP3291112A1/en
Priority to US15/438,764 priority patent/US20180059649A1/en
Publication of JP2018036945A publication Critical patent/JP2018036945A/ja
Abandoned 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
    • 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/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4155Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/522Barrier synchronisation
    • 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/30Nc systems
    • G05B2219/32Operator till task planning
    • G05B2219/32065Synchronise set points of processes
    • 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/30Nc systems
    • G05B2219/32Operator till task planning
    • G05B2219/32337Simulation, statechart SC

Abstract

【課題】ユーザが設定した時間間隔で、複数のシミュレータの各々に、シミュレーションを同期させて実行させる。【解決手段】シミュレータ連携装置10の、同期部107は、コントローラについてのシミュレータである第1シミュレータ300、およびコントローラにより制御される被制御装置についてのシミュレータである第2シミュレータ400の各々に、受付部101によりユーザから受け付けたサンプル間隔でシミュレーションを、周期的に実行させる。【選択図】図1

Description

本発明は、複数のシミュレータの各々が実行するシミュレーションを連携させるシミュレータ連携装置等に関する。
従来、複数のシミュレータ間を連携するシミュレーション装置が知られている。例えば、下掲の特許文献1には、同期要求メッセージを受信した時点で、或るシミュレータから送信されるメッセージを加工し、加工したメッセージを連携する他のシミュレータに送信するシミュレータ連携装置が記載されている。
特開2015−32120号公報(2015年2月16日公開)
しかしながら、上述のような従来技術は、複数のシミュレータの各々が、複数のシミュレータの各々において予め定められている同期をとる時刻までシミュレーションの実行を進行すると同期要求メッセージを通知し、シミュレータ連携装置は、前記同期要求メッセージを受信すると、前記複数のシミュレータ間の同期をとるものに過ぎない。
したがって、従来のシミュレータ連携装置には、ユーザが任意に設定した時間間隔で複数のシミュレータの各々にシミュレーションを実行させつつ、前記複数のシミュレータの各々が実行するシミュレーションを同期させることができないという問題がある。
本発明は、前記の問題点に鑑みてなされたものであり、その目的は、ユーザが設定した時間間隔で、複数のシミュレータの各々に、シミュレーションを同期させて実行させることにある。
上記の課題を解決するために、本発明の一態様に係るシミュレータ連携装置は、シミュレーションを周期的に実行させる間隔であるサンプル間隔をユーザから受け付ける受付部と、コントローラについてのシミュレータである第1シミュレータから、前記第1シミュレータの前記サンプル間隔分のシミュレーション実行結果である第1実行結果を取得する第1取得部と、前記コントローラにより制御される被制御装置についてのシミュレータである第2シミュレータから、前記第2シミュレータの前記サンプル間隔分のシミュレーション実行結果である第2実行結果を取得する第2取得部と、前記第1取得部により取得した前記第1実行結果を前記第2シミュレータに出力するとともに、前記第2取得部により取得した前記第2実行結果を前記第1シミュレータに出力し、前記第1シミュレータおよび前記第2シミュレータの各々に前記サンプル間隔でシミュレーションを周期的に実行させる同期部と、を備えることを特徴としている。
前記の構成によれば、前記同期部は、前記コントローラについてのシミュレータである前記第1シミュレータ、および前記コントローラにより制御される前記被制御装置についてのシミュレータである前記第2シミュレータの各々に、前記受付部によりユーザから受け付けた前記サンプル間隔でシミュレーションを、周期的に実行させる。
したがって、前記シミュレータ連携装置は、前記第1シミュレータおよび前記第2シミュレータの各々に、前記受付部によりユーザから受け付けた前記サンプル間隔でシミュレーションを、同期させて周期的に実行させることができるという効果を奏する。
つまり、例えば、ユーザが長い時間間隔を前記サンプル間隔とすることにより、前記同期部は、前記長い時間間隔の前記サンプル間隔で、前記第1取得部により取得した前記第1実行結果を前記第2シミュレータに出力するとともに、前記長い時間間隔の前記サンプル間隔で、前記第2取得部により取得した前記第2実行結果を前記第1シミュレータに出力する。この場合、前記同期部は、前記第1シミュレータおよび前記第2シミュレータがシミュレーションを完了させるまでに、前記第1シミュレータと前記第2シミュレータとの間での前記シミュレーション実行結果の送受信の回数を抑制することができ、結果として、シミュレーションの実行時間全体を短縮することができる。
また、例えば、ユーザが短い時間間隔を前記サンプル間隔とすることにより、前記同期部は、前記短い時間間隔の前記サンプル間隔で、前記第1取得部により取得した前記第1実行結果を前記第2シミュレータに出力するとともに、前記短い時間間隔の前記サンプル間隔で、前記第2取得部により取得した前記第2実行結果を前記第1シミュレータに出力する。この場合、前記同期部は、前記第1シミュレータおよび前記第2シミュレータの各々が前記短い時間間隔で実行したシミュレーションの結果を、都度、前記第2シミュレータおよび前記第2シミュレータの各々に通知するので、前記第1シミュレータと前記第2シミュレータの各々に実行させるシミュレーションの実行結果のシミュレーション精度を、前記サンプル間隔を長くした場合に比べて向上させることができる。
したがって、前記シミュレータ連携装置は、ユーザが、前記シミュレーションの実行時間と、前記シミュレーションのシミュレーション精度とのいずれを重視して前記シミュレーションを実行させるかを、任意に選択することができるようになるとの効果を奏する。
好ましくは、前記シミュレータ連携装置は、前記サンプル間隔の初期設定値として前記コントローラの制御周期を表示する表示部をさらに備える。
前記の構成によれば、前記表示部は、前記サンプル間隔の初期設定値として前記コントローラの制御周期を表示する。
したがって、前記シミュレータ連携装置は、前記コントローラについてのシミュレータである前記第1シミュレータに、前記コントローラの制御周期でシミュレーションを実行させつつ、前記コントローラにより制御される前記被制御装置についてのシミュレータである前記第2シミュレータに、前記第1シミュレータのシミュレーションと同期させて、シミュレーションを実行させることができるという効果を奏する。
好ましくは、前記シミュレータ連携装置において、前記サンプル間隔は、前記コントローラの制御周期よりも長い時間を設定可能である。
前記の構成によれば、前記同期部は、前記コントローラの制御周期よりも長い時間である前記サンプル間隔で、前記第1取得部により取得した前記第1実行結果を前記第2シミュレータに出力するとともに、前記受付部により受け付けた前記サンプル間隔で、前記第2取得部により取得した前記第2実行結果を前記第1シミュレータに出力する。
したがって、前記同期部は、前記第1シミュレータおよび前記第2シミュレータがシミュレーションを完了させるまでに、前記第1シミュレータと前記第2シミュレータとの間での前記シミュレーション実行結果の送受信の回数を抑制することができるという効果を奏する。つまり、前記シミュレータ連携装置は、前記第1シミュレータおよび前記第2シミュレータがシミュレーションを完了させる時間を短縮することができるという効果を奏する。
好ましくは、前記シミュレータ連携装置において、前記同期部は、前記第1シミュレータにおけるシミュレーションに用いる変数であって、前記第1シミュレータにおけるシミュレーションの実行によって値が変化しない変数を、前記第1シミュレータがシミュレーションを実行する前に1回だけ、前記第1シミュレータに出力する。
前記の構成によれば、前記同期部は、前記第2シミュレータにおけるシミュレーションに用いる変数であって、前記第2シミュレータにおけるシミュレーションの実行によって値が変化しない変数を、前記第1シミュレータがシミュレーションを実行する前に1回だけ、前記第1シミュレータに出力する。
したがって、前記同期部は、前記第1シミュレータと前記第2シミュレータとの間で送受信するデータ量を抑制することができるという効果を奏する。つまり、前記シミュレータ連携装置は、前記第1シミュレータおよび前記第2シミュレータがシミュレーションを完了させる時間を短縮することができるという効果を奏する。
好ましくは、前記シミュレータ連携装置において、前記受付部は、前記第1シミュレータまたは前記第2シミュレータがシミュレーションを実行する際に用いる変数ごとのサンプル間隔を、ユーザから受け付ける。
前記の構成によれば、前記同期部は、前記第1シミュレータまたは前記第2シミュレータがシミュレーションを実行する際に用いる変数ごとに設定されたサンプル間隔で、前記変数を前記第1シミュレータと前記第2シミュレータとの間で送受信させる。
したがって、前記シミュレータ連携装置は、前記第1シミュレータまたは前記第2シミュレータにおいて実行されるシミュレーションで用いられる変数ごとに最適な時間間隔で、前記変数を前記第1シミュレータと前記第2シミュレータとの間で送受信させることができるので、前記第1シミュレータおよび前記第2シミュレータがシミュレーションを完了させる時間を短縮することができるという効果を奏する。
ここで、例えば前記コントローラが並行して複数の処理を実行する場合、前記受付部は、前記複数の処理に対応して前記第1シミュレータが実行する複数のシミュレーションの各々について、サンプル間隔をユーザから受け付けることができる。そして、前記同期部は、前記複数のシミュレーションの各々のシミュレーション実行結果を、前記複数のシミュレーションの各々の前記サンプル間隔で、前記第2シミュレータに出力する。
したがって、前記シミュレータ連携装置は、前記第1シミュレータが並行して実行する前記複数のシミュレーションの各々のシミュレーション実行結果を、前記複数のシミュレーションごとに最適な間隔で、前記第2シミュレータに出力することにより、前記第1シミュレータおよび前記第2シミュレータがシミュレーションを完了させる時間を短縮することができるという効果を奏する。
好ましくは、前記シミュレータ連携装置は、前記第2シミュレータと一体の装置として構成される。
前記の構成によれば、前記第2シミュレータと一体の装置として構成された前記シミュレータ連携装置が、前記第1シミュレータに、前記受付部によりユーザから受け付けた前記サンプル間隔でシミュレーションを、前記第2シミュレータのシミュレーションと同期させて周期的に実行させることができるという効果を奏する。
また、上記の課題を解決するために、本発明の一態様に係る制御方法は、複数のシミュレータの各々が実行するシミュレーションを連携させるシミュレータ連携装置の制御方法であって、シミュレーションを周期的に実行させる間隔であるサンプル間隔をユーザから受け付ける受付ステップと、コントローラについてのシミュレータである第1シミュレータから、第1シミュレータの前記サンプル間隔分のシミュレーション実行結果である第1実行結果を取得する第1取得ステップと、前記コントローラにより制御される被制御装置についてのシミュレータである第2シミュレータから、第2シミュレータの前記サンプル間隔分のシミュレーション実行結果である第2実行結果を取得する第2取得ステップと、前記第1取得ステップにて取得した前記第1実行結果を前記第2シミュレータに出力するとともに、前記第2取得ステップにて取得した前記第2実行結果を前記第1シミュレータに出力し、前記第1シミュレータおよび前記第2シミュレータの各々に前記サンプル間隔でシミュレーションを周期的に実行させる同期ステップと、を含むことを特徴としている。
前記の方法によれば、前記同期ステップは、前記コントローラについてのシミュレータである前記第1シミュレータ、および前記コントローラにより制御される前記被制御装置についてのシミュレータである前記第2シミュレータの各々に、前記受付ステップにてユーザから受け付けた前記サンプル間隔で、シミュレーションを、周期的に実行させる。
したがって、前記制御方法は、前記第1シミュレータおよび前記第2シミュレータの各々に、前記受付ステップにてユーザから受け付けた前記サンプル間隔で、シミュレーションを、同期させて周期的に実行させることができるという効果を奏する。
つまり、例えば、ユーザが長い時間間隔を前記サンプル間隔とすることにより、前記同期ステップは、前記長い時間間隔の前記サンプル間隔で、前記第1取得ステップにて取得した前記第1実行結果を前記第2シミュレータに出力するとともに、前記長い時間間隔の前記サンプル間隔で、前記第2取得ステップにて取得した前記第2実行結果を前記第1シミュレータに出力する。この場合、前記同期ステップは、前記第1シミュレータおよび前記第2シミュレータがシミュレーションを完了させるまでに、前記第1シミュレータと前記第2シミュレータとの間での前記シミュレーション実行結果の送受信の回数を抑制することができ、結果として、シミュレーションの実行時間全体を短縮することができる。
また、例えば、ユーザが短い時間間隔を前記サンプル間隔とすることにより、前記同期ステップは、前記短い時間間隔の前記サンプル間隔で、前記第1取得ステップにて取得した前記第1実行結果を前記第2シミュレータに出力するとともに、前記短い時間間隔の前記サンプル間隔で、前記第2取得ステップにて取得した前記第2実行結果を前記第1シミュレータに出力する。この場合、前記同期ステップは、前記第1シミュレータおよび前記第2シミュレータの各々が前記短い時間間隔で実行したシミュレーションの結果を、都度、前記第2シミュレータおよび前記第2シミュレータの各々に通知するので、前記第1シミュレータと前記第2シミュレータの各々に実行させるシミュレーションの実行結果のシミュレーション精度を、前記サンプル間隔を長くした場合に比べて向上させることができる。
したがって、前記制御方法は、ユーザが、前記シミュレーションの実行時間と、前記シミュレーションのシミュレーション精度とのいずれを重視して前記シミュレーションを実行させるかを、任意に選択することができるようになるとの効果を奏する。
本発明は、ユーザが設定した時間間隔で、複数のシミュレータの各々に、シミュレーションを同期させて実行させることができるという効果を奏する。
本発明の実施形態1に係るシミュレータ連携装置の要部構成を示すブロック図である。 図1のシミュレータ連携装置を含むシミュレーションシステムの一例を示す図である。 図2のシミュレーションシステムにおける、第1シミュレータ、第2シミュレータ、およびシミュレータ連携装置の各々の処理の流れを説明するフロー図である。 図1のシミュレータ連携装置が、シミュレーションを周期的に実行させる間隔であるサンプル間隔についてユーザに表示し、また前記サンプル間隔についてユーザからの操作を受け付けるインターフェースの一例を示す図である。 図2のシミュレーションシステムにおいて、シミュレータ連携装置によって第1シミュレータおよび第2シミュレータを連携させる方法の一例を示す図である。 図2のシミュレーションシステムにおいて、シミュレータ連携装置によって第1シミュレータおよび第2シミュレータを連携させる方法の、図5に示すのとは別の例を示す図である。 図2のシミュレーションシステムにおける第2シミュレータが表示する画面例を示す図である。 図2のシミュレーションシステムにおける第2シミュレータが表示する、図7に示すのとは別の画面例を示す図である。 図2のシミュレーションシステムにおける第1シミュレータが表示する画面例を示す図である。 図2のシミュレーションシステムによって可能となるモデルベースデザインを説明するための図である。
〔実施形態1〕
以下、本発明の実施形態1について、図1から図10に基づいて詳細に説明する。図中同一または相当部分には同一符号を付してその説明は繰返さない。本発明の一態様に係るシミュレータ連携装置10についての理解を容易にするため、先ず、シミュレータ連携装置10を含むシミュレーションシステム1の概要を、図2を用いて説明する。
(制御システム)
図2は、シミュレータ連携装置10を含むシミュレーションシステム1の概要を示す図である。シミュレーションシステム1は、(1)例えばプログラマブルコントローラ(PLC、Programmable Logic Controller)のような上位コントローラについてのシミュレータである第1シミュレータ300と、(2)前記上位コントローラにより制御される被制御装置(例えばサーボドライバのような下位コントローラ、および当該下位コントローラによって駆動される機械要素)についてのシミュレータである第2シミュレータ400と、(3)第1シミュレータ300と第2シミュレータ400とを連携するシミュレータ連携装置10と、を含んでいる。シミュレータ連携装置10は、第1シミュレータ300および第2シミュレータ400のシミュレーション実行(特に、第1シミュレータ300と第2シミュレータ400との間のデータ交換、およびシミュレーション時刻)をコントロールする。
なお、図2に例示するシミュレーションシステム1においては、シミュレータ連携装置10は、第2シミュレータ400と一体の装置として構成されている。しかしながら、シミュレータ連携装置10が第2シミュレータ400と一体の装置として構成されることは必須ではない。シミュレータ連携装置10は、例えば、第1シミュレータ300と一体の装置として構成されてもよく、また、第1シミュレータ300および第2シミュレータ400のいずれからも独立した装置として構成されてもよい。シミュレータ連携装置10は、第1シミュレータ300と第2シミュレータ400とを連携することができればよく、例えば、第1シミュレータ300および第2シミュレータ400のいずれとも異なる第3の装置と一体の装置として構成されていてもよい。
(第1シミュレータの概要)
上位コントローラのシミュレータである第1シミュレータ300は、第2シミュレータ400のシミュレーション対象である被制御装置が実行する駆動制御(例えば、「軌道追従制御」および「加工機における軌道制御」など)のための指令値(制御信号)を、シミュレータ連携装置10を介して、第2シミュレータ400に送信する。
また、第1シミュレータ300は、上位コントローラについてのシミュレーションを実行すると、その実行結果である第1実行結果を、前記上位コントローラにより制御される被制御装置についてのシミュレータである第2シミュレータ400に送信する。
さらに、第1シミュレータ300は、第2シミュレータ400の出力である制御量(第2実行結果)を、フィードバック情報として受信する。第1シミュレータ300は、フィードバック情報として第2シミュレータ400から受信した第2実行結果(第2シミュレータ400から出力された制御量)を用いて、上位コントローラについてのシミュレーションを実行する。
なお、シミュレーションシステム1において、第1シミュレータ300は、上位コントローラのシミュレータであるとともに、上位コントローラの開発環境を提供する装置であってもよい。すなわち、第1シミュレータ300は、PLCなどの上位コントローラのコンフィグレーション(構成設定)、プログラミング、デバッグ、メンテナンス、モニタリング機能の他、3Dモーションシミュレーションにも対応した統合開発環境(IDE)を提供する装置であってもよい。第1シミュレータ300は、例えば、IL(Instruction List)言語、ラダー(LD、Ladder Diagram)言語、SFC(Sequential Function Chart)言語、FBD(Function Block Diagram)言語、ST(Structured Text)言語等で、上位コントローラについてプログラミングすることができる。第1シミュレータ300は、上位コントローラについてプログラミングすることのできる言語を複数種類準備しているので、ユーザは、スキルおよび経験にあった言語を選択することができ、また、用途に応じた使い分けが可能である。第1シミュレータ300は、ラダー言語とST言語という2つの言語が使えるので、あらゆる用途に対応することができる。
なお、第1シミュレータ300は、第2シミュレータ400における制御モデルから、PLC等の上位コントローラのためのプログラム(例えば、ST言語)を自動生成することができる。すなわち、シミュレータ連携装置10は、第2シミュレータ400におけるモデルを、第1シミュレータ300にFunctionBlock(FB)としてインポートして、他のユーザプログラム同様に利用させることができる。
(第2シミュレータの概要)
第2シミュレータ400は、上位コントローラにより制御される被制御装置(例えばサーボドライバのような下位コントローラ、および当該下位コントローラによって駆動される機械要素)についてのシミュレータであり、例えばマシンモデルを含んでいる。
第2シミュレータ400は、上位コントローラのシミュレータである第1シミュレータ300から指令値(制御信号)を受信する。第2シミュレータ400は、受信した指令値に基づいて、前記上位コントローラにより制御される被制御装置(例えばサーボドライバのような下位コントローラ、および当該下位コントローラによって駆動される機械要素)についてのシミュレーションを実行する。
また、第2シミュレータ400は、前記被制御装置についてのシミュレーションを実行すると、その実行結果である第2実行結果を、前記上位コントローラについてのシミュレータである第1シミュレータ300にフィードバック情報として送信する。
さらに、第2シミュレータ400は、第1シミュレータ300から、第1シミュレータ300が上位コントローラについてのシミュレーションを実行した結果である第1実行結果を受信する。第2シミュレータ400は、受信した前記第1実行結果を用いて、前記被制御装置についてのシミュレーションを実行する。
なお、シミュレーションシステム1において、第2シミュレータ400は、前記被制御装置のシミュレータであるとともに、被制御装置(例えばサーボドライバのような下位コントローラ)の開発環境を提供する装置であってもよい。すなわち、第2シミュレータ400は、モデルをブロック線図として作成するためのグラフィカルエディターを提供し、また、定義したモデルの動的な動作をシミュレーションし、シミュレーションの実行結果を表示することができてもよい。第2シミュレータ400は、例えば、MATLAB/Simulink(登録商標)などの制御CADであってもよい。シミュレーションシステム1において、シミュレータ連携装置10が第2シミュレータ400と一体の装置として構成される場合、シミュレータ連携装置10は、例えばMATLAB/Simulink(登録商標)などの制御CADである第2シミュレータ400にアドオンできるように構成されてもよい。
(制御システムの概要)
上位コントローラと、上位コントローラによって制御される被制御装置(例えば、サーボドライバのような下位コントローラなど)との全体のプログラムおよび設計の検証を、実機検証の前に、追加作業を抑制しつつ前倒しで実行したいという要望がある。
また、PLCのような上位コントローラの従来の開発環境(開発装置)は、当該上位コントローラによって制御される被制御装置からのフィードバック値を得ることができなかった。そのため、上位コントローラの開発環境のユーザは、当該開発環境内に、前記被制御装置の動作をするようにデバッグ用のプログラムを作成する必要があった。
ここで、モデルベースデザインでは、MATLAB/Simulink(登録商標)などの制御CADにより、PLCのような上位コントローラによって制御される被制御装置のモデルをソフトウェア設計工程で作成している。
シミュレーションシステム1では、シミュレータ連携装置10は、サーボドライバのような下位コントローラを含む被制御装置についてのシミュレータであって、前記下位コントローラの開発環境である第2シミュレータ400で作成した被制御装置のモデルを、ソフトウェア検証工程で利用させることができる。すなわち、シミュレーションシステム1において、シミュレータ連携装置10は、上位コントローラのシミュレータであって、前記上位コントローラの開発環境である第1シミュレータ300に、第2シミュレータ400で作成した被制御装置のモデルを、利用させることができる。
シミュレーションシステム1においてシミュレータ連携装置10は、第1シミュレータ300と第2シミュレータ400とで、両者のシミュレーション時刻の同期を取りながら必要なデータの交換を行い、両者にシミュレーションを実行させる。特に、シミュレーションシステム1においてシミュレータ連携装置10は、ユーザが設定した時間間隔で、第1シミュレータ300と第2シミュレータ400との各々に、シミュレーションを同期させて実行させる。
したがって、シミュレーションシステム1では、例えば、「速度超過したときに警報が出て停止するか」、「軸変数のリミット設定が意図通りに機能するか」等、実機では発生させにくい、または、実機で発生させるのは危険な動作の、プログラムおよび設定の検証をすることができる。
また、シミュレーションシステム1においてシミュレータ連携装置10は、以下に説明するように、第2シミュレータ400を利用した自動テストを可能とし、上位コントローラおよび下位コントローラの全体のプログラムおよび設計の検証工数を削減することができる。
さらに、シミュレータ連携装置10は、第1シミュレータ300におけるプログラムの1周期実行およびブレークポイントの設定などによってプログラムの実行速度を変更した場合でも、第2シミュレータ400とのシミュレーション時刻の同期を維持する。したがって、ユーザは、シミュレータ連携装置10を利用することにより、上位コントローラおよび被制御装置についての厳密なロジック検証が可能となる。
また、シミュレータ連携装置10は、第2シミュレータ400において、シミュレーション実行を一時停止させたり、ステップ実行させたりした場合にも、第1シミュレータ300とのシミュレーション時刻の同期を維持させることができる。
(モデルベースデザインについて)
図10は、シミュレーションシステム1によって可能となるモデルベースデザインを説明するための図である。図10に示すように、モデルベースデザインにおいては、システム設計段階、ソフトウェア設計段階、ソフトウェア作成(プログラミング)段階は、この順で進められる。そして、シミュレーションシステム1によって可能となるモデルベースデザインにおいては、システム設計段階、ソフトウェア設計段階、ソフトウェア作成(プログラミング)段階において、モデル検証、ソフトウェア検証、実機検証を行うことができる。
システム設計段階からソフトウェア設計段階までの間に行う制御対象モデリング工程において、ユーザは、第2シミュレータ400を利用して、サーボドライバおよびアナログ入出力などの制御対象をモデリングする。ユーザは、第2シミュレータ400を利用して設計した制御器モデルおよびマシンモデルに対し、シミュレータ連携装置10によって連携された第1シミュレータ300および第2シミュレータ400の少なくとも一方を利用して、モデル検証を行うことができる。なお、以下の説明において、制御対象モデリングは、「MILS(Model In the Loop Simulation)」と略記する。
MILSについて、シミュレータ連携装置10が第1シミュレータ300と第2シミュレータ400とを連携しているので、第2シミュレータ400におけるI/O機器のモデルを、第1シミュレータ300で設定したI/O機器の設定に基づいてシミュレーションさせることができる。これにより、I/O機器の特性を考慮した制御性能の確認および調整を行うことができ、また、I/O機器の設定を含めた検証を行うことができる。
ソフトウェア設計段階において、ユーザは、第1シミュレータ300を利用して、制御系(例えば、PLC等の上位コントローラ)を設計することができる。ユーザは、第1シミュレータ300を利用して設計した制御系に対し、シミュレータ連携装置10によって連携された第1シミュレータ300および第2シミュレータ400の少なくとも一方を利用して、モデル検証を行うことができる。
さらに、ソフトウェア作成(プログラミング)段階において、ユーザは、シミュレータ連携装置10によって連携される第1シミュレータ300および第2シミュレータ400を利用してソフトウェアを作成する。ユーザは、作成したソフトウェアについてソフトウェア検証を行い、例えば、シミュレータ連携装置10によって連携された第1シミュレータ300および第2シミュレータ400の少なくとも一方を利用してソフトウェア検証を行う。なお、以下の説明において、ソフトウェア検証は、「SILS(Software In the Loop Simulation)」と略記する。
また、ユーザは、シミュレータ連携装置10に、第2シミュレータ400と第1シミュレータ300との連携シミュレーションを実行させることによって、SILSを実行することができる。つまり、ユーザは、シミュレータ連携装置10によって、実機検証前の事前検証を行うことができ、ハンドコーディングしたプログラム、表示器を含めた装置全体のプログラム検証を行うことができる。また、ユーザは、プログラムの1周期実行、およびブレークポイントの設定等による、厳密なロジック検証を行うことができ、さらに、検証の繰り返し、検証の自動実行、レアケースの検証等についても容易に行うことができる。
ソフトウェア検証後、ユーザは、実機検証を行う。この際、ユーザは、上位コントローラ(または、第1シミュレータ300)によって、第2シミュレータ400およびマシン(被制御装置)を動作させることにより、第2シミュレータ400に実機制御データ(マシンを実際に動作させた際に得られるデータ)を取得させることができる。
シミュレータ連携装置10が、第1シミュレータ300と第2シミュレータ400とを連携させているので、ユーザは、実機を制御しているPLC等の上位コントローラおよび第1シミュレータ300の少なくとも一方で用いているデータを、第2シミュレータ400でモニタすることができる。また、ユーザは、上位コントローラおよび第1シミュレータ300の少なくとも一方で用いられる制御パラメータ(調整パラメータ)を、第2シミュレータ400から書き込むこともできる。すなわち、ユーザは、MILSおよびSILSと同様に、第2シミュレータ400で実機制御をモニタすることができ、モニタ環境を再利用することができる。ユーザは、シミュレーションと実機制御とを追加の手間なく比較することができ、第2シミュレータ400から、上位コントローラおよび第1シミュレータ300の少なくとも一方で用いられる制御パラメータの調整ができ、第2シミュレータ400で用いられるモデルと実機との間のパラメータを常に一致させることができる。
シミュレーションシステム1によって可能となるモデルベースデザインにより、システム設計およびソフトウェア設計については、モデル作成およびシミュレーション実行のために工数が少し増加し得るが、ソフトウェア作成については、自動コード生成により工数が大幅に減少し、ソフトウェア検証についても、設計段階での不具合除去により工数が大幅に減少する。以下、詳細を説明していく。
従来の開発プロセスにおいては、制御設計および検証が後回しとなるため、開発後半に工数増大する傾向があった。これに対して、図10に示すモデルベースデザインでは、実機組立前に制御設計および検証が可能である。
ここで、シミュレーションシステム1によって可能となる開発手順としては、例えば以下の4つのものを挙げることができる。すなわち、第1に、先ずMILSを行い、次にソフトウェア作成(プログラミング)を行い、さらにSILSを行ったうえで、最後に、実機制御(実機検証)を行う手順を挙げることができる。これは、図10に例示するような、モデルベースデザインの標準的な開発手順である。
第2に、先ずMILSを行い、次にSILSを行った後に、実機制御(実機検証)を行う手順を挙げることができる。第2シミュレータ400において開発するコントローラモデルがシンプルな場合、ユーザは、自動コード生成を実行する代わりに手作業でプログラミングをして、実機制御(実機検証)を行うことができる場合がある。
第3に、先ずMILSを行い、次にソフトウェア作成(プログラミング)を行った後に、実機制御(実機検証)を行う手順を挙げることができる。制御プログラムの大半を第2シミュレータ400において開発する場合、MILSとSILSとの違いは小さい。そして、シミュレータ連携装置10が第1シミュレータ300と第2シミュレータ400とを連携しているので、SILSを行うことは必須ではない。
第4に、先ずSILSを行った後に、実機制御(実機検証)を行う手順を挙げることができる。第2シミュレータ400は制御対象モデルの開発およびシミュレーションにのみ使用し、制御プログラムのすべてを第1シミュレータ300において開発する場合、シミュレータ連携装置10が第1シミュレータ300と第2シミュレータ400とを連携しているので、SILSから開発を開始することもできる。
(シミュレーションが奏する効果について)
例えば、温度制御において、制御が困難な要因の例として、非線形、特性変動、熱干渉、むだ時間など、制御対象の特性に起因するものを挙げることができる。また、外乱が大きい場合、または連続的な場合も、制御が困難な要因の例として挙げることができる。さらに、応答が遅いため、時間制約からチューニング仕切れない場合も、制御が困難な要因の例として挙げることができる。
シミュレーションによって、制御対象の特性に起因するものに対し、適切な制御アルゴリズムを短期間で開発できる。また、外乱が大きい場合、または連続的な場合も、シミュレーションによって、適切な制御アルゴリズムを短期間で開発できる。さらに、応答が遅いため、時間制約からチューニング仕切れない場合であっても、シミュレーションによって、最適な制御パラメータを短期間で見つけることができる。
(シミュレータ連携装置)
シミュレータ連携装置10は、シミュレーションを周期的に実行させる間隔であるサンプル間隔をユーザから受け付ける受付部101と、コントローラ(例えば、PLC)についてのシミュレータである第1シミュレータ300から、第1シミュレータ300の前記サンプル間隔分のシミュレーション実行結果である第1実行結果を取得する第1取得部103と、前記コントローラにより制御される被制御装置(例えばサーボドライバのような下位コントローラ、および当該下位コントローラによって駆動される機械要素)についてのシミュレータである第2シミュレータ400から、第2シミュレータ400の前記サンプル間隔分のシミュレーション実行結果である第2実行結果を取得する第2取得部104と、第1取得部103により取得した前記第1実行結果を第2シミュレータ400に出力するとともに、第2取得部104により取得した前記第2実行結果を第1シミュレータ300に出力し、第1シミュレータ300および第2シミュレータ400の各々に前記サンプル間隔でシミュレーションを周期的に実行させる同期部107と、を備えている。
前記の構成によれば、同期部107は、前記コントローラについてのシミュレータである第1シミュレータ300、および前記コントローラにより制御される前記被制御装置についてのシミュレータである第2シミュレータ400の各々に、受付部101によりユーザから受け付けた前記サンプル間隔でシミュレーションを、周期的に実行させる。
したがって、シミュレータ連携装置10は、第1シミュレータ300および第2シミュレータ400の各々に、受付部101によりユーザから受け付けた前記サンプル間隔でシミュレーションを、同期させて周期的に実行させることができるという効果を奏する。
つまり、例えば、ユーザが長い時間間隔を前記サンプル間隔とすることにより、同期部107は、前記長い時間間隔の前記サンプル間隔で、第1取得部103により取得した前記第1実行結果を第2シミュレータ400に出力するとともに、前記長い時間間隔の前記サンプル間隔で、第2取得部104により取得した前記第2実行結果を第1シミュレータ300に出力する。この場合、同期部107は、第1シミュレータ300および第2シミュレータ400がシミュレーションを完了させるまでに、第1シミュレータ300と第2シミュレータ400との間での前記シミュレーション実行結果の送受信の回数を抑制することができ、結果として、シミュレーションの実行時間全体を短縮することができる。
また、例えば、ユーザが短い時間間隔を前記サンプル間隔とすることにより、同期部107は、前記短い時間間隔の前記サンプル間隔で、第1取得部103により取得した前記第1実行結果を第2シミュレータ400に出力するとともに、前記短い時間間隔の前記サンプル間隔で、第2取得部104により取得した前記第2実行結果を第1シミュレータ300に出力する。この場合、同期部107は、第1シミュレータ300および第2シミュレータ400の各々が前記短い時間間隔で実行したシミュレーションの結果を、都度、第2シミュレータ400および第2シミュレータ400の各々に通知するので、第1シミュレータ300と第2シミュレータ400の各々に実行させるシミュレーションの実行結果のシミュレーション精度を、前記サンプル間隔を長くした場合に比べて向上させることができる。
したがって、シミュレータ連携装置10は、ユーザが、前記シミュレーションの実行時間と、前記シミュレーションのシミュレーション精度とのいずれを重視して前記シミュレーションを実行させるかを、任意に選択することができるようになるとの効果を奏する。
シミュレータ連携装置10は、第2シミュレータ400と一体の装置として構成されている。
前記の構成によれば、第2シミュレータ400と一体の装置として構成されたシミュレータ連携装置10が、第1シミュレータ300に、受付部101によりユーザから受け付けた前記サンプル間隔でシミュレーションを、第2シミュレータ400のシミュレーションと同期させて周期的に実行させることができるという効果を奏する。
(シミュレータ連携装置の詳細)
以上に概要を説明したシミュレータ連携装置10について、次に、図1を用いて、その詳細を説明していく。
図1は、本発明の実施形態1に係るシミュレータ連携装置10の要部構成を示すブロック図である。図1に示すように、シミュレータ連携装置10は、受付部101と、表示部102と、第1取得部103と、第2取得部104と、第1出力部105と、第2出力部106と、同期部107と、を備えている。
受付部101は、第1シミュレータ300および第2シミュレータ400の各々に、シミュレーションを周期的に実行させる間隔であるサンプル間隔を指定するユーザ操作を受け付ける。詳細は図4を用いて後述するが、受付部101は、第1シミュレータ300または第2シミュレータ400がシミュレーションを実行する際に用いる変数ごとのサンプル間隔を、ユーザから受け付ける。
表示部102は、ユーザがサンプル間隔を確認し、設定するための画面を、例えばユーザインタフェース200に表示する。表示部102が表示する「ユーザがサンプル間隔を確認し、設定するための画面」の一例は、図4に例示するサンプル間隔設定画面である。表示部102は、ユーザが設定可能なサンプル間隔の初期設定値として、第1シミュレータ300がシミュレーションを行う上位コントローラ(例えば、PLC)の制御周期を、サンプル間隔設定画面に表示する。また、詳細は図4を用いて後述するが、表示部102は、サンプル間隔設定画面において、第1シミュレータ300または第2シミュレータ400がシミュレーションを実行する際に用いる変数ごとに、ユーザが設定可能なサンプル間隔を表示する。
第1取得部103は、第1シミュレータ300から、第1シミュレータ300の前記サンプル間隔分のシミュレーション実行結果である第1実行結果を取得する。第1取得部103は、第1シミュレータ300から取得した第1実行結果を同期部107に送信する。
第2取得部104は、第2シミュレータ400から、第2シミュレータ400の前記サンプル間隔分のシミュレーション実行結果である第2実行結果を取得する。第2取得部104は、第2シミュレータ400から取得した第2実行結果を同期部107に送信する。
第1出力部105は、第2取得部104が第2シミュレータ400から取得した第2実行結果を、同期部107が指示するタイミングで、第1シミュレータ300に出力する。第1出力部105は、例えば、同期部107から第2実行結果を取得し、取得した第2実行結果を、同期部107が指示するタイミングで、第1シミュレータ300に出力する。
第2出力部106は、第1取得部103が第1シミュレータ300から取得した第1実行結果を、同期部107が指示するタイミングで、第2シミュレータ400に出力する。第2出力部106は、例えば、同期部107から第1実行結果を取得し、取得した第1実行結果を、同期部107が指示するタイミングで、第2シミュレータ400に出力する。
同期部107は、第1シミュレータ300および第2シミュレータ400の各々に、受付部101がユーザから受け付けたサンプル間隔で、シミュレーションを周期的に実行させる。同期部107は、第1出力部105に、第2シミュレータ400のサンプル間隔分のシミュレーション実行結果である第2実行結果を、第1シミュレータ300がサンプル間隔分のシミュレーションを完了した後に、第1シミュレータ300に出力させる。
そして、同期部107は、第1シミュレータ300に、前記第2実行結果を用いてサンプル間隔分のシミュレーションを実行するよう指示する。
同期部107は、また、第2出力部106に、第1シミュレータ300のサンプル間隔分のシミュレーション実行結果である第1実行結果を、第2シミュレータ400がサンプル間隔分のシミュレーションを完了した後に、第2シミュレータ400に出力させる。そして、同期部107は、第2シミュレータ400に、前記第1実行結果を用いてサンプル間隔分のシミュレーションを実行するよう指示する。
図1に示すように、シミュレータ連携装置10には、ユーザインタフェース200が接続されてもよい。ユーザインタフェース200は、例えば、HMI(Human Machine Interface)である。HMIは、人間と機械とが情報をやり取りするための手段であり、具体的には、人間が機械を操作したり(機械に指示を与えたり)、機械が現在の状態・結果を人間に知らせたりする手段である。HMIについて、人間が機械に指示を与える手段としてはスイッチ、ボタン、ハンドル、ダイヤル、ペダル、リモコン、マイク、キーボード、マウスなどが含まれ、機械が現在の状態・結果等に係る情報を人間に伝える手段としては液晶画面、メーター、ランプ、スピーカーなどが含まれる。
(シミュレーションシステム1において実行される処理の詳細)
図3は、シミュレーションシステム1における、第1シミュレータ300、第2シミュレータ400、およびシミュレータ連携装置10の各々の処理の流れを説明するフロー図である。なお、以下の説明においてシミュレータ連携装置10は、第1シミュレータ300および第2シミュレータ400の各々にシミュレーションを周期的に実行させる間隔である「サンプル間隔」を、図示しない「ステップ(0)」において、ユーザから受け付けているものとする。
シミュレータ連携装置10の第2取得部104は、第2シミュレータ400(特にそのマシンモデル)から、第2シミュレータ400のシミュレーション実行結果である入力値(第2実行結果)を取得する(ステップ(1):入力値取得)。
シミュレータ連携装置10の第1出力部105は、第2シミュレータ400から取得した入力値(第2実行結果)を、第1シミュレータ300に送信する(ステップ(2):入力値書込)。
シミュレータ連携装置10の第1取得部103は、第1シミュレータ300から、出力値(第1実行結果)を取得する(ステップ(3):出力値読出)。
シミュレータ連携装置10の同期部107は、第1シミュレータ300に、サンプル間隔分のシミュレーションを実行するよう指示する(ステップ(4−1))。第1シミュレータ300は、シミュレータ連携装置10(特に、同期部107)からの指示に従って、サンプル間隔分のシミュレーション実行する(ステップ300)。
また、シミュレータ連携装置10の同期部107は、第2出力部106に出力値(第1実行結果)を第2シミュレータ400へと出力させ(送信させ)、前記出力値を用いて、第2シミュレータ400に、サンプル間隔分のシミュレーションを実行するよう指示する(ステップ(4−2))。第2シミュレータ400は、シミュレータ連携装置10(同期部107)からの指示に従って、サンプル間隔分のシミュレーション実行する(ステップ400)。なお、ステップ(4−1)とステップ(4−2)とを併せて、「ステップ(4)」と称する。
シミュレータ連携装置10の第2取得部104は、第2シミュレータ400から、第2シミュレータ400がステップ400で実行したシミュレーションの実行結果である入力値(第2実行結果)を取得する(ステップ(5):入力値取得)。
第1シミュレータ300が、シミュレータ連携装置10の同期部107からの指示に基づいて、サンプル間隔分のシミュレーションを実行し終わってから(サンプル間隔分のシミュレーション実行が完了してから)、シミュレータ連携装置10の第1出力部105は、ステップ(5)で第2シミュレータ400から取得した入力値(第2実行結果)を、第1シミュレータ300に送信する(ステップ(6):入力値書込)。
シミュレータ連携装置10の第1取得部103は、第1シミュレータ300から、第1シミュレータ300がステップ300で実行したシミュレーションの実行結果である入力値(第1実行結果)を取得する(ステップ(7):出力値読出)。
シミュレータ連携装置10の同期部107は、第1シミュレータ300に、第1シミュレータ300がステップ(6)で取得した第2実行結果を用いて、サンプル間隔分のシミュレーションを実行するよう指示する(ステップ(8−1))。第1シミュレータ300は、シミュレータ連携装置10(特に、同期部107)からの「ステップ(8−1)における指示」に従って、サンプル間隔分のシミュレーション実行する(ステップ300)。
また、シミュレータ連携装置10の同期部107は、第2出力部106に、ステップ(7)で第1シミュレータ300から取得した第1実行結果を第2シミュレータ400へと出力させる(送信させる)。そして、同期部107は、第2シミュレータ400に、ステップ(7)で第1取得部103が第1シミュレータ300から取得した第1実行結果を用いて、サンプル間隔分のシミュレーションを実行するよう指示する(ステップ(8−2))。第2シミュレータ400は、シミュレータ連携装置10(同期部107)からの「ステップ(8−2)における指示」に従って、サンプル間隔分のシミュレーション実行する(ステップ400)。なお、ステップ(8−1)とステップ(8−2)とを併せて、「ステップ(8)」と称する。
図3を用いて説明した、シミュレータ連携装置10が実行する処理(シミュレータ連携装置10の制御方法)は、以下のように整理することができる。すなわち、シミュレータ連携装置10が実行する処理は、複数のシミュレータの各々が実行するシミュレーションを連携させるシミュレータ連携装置の制御方法であって、シミュレーションを周期的に実行させる間隔であるサンプル間隔をユーザから受け付ける受付ステップ(ステップ(0))と、コントローラ(例えば、PLC)についてのシミュレータである第1シミュレータ300から、第1シミュレータ300の前記サンプル間隔分のシミュレーション実行結果である第1実行結果を取得する第1取得ステップ(ステップ(3)および(7))と、前記コントローラにより制御される被制御装置(例えばサーボドライバのような下位コントローラ、および当該下位コントローラによって駆動される機械要素)についてのシミュレータである第2シミュレータ400から、第2シミュレータ400の前記サンプル間隔分のシミュレーション実行結果である第2実行結果を取得する第2取得ステップ(ステップ(1)および(5))と、前記第1取得ステップにて取得した前記第1実行結果を第2シミュレータ400に出力するとともに、前記第2取得ステップにて取得した前記第2実行結果を第1シミュレータ300に出力し、第1シミュレータ300および第2シミュレータ400の各々に前記サンプル間隔でシミュレーションを周期的に実行させる同期ステップ(ステップ(4)および(8))と、を含んでいる。
前記の方法によれば、前記同期ステップは、前記コントローラについてのシミュレータである第1シミュレータ300、および前記コントローラにより制御される前記被制御装置についてのシミュレータである第2シミュレータ400の各々に、前記受付ステップにてユーザから受け付けた前記サンプル間隔で、シミュレーションを、周期的に実行させる。
したがって、前記制御方法は、第1シミュレータ300および第2シミュレータ400の各々に、前記受付ステップにてユーザから受け付けた前記サンプル間隔で、シミュレーションを、同期させて周期的に実行させることができるという効果を奏する。
つまり、例えば、ユーザが長い時間間隔を前記サンプル間隔とすることにより、前記同期ステップは、前記長い時間間隔の前記サンプル間隔で、前記第1取得ステップにて取得した前記第1実行結果を第2シミュレータ400に出力するとともに、前記長い時間間隔の前記サンプル間隔で、前記第2取得ステップにて取得した前記第2実行結果を第1シミュレータ300に出力する。この場合、前記同期ステップは、第1シミュレータ300および第2シミュレータ400がシミュレーションを完了させるまでに、第1シミュレータ300と第2シミュレータ400との間での前記シミュレーション実行結果の送受信の回数を抑制することができ、結果として、シミュレーションの実行時間全体を短縮することができる。
また、例えば、ユーザが短い時間間隔を前記サンプル間隔とすることにより、前記同期ステップは、前記短い時間間隔の前記サンプル間隔で、前記第1取得ステップにて取得した前記第1実行結果を第2シミュレータ400に出力するとともに、前記短い時間間隔の前記サンプル間隔で、前記第2取得ステップにて取得した前記第2実行結果を第1シミュレータ300に出力する。この場合、前記同期ステップは、第1シミュレータ300および第2シミュレータ400の各々が前記短い時間間隔で実行したシミュレーションの結果を、都度、第2シミュレータ400および第2シミュレータ400の各々に通知するので、第1シミュレータ300と第2シミュレータ400の各々に実行させるシミュレーションの実行結果のシミュレーション精度を、前記サンプル間隔を長くした場合に比べて向上させることができる。
したがって、前記制御方法は、ユーザが、前記シミュレーションの実行時間と、前記シミュレーションのシミュレーション精度とのいずれを重視して前記シミュレーションを実行させるかを、任意に選択することができるようになるとの効果を奏する。
(ユーザによるサンプル間隔の設定について)
図4は、シミュレータ連携装置10が、シミュレーションを周期的に実行させる間隔であるサンプル間隔についてユーザに表示し、また前記サンプル間隔についてユーザからの操作を受け付けるインターフェースの一例を示す図である。
図4に例示するサンプル間隔設定画面は、例えば、表示部102が、ユーザインタフェース200に表示させる。そして、図4のサンプル間隔設定画面に対するユーザ操作は、受付部101によって処理される(受け付けられる)。例えば、図4のサンプル間隔設定画面でユーザに設定されたサンプル間隔で、シミュレータ連携装置10は、第1シミュレータ300と第2シミュレータ400の各々にシミュレーションを周期的に実行させる。
シミュレーションシステム1においては、通常、第1シミュレータ300のシミュレーション対象である上位コントローラの制御周期が、サンプル間隔として、ユーザによって設定される。すなわち、表示部102は、図4に例示するサンプル間隔設定画面において、第1シミュレータ300および第2シミュレータ400の各々にシミュレーションを周期的に実行させる間隔であるサンプル間隔の初期設定値として、上位コントローラ(例えば、PLC)の制御周期を表示する。
前記の構成によれば、表示部102は、前記サンプル間隔の初期設定値として上位コントローラの制御周期を表示する。
したがって、シミュレータ連携装置10は、上位コントローラについてのシミュレータである第1シミュレータ300に、上位コントローラの制御周期でシミュレーションを実行させつつ、上位コントローラにより制御される前記被制御装置についてのシミュレータである第2シミュレータ400に、第1シミュレータ300のシミュレーションと同期させて、シミュレーションを実行させることができるという効果を奏する。
ただし、ユーザは、図4に例示するサンプル間隔設定画面において、上位コントローラの制御周期とは異なる値を、サンプル間隔として設定することもできる。例えば、シミュレータ連携装置10において、前記サンプル間隔は、上位コントローラの制御周期よりも長い時間を設定可能である。
前記の構成によれば、同期部107は、上位コントローラの制御周期よりも長い時間である前記サンプル間隔で、第1取得部103により取得した前記第1実行結果を第2シミュレータ400に出力するとともに、受付部101により受け付けた前記サンプル間隔で、第2取得部104により取得した前記第2実行結果を第1シミュレータ300に出力する。
したがって、同期部107は、第1シミュレータ300および第2シミュレータ400がシミュレーションを完了させるまでに、第1シミュレータ300と第2シミュレータ400との間での前記シミュレーション実行結果の送受信の回数を抑制することができるという効果を奏する。つまり、シミュレータ連携装置10は、第1シミュレータ300および第2シミュレータ400がシミュレーションを完了させる時間を短縮することができるという効果を奏する。
シミュレータ連携装置10において、ユーザは、サンプル間隔を長く設定することにより、第1シミュレータ300と第2シミュレータ400との間のデータ交換回数を減らし、シミュレーション実行時間を短縮することができる。
図4に例示するように、ユーザは、サンプル間隔設定画面において、第1シミュレータ300または第2シミュレータ400がシミュレーションを実行する際に用いる変数ごとに、サンプル間隔を設定することができる。すなわち、シミュレータ連携装置10において、受付部101は、第1シミュレータ300または第2シミュレータ400がシミュレーションを実行する際に用いる変数ごとのサンプル間隔を、ユーザから受け付ける。
前記の構成によれば、同期部107は、第1シミュレータ300または第2シミュレータ400がシミュレーションを実行する際に用いる変数ごとに設定されたサンプル間隔で、前記変数を第1シミュレータ300と第2シミュレータ400との間で送受信させる。
したがって、シミュレータ連携装置10は、第1シミュレータ300または第2シミュレータ400において実行されるシミュレーションで用いられる変数ごとに最適な時間間隔で、前記変数を第1シミュレータ300と第2シミュレータ400との間で送受信させることができるので、第1シミュレータ300および第2シミュレータ400がシミュレーションを完了させる時間を短縮することができるという効果を奏する。
ここで、例えば上位コントローラが並行して複数の処理を実行する場合、受付部101は、前記複数の処理に対応して第1シミュレータ300が実行する複数のシミュレーションの各々について、サンプル間隔をユーザから受け付けることができる。そして、同期部107は、前記複数のシミュレーションの各々のシミュレーション実行結果を、前記複数のシミュレーションの各々の前記サンプル間隔で、第2シミュレータ400に出力する。
したがって、シミュレータ連携装置10は、第1シミュレータ300が並行して実行する前記複数のシミュレーションの各々のシミュレーション実行結果を、前記複数のシミュレーションごとに最適な間隔で、第2シミュレータ400に出力することにより、第1シミュレータ300および第2シミュレータ400がシミュレーションを完了させる時間を短縮することができるという効果を奏する。
例えば、第1シミュレータ300のシミュレーション対象である上位コントローラでマルチタスクの機能を使っている場合には、シミュレータ連携装置10は、参照している変数のタスク周期に応じたデータ交換を行うことにより、第1シミュレータ300と第2シミュレータ400との間でのデータ交換回数を減らし、シミュレーション実行時間を短縮させることもできる。
上記コントローラは、例えば、「EtherCAT通信、モーション制御、I/Oリフレッシュ、および、ユーザプログラム」を主な処理内容とするプライマリ定周期タスクと、「I/Oリフレッシュおよびユーザプログラム」を主な処理内容とする定周期タスクと、「ユーザプログラム」を主な処理内容とするイベントタスクという3種類のタスクを有していてもよい。上記コントローラは、プライマリ定周期タスクを最優先で実行し、定周期タスクとイベントタスクとの間の優先関係はユーザが指定できてもよく、さらに、1タスクあたり、例えば最大128のプログラムを割り当てることができてもよい。
(シミュレータ間で交換するデータについて)
シミュレータ連携装置10が第1シミュレータ300および第2シミュレータ400の少なくとも一方から取得する信号(情報)は、第1シミュレータ300および第2シミュレータ400の各々におけるシミュレーションの実行によって値が変化するもの(例えば、シミュレーション実行結果としてのフィードバック値)と、値が変化しないもの(例えば、PIDパラメータなど)と、がある。
シミュレータ連携装置10は、シミュレーションの実行によって値が変化しない信号(情報)は、最初の1回目のデータ交換のタイミングでのみ、第1シミュレータ300から第2シミュレータ400へ書込みし、または、第2シミュレータ400から第1シミュレータ300へ書込みし、データ交換の量を削減している。
すなわち、シミュレータ連携装置10において、同期部107は、第1シミュレータ300におけるシミュレーションに用いる変数であって、第1シミュレータ300におけるシミュレーションの実行によって値が変化しない変数を、第1シミュレータ300がシミュレーションを実行する前に1回だけ、第1シミュレータ300に出力する。
前記の構成によれば、同期部107は、第2シミュレータ400におけるシミュレーションに用いる変数であって、第2シミュレータ400におけるシミュレーションの実行によって値が変化しない変数を、第1シミュレータ300がシミュレーションを実行する前に1回だけ、第1シミュレータ300に出力する。
したがって、同期部107は、第1シミュレータ300と第2シミュレータ400との間で送受信するデータ量を抑制することができるという効果を奏する。つまり、シミュレータ連携装置10は、第1シミュレータ300および第2シミュレータ400がシミュレーションを完了させる時間を短縮することができるという効果を奏する。
(シミュレータ連携装置の利用例について)
これまでに説明してきたシミュレータ連携装置10について、次に、図5および図6を用いて、その利用方法について具体例を用いて説明していく。
図5は、シミュレーションシステム1において、シミュレータ連携装置10によって第1シミュレータ300および第2シミュレータ400を連携させる方法の一例を示す図である。
図5に示すように、シミュレータ連携装置10は、シーケンス制御の制御器モデル設計時に利用することができる。すなわち、ユーザは、先ず、例えばHMIであるユーザインタフェース200を操作して(または、第1シミュレータ300を操作して)、第1シミュレータ300においてイベントを発生させる(つまり、遷移条件を満足させ、状態を遷移させる)。
シミュレータ連携装置10は、第1シミュレータ300における状態遷移の結果を第1実行結果(第1シミュレータ300におけるシミュレーションの実行結果)として取得する。シミュレータ連携装置10は、第1シミュレータ300における状態遷移の結果を、第2シミュレータ400に送信し、第2シミュレータ400に、第1シミュレータ300における状態遷移の結果を用いたシミュレーションを実行させる。
図5に示す例で、シミュレータ連携装置10は、例えば、シーケンス制御に用いる制御器モデル(例えば、Stateflow(登録商標))に、第1シミュレータ300における状態遷移の結果を用いたシミュレーションを実行させる。
ユーザは、第2シミュレータ400における制御器モデルによるシミュレーション結果をステート図により確認し、必要により制御器モデルを適宜修正し、修正した制御器モデルに、第1シミュレータ300における状態遷移の結果を用いたシミュレーションを再実行させることができる。
シミュレータ連携装置10は、第2シミュレータ400における制御器モデルのシミュレーションの実行結果を、第2実行結果(第2シミュレータ400におけるシミュレーションの実行結果)として取得する。シミュレータ連携装置10は、制御器モデルのシミュレーションの実行結果を第1シミュレータ300に送信し、第1シミュレータ300に、制御器モデルのシミュレーションの実行結果を用いたシミュレーションを実行させる。
第1シミュレータ300は、制御器モデルのシミュレーションの実行結果を用いたシミュレーションを実行し、例えば、制御プログラムを起動し、制御器モデルのシミュレーションの実行結果を用いて、制御プログラム等を実行する。
シミュレータ連携装置10は、第1シミュレータ300による上記シミュレーションの実行結果を、第1実行結果として取得する。シミュレータ連携装置10は、第1シミュレータ300から取得したシミュレーションの実行結果を、第2シミュレータ400に送信し、第2シミュレータ400に、シミュレーションを実行させる。
図5に示す例で、シミュレータ連携装置10は、例えば、連続制御に用いるマシンモデルに、第1シミュレータ300による上記シミュレーションの実行結果を用いたシミュレーションを実行させる。
図5は、第2シミュレータ400に、マシンモデルだけでなく、シーケンス制御の制御器モデルを配置してシミュレーションする例を示している。図5において、第1シミュレータ300には、シーケンス制御のための制御プログラムが準備されていない。しかしながら、シミュレータ連携装置10が、第1シミュレータ300と第2シミュレータ400との間で漏れなくデータを交換させることができることにより、図5に示すように、シミュレータ連携装置10は、シーケンス制御の制御器モデル設計時に利用することができる。
(シミュレータ連携装置の別の利用例について)
図6は、シミュレーションシステム1において、シミュレータ連携装置10によって第1シミュレータ300および第2シミュレータ400を連携させる方法の、図5に示すのとは別の例を示す図である。図6に示す例では、図5に示した例と異なり、第1シミュレータ300には、シーケンス制御のための制御プログラムが準備されている。図6に示すように、シミュレータ連携装置10は、シーケンス制御の制御器モデル設計時に利用することができ、ユーザは、ステート図で制御器モデル(Stateflow)をモニタできるので、視認性が向上する。
図6に例示するように、シミュレータ連携装置10は、第1シミュレータ300と第2シミュレータ400とを連携することにより、第1シミュレータ300は、第2シミュレータ400における制御器モデル(Stateflow)を、FunctionBlock(FB)として第1シミュレータ300において表示させることができる。シミュレータ連携装置10によって第1シミュレータ300と第2シミュレータ400とは互いに連携し、データだけでなく、モデル、プログラム等を相互に共有することができる。したがって、ユーザは、例えば図6に例示するように、第2シミュレータ400においてモデリングしたモデル等を、第1シミュレータ300において確認し、第1シミュレータ300において利用することができる。すなわち、制御器モデル(Stateflow)を自動コード生成することにより、FunctionBlock(FB)にすることができる。
ユーザは、先ず、図5に示したのと同様に、例えばHMIであるユーザインタフェース200を操作して(または、第1シミュレータ300を操作して)、第1シミュレータ300においてイベントを発生させる(つまり、遷移条件を満足させ、状態を遷移させる)。
シミュレータ連携装置10は、第1シミュレータ300における状態遷移の結果を第1実行結果(第1シミュレータ300におけるシミュレーションの実行結果)として取得する。シミュレータ連携装置10は、第1シミュレータ300における状態遷移の結果を、第2シミュレータ400に送信し、第2シミュレータ400に、第1シミュレータ300における状態遷移の結果を用いたシミュレーションを実行させる。
図6に示す例で、シミュレータ連携装置10は、例えば、シーケンス制御に用いる制御器モデル(Stateflow)に、第1シミュレータ300における状態遷移の結果を用いたシミュレーションを実行させる。
ユーザは、第2シミュレータ400における制御器モデルによるシミュレーション結果をステート図により確認できるので、視認性が向上する。
なお、図6に示す例では、図5に示した例とは異なり、シミュレータ連携装置10は、制御器モデルのシミュレーションの実行結果を取得しない。
図6に示す例では、シミュレータ連携装置10は、第1実行結果として取得した「第1シミュレータ300における状態遷移の結果(ユーザ操作による、第1シミュレータ300における状態遷移の結果)」を、第2シミュレータ400に送信する。シミュレータ連携装置10は、第2シミュレータ400に、「第1シミュレータ300における状態遷移の結果」を用いたシミュレーションを実行させる。
図6に示す例で、シミュレータ連携装置10は、例えば、連続制御に用いるマシンモデルに、「第1シミュレータ300における状態遷移の結果(ユーザ操作による、第1シミュレータ300における状態遷移の結果)」を用いたシミュレーションを実行させる。
(ユーザが確認することのできるその他の画面例について)
シミュレーションシステム1において、これまでに説明してきた画面例以外の、ユーザが確認することのできる画面例について、図7〜図9を用いて説明しておく。
(第2シミュレータの表示する画面例について)
図7は、シミュレーションシステム1における第2シミュレータ400が表示する画面例を示す図である。図7に示す例では、「シーケンス制御に用いる制御器モデル(Stateflow)および連続制御に用いるマシンモデル」と、「シミュレータ連携装置10が第2シミュレータ400のシミュレーションについて制御する、データ交換およびシミュレーション時刻等の項目」との対応関係が、1画面中に表示されている。
ユーザは、図7に示す画面により、第2シミュレータ400におけるシーケンス制御および連続制御の各々に用いる制御器モデル(Stateflow)およびマシンモデルの全体構成について、シミュレータ連携装置10の制御対象(例えば、シミュレータ連携装置10が第1シミュレータ300と第2シミュレータ400との間で連携させる項目)と関係させながら、確認することができる。つまり、ユーザは、図7に示す画面により、サーボドライバのような下位コントローラ、および当該下位コントローラによって駆動される機械要素の全体構成について、シミュレータ連携装置10の制御対象と関係させながら(例えば、上位コントローラのシミュレーション項目と関係させながら)、確認することができる。
ユーザは、また、図7に示す画面により、第2シミュレータ400においてシーケンス制御に用いられる制御器モデル(Stateflow)と連続制御に用いられるマシンモデルとの間のデータの流れを、確認することができる。さらに、シミュレータ連携装置10によって連携されている第1シミュレータ300と第2シミュレータ400との間のデータの流れについて、確認することができてもよい。つまり、ユーザは、図7に示す画面により、シミュレータ連携装置10によって連携されている、第1シミュレータ300(上位コントローラのモデル)と、第2シミュレータ400(制御器モデル(Stateflow)およびマシンモデル)との間のデータの流れを、確認することができる。
なお、図7に示す画面において、ユーザが、制御器モデル(Stateflow)およびマシンモデルの全体構成中の各構成要素を選択することによって、当該構成要素についての詳細を確認することのできる画面が表示されてもよい。例えば、図7に示す画面において、ユーザが「制御器モデル(Stateflow)」をダブルクリック等によって選択することによって、選択した「制御器モデル(Stateflow)」の詳細を示す画面(例えば、図8に例示する画面)が表示されてもよい。
なお、図7に示す画面例を第2シミュレータ400が表示することは必須ではなく、シミュレータ連携装置10の表示部102が、ユーザインタフェース200に表示してもよい。
図8は、シミュレーションシステム1における第2シミュレータ400が表示する、図7に示すのとは別の画面例を示す図であり、具体的には、シーケンス制御に用いる制御器モデルについての状態遷移図の一例を示している。図8に例示する画面は、例えば、図7に示す画面において、ユーザが「制御器モデル(Stateflow)」をダブルクリック等によって選択することによって、表示されてもよい。
図8に例示する画面においては、図7に例示した全体構成において概要を示されていた制御器モデル(Stateflow)の詳細が示されている。すなわち、図8に例示する画面においては、制御器モデル(Stateflow)を構成する要素、機能、処理の流れ等についての詳細が表示される。
さらに、図8に例示する画面においては、シミュレーション等が実行されている処理、機能等に対応する制御器モデル(Stateflow)等が強調表示されてもよい。例えば、図8において太線で囲まれている部分は、シミュレーションが実行されている要素、機能、処理を表していてもよい。
図8に例示する状態遷移図は、動く状態遷移図として、制御器モデルについて、連続制御と組み合わせた動作確認(デバッグ)を行うことができる。なお、図8に示す画面例を第2シミュレータ400が表示することは必須ではなく、シミュレータ連携装置10の表示部102が、ユーザインタフェース200に表示してもよい。
(第1シミュレータの表示する別の画面例について)
図9は、シミュレーションシステム1における第1シミュレータ300が表示する画面例を示す図である。図9は、「第1シミュレータ300においてイベントを発生させる(つまり、遷移条件を満足させ、状態を遷移させる)」ための画面例である。ユーザは、例えば、ユーザインタフェース200に表示された図9の画面を操作して、第1シミュレータ300においてイベントを発生させることができる。
すなわち、ユーザは、図9に例示する画面を利用して、サーボON/OFF(Power ON/Power OFF。サーボONすると、サーボドライバはサーボモータに通電し、制御を開始する)、Homeポジションへの復帰(Home)、運転開始(Start)、警報解除(Alarm clear)等の指示を与えることができる。また、ユーザは、図9の(a)に例示する画面を利用して、現在の状態(Current Position)の確認等を行うことができる。
なお、図9に示す画面例を第1シミュレータ300が表示することは必須ではなく、シミュレータ連携装置10の表示部102が、ユーザインタフェース200に表示してもよい。
〔ソフトウェアによる実現例〕
シミュレータ連携装置10の制御ブロック(特に、受付部101、表示部102、第1取得部103、第2取得部104、第1出力部105、第2出力部106、同期部107)は、集積回路(ICチップ)等に形成された論理回路(ハードウェア)によって実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェアによって実現してもよい。
後者の場合、シミュレータ連携装置10は、各機能を実現するソフトウェアであるプログラムの命令を実行するCPU、上記プログラムおよび各種データがコンピュータ(またはCPU)で読み取り可能に記録されたROM(Read Only Memory)または記憶装置(これらを「記録媒体」と称する)、上記プログラムを展開するRAM(Random Access Memory)などを備えている。そして、コンピュータ(またはCPU)が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体(通信ネットワークや放送波等)を介して上記コンピュータに供給されてもよい。なお、本発明は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
10 シミュレータ連携装置
101 受付部
102 表示部
103 第1取得部
104 第2取得部
107 同期部
300 第1シミュレータ
400 第2シミュレータ
ステップ(0) 受付ステップ
ステップ(3)および(7) 第1取得ステップ
ステップ(1)および(5) 第2取得ステップ
ステップ(4)および(8) 同期ステップ

Claims (9)

  1. シミュレーションを周期的に実行させる間隔であるサンプル間隔をユーザから受け付ける受付部と、
    コントローラについてのシミュレータである第1シミュレータから、第1シミュレータの前記サンプル間隔分のシミュレーション実行結果である第1実行結果を取得する第1取得部と、
    前記コントローラにより制御される被制御装置についてのシミュレータである第2シミュレータから、第2シミュレータの前記サンプル間隔分のシミュレーション実行結果である第2実行結果を取得する第2取得部と、
    前記第1取得部により取得した前記第1実行結果を前記第2シミュレータに出力するとともに、前記第2取得部により取得した前記第2実行結果を前記第1シミュレータに出力し、前記第1シミュレータおよび前記第2シミュレータの各々に前記サンプル間隔でシミュレーションを周期的に実行させる同期部と、を備えることを特徴とするシミュレータ連携装置。
  2. 前記サンプル間隔の初期設定値として前記コントローラの制御周期を表示する表示部をさらに備えることを特徴とする請求項1に記載のシミュレータ連携装置。
  3. 前記サンプル間隔は、前記コントローラの制御周期よりも長い時間を設定可能であることを特徴とする請求項1または2に記載のシミュレータ連携装置。
  4. 前記同期部は、前記第1シミュレータにおけるシミュレーションに用いる変数であって、前記第1シミュレータにおけるシミュレーションの実行によって値が変化しない変数を、前記第1シミュレータがシミュレーションを実行する前に1回だけ、前記第1シミュレータに出力することを特徴とする請求項1から3のいずれか1項に記載のシミュレータ連携装置。
  5. 前記受付部は、前記第1シミュレータまたは前記第2シミュレータがシミュレーションを実行する際に用いる変数ごとのサンプル間隔を、ユーザから受け付けることを特徴とする請求項1から4のいずれか1項に記載のシミュレータ連携装置。
  6. 前記第2シミュレータと一体の装置として構成されることを特徴とする請求項1から5のいずれか1項に記載のシミュレータ連携装置。
  7. 複数のシミュレータの各々が実行するシミュレーションを連携させるシミュレータ連携装置の制御方法であって、
    シミュレーションを周期的に実行させる間隔であるサンプル間隔をユーザから受け付ける受付ステップと、
    コントローラについてのシミュレータである第1シミュレータから、第1シミュレータの前記サンプル間隔分のシミュレーション実行結果である第1実行結果を取得する第1取得ステップと、
    前記コントローラにより制御される被制御装置についてのシミュレータである第2シミュレータから、第2シミュレータの前記サンプル間隔分のシミュレーション実行結果である第2実行結果を取得する第2取得ステップと、
    前記第1取得ステップにて取得した前記第1実行結果を前記第2シミュレータに出力するとともに、前記第2取得ステップにて取得した前記第2実行結果を前記第1シミュレータに出力し、前記第1シミュレータおよび前記第2シミュレータの各々に前記サンプル間隔でシミュレーションを周期的に実行させる同期ステップと、を含むことを特徴とする制御方法。
  8. 請求項1から6のいずれか1項に記載のシミュレータ連携装置としてコンピュータを機能させるための情報処理プログラムであって、前記各部としてコンピュータを機能させるための情報処理プログラム。
  9. 請求項8に記載の情報処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2016170755A 2016-09-01 2016-09-01 シミュレータ連携装置、シミュレータ連携装置の制御方法、情報処理プログラム、および記録媒体 Abandoned JP2018036945A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2016170755A JP2018036945A (ja) 2016-09-01 2016-09-01 シミュレータ連携装置、シミュレータ連携装置の制御方法、情報処理プログラム、および記録媒体
CN201710092424.9A CN107797462A (zh) 2016-09-01 2017-02-21 仿真器联动装置、控制方法、信息处理程序以及记录介质
EP17157169.8A EP3291112A1 (en) 2016-09-01 2017-02-21 Master and slave architecture for co-simulation of control systems
US15/438,764 US20180059649A1 (en) 2016-09-01 2017-02-22 Simulator linkage device, control method of simulator linkage device, information processing program and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016170755A JP2018036945A (ja) 2016-09-01 2016-09-01 シミュレータ連携装置、シミュレータ連携装置の制御方法、情報処理プログラム、および記録媒体

Publications (1)

Publication Number Publication Date
JP2018036945A true JP2018036945A (ja) 2018-03-08

Family

ID=58266829

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016170755A Abandoned JP2018036945A (ja) 2016-09-01 2016-09-01 シミュレータ連携装置、シミュレータ連携装置の制御方法、情報処理プログラム、および記録媒体

Country Status (4)

Country Link
US (1) US20180059649A1 (ja)
EP (1) EP3291112A1 (ja)
JP (1) JP2018036945A (ja)
CN (1) CN107797462A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021043749A (ja) * 2019-09-12 2021-03-18 株式会社日立ソリューションズ シミュレーション方法およびシミュレーションプログラム
JP2021064081A (ja) * 2019-10-11 2021-04-22 株式会社日立製作所 情報処理装置、及び情報処理方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101364086B (zh) * 2008-09-18 2010-06-30 上海交通大学 基于触发-延时的实时仿真控制方法
CN101499937A (zh) * 2009-03-16 2009-08-05 盛科网络(苏州)有限公司 一种基于fpga的软硬件协同仿真验证系统及方法
JP6249665B2 (ja) 2013-08-02 2017-12-20 キヤノン株式会社 シミュレーション装置、シミュレーション方法、プログラム
CN104573288A (zh) * 2015-02-05 2015-04-29 北京神舟航天软件技术有限公司 一种三模冗余计算机数字仿真系统
CN105701298A (zh) * 2016-01-15 2016-06-22 天津大学 基于PowerPC SoC架构的仿真平台设计方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021043749A (ja) * 2019-09-12 2021-03-18 株式会社日立ソリューションズ シミュレーション方法およびシミュレーションプログラム
JP7225064B2 (ja) 2019-09-12 2023-02-20 株式会社日立ソリューションズ シミュレーション方法およびシミュレーションプログラム
JP2021064081A (ja) * 2019-10-11 2021-04-22 株式会社日立製作所 情報処理装置、及び情報処理方法
JP7416597B2 (ja) 2019-10-11 2024-01-17 株式会社日立製作所 情報処理装置、及び情報処理方法

Also Published As

Publication number Publication date
EP3291112A1 (en) 2018-03-07
US20180059649A1 (en) 2018-03-01
CN107797462A (zh) 2018-03-13

Similar Documents

Publication Publication Date Title
EP2849006B1 (en) Control system simulation system and method
JP5784263B1 (ja) シミュレーションシステム、プログラマブルコントローラ、シミュレーション装置、エンジニアリングツール
US7174225B2 (en) Method and system for simulating processing of a workpiece with a machine tool
CN108345265B (zh) 硬件设备的编程方法、可视化编程平台、存储器和处理器
US10761513B2 (en) Information processing device, information processing method, and non-transitory computer-readable recording medium
WO2010017835A1 (en) A system and a method for off-line programming of an industrial robot
US10814486B2 (en) Information processing device, information processing method, and non-transitory computer-readable recording medium
JP2015176340A (ja) プログラマブルコントローラおよびプログラマブルコントローラによるデバイス制御方法
TWI661358B (zh) 模擬裝置
US20040030418A1 (en) Simulation system for machine simulation and data output of control data for an automation system
JP2018036945A (ja) シミュレータ連携装置、シミュレータ連携装置の制御方法、情報処理プログラム、および記録媒体
US11604446B2 (en) Method and system for validating a control program
WO2020071435A1 (ja) 開発支援プログラム、開発支援装置、および開発支援方法
WO2020026622A1 (ja) 制御装置
JP2008165324A (ja) プログラム作成支援装置
WO2010134198A1 (ja) シミュレーション装置およびシミュレーションプログラム
US20190101893A1 (en) Information processing device, information processing method, and computer-readable recording medium
US20190005167A1 (en) Method for Synchronizing a Plurality of Simulations
JP7374381B1 (ja) シミュレーションプログラム、シミュレーション方法及びシミュレーション装置
JP7258246B1 (ja) シミュレーション用プログラム、シミュレーション装置及び制御方法
US11640153B2 (en) Control system, support device, and recording medium
JP2023151876A (ja) 制御装置、制御方法、開発支援装置、及びプログラム
JP2021114019A (ja) データ処理方法
JP2020060856A (ja) 制御システム、制御方法、および制御プログラム
JP2010102475A (ja) 特殊ユニット模擬装置作成装置およびプログラマブルコントローラ模擬装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190705

A762 Written abandonment of application

Free format text: JAPANESE INTERMEDIATE CODE: A762

Effective date: 20200323

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200408