(57)【要約】【課題】実機の種類や性能に因らずにシミュレーションを容易に実行可能であり、シミュレータ同士が連携して動作するようなシーケンスプログラムのデバッグが可能なシミュレーションシステムを得る。【解決手段】シミュレータ管理部は、シミュレーション対象であるプログラムの１スキャン分の実行を要求する１スキャン実行要求を複数のシミュレータに通知するとともに、該１スキャン実行要求に基づいて動作するシミュレータのうちのあるシミュレータのブレーク状態を検出したことを条件として複数のシミュレータのうちの他のシミュレータの動作を停止させ、複数のシミュレータは、１スキャン実行要求に基づいてプログラムの１スキャン分を実行し、プログラムの実行途中において停止した場合には動作再開指示に応じて動作を再開すること、を特徴とする。【選択図】        図１−１
2010191480.tif 000002
【特許請求の範囲】
【請求項１】
複数のシミュレータと、前記複数のシミュレータの動作を管理するシミュレータ管理部と、を備えたシミュレーションシステムであって、
前記シミュレータ管理部は、シミュレーション対象であるプログラムの１スキャン分の実行を要求する１スキャン実行要求を複数の前記シミュレータに通知するとともに、該１スキャン実行要求に基づいて動作する前記シミュレータのうちのあるシミュレータのブレーク状態を検出したことを条件として前記複数のシミュレータのうちの他のシミュレータの動作を停止させ、
前記複数のシミュレータは、前記１スキャン実行要求に基づいて前記プログラムの１スキャン分を実行し、前記プログラムの実行途中において停止した場合には動作再開指示に応じて動作を再開すること、
を特徴とするシミュレーションシステム。
【請求項２】
前記シミュレータ管理部および前記シミュレータは、シミュレータシステム全体の仮想的な時間である仮想時間に基づいて動作し、
前記シミュレータ管理部は、前記仮想時間を管理し、前記仮想時間を停止することで前記シミュレータの動作を停止させること、
を特徴とする請求項１に記載のシミュレーションシステム。
【請求項３】
前記シミュレータ管理部は、シミュレータのブレーク状態を検出した後に、前記ブレーク状態となった前記シミュレータから１スキャン実行完了の通知である前記１スキャン実行要求の完了応答を受信した場合に、
前記仮想時間と前記ブレーク状態となったシミュレータの累積実行時間に、前記ブレーク状態となったシミュレータの実行周期を加算するステップと、
シミュレータの累積実行時間よりも前記加算後の前記仮想時間が大となるシミュレータが存在する場合に、該シミュレータに対して累積実行時間と前記加算後の前記仮想時間との差が大きい順に１スキャン実行要求を通知して１スキャン分の実行を完了させるステップと、
を実行することを特徴とする請求項２に記載のシミュレーションシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シミュレーションシステムに関するものである。
【背景技術】
【０００２】
従来、シミュレーションシステムは、シーケンスプログラムを擬似的に実行させてシーケンスプログラムのシミュレーションを行っている。シミュレーションシステムは、シミュレータ管理部と、複数のシミュレータ（たとえばシミュレータＡ、シミュレータＢ・・・）により構成されている。このようなシミュレーションシステムにおいて、シミュレータ管理部は、シミュレータの動作の時間を管理する仮想時間時計（シミュレーション時計）とシミュレータ毎の１スキャン実行周期とを管理し、各シミュレータのプログラム実行を制御する。
【０００３】
つぎに、従来のシミュレーションシステムの動作について説明する。まず、シミュレータ管理部は、シミュレーション開始時に各シミュレータに対して、１スキャン分の実行を要求する１スキャン実行要求を行う。その後、シミュレータ管理部は、シミュレーション時計を周期的に監視する。シミュレーション時計は、たとえばパソコンなどの計算機における時計情報などから取得して、更新される。
【０００４】
そして、シミュレータ管理部は、１スキャン分の実行が完了した旨の応答である１スキャン実行完了応答があったシミュレータに対して、1スキャン実行周期を超えた時点で、再度シミュレーション実行要求を送信するという処理を繰り返し実行し、シミュレーションを進める。また、エラーの発生などにより１スキャン実行が完了しないシミュレータに対してはシミュレーション実行要求は出されることはないが、他のシミュレータはエラーの発生したシミュレータとは連動することなく継続動作する。
【０００５】
一方、各シミュレータは、データとしてシーケンスプログラム、デバイスメモリ部、ブレーク条件リストを有する。また、各シミュレータは、シーケンスプログラム実行部と、通信処理機能部と、を有する。シーケンスプログラム実行部は、シミュレータ管理部からの１スキャン実行要求を受けて、シーケンスプログラム等のプログラムを実行し、デバイスメモリ部に実行結果を反映して設定する。
【０００６】
通信処理機能部は、外部からの要求（１スキャン実行要求、実行状態の取得等）に対して、応答する機能を有する。このように構成されたシミュレータは、シミュレータ管理部からの１スキャン実行要求に従ってシーケンスプログラムを実行する。また、シミュレーション中にブレーク条件が成立した場合には、シミュレータはシーケンスプログラムの実行を中断する。
【０００７】
【特許文献１】特開２００１−２８２３２７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記従来の技術によれば、従来のシミュレーションシステムは上記のように構成されているので、あるシミュレータ（たとえば、シミュレータＡ）でブレーク条件が成立した場合、エラー発生時と同様に他のシミュレータ（たとえば、シミュレータＢ）は動作を継続する。このため、従来のシミュレーションシステムでは、シミュレータ同士が連携して動作するようなシーケンスプログラムのデバッグができないという問題があった。
【０００９】
また、シミュレーションシステムに関する技術として、複数のシミュレータと、そのシミュレータの動作を管理する仮想時間管理サーバを備え、シミュレータは仮想時間管理サーバから受ける動作時間にしたがい、実ＰＬＣが動作時間だけ稼動した場合に処理する命令語を実行する技術がある（たとえば、特許文献１参照）。
【００１０】
しかしながら、特許文献１にかかる技術によれば、ステップ毎に指示を与えて制御しているため各シミュレータにおけるプログラムの実行時間を管理する必要があり管理テーブルが必要とされる。この場合、実際にプログラムが実行される実機の性能が変更される度に、管理テーブルも見直しを行って変更し、また条件を設定し直す必要がある。
【００１１】
本発明は、上記に鑑みてなされたものであって、実機の種類や性能に因らずにシミュレーションを容易に実行可能であり、シミュレータ同士が連携して動作するようなシーケンスプログラムのデバッグが可能なシミュレーションシステムを得ることを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決し、目的を達成するために、本発明にかかるシミュレーションシステムは、複数のシミュレータと、前記複数のシミュレータの動作を管理するシミュレータ管理部と、を備えたシミュレーションシステムであって、前記シミュレータ管理部は、シミュレーション対象であるプログラムの１スキャン分の実行を要求する１スキャン実行要求を複数の前記シミュレータに通知するとともに、該１スキャン実行要求に基づいて動作する前記シミュレータのうちのあるシミュレータのブレーク状態を検出したことを条件として前記複数のシミュレータのうちの他のシミュレータの動作を停止させ、前記複数のシミュレータは、前記１スキャン実行要求に基づいて前記プログラムの１スキャン分を実行し、前記プログラムの実行途中において停止した場合には動作再開指示に応じて動作を再開すること、を特徴とする。
【発明の効果】
【００１３】
この発明によれば、あるシミュレータがブレーク状態になった場合、シミュレーションシステム全体が停止し、ステップ実行の操作等による動作再開指示に応じて動作を再開するため、シミュレータ同士が連携して動作するプログラムのデバッグが容易に実現可能となる、という効果を奏する。
【発明を実施するための最良の形態】
【００１４】
以下に、本発明にかかるシミュレーションシステムの実施の形態を図面に基づいて詳細に説明する。なお、本発明は以下の記述に限定されるものではなく、本発明の要旨を逸脱しない範囲において適宜変更可能である。
【００１５】
実施の形態．
図１−１は、本発明の実施の形態にかかるシミュレーションシステムの構成を示す図である。本実施の形態にかかるシミュレーションシステムは、シーケンスプログラム等のプログラムを実機で実行する際の実機の演算部（ＣＰＵ等）の動作を模擬的に実行して、シーケンスプログラム等のシミュレーションを行うシミュレーションシステムである。本実施の形態にかかるシミュレーションシステムは、シミュレータ管理部１００と、複数のシミュレータ２００により構成されている。ここでは、シミュレータとしてシミュレータ２００Ａおよびシミュレータ２００Ｂとがシミュレータ管理部１００に接続されている場合について説明するが、シミュレータ管理部１００に接続されるシミュレータの数量はこれに限定されるものではなく、さらに多数のシミュレータがシミュレータ管理部１００に接続されてもよい。
【００１６】
図１−２は、本実施の形態にかかるシミュレータ管理部１００の構成を示すブロック図である。シミュレータ管理部１００は、図１−２に示すように、シミュレーションシステム全体の仮想的な時間を管理するシミュレーション時計１０１と、各シミュレータにおける実行情報を保持する１スキャン実行周期リストを格納する１スキャン実行周期リスト格納部１０３と、を備える。また、シミュレーション時計１０１および１スキャン実行周期リスト格納部１０３の管理、これらを用いてシミュレータ毎の１スキャン実行周期を管理し、各シミュレータのプログラム実行を制御する制御部１０５を備える。シミュレーション中、シミュレータ管理部１００は、シミュレーション時計１０１を周期的に監視する。シミュレーション時計１０１は、たとえばパソコンなどの計算機における時計情報などから取得して、更新される。
【００１７】
シミュレータ管理部１００は、図１−３に示すように、実行情報として各シミュレータの実行周期を１スキャン実行周期リストに保持する。また、シミュレータ管理部１００は、各シミュレータの実行状態に関する情報を１スキャン実行周期リストに併せて保持することで、シミュレータ毎の状態を監視している。さらに、シミュレータ管理部１００は、実行情報として各シミュレータの実行時間に関する情報として累積実行時間を１スキャン実行周期リストに併せて保持することで、シミュレータ毎の累積実行時間を監視している。図１−３は、１スキャン実行周期リストの一例を示す図である。
【００１８】
一方、シミュレータ２００は、図１−４に示すように、シミュレータにおける各種データを格納するデータメモリ２０１と、シミュレータにおけるプログラム実行処理の制御を行うシーケンスプログラム実行部２０３と、外部からの要求に対して応答する機能を有する通信処理機能部２０５と、を備える。図１−４は、本実施の形態にかかるシミュレータの構成を示すブロック図である。
【００１９】
シーケンスプログラム実行部２０３は、シミュレータ管理部１００からの１スキャン実行要求を受けて、シーケンスプログラムを実行し、デバイスメモリ部２１３に実行結果を反映して設定する。
【００２０】
データメモリ２０１は、シミュレーション対象であるシーケンスプログラムを格納するシーケンスプログラムメモリ部２１１、シーケンスプログラムで使用するデバイスの情報を格納するデバイスメモリ部２１３、シーケンスプログラム実行時のブレーク条件に関する情報を格納するブレーク条件リスト２１５と、を有する。
【００２１】
通信処理機能部２０５は、シミュレータ管理部１００からの１スキャン実行要求、実行状態の取得、およびシーケンスプログラム実行部２０３における「プログラム実行」の後に実行される「ＥＮＤ処理」と呼ばれる１スキャン毎のプログラムの実行終了処理の送受信を主に行う。ＥＮＤ処理は、デバイスメモリのリフレッシュおよび外部との通信処理を実施する処理である。
【００２２】
以上のように構成された本実施の形態にかかるシミュレーションシステムにおいては、ブレーク状態のシミュレータが存在しない場合の動作は、従来のシミュレーションシステムと同一である。一方、ブレーク状態のシミュレータが存在し、そのシミュレータから１スキャン実行の完了応答が無い場合にはシミュレーション時計の更新は行われず、シミュレーションシステム全体が停止した状態となる。
【００２３】
以下、図２−１および図２−２を参照しながら、本実施の形態にかかるシミュレーションシステムにおける動作について説明する。図２−１および図２−２は、本実施の形態にかかるシミュレーションシステムのシミュレータ管理部１００における動作を説明するためのフローチャートである。
【００２４】
まず、シミュレーションが開始されると、シミュレータ管理部１００の制御部１０５は、シミュレータ管理部１００のシミュレーション時計の値を０に初期化し、また、シミュレータ管理部１００の１スキャン実行周期リストの累積実行時間の値を０に初期化する（ステップＳ１１０）。つぎに、シミュレータ管理部１００の制御部１０５は、全シミュレータに対してシーケンスプログラムの１スキャンを１スキャン分の実行を要求する１スキャン実行要求を送る（ステップＳ１２０）。この場合は、シミュレータ管理部１００の制御部１０５は、シミュレータＡ２００ＡおよびシミュレータＢ２００Ｂに対して、１スキャン実行要求を送る。
【００２５】
シミュレータＡ２００ＡおよびシミュレータＢ２００Ｂは、シミュレータ管理部１００からの１スキャン実行要求を受け取ると、該１スキャン実行要求に従ってシーケンスプログラムの所定の１スキャン分を実行する。シミュレータ管理部１００では、制御部１０５が、各シミュレータにおける実行状況に関する情報である実行状況情報を各シミュレータ２００における通信処理機能部２０５を介して取得し（ステップＳ１３０）、図１−３に示すように、１スキャン実行周期リストに格納し、シミュレータ毎の実行状態を監視する。
【００２６】
そして、シミュレータ管理部１００の制御部１０５は、この実行状況情報により、ブレーク状態のシミュレータが存在するか否かを判断する（ステップＳ１４０）。ブレーク状態のシミュレータが存在しない場合には（ステップＳ１４０否定）、シミュレーション時計を更新し（ステップＳ１５０）、シミュレータ毎の１スキャン繰り返し処理を開始する。
【００２７】
シミュレータ管理部１００の制御部１０５は、１スキャン分の実行が完了した旨の応答である１スキャン実行完了応答がシミュレータ２００から受信されたか否かを判断する（ステップＳ１６０）。ここで、１スキャン実行完了応答をシミュレータ２００から受信したと判断した場合には（ステップＳ１６０肯定）、１スキャン実行周期リストの対象シミュレータの累積実行時間の値に実行周期の値（時間）を加算する（ステップＳ１７０）。
【００２８】
そして、シミュレータ管理部１００の制御部１０５は、シミュレーション時計の値が累積実行時間の値以上であるか否かを判断する（ステップＳ１８０）。シミュレーション時計の値が累積実行時間の値以上であると判断した場合には（ステップＳ１８０肯定）、制御部１０５は、つぎに要求する１スキャン実行要求があるか否かを判断する（ステップＳ１９０）。つぎに要求する１スキャン実行要求がないと判断した場合は（ステップＳ１９０否定）。一連のシミュレーション処理を終了する。また、つぎに要求する１スキャン実行要求があると判断した場合は（ステップＳ１９０肯定）、対象シミュレータに１スキャン実行要求を送信し（ステップＳ２００）、ステップＳ１３０に戻る。
【００２９】
ステップＳ１４０に戻って、ブレーク状態のシミュレータが存在すると判断した場合には（ステップＳ１４０肯定）、シミュレータ管理部１００の制御部１０５は、ブレーク状態のシミュレータ２００から１スキャン実行完了応答が受信されたか否かを判断する（ステップＳ２１０）。ブレーク状態のシミュレータ２００から１スキャン実行完了応答が受信されていないと判断した場合には（ステップＳ２１０否定）、ステップＳ１３０に戻る。ここで、ブレーク状態のシミュレータが存在し、そのシミュレータから１スキャン実行完了応答が無い場合、シミュレーション時計の更新は行われず、ブレーク状態が解除されてブレーク状態のシミュレータから１スキャン実行完了応答があるまでシミュレーションシステム全体が停止した状態となる。
【００３０】
また、ブレーク状態のシミュレータ２００から１スキャン実行完了応答が受信されたと判断した場合には（ステップＳ２１０肯定）、シミュレータ管理部１００の制御部１０５は、シミュレーション時計とブレーク状態であったシミュレータ２００の累積実行時間とにブレーク状態であったシミュレータ２００の実行周期の値（時間）を加算する（ステップＳ２２０）。そして、シミュレータ管理部１００の制御部１０５は、シミュレーション時計の値が累積実行時間よりも大きいシミュレータが存在するか否かを判断する（ステップＳ２３０）。
【００３１】
シミュレーション時計の値が累積実行時間よりも大きいシミュレータが存在すると判断した場合には（ステップＳ２３０肯定、後述する図３の場合に対応）、シミュレータ管理部１００の制御部１０５は、シミュレーション処理と累積実行時間との差が最大となるシミュレータに対して１スキャン実行要求を送信する（ステップＳ２４０）。そして、制御部１０５は、新たに１スキャン実行要求を出したシミュレータ２００から１スキャン実行完了応答が受信されたか否かを判断する（ステップＳ２５０）。
【００３２】
ここで、新たに１スキャン実行要求を出したシミュレータ２００から１スキャン実行完了応答が受信されていないと判断した場合には（ステップＳ２５０否定）、１スキャン実行完了応答を受信するまでステップＳ２５０を繰り返す。一方、新たに１スキャン実行要求を出したシミュレータ２００から１スキャン実行完了応答が受信されたと判断した場合には（ステップＳ２５０肯定）、そのシミュレータはブレーク後ユーザのステップ実行の操作等の動作再開指示に応じて動作を再開して１スキャン実行が完了したということなので、このシミュレータ２００の累積実行時間に該シミュレータ２００の実行周期の値（時間）を加算する（ステップＳ２６０）。
【００３３】
ステップＳ２３０に戻って、シミュレーション時計の値が累積実行時間よりも大きいシミュレータが存在しないと判断した場合は（ステップＳ２３０否定、後述する図４の場合に対応）、ステップＳ１６０に進む。
【００３４】
上述した処理について、たとえば、図３および図４を例に説明する。図３および図４は、本実施の形態にかかるシミュレーションシステムの動作を説明するための図である。図３の例では、シミュレータＡ２００Ａが２周期目（Ａ−２周期目）のシミュレーション処理を実行中であり、シミュレータＢ２００Ｂが３周期目（Ｂ−３周期目）のシミュレーション処理を完了した後のＰ１の時点でブレーク条件が成立してブレーク状態となったとする。
【００３５】
この場合、ブレーク状態のシミュレータが存在し、そのシミュレータから１スキャン実行完了応答が無い場合は、シミュレーション時計の更新は行われず、ブレーク状態が解除されてブレーク状態のシミュレータから１スキャン実行完了応答があるまでシミュレーションシステム全体が停止した状態となる。したがって、シミュレータＢ２００Ｂがつぎの周期目のシミュレーション処理を実行することはない。
【００３６】
シミュレータＡ２００Ａはユーザのステップ実行の操作等の動作再開指示に応じて動作を再開してブレーク状態を解除されると、Ｐ２の時点で１スキャン実行完了応答（「ＥＮＤ処理」）を終了する。
【００３７】
ブレーク状態であったシミュレータＡ２００Ａから１スキャン実行完了応答が受信されると、シミュレータ管理部１００の制御部１０５は、シミュレーション時計とブレーク状態であったシミュレータ２００の累積実行時間とにブレーク状態であったシミュレータＡ２００Ａの実行周期の値（時間）（図３の例では２００ｍｓ）を加算する。ここで、シミュレータ管理部１００の制御部１０５は、シミュレーション時計の値が累積実行時間よりも大きいシミュレータが存在するか否かを判断する。
【００３８】
この場合はシミュレータＢ２００Ｂが該当するため、制御部１０５はシミュレータＢ２００Ｂに対して１スキャン実行要求を送信する。また、制御部１０５はシミュレータＡ２００Ａに対してはこの時点では１スキャン実行要求を出さない。シミュレータＢ２００Ｂは、この１スキャン実行要求に従って４周期目（Ｂ−４周期目）のシミュレーション処理をＰ３の時点で開始し、Ｐ４の時点で１スキャン実行完了応答（「ＥＮＤ処理」）を終了する。
【００３９】
制御部１０５は、シミュレータＢ２００Ｂから１スキャン実行完了応答を受信すると、シミュレータＢ２００Ｂの累積実行時間に該シミュレータＢ２００Ｂの実行周期の値（時間）を加算して、再びシミュレーション時計の値が累積実行時間よりも大きいシミュレータが存在するか否かを判断する。
【００４０】
このような処理を行うことにより、シミュレータＡ２００Ａの（Ａ−２周期目）と、シミュレータＢ２００Ｂの４周期目（Ｂ−４周期目）と、の「ＥＮＤ処理」の実行順番が狂わないようにシミュレーション処理が制御される。
【００４１】
図４の例では、シミュレータＡ２００Ａが２周期目（Ａ−２周期目）のシミュレーション処理を実行中であり、シミュレータＢ２００Ｂが３周期目（Ｂ−３周期目）のシミュレーション処理を完了した後のＰ１の時点でブレーク条件が成立してブレーク状態となったとする。
【００４２】
この場合、ブレーク状態のシミュレータが存在し、そのシミュレータから１スキャン実行完了応答が無い場合は、シミュレーション時計の更新は行われず、ブレーク状態が解除されてブレーク状態のシミュレータから１スキャン実行完了応答があるまでシミュレーションシステム全体が停止した状態となる。シミュレータＢ２００Ｂがつぎの周期目のシミュレーション処理を実行することはない。
【００４３】
一方、シミュレータＡ２００Ａはユーザのステップ実行の操作等の動作再開指示に応じて動作を再開してブレーク状態を解除されると、Ｐ２の時点で１スキャン実行完了応答（「ＥＮＤ処理」）を終了する。ブレーク状態であったシミュレータＡ２００Ａから１スキャン実行完了応答が受信されると、シミュレータ管理部１００の制御部１０５は、シミュレーション時計とブレーク状態であったシミュレータ２００の累積実行時間とにブレーク状態であったシミュレータＡ２００Ａの実行周期の値（時間）を加算する。ここで、シミュレータ管理部１００の制御部１０５は、シミュレータＡ２００Ａから１スキャン実行完了応答を受信すると、シミュレーション時計の値が累積実行時間よりも大きいシミュレータが存在するか否かを判断する。
【００４４】
この場合は該当するシミュレータが存在しないため、さらに１スキャン実行要求を掛ける必要がある時点まで（図４の例では４００ｍｓまで）、シミュレーション時計を進める。そして、シミュレータ管理部１００の制御部１０５は、シミュレータＡ２００Ａに対して３周期目（Ａ−３周期目）の１スキャン実行要求を送信し、シミュレータＢ２００Ｂに対して５周期目（Ｂ−５周期目）の１スキャン実行要求を送信する。シミュレータＡ２００ＡおよびシミュレータＢ２００Ｂは、新たな１スキャン実行要求に従ってシミュレーション処理を実行する。
【００４５】
このような処理を行うことにより、シミュレータＡ２００Ａの（Ａ−２周期目）と、シミュレータＢ２００Ｂの４周期目（Ｂ−４周期目）と、の「ＥＮＤ処理」の実行順番が狂わないようにシミュレーション処理が制御される。
【００４６】
ここで、本実施の形態にかかるシミュレーションシステムにおいてはシミュレータ管理部１００の制御部１０５が、各シミュレータのプログラム実行を制御するが、制御部１０５は、制御の対象となるシミュレータに対して、スキャンのタイミング毎に制御を行う。すなわち、このシミュレーションシステムにおいては、シミュレーション処理における命令（ステップ）毎に指示を与えてシミュレータを制御するのではなく、シーケンスプログラムの１スキャン分の実行を要求する１スキャン実行要求をシミュレータに与えることにより、シミュレーション処理における１スキャン毎に指示を与えてシミュレータを制御する。
【００４７】
このため、このシミュレーションシステムでは、シミュレーション処理を１スキャン毎に管理すれば良く、各シミュレータにおけるプログラムの実行時間を管理する必要がない。したがって、各シミュレータにおけるプログラムの実行時間を詳細に管理するための管理テーブル等が不要である。
【００４８】
また、実際にプログラムが実行される実機は、改良等が繰り返され性能が変化していく。ここで、シミュレーション処理における命令（ステップ）毎に指示を与えてシミュレータを制御する場合には、実際にプログラムが実行される実機の性能が変更される度に、上記の管理テーブルも見直しを行って変更する必要がある。また、シミュレーションの前提となる、実機の性能に関連した各種条件の設定を見直し、設定し直す必要が生じる。
【００４９】
しかしながら、このシミュレーションシステムでは、シミュレーション処理を１スキャン毎に管理すれば良く、実機の性能が変更される度に、管理テーブルや実機の性能に関連した各種条件の見直しを行って変更、設定する等の手間が無く、種々の実機に容易に対応してシミュレーションを容易に行うことができる。
【００５０】
また、このシミュレーションシステムでは、シミュレータ管理部１００が、適当なタイミングで各シミュレータに１スキャン実行要求を発行することにより、各シミュレータの「ＥＮＤ処理」の実行順番が狂わないことを保証しており、あるシミュレータがブレーク状態になった場合、シミュレーションシステム全体が停止し、ステップ実行等の動作再開指示に応じて、適切にシミュレーション時計が進行する為、シミュレータ同士が連携して動作するようなシーケンスプログラムのデバッグが容易に実現可能となる。
【産業上の利用可能性】
【００５１】
以上のように、本発明にかかるシミュレーションシステムは、シミュレータ同士が連携して動作するようなシーケンスプログラムのシミュレーションに有用である。
【図面の簡単な説明】
【００５２】
【図１−１】本発明の実施の形態にかかるシミュレーションシステムの構成を示す図である。
【図１−２】本発明の実施の形態にかかるシミュレータ管理部の構成を示すブロック図である。
【図１−３】本発明の実施の形態にかかる１スキャン実行周期リストの一例を示す図である。
【図１−４】本発明の実施の形態にかかるシミュレータの構成を示すブロック図である。
【図２−１】本発明の実施の形態にかかるシミュレーションシステムのシミュレータ管理部における動作を説明するためのフローチャートである。
【図２−２】本発明の実施の形態にかかるシミュレーションシステムのシミュレータ管理部における動作を説明するためのフローチャートである。
【図３】本発明の実施の形態にかかるシミュレーションシステムの動作を説明するための図である。
【図４】本発明の実施の形態にかかるシミュレーションシステムの動作を説明するための図である。
【符号の説明】
【００５３】
１００  シミュレータ管理部
１０１  シミュレーション時計
１０３  スキャン実行周期リスト格納部
１０５  制御部
２００Ａ  シミュレータ
２００Ｂ  シミュレータ
２０１  データメモリ
２０３  シーケンスプログラム実行部
２０５  通信処理機能部
２１１  シーケンスプログラムメモリ部
２１３  デバイスメモリ部
２１５  ブレーク条件リスト
【図１−１】
2010191480.tif 000003
【図１−２】
2010191480.tif 000004
【図１−３】
2010191480.tif 000005
【図１−４】
2010191480.tif 000006
【図２−１】
2010191480.tif 000007
【図２−２】
2010191480.tif 000008
【図３】
2010191480.tif 000009
【図４】
2010191480.tif 000010