(57)【要約】【課題】シミュレーションのための特別な手段を必要とせずに、所望のＩ／Ｏ処理が行われなかった場合にすべての制御プログラムを一斉に強制停止することのできるコントローラを得る。【解決手段】制御プログラム２０によるシミュレーションを実行中、Ｉ／Ｏ処理が所望の動作を行っているかを判定するためのシナリオプログラム８０を用いる。シナリオプログラム８０が、制御プログラム２０におけるシミュレーション実行時のＩ／Ｏ処理が所望の動作を行っていないと判定した場合、連係シミュレーション制御部１１で自コントローラと他コントローラの制御プログラム２０の実行を停止させる。【選択図】図１
2014137781.tif 000002
【特許請求の範囲】
【請求項１】
マルチコントローラ構成で、Ｉ／Ｏ処理によって周辺装置の動作を制御する制御プログラムのシミュレーションを実施するコントローラであって、
前記周辺装置に対する制御信号のオン・オフまたは当該周辺装置の制御データの読み書きのうちの少なくともいずれかをＩ／Ｏ処理として実行するための前記制御プログラムを実行する制御プログラム実行部と、
前記制御プログラム実行部によるＩ／Ｏ処理を中継すると共に、前記Ｉ／Ｏ処理がシミュレーション対象のＩ／Ｏ処理であった場合、当該Ｉ／Ｏ処理を行うデバイスアクセス制御部と、
前記制御プログラムのＩ／Ｏ処理のシミュレーション実行と対応する応答処理をシミュレーション実行し、前記制御プログラムによるＩ／Ｏ処理が所望の動作を行っているかを判定し、所望の動作を行っていない場合は、当該制御プログラムの実行停止要求を行うためのシナリオプログラムを実行するシナリオプログラム実行部と、
前記シナリオプログラム実行部から前記制御プログラムの実行停止要求を受けた場合は、自コントローラでシミュレーション実行中の前記制御プログラムを強制停止させると同時に、他コントローラに対して制御プログラムのリモート停止要求を通知し、かつ、当該リモート停止要求の通知を受けた場合は、自コントローラでシミュレーション実行中の前記制御プログラムのＩ／Ｏ処理を強制停止させる連係シミュレーション制御部とを備えたコントローラ。
【請求項２】
周辺装置に関するＩ／Ｏ処理のデータを格納する実デバイスメモリと、
シミュレーション時のＩ／Ｏ処理のデータを格納する模擬デバイスメモリイメージと、
制御プログラム実行部とデバイスアクセス制御部間のインタフェースであるデバイスアクセスＩ／Ｆと、
前記デバイスアクセスＩ／Ｆと他のコントローラ間のインタフェースである外部接続バスＩ／Ｆとを備え、
前記デバイスアクセス制御部は、前記制御プログラム実行部のＩ／Ｏ処理を中継して、前記実デバイスメモリ及び前記模擬デバイスメモリイメージにアクセスすると共に、
前記制御プログラム実行部及び前記デバイスアクセス制御部は、前記デバイスアクセスＩ／Ｆと前記外部接続バスＩ／Ｆとを介して他のコントローラのＩ／Ｏ処理を実行することを特徴とする請求項１記載のコントローラ。
【請求項３】
実デバイスメモリ及び模擬デバイスメモリイメージの値を参照して、シナリオプログラム実行部の開始条件を判定して、判定結果が開始であった場合は前記シナリオプログラム実行部におけるシナリオプログラムの実行を開始させる入出力イベント制御部と、
デバイスアクセス制御部と外部接続バスＩ／Ｆとに接続され、前記シナリオプログラム実行部及び前記入出力イベント制御部が、前記実デバイスメモリからの読出要求または前記模擬デバイスメモリイメージの読み書き要求を中継するリモートデバイスＩ／Ｆとを備え、
前記シナリオプログラム実行部は、前記リモートデバイスＩ／Ｆを介して自コントローラの前記模擬デバイスメモリイメージの読み書き処理を実行すると共に、前記模擬デバイスメモリイメージの書込み処理を実行して前記制御プログラムのＩ／Ｏ処理と対応する応答をシミュレーションし、かつ、前記模擬デバイスメモリイメージの読出し処理を実行して前記制御プログラムのＩ／Ｏ処理が所望の動作を行っているかを検証することを特徴とする請求項２記載のコントローラ。
【請求項４】
シナリオプログラムの実行開始条件を、
（ア）任意の制御信号のオフからオンへの遷移またはオンからオフへの遷移、
（イ）任意の周辺装置の制御データの値と期待値との論理演算結果、
（ウ）前記（ア）と前記（イ）との論理積または論理和、
のいずれかとして定義することを特徴とする請求項３記載のコントローラ。
【請求項５】
シナリオプログラムの実行開始条件を保持するシナリオプログラム実行開始条件保持部と、
コントローラの外部から前記シナリオプログラム実行開始条件保持部に対して前記実行開始条件を設定するためのシナリオプログラム実行開始条件設定Ｉ／Ｆとを備えたことを特徴とする請求項４記載のコントローラ。
【請求項６】
シミュレーション対象のＩ／Ｏ処理のデータを模擬デバイスメモリイメージに割り付けるための模擬デバイスパラメータを保持する模擬デバイスパラメータ保持部と、
コントローラの外部から前記模擬デバイスパラメータ保持部に対して前記模擬デバイスパラメータを設定するための模擬デバイスパラメータ設定Ｉ／Ｆとを備えたことを特徴とする請求項２から請求項５のうちのいずれか１項記載のコントローラ。
【請求項７】
入出力イベント制御部は、制御プログラムのＩ／Ｏ処理が実行されたことをデバイスアクセス制御部から通知を受けた時点で、自コントローラのリモートデバイスアクセスＩ／Ｆと前記デバイスアクセス制御部とを介した自コントローラの実デバイスメモリと模擬デバイスメモリイメージの読出し処理、及び、自コントローラの前記リモートデバイスアクセスＩ／Ｆと外部接続バスＩ／Ｆと他コントローラの前記リモートデバイスアクセスＩ／Ｆと他コントローラの前記デバイスアクセス制御部とを介した他コントローラの前記実デバイスメモリと前記模擬デバイスメモリイメージの読出し処理を実行し、シナリオプログラム実行開始条件の判定処理を行うことを特徴とする請求項３から請求項５のうちのいずれか１項記載のコントローラ。
【請求項８】
入出力イベント制御部によるシナリオプログラム実行開始条件の判定処理を任意の周期で反復実行することを特徴とする請求項７記載のコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機械装置を構成する周辺装置を複数のコントローラで制御するマルチコントローラシステムにおいて、制御プログラムをコントローラ上でシミュレーション実行して入出力処理を検証するコントローラに関するものである。
【背景技術】
【０００２】
液晶製造装置や半導体製造装置といった大型の機械装置は、ワーク配給装置やワーク搬送装置などの種々の周辺装置と、周辺装置の動作を制御信号や指令値の入出力（Ｉ／Ｏ）処理によって制御するコントローラとを組み合わせて構成される。
【０００３】
Ｉ／Ｏ処理は、コントローラ上で実行する制御プログラムによって行われる。制御プログラムは、Ｉ／Ｏ処理を行うことによって制御信号のオン・オフ状態を確認し、周辺装置が動作停止中か動作中かといった周辺装置の状態を特定する。さらに、周辺装置の状態に基づいて、機械装置の工程の遷移を制御するためのＩ／Ｏ処理を行う。
【０００４】
大型の機械装置の場合、多数の周辺装置を備えているため、複数のコントローラを用いたマルチコントローラシステムとして機械装置を構成する。マルチコントローラシステムにおいて、複数のコントローラはそれぞれＩ／Ｏ処理を実行し、周辺装置の動作を制御することによって、機械装置全体の工程の遷移を制御する。
【０００５】
制御プログラムのＩ／Ｏ処理に不具合があると、周辺装置の誤動作やワークの破損を引き起こす原因となりうる。このため、制御プログラムのＩ／Ｏ処理に不具合が含まれていないことをＩ／Ｏ処理の検証によって確認し、不具合が発見された場合は制御プログラムを修正して周辺装置の誤動作やワークの破損が発生しないようにする。
特に、マルチコントローラシステムにおいて、複数のコントローラを跨いで次工程への遷移が行われる場合、制御プログラムは自コントローラの制御信号のオン・オフ状態を確認すると同時に、次工程への遷移に関係する他コントローラの制御信号のオン・オフ状態を確認し、次工程への遷移が可能な状態であるか否かを判定する必要がある。次工程への遷移が可能な状態であれば、周辺装置を動作させて次工程に遷移するように制御プログラムのＩ／Ｏ処理を実行する。
【０００６】
このように、複数のコントローラを跨いで次工程への遷移が行われる場合は、自コントローラと他コントローラの制御信号のオン・オフ状態を併せて確認し、制御プログラムが所望のＩ／Ｏ処理を行うことを検証する必要がある。
【０００７】
このような前提において、従来のＩ／Ｏ処理の検証手段の一例として、コントローラに付属されるコントローラの調整用ユーティリティプログラムをパソコンにインストールし、ユーティリティプログラムを用いて手動操作でコントローラのＩ／Ｏを強制的に書き換えて制御プログラムのＩ／Ｏ処理を検証する方法があった。
また、別の手段として、ＪＴＡＧエミュレータのようなデバッグ用機器を用いて制御プログラムをデバッグ実行し、制御プログラムをブレークで強制停止させ、ステップ実行・変数ウオッチ・変数の値変更などを行って制御プログラムのＩ／Ｏ処理を検証する方法があった。
【０００８】
さらに、別の手段として、例えば特許文献１に示されているように、周辺装置に対するＩ／Ｏ処理をシミュレーション実行する検証方法も知られている。特許文献１では、ハードウェア記述言語に変換された制御プログラムと、ハードウェア記述言語で記述されたプログラマブルコントローラのモデルと、ハードウェア記述言語で記述された制御対象の装置のモデルと、ハードウェア記述言語で記述されたテスト用プログラムと、を用いて、制御プログラムが所望のＩ／Ｏ処理を行うことを検証する方法が開示されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平８−５４９０７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
マルチコントローラシステムにおける制御プログラムのＩ／Ｏ処理の検証で不具合を発見した場合、すべてのコントローラの制御プログラムを一斉に強制停止させることが望ましい。この理由は、不具合が発生した自コントローラの制御プログラムのみを強制停止させ、他コントローラの制御プログラムの実行を継続させると、不具合発生時から他コントローラの制御信号のオン・オフ状態が変化してしまう可能性があるためである。特に、上述したような複数のコントローラを跨いで次工程への遷移が行われる場合は、不具合発生時の自コントローラと他コントローラの制御信号のオン・オフ状態を併せて確認し、不具合の原因を調査する。これを実現するために、すべてのコントローラの制御プログラムを一斉に強制停止させる必要がある。
【００１１】
このような前提において、上記従来のようなユーティリティプログラムを用いて手動操作でコントローラのＩ／Ｏを強制的に書き換えて制御プログラムのＩ／Ｏ処理を検証する方法では、例えば、ワークが所定の位置に置かれたことを検出する「ワーク検出センサ」の入力信号のオン・オフ状態を、ユーティリティプログラムを用いて手動操作で強制的に書き換える。この操作によって、機械装置にワークを投入することなく、工程間を流れるワークの動きをシミュレーションできる。一方、制御プログラムは、シミュレーションによって仮想的につくりだされたワークの動きに従ってＩ／Ｏ処理を実行し、機械装置全体の工程の遷移を制御する。
【００１２】
一般的に、ユーティリティプログラムは、コントローラとユーティリティプログラムとが１対１に通信するように実装されていることが多い。このため、マルチコントローラシステムにおいて、ユーティリティプログラムを用いた制御プログラムのＩ／Ｏ処理の検証方法では、コントローラと同数の複数のユーティリティプログラムを実行する必要がある。
さらには、制御プログラムのＩ／Ｏ処理に不具合が発見された場合は、直ちに制御プログラムを強制停止させて不具合の原因を調査し、不具合を解消する必要がある。
しかし、複数のコントローラで実行中の制御プログラムを強制停止させるためには、コントローラと対応する各々のユーティリティプログラムを操作して個別に制御プログラムを停止させることになる。このため、複数のユーティリティプログラムを同時に操作して複数のコントローラで実行中の制御プログラムを一斉に強制停止させることが困難である、という課題があった。
【００１３】
また、ＪＴＡＧエミュレータのようなデバッグ用機器を用いて制御プログラムをデバッグ実行し、制御プログラムのＩ／Ｏ処理を検証する方法では、ブレーク停止・ステップ実行・変数ウオッチ・変数の値変更などのデバッグ操作を制御するための専用線を、デバッグ用機器と制御プログラムを実行するプロセッサとの間で接続する。この状態で、例えば、検証対象のＩ／Ｏ処理の直前で制御プログラムをブレークで強制停止させ、制御プログラムをステップ実行しながら制御信号と対応する変数をウオッチすることで、制御プログラムが所望のＩ／Ｏ処理を行うことを検証する。あるいは、上述したようなワーク検出センサの入力信号と対応する変数の値を変更し、ワーク検出センサの入力信号のシミュレーションを行うことで、制御プログラムが所望のＩ／Ｏ処理を行うこと検証する。制御プログラムのＩ／Ｏ処理に不具合が発見された場合は、デバッグ用機器を用いて複数のコントローラで実行中の制御プログラムを一斉に強制停止させて不具合の原因を調査し、不具合を解消する。
一般的に、コントローラは、機械装置の制御盤内に組み込まれていることが多い。また、プロセッサはコントローラの筐体内部に組み込まれていることが多い。すなわち、デバッグ用機器とプロセッサとの間を前述した専用線で接続するためには、一端をプロセッサと接続した専用線をコントローラの筐体外部に引き出して、さらに、機械装置の制御盤の外部に専用線を引き出してデバッグ用機器と接続する必要がある。このため、機械装置の構造（例えば制御盤の取付け位置）によって、この専用線を外部に引き出すことが困難な場合がある、という課題があった。
【００１４】
さらには、マルチコントローラシステムにおいて、１台のデバッグ用機器で複数のコントローラの制御プログラムに対してデバッグ操作を行うためには、デバッグ用機器と各々のコントローラのプロセッサとを専用線で接続する必要があり、このような接続手段を予め設けておく必要がある、という課題があった。
【００１５】
また、特許文献１では、単一のコントローラの制御プログラムが所望のＩ／Ｏ処理を行うことを検証するためのコントローラモデルによるシミュレーション手段、シミュレーション実行中に制御プログラムのＩ／Ｏ処理に不具合が発見された場合に制御プログラムを強制停止する手段、および単一のコントローラモデルによるシミュレーションを複数のコントローラモデルに拡張して実施する手段が開示されている。
しかしながら、特許文献１に記載の複数のコントローラモデルによるシミュレーションにおいて、制御プログラムのＩ／Ｏ処理に不具合が発見された場合に、複数のコントローラモデルで実行中のすべての制御プログラムを一斉に強制停止する手段を有していない。このため、上述したような複数のコントローラを跨いで次工程への遷移が行われる場合は、不具合発生時の自コントローラと他コントローラの制御信号のオン・オフ状態を併せて確認し、不具合の原因を調査することが困難である、という課題があった。
【００１６】
この発明は、上記のような問題点を解決するためになされたものであり、制御プログラムのシミュレーション実行時、制御プログラムのデバッグ操作用の専用線の接続や機械装置の外部への引き出しといった特別な手段を必要とせずに、所望のＩ／Ｏ処理が行われなかったことを検出したことを契機として複数のコントローラで実行中のすべての制御プログラムを一斉に強制停止することのできるコントローラを得ることを目的とする。
【課題を解決するための手段】
【００１７】
この発明に係るコントローラは、マルチコントローラ構成で、Ｉ／Ｏ処理によって周辺装置の動作を制御する制御プログラムのシミュレーションを実施するコントローラであって、周辺装置に対する制御信号のオン・オフまたは周辺装置の制御データの読み書きのうちの少なくともいずれかをＩ／Ｏ処理として実行するための制御プログラムを実行する制御プログラム実行部と、制御プログラム実行部によるＩ／Ｏ処理を中継すると共に、Ｉ／Ｏ処理がシミュレーション対象のＩ／Ｏ処理であった場合、Ｉ／Ｏ処理を行うデバイスアクセス制御部と、制御プログラムのＩ／Ｏ処理のシミュレーション実行と対応する応答処理をシミュレーション実行し、制御プログラムによるＩ／Ｏ処理が所望の動作を行っているかを判定し、所望の動作を行っていない場合は、制御プログラムの実行停止要求を行うためのシナリオプログラムを実行するシナリオプログラム実行部と、シナリオプログラム実行部から制御プログラムの実行停止要求を受けた場合は、自コントローラでシミュレーション実行中の制御プログラムを強制停止させると同時に、他コントローラに対して制御プログラムのリモート停止要求を通知し、かつ、リモート停止要求の通知を受けた場合は、自コントローラでシミュレーション実行中の制御プログラムのＩ／Ｏ処理を強制停止させる連係シミュレーション制御部とを備えたものである。
【発明の効果】
【００１８】
この発明のコントローラは、制御プログラムによるシミュレーションを実行中、Ｉ／Ｏ処理が所望の動作を行っているかを判定するためのシナリオプログラムを用い、Ｉ／Ｏ処理が所望の動作を行っていないと判定した場合は、連係シミュレーション制御部で自コントローラと他コントローラの制御プログラムの実行を停止させるようにしたので、制御プログラムのシミュレーション実行時、制御プログラムのデバッグ操作用の専用線の接続や機械装置の外部への引き出しといった特別な手段を必要とせずに、所望のＩ／Ｏ処理が行われなかったことを検出したことを契機として複数のコントローラで実行中のすべての制御プログラムを一斉に強制停止することができる。
【図面の簡単な説明】
【００１９】
【図１】この発明の実施の形態１によるコントローラを備えた連係シミュレーションシステムを示す構成図である。
【図２】この発明の実施の形態１によるコントローラの制御プログラムＩ／Ｏ処理を説明するためのフローチャートである。
【図３】この発明の実施の形態１によるコントローラのシナリオプログラム実行開始条件の判定処理を説明するためのフローチャートである。
【図４】この発明の実施の形態１によるコントローラの制御プログラムとシナリオプログラムのＩ／Ｏ処理の具体例を示すタイミングチャートである。
【図５】この発明の実施の形態１によるコントローラの制御プログラムに不具合が含まれる場合の具体例を示すタイミングチャートである。
【図６】この発明の実施の形態２によるコントローラを備えた連係シミュレーションシステムを示す構成図である。
【図７】この発明の実施の形態２によるコントローラの模擬デバイスパラメータ保持部のデータ例を示す説明図である。
【図８】この発明の実施の形態２によるコントローラのシナリオプログラム実行開始条件保持部のデータ例を示す説明図である。
【発明を実施するための形態】
【００２０】
実施の形態１．
図１は、この発明の実施の形態１によるコントローラを複数備えた連係シミュレーションシステムを示す構成図である。
図１に示す連係シミュレーションシステムは、複数個のコントローラ１が外部接続バス１００によって相互に接続されることで構成されている。それぞれのコントローラ１は、制御プログラム実行部２、デバイスアクセスＩ／Ｆ３、外部接続バスＩ／Ｆ４、デバイスアクセス制御部５、実デバイスメモリ６、模擬デバイスメモリイメージ７、シナリオプログラム実行部８、入出力イベント制御部９、リモートデバイスアクセスＩ／Ｆ１０、連係シミュレーション制御部１１を備えている。
【００２１】
制御プログラム実行部２は、コントローラ１と周辺装置（図示せず）との間のＩ／Ｏ処理を制御する制御プログラム２０をＣＰＵで実行するプログラム実行部である。制御プログラム２０は、プログラミング言語（例えば、Ｃ言語）を用いて作成される。また、制御プログラム２０は、ユーザが所望の動作を得るために、制御プログラム２０を１つ以上作成してコントローラ１で実行するようにしてもよい。デバイスアクセスＩ／Ｆ３は、Ｉ／Ｏ処理を実行するためのインタフェースを制御プログラム２０に対して提供するためのもので、制御プログラム２０を作成するために用いられるプログラミング言語から利用可能な方法（例えば、Ｃ言語プログラムの関数）を用いればよく、本発明ではその実施形態を問わない。外部接続バスＩ／Ｆ４は、コントローラ１を外部接続バス１００に接続するためのインタフェースである。
【００２２】
デバイスアクセス制御部５は、制御プログラム実行部２によるデバイスアクセスＩ／Ｆ３を介したＩ／Ｏ処理要求及びシナリオプログラム実行部８によるリモートデバイスアクセスＩ／Ｆ１０を介したＩ／Ｏ処理要求を受け付け、当該Ｉ／Ｏ処理要求がシミュレーション対象のＩ／Ｏであるかを判定し、当該Ｉ／Ｏ処理要求がシミュレーション対象のＩ／Ｏであった場合は模擬デバイスメモリイメージ７に対してＩ／Ｏ処理を実行し、一方、当該Ｉ／Ｏ処理要求がシミュレーション対象のＩ／Ｏではなかった場合は実デバイスメモリ６に対してＩ／Ｏ処理を実行する制御部である。
【００２３】
実デバイスメモリ６は、制御プログラム実行部２やシナリオプログラム実行部８からメモリ読み書き処理と同じアクセス手段でＩ／Ｏ処理を実行できるように、メモリアドレス空間の一部として構成されるメモリ領域である。さらに、コントローラ１と周辺装置との間で入出力する制御信号の１つが実デバイスメモリ６の特定の１ビットと対応させるようにメモリアドレス割当てを行い、同様にしてコントローラ１と周辺装置との間で入出力する制御データの１つが実デバイスメモリ６の固定長のデータ領域（例えば、８ビット、または１６ビット、または３２ビット、など）と対応させるようにメモリアドレス割当てを行う。つまり、制御信号は、実デバイスメモリ６に含まれるメモリアドレスと、当該メモリアドレスで指定されるメモリのビット番号との組合せによって一意に特定され、同様にして制御データは、実デバイスメモリ６に含まれるメモリアドレスを開始アドレスとする固定長のデータ領域によって一意に特定される。
【００２４】
模擬デバイスメモリイメージ７は、制御プログラム２０のＩ／Ｏ処理をシミュレーションで動作検証するために、記憶装置上に構成されるシミュレーション専用のメモリ領域である。また、模擬デバイスメモリイメージ７は、メモリアドレス空間の一部として構成される方法（例えば、ＤＲＡＭなどの主記憶装置）を用いればよく、本発明ではその実施形態を問わない。さらに、模擬デバイスメモリイメージ７は、実デバイスメモリ６と同様のメモリアドレス割当てを行う。つまり、シミュレーション対象の制御信号は、模擬デバイスメモリイメージ７に含まれるメモリアドレスと、当該メモリアドレスで指定されるメモリのビット番号との組合せによって一意に特定され、同様にして制御データは、模擬デバイスメモリイメージ７に含まれるメモリアドレスを開始アドレスとする固定長のデータ領域によって一意に特定される。
【００２５】
シナリオプログラム実行部８は、制御プログラム２０のＩ／Ｏ処理のシミュレーション実行と対応する応答処理をシミュレーション実行するためのシナリオプログラム８０をＣＰＵで実行するプログラム実行部である。シナリオプログラム８０は、制御プログラム２０と同様にプログラミング言語を用いて作成される。また、シナリオプログラム８０は、ユーザが所望のシミュレーション（制御プログラム２０のＩ／Ｏ処理の動作検証）を実施するために、シナリオプログラム８０を１つ以上作成してコントローラ１で実行してもよい。
【００２６】
入出力イベント制御部９は、シナリオプログラム実行部８による制御プログラム実行部２のＩ／Ｏ処理のシミュレーション実行と対応する応答処理をシミュレーション実行するために、シナリオプログラム８０の実行開始条件が成立するか否かを判定するための制御部である。リモートデバイスアクセスＩ／Ｆ１０は、Ｉ／Ｏ処理を実行するためのインタフェースをシナリオプログラム実行部８に対して提供するためのもので、シナリオプログラム８０を作成するために用いられるプログラミング言語から利用可能な方法を用いればよく、本発明ではその実施形態を問わない。
【００２７】
連係シミュレーション制御部１１は、シナリオプログラム実行部８からの制御プログラム２０の実行停止要求を受けて自コントローラでシミュレーション実行中の制御プログラム２０を強制停止させると同時に、外部接続バスＩ／Ｆ４で相互接続された他コントローラの連係シミュレーション制御部１１に対して制御プログラムのリモート停止要求を通知し、一方、リモート停止要求の通知を他のコントローラから受けた場合は、自コントローラでシミュレーション実行中の制御プログラム２０のＩ／Ｏ処理を強制停止させる制御部である。
【００２８】
なお、デバイスアクセス制御部５、入出力イベント制御部９、連係シミュレーション制御部１１は、それぞれに対応するソフトウェアとこれを実行するためのＣＰＵやメモリ等のハードウェアから実現されている。
【００２９】
次に、実施の形態１のコントローラの動作について説明する。
図２は、制御プログラム２０のＩ／Ｏ処理を説明するためのフローチャートである。
制御プログラム実行部２による制御プログラム２０の実行中にＩ／Ｏ処理要求が発生すると、デバイスアクセスＩ／Ｆ３を介してデバイスアクセス制御部５にＩ／Ｏ処理要求が通知される（ステップＳＴ１）。次に、デバイスアクセス制御部５が、このＩ／Ｏ処理要求がシミュレーション対象のＩ／Ｏであるかを判定し（ステップＳＴ２）、シミュレーション対象のＩ／Ｏであると判定された場合（ステップＳＴ２のＹＥＳの場合）は、デバイスアクセス制御部５が、目的Ｉ／Ｏと対応する模擬デバイスメモリイメージ７のメモリアドレスを取得する（ステップＳＴ３ａ）。一方、ステップＳＴ２において、シミュレーション対象のＩ／Ｏではないと判定された場合（ステップＳＴ２のＮＯの場合）は、デバイスアクセス制御部５が、目的Ｉ／Ｏと対応する実デバイスメモリ６のメモリアドレスを取得する（ステップＳＴ３ｂ）。次に、ステップＳＴ３ａまたはステップＳＴ３ｂで取得したメモリアドレスに対して、デバイスアクセス制御部５は、Ｉ／Ｏ処理を実行する（ステップＳＴ４）。要求されたＩ／Ｏ処理が書込み処理の場合（ステップＳＴ５のＹＥＳの場合）は、書込み処理を実行し（ステップＳＴ６ａ）、要求されたＩ／Ｏ処理が読出し処理の場合（ステップＳＴ５のＮＯの場合）は、読出し処理の実行結果を制御プログラム実行部２に渡す（ステップＳＴ６ｂ）。
【００３０】
図３は、入出力イベント制御部９が実行するシナリオプログラム８０の実行開始条件の判定処理、及び、シナリオプログラム実行部８が実行する制御プログラム２０のＩ／Ｏ処理と対応する応答のシミュレーション処理を説明するためのフローチャートである。
まず、入出力イベント制御部９がリモートデバイスアクセス１／Ｆ１０を介して実デバイスメモリ６と模擬デバイスメモリイメージ７の値を読み出す（ステップＳＴ１１）。次に、ステップＳＴ１１の読出し結果とシナリオプログラム８０の実行開始条件とを比較し、シナリオプログラム８０の実行開始条件が成立しているかを判定する（ステップＳＴ１２）。シナリオプログラム８０の実行開始条件が成立しなかった場合（ステップＳＴ１２のＮＯの場合）は、実行開始条件の判定処理を終了する。
【００３１】
一方、実行開始条件が成立した場合（ステップＳＴ１２のＹＥＳの場合）は、シナリオプログラム実行部８は、入出力イベント制御部９からの判定結果を受けて、実行開始条件が成立したシナリオプログラム８０の実行を開始する（ステップＳＴ１３）。シナリオプログラム実行部８は、制御プログラム２０のＩ／Ｏ処理が所望の動作を行っているかを検査し（ステップＳＴ１４）、所望の動作を行っていると判定された場合（ステップＳＴ１４のＹＥＳの場合）は、シナリオプログラム８０の実行を継続して応答のシミュレーション実行結果を模擬デバイスメモリイメージ７に書き込み（ステップＳＴ１５）、応答のシミュレーション実行が完了した場合（ステップＳＴ１６のＹＥＳの場合）はシナリオプログラム８０の実行を終了し、応答のシミュレーション実行を継続する場合（ステップＳＴ１６のＮＯの場合）はステップＳＴ１４に戻って処理を継続する。一方、制御プログラム２０のＩ／Ｏ処理が所望の動作を行っていないと判定された場合（ステップＳＴ１４のＮＯの場合）は、シナリオプログラム実行部８が連係シミュレーション制御部１１に対して制御プログラム２０の停止要求を通知し（ステップＳＴ１７）、さらにシナリオプログラム８０の実行を停止する（ステップＳＴ１８）。
【００３２】
また、図３に示した処理は、一定の周期で繰返し実行しても、制御プログラム２０によって実行されるＩ／Ｏ処理のうち書込み処理の実行直後（図２のステップＳＴ６ａの直後）に実行してもよい。
【００３３】
次に、この実施の形態１に係るコントローラにより、制御プログラム２０のＩ／Ｏ処理が所望の動作を行っているかをシミュレーションで検証する具体例について説明する。
一般に、大型の機械装置は多数の周辺装置を複数のコントローラで制御されるように構成されているが、ここでは説明の便宜上、機械装置の構成として、外部接続バスで相互接続されている２基のコントローラ（コントローラａとコントローラｂ）、および３つの周辺装置（ワーク配給装置とワーク搬送装置とワーク加工装置）があって、ワーク配給装置とワーク搬送装置がコントローラａに接続され、ワーク加工装置がコントローラｂに接続されているものとする。また、コントローラａでは制御プログラム２０ａがＩ／Ｏ処理を行ってワーク配給装置とワーク搬送装置の動作を制御し、コントローラｂでは制御プログラム２０ｂがＩ／Ｏ処理を行ってワーク加工装置の動作を制御するものとする。この制御プログラム２０ａと２０ｂのＩ／Ｏ処理が所望の動作を行うかをシミュレーションで検証する。
【００３４】
そこで、制御プログラム２０ａのＩ／Ｏ処理と対応するワーク配給装置の応答をシミュレーション実行するシナリオプログラム８０ａ１、制御プログラム２０ａのＩ／Ｏ処理と対応するワーク搬送装置の応答をシミュレーション実行するシナリオプログラム８０ａ２、制御プログラム２０ｂのＩ／Ｏ処理と対応するワーク加工装置の応答をシミュレーション実行するシナリオプログラム８０ｂを作成し、コントローラａと、ワーク配給装置およびワーク搬送装置との間で入出力する制御信号と制御データをシミュレーション対象のＩ／Ｏとしてコントローラａに設定し、コントローラｂと、ワーク加工装置との間で入出力する制御信号と制御データをシミュレーション対象のＩ／Ｏとしてコントローラｂに設定してシミュレーションを開始する。
【００３５】
図４は、制御プログラム２０ａ、２０ｂ、シナリオプログラム８０ａ１、８０ａ２、８０ｂが実行するＩ／Ｏ処理のタイミングチャートである。
図４中の制御信号の出力Ｙ００１０は機械装置全体の始動信号、出力Ｙ００１８はワーク配給装置を駆動するための制御信号、出力Ｙ００１９はワーク搬送装置を駆動するための制御信号、出力Ｙ００３８はワーク加工装置を駆動するための制御信号、制御データＤ２００はワーク加工装置の制御データであり、これらをシミュレーション対象のＩ／Ｏに設定し、制御プログラム２０ａ、２０ｂのＩ／Ｏ処理によって制御信号のオン・オフや制御データの更新を制御する。
【００３６】
また、図４中の制御信号の入力Ｘ０００８はワーク配給装置のワーク検出信号、入力Ｘ０００９はワーク配給完了を示すワーク搬送装置のワーク検出信号、入力Ｘ０００Ａはワーク加工装置に対するワーク投入位置にワークが搬送されたことを示すワーク搬送装置のワーク検出信号、入力Ｘ０００Ｂはワーク加工装置のワーク投入完了信号、入力Ｘ０００Ｆは機械装置全体の運転可能状態を示す信号であり、これらをシミュレーション対象のＩ／Ｏに設定し、シナリオプログラム８０ａ１、８０ａ２、８０ｂのＩ／Ｏ処理によって制御信号のオン・オフを制御する。
【００３７】
さらに、図４のシナリオプログラム８０ａ１の実行開始条件を「出力Ｙ００１０：オン」、８０ａ２の実行開始条件を「入力Ｘ０００８：オン、入力Ｘ０００Ｆ：オン、かつ出力Ｙ００１８：オン」、８０ｂの実行開始条件を「入力Ｘ０００Ａ：オン、かつ入力Ｘ０００Ｆ：オン、かつ出力Ｙ００１９：オフ、かつ出力Ｙ００３８：オン、かつ制御データＤ２００：ゼロより大きい」であるものとする。
【００３８】
以上の状態で、コントローラａで制御プログラム２０ａを、コントローラｂで制御プログラム２０ｂをシミュレーションにて実行開始する。
【００３９】
制御プログラム２０ａは、Ｉ／Ｏ処理を実行して出力Ｙ００１０をオンにするため、Ｙ００１０と対応するコントローラａの模擬デバイスメモリイメージ７のビット値を０から１に更新する。この時点でシナリオプログラム８０ａ１の実行開始条件が成立するため、コントローラａの入出力イベント制御部９がシナリオプログラム８０ａ１の実行を開始する。
【００４０】
シナリオプログラム８０ａ１は、コントローラａおよびコントローラｂの実デバイスメモリ６と模擬デバイスメモリイメージ７の制御信号のオン・オフや制御データの値（図４には示されていない制御信号や制御データも含めて）確認することで、制御プログラム２０ａと２０ｂのＩ／Ｏ処理が所望の動作を行っているかを判定する。この判定の結果、所望の動作を行っていた場合、シナリオプログラム８０ａ１は、図４に示すようにＩ／Ｏ処理を実行して入力Ｘ０００Ｆをオンにするため、Ｘ０００Ｆと対応するコントローラａの模擬デバイスメモリイメージ７のビット値を０から１に更新する。さらに、シナリオプログラム８０ａ１は、図３に示した処理手順に従って制御プログラム２０ａのＩ／Ｏ処理が所望の動作を行っているかを判定する処理と、図４のタイムチャートに示すような応答のシミュレーション実行の結果をコントローラａの模擬デバイスメモリイメージ７に書き込む処理と、を繰返し実行する。
【００４１】
一方、制御プログラム２０ａは、シナリオプログラム８０ａ１による応答のシミュレーション実行の結果（入力Ｘ０００Ｆのオン）を受けて、次のＩ／Ｏ処理である出力Ｙ００１０のオフを実行する。さらに、シナリオプログラム８０ａ１による応答のシミュレーション実行の結果（入力Ｘ０００８のオン）を受けて、次のＩ／Ｏ処理である出力Ｙ００１８のオンを実行する。
【００４２】
このようにして、シナリオプログラム８０による応答のシミュレーション実行の結果を利用して制御プログラム２０のＩ／Ｏ処理をシミュレーション実行することにより、機械装置を実際には駆動させることなく制御プログラム２０のＩ／Ｏ処理が所望の動作を行っているかをシミュレーションで検証することができる。
【００４３】
次に、制御プログラム２０のＩ／Ｏ処理が所望の動作を行っていないことをシナリオプログラム８０によって検出された場合に、すべてのコントローラ１上で実行中の制御プログラム２０とシナリオプログラム８０を一斉に強制停止する具体例を、上記と同じ機械装置の構成で説明する。
【００４４】
図５は、制御プログラム２０ａの誤りを示すためのタイミングチャートの抜粋図である。図４のタイミングチャートとの違いは、本来であれば制御信号の入力Ｘ０００Ａのオンを受けて制御信号の出力Ｙ００１９をオフにすべきところをオンにし続けている点にある。一方、制御プログラム２０ｂは制御信号の入力Ｘ０００８がオンになったにもかかわらず、制御信号の出力Ｙ００１９がオフになっていないため、ワーク加工装置を駆動するために制御データのＤ２００に１０を設定し、制御信号の出力Ｙ００３８をオンにするといったＩ／Ｏ処理が実行できず不具合となる。
【００４５】
この状態で、不具合が発生した制御プログラム２０ｂのシミュレーション実行を停止させて不具合の原因を調査しても、制御信号の出力Ｙ００１９のオン・オフを制御しているのは制御プログラム２０ａであるため、制御プログラム２０ｂだけを調査しても原因を特定できない。さらに、制御プログラム２０ａのシミュレーション実行を継続させてしまうと、不具合の原因となった制御信号の出力Ｙ００１９が別のタイミングでオフに変化してしまう可能性があり、不具合の原因の特定がさらに困難になる。
【００４６】
そこで、本実施の形態では、制御プログラム２０ａのＩ／Ｏ処理が所望の動作を行っていないことをシナリオプログラム８０ａ２によって検出し、シナリオプログラム８０ａ２を実行するシナリオプログラム実行部８がコントローラａの連係シミュレーション制御部１１に対してプログラムの実行停止要求を通知し、シナリオプログラム８０ａ１と８０ａ２の実行を停止する。プログラムの実行停止要求を受けたコントローラａの連係シミュレーション制御部１１は、コントローラａで実行中の制御プログラム２０ａを強制停止させて、さらに外部接続バスＩ／Ｆ４を介して相互接続されているコントローラｂの連係シミュレーション制御部１１に対してプログラムの停止要求を通知する。コントローラｂの連係シミュレーション制御部１１は、プログラムの停止要求の通知を受けて、コントローラｂで実行中の制御プログラム２０ｂとシナリオプログラム８０ｂを強制停止させる。
【００４７】
このようにして、制御プログラム２０のＩ／Ｏ処理が所望の動作を行っていないことを検出した時点で、すべてのコントローラ１上でシミュレーション実行中の制御プログラム２０とシナリオプログラム８０を一斉に強制停止させることで、不具合が発生した時点での制御信号のオン・オフの状態や周辺装置の制御データの値が模擬デバイスメモリイメージ７に保持されるため、不具合が発生した原因を効率よく調査できるのである。
【００４８】
ところで、連係シミュレーション制御部１１によるプログラムの停止要求の通知手段は、外部接続バスＩ／Ｆ４および外部接続バス１００を介して通知可能な手段（例えば、コマンド送信やメッセージ送信など）であれば、本発明ではその実現手段を問わない。
また、この実施の形態１では、２基のコントローラによる制御プログラムのＩ／Ｏ処理のシミュレーション方法について説明したが、コントローラまたは外部接続バス１００のハードウェア上の制約の範囲内で１基以上のコントローラを外部接続バス１００に接続して連係シミュレーションシステムを構成してもよい。
【００４９】
なお、上記実施の形態では、シナリオプログラム８０の実行開始条件を、任意の制御信号のオフからオンへの遷移またはオンからオフへの遷移としたが、これ以外にも、例えば、任意の周辺装置の制御データの値が期待値と一致、期待値と不一致、期待値以上、期待値以下、期待値より大きい、期待値より小さい、といった論理演算結果を用いてもよく、また、任意の制御信号のオフからオンへの遷移またはオンからオフへの遷移と、上記の制御データの値と期待値との論理演算結果との論理積または論理和として定義してもよい。
【００５０】
以上説明したように、実施の形態１のコントローラによれば、マルチコントローラ構成で、Ｉ／Ｏ処理によって周辺装置の動作を制御する制御プログラムのシミュレーションを実施するコントローラであって、周辺装置に対する制御信号のオン・オフまたは周辺装置の制御データの読み書きのうちの少なくともいずれかをＩ／Ｏ処理として実行するための制御プログラムを実行する制御プログラム実行部と、制御プログラム実行部によるＩ／Ｏ処理を中継すると共に、Ｉ／Ｏ処理がシミュレーション対象のＩ／Ｏ処理であった場合、Ｉ／Ｏ処理を行うデバイスアクセス制御部と、制御プログラムのＩ／Ｏ処理のシミュレーション実行と対応する応答処理をシミュレーション実行し、制御プログラムによるＩ／Ｏ処理が所望の動作を行っているかを判定し、所望の動作を行っていない場合は、制御プログラムの実行停止要求を行うためのシナリオプログラムを実行するシナリオプログラム実行部と、シナリオプログラム実行部から制御プログラムの実行停止要求を受けた場合は、自コントローラでシミュレーション実行中の制御プログラムを強制停止させると同時に、他コントローラに対して制御プログラムのリモート停止要求を通知し、かつ、リモート停止要求の通知を受けた場合は、自コントローラでシミュレーション実行中の制御プログラムのＩ／Ｏ処理を強制停止させる連係シミュレーション制御部とを備えたので、マルチコントローラシステムにおいて、制御プログラムのデバッグ操作用の専用線の接続や機械装置の外部への引き出しといった特別な手段を必要とせずに、複数のコントローラ上で実行中の制御プログラムを停止させることができる。
【００５１】
また、実施の形態１のコントローラによれば、周辺装置に関するＩ／Ｏ処理のデータを格納する実デバイスメモリと、シミュレーション時のＩ／Ｏ処理のデータを格納する模擬デバイスメモリイメージと、制御プログラム実行部とデバイスアクセス制御部間のインタフェースであるデバイスアクセスＩ／Ｆと、デバイスアクセスＩ／Ｆと他のコントローラ間のインタフェースである外部接続バスＩ／Ｆとを備え、デバイスアクセス制御部は、制御プログラム実行部のＩ／Ｏ処理を中継して、実デバイスメモリ及び模擬デバイスメモリイメージにアクセスすると共に、制御プログラム実行部及びデバイスアクセス制御部は、デバイスアクセスＩ／Ｆと外部接続バスＩ／Ｆとを介して他のコントローラのＩ／Ｏ処理を実行するようにしたので、実運転用の制御プログラムとシミュレーション用の制御プログラムの２種類を用意する必要がなく、実運転用の制御プログラムのみでＩ／Ｏ処理をシミュレーションで検証することができ、かつ、他コントローラでシミュレーション実行中のＩ／Ｏ処理と連係させて自コントローラのＩ／Ｏ処理をシミュレーションで検証することができる。
【００５２】
また、実施の形態１のコントローラによれば、実デバイスメモリ及び模擬デバイスメモリイメージの値を参照して、シナリオプログラム実行部の開始条件を判定して、判定結果が開始であった場合はシナリオプログラム実行部におけるシナリオプログラムの実行を開始させる入出力イベント制御部と、デバイスアクセス制御部と外部接続バスＩ／Ｆとに接続され、シナリオプログラム実行部及び入出力イベント制御部が、実デバイスメモリからの読出要求または模擬デバイスメモリイメージの読み書き要求を中継するリモートデバイスＩ／Ｆを備え、シナリオプログラム実行部は、リモートデバイスＩ／Ｆを介して自コントローラの模擬デバイスメモリイメージの読み書き処理を実行すると共に、模擬デバイスメモリイメージの書込み処理を実行して制御プログラムのＩ／Ｏ処理と対応する応答をシミュレーションし、かつ、模擬デバイスメモリイメージの読出し処理を実行して制御プログラムのＩ／Ｏ処理が所望の動作を行っているかを検証するようにしたので、周辺装置がコントローラに接続されていない状態、あるいは周辺装置がコントローラに接続されていて周辺装置を実際に駆動させない状態で、制御プログラムによるＩ／Ｏ処理と対応する応答をシミュレーション実行し、制御プログラムのＩ／Ｏ処理が所望の動作を行っているかを検証することができる。
【００５３】
また、実施の形態１のコントローラによれば、シナリオプログラムの実行開始条件を、（ア）任意の制御信号のオフからオンへの遷移またはオンからオフへの遷移、（イ）任意の周辺装置の制御データの値と期待値との論理演算結果、（ウ）前記（ア）と前記（イ）との論理積または論理和、のいずれかとして定義するようにしたので、任意のＩ／Ｏ処理の結果に対応させたシナリオプログラムの実行開始条件を定義することができる。
【００５４】
また、実施の形態１のコントローラによれば、入出力イベント制御部は、制御プログラムのＩ／Ｏ処理が実行されたことをデバイスアクセス制御部から通知を受けた時点で、自コントローラのリモートデバイスアクセスＩ／Ｆとデバイスアクセス制御部とを介した自コントローラの実デバイスメモリと模擬デバイスメモリイメージの読出し処理、及び、自コントローラのリモートデバイスアクセスＩ／Ｆと外部接続バスＩ／Ｆと他コントローラのリモートデバイスアクセスＩ／Ｆと他コントローラのデバイスアクセス制御部とを介した他コントローラの実デバイスメモリと模擬デバイスメモリイメージの読出し処理を実行し、シナリオプログラム実行開始条件の判定処理を行うようにしたので、シナリオプログラムを自コントローラの制御プログラムのＩ／Ｏ処理に連動させて実行することができる。
【００５５】
実施の形態２．
図６は、この発明の実施の形態２におけるコントローラ１の基本構成を示す図である。図１に示した実施の形態１のコントローラ１との違いは、模擬デバイスパラメータ保持部１２と、模擬デバイスパラメータ設定Ｉ／Ｆ１３と、シナリオプログラム実行開始条件保持部１４と、シナリオプログラム実行開始条件設定Ｉ／Ｆ１５と、を含むようにコントローラ１が構成されている点であり、シミュレーション対象のＩ／Ｏの設定と、シミュレーションに用いるシナリオプログラム８０の設定をコントローラ外部から容易に設定できるようになっている。
【００５６】
すなわち、模擬デバイスパラメータ保持部１２は、シミュレーション対象のＩ／Ｏ処理のデータを模擬デバイスメモリイメージ７に割り付けるための模擬デバイスパラメータを保持するものであり、模擬デバイスパラメータ設定Ｉ／Ｆ１３は、コントローラ１の外部から模擬デバイスパラメータ保持部１２に対して模擬デバイスパラメータを設定するためのインタフェースである。また、シナリオプログラム実行開始条件保持部１４は、シナリオプログラムの実行開始条件を保持するもので、シナリオプログラム実行開始条件設定Ｉ／Ｆ１５は、コントローラ１の外部からシナリオプログラム実行開始条件保持部１４に対して実行開始条件を設定するためのインタフェースである。
なお、コントローラ１におけるその他の構成については、実施の形態１と同様であるため、図１に示した構成と同一部分については同一符号を付してその説明を省略する。
【００５７】
図７は、模擬デバイスパラメータ保持部１２に設定する模擬デバイスパラメータの設定例を示す図である。図７に示すように、シミュレーション対象のＩ／Ｏの名称と点数とを組にして保持する。デバイスアクセス制御部５は、模擬デバイスパラメータ保持部１２に設定されたパラメータに従ってシミュレーション対象のＩ／Ｏを模擬デバイスメモリイメージ７に割り付ける。
【００５８】
図８は、シナリオプログラム実行開始条件保持部１５に設定するシナリオプログラム実行条件の設定例を示す図である。図８に示すように、シナリオプログラム（関数）と、シナリオプログラム実行開始条件として指定するＩ／Ｏのリストを組みにして保持する。入出力イベント制御部９は、シナリオプログラム実行開始条件の判定時にシナリオプログラム実行開始条件保持部１４を参照して、シナリオプログラム実行開始条件が成立したシナリオプログラム（関数）の実行を開始する。
【００５９】
以上説明したように、実施の形態２のコントローラによれば、シナリオプログラムの実行開始条件を保持するシナリオプログラム実行開始条件保持部と、コントローラの外部からシナリオプログラム実行開始条件保持部に対して実行開始条件を設定するためのシナリオプログラム実行開始条件設定Ｉ／Ｆとを備えたので、シナリオプログラム実行開始条件を容易に設定変更することができる。
【００６０】
また、実施の形態２のコントローラによれば、シミュレーション対象のＩ／Ｏ処理のデータを模擬デバイスメモリイメージに割り付けるための模擬デバイスパラメータを保持する模擬デバイスパラメータ保持部と、コントローラの外部から模擬デバイスパラメータ保持部に対して模擬デバイスパラメータを設定するための模擬デバイスパラメータ設定Ｉ／Ｆとを備えたので、シミュレーション対象のＩ／Ｏを容易に設定変更することができる。
【００６１】
実施の形態３．
この発明の実施の形態１におけるコントローラを用いた連係シミュレーションシステムにおいて、図３に示したシナリオプログラム実行開始条件の判定処理を、制御プログラム２０によるＩ／Ｏ処理が実行された直後ではなく、任意の周期で反復実行されるようにしてもよく、これを実施の形態３として説明する。その他の構成は実施の形態１または実施の形態２と同様である。
【００６２】
一般に、機械装置を制御する制御プログラムは、Ｉ／Ｏ処理を周期実行して周辺装置の状態を確認し、状態ごとに次に実行するＩ／Ｏ処理を選択するように構成されている場合が多い。すなわち、Ｉ／Ｏが変化するタイミングは、制御プログラムの実行周期と同期しているのである。この点に着目して、実施の形態３では、制御プログラム２０の実行周期に同期させて入出力イベント制御部９によるシナリオプログラム実行開始条件の判定処理を実行できるように、シナリオプログラム実行開始条件の判定処理の実行周期を任意に設定できるようにしたものである。
【００６３】
以上説明したように、実施の形態３のコントローラによれば、入出力イベント制御部によるシナリオプログラム実行開始条件の判定処理を任意の周期で反復実行するようにしたので、シナリオプログラム実行開始条件に設定されている制御信号や周辺装置の制御データの読出し処理を定周期に実行することができる。
【００６４】
なお、本願発明はその発明の範囲内において、各実施の形態の自由な組合せ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
【符号の説明】
【００６５】
１  コントローラ、２  制御プログラム実行部、２０  制御プログラム、３  デバイスアクセスＩ／Ｆ、４  外部接続バスＩ／Ｆ、５  デバイスアクセス制御部、６  実デバイスメモリ、７  模擬デバイスメモリイメージ、８  シナリオプログラム実行部、８０  シナリオプログラム、９  入出力イベント制御部、１０  リモートデバイスアクセスＩ／Ｆ、１１  連係シミュレーション制御部、１２  模擬デバイスパラメータ保持部、１３  模擬デバイスパラメータ設定Ｉ／Ｆ、１４  シナリオプログラム実行開始条件保持部、１５  シナリオプログラム実行開始条件設定Ｉ／Ｆ。
【図１】
2014137781.tif 000003
【図２】
2014137781.tif 000004
【図３】
2014137781.tif 000005
【図４】
2014137781.tif 000006
【図５】
2014137781.tif 000007
【図６】
2014137781.tif 000008
【図７】
2014137781.tif 000009
【図８】
2014137781.tif 000010