(57)【特許請求の範囲】
【請求項１】
試験対象の制御ソフトウェアを記憶する制御ソフトウェア記憶部と、
前記制御ソフトウェア記憶部から前記制御ソフトウェアを読み込んで制御処理を実行し、制御信号を出力する制御部と、
前記制御部のデータ参照先及びデータ書込先として使用される共有メモリ部と、
前記制御信号に対して制御対象機器が出力する出力信号を模擬する出力データについて、出力条件、出力値、出力時間及び前記共有メモリ部における出力先アドレスを前記制御信号の種別に応じて定義した設定ファイルを記憶する設定ファイル記憶部と、
前記制御部から前記制御信号を入力し、前記制御信号と前記設定ファイルに基づいて演算処理を行い、その演算結果を前記出力データとして前記出力先アドレスへ出力するＩ／Ｏ演算部と、
少なくとも前記制御信号の種別、前記制御信号の入力時間、前記出力データの前記出力値、出力時間及び前記出力先アドレスを含むＩ／Ｏログファイルを記憶するＩ／Ｏログファイル記憶部と、
を備え、
前記Ｉ／Ｏ演算部は、前記共有メモリ部への前記出力データの書込みに連動して前記Ｉ／Ｏログファイルにログデータを記録することを特徴とする制御エミュレータ。
【請求項２】
前記Ｉ／Ｏ演算部は、前記制御部から再現試験の実行指示があった場合に、前記Ｉ／Ｏログファイル記憶部に記憶されている前記Ｉ／Ｏログファイルから前記実行指示に係る出力データを読み出し、前記出力データを前記制御部へ出力することを特徴とする請求項１に記載の制御エミュレータ。
【請求項３】
前記Ｉ／Ｏ演算部は、前記制御部から前記再現試験の実行速度が指定された場合に、前記実行速度に応じて前記出力時間を短縮または延長して前記Ｉ／Ｏログファイルから読み出した前記出力データを前記制御部へ出力することを特徴とする請求項２に記載の制御エミュレータ。
【請求項４】
ファイル読込または編集画面における入力操作によって前記設定ファイルを編集する設定ファイル編集部を更に備えることを特徴とする請求項１乃至請求項３のいずれか一項に記載の制御エミュレータ。
【請求項５】
試験対象としてインストール済みの制御ソフトウェアを実行し、制御信号を出力することで制御機器を模擬する制御エミュレータにネットワークを介して接続され、前記制御エミュレータとの間で信号入出力を模擬するＩ／Ｏエミュレータであって、
前記制御信号に対して制御対象機器が出力する出力信号を模擬する出力データについて、出力条件、出力値、出力時間及び前記制御エミュレータのメモリ領域における出力先アドレスを前記制御信号の種別に応じて定義した設定ファイルを記憶する設定ファイル記憶部と、
前記制御エミュレータから前記制御信号を入力し、前記制御信号と前記設定ファイルに基づいて演算処理を行い、その演算結果を前記出力データとして前記出力先アドレスへ出力するＩ／Ｏ演算部と、
少なくとも前記制御信号の種別、前記制御信号の入力時間、前記出力データの前記出力値、出力時間及び前記出力先アドレスを含むＩ／Ｏログファイルを記憶するＩ／Ｏログファイル記憶部と、
を備え、
前記Ｉ／Ｏ演算部は、共有メモリ部への前記出力データの書込みに連動して前記Ｉ／Ｏログファイルにログデータを記録することを特徴とするＩ／Ｏエミュレータ。
【請求項６】
前記Ｉ／Ｏ演算部は、前記制御エミュレータから再現試験の実行指示があった場合に、前記Ｉ／Ｏログファイル記憶部に記憶されている前記Ｉ／Ｏログファイルから前記実行指示に係る出力データを読み出し、前記出力データを前記制御エミュレータへ出力することを特徴とする請求項５に記載のＩ／Ｏエミュレータ。
【請求項７】
前記Ｉ／Ｏ演算部は、前記制御エミュレータから前記再現試験の実行速度が指定された場合に、前記実行速度に応じて前記出力時間を短縮または延長して前記Ｉ／Ｏログファイルから読み出した前記出力データを前記制御エミュレータへ出力することを特徴とする請求項６に記載のＩ／Ｏエミュレータ。
【請求項８】
ファイル読込または編集画面における入力操作によって前記設定ファイルを編集する設定ファイル編集部を更に備えることを特徴とする請求項５乃至請求項７のいずれか一項に記載のＩ／Ｏエミュレータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工場の製造設備を構成する入出力機器の動作を模擬する制御エミュレータ及びＩ／Ｏエミュレータに関する。
【背景技術】
【０００２】
一般に、工場の製造設備を制御する制御機器は、監視用の操作画面を表示する表示装置と、動作確認済みの制御ソフトウェアがインストールされ、制御処理を実行するコントローラと、コントローラにおける制御処理の結果を制御対象機器へ伝えるとともに、設備の現状を示す信号をコントローラへ出力する入出力機器から構成されている。
【０００３】
また、近年におけるコンピュータの性能向上と、ソフトウェア作成のためのエンジニアリングツールの発達に伴い、エンジニアリングツールによって作成した制御ソフトウェアを実際の機器にインストールすることなく、コンピュータ上の仮想環境で動作させるだけでソフトウェアの問題点を把握可能とするエミュレータが開発され、使用されるようになってきた。
【０００４】
図１０は、従来の制御ソフトウェア試験システムの全体構成例を示すブロック図である。ここでは、操作装置における表示を模擬する操作画面エミュレータ１１と、コントローラにおける制御（計算）部分を模擬する制御エミュレータ１２にそれぞれ対応するコンピュータを準備し、これらをネットワークＮＷで接続することでシステムが構築されている。制御エミュレータ１２は、制御ソフトウェアを記憶する制御ソフトウェア記憶部１２１ａ、演算処理を実行する制御部１２１ｂ、制御ソフトウェアの実行時に制御部１２１ｂのデータ参照先および書込先となる共有メモリ部１２１ｃを備えている。
【０００５】
しかしながら、上記のような制御エミュレータは、実際のコントローラ内での制御ソフトウェアの動作については模擬できるが、コントローラと入出力機器との間の信号入出力については、入出力機能に係る簡易的なシミュレーションを行うためのソフトウェア（以下、「Ｉ／Ｏソフトウェア」という。）を別途作成して制御ソフトウェアの中に組み込む、あるいは、現地にて実際の入出力機器を利用して確認する必要があった。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−１７２１２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記従来技術における入出力機能の確認試験には以下のような問題があった。
【０００８】
（１）Ｉ／Ｏソフトウェアを工事毎に作成して制御ソフトウェアの中に組み込み、制御ソフトウェアの試験を行う場合には、確認試験の完了後に、不要となったＩ／Ｏソフトウェアを削除する必要がある。このため、削除作業時のミスにより制御ソフトウェアの品質を下げてしまう可能性があった。
【０００９】
（２）Ｉ／Ｏソフトウェアを様々な入出力機器に対応して作成する場合、標準化は難しく、作業に専門知識を必要とする。そこで、画面入力情報に応じて入出力の状態を変化させられるＩ／Ｏソフトウェアを自動作成可能なＩ／Ｏエミュレータを単独の装置として設け、Ｉ／Ｏエミュレータ側で自動作成したＩ／Ｏソフトウェアをコントローラ側に送信して動作させる技術が考えられている。しかし、Ｉ／Ｏエミュレータ内でＩ／Ｏソフトウェアを自動作成する場合には、Ｉ／Ｏエミュレータの内部構成が複雑となり、Ｉ／Ｏエミュレータの作成が難しく、コストも高くなってしまう。
【００１０】
（３）制御ソフトウェアの試験時に実際の入出力機器を利用してを確認試験を行う場合には、製造設備の稼働を一時停止しなければならず、手間がかかるだけでなく、時間的な制約を受けてしまう。
【課題を解決するための手段】
【００１１】
本発明に係る制御エミュレータは、試験対象の制御ソフトウェアを記憶する制御ソフトウェア記憶部と、前記制御ソフトウェア記憶部から前記制御ソフトウェアを読み込んで制御処理を実行し、制御信号を出力する制御部と、前記制御部のデータ参照先及びデータ書込先として使用される共有メモリ部と、前記制御信号に対して制御対象機器が出力する出力信号を模擬する出力データについて、出力条件、出力値、出力時間及び前記共有メモリ部における出力先アドレスを前記制御信号の種別に応じて定義した設定ファイルを記憶する設定ファイル記憶部と、前記制御部から前記制御信号を入力し、前記制御信号と前記設定ファイルに基づいて演算処理を行い、その演算結果を前記出力データとして前記出力先アドレスへ出力するＩ／Ｏ演算部と、少なくとも前記制御信号の種別、前記制御信号の入力時間、前記出力データの前記出力値、出力時間及び前記出力先アドレスを含むＩ／Ｏログファイルを記憶するＩ／Ｏログファイル記憶部と、を備え、前記Ｉ／Ｏ演算部は、前記共有メモリ部への前記出力データの書込みに連動して前記Ｉ／Ｏログファイルにログデータを記録することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、工場の製造設備を構成する入出力機器の動作を模擬し、コントローラに実装予定の制御ソフトウェアの確認試験をコンピュータ上の仮想環境で効率的に実施することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１の実施形態における制御ソフトウェア試験システムの全体構成例を示すブロック図である。
【図２】図１に示す各エミュレータのハードウェア構成例を示すブロック図である。
【図３】図１に示すＩ／Ｏ演算部の入出力試験時の処理例を示すフローチャートである。
【図４】図３のＳ１０３の詳細な処理例を示すフローチャートである。
【図５】本発明の第２の実施形態における制御ソフトウェア試験システムの全体構成例を示すブロック図である。
【図６】図５に示すＩ／Ｏ演算部の入出力試験時の処理例を示すフローチャートである。
【図７】図５に示すＩ／Ｏ演算部の再現試験時の処理例を示すフローチャートである。
【図８】再現試験時の実行速度の変更例について説明する図である。
【図９】本発明の第１の実施形態の変形例における制御ソフトウェア試験システムの全体構成例を示すブロック図である。
【図１０】従来の制御ソフトウェア試験システムの全体構成例を示すブロック図である。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態について図面を参照して詳細に説明する。
【００１５】
＜第１の実施形態＞
図１は、本発明の第１の実施形態における制御ソフトウェア試験システム１の全体構成例を示すブロック図である。ここでは、制御ソフトウェア試験システム１は、操作画面エミュレータ１１と制御エミュレータ１２がネットワークを介して接続されている。制御エミュレータ１２の機能は、工場の製造設備を構成する制御機器のコントローラの動作を模擬する制御エミュレート部１２１と入出力機器の動作を模擬するＩ／Ｏエミュレート部１２２の二つに分類されている。
【００１６】
制御エミュレート部１２１は、制御ソフトウェア記憶部１２１ａ、制御部１２１ｂ、共有メモリ部１２１ｃを含んでいる。制御ソフトウェア記憶部１２１ａは、試験対象の制御ソフトウェアを記憶する。制御ソフトウェア記憶部１２１ａへの制御ソフトウェアのインストールについては、公知の手法を用いればよい。制御部１２１ｂは、制御ソフトウェア記憶部１２１ａから制御ソフトウェアを読み込んで制御処理を実行し、信号の出力指示である制御信号を出力する。共有メモリ部１２１ｃは、制御部１２１ｂのデータ参照先及びデータ書込先として使用され、Ｉ／Ｏエミュレート部１２２との間で共有される。
【００１７】
Ｉ／Ｏエミュレート部１２２は、設定ファイル記憶部１２２ａ、Ｉ／Ｏ演算部１２２ｂ、及び設定ファイル編集部１２２ｃを含んでいる。  
設定ファイル記憶部１２２ａは、制御信号に対して制御対象機器（図示省略する）が出力する出力信号を模擬する出力データについて、出力条件、出力値、出力時間及び共有メモリ部における出力先アドレスを制御信号の種別に対応して定義した設定ファイルを記憶する。
【００１８】
制御信号の種別に対応して設定ファイルに定義される内容としては、例えば（Ａ）デジタル出力の折り返し、（Ｂ）データセット、（Ｃ）カウンタセット、（Ｄ）ＰＩＤ演算結果のセット、などが挙げられる。入出力機器における全種類の入出力を模擬することは実際には困難であることに鑑み、本実施形態では幾つかの仕様に絞って設定ファイルに定義する。これによって、ソフトウェアの知識がない者でも、入出力機器における信号の入出力動作を模擬可能としている。
【００１９】
Ｉ／Ｏ演算部１２２ｂは、制御部１２１ｂから制御信号を入力し、制御信号と設定ファイルに基づいて演算処理を行い、その演算結果を出力データとして共有メモリ部１２１ｃの出力先アドレスへ出力する。
【００２０】
ユーザが制御エミュレート部１２１の制御ソフトウェアを動作させると、Ｉ／Ｏ演算部１２２ｂは設定ファイルの内容に基づき、例えば以下のような演算結果を制御エミュレート部１２１の共有メモリ部１２１ｃへ書き込む。
【００２１】
（Ａ）デジタル出力の折り返し
制御部１２１ｂから制御信号（出力指示）が入力されると、設定ファイルにおいて予め設定されている出力時間後に、Ｉ／Ｏ演算部１２２ｂが共有メモリ部１２１ｃの所定のメモリアドレス（出力先アドレス）へ所定の出力値を書き込む。例えば、設定ファイルでの定義内容により、制御部１２１ｂからの制御信号（出力指示）のデジタル値をビット反転して書き込むことができる。
【００２２】
（Ｂ）データセット
設定ファイル内に予め設定されている出力条件が成立している間のみ、Ｉ／Ｏ演算部１２２ｂが共有メモリ部１２１ｃの所定のメモリアドレス（出力先アドレス）へ所定の出力値を書き込む。
【００２３】
（Ｃ）カウンタセット
設定ファイル内に予め設定されている出力条件が成立している間のみ、Ｉ／Ｏ演算部１２２ｂが所定の出力時間間隔で、共有メモリ部１２１ｃの所定の出力先アドレスへカウントアップまたはカウントダウンした値を書き込む。
【００２４】
（Ｄ）ＰＩＤ演算結果のセット
Ｉ／Ｏ演算部１２２ｂが制御部１２１ｂからの入力値に対して所定のＰＩＤ演算を行い、演算した結果をＰＩＤの現在値入力として共有メモリ部１２１ｃの所定の出力先アドレスへ書き込む。ＰＩＤ（Ｐｒｏｐｏｒｔｉｏｎａｌ―Ｉｎｔｅｇｒａｌ―Ｄｅｒｉｖａｔｉｖｅ）制御は、制御工学におけるフィードバック制御の一種であり、入力値の制御を出力値と目標値との偏差、その積分、および微分の３つの要素によって行う方法のことである。
【００２５】
設定ファイル編集部１２２ｃは、ファイル読込または編集画面（図示省略する）における入力操作によって設定ファイルを編集し、設定ファイル記憶部１２２ａへ記憶する。例えば、設定ファイル編集部１２２ｃは、設定ファイルとしてＣＳＶファイルを必要に応じて読み込むことで、設定変更を容易に実施することができる。
【００２６】
図２は、図１に示す各エミュレータのハードウェア構成例を示すブロック図である。各エミュレータは、ＣＰＵ（Ｃｅｎｔｒａｌ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉt）１０１、ＲＯＭ（Ｒｅａｄ Ｏｎｌｙ Ｍｅｍｏｒｙ）１０２、ＲＡＭ（Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）１０３、入出力インターフェース１０４、システムバス１０５、入力装置１０６、表示装置１０７、ストレージ１０８および通信装置１０９から構成されたコンピュータである。
【００２７】
ＣＰＵ１０１は、ＲＯＭ１０２やＲＡＭ１０３に格納されたプログラムやデータなどを用いて各種の演算処理を実行する処理装置である。ＲＯＭ１０２は、コンピュータを機能させるための基本プログラムや環境ファイルなどを記憶する読み取り専用の記憶装置である。ＲＡＭ１０３は、ＣＰＵ１０１が実行するプログラムおよび各プログラムの実行に必要なデータを記憶する主記憶装置であり、高速な読み出しと書き込みが可能である。入出力インターフェース１０４は、各種のハードウェアとシステムバス１０５との接続を仲介する装置である。システムバス１０５は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３および入出力インターフェース１０４で共有される情報伝達路である。
【００２８】
また、入出力インターフェース１０４には、入力装置１０６、表示装置１０７、ストレージ１０８、および通信装置１０９などのハードウェアが接続されている。入力装置１０６は、ユーザからの入力を処理する装置であり、例えばキーボードやマウスなどである。表示装置１０７は、ユーザに対して演算結果や作成画面などを表示する装置であり、例えば液晶ディスプレイやプラズマディスプレイなどである。ストレージ１０８は、プログラムやデータを蓄積する大容量の補助記憶装置であり、例えばハードディスク装置などである。
【００２９】
図３は、図１に示すＩ／Ｏ演算部１２２ｂにおける入出力試験時の処理例を示すフローチャートである。この処理は、制御エミュレート部１２１及びＩ／Ｏエミュレート部１２２の起動時に開始される。
【００３０】
先ず、Ｉ／Ｏ演算部１２２ｂは、制御部１２１ｂから入力された制御信号が入出力（Ｉ／Ｏ）試験の開始指示か否かを判定する（Ｓ１０１）。ここで、制御信号が入出力試験の開始指示であると判定した場合（Ｓ１０１：ＹＥＳ）は、Ｓ１０２へ進む。これに対し、入出力試験の開始指示ではないと判定した場合（Ｓ１０１：ＮＯ）は、開始指示が入力されるまで待機状態が維持される。
【００３１】
Ｓ１０２において、Ｉ／Ｏ演算部１２２ｂは、設定ファイル記憶部１２２ａから設定ファイルを読み込む。  
次に、Ｉ／Ｏ演算部１２２ｂは、制御信号と読み込んだ設定ファイルに記述されている設定条件に基づいてＩ／Ｏ演算処理を実行し、演算結果を出力データとして共有メモリ部１２１ｃの出力先アドレスへ書き込む（Ｓ１０３）。例えば、制御信号が“ＰＩＤ演算結果のセット”の場合には、Ｉ／Ｏ演算部１２２ｂが設定ファイルを参照して“ＰＩＤ演算結果のセット”に係る設定条件を取得するとともに、制御部１２１ｂからの入力値に対して所定のＰＩＤ演算を行い、演算した結果をＰＩＤの現在値入力として共有メモリ部１２１ｃの所定の出力先アドレスへ書き込む。
【００３２】
次に、Ｉ／Ｏ演算部１２２ｂは、制御部１２１ｂから入力された制御信号が入出力試験の終了指示か否かを判定する（Ｓ１０４）。ここで、制御信号が入出力試験の終了指示であると判定した場合（Ｓ１０４：ＹＥＳ）は、処理を終了する。これに対し、入出力試験の終了指示ではないと判定した場合（Ｓ１０４：ＮＯ）は、Ｓ１０３へ戻る。
【００３３】
図４は、図３のＳ１０３の詳細な処理例を示すフローチャートである。先ず、Ｉ／Ｏ演算部１２２ｂは、制御部１２１ｂから入力された制御信号が“デジタル出力の折り返し”か否かを判定する（Ｓ２０１）。ここで、制御信号が“デジタル出力の折り返し”と判定した場合（Ｓ２０１：ＹＥＳ）は、Ｓ２０２へ進む。これに対し、制御信号が“デジタル出力の折り返し”ではないと判定した場合（Ｓ２０１：ＮＯ）は、Ｓ２０３へ進む。
【００３４】
Ｓ２０２において、Ｉ／Ｏ演算部１２２ｂは、設定ファイルにおいて予め設定されている出力時間後に、共有メモリ部１２１ｃの所定のメモリアドレス（出力先アドレス）へ所定の出力値を書き込む。
【００３５】
Ｓ２０３において、Ｉ／Ｏ演算部１２２ｂは、制御部１２１ｂから入力された制御信号が“データセット”か否かを判定する。ここで、制御信号が“データセット”と判定した場合（Ｓ２０３：ＹＥＳ）は、Ｓ２０４へ進む。これに対し、制御信号が“データセット”ではないと判定した場合（Ｓ２０３：ＮＯ）は、Ｓ２０５へ進む。
【００３６】
Ｓ２０４において、設定ファイル内に予め設定されている出力条件が成立している間、Ｉ／Ｏ演算部１２２ｂは、共有メモリ部１２１ｃの所定のメモリアドレス（出力先アドレス）へ所定の出力値を書き込む。
【００３７】
Ｓ２０５において、Ｉ／Ｏ演算部１２２ｂは、制御部１２１ｂから入力された制御信号が“カウンタセット”か否かを判定する。ここで、制御信号が“カウンタセット”と判定した場合（Ｓ２０５：ＹＥＳ）は、Ｓ２０６へ進む。これに対し、制御信号が“カウンタセット”ではないと判定した場合（Ｓ２０５：ＮＯ）は、Ｓ２０７へ進む。
【００３８】
Ｓ２０６において、設定ファイル内に予め設定されている出力条件が成立している間、Ｉ／Ｏ演算部１２２ｂは、所定の出力時間の間隔で、共有メモリ部１２１ｃの所定の出力先アドレスへカウントアップまたはカウントダウンした値を書き込む。
【００３９】
Ｓ２０７において、Ｉ／Ｏ演算部１２２ｂは、制御部１２１ｂから入力された制御信号が“ＰＩＤ演算”か否かを判定する。ここで、制御信号が“ＰＩＤ演算”と判定した場合（Ｓ２０７：ＹＥＳ）は、Ｓ２０８へ進む。これに対し、制御信号が“ＰＩＤ演算”ではないと判定した場合（Ｓ２０７：ＮＯ）は、処理を終了する。
【００４０】
Ｓ２０８において、Ｉ／Ｏ演算部１２２ｂは、制御部１２１ｂからの入力値に対して所定のＰＩＤ演算を行い、演算した結果をＰＩＤの現在値入力として共有メモリ部１２１ｃの所定の出力先アドレスへ書き込み、処理を終了する。
【００４１】
上記実施形態に係る制御エミュレータ１２によれば、Ｉ／Ｏエミュレート部１２２によって制御エミュレート部１２１の共有メモリ部１２１ｃに書き込まれた結果を元に、制御ソフトウェアが動作し、再度、Ｉ／Ｏエミュレート部１２２へ出力するという動作を繰り返す。この繰り返し動作によって、実際の工場設備の動作に近い試験を事前に実施することができるようになるため、制御機器の出荷前に、制御ソフトウェアの健全性を十分に確認することができ、ソフトウェアの品質向上が見込める。
【００４２】
また、別の制御ソフトウェアに対して同様の試験を実施する際には、同じ設定ファイルを流用して試験を行うことができるため、工事毎に同じようなシミュレーション用のＩ／Ｏソフトウェアを作成して制御ソフトウェアに組み込む必要がなくなり、試験の効率化を図ることができる。
【００４３】
＜第２の実施形態＞
図５は、本発明の第２の実施形態における制御ソフトウェア試験システム１の全体構成例を示すブロック図である。尚、上記第１の実施形態の各図において付された符号と同一の符号は同一の対象を示すものであるため、詳細な説明を省略する。
【００４４】
本実施形態と第１の実施形態との相違点は大きく３つある。先ず、第１の相違点は、Ｉ／Ｏエミュレート部１２２がＩ／Ｏログファイル記憶部１２２ｄを更に備えていることである。Ｉ／Ｏログファイル記憶部１２２ｄは、少なくとも制御信号の種別、制御信号の入力時間、出力データの出力値、出力時間及び出力先アドレスを含むＩ／Ｏログファイルを記憶している。また、これに対応して、Ｉ／Ｏ演算部１２２ｂは、共有メモリ部１２１ｃへの出力データの書込みに連動してＩ／Ｏログファイル記憶部１２２ｄ内のＩ／Ｏログファイルにログデータを時間経過とともに記録する。
【００４５】
次に、第２の相違点は、制御部１２１ｂから再現試験の実行指示があった場合に、Ｉ／Ｏ演算部１２２ｂはＩ／Ｏログファイル記憶部１２２ｄから実行指示に係る出力データをＩ／Ｏログファイルから読み出し、ファイルに記述されている出力時間に基づいて出力データを制御部１２１ｂへ出力することである。実行指示としては、実施済みの試験のＩＤやファイル名などが挙げられる。
【００４６】
そして、第３の相違点は、制御部１２１ｂから再現試験の実行速度が指定された場合に、Ｉ／Ｏ演算部１２２ｂには、実行速度に応じて出力時間を短縮（倍速再生）または延長（スロー再生）しつつ、Ｉ／Ｏログファイルから読み出した出力データを制御部１２１ｂの共有メモリ部１２１ｃへ出力することである。
【００４７】
図６は、図５に示すＩ／Ｏ演算部１２２ｂの入出力試験時の処理例を示すフローチャートである。この処理は、制御エミュレート部１２１及びＩ／Ｏエミュレート部１２２の起動時に開始される。
【００４８】
先ず、Ｉ／Ｏ演算部１２２ｂは、制御部１２１ｂから入力された制御信号が入出力（Ｉ／Ｏ）試験の開始指示か否かを判定する（Ｓ３０１）。ここで、制御信号が入出力試験の開始指示であると判定した場合（Ｓ３０１：ＹＥＳ）は、Ｓ３０２へ進む。これに対し、入出力試験の開始指示ではないと判定した場合（Ｓ３０１：ＮＯ）は、待機状態が維持される。
【００４９】
Ｓ３０２において、Ｉ／Ｏ演算部１２２ｂは、設定ファイル記憶部１２２ａから設定ファイルを読み込む。  
次に、Ｉ／Ｏ演算部１２２ｂは、制御信号と読み込んだ設定ファイルに記述されている設定条件に基づいてＩ／Ｏ演算処理を実行し、演算結果を出力データとして共有メモリ部１２１ｃの出力先アドレスへ書き込む（Ｓ３０３）。
【００５０】
次に、Ｉ／Ｏ演算部１２２ｂは、演算結果と処理時間を含むログをＩ／Ｏログファイルに記録し、Ｉ／ＯログファイルをＩ／Ｏログファイル記憶部１２２ｄに記憶する（Ｓ３０４）。
【００５１】
次に、Ｉ／Ｏ演算部１２２ｂは、制御部１２１ｂから入力された制御信号が入出力試験の終了指示か否かを判定する（Ｓ３０５）。ここで、制御信号が入出力試験の終了指示であると判定した場合（Ｓ３０５：ＹＥＳ）は、処理を終了する。これに対し、入出力試験の終了指示ではないと判定した場合（Ｓ３０５：ＮＯ）は、Ｓ３０３へ戻る。
【００５２】
図７は、図５に示すＩ／Ｏ演算部１２２ｂの再現試験時の処理例を示すフローチャートである。この処理は、制御エミュレート部１２１及びＩ／Ｏエミュレート部１２２の起動時に開始されるが、再現試験の対象となるＩ／ＯログファイルがＩ／Ｏログファイル記憶部１２２ｄに記憶されていることが前提となる。
【００５３】
先ず、Ｉ／Ｏ演算部１２２ｂは、制御部１２１ｂから入力された制御信号が再現試験の開始指示か否かを判定する（Ｓ４０１）。ここで、制御信号が再現試験の開始指示であると判定した場合（Ｓ４０１：ＹＥＳ）は、Ｓ４０２へ進む。これに対し、再現試験の開始指示ではないと判定した場合（Ｓ４０１：ＮＯ）は、待機状態が維持される。
【００５４】
Ｓ４０２において、Ｉ／Ｏ演算部１２２ｂは、制御部１２１ｂから指定されたＩ／ＯログファイルをＩ／Ｏログファイル記憶部１２２ｄから読み込む。
【００５５】
次に、Ｉ／Ｏ演算部１２２ｂは、制御部１２１ｂから再現試験における実行速度の変更指示の有無を判定する（Ｓ４０３）。ここで、実行速度の変更指示が有りと判定した場合（Ｓ４０３：ＹＥＳ）は、Ｓ４０４へ進む。これに対し、実行速度の変更指示が有りと判定した場合（Ｓ４０３：ＮＯ）は、Ｓ４０５へ進む。
【００５６】
Ｓ４０４において、Ｉ／Ｏ演算部１２２ｂは、Ｉ／Ｏログファイルから読込んだ出力時間の間隔を指定速度に応じて変更し、変更後の出力時間で出力値を共有メモリ部１２１ｃに書込み、処理を終了する。
【００５７】
図８は、再現試験時の実行速度の変更例について説明する図である。ここでは、Ｉ／Ｏログファイルの記録時における４つの出力データの出力時間がそれぞれｔ１、ｔ２、ｔ３、ｔ４、全データの出力時間がＴである場合に、試験結果を２倍速で再生するときには出力データの出力時間がそれぞれｔ１／２、ｔ２／２、ｔ３／２、ｔ４／２、全データの出力時間がＴ／２となることを示している。すなわち、制御部１２１ｂより指定された実行速度がＮ倍の場合には出力時間を１／Ｎ倍することで早送り再生またはスロー再生される。
【００５８】
Ｓ４０５において、Ｉ／Ｏ演算部１２２ｂは、Ｉ／Ｏログファイルの出力時間の間隔で出力値を共有メモリ部１２１ｃに書込み、処理を終了する。
【００５９】
このように、本実施形態に係る制御エミュレータ１２によれば、上記第１の実施形態の効果に加えて、以下のような効果を奏する。  
（１）Ｉ／Ｏログファイルを記録して保持することにより、試験結果の再検証を効率的に行うことができるため、制御ソフトウェアの品質向上を図ることができる。  
（２）Ｉ／Ｏログファイルに基づいて再現試験を行う際にＩ／Ｏエミュレート部１２２における実行速度を変更し、試験結果を早送り再生あるいはスロー再生することが可能となる。  
（３）設定ファイルの設定条件を変更した場合には、Ｉ／Ｏログファイルの記録内容が変化するため、ソフトウェア自体を修正することなく、様々な条件下での検証が容易となる。
【００６０】
＜変形例＞
図９は、上記第１の実施形態の変形例における制御ソフトウェア試験システムの全体構成例を示すブロック図である。第１の実施形態においては、制御エミュレータ１２の中にＩ／Ｏエミュレート部１２２を追加した構成であったが、図９では同機能を単独の装置であるＩ／Ｏエミュレータ１３に持たせ、ネットワークＮＷを介して接続した構成としてもよいことを示している。この場合、従来から知られている制御エミュレータ１２の装置自体を改造することなく、Ｉ／Ｏエミュレート機能を追加することが可能となる利点がある。
【００６１】
また、上記第２の実施形態においては、Ｉ／Ｏ演算部１２２ｂは、再現試験において設定ファイルに基づく演算処理を再度実行するのではなく、Ｉ／Ｏログファイルに記録されている出力時間に基づいて出力値を共有メモリ部１２１ｃに書込む構成としていたが、同一の設定ファイルを用いて演算処理を再度実行してもよい。この場合、設定ファイルから読込んだ出力時間の間隔を１／Ｎ倍することで実行速度の変更にも対応することができる。
【００６２】
以上、本発明の実施形態を説明したが、本実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。この新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。本実施形態およびその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００６３】
１…制御ソフトウェア試験システム
１１…操作画面エミュレータ
１２…制御エミュレータ
１３…Ｉ／Ｏエミュレータ
１２１…制御エミュレート部
１２１ａ…制御ソフトウェア記憶部
１２１ｂ…制御部
１２１ｃ…共有メモリ部
１２２…Ｉ／Ｏエミュレート部
１２２ａ…設定ファイル記憶部
１２２ｂ…Ｉ／Ｏ演算部
１２２ｃ…設定ファイル編集部
１２２ｄ…Ｉ／Ｏログファイル記憶部
【図１】
0006383331.tif 000002
【図２】
0006383331.tif 000003
【図３】
0006383331.tif 000004
【図４】
0006383331.tif 000005
【図５】
0006383331.tif 000006
【図６】
0006383331.tif 000007
【図７】
0006383331.tif 000008
【図８】
0006383331.tif 000009
【図９】
0006383331.tif 000010
【図１０】
0006383331.tif 000011