(57)【要約】【課題】産業用装置の内部に搭載される装置コントローラ２１のソフトウェア開発において、非実機でもデバッグ可能な仮想シミュレーション環境を提供する。【解決手段】産業用装置全体を制御する装置コントローラ２１におけるスレーブモジュール２２〜２４とＭＰＵ２１００とのデータ転送を、仮想機器４とのデータ転送に、高速データ転送Ｉ／Ｆ回路２１８０の指示によって適宜切り替える。このデータ転送の出力方向を仮想機器４等に切り替えることで、仮想シミュレーション環境でのソフトウェア開発や、実機の動作解析・学習・診断が行え、短期に、質の高い装置を開発することできる。【選択図】図３
2007133579.tif 000002
【特許請求の範囲】
【請求項１】
産業用装置を構成する実機と通信可能なバスを装備したラック内に、ソフトウェアを搭載した装置コントローラおよび１つ以上のスレーブモジュールを収納し、前記ラックの外部に前記実機の動作を摸擬する仮想機器および操作端末を接続した産業用装置の仮想シミュレーションシステムにおいて、
前記装置コントローラは、前記バスを介して前記実機と通信される通信データと同じデータを使用して前記仮想機器と通信を行うデータ転送インターフェイス回路を備えた
ことを特徴とする産業用装置の仮想シミュレーションシステム。
【請求項２】
前記装置コントローラは、動作モードとして、第一のモードと第二のモードとを有し、
前記第一のモードは、前記装置コントローラに前記実機が接続されている場合に、前記装置コントローラが内蔵するＭＰＵおよび前記実機間の通信を、前記スレーブモジュールを介して行わせるモードであり、
前記第二のモードは、前記ＭＰＵおよび前記仮想機器間の通信を行わせるモードであって、
前記装置コントローラは、
前記第一のモードと前記第二のモードとを切り替える機能を持つモード切替手段と、
前記モード切替手段によって、第二のモードに切り替えた場合に、
前記仮想機器から受信したデータを前記ＭＰＵに送信し、
前記ＭＰＵから送信するデータを、前記第一のモードと同じタイミングかつ同じデータとして前記仮想機器に送信するデータ送信先切替手段とを備えた
ことを特徴とする請求項１に記載の産業用装置の仮想シミュレーションシステム。
【請求項３】
前記装置コントローラは、
前記仮想機器および前記実機が前記装置コントローラに接続された状態で、前記第一のモードおよび前記第二のモードを併せて行う第三のモードを有し、
前記仮想機器は、
前記実機から前記装置コントローラへ送信する情報を取得し、前記実機の処理動作の学習を行う学習手段を備え、
前記第三のモードでは、前記仮想機器は、前記学習手段により前記実機の処理動作の学習を行うこと
を特徴とする請求項２に記載の産業用装置の仮想シミュレーションシステム。
【請求項４】
前記仮想機器は、
前記装置コントローラから受信した情報を用いて前記実機の処理を模擬し、当該模擬による処理結果である第一の処理結果と、前記実機から受信した当該実機による処理結果である第二の処理結果とを出力する出力手段を備え、
前記モード切替手段は操作者により操作されるものであり、前記第一のモードと前記第二のモードとが前記モード切替手段により切り替えられることで、前記仮想機器の出力手段によって操作端末へ出力し、前記第一の処理結果および前記第二の処理結果を操作端末において比較可能とすること
を特徴とする請求項３に記載の産業用装置の仮想シミュレーションシステム。
【請求項５】
前記仮想機器は、
前記モード切替手段により前記第三のモードに切り替えられることで、前記仮想機器の出力手段によって前記第一の処理結果と前記第二の処理結果とを操作端末へ出力し、第一の処理結果および前記第二の処理結果とを操作端末において同時に比較可能とすること
を特徴とする請求項４に記載の産業用装置の仮想シミュレーションシステム。
【請求項６】
前記装置コントローラは、
前記仮想機器および前記実機間の通信を前記スレーブモジュールを介して行わせる第四のモードを有し、
前記仮想機器は予め、
前記装置コントローラから前記実機へ送信する第一の情報と、
前記実機から前記装置コントローラへ送信する第二の情報とを取得しておき、
前記第四のモードでは、前記仮想機器が、
前記取得した第一の情報を、前記仮想機器から前記実機へ送信し、前記実機から送信されてきた第三の情報と、前記取得した第二の情報とを出力する出力手段を備え、
前記出力手段によって前記第三の情報と前記第二の情報とを操作端末へ出力し、前記第三の情報および前記第二の情報を操作端末において比較可能とすること
を特徴とする請求項３に記載の産業用装置の仮想シミュレーションシステム。
【請求項７】
前記モード切替手段は、
前記ＭＰＵからの指令、前記データ転送インターフェイス回路を介した前記仮想機器からの指令、またはデータ転送インターフェイス回路に接続されるモード切替器からの指令により、前記モードの切替動作を行うもの
であることを特徴とする請求項２から請求項５のいずれか１項に記載の産業用装置の仮想シミュレーションシステム。
【請求項８】
産業用装置を構成する実機と通信可能なバスを装備したラック内に、ソフトウェアを搭載した装置コントローラおよび１つ以上のスレーブモジュールを収納し、前記ラックの外部に前記実機の動作を摸擬する仮想機器を接続した産業用装置の仮想シミュレーションシステムにおける前記装置コントローラであって、
前記バスを介して前記実機と通信される通信データと同じデータを使用して前記仮想機器と通信を行うデータ転送インターフェイス回路と、
通信状態における動作のモードを切り替えるモード切替器とを備え、
前記装置コントローラが、内蔵するＭＰＵおよび前記スレーブモジュール間の通信を行う第一のモードと、
前記ＭＰＵおよび前記仮想機器間の通信を行う第二のモードと、
前記第一のモードおよび前記第二のモードを併せて行う第三のモードと、
前記仮想機器および前記実機間の通信をスレーブモジュールを介して行う第四のモードとを有し、
前記モード切替器からの指令により前記複数のモードを切り替えてデータを送受信するように構成した
ことを特徴とする産業用装置の装置コントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、産業用装置の仮想シミュレーションシステムおよび装置コントローラに関する。
【背景技術】
【０００２】
半導体製造の分野で利用されている製造・検査・評価装置や、医療の分野で用いられている自動分析装置等の大規模装置においては、異なる機能を有する複数の基板（ボード）を用いて、装置内制御システムを構成する方法が知られている。これは、装置の機能全体を１枚の基板で実現すると、基板が大きくなりすぎ、処理が複雑になるため、複数の基板に機能を分散することによって、装置自体の保守やバージョンアップを容易にしている。
【０００３】
前記の考え方は一般的であり、業界で標準化されている。基板を構成するための規格、例えばＶＭＥバス（Versa Module Europe：IEEE1014標準の非同期バス）やコンパクトＰＣＩ（Peripheral Components Interconnect）バス等を共通バスとしてマザーボードに収納している。この共通バスにそれぞれ並列に接続された複数個のスロットを設け、各々のスロットに基板を挿入したラック実装形態であるバックプレーン収納型のシステムが、装置内制御システムに広く適用されている。
【０００４】
このＶＭＥバス等の規格に準じた基板を用いた装置内の制御システムでは、装置全体の管理を行う基板であるマスタモジュールと、各機能を実現する基板である複数のスレーブモジュールとを有して構成される。ＶＭＥバス等の構成や制御は、マスタモジュールが管理しているため、装置全体の機能や構成もマスタモジュールが把握することになる。マスタモジュールはＭＰＵ（Micro Processing Unit）を搭載して、組み込まれたプログラムにより装置全体の制御を行うことから、装置コントローラまたは組込みコントローラと呼ばれている。
【０００５】
図８に、従来の装置コントローラの構成を示す。装置コントローラ（基板）２１は、ＶＭＥバスのコネクタ２１３２を図示しないバックプレーンに接続することにより、ＶＭＥバスバッファ２１３１を介して動作電力が供給される。装置コントローラ２１はＭＰＵ２１００を内蔵し、主記憶メモリ２１２０に格納されるプログラムに基づいて動作する。装置コントローラ２１と図示しない産業用装置の実機との通信は、ＭＰＵ２１００からＭＰＵバス２１０１、システム制御ＬＳＩ２１１２、ＰＣＩバス２１０２、ＶＭＥ−ＰＣＩバスブリッジ２１３０、ＶＭＥバスバッファ２１３１、コネクタ２１３２、以下図示しないバックプレーンに接続されたスレーブモジュール、所定の伝送線を介して実機へとデータが送受信されることで行われている。なお、図８において、符号を用いて指し示した要素のうち、未説明なものは、後記する実施形態で説明する。
【０００６】
また、特許文献１では、装置コントローラに内部論理回路をコンフィグレーションする方式の複数のゲートアレイ（ＦＰＧＡ）を搭載し、内部論理回路を機能毎に分割して複数のゲートアレイに分割して格納する技術を開示している。
【０００７】
近年、各種分野の製造装置、検査装置、および分析装置等に用いられている産業用装置は、コンピュータ技術等の発展とともに、自動化、高性能化が進んでおり、産業用装置の役割は極めて重要になってきている。これらの要求を実現するために、さらに、産業用装置をさらに高機能で高信頼化する必要性、つまり、装置の高度化に対する要求が増してきており、それに対応して、装置に内蔵するソフトウェアのボリュウムが急減に増大してきている。このため、新製品の装置開発に占めるソフトウェア開発の割合が増大し、短期間で製品を開発するのが難しくなっており、それに対応する方法として、ソフトウェアデバッグ用に、暫定的に装置コントローラとスレーブモジュールの部分デバッグ環境を事前に用意したり、複数台の装置を試作したり、といった対策がなされている。
【特許文献１】特許３６８６３８０号公報（段落「００１２」〜「００２５」、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、前記の方法をとった場合でも、装置（実機）のハードウェアを製作した後でなければ、本格的なソフトウェアデバッグが行えないといった課題がある。装置開発プロセス全体では、機能、性能、および信頼性等に関する検証部分において、ハードウェア開発とソフトウェア開発がシリーズにしか行えないため、開発期間の短縮に関して抜本的な解決には至っていない。
【０００９】
このため、装置の開発期間を根本的に短縮するには、今までの装置開発プロセスと、次元の違うレベルでソフトウェア開発を行う必要があり、特に、ハードウェアとソフトウェアの並行開発を実現することが必須となる。
【００１０】
本発明は、産業用装置を含む電子装置の高度化に対応し、非実機の環境で、実機と同じソフトウェアのデバッグが出来る技術を提供することを課題とする。
【課題を解決するための手段】
【００１１】
前記した課題を解決するため、本発明は、産業用装置を構成する実機と通信可能なバスを装備したラック内に、ソフトウェアを搭載した装置コントローラおよび１つ以上のスレーブモジュールを収納し、前記ラックの外部に前記実機の動作を摸擬する仮想機器を接続した産業用装置の仮想シミュレーションシステムにおいて、前記装置コントローラは、前記バスを介して前記実機と通信される通信データと同じデータを使用して前記仮想機器と通信を行うデータ転送インターフェイス回路を備えた構成とした。
【００１２】
かかる構成によれば、パーソナルコンピュータ（以下「ＰＣ」と適宜記載）で仮想機器を構成した場合、仮想機器と装置コントローラ、および、装置コントローラへ直接接続するヒューマンインターフェイス用のＰＣという構成で、仮想機器を実機とした仮想環境を構築できるようにしたことで、試作装置のハードウェアの製作工程と係わりを持つことなく、ソフトウェアの開発を行うことができる。
【００１３】
さらにかかる構成によれば、装置コントローラとスレーブモジュールとの送受信を行うデータを、データ転送インターフェイス回路を介して仮想機器へ並行して通信出力するため、仮想機器内の仮想ハードウェアのタイミング等を比較・解析・学習できる。
【００１４】
さらにかかる構成によれば、装置コントローラ搭載のマイクロプロセッサを介することなく、仮想機器がスレーブモジュールとの通信を、データ転送インターフェイス回路を介して行えるので、装置コントローラの動作やタイミング等の診断および学習を行うことができる。
【発明の効果】
【００１５】
本発明によれば、装置コントローラと、ＰＣで構成する仮想機器とを含んだシステム構成で、実機と同じ環境でソフトウェアのデバッグ等が行えるため、実機が無い状態でもソフトウェア開発が行える。従って、ハードウェアとソフトウェアの並行開発が実現できるため、装置の開発期間を短縮できる。
【発明を実施するための最良の形態】
【００１６】
本発明を実施するための最良の形態（以下「実施形態」と適宜記載）を詳細に説明する。図１は、大規模な産業用装置の概略構造とこの産業用装置内の各デバイスの配置を示した概略構造図である。ここでの大規模な産業用装置とは、半導体製造の分野で使われている製造装置や検査装置、理化学や医療の分野で使われている分析装置や自動化装置等に代表される。装置内には多数のＩ／Ｏを有し、製造、検査、分析等の処理を行うための搬送制御や、センサ／アクチュエータの制御が行なわれている。
【００１７】
図１における装置内には、モータ、バルブ、センサ等の多数のフィールドデバイス１が分散配置されている。装置制御ラック２内のスレーブモジュール（２２〜２４）と、フィールドデバイス１とが配線５により接続され、装置制御ラック２内の装置コントローラ２１がスレーブモジュール（２２〜２４）を介してフィールドデバイス１を制御している。ヒューマンインターフェイス機器（操作端末）３は、Ethernet（登録商標）等のＬＡＮ（Local Area Network）を介して装置コントローラ２１と接続され、操作者がシステムの製造、検査、分析等の処理を行うための操作を、このヒューマンインターフェイス機器３を介して行うとともに、各処理の進行状況を画面表示する。
【００１８】
図２は、ＶＭＥバスを使用した装置制御ラックの構造例を示す図である。装置制御ラック２は、ＶＭＥバス対応のバックプレーン２０、装置コントローラ２１およびスレーブモジュール（２２〜２４）からなる。このスレーブモジュール（２２〜２４）は、RS-232C（Recommended Standard 232 version C）等の拡張通信を行うスレーブモジュール２２、パルスモータの制御処理を行うスレーブモジュール２３、センサ／アクチュエータの制御処理を行うスレーブモジュール２４等を含む。
【００１９】
装置コントローラ２１は、装置制御ラック２内で取り付け可能な枚数は１枚であり、取り付けるスロットは指定されている。スレーブモジュール（２２〜２４）は、装置の規模に応じて複数枚実装することが可能であり、装置制御ラック２内には将来の機能拡張を考慮して増設用のスロットが設けられてもよい。これら基板の動作電力は、バックプレーン２０内を亘っている例えば＋５Ｖ等の電源ラインを介して供給されている。
【００２０】
装置制御ラック２の内部に実装される、装置コントローラ２１およびスレーブモジュール（２２〜２４）等の基板は、装置制御ラック２内のバックプレーン２０に実装されているＶＭＥバスを介して接続される。また、各種スレーブモジュール（２２〜２４）は、ＶＭＥバスを介して接続される装置コントローラ２１の指示に従い、Ｉ／Ｏ制御の処理を行っている。このため、図１の各フィールドデバイス１は、装置コントローラ２１のＭＰＵが各スレーブモジュール（２２〜２４）を介して制御する構成となっている。
【００２１】
図３は、本実施形態における産業用装置における装置コントローラの構成例を示すブロック図である。前記のように、装置コントローラ２１は、ＶＭＥバスのコネクタ２１３２を図２のバックプレーン２０に接続することにより、バックプレーン２０からコネクタ２１３２、ＶＭＥバスバッファ２１３１、ＶＭＥ−ＰＣＩバスブリッジ２１３０を介して動作電力が供給される構成となっている。また、装置コントローラ２１は、高性能なＭＰＵ２１００を内蔵し、通常、主記憶メモリ２１２０に組み込まれたプログラムに従い動作を行っている。
【００２２】
装置コントローラ２１のフロントパネルには、フィールドデバイス１と接続するため、通信Ｉ／Ｆ用のコネクタが配置されている。具体的には、ＬＡＮ、ＵＳＢ（Universal Serial Bus）、RS-232C等の通信インターフェイス（以下「通信Ｉ／Ｆ」と適宜記載）のコネクタを配置し、通信Ｉ／Ｆの図示しない専用チップを制御するために、ＭＰＵ２１００と専用チップとの間をＰＣＩバス２１０２とローカルバス２１０３とで接続している。ここで、コネクタ２１４２はヒューマンインターフェイス機器３（図１）や図示しない上位システムと接続するためのＬＡＮ通信用コネクタであり、コネクタ２１５２はＵＳＢメモリ等の補助記憶装置等と接続するためのＵＳＢ通信用コネクタであり、コネクタ２１６２はバーコードリーダーや装置の周辺機器とRS-232C等で接続するためのRS-232C通信用コネクタである。
また、コネクタ２１７２は、装置の情報を記憶しておくための不揮発性メモリ２１７３と接続するためのコネクタである。不揮発性メモリ２１７３の例としては、不揮発性メモリカード等が搭載される。
【００２３】
不揮発性メモリ２１７３は、装置コントローラ２１から着脱が可能なメモリカード形態のモジュールとなっており、例えば１２８ＭＢから１ＧＢ程度の容量を備えている。また、不揮発性メモリ２１７３は、装置の制御プログラムや装置コントローラ２１の診断・保守プログラムの他に、装置の動作条件等の設定値、装置内各部の動作履歴・保守情報等の機密情報を格納している。
【００２４】
これらの通信Ｉ／Ｆは、前記した、図示しない専用チップを備えた通信専用コントローラから、各通信固有のＭＡＵ（Medium Attachment Unit）を介して外部の機器と通信を行う。つまり、ＬＡＮコントローラ２１４０はＬＡＮ ＭＡＵ２１４１を介してＬＡＮ通信を行い、ＵＳＢコントローラ２１５０はＵＳＢ ＭＡＵ２１５１を介しＵＳＢ通信を行い、RS-232Cコントローラ２１６０はドライバレシーバ２１６１を介してRS-232C通信を行う。
また、不揮発性メモリ２１７３との通信は、外部メモリＩ／Ｆ回路２１７０を介して行う構成となっている。
各通信専用コントローラ（２１４０，２１５０，２１６０）および外部メモリＩ／Ｆ回路２１７０は、ＰＣＩバス２１０２やローカルバス２１０３対応となっている。このため、装置コントローラ２１の内部には、ＭＰＵ２１００のアドレスバス、データバス、および制御線からなるＭＰＵバス２１０１の他に、ＰＣＩバス２１０２とローカルバス２１０３とが布線されている。
【００２５】
コネクタ２１８２は、仮想機器と接続するためのコネクタであり、本実施形態の１つである仮想モード（第二のモード）、学習モード（第三のモード）、およびテストモード（第四のモード）実施時に使用する。仮想機器および各モードの詳細な説明は、図４〜７を用いて後記する。
【００２６】
図３の構成では、装置コントローラ２１と図２のバックプレーン２０とをＶＭＥバスで接続するため、ＶＭＥ−ＰＣＩバスブリッジ２１３０をＰＣＩバス２１０２に接続した構成としているが、ＶＭＥバスの処理性能を向上させる必要がある場合は、ＶＭＥ−ＰＣＩバスブリッジ２１３０をＭＰＵバス２１０１に直接接続する構成に内部の構成も含めて変更してもよい。
【００２７】
主記憶メモリ２１２０は、例えば複数個のＳＤＲＡＭ（Synchronous DRAM）により構成され、ＭＰＵ２１００が実行するためのプログラムやそのワークエリアとして使用される。
【００２８】
システム制御ＬＳＩ２１１２は、装置コントローラ２１内のＰＣＩバス２１０２およびローカルバス２１０３等個別に動作するバスと、ＭＰＵ２１００および主記憶メモリ２１２０間の動作の調停を行っている。
【００２９】
ＲＴＣ２１９０はカレンダ機能を持った時計であり、ＭＰＵ２１００はローカルバス２１０３を経由してその情報を読み出したり、ＲＴＣ２１９０を設定したりすることができる。
【００３０】
高速データ転送インターフェイス回路（以下「高速データ転送Ｉ／Ｆ回路」と適宜記載）（データ転送インターフェイス回路）２１８０は、システム制御ＬＳＩ２１１２、ＰＣＩバス２１０２を介して、ＶＭＥバスのコネクタ２１３２で接続されたスレーブモジュール（２２〜２４）とＭＰＵ２１００との通信データを仮想機器４等に併せて送信又は転送する機能を有しており、モード切替器２１８１からの信号（例えば、モード切替器２１８１に備えられるスイッチ等）によって、データを送信する方向や、通信を行うインタフェースが切り替えられる。
【００３１】
［各モードと動作］
図６に、モード切替器によって切り替えられる各モードと通信機器を示す。図５は図６の各モードにおける、装置コントローラ２１の動作フローである。図５に沿って、適宜図６を参照しながら各モードと装置コントローラ２１の動作について説明する。
【００３２】
（実機モード）
図６の実機モード（第一のモード）の装置構成は、図１に示す形態である。
実機モードは、図３における装置コントローラ２１のＭＰＵ２１００とフィールドデバイス１（実機）との間のデータ通信を、複数のスレーブモジュール（２２〜２４）を介して行うモードであり、ＭＰＵ２１００、ＭＰＵバス２１０１、システム制御ＬＳＩ２１１２、ＰＣＩバス２１０２、ＶＭＥ−ＰＣＩバスブリッジ２１３０、ＶＭＥバスバッファ２１３１およびコネクタ２１３２を介して通信が行われる。この場合、仮想機器４（図４）との通信は行われない。
【００３３】
図５（ａ）に沿って実機モードを詳細に説明すると、装置コントローラ２１の高速データ転送Ｉ／Ｆ回路２１８０は、ＭＰＵ２１００からシステム制御ＬＳＩ２１１２へのデータ送信を監視し（Ｓ６１１）、送信データがあった場合に（Ｓ６１２→有）、該当スレーブモジュール（２２〜２４）へ当該データを送信するよう、システム制御ＬＳＩ２１１２へ指示する（Ｓ６１３）。これによって、ＭＰＵ２１００から該当スレーブモジュールへデータが送信される。一方、送信データが無かった場合（Ｓ６１２→無）は、ステップＳ６１１の処理に戻る。
さらに、高速データ転送Ｉ／Ｆ回路２１８０は、スレーブモジュール（２２〜２４）から装置コントローラ２１へ送信される、送信データの有無を監視し（Ｓ６１４）、送信データがあった場合に（Ｓ６１５→有）、ＭＰＵ２１００へ当該データを送信するよう、システム制御ＬＳＩ２１１２へ指示する（Ｓ６１６）。これによって、スレーブモジュール（２２〜２４）からＭＰＵ２１００へデータが送信される。一方、送信データが無かった場合（Ｓ６１５→無）は、ステップＳ６１４の処理に戻る。
【００３４】
この実機モードは、産業用装置が顧客先に設置される等、実際の装置として使用する場合に設定される。
【００３５】
（仮想モード）
図６の仮想モード（第二のモード）の装置構成は、図４に示す形態であり、装置制御ラック２内の装置コントローラ２１が、図３のコネクタ２１８２を介して仮想機器４と接続されている。また、ヒューマンインターフェイス機器３は、前記したとおりＬＡＮを介して装置コントローラ２１と接続されている。
仮想機器４が、実機と同様の処理を行う機能を含んでいることで、仮想的な装置環境が構築され、実機と同一レベルでのヒューマンインターフェイス機器３を用いた仮想機器４の処理の進行状況の画面表示や、ソフトウェアの開発およびデバッグを行うことが可能となる。
【００３６】
仮想モードは、前記した実機モード（ＭＰＵ２１００とフィールドデバイス１間のスレーブモジュール（２２〜２４）を介したデータ転送）の代わりに、高速データ転送Ｉ／Ｆ回路２１８０を介して、ＭＰＵ２１００と図４の仮想機器４との間でデータ通信を行うモードである。ここでは、ＭＰＵ２１００からＭＰＵバス２１０１、システム制御ＬＳＩ２１１２、高速データ転送Ｉ／Ｆ回路２１８０、コネクタ２１８２を介して仮想機器４との通信が行われる。
なお、システム制御ＬＳＩ２１１２は実機モードの場合と同じ処理を行い（ＶＭＥバスへ送信する信号を監視し）、高速データ転送Ｉ／Ｆ回路２１８０によって、スレーブモジュール（２２〜２４）への送信から仮想機器４へのデータ転送と切り替えられるため、データ転送を行うタイミングは、スレーブモジュール（２２〜２４）と行う場合と同時であり、かつ、主記憶メモリ２１２０に搭載されている制御ソフトウェアを変更することなく、図４の仮想機器４を実機と見立てて処理が行われるため、図４に示すような、実機が無い構成においても、ソフトウェア開発が行えるという効果がある。
【００３７】
図５（ｂ）に沿って、仮想モードを詳細に説明すると、高速データ転送Ｉ／Ｆ回路２１８０は、ＭＰＵ２１００からシステム制御ＬＳＩ２１１２へのデータ送信を監視し（Ｓ６２１）、送信データがあった場合に（Ｓ６２２→有）、システム制御ＬＳＩ２１１２から、自身である高速データ転送Ｉ／Ｆ回路２１８０を介して、仮想機器４へ当該データを送信するよう、システム制御ＬＳＩ２１１２へ指示する（Ｓ６２３）。これによって、ＭＰＵ２１００から仮想機器４へデータが送信される。一方、送信データが無かった場合（Ｓ６２２→無）は、ステップＳ６２１の処理に戻る。
さらに、高速データ転送Ｉ／Ｆ回路２１８０は、仮想機器４から装置コントローラ２１へ送信される、送信データの有無を監視し（Ｓ６２４）、送信データがあった場合に（Ｓ６２５→有）、自身である高速データ転送Ｉ／Ｆ回路２１８０を介して、ＭＰＵ２１００へ当該データを送信するよう、システム制御ＬＳＩ２１１２へ指示する（Ｓ６２６）。これによって、仮想機器４からＭＰＵ２１００へデータが送信される。一方、送信データが無かった場合（Ｓ６２５→無）は、ステップＳ６２４の処理に戻る。
【００３８】
この仮想モードによって、仮想機器４が装置コントローラ２１から受信したデータを用いて処理を行った処理結果と、フィールドデバイス１（実機）から受信した処理結果とを、ヒューマンインタフェース機器３の画面等に出力することで、フィールドデバイス１（実機）と仮想機器４とのそれぞれの動作を操作者が比較することが出来る。
また、仮想機器４内において、フィールドデバイス１（実機）では起こしにくい動作タイミング、異常、エラー等を、シミュレーション環境として任意に発生させることが容易に実現でき、ソフトウェア開発の機能検証が行えるため、品質の高い産業用装置が開発できる。
【００３９】
さらに、従来の実機を用いたソフトウェアデバッグでは、ソフトウェアに起因する動作不良により実機を壊すことなく実施する必要があり、実機の立ち上げは部分的な動作確認を行いながら徐々に行うため、多大な時間と労力を費やすといった問題があった。しかしながらこの仮想モードでは、壊すといった現象がなく、しかも部分的な動作確認も必要ないため、一度にソフトウェアの動作検証を行うことで、ソフトウェアの品質を短期間に高められ、ソフトウェアデバッグ期間を大幅に短縮できる。
【００４０】
（学習モード）
図６の学習モード（第三のモード）の装置構成は、図７に示す形態であり、装置制御ラック２内の装置コントローラ２１が、複数のスレーブモジュール（２２〜２４）に加えて、仮想機器接続コネクタ６を介して、スレーブモジュール（２２〜２４）と同じタイミングで仮想機器４へもデータ送信が行われる。なお、仮想機器接続コネクタ６は、産業用装置の側面などに設けられる外部接続用のコネクタであり、装置コントローラ２１のコネクタ２１８２と接続されている。
学習モードは、仮想機器４がフィールドデバイス１（実機）の動作やその詳細なタイミングを摸擬するためにそれらを学習したり、また逆に、フィールドデバイス１（実機）の動作やその詳細タイミングを規定の動作フローやタイミングデータと比較することで、産業用装置の動作を解析したりする場合に使う。
【００４１】
学習モードは、図３におけるＭＰＵ２１００と複数のスレーブモジュール（２２〜２４）との間のデータ送受信を、スレーブモジュール（２２〜２４）側と同時に、高速データ転送Ｉ／Ｆ回路２１８０を介して、図７の仮想機器４とも行うモードである。ここでは、前記実機モードのＭＰＵ２１００およびスレーブモジュール（２２〜２４）間の通信に加えて、ＭＰＵ２１００、ＭＰＵバス２１０１、システム制御ＬＳＩ２１１２、高速データ転送Ｉ／Ｆ回路２１８０、コネクタ２１８２を介した、ＭＰＵ２１００および仮想機器４間の通信も同時に行われる。
なお、この場合も、前記した仮想モードと同様に、システム制御ＬＳＩ２１１２は実機モードの場合と同じ処理を行い、高速データ転送Ｉ／Ｆ回路２１８０によってスレーブモジュール（２２〜２４）との通信に加えて、ＭＰＵ２１００と仮想機器４間での通信も同時に行われる。そのため、主記憶メモリ２１２０に搭載されている制御ソフトウェアを変更することなく、ＭＰＵ２１００とフィールドデバイス１（実機）間で送受信されるデータを、ヒューマンインターフェイス機器３においてリアルタイムに取得し、エラーチェックが行えるという効果がある。
【００４２】
図５（ｃ）に沿って学習モードを詳細に説明すると、高速データ転送Ｉ／Ｆ回路２１８０は、ＭＰＵ２１００からシステム制御ＬＳＩ２１１２へのデータ送信を監視し（Ｓ６３１）、送信データがあった場合に（Ｓ６３２→有）、該当スレーブモジュール（２２〜２４）、および自身である高速データ転送Ｉ／Ｆ回路２１８０を介して仮想機器４へ、当該データを送信するよう、システム制御ＬＳＩ２１１２へ指示する（Ｓ６３３）。これによって、ＭＰＵ２１００から該当スレーブモジュール（２２〜２４）および仮想機器４にデータが送信される。一方、送信データが無かった場合（Ｓ６３２→無）は、ステップＳ６３１の処理に戻る。
さらに、高速データ転送Ｉ／Ｆ回路２１８０は、スレーブモジュール（２２〜２４）から装置コントローラ２１へ送信される、送信データの有無を監視し（Ｓ６３４）、送信データがあった場合に（Ｓ６３５→有）、ＭＰＵ２１００、および自身である高速データ転送Ｉ／Ｆ回路２１８０を介して仮想機器４へ、当該データを送信するよう、システム制御ＬＳＩ２１１２へ指示する（Ｓ６３６）。これによって、スレーブモジュール（２２〜２４）から仮想機器４へデータが送信される。一方、送信データが無かった場合（Ｓ６３５→無）は、ステップＳ６３４の処理に戻る。
【００４３】
この学習モードによって、仮想機器４が装置コントローラ２１から受信したデータを用いて行った処理結果と、フィールドデバイス１（実機）から受信した処理結果とをヒューマンインターフェイス機器３の画面等に表示させることで、リアルタイムに操作者が両方の情報を比較することが可能となる。そのため、フィールドデバイス１（実機）の処理動作やその詳細タイミング等の情報をフィールドデバイス１（実機）から取得し、その処理動作や詳細タイミング等の学習を行うことで、実際のフィールドデバイス１（実機）に近いレベルの仮想機器４が容易に実現できる。
【００４４】
また、実機の動作を外部から解析することで、実機の動作不良を検出したり、実機毎の性能のバラツキを比較して、規定の範囲内に納まっているか等を判定したりでき、産業用装置全体の不具合や異常予知等が行えるといったメンテナンス性や信頼性の高い産業用装置を提供できるという効果がある。
【００４５】
（テストモード）
図６のテストモード（第四のモード）の装置構成は、図７に示す形態である。しかしながらこのテストモードは、前記した学習モードとは異なり、ＭＰＵ２１００との通信は行わず、仮想機器４とスレーブモジュール（２２〜２４）との間のデータ転送を伴うことで、図３の主記憶メモリ２１２０に搭載されているソフトウェアの動作指令と切り離して、仮想機器４側からスレーブモジュール（２２〜２４）への動作指令を行う場合に使う。
テストモードでは、仮想機器４から（仮想機器接続コネクタ６）、コネクタ２１８２、高速データ転送Ｉ／Ｆ回路２１８０、システム制御ＬＳＩ２１１２、ＰＣＩバス２１０２、ＶＭＥ−ＰＣＩバスブリッジ２１３０、ＶＭＥバスバッファ２１３１およびコネクタ２１３２を介してスレーブモジュール（２２〜２４）との通信が行われる。
【００４６】
図５（ｄ）に沿ってテストモードを詳細に説明すると、高速データ転送Ｉ／Ｆ回路２１８０は、仮想機器４から自身である高速データ転送Ｉ／Ｆ回路２１８０へのデータ送信を監視し（Ｓ６４１）、送信データがあった場合に（Ｓ６４２→有）、該当スレーブモジュール（２２〜２４）へ、当該データを送信するよう、システム制御ＬＳＩへ指示する（Ｓ６４３）。これによって、仮想機器４から該当スレーブモジュール（２２〜２４）へデータが送信される。一方、送信データが無かった場合（Ｓ６４２→無）は、ステップＳ６４１の処理に戻る。
さらに、高速データ転送Ｉ／Ｆ回路２１８０は、スレーブモジュール（２２〜２４）から装置コントローラ２１へ送信される、送信データの有無を監視し（Ｓ６４４）、送信データがあった場合に（Ｓ６４５→有）、仮想機器４へ当該データを送信するよう、システム制御ＬＳＩ２１１２へ指示する（Ｓ６４６）。これによって、スレーブモジュール（２２〜２４）から仮想機器４へデータが送信される。一方、送信データが無かった場合（Ｓ６４５→無）は、ステップＳ６４４の処理に戻る。
【００４７】
このテストモードによって、装置コントローラ２１からフィールドデバイス１（実機）へ送信した第一の情報と、フィールドデバイス１（実機）から装置コントローラ２１へ送信した処理結果である第二の情報とを、仮想機器４で取得しておき、仮想機器４からこのテストモードによってフィールドデバイス１（実機）へ第一の情報をスレーブモジュール（２２〜２４）を介して送信し、フィールドデバイス１（実機）から送信されてきた処理結果である第三の情報と、予め取得していた第二の情報とをヒューマンインターフェイス機器３の画面等に表示させることで、操作者が比較することが可能となる。
例えば図１の装置構成において実機モードによる動作を行っているときに原因不明の不具合や異常動作がある場合、図７のシステム構成のように、仮想機器接続コネクタ６を介して仮想機器４を接続し、装置コントローラ２１のソフトウェアを介在させることなく、装置コントローラ２１のハードウェアをテスト(診断)できるため、ハードウェアの故障かソフトウェアの不具合か等の切り分けが容易に行えるという効果がある。
【００４８】
本実施形態では、前記した各モードの切り替えは、モード切替器２１８１に含まれるスイッチからの指令によって行われることとしたが、これに限らず、装置コントローラ２１内のＭＰＵ２１００や、高速データ転送Ｉ／Ｆ回路２１８０を介した仮想機器４等からの信号によって各モードの切り替えが行われてもよい。また、その他についても、本発明の趣旨を逸脱しない範囲で変形可能である。
【００４９】
従来の産業用装置の開発は、実機が完成するまではソフトウェアに実機を接続した状態でのテストを行うことはできなかった。また、ソフトウェア単体でのテストを行っていても、実機を接続した段階でのテストの結果がうまくいかないと、長期間、ソフトウェアのデバッグ作業で実機を占有することになり、開発段階において多くの時間と手間を要していた。
しかし、本発明によれば、実機が完成されるまでの間は仮想機器を接続してテストを行うことができ、また、実機を接続した状態でも、テスト中にエラーが発生したらすぐに仮想モード、学習モード、テストモード等に切り替えてデバッグができるので、システム開発における工程間の壁を無くすことが可能となる。さらに、実機では発生頻度の少ないエラーについても、仮想機器で作成してテストを行うことで、実機の環境では困難であったテストを容易に行うこともできる。
【図面の簡単な説明】
【００５０】
【図１】本実施形態における実機環境（実機モード）を実現する概略構造図。
【図２】図１の装置制御ラックの構造例を示す図。
【図３】本発明の実施形態における装置コントローラの構成例を示すブロック図。
【図４】本実施形態における仮想環境（仮想モード）を実現する概略構造図。
【図５】本実施形態の各モードにおける動作フローであり、（ａ）実機モード、（ｂ）仮想モード、（ｃ）学習モード、（ｄ）テストモードを示す図。
【図６】本実施形態の各モードと通信機器を示す図。
【図７】本実施形態における仮想環境（学習モード、テストモード）を実現する概略構造図。
【図８】従来の産業用装置における装置コントローラの構成を示すブロック図。
【符号の説明】
【００５１】
１      フィールドデバイス（実機）
２      装置制御ラック
３      ヒューマンインターフェイス機器（操作端末）
４      仮想機器
２１    装置コントローラ
２１００  ＭＰＵ
２１１２  システム制御ＬＳＩ
２１２０  主記憶メモリ
２１８０  高速データ転送Ｉ／Ｆ回路（データ転送インターフェイス回路）
２１８１  モード切替器
【図１】
2007133579.tif 000003
【図２】
2007133579.tif 000004
【図３】
2007133579.tif 000005
【図４】
2007133579.tif 000006
【図５】
2007133579.tif 000007
【図６】
2007133579.tif 000008
【図７】
2007133579.tif 000009
【図８】
2007133579.tif 000010