JP2013191129A - 情報処理装置、シミュレーション方法、およびプログラム - Google Patents

情報処理装置、シミュレーション方法、およびプログラム Download PDF

Info

Publication number
JP2013191129A
JP2013191129A JP2012058276A JP2012058276A JP2013191129A JP 2013191129 A JP2013191129 A JP 2013191129A JP 2012058276 A JP2012058276 A JP 2012058276A JP 2012058276 A JP2012058276 A JP 2012058276A JP 2013191129 A JP2013191129 A JP 2013191129A
Authority
JP
Japan
Prior art keywords
variable
simulation
control program
value
information processing
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.)
Granted
Application number
JP2012058276A
Other languages
English (en)
Other versions
JP6051546B2 (ja
Inventor
Yasuki Sakaguchi
泰規 阪口
Fumiaki Narutani
文明 成谷
Hiroshi Otani
拓 大谷
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 JP2012058276A priority Critical patent/JP6051546B2/ja
Priority to US14/384,406 priority patent/US10635464B2/en
Priority to EP13761416.0A priority patent/EP2816426A4/en
Priority to PCT/JP2013/053961 priority patent/WO2013136918A1/ja
Priority to CN201380013393.3A priority patent/CN104204976B/zh
Publication of JP2013191129A publication Critical patent/JP2013191129A/ja
Application granted granted Critical
Publication of JP6051546B2 publication Critical patent/JP6051546B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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/05Programmable logic controllers, e.g. simulating logic interconnections of signals according to ladder diagrams or function charts
    • G05B19/056Programming the PLC
    • 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/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13152Modification of program
    • 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/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13174Pc, computer connected to plc to simulate machine
    • 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/10Plc systems
    • G05B2219/13Plc programming
    • G05B2219/13179Reiterate simulation for different conditions or subsystems

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Programmable Controllers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】容易にシミュレーションに用いる入力変数を設定可能な、コントローラをサポートする情報処理装置を提供する。
【解決手段】情報処理装置であるPCは、制御プログラムをシミュレーションし、シミュレーションの結果をモニタに表示する。PCは、シミュレーション中の任意のタイミングにおける少なくとも1つの変数の値と変数名とを取得する。PCは、ユーザの指示に従い、制御プログラムを変更する。PCは、取得された変数名によって特定される変数の値を取得された変数の値として、変更された制御プログラムをシミュレーションする。PCは、変更された制御プログラムのシミュレーションの結果をモニタに表示する。
【選択図】図2

Description

本発明は、情報処理装置、シミュレーション方法、およびプログラムに関し、特に、制御プログラムをシミュレーション実行することができる情報処理装置、情報処理装置におけるシミュレーション方法、および情報処理装置を制御するためのプログラムに関する。
従来、機械の動きを制御するコントローラにおいて制御周期ごとに実行される、シーケンス制御部分およびモーション制御部分を含む制御プログラムを、シミュレーション実行することができるコントローラサポート装置が知られている。
たとえば、特許文献1には、モーション制御を含む制御プログラムをシミュレーション実行する場合に、実行の開始から終了までの間の途中の制御周期からの再実行を可能にするコントローラサポート装置が開示されている。具体的には、当該コントローラサポート装置は、制御プログラムのシーケンス制御部分を1周期分シミュレーション実行し、シーケンス制御部分に関する実行結果を生成する。コントローラサポート装置は、モーション制御部分を1周期分シミュレーション実行し、モーション制御部分に関する実行結果を生成する。そして、次に、コントローラサポート装置は、制御周期番号をインクリメント更新する。コントローラサポート装置は、再開可能制御周期かどうかを判断し、再開可能制御周期であると判断した場合には、前の制御周期で更新された再開用データバッファの内容を再開用データ記憶部に保存する。
特開2011−192016号公報
しかしながら、特許文献1では、制御プログラムのシミュレーションの実行中において入力される変数および/または出力される変数を用いて、再度、制御プログラムをシミュレーションすることはできない。このため、ユーザは、制御プログラムを修正等した場合にシミュレーションを再度実行する場合、変数を入力し直す必要があった。
本願発明は、上記の問題点に鑑みなされたものであって、その目的は、容易にシミュレーションに用いる入力変数を設定可能な、コントローラをサポートする情報処理装置、シミュレーション方法、およびプログラムを提供することにある。
本発明のある局面に従うと、情報処理装置は、機械の動きを制御するコントローラにおいて制御周期ごとに実行される制御プログラムをシミュレーションする。情報処理装置は、制御プログラムを記憶する記憶手段と、記憶手段に記憶された制御プログラムをシミュレーションするシミュレーション実行手段と、シミュレーションの結果を表示装置に表示させる表示制御手段と、シミュレーション中の任意のタイミングにおける少なくとも1つの変数の値と当該変数を識別するための識別情報とを取得する取得手段と、記憶手段に記憶された制御プログラムを変更する変更手段とを備える。シミュレーションを実行手段は、取得された識別情報によって特定される変数の値を取得された変数の値として、変更された制御プログラムをシミュレーションする。表示制御手段は、変更された制御プログラムのシミュレーションの結果を表示装置に表示させる。
好ましくは、取得手段は、任意のタイミングにおける複数の変数の値と、各変数を識別するための複数の識別情報とを対応付けて取得する。シミュレーションを実行手段は、複数の変数の中から少なくとも1つの変数が指定されたことに基づき、当該指定された変数の値を当該変数の識別情報に対応付けられた取得された変数の値として、変更された制御プログラムをシミュレーションする。
好ましくは、複数の変数は、シミュレーションの入力に用いられる変更可能な変数と、シミュレーションの実行により出力される変更不可能な変数とを含む。シミュレーションを実行手段は、変更可能な変数および変更不可能な変数のうちの当該変更可能な変数のみを用いて、変更された制御プログラムをシミュレーションする。
好ましくは、任意のタイミングは、制御プログラムのシミュレーションの開始時、あるいは開始直後である。
好ましくは、変数の識別情報は、変数の名称である。表示制御手段は、取得された変数の名称を表示装置に一覧表示させる。情報処理装置は、一覧表示された複数の変数の中から1つ以上の変数の指定を受け付ける受付手段と、複数の変数の値から指定された変数毎に当該変数の値を抽出する抽出手段とをさらに備える。シミュレーションを実行手段は、抽出された変数の値を用いて変更された制御プログラムをシミュレーションする。
本発明の他の局面に従うと、シミュレーション方法は、機械の動きを制御するコントローラにおいて制御周期ごとに実行される制御プログラムをシミュレーションする情報処理装置において実行される。シミュレーション方法は、制御プログラムをシミュレーションするステップと、シミュレーションの結果を表示するステップと、シミュレーション中の任意のタイミングにおける少なくとも1つの変数の値と当該変数を識別するための識別情報とを取得するステップと、制御プログラムを変更するステップと、取得された識別情報によって特定される変数の値を取得された変数の値として、変更された制御プログラムをシミュレーションするステップと、変更された制御プログラムのシミュレーションの結果を表示するステップとを備える。
本発明のさらに他の局面に従うと、プログラムは、機械の動きを制御するコントローラにおいて制御周期ごとに実行される制御プログラムをシミュレーションする情報処理装置を制御するために用いられる。プログラムは、制御プログラムをシミュレーションするステップと、シミュレーションの結果を表示するステップと、シミュレーション中の任意のタイミングにおける少なくとも1つの変数の値と当該変数を識別するための識別情報とを取得するステップと、制御プログラムを変更するステップと、取得された識別情報によって特定される変数の値を取得された変数の値として、変更された制御プログラムをシミュレーションするステップと、変更された制御プログラムのシミュレーションの結果を表示するステップとを、情報処理装置のプロセッサに実行させる。
上記発明によれば、容易にシミュレーションに用いる入力変数を設定可能となる。
制御システムの構成を説明する図である。 PCにおいて実行されるシミュレーションを説明するための図である。 PCのハードウェア構成を説明する図である。 CPUがコントローラサポートプログラムを実行することにより実現される機能ブロックを説明する図である。 PCがスナップショットを実行する際の処理の流れを説明するためのフローチャートである。 PCがリストアを実行する際の処理の流れを説明するためのフローチャートである。 PCがスナップショットを実行するときのシーケンスチャートを示した図である。 PCがリストアを実行するときのシーケンスチャートを示した図である。 スナップショットにより得られた変数情報を表した図である。 リストアに用いるデータを生成するために用いられるユーザインターフェイスの一例を表した図である。
以下、図面を参照しつつ、本発明の実施の形態に係る制御システムについて説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
<A.システム構成>
図1は、制御システムの構成を説明する図である。図1を参照して、本発明の実施の形態に従う制御システム1は、サーバ2と、ネットワーク4と、PC(パーソナルコンピュータ)6と、コントローラ14と、制御対象装置16とから構成されている。
サーバ2は、ネットワーク4を介してPC6と接続されている。PC6は、制御対象装置16を制御するコントローラ14と通信可能に接続されている。
情報処理装置であるPC6は、コントローラサポート装置として機能する。PC6には、コントローラサポートプログラム8がインストールされており、また、ユーザが作成した制御プログラム10が記憶されている。CD−ROM(Compact Disc-Read Only Memory)12は、コントローラサポートプログラム8を格納している。PC6にインストールされているコントローラサポートプログラム8は、このCD−ROM12からインストールされたものである。
コントローラ14は、制御対象装置16の動きを制御する。本発明の実施の形態においては、コントローラ14として一例として、PLC(Programmable Logic Controller)が用いられる。すなわち、このPLCには、いわゆるモーションコントロール機能が備えられている。コントローラ14は、制御対象装置16に対する制御内容を規定する制御プログラム15を記憶している。コントローラ14は、制御周期ごとに制御プログラム15を一巡実行する。ここで、コントローラ14に記憶されている制御プログラム15は、PC6に記憶されている制御プログラム10をコピーしたコピーデータであり、PC6から送信されたものである。
制御対象装置16は、サーボモータ、ステッピングモータなどのモータ18およびモータを駆動するモータドライバ17を含む。
モータ18はモータドライバ17から駆動電流を供給される。モータドライバ17は、制御プログラム15を実行するコントローラ14から制御周期ごとに位置の指令値を与えられ、それに応じた駆動電流をモータ18に供給する。モータ18がサーボモータである場合、モータ18にはエンコーダが備えられており、モータ18の回転位置の実測値がエンコーダによって検出される。モータの回転位置の実測値は、モータドライバ17がフィードバック制御に利用する。
なお、上記においては、CD−ROM12を介して、PC6にコントローラサポートプログラムをインストールする場合について説明したが、特にこれに限られず、サーバ2からネットワーク4を介してコントローラサポートプログラムをPC6にダウンロードするようにしても良い。制御プログラムについても同様である。
<B.処理の概要>
図2は、PC6において実行されるシミュレーションを説明するための図である。図2を参照して、PC6は、ユーザの指示に基づき、予め用意した制御プログラム10を用いて1回目のシミュレーションを実行する。この際、ユーザが、たとえばプログラムのシミュレーションの開始時(t=t0)において、スナップショットの指示をPC6に入力した場合、PC6はスナップショットを実行する。
「スナップショット」とは、ある時点におけるメモリ内の状態を取得して、データとして別途保存する処理である。具体的には、「スナップショット」とは、ある時点におけるメモリの変数の状態を取得して、当該取得された変数の状態をファイルに保存する処理である。本実施の形態では、PC6が、スナップショットによって、シミュレーション中の任意のタイミングにおける変数の値と、当該変数を識別するための識別情報と、当該変数の型とを取得するものとして説明する。なお、PC6は、取得される変数が複数の場合、複数の変数の値と、各変数を識別するための複数の識別情報と各変数の型とを対応付けて取得する。なお、ファイル形式としては、たとえば、csv形式を用いることができる。
上記変数としては、シミュレーションの入力に用いられる変更(書き込み)可能な変数と、シミュレーションの実行により出力される変更(書き込み)不可能な変数とが含まれる。また、識別情報としては、たとえば、変数の名称(以下、変数名)が挙げられる。変数の型としては、たとえば、bool、int、stringが挙げられる。
以下では、変更可能な変数の一例として入力変数を、変更不可能な変数の一例として出力変数を例に挙げて説明する。また、説明の便宜上、変数名と変数の値と変数の型との3つの情報を含めた情報を、「変数情報」とも称する。つまり、「変数情報」は、変数名と変数の値と変数の型とを含んだ情報であるとする。スナップショットにより、1つ以上の変数情報が取得されることになる。
(b1.第1の例)
PC6は、スナップショットを実行すると、取得した変数情報(変数名、変数の値,変数の型)をファイルとして保存する。ここでは、説明の便宜上、時間t=t0におけるスナップショットにより、たとえば6つの変数情報が取得され、当該取得された変数情報がファイル201に保存されたとする。具体的には、スナップショットにより、「変数名,値,型」=「Var_A,True,Bool」,「Var_B,False,Bool」,「Var_C,1000,int」,「Var_D,Tuer,Bool」,「Var_E,2000,int」,「Var_F,3000,int」がファイル201に保存されたとする。
ここで、ユーザは、ファイル201の各変数を確認する。ユーザは、各変数の値に問題があると判断した場合、制御プログラム10を変更(修正)し、2回目のシミュレーションを行なう。
この場合、ユーザは、リストアの処理を実行する。「リストア」とは、スナップショットで得られた変数の値を、シミュレーションの変数の値として利用する(変数の値を戻す)ことをいう。具体的には、「リストア」とは、ファイル201の変数の中からシミュレーションの実行に必要な入力変数をユーザが選択し、当該選択された入力変数の値をメモリ上の当該入力変数の値に上書きする処理である。PC6は、当該上書きされた変数の値を用いて、再度シミュレーションを実行する。たとえば、PC6は、上記6つの変数の値のうち、変数Var_Aの値(Ture)と変数Var_Bの値(False)と変数Var_Eの値(2000)とを用いて、再度シミュレーションを実行する。
たとえば、ユーザは、ファイル201を編集して当該選択された入力変数の値を含むファイル201Aを作成し、ファイル201AをCPU901(図3参照)に読み込ませることにより、上記リストアを実行することができる。
2回目のシミュレーションでも好ましい結果が得られない場合、ユーザは、再度、制御プログラム10を変更する。そして、PC6は、2回目のシミュレーションで利用したファイル201Aを用いて、3回目のシミュレーションを実行する。なお、シミュレーションの回数は、3回に限定されるものではない。
以上のように、ユーザは、スナップショットで得れらた変数を入力変数(入力条件)として利用し、制御プログラム10を変更する都度、シミュレーションをPC6に実行させる。これにより、制御プログラム10を変更する都度、入力変数をユーザがて入力する必要がなくなる。
(b2.第2の例)
ユーザの指示により、PC6が、時間t=t0より後の時間t1においてスナップショットを行なったとする。この場合に得られた変数情報を記憶したファイルをファイル202とする。
この場合も、第1の例と同様に、ユーザは、ファイル202の変数の中からシミュレーションの実行に必要な入力変数をユーザが選択し、ファイル202とは別のファイル202Aに当該選択した入力変数(変数名、変数の値、変数の型)を記憶させる。
次いで、ユーザは、制御プログラムの変更後、ファイル202Aを用いて2回目のシミュレーションを実行する。2回目のシミュレーションによっても好ましい結果が得られない場合には、制御プログラムを再度変更した上で3回目のシミュレーションを実行することになる。
(b3.その他の例)
ユーザは、シミュレーションを一旦停止(中断)し、ファイル201Aまたはファイル202Aを用いてシミュレーションを再開させてもよい。たとえば、制御プログラムを変更したの後の2回目のシミュレーションの際には、ユーザは、時間t2においてシミュレーションを一旦停止し、ファイル201Aまたはファイル202Aを用いてシミュレーションを再開させてもよい。また、制御プログラムをさらに変更したの後の3回目のシミュレーションの際には、ユーザは、時間t3においてシミュレーションを一旦停止し、ファイル201Aまたはファイル202Aを用いてシミュレーションを再開させてもよい。
(b4.まとめ)
以上のように、スナップショットを行なうタイミング、およびリストアを行なうタイミングは、特に限定されるものではない。好適な使用方法の一例としては、特に、上述した「第1の例」が挙げられる。また、好適な使用方法の他の例としては、シミュレーション途中に制御対象の動作が停止した場合、当該停止した時点での変数をスナップショットし、当該スナップショットにより得られた変数の一部をシミュレーションの開始時(時間t0)または開始直後のタイミングでリストアすることが挙げられる。
いずれの場合であっても、ユーザは、スナップショットを行なうことにより、制御プログラムを変更した後の入力変数の設定が容易になる。つまり、ユーザは、PC6を用いることにより、スナップショットで得られた変数の一部(場合によっては全部)を利用してリストア処理を実行できるため、制御プログラムを都度変更した場合であっても、複数回のシミュレーションを容易に実行可能となる。
なお、1回目のシミュレーションにおけるスナップショットの回数は、1回に限定されるものではなく、複数回であってもよい。この場合、リストアには、複数回のスナップショットのうちいずれかの回のスナップショットで得られた変数(一部、または場合によっては全部)を用いることができる。
<C.PC6について>
図3は、PC6のハードウェア構成を説明する図である。図3を参照して、本発明の実施の形態に従うPC6は、CPU901と、ROM902、RAM903、およびHDD904と、CD−ROM駆動装置908と、通信IF909と、モニタ907と、キーボード905およびマウス906とを含む。なお、これらの部位は、内部バス910を介して互いに接続される。
HDD904は、典型的には不揮発性の磁気メモリであり、CD−ROM駆動装置908によりCD−ROM12から読取られたコントローラサポートプログラムを格納する。また、制御プログラム15も格納している。
CPU901は、HDD904に格納されている、本実施の形態に従うコントローラサポートプログラム8をRAM903などに展開して実行する。
RAM903は、揮発性メモリであり、ワークメモリとして使用される。ROM902は、一般的に、オペレーティングシステム(OS:Operating System)等のプログラムを格納している。
通信IF909は、典型的にはイーサネット(登録商標)およびUSB(Universal Serial Bus)といった汎用的な通信プロトコルをサポートし、ネットワーク4を介してサーバ2との間でデータ通信を提供するとともに、コントローラ14との間でデータ通信を提供する。
モニタ907は、液晶表示装置、CRT(Cathode Ray Tube)、プラズマディスプレイ装置などで構成され、PC6による処理結果などを表示する。キーボード905は、ユーザによるキー入力を受付け、マウス906は、ユーザによるポインティング操作を受付ける。
図4は、CPU901がコントローラサポートプログラム8を実行することにより実現される機能ブロックを説明する図である。図4を参照して、ここでは、ユーザインターフェイス部802と、表示データ作成部804と、シミュレーション部806と、制御プログラム記憶部808と、制御プログラム編集部810と、コントローラインタフェース部812とが示されている。
ユーザインターフェイス部802は、PC6のモニタ907に表示するウインドウ画面の内容を作成し、また、キーボード905やマウス906によるユーザの操作を受け付ける部位である。
制御プログラム編集部810は、制御プログラムの入力および編集をユーザに行わせる。制御プログラム編集部810は、制御プログラムを実行するためにコンパイルが必要である場合はコンパイルも行う。作成された制御プログラムは、コントローラインタフェース部812を介してコントローラ14に送られる。また、作成された制御プログラムは、HDD904の所定領域である制御プログラム記憶部808に格納される。また、制御プログラム編集部810は、コントローラインタフェース部812を介してコントローラ14に記憶されている制御プログラム15を読み出して編集することもできる。制御プログラム編集部810は、たとえば、ユーザからの制御プログラムの変更(たとえば修正)指示を受け付け、当該指示に基づいて制御プログラムを変更する。
シミュレーション部806は、コントローラ14のシミュレータである。シミュレーション部806は、制御プログラム記憶部808に記憶された制御プログラム10に従ってコントローラ14が制御プログラム15を実行する動作をシミュレートし、コントローラ14が制御周期ごとに出力するはずの位置の指令値を算出する。
また、シミュレーション部806は、外部からの信号が到来して制御プログラムの動作に影響を与える状態をシミュレートしたり、制御プログラム15の実行自体によってコントローラ14のメモリの記憶内容などのコントローラ14の内部状態が変化して、その変化が制御プログラム15の動作に影響を与える状態をシミュレートしたりすることができる。
また、シミュレーション部806は、ユーザインターフェイス部802を介してシミュレーション実行に関するユーザの指示を受け付ける。すなわち、ユーザインターフェイス部802は、シミュレーション部806に対するユーザの指示を受け付ける手段としても働く。
表示データ作成部804は、シミュレーション部806によって作成された実行結果データの時間的な変化を表示するための表示データを作成する。表示データ作成部804は、作成した表示データをユーザインターフェイス部802に送ることによりPC6のモニタ907に表示データをグラフや文字の態様で表示する。
<D.制御構造>
次に、PC6における制御構造について説明する。
(d1.スナップショットのフロー)
図5は、PC6がスナップショットを実行する際の処理の流れを説明するためのフローチャートである。図5を参照して、ステップS502において、PC6のCPU901は、ユーザのシミュレーション開始指示に基づき、制御プログラム10のシミュレーションを開始する。CPU901は、スナップショットの指示を受け付けたか否かを判断する。
CPU901は、ステップS504で肯定的な判断がなされた場合(YESの場合)、ステップS506において、シミュレーションを一時停止する。CPU901は、ステップS504において否定的な判断がなされた場合(NOの場合)、処理をステップS516に進める。
ステップS508において、CPU901は、変数名、変数の型、および変数の値とを取得する。つまり、CPU901は、スナップショットの指示が入力された時点における変数情報を取得する。ステップS510において、CPU901は、シミュレーションを再開する。なお、CPU901は、シミュレーションを再開させるユーザからの指示が入力されたことをトリガとして、シミュレーションを再開させてもよい。
ステップS512において、CPU901は、スナップショットにより取得した変数情報を保存するファイル名の指定を受け付ける。ステップS514において、CPU901は、指定されたファイル名で取得した変数情報(変数名、変数の型、および変数の値)を保存する。
ステップS516において、CPU901は、シミュレーションが終了したか否かを判断する。CPU901は、ステップS516において肯定的な判断がなされた場合(YESの場合)、一連の処理を終了する。CPU901は、ステップS516において否定的な判断がなされた場合(NOの場合)、処理をステップS504に進める。
(d2.リストアのフロー)
図6は、PC6がリストアを実行する際の処理の流れを説明するためのフローチャートである。図6を参照して、ステップS602において、PC6のCPU901は、ユーザのシミュレーション開始指示に基づき、制御プログラム10のシミュレーションを開始する。ステップS604において、CPU901は、リストアに用いるファイルの指定があったか否かを判断する。
CPU901は、ステップS604において肯定的な判断がなされた場合(YESの場合)、ステップS606において、ユーザからリストアの指示を受け付けたか否かを判断する。CPU901は、ステップS604において否定的な判断がなされた場合(NOの場合)、処理をステップS616に進める。
CPU901は、ステップS606において肯定的な判断がなされた場合(YESの場合)、ステップS608において、シミュレーションを一時停止する。CPU901は、ステップS606において否定的な判断がなされた場合(NOの場合)、処理をステップS616に進める。
ステップS610において、CPU901は、リストア対象の変数がメモリ(RAM903)上に存在するか否かを判断する。すなわち、CPU901は、ファイルに記載された変数名と同じ変数名の変数が、シミュレーションを一時停止した時に変数として出現しているか否かを判断する。CPU901は、ステップS610において肯定的な判断がなされた場合(YESの場合)、ステップS612において変数の値を書き換える。CPU901は、ステップS610において否定的な判断がなされた場合(NOの場合)、処理をステップS614に進める。
たとえば、スナップショットを実行した後、「Var_A,True,Bool」,「Var_B,False,Bool」,「Var_E,2000,int」をファイル201Aとして記憶させたとする。この場合に、ステップS608でシミュレーション一時停止したときに現れている変数が「Var_E」だけのあれば、ステップS612において変数Var_Eだけの数値を書き換える。
ステップS614において、CPU901は、シミュレーションを再開する。ステップS616において、CPU901は、シミュレーションが終了したか否かを判断する。CPU901は、ステップS616において肯定的な判断がなされた場合(YESの場合)、一連の処理を終了する。CPU901は、ステップS616において否定的な判断がなされた場合(NOの場合)、処理をステップS604に進める。
(d3.スナップショットのシーケンス)
図7は、PC6がスナップショットを実行するときのシーケンスチャートを示した図である。図7を参照して、シーケンスSQ702において、ユーザインターフェイス部802は、スナップショットを実行する指示をシミュレーション部806の通信処理部861に送る。
通信処理部861は、シーケンスSQ704において、変数情報を読み出す指示(readMem())を、シミュレーション実行部863に送る。シーケンスSQ706において、シミュレーション実行部863は、変数情報を通信処理部861に通知する。
シーケンスSQ708において、通信処理部861は、取得した変数情報を指定されたファイル名でファイルに保存する。シーケンスSQ710において、通信処理部861は、変数情報を保存したことを示す通知をユーザインターフェイス部802に通知する。ユーザインターフェイス部802は、当該通知を受け取ると、変数情報を保存したことを表す内容をモニタ907に表示させる。
(d4.リストアのシーケンス)
図8は、PC6がリストアを実行するときのシーケンスチャートを示した図である。図8を参照して、シーケンスSQ802において、ユーザインターフェイス部802は、リストアを実行する指示をシミュレーション部806の通信処理部861に送る。シーケンスSQ804において、通信処理部861は、ファイルを読み出す。つまり、通信処理部861は、メモリにファイルとして保存された変数情報を読み出す。
通信処理部861は、シーケンスSQ806において、変数情報を書き込む指示(WriteMem())を、シミュレーション実行部863に送る。シーケンスSQ808において、シミュレーション実行部863は、通信処理部861に対して、書き込みが実行されたこと、あるいは書き込む変数が存在しなかったこと(エラー)を通知する。
シーケンスSQ810において、通信処理部861は、通知された内容をユーザインターフェイス部802に通知する。ユーザインターフェイス部802は、当該通知を受け取ると、リストアが終了したこと、リストアに失敗したこと等をモニタ907に表示させる。
<E.データ構造>
図9は、スナップショットにより得られた変数情報を表した図である。具体的には図9は、ファイル201(またはファイル202)の中身(変数情報)を表した図である。
図9を参照して、ファイル201には、共通情報と、変数情報とが含まれている。共通情報は、「[Common]」の欄に示された情報を指す。変数情報としては、グローバス変数([global])と、プログラム変数([program()])とが含まれている。
この場合、ユーザは、グローバル変数および/またはプログラム変数の一部(場合によっては全部)を用いて、リストアに使用するファイル201AをPC6で生成することになる。なお、図9に示した例では、入力変数と出力変数とは区別された状態では示されていない。
<F.ユーザインターフェイス>
図10は、リストアに用いるデータを生成するために用いられるユーザインターフェイスの一例を表した図である。つまり、図10は、たとえばファイル201A,202A等のデータを表した図である。
図10を参照して、ユーザインターフェイス部802は、スナップショットにより取得された複数の変数情報(変数名、変数の型、および変数の値)をモニタ907に一覧表示させる。より詳しくは、ユーザインターフェイス部802は、スナップショットにより取得された複数の変数情報の中から1つ以上の変数情報をユーザが選択可能とするためのユーザインターフェイス9071をモニタ907に表示させる。
ユーザがチェックボックスを利用して一覧表示された複数の変数情報の中から1つ以上の変数情報を指定すると、CPU901は、当該指定を受け付ける。CPU901は、複数の変数情報が記憶されたファイルから、指定された変数情報を抽出する。
CPU901(シミュレーション実行部863)は、ユーザから、変更された制御プログラムを用いた再度のシミュレーションの指示を受け付けた場合には、抽出された変数情報を用いて当該制御プログラムをシミュレーションする。
したがって、ユーザは、ユーザインターフェイス9071を用いることにより、ユーザは、再度のシミュレーションに用いる入力変数をさらに容易に設定することができる。
今回開示された実施の形態は例示であって、上記内容のみに制限されるものではない。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
1 制御システム、2 サーバ、4 ネットワーク、8 コントローラサポートプログラム、10,15 制御プログラム、12 CD−ROM、14 コントローラ、16 制御対象装置、17 モータドライバ、18 モータ、201,201A,202,202A ファイル、802 ユーザインターフェイス部、804 表示データ作成部、806 シミュレーション部、808 制御プログラム記憶部、810 制御プログラム編集部、812 コントローラインタフェース部、861 通信処理部、863 シミュレーション実行部、902 ROM、903 RAM、907 モニタ、9071 ユーザインターフェイス、909 通信IF。

Claims (7)

  1. 機械の動きを制御するコントローラにおいて制御周期ごとに実行される制御プログラムをシミュレーションする情報処理装置であって、
    前記制御プログラムを記憶する記憶手段と、
    前記記憶手段に記憶された制御プログラムをシミュレーションするシミュレーション実行手段と、
    前記シミュレーションの結果を表示装置に表示させる表示制御手段と、
    前記シミュレーション中の任意のタイミングにおける少なくとも1つの変数の値と当該変数を識別するための識別情報とを取得する取得手段と、
    前記記憶手段に記憶された制御プログラムを変更する変更手段とを備え、
    前記シミュレーションを実行手段は、前記取得された識別情報によって特定される変数の値を前記取得された変数の値として、前記変更された制御プログラムをシミュレーションし、
    前記表示制御手段は、前記変更された制御プログラムのシミュレーションの結果を前記表示装置に表示させる、情報処理装置。
  2. 前記取得手段は、前記任意のタイミングにおける複数の変数の値と、各前記変数を識別するための複数の識別情報とを対応付けて取得し、
    前記シミュレーションを実行手段は、前記複数の変数の中から少なくとも1つの変数が指定されたことに基づき、当該指定された変数の値を当該変数の識別情報に対応付けられた前記取得された変数の値として、前記変更された制御プログラムをシミュレーションする、請求項1に記載の情報処理装置。
  3. 前記複数の変数は、前記シミュレーションの入力に用いられる変更可能な変数と、前記シミュレーションの実行により出力される変更不可能な変数とを含み、
    前記シミュレーションを実行手段は、前記変更可能な変数および前記変更不可能な変数のうちの当該変更可能な変数のみを用いて、前記変更された制御プログラムをシミュレーションする、請求項2に記載の情報処理装置。
  4. 前記任意のタイミングは、前記制御プログラムのシミュレーションの開始時、あるいは開始直後である、請求項1から3のいずれか1項に記載の情報処理装置。
  5. 前記変数の識別情報は、前記変数の名称であり、
    前記表示制御手段は、前記取得された変数の名称を前記表示装置に一覧表示させ、
    前記情報処理装置は、
    前記一覧表示された複数の変数の中から1つ以上の変数の指定を受け付ける受付手段と、
    前記複数の変数の値から前記指定された変数毎に当該変数の値を抽出する抽出手段とをさらに備え、
    前記シミュレーションを実行手段は、前記抽出された変数の値を用いて前記変更された制御プログラムをシミュレーションする、請求項2〜4のいずれか1項に記載の情報処理装置。
  6. 機械の動きを制御するコントローラにおいて制御周期ごとに実行される制御プログラムをシミュレーションする情報処理装置におけるシミュレーション方法であって、
    前記制御プログラムをシミュレーションするステップと、
    前記シミュレーションの結果を表示するステップと、
    前記シミュレーション中の任意のタイミングにおける少なくとも1つの変数の値と当該変数を識別するための識別情報とを取得するステップと、
    前記制御プログラムを変更するステップと、
    前記取得された識別情報によって特定される変数の値を前記取得された変数の値として、前記変更された制御プログラムをシミュレーションするステップと、
    前記変更された制御プログラムのシミュレーションの結果を表示するステップとを備える、シミュレーション方法。
  7. 機械の動きを制御するコントローラにおいて制御周期ごとに実行される制御プログラムをシミュレーションする情報処理装置を制御するためのプログラムであって、
    前記制御プログラムをシミュレーションするステップと、
    前記シミュレーションの結果を表示するステップと、
    前記シミュレーション中の任意のタイミングにおける少なくとも1つの変数の値と当該変数を識別するための識別情報とを取得するステップと、
    前記制御プログラムを変更するステップと、
    前記取得された識別情報によって特定される変数の値を前記取得された変数の値として、前記変更された制御プログラムをシミュレーションするステップと、
    前記変更された制御プログラムのシミュレーションの結果を表示するステップとを、前記情報処理装置のプロセッサに実行させる、プログラム。
JP2012058276A 2012-03-15 2012-03-15 情報処理装置、シミュレーション方法、およびプログラム Active JP6051546B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2012058276A JP6051546B2 (ja) 2012-03-15 2012-03-15 情報処理装置、シミュレーション方法、およびプログラム
US14/384,406 US10635464B2 (en) 2012-03-15 2013-02-19 Information processing device, simulation method, and program
EP13761416.0A EP2816426A4 (en) 2012-03-15 2013-02-19 Information processing apparatus, simulation method, and program
PCT/JP2013/053961 WO2013136918A1 (ja) 2012-03-15 2013-02-19 情報処理装置、シミュレーション方法、およびプログラム
CN201380013393.3A CN104204976B (zh) 2012-03-15 2013-02-19 信息处理装置、模拟方法及程序

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012058276A JP6051546B2 (ja) 2012-03-15 2012-03-15 情報処理装置、シミュレーション方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP2013191129A true JP2013191129A (ja) 2013-09-26
JP6051546B2 JP6051546B2 (ja) 2016-12-27

Family

ID=49160837

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012058276A Active JP6051546B2 (ja) 2012-03-15 2012-03-15 情報処理装置、シミュレーション方法、およびプログラム

Country Status (5)

Country Link
US (1) US10635464B2 (ja)
EP (1) EP2816426A4 (ja)
JP (1) JP6051546B2 (ja)
CN (1) CN104204976B (ja)
WO (1) WO2013136918A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016012191A (ja) * 2014-06-27 2016-01-21 オムロン株式会社 情報処理装置、情報処理方法、およびプログラム
WO2016170660A1 (ja) * 2015-04-23 2016-10-27 三菱電機株式会社 位置決め制御装置
JP2018055654A (ja) * 2016-09-30 2018-04-05 オムロン株式会社 情報処理装置、情報処理方法およびプログラム
JP7052250B2 (ja) * 2017-08-10 2022-04-12 オムロン株式会社 情報処理装置、情報処理方法、および情報処理プログラム
JP6972873B2 (ja) * 2017-10-04 2021-11-24 オムロン株式会社 情報処理装置、情報処理方法、および情報処理プログラム
US11106478B2 (en) * 2017-11-10 2021-08-31 Mitsubishi Electric Corporation Simulation device, simulation method, and computer readable medium
JP7147807B2 (ja) * 2020-06-26 2022-10-05 株式会社安川電機 エンジニアリング装置、上位制御装置、エンジニアリング方法、処理実行方法、及びプログラム
CN112182891A (zh) * 2020-09-30 2021-01-05 深圳市智物联网络有限公司 一种工业对象模拟方法、装置及设备
JP2023006299A (ja) * 2021-06-30 2023-01-18 オムロン株式会社 シミュレーションシステム、シミュレーションシステムの方法、およびシミュレーションのプログラム
JP7413616B1 (ja) * 2022-02-25 2024-01-15 株式会社アルバック 表示装置、表示方法、及びプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0854907A (ja) * 1994-08-12 1996-02-27 Yokogawa Electric Corp 検証支援システム
JPH10187212A (ja) * 1996-12-27 1998-07-14 Fanuc Ltd プログラマブルコントローラ

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW421761B (en) 1994-04-12 2001-02-11 Yokogawa Electric Corp Verification support system
JP3803019B2 (ja) * 2000-08-21 2006-08-02 富士通株式会社 制御プログラム開発支援装置
US20020116699A1 (en) * 2000-12-18 2002-08-22 Armin Amrhein Apparatus and method for checking the status of control systems
US7392165B2 (en) * 2002-10-21 2008-06-24 Fisher-Rosemount Systems, Inc. Simulation system for multi-node process control systems
US20050234695A1 (en) * 2004-04-19 2005-10-20 Wang John C Timing control method of hardware-simulating program and application of the same
US8397220B1 (en) * 2007-02-12 2013-03-12 Synopsys, Inc. Simulation control techniques
US8332193B2 (en) * 2008-02-15 2012-12-11 Invensys Systems, Inc. System and method for autogenerating simulations for process control system checkout and operator training
JP5500820B2 (ja) * 2008-12-08 2014-05-21 インターナショナル・ビジネス・マシーンズ・コーポレーション シミュレーション方法、システム及びプログラム
JP2011018107A (ja) * 2009-07-07 2011-01-27 Fujitsu Ten Ltd シミュレーションシステム
KR101053104B1 (ko) * 2009-10-28 2011-08-02 엘에스산전 주식회사 전산기기 소프트웨어 테스트 방법 및 시스템
CN101876919B (zh) * 2009-11-13 2012-11-28 吴涛 一种实现数码设备仿真操作的系统和方法
JP5246186B2 (ja) * 2010-03-15 2013-07-24 オムロン株式会社 コントローラサポート装置、制御プログラムのシミュレーション方法、コントローラのサポートプログラムおよびコントローラのサポートプログラムを格納したコンピュータ読み取り可能な記憶媒体
CN101888658B (zh) * 2010-07-16 2012-10-03 北京市万网元通信技术有限公司 Gprs核心网仿真测试系统
CN101944159A (zh) * 2010-08-26 2011-01-12 王钰 一种基于实体的指挥机构仿真方法和模拟器
EP2612206A1 (en) 2010-08-31 2013-07-10 ABB Technology AG Method for debugging of process or manufacturing plant solutions comprising multiple sub-systems
CN101968742B (zh) * 2010-09-21 2013-05-22 清华大学 一种用于仿真系统的内部互锁管理方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0854907A (ja) * 1994-08-12 1996-02-27 Yokogawa Electric Corp 検証支援システム
JPH10187212A (ja) * 1996-12-27 1998-07-14 Fanuc Ltd プログラマブルコントローラ

Also Published As

Publication number Publication date
JP6051546B2 (ja) 2016-12-27
WO2013136918A1 (ja) 2013-09-19
WO2013136918A9 (ja) 2014-01-03
CN104204976B (zh) 2016-11-02
EP2816426A4 (en) 2017-01-04
CN104204976A (zh) 2014-12-10
US10635464B2 (en) 2020-04-28
EP2816426A1 (en) 2014-12-24
US20150112460A1 (en) 2015-04-23

Similar Documents

Publication Publication Date Title
JP6051546B2 (ja) 情報処理装置、シミュレーション方法、およびプログラム
JP2008165399A (ja) シミュレーションデータ作成支援装置
JP5891891B2 (ja) 情報処理装置、情報処理方法、およびプログラム
JP6184651B1 (ja) シミュレーション装置
US20150277413A1 (en) System construction support apparatus
JP2018502391A (ja) ユーザインタフェースを表示するためのコンピュータ実装方法
JP2010211316A (ja) 検証支援プログラム、情報処理装置および検証支援方法
US20160300000A1 (en) System construction support apparatus
JP2005242682A (ja) グラフィカルプログラミング装置及びプログラマブル表示器
JP6337810B2 (ja) 情報処理装置、情報処理方法、およびプログラム
EP3734379A1 (en) Method and system for generating control programs in a cloud computing environment
JP2008165324A (ja) プログラム作成支援装置
JP6483507B2 (ja) 制御プログラム作成装置、及び制御プログラムのデバッグ方法
JP2010033192A (ja) 情報処理装置装置、及びその制御方法、コンピュータプログラム、記憶媒体
JP2009223471A (ja) シミュレーション・システム
JP2008033572A (ja) 画面作成装置、画面作成プログラムおよびそれを記録した記録媒体
CN109287123B (zh) 控制装置及编辑装置
JP2006163657A (ja) プレイバックシミュレータ装置
KR101527578B1 (ko) 소프트웨어 개발 장치 및 그 방법
US11921496B2 (en) Information processing apparatus, information processing method and computer readable medium
JP2009244952A (ja) モーションコントローラ、シミュレーション方法及びシミュレーションプログラム
JP6076576B1 (ja) シミュレーション装置およびシミュレーションプログラム
JP2009157534A (ja) プログラム作成支援システム、そのプログラマブルコントローラ支援装置、プログラマブル表示器支援装置
JP6586841B2 (ja) 画像形成装置及び画像形成プログラム
JP2013235381A (ja) データ編集装置およびデータ編集方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150311

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160119

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160317

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160607

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160805

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161101

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161114

R150 Certificate of patent or registration of utility model

Ref document number: 6051546

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150