JP3876959B2 - シーケンスプログラムのシミュレーション装置 - Google Patents
シーケンスプログラムのシミュレーション装置 Download PDFInfo
- Publication number
- JP3876959B2 JP3876959B2 JP2000018065A JP2000018065A JP3876959B2 JP 3876959 B2 JP3876959 B2 JP 3876959B2 JP 2000018065 A JP2000018065 A JP 2000018065A JP 2000018065 A JP2000018065 A JP 2000018065A JP 3876959 B2 JP3876959 B2 JP 3876959B2
- Authority
- JP
- Japan
- Prior art keywords
- execution
- contents
- program
- sequence program
- memory area
- 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.)
- Expired - Lifetime
Links
Images
Landscapes
- Testing And Monitoring For Control Systems (AREA)
- Programmable Controllers (AREA)
Description
【発明の属する技術分野】
この発明は、シーケンスプログラムをパソコン上で実行及び途中ステップにおける実行停止を可能としたシーケンスプログラムのシミュレーション装置に係り、特に、スキャン開始時の入出力デバイスの状態に戻って、シーケンスプログラムの実行を再現するための操作を簡便に行えるようにしたシーケンスプログラムのシミュレーション装置に関する。
【0002】
【従来の技術】
シーケンスプログラムを構成する命令列をパソコン上で1ステップ単位で寸送り的に模擬実行させることを可能としたシーケンスプログラムのシミュレーション装置は、公知である。
【0003】
この種のシミュレーション装置にあっては、本来1スキャン単位で一括して実行される一連のシーケンスプログラム(命令ステップ列で構成される)を、1ステップずつ寸送り的に模擬実行してその都度出力デバイス(リレー等)の値をモニタリング(視認)することによりプログラムのデバッグが行われる。
【0004】
モニタリング時に出力デバイスが所期の値とならない場合、実行した命令ステップに関連する入出力デバイス(センサやリレー)の値を強制的に変更しては、再度その命令ステップの実行結果を確認する。状況によっては複数の入出力データの値を変更しては、再度その命令ステップの実行結果を確認する。必要な場合には、プログラムの修正を行い、修正されたプログラムにより再度動作の確認を行なう。開発者の意図した動作を行うことが確認されたならば、プログラムのデバッグは完了する。
【0005】
【発明が解決しようとする課題】
このようなシーケンスプログラムのデバッグにおいては、デバッグ完了に至る過程で、各命令ステップの実行動作確認等のために、入出力デバイスの値を必要により適宜に変更する。そのため、最終的なデバッグ完了確認のために、シーケンスプログラムを構成する一連の命令ステップをその先頭から末尾まで1ステップずつ寸送りに実行させるためには、それに先立って、それまでに変更された入出力デバイス等の値を全てスキャン開始時の本来の値(実機PLCにおける入出力リフレッシュ直後の値に相当する)に戻さねばならない。さもなければ、実機PLCにおいても、プログラムが正常に動作することが保証されない。
【0006】
しかしながら、従来のこの種のシミュレーション装置にあっては、デバッグの過程でどの入出力デバイスをどのような値に変更したかの情報は、手作業による記録や作業者の記憶に頼る他なかったため、値の戻し忘れや値の設定ミスが発生したり、値を元に戻すために多大な作業工数が必要であったりすることにより、デバッグ効率が低下すると言った問題点が指摘されている。
【0007】
この発明は、このような従来の問題点に着目してなされたもので、その目的とするところは、デバッグの過程で入出力デバイスの値を変更した場合、その変更箇所を作業者が記録若しくは記憶しておかずとも、必要に応じてスキャン開始時の入出力デバイスの状態に直ちに復元することができ、これによりこの種のデバッグ作業を効率よく実施可能なシーケンスプログラムのシミュレーション装置を提供することにある。
【0008】
この発明の他の目的とするところは、デバッグの過程で入出力デバイスの値を変更した場合、その変更箇所を作業者が記録若しくは記憶しておかずとも、過去のスキャン回の中で指定されたスキャン回におけるスキャン開始時の入出力デバイスの状態に直ちに復元することができ、これによりこの種のデバッグ作業をより効率よく実施可能なシーケンスプログラムのシミュレーション装置を提供することにある。
【0009】
この発明の他の目的とするところは、デバッグの過程で入出力デバイスの値を変更した場合、その変更箇所を作業者が記録若しくは記憶しておかずとも、過去のスキャン回の中で、入出力デバイスが指定の値に変化したスキャン回におけるスキャン開始時の入出力デバイスの状態に直ちに復元することができ、これによりこの種のデバッグ作業をより効率よく実施可能なシーケンスプログラムのシミュレーション装置を提供することにある。
【0010】
この発明のさらに他の目的とするところは、デバッグの過程で入出力デバイスの値を変更した場合、その変更箇所を作業者が記録若しくは記憶しておかずとも、1ステップずつ命令実行を寸送りに逆戻りさせつつ、最終的にスキャン開始時の入出力デバイスの状態に復元することができ、これによりこの種のデバッグ作業をより効率よく実施可能なシーケンスプログラムのシミュレーション装置を提供することにある。
【0011】
【課題を解決するための手段】
この発明のシーケンスプログラムのシミュレーション装置は、シーケンスプログラムをパソコン上で実行及び途中ステップにおける実行停止を可能としたシーケンスプログラムのシミュレーション装置であって、
シーケンスプログラムの実行の際の参照対象及び実行結果による設定対象となるべきデータが格納されるメモリ領域と、
メモリ領域の内容をバックアップするためのバックアップ領域と、
毎スキャンの開始時点で前記メモリ領域の内容をバックアップ領域に保存するメモリ内容保存手段と、
所定の操作が受付られるのを条件として、メモリ領域の内容を、バックアップ領域に保存された内容に復元すると共に、シーケンスプログラムの実行アドレスをプログラムの先頭へと強制的に戻す初期化手段と、を備え、
それにより、過去のスキャン時に戻って、シーケンスプログラムの実行を再現可能としたものである。
【0012】
なお、途中ステップにおける実行停止可能なモードとしては、この種のシミュレーション装置においては種々のモードが知られている。具体的には、1ステップ実行モードのほかに、指定された入出力の内容が特定値となったことを条件として実行を自動停止する各種の自動停止モード、さらには、任意の時点で手動でプログラムを途中停止させるモード等が存在する。加えて、そのような途中ステップにおける実行停止可能な新規なモードとしては、予め停止すべきステップを具体的にステップ番号により指定し、そのステップの到来を待って、実行停止を行うモードも考えられる。本発明は、あらゆる途中停止モードに対応可能である。
【0013】
このような構成によれば、デバッグの過程で入出力デバイスの値を変更した場合、その変更箇所を作業者が記録若しくは記憶しておかずとも、必要に応じてスキャン開始時の入出力デバイスの状態に直ちに復元することができ、これによりこの種のデバッグ作業を効率よく実施可能となる。
【0014】
好ましい実施の形態では、バックアップ領域の内容の複数スキャン回数分の履歴を保存する手段を有し、かつ
初期化手段が、メモリ領域の内容を、バックアップ領域の履歴の中から指定されたスキャン回の内容に復元すると共に、シーケンスプログラムの実行アドレスをプログラムの先頭へと強制的に戻すものである。
【0015】
このような構成によれば、デバッグの過程で入出力デバイスの値を変更した場合、その変更箇所を作業者が記録若しくは記憶しておかずとも、過去のスキャン回の中で指定されたスキャン回におけるスキャン開始時の入出力デバイスの状態に直ちに復元することができ、これによりこの種のデバッグ作業をより効率よく実施可能となる。
【0016】
好ましい実施の形態では、バックアップ領域が、メモリ領域の内容を複数スキャン回数分の履歴として保存可能になされており、かつ
初期化手段が、メモリ領域の内容を、バックアップ領域に保存された履歴の中から指定された入出力条件が成立したスキャン回の内容に復元すると共に、シーケンスプログラムの実行アドレスをプログラムの先頭へと強制的に戻すものである。
【0017】
このような構成によれば、デバッグの過程で入出力デバイスの値を変更した場合、その変更箇所を作業者が記録若しくは記憶しておかずとも、過去のスキャン回の中で、入出力デバイスが指定の値に変化したスキャン回におけるスキャン開始時の入出力デバイスの状態に直ちに復元することができ、これによりこの種のデバッグ作業をより効率よく実施可能となる。
【0018】
さらに、この発明のシーケンスプログラムのシミュレーション装置は、シーケンスプログラムをパソコン上で実行及び途中ステップにおける実行停止可能としたシーケンスプログラムのシミュレーション装置であって、
シーケンスプログラムの実行の際に参照及び設定されるべきデータが格納されるメモリ領域と、
メモリ領域の内容をバックアップするためのバックアップ領域と、
毎スキャンの開始時点で前記メモリ領域の内容をバックアップ領域に保存するメモリ内容保存手段と、
所定の操作が受付られるのを条件として、メモリ領域の内容を、バックアップ領域に保存された内容に復元すると共に、シーケンスプログラムの実行アドレスをプログラムの先頭へと強制的に戻し、以後、前記所定操作が受け付けられた時点のステップの1ステップ手前まで、シーケンスプログラムを強制的に連続実行させる再実行手段と、を備え、
それにより、シーケンスプログラムの実行を1ステップ分逆戻りさせた状態と等価な状態を再現可能としたものである。
【0019】
このような構成によれば、デバッグの過程で入出力デバイスの値を変更した場合、その変更箇所を作業者が記録若しくは記憶しておかずとも、1ステップずつ命令実行を寸送りに逆戻りさせつつ、最終的にスキャン開始時の入出力デバイスの状態に復元することができ、これによりこの種のデバッグ作業をより効率よく実施可能となる。
【0020】
【発明の実施の形態】
以下に、この発明の好適な幾つかの実施の一形態を添付図面を参照しながら詳細に説明する。
【0021】
本発明に係るシーケンスプログラムのシミュレーション装置の第1実施形態が図1〜図4に示されている。なお、図1はシーケンスプログラムのシミュレーション装置のソフトウェア構成を示す構成図、図2はシーケンスプログラムのシミュレーション装置の機能ブロック図、図3はシーケンスプログラム実行処理のフローチャート、図4はステップ実行処理のフローチャートである。
【0022】
図1に示されるように、本発明のシミュレーション装置1は、市販のパソコン(例えば、Windows95/98/NT4.0等)10上に、デバッガ101とシミュレーションエンジン102とをソフトウェア的に実現して構成されている。
【0023】
シミュレーションエンジン102は、実行管理部102aと、プログラム実行部102bと、メモリ領域102cと、バックアップ領域102dとを含んでいる。
【0024】
デバッガ101は、シミュレーションエンジン102に対する動作指示やシミュレーションエンジンの動作監視を行う。使用者は、デバッガ101のユーザインタフェースを介して、シミュレーションエンジン102に対して指示することができる。
【0025】
シミュレーションエンジン102は、本発明の要部を構成するものであり、シーケンスプログラムのシミュレーション機能を有する。
【0026】
実行管理部102aは、シーケンスプログラムの実行指示、メモリバックアップ処理等を行う。また、実行管理部102aは、デバッガ101からの指示を受け付け、プログラムの実行を制御する。
【0027】
プログラム実行部102bは、メモリ領域102cを参照・操作しつつ、シーケンスプログラムの実行を行う。すなわち、プログラム実行部102bは、メモリ領域102cの入力デバイスの値を参照して命令を実行すると共に、命令実行結果によりメモリ領域102cの出力デバイスの値を(書き替え)操作する。
【0028】
メモリ領域102cは、プログラム実行部102bが参照するメモリ領域である。このメモリ領域102cには、シーケンスプログラムの実行の際の参照対象及び実行結果による設定対象となるべき入出力データが格納される。
【0029】
バックアップ領域102dは、メモリ領域102cを一時的にバックアップするための領域である。このバックアップ領域102dには、後述するように、スキャン毎にメモリ領域102cの内容が保存される。また、バックアップ領域102dの内容は、デバッガ101からの指示に応じて、メモリ領域102cへと転送複写され、これによりメモリ領域102cにはスキャン開始時の内容(プログラムの実行等により変更されていない内容)が復元される。
【0030】
次に、図2〜図4を参照しつつ、本発明に関連するシミュレーション装置1の構成機能並びに全体動作をより詳細に説明する。
【0031】
先ず、図2を参照して説明すると、デバッガ101は、ユーザからの各種の操作指令乃至指示を受け付ける役目とユーザに対して動作内容を認識可能に出力(表示等)する役目とを果たすマンマシンインタフェース(MMI)として有効に機能するソフトウェアである。
【0032】
ユーザからの操作指令乃至指示としては、(1)プログラム実行に関する指示、(2)デバッグ中等のプログラム変更指示、(3)デバッグ中等の入出力デバイスの値の変更指示、等が少なくとも含まれている。
【0033】
特に、プログラム実行に関する指示には、(1)実行(モニタモード)指示、(2)停止(プログラムモード)指示、(3)一時停止指示、(4)ステップ実行指示、(5)スキャン実行指示、(6)連続スキャン実行指示、(7)スキャン再実行指示(本発明の要部)、等が少なくとも含まれている。
【0034】
ここで、実行(モニタモード)指示(1)とは、スキャンを連続的に行わせながらプログラムを実行する指示である。
【0035】
停止(プログラムモード)指示(2)とは、プログラムの実行を停止させる指示である。このとき、ラダー実行エンジンの運転モードは、自動的にプログラムモードになる。
【0036】
一時停止指示(3)とは、一時的にプログラムの実行を停止する指示である。このとき、各実行モードで処理を再開することができる。
【0037】
ステップ実行指示(4)とは、プログラムを構成する一連のニモニックの1ステップ毎の処理(解読実行)を寸送り的に行う指示である。ステップ実行では、1ステップ分のプログラム実行の毎に動作は停止する。
【0038】
スキャン実行指示(5)とは、ラダープログラムを1スキャンだけ実行する指示である。ステップ実行中にスキャン実行指示を与えると、ラダーの最後まで実行する。
【0039】
連続スキャン実行指示(6)とは、スキャン実行を一定の間隔(インターバル)で連続して行う指示である。
【0040】
スキャン再実行指示(7)とは、図2の再実行指示(201)に相当するものであり、ステップ実行の途中で、入出力メモリ(I/Oメモリ)の内容をスキャン開始時の状態に戻すと共に、プログラムカウンタの内容をクリアさせる(先頭値とさせる)指示である。ここで、当業者には良く知られているように、入出力メモリとはプログラム実行に際して参照乃至設定されるメモリ領域102cに相当するものである。また、プログラムカウンタとは、プログラムの実行アドレスを管理するポインタとして機能するものである。
【0041】
実行管理部102aは、デバッガ101からの各種の指示を受け付けると共に、それらに対応する動作を実現するために、プログラム実行部102bやメモリ領域102cを適宜に制御するものである。本発明に関連する処理としては、プログラム実行モードを様々に変更するためのプログラムアドレス変更処理(202)が挙げられる。
【0042】
プログラム実行部102bは、シーケンスプログラムを実行するためのラダー実行エンジンとして機能するものであり、このプログラム実行部102bのプログラム実行アドレスは実行管理部102aにより制御される。
【0043】
メモリ領域102cは、PLCの所謂入出力メモリ(I/Oメモリ)に相当するものであり、このメモリ領域102cには入出力デバイスに対応する入出力データの他に、プログラムの実行に必要なタイマやカウンタのデータ等が格納される。このメモリ領域102の入力領域の内容は、実行管理部102の制御下にあって、1スキャン毎に仮想入力デバイスとの間で更新され、出力領域の内容は1スキャン毎に仮想出力デバイスとの間で更新される。すなわち、実行管理部102aは、命令実行工程、入出力更新工程、周辺サービス処理工程を含む1サイクル動作を基準として動作管理をおこなっている。
【0044】
当業者に良く知られているように、メモリ領域102cの内容は、プログラムの実行に際して適宜に参照(203)される。また、プログラムの実行結果を受けて適宜に書き替え設定(204)される。
【0045】
バックアップ領域102dは、本発明に関連して新たに設けられたものであり、メモリ領域102cの内容を1スキャン分だけ保存するための記憶領域である。すなわち、後述するように、このバックアップ領域102dには、毎スキャンの開始時点で、メモリ領域102cの内容(すなわち、最新の1スキャン分のプログラム実行開始時の内容)が上書き保存(205)され、後述する再実行指令(201)が与えられた場合には、その保存された内容に基づいて、メモリ領域102cの内容が復元(206)される。
【0046】
次に、図2及び図3を参照しながら、ステップ実行処理及びスキャン再実行処理を中心として、第1実施形態のシミュレーション装置1におけるシーケンスプログラム実行動作を説明する。
【0047】
このシミュレーション装置にあっては、シーケンスプログラムをパソコン上で1ステップ単位で寸送り的に模擬実行させることを可能としている。これは、次のような一連の処理の実行により実現される。
【0048】
図3のフローチャートに示されるように、スキャン再実行指示がない状態(ステップ304NO)では、ステップ実行処理(ステップ303)だけが繰り返し実行される。図4のフローチャートに示されるように、ステップ実行処理では、1ステップ分の実行指示を受けてリセットされ(ステップ405YES)かつ1ステップ分の命令実行完了毎にセット(ステップ403)されるフラグF1を参照(ステップ401,405)することで、1ステップ単位による寸送り的(ステップ404)な命令模擬実行動作(ステップ402)が行われる。
【0049】
また、このシミュレーション装置にあっては、毎スキャンの開始時点で、メモリ領域102cの内容をバックアップ領域102dへと保存する。これは、つぎのような一連の処理の実行により実現される。
【0050】
図3のフローチャートに示されるように、プログラムカウンタの内容を参照してスキャンの先頭であると判定されると(ステップ302YES)、そのときのメモリ領域102cの内容は、バックアップ領域102dへと保存される(ステップ307)。
【0051】
また、所定の操作(スキャンの再実行指示)が受付られるのを条件として、メモリ領域102cの内容を、バックアップ領域102dに保存されたスキャン開始時(プログラム実行開始時)の内容に復元すると共に、シーケンスプログラムの実行アドレスをプログラムの先頭へと強制的に戻すことを可能としている。これは、次のような一連の処理の実行により実現される。
【0052】
図3のフローチャートに示されるように、ステップモードの実行中に、スキャン再実行指示(図2の201)が与えられると(ステップ304YES)、バックアップ領域102dからメモリ領域102cへの復元処理が行われ(ステップ305)、同時に、プログラムの実行アドレスを管理するプログラムカウンタの値は先頭値に戻される(ステップ306)。
【0053】
そのため、この実施形態によれば、デバッグの過程で入出力デバイスの値を変更した場合、その変更箇所を作業者が記録若しくは記憶しておかずとも、スキャン再実行指示を与えるだけで、スキャン開始時の入出力デバイスの状態に直ちに復元することができ、同一の内部条件でシーケンスプログラムのスキャンを繰り返すことが可能となるほか、状態の確認やデバッグ後の確認のための作業工数を軽減することが可能になり、人手を介することなくスキャン実行前の状態に戻せるため、作業ミスによるデバッグ効率の低下を防ぐことができる、等の格別の作用効果が得られる。
【0054】
本発明に係るシーケンスプログラムのシミュレーション装置の第2実施形態が図5〜図8に示されている。なお、図5はシーケンスプログラムのシミュレーション装置の機能ブロック図、図6はシーケンスプログラム実行処理のフローチャート、図7は履歴からのメモリ領域復元処理のフローチャート、図8は履歴の内容を説明するための概念図である。
【0055】
図2に示されるように、この実施形態のシミュレーション装置にあっても、第1実施形態の場合と同様に、デバッガ101と、実行管理部102aと、プログラム実行部102bと、メモリ領域102cと、バックアップ領域102dとを有する。これらの機能要素の詳細については、第1実施例の該当項目の説明を参照されたい。
【0056】
新たな機能要素であるバックアップ領域の履歴103は、バックアップ領域102dの内容の複数スキャン回数分の履歴に相当する。このバックアップ領域の履歴103は、必要により、例えばパソコン10上の主メモリ或いは補助メモリ上に格納される。
【0057】
また、図5に示される再実行指示(101)には、復元を希望するメモリ領域のスキャン回若しくは入出力条件を指定することが可能となっている。すなわち、『第n回目のスキャンにおけるスキャン開始時のメモリ領域』或いは『入出力デバイスが特定状態に変化したときのスキャン回のメモリ領域』と言った具合の指定が所定のコマンド言語で可能となされている。
【0058】
次に、図6〜図8を参照しながら、ステップ実行処理及びスキャン再実行処理を中心として、第2実施形態のシミュレーション装置1におけるシーケンスプログラム実行動作を説明する。
【0059】
このシミュレーション装置にあっても、シーケンスプログラムをパソコン上で1ステップ単位で寸送り的に模擬実行させることを可能としている。これは、次のような一連の処理の実行により実現される。
【0060】
図6のフローチャートに示されるように、スキャン再実行指示がない状態(ステップ606NO)では、ステップ実行処理(ステップ605)だけが繰り返し実行される。ステップ実行処理の内容は先に図4を参照して説明したものと同様であるので、重複説明は回避する
また、このシミュレーション装置にあっては、毎スキャンの開始時点で、メモリ領域102cの内容をバックアップ領域102dへと保存すと共に、これと同時にバックアップ領域の履歴103を作成している。
【0061】
図6のフローチャートに示されるように、プログラムカウンタの内容を参照してスキャンの先頭であると判定されると(ステップ602YES)、そのときのメモリ領域102cの内容は、バックアップ領域102dへと保存される(ステップ603)。続いて、それまでのバックアップ領域102dの内容は履歴103へと追加保存される(ステップ604)。
【0062】
また、所定の操作(スキャンの再実行指示)が受付られるのを条件として、メモリ領域102cの内容を、バックアップ領域の履歴103に保存されたバックアップ領域の内容から選択された内容に復元すると共に、シーケンスプログラムの実行アドレスをプログラムの先頭へと強制的に戻すことを可能としている。これは、次のような一連の処理の実行により実現される。
【0063】
図6のフローチャートに示されるように、ステップモードの実行中に、スキャン再実行指示(図2の201)が与えられると(ステップ606YES)、図7に示される所定のアルゴリズムに従ってバックアップ領域の履歴103からメモリ領域102cへのデータ復元処理が行われ(ステップ607)、同時に、プログラムの実行アドレスを管理するプログラムカウンタの値は先頭値に戻される(ステップ608)。
【0064】
履歴からのメモリ領域復元処理の詳細が図7のフローチャートに示されている。同図において、ステップ701では、その再実行指令において復元対象となるメモリ領域が、『指定スキャン時』又は『条件成立時』のいずれのものであるかの判定が行われる。ここで、『指定スキャン時』とは、スキャン回により復元されるべきメモリ領域を指定した場合のことである。また、『条件成立時』とは、特定の入出力の状態により復元されるべきメモリ領域を指定した場合である。
【0065】
図8に示されるように、バックアップ領域の履歴103としては、例えば、n個のメモリ内容(メモリ領域102cの内容)MD0〜MDnが含まれている。その内、例えば、3つ前のスキャン時のメモリ領域と言った指定が行われると、それに対応してメモり内容MD3が復元される。また、各メモリ内容MD0〜MDnには入力データ領域、出力データ領域、制御データ領域(カウンタ、タイマ等)が含まれている。そこで、特定の入出力が特定のオンオフパターンとなったときと言った指定を行うと、そのようなオンオフパターンが検索されて、その条件に合致したスキャン時点のメモリ内容が復元されるのである。
【0066】
すなわち、ステップ701において、『条件成立時』と判定されると、入出力条件成立のスキャン時データが探索され(ステップ703)、探索されたスキャン時のメモリ領域が復元される(ステップ704)。これに対して、ステップ701において、『指定スキャン時』と判定されると、当該スキャン時のメモリ領域が復元される(ステップ702)。
【0067】
そのため、この実施形態によれば、デバッグの過程で入出力デバイスの値を変更した場合、その変更箇所を作業者が記録若しくは記憶しておかずとも、スキャン再実行指示をスキャン時指定又は入出力条件指定と共に与えるだけで、該当するスキャン開始時の入出力デバイスの状態に直ちに復元することができる。そのため、第1実施形態のものに比べて、より一層に使い勝手の良好なシミュレーション装置となる。
【0068】
次に、図9〜図11を参照しながら、ステップ実行処理及びステップバック処理を中心として、第3実施形態のシミュレーション装置1におけるシーケンスプログラム実行動作を説明する。
【0069】
このシミュレーション装置にあっても、シーケンスプログラムをパソコン上で1ステップ単位で寸送り的に模擬実行させることを可能としている。これは、次のような一連の処理の実行により実現される。
【0070】
図9のフローチャートに示されるように、スキャン再実行指示がない状態(ステップ905NO)では、ステップバック機能付ステップ実行処理(ステップ904)だけが繰り返し実行される。
【0071】
このとき、図10のフローチャートに示されるように、ステップバック機能付ステップ実行処理では、ステップバックモードを示すフラグF2がリセットされているため(ステップ1001NO)、第1実施形態と同様にして、ステップ実行処理(ステップ1002〜1007)だけが実行される。
【0072】
また、このシミュレーション装置にあっても、毎スキャンの開始時点で、メモリ領域102cの内容をバックアップ領域102dへと保存する。これは、つぎのような一連の処理の実行により実現される。
【0073】
図9のフローチャートに示されるように、プログラムカウンタの内容を参照してスキャンの先頭であると判定されると(ステップ902YES)、そのときのメモリ領域102cの内容は、バックアップ領域102dへと保存される(ステップ903)。
【0074】
また、所定の操作(スキャンの再実行指示)が受付られるのを条件として、メモリ領域102cの内容を、バックアップ領域102dに保存されたスキャン開始時(プログラム実行開始時)の内容に復元すると共に、シーケンスプログラムの実行アドレスをプログラムの先頭へと強制的に戻すことを可能としている。これは、次のような一連の処理の実行により実現される。
【0075】
図9のフローチャートに示されるように、ステップモードの実行中に、スキャン再実行指示(図2の201)が与えられると(ステップ905YES)、バックアップ領域102dからメモリ領域102cへの復元処理が行われ(ステップ906)、同時に、プログラムの実行アドレスを管理するプログラムカウンタの値は先頭値に戻される(ステップ907)。
【0076】
さらに、ステップバック指示が与えられた場合には、所定の操作が受付られるのを条件として、メモリ領域102cの内容を、バックアップ領域102dに保存された内容に復元すると共に、シーケンスプログラムの実行アドレスをプログラムの先頭へと強制的に戻し、以後、前記所定操作が受け付けられた時点のステップの1ステップ手前まで、シーケンスプログラムを強制的に連続実行させる処理が実行される。これは、次のような一連の処理の実行により実現される。
【0077】
図10のフローチャートに示されるように、ステップモードの実行中にステップバック指示が与えられると(ステップ1008YES)、先程説明したステップバックモードフラグF2がセットされる(ステップ1009)。すると、ステップ1001における判定結果はYESとなる。そのため、1ステップ分の命令実行処理(ステップ1010)とプログラム実行アドレスの歩進処理(ステップ1011)とが繰り返し実行される。そして、プログラム実行アドレスがステップバック指示が与えられたステップよりも一つ前の値まで達すると(ステップ1012YES)、ステップバックモードフラグF2はリセットされて(ステップ1013)、ステップバック動作は完了する。
【0078】
図11に示されるように、このとき、実際には、アドレス(8)にてステップバック指示が与えられた瞬間に、プログラムの先頭であるアドレス(0)に戻ってから、順次に各ステップであるアドレス(1)〜(6)を実行しつつ一つ手前のステップであるアドレス(7)に到達したのにも拘わらず、一連のステップの実行は瞬時に完了するため、恰も、1ステップ逆戻りさせたものと等価な状態が出現される。従って、このステップバック指示を繰り返すことで、プログラムの実質的な逆戻りが可能となる。特に、この等価逆戻り方式によれば、各ステップにおける実行途中結果を保存しなくても、実質的に逆戻りが可能となる利点がある。
【0079】
そのため、この実施形態によれば、デバッグの過程で入出力デバイスの値を変更した場合、その変更箇所を作業者が記録若しくは記憶しておかずとも、1ステップずつ命令実行を寸送りに逆戻りさせつつ、最終的にスキャン開始時の入出力デバイスの状態に復元することができ、これによりこの種のデバッグ作業をより効率よく実施可能となる。
【0080】
【発明の効果】
以上の説明で明らかなように、この発明によれば、デバッグの過程で入出力デバイスの値を変更した場合、その変更箇所を作業者が記録若しくは記憶しておかずとも、必要に応じて簡単な操作を行うだけで、スキャン開始時の入出力デバイスの状態に直ちに復元することができ、これによりこの種のデバッグ作業を効率よく実施可能となる。
【0081】
また、この発明によれば、デバッグの過程で入出力デバイスの値を変更した場合、その変更箇所を作業者が記録若しくは記憶しておかずとも、スキャン回を指定して簡単な操作を行うだけで、過去のスキャン回の中で指定されたスキャン回におけるスキャン開始時の入出力デバイスの状態に直ちに復元することができ、これによりこの種のデバッグ作業をより効率よく実施可能となる。
【0082】
また、この発明によれば、デバッグの過程で入出力デバイスの値を変更した場合、その変更箇所を作業者が記録若しくは記憶しておかずとも、入出力デバイス並びにその状態を指定して簡単な操作を行うだけで、過去のスキャン回の中で、入出力デバイスが指定の値に変化したスキャン回におけるスキャン開始時の入出力デバイスの状態に直ちに復元することができ、これによりこの種のデバッグ作業をより効率よく実施可能となる。
【0083】
さらに、この発明によれば、デバッグの過程で入出力デバイスの値を変更した場合、その変更箇所を作業者が記録若しくは記憶しておかずとも、必要により簡単な操作を行うだけで、1ステップずつ命令実行を寸送りに逆戻りさせつつ、最終的にスキャン開始時の入出力デバイスの状態に復元することができ、これによりこの種のデバッグ作業をより効率よく実施可能となる。
【図面の簡単な説明】
【図1】 シーケンスプログラムのシミュレーション装置の構成図(第1実施形態)である。
【図2】 シーケンスプログラムのシミュレーション装置の機能ブロック図(第1実施形態)である。
【図3】 シーケンスプログラム実行処理のフローチャート(第1実施形態)である。
【図4】 ステップ実行処理のフローチャートである。
【図5】 シーケンスプログラムのシミュレーション装置の機能ブロック図(第2実施形態)である。
【図6】 シーケンスプログラム実行処理のフローチャート(第2実施形態)である。
【図7】 履歴からのメモリ領域復元処理のフローチャートである。
【図8】 履歴の内容を説明するための概念図である。
【図9】 シーケンスプログラム実行処理のフローチャート(第3実施形態)である。
【図10】 ステップバック機能付きステップ実行処理のフローチャートである。
【図11】 ステップバック動作の概念図である。
【符号の説明】
1 シミュレーション装置
10 パソコン
101 デバッガ
102 シミュレーションエンジン
102a 実行管理部
102b プログラム実行部
102c メモリ領域
102d バックアップ領域
103 バックアップ領域の履歴
MD0〜MDn メモリ領域の履歴
Claims (2)
- シーケンスプログラムをパソコン上で実行及び途中ステップにおける実行停止を可能としたシーケンスプログラムのシミュレーション装置であって、
シーケンスプログラムの実行の際の参照対象及び実行結果による設定対象となるべきデータが格納されるメモリ領域と、
メモリ領域の内容をバックアップするためのバックアップ領域と、
毎スキャンの開始時点で前記メモリ領域の内容をバックアップ領域に保存するメモリ内容保存手段と、
バックアップ領域の内容の複数スキャン回数分の履歴を保存する手段と、
所定の操作が受付られるのを条件として、メモリ領域の内容を、バックアップ領域に保存された履歴の中から指定された入出力条件が成立したスキャン回の内容に復元すると共に、シーケンスプログラムの実行アドレスをプログラムの先頭へと強制的に戻す初期化手段とを備え、
それにより、指定された入出力条件が成立したスキャン回の内容に戻って、シーケンスプログラムの再実行を可能としたシーケンスプログラムのシミュレーション装置。 - シーケンスプログラムをパソコン上で実行及び途中ステップにおける実行停止を可能としたシーケンスプログラムのシミュレーション装置を実現するために、コンピュータを、
シーケンスプログラムの実行の際の参照対象及び実行結果による設定対象となるべきデータが格納されるメモリ領域を定義する手段と、
メモリ領域の内容をバックアップするためのバックアップ領域を定義するための手段と、
毎スキャンの開始時点で前記メモリ領域の内容をバックアップ領域に保存するメモリ内容保存手段と、
バックアップ領域の内容の複数スキャン回数分の履歴を保存する手段と、
所定の操作が受付られるのを条件として、メモリ領域の内容を、バックアップ領域に保存された履歴の中から指定された入出力条件が成立したスキャン回の内容に復元すると共に、シーケンスプログラムの実行アドレスをプログラムの先頭へと強制的に戻す初期化手段と、
して機能させるためのプログラムを記憶したコンピュータ読み取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000018065A JP3876959B2 (ja) | 2000-01-25 | 2000-01-25 | シーケンスプログラムのシミュレーション装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000018065A JP3876959B2 (ja) | 2000-01-25 | 2000-01-25 | シーケンスプログラムのシミュレーション装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001209412A JP2001209412A (ja) | 2001-08-03 |
JP3876959B2 true JP3876959B2 (ja) | 2007-02-07 |
Family
ID=18544964
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000018065A Expired - Lifetime JP3876959B2 (ja) | 2000-01-25 | 2000-01-25 | シーケンスプログラムのシミュレーション装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3876959B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3961478B2 (ja) | 2002-12-27 | 2007-08-22 | オムロン株式会社 | プログラマブルコントローラ用ユニット及びメモリ自動復旧方法 |
JP5962088B2 (ja) | 2012-03-15 | 2016-08-03 | オムロン株式会社 | Plcシミュレーションシステム、plcシミュレータ、制御プログラム、および記録媒体 |
JP2022182160A (ja) * | 2021-05-27 | 2022-12-08 | オムロン株式会社 | 制御システム、システムプログラムおよびデバッグ方法 |
-
2000
- 2000-01-25 JP JP2000018065A patent/JP3876959B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2001209412A (ja) | 2001-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH01270164A (ja) | シミュレーション方法 | |
JP3876959B2 (ja) | シーケンスプログラムのシミュレーション装置 | |
JP2008123559A (ja) | Plcシミュレータ装置及びシミュレーションするためのプログラムとこれが記録された記録媒体 | |
JPH07219807A (ja) | プログラマブルコントローラシステム | |
JP2001154711A (ja) | 工程歩進型プログラムのデバッグ方法および装置 | |
JPH04352245A (ja) | シュミレ−ション方式 | |
JPH0743732B2 (ja) | 収集データの格納方法 | |
JP4192380B2 (ja) | Plcシミュレータ装置及びシミュレーションするためのプログラムとこれが記録された記録媒体 | |
JP2880330B2 (ja) | プログラマブルコントローラのプログラミング装置 | |
JPH07253876A (ja) | プログラム作成装置 | |
JP7199407B2 (ja) | コンテナターミナルシミュレーションシステム | |
JPH10187212A (ja) | プログラマブルコントローラ | |
JP3048679B2 (ja) | 対話形nc装置 | |
JPH06214854A (ja) | 情報処理装置 | |
JPH0772918A (ja) | 数値制御装置 | |
JPH1091477A (ja) | 制御用マイクロコンピュータ装置及び該装置の保守ツール | |
JPH05233332A (ja) | スケジュール修正方式 | |
JPH0830612A (ja) | エディタ | |
JPH0679245B2 (ja) | プログラマブルコントロ−ラのシ−ケンスプログラム実行方式 | |
JP2669143B2 (ja) | プログラマブルコントローラのプログラミング装置 | |
JPH09160611A (ja) | プログラマブルコントローラ | |
JP2001209408A (ja) | Plc用制御プログラムの実行シミュレーション装置、並びに、制御プログラム実行シミュレーション機能を有するplc | |
JPH04236604A (ja) | ロボットの制御装置 | |
JPH03245206A (ja) | 産業用ロボットにおけるプログラミング方法およびその装置 | |
JPH07160543A (ja) | 履歴情報記憶方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040223 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060323 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060502 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060703 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060726 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060915 |
|
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: 20061011 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061024 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 3876959 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101110 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101110 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111110 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121110 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121110 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131110 Year of fee payment: 7 |
|
EXPY | Cancellation because of completion of term |