(57)【要約】【課題】実機の動作およびシミュレーションにおいて、コントローラと入出力装置との間のインタフェースの設計の手間を低減することができるシミュレーション装置およびシミュレーションプログラムを提供する。【解決手段】入出力マップ記憶部３６は、コントローラのポートと、入出力装置のポートの接続関係を表わす入出力マップを記憶する。  モデルプログラム実行部２３は、ユーザ入力部を通じて、ユーザによってライブラリから選択されたコントローラのモデルプログラムと、入出力装置のモデルプログラムと、制御対象機器のモデルプログラムとを実行する。モデルプログラム実行部２３は、コントローラのモデルプログラムを実行する際に、入出力マップに基づいて、入出力装置のプログラムとの間でデータの授受を行なう。【選択図】図４
2015046082.tif 000002
【特許請求の範囲】
【請求項１】
コントローラのポートと、入出力装置のポートの接続関係を表わす入出力マップを記憶する第１の記憶部と、
前記コントローラの動作を模擬したモデルプログラム、前記入出力装置の動作を模擬したモデルプログラム、および制御対象機器の動作を模擬したモデルプログラムのライブラリを記憶する第２の記憶部と、
ユーザの操作入力を受け付けるユーザ入力部と、
前記ユーザ入力部を通じて、前記第２の記憶部内のライブラリからユーザによって選択されたコントローラのモデルプログラムと、入出力装置のモデルプログラムと、制御対象機器のモデルプログラムとを実行するモデルプログラム実行部とを備え、
前記モデルプログラム実行部は、前記コントローラのモデルプログラムを実行する際に、前記入出力マップに基づいて、前記入出力装置のモデルプログラムとの間でデータの授受を行なう、シミュレーション装置。
【請求項２】
前記選択された入出力装置のモデルプログラムを表わす図形、および前記選択されたコントローラのモデルプログラムを表わす図形を表示するとともに、前記入出力マップに基づいて、前記選択されたコントローラのモデルプログラムの仮想ポートと前記選択された入出力装置の仮想ポートとの接続を表わす接続線を表示する可視化部をさらに備えた、請求項１記載のシミュレーション装置。
【請求項３】
前記ユーザ入力部からのユーザによる指定に基づき、前記コントローラのポートと前記入出力装置のポートとの接続関係を定めた前記入出力マップを作成して、前記第１の記憶部に書き込むマップ作成部をさらに備える、請求項１記載のシミュレーション装置。
【請求項４】
コントローラのポートと、入出力装置のポートの接続関係を表わす第１入出力マップを記憶する第１の記憶部と、
前記コントローラの動作を模擬したモデルプログラム、前記入出力装置の動作を模擬したモデルプログラム、および制御対象機器の動作を模擬したモデルプログラムのライブラリを記憶する第２の記憶部と、
ユーザの操作入力を受け付けるユーザ入力部と、
前記ユーザ入力部を通じて、前記第２の記憶部内のライブラリからユーザによって選択されたコントローラのモデルプログラムと、入出力装置のモデルプログラムと、制御対象機器のモデルプログラムとを実行するモデルプログラム実行部と、
前記ユーザ入力部を通じたユーザの操作に基づいて、前記選択されたコントローラのモデルプログラムの仮想ポートと前記選択された入出力装置の仮想ポートとの接続関係を表わす第２入出力マップを作成する第２入出力マップ作成部と、
前記作成された第２入出力マップを記憶する第３の記憶部と、
前記第１入出力マップの接続関係と前記第２入出力マップの接続関係と整合するか否かを判定する判定部と、
前記判定の結果を表示する可視化部と、
前記モデルプログラム実行部は、前記コントローラのモデルプログラムを実行する際に、前記第２入出力マップに基づいて、前記入出力装置のモデルプログラムとの間でデータの授受を行なう、シミュレーション装置。
【請求項５】
コンピュータに、
コントローラのポートと入出力装置のポートの接続関係を表わす入出力マップを記憶する第１の記憶部と、
前記コントローラの動作を模擬したモデルプログラム、前記入出力装置の動作を模擬したモデルプログラム、および制御対象機器の動作を模擬したモデルプログラムのライブラリを記憶する第２の記憶部と、
ユーザの操作入力を受け付けるユーザ入力部と、
前記ユーザ入力部を通じて、前記第２の記憶部内のライブラリからユーザによって選択されたコントローラのモデルプログラムと、入出力装置のモデルプログラムと、制御対象機器のモデルプログラムとを実行するモデルプログラム実行部として機能させ、
前記モデルプログラム実行部は、前記コントローラのモデルプログラムを実行する際に、前記入出力マップに基づいて、前記入出力装置のモデルプログラムとの間でデータの授受を行なう、シミュレーションプログラム。
【請求項６】
コンピュータを、さらに、
前記選択された入出力装置のモデルプログラムを表わす図形、および前記選択されたコントローラのモデルプログラムを表わす図形を表示するとともに、前記入出力マップに基づいて、前記選択されたコントローラのモデルプログラムの仮想ポートと前記選択された入出力装置の仮想ポートとの接続を表わす接続線を表示する可視化部として機能させるための、請求項５記載のシミュレーションプログラム。
【請求項７】
コンピュータに、
コントローラのポートと、入出力装置のポートの接続関係を表わす第１入出力マップを記憶する第１の記憶部と、
前記コントローラの動作を模擬したモデルプログラム、前記入出力装置の動作を模擬したモデルプログラム、および制御対象機器の動作を模擬したモデルプログラムのライブラリを記憶する第２の記憶部と、
ユーザの操作入力を受け付けるユーザ入力部と、
前記ユーザ入力部を通じて、前記第２の記憶部内のライブラリからユーザによって選択されたコントローラのモデルプログラムと、入出力装置のモデルプログラムと、制御対象機器のモデルプログラムとを実行するモデルプログラム実行部と、
前記ユーザ入力部を通じたユーザの操作に基づいて、前記選択されたコントローラのモデルプログラムの仮想ポートと前記選択された入出力装置の仮想ポートとの接続関係を表わす第２入出力マップを作成する第２入出力マップ作成部と、
前記作成された第２入出力マップを記憶する第３の記憶部と、
前記第１入出力マップの接続関係と前記第２入出力マップの接続関係と整合するか否かを判定する判定部と、
前記判定の結果を表示する可視化部として機能させ、
前記モデルプログラム実行部は、前記コントローラのモデルプログラムを実行する際に、前記第２入出力マップに基づいて、前記入出力装置のモデルプログラムとの間でデータの授受を行なう、シミュレーションプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シミュレーション装置およびシミュレーションプログラムに関し、特にモデルベースデザイン技術に関する。
【背景技術】
【０００２】
従来から、シミュレーションに必要な回路の動作モデルを自動記述する方式が知られている。たとえば、特許文献１（特開２００２−７３７１９号公報）に記載の装置では、論理回路モジュールの入出力信号の状態遷移をクロックサイクル精度で定義したインタフェース記述と、上記論理回路モジュールが備える信号またはデータの処理機能をプログラム関数として定義した機能記述とを読み込み、回路内部動作と入出力信号の状態遷移をクロックサイクル精度で定義した論理回路動作モデル記述を自動的に生成する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−７３７１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１ではシミュレーションに必要な回路の動作モデルの記述を問題としているが、シミュレーションのためのソフトウエアの設計だけでなく、制御対象である実機を制御するコントローラの設計も必要となる場合がある。
【０００５】
すなわち、ユーザは、実機を動作させる場合に、実機を制御するコントローラと、コントローラとデータの授受を行なう入出力装置との間のインタフェースを設計する必要がある。また、実機を模擬したシミュレーションを実行する場合においても、入出力装置を模擬したモデルプログラムと、コントローラを模擬したモデルプログラムの間のデータの入出力関係を定めたインタフェースの設計が必要となる。したがって、このような場合には、ユーザの手間が極めて煩雑となる。
【０００６】
それゆえに、本発明の目的は、実機の動作およびシミュレーションにおいて、コントローラと入出力装置との間のインタフェースの設計の手間を低減することができるシミュレーション装置およびシミュレーションプログラムに関する。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明のシミュレーション装置は、コントローラのポートと、入出力装置のポートの接続関係を表わす入出力マップを記憶する第１の記憶部と、コントローラの動作を模擬したモデルプログラム、入出力装置の動作を模擬したモデルプログラム、および制御対象機器の動作を模擬したモデルプログラムのライブラリを記憶する第２の記憶部と、ユーザの操作入力を受け付けるユーザ入力部と、ユーザ入力部を通じて、第２の記憶部内のライブラリからユーザによって選択されたコントローラのモデルプログラムと、入出力装置のモデルプログラムと、制御対象機器のモデルプログラムとを実行するモデルプログラム実行部とを備える。モデルプログラム実行部は、コントローラのモデルプログラムを実行する際に、入出力マップに基づいて、入出力装置のモデルプログラムとの間でデータの授受を行なう。
【０００８】
好ましくは、選択された入出力装置のモデルプログラムを表わす図形、および選択されたコントローラのモデルプログラムを表わす図形を表示するとともに、入出力マップに基づいて、選択されたコントローラのモデルプログラムの仮想ポートと選択された入出力装置の仮想ポートとの接続を表わす接続線を表示する可視化部をさらに備える。
【０００９】
好ましくは、シミュレーション装置は、ユーザ入力部からのユーザによる指定に基づき、コントローラのポートと入出力装置のポートとの接続関係を定めた入出力マップを作成して、第１の記憶部に書き込むマップ作成部をさらに備える。
【００１０】
本発明のシミュレーション装置は、コントローラのポートと、入出力装置のポートの接続関係を表わす第１入出力マップを記憶する第１の記憶部と、コントローラの動作を模擬したモデルプログラム、入出力装置の動作を模擬したモデルプログラム、および制御対象機器の動作を模擬したモデルプログラムのライブラリを記憶する第２の記憶部と、ユーザの操作入力を受け付けるユーザ入力部と、ユーザ入力部を通じて、第２の記憶部内のライブラリからユーザによって選択されたコントローラのモデルプログラムと、入出力装置のモデルプログラムと、制御対象機器のモデルプログラムとを実行するモデルプログラム実行部と、ユーザ入力部を通じたユーザの操作に基づいて、選択されたコントローラのモデルプログラムの仮想ポートと選択された入出力装置の仮想ポートとの接続関係を表わす第２入出力マップを作成する第２入出力マップ作成部と、作成された第２入出力マップを記憶する第３の記憶部と、第１入出力マップの接続関係と第２入出力マップの接続関係と整合するか否かを判定する判定部と、判定の結果を表示する可視化部とを備える。モデルプログラム実行部は、コントローラのモデルプログラムを実行する際に、第２入出力マップに基づいて、入出力装置のモデルプログラムとの間でデータの授受を行なう。
【００１１】
本発明のシミュレーションプログラムは、コンピュータに、コントローラのポートと入出力装置のポートの接続関係を表わす入出力マップを記憶する第１の記憶部と、コントローラの動作を模擬したモデルプログラム、入出力装置の動作を模擬したモデルプログラム、および制御対象機器の動作を模擬したモデルプログラムのライブラリを記憶する第２の記憶部と、ユーザの操作入力を受け付けるユーザ入力部と、ユーザ入力部を通じて、第２の記憶部内のライブラリからユーザによって選択されたコントローラのモデルプログラムと、入出力装置のモデルプログラムと、制御対象機器のモデルプログラムとを実行するモデルプログラム実行部として機能させる。モデルプログラム実行部は、コントローラのモデルプログラムを実行する際に、入出力マップに基づいて、入出力装置のモデルプログラムとの間でデータの授受を行なう。
【００１２】
好ましくは、シミュレーションプログラムは、コンピュータを、さらに、選択された入出力装置のモデルプログラムを表わす図形、および選択されたコントローラのモデルプログラムを表わす図形を表示するとともに、入出力マップに基づいて、選択されたコントローラのモデルプログラムの仮想ポートと選択された入出力装置の仮想ポートとの接続を表わす接続線を表示する可視化部として機能させる。
【００１３】
本発明のシミュレーションプログラムは、コンピュータに、コントローラのポートと、入出力装置のポートの接続関係を表わす第１入出力マップを記憶する第１の記憶部と、コントローラの動作を模擬したモデルプログラム、入出力装置の動作を模擬したモデルプログラム、および制御対象機器の動作を模擬したモデルプログラムのライブラリを記憶する第２の記憶部と、ユーザの操作入力を受け付けるユーザ入力部と、ユーザ入力部を通じて、第２の記憶部内のライブラリからユーザによって選択されたコントローラのモデルプログラムと、入出力装置のモデルプログラムと、制御対象機器のモデルプログラムとを実行するモデルプログラム実行部と、ユーザ入力部を通じたユーザの操作に基づいて、選択されたコントローラのモデルプログラムの仮想ポートと選択された入出力装置の仮想ポートとの接続関係を表わす第２入出力マップを作成する第２入出力マップ作成部と、作成された第２入出力マップを記憶する第３の記憶部と、第１入出力マップの接続関係と第２入出力マップの接続関係と整合するか否かを判定する判定部と、判定の結果を表示する可視化部として機能させる。モデルプログラム実行部は、コントローラのモデルプログラムを実行する際に、第２入出力マップに基づいて、入出力装置のモデルプログラムとの間でデータの授受を行なう。
【発明の効果】
【００１４】
本発明によれば、実機の動作およびシミュレーションにおいて、コントローラと入出力装置との間のインタフェースの設計の手間を低減することができる。
【図面の簡単な説明】
【００１５】
【図１】第１の実施形態における実機を動作させる実機制御システムの構成を表わす図である。
【図２】入出力マップの例を表わす図である。
【図３】本発明の実施形態の実機制御システムの例を表わす図である。
【図４】第１の実施形態のシミュレーション装置の構成を表わす図である。
【図５】入出力マップの作成時の表示画面の例を表わす図である。
【図６】第１の実施形態のシミュレーション装置の動作手順を表わすフローチャートである。
【図７】第１の実施形態のシミュレーション装置の表示部に表示される画面の例を表わす図である。
【図８】第１の実施形態のシミュレーション装置の表示部に表示される画面の例を表わす図である。
【図９】第２の実施形態のシミュレーション装置５１の構成を表わす図である。
【図１０】第２の実施形態のシミュレーション装置の動作手順を表わすフローチャートである。
【図１１】第２の実施形態のシミュレーション装置の表示部に表示される画面の例を表わす図である。
【図１２】第２入出力マップの例を表わす図である。
【図１３】第２の実施形態のシミュレーション装置の表示部に表示される画面の例を表わす図である。
【図１４】第２の実施形態のシミュレーション装置の表示部に表示される画面の例を表わす図である。
【図１５】第２の実施形態のシミュレーション装置の表示部に表示される画面の例を表わす図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施の形態について図面を用いて説明する。
［第１の実施形態］
図１は、第１の実施形態における実機を動作させる実機制御システムの構成を表わす図である。
【００１７】
この実機制御システムは、  実世界の対象物を制御するためのものであって、１個のコントローラ１と、１個以上の入力装置または出力装置からなる入出力装置群２と、１個以上のアクチュエータまたはセンサからなるアクチュエータ／センサ群３と、１個以上の制御対象機器からなる制御対象機器群４とを備える。
【００１８】
コントローラ１は、制御対象機器群４を制御する。コントローラ１は、ＣＰＵ（Central Processing Unit）およびメモリを備えたコンピュータである。ＣＰＵは、メモリに記憶された実機制御プログラムを実行する。
【００１９】
コントローラ１は、実機制御プログラムによって実機制御部９２として機能する。
入出力マップ記憶部９１は、実世界の対象物であるコントローラ１のポートと、実世界の対象物である入出力装置群２に含まれる入出力装置のポートとの接続関係を表わす入出力マップを記憶する。この入出力マップは、後述のシミュレーション装置で作成される。
【００２０】
図２は、入出力マップの例を表わす図である。
この例では、以下の接続関係が規定される。コントローラ１の入力ポートＩｎ１とデバイスＡの出力ポートＯｕｔ１とが接続される。コントローラ１の入力ポートＩｎ２とデバイスＡの出力ポートＯｕｔ２とが接続される。コントローラ１の入力ポートＩｎ３とデバイスＡの出力ポートＯｕｔ３とが接続される。コントローラ１の出力ポートＯｕｔ１とデバイスＣの入力ポートＩｎ１とが接続される。コントローラ１の出力ポートＯｕｔ２とデバイスＥの入力ポートＩｎ１とが接続される。コントローラ１の出力ポートＯｕｔ３とデバイスＥの入力ポートＩｎ２とが接続される。
【００２１】
実機制御部９２は、制御対象機器群４に含まれる制御対象機器を制御するために、入出力マップ記憶部９１から入出力マップを読み出して、入出力マップに定められた接続関係に基づいて、コントローラ１のポートと入出力装置群２に含まれる入出力装置のポートとの間でデータの授受を実行する。
【００２２】
入出力装置群２に含まれる各出力装置は、コントローラ１からデータを受けてアクチュエータ／センサ群３に含まれるアクチュエータまたはセンサへデータを出力する。各入力装置は、アクチュエータ／センサ群３に含まれるアクチュエータまたはセンサからデータを受けてコントローラ１へ出力する。
【００２３】
アクチュエータ／センサ群３に含まれる各アクチュータは、制御対象機器群４に含まれる制御対象機器を動作させ、各センサは、制御対象機器群４に含まれる制御対象機器の状態を検知する。
【００２４】
図３は、図２の入出力マップを利用する実機制御システムの例を表わす図である。
この実機制御システムにおける入出力装置群２は、デバイスＣ、デバイスＥ、およびデバイスＡを含む。アクチュエータ／センサ群３は、デバイスＣからのデータを受けるアクチュエータ＃１と、デバイスＥからのデータを受けるアクチュエータ＃２と、デバイスＡへデータを出力するセンサ＃１とを含む。
【００２５】
コントローラ１の入力ポートＩｎ１とデバイスＡの出力ポートＯｕｔ１とは実際の配線で接続され、コントローラ１の入力ポートＩｎ２とデバイスＡの出力ポートＯｕｔ２とは実配線で接続され、コントローラ１の入力ポートＩｎ３とデバイスＡの出力ポートＯｕｔ３とは実配線で接続される。コントローラ１の出力ポートＯｕｔ１とデバイスＡの入力ポートＩｎ１とは実際の配線で接続され、コントローラ１の出力ポートＯｕｔ２とデバイスＥの入力ポートＩｎ１とは実際の配線で接続され、コントローラ１の出力ポートＯｕｔ２とデバイスＥの入力ポートＩｎ２とは実際の配線で接続される。また、デバイスＣとアクチュエータ＃１とが実際の配線で接続され、デバイスＥとアクチュエータ＃２とが実際の配線で接続され、デバイスＡとセンサ＃１とが実際の配線で接続される。アクチュエータ＃１と制御対象機器αとが実際の配線で接続され、アクチュエータ＃２およびセンサ＃１が、制御対象機器βと実際の配線で接続される。
【００２６】
コントローラ１は、入出力マップ記憶部９１内の入出力マップに基づいて、入力ポートＩｎ１に入力されたデータをデバイスＡの出力ポートＯｕｔ１からのＣＨ１データであると認識する。コントローラ１は、入出力マップに基づいて、入力ポートＩｎ２に入力されたデータをデバイスＡの出力ポートＯｕｔ２からのＣＨ２データであると認識する。コントローラ１は、入出力マップに基づいて、入力ポートＩｎ３に入力されたデータをデバイスＡの出力ポートＯｕｔ３からのＣＨ３データであると認識する。
【００２７】
コントローラ１は、入出力マップに基づいて、ターゲット位置を表わすデータを出力ポートＯｕｔ１からデバイスＣの入力ポートＩｎ１へ出力する。コントローラ１は、入出力マップに基づいて、ＣＨ１データを出力ポートＯｕｔ２からデバイスＥの入力ポートＩｎ１へ出力する。コントローラ１は、入出力マップに基づいて、ＣＨ２データを出力ポートＯｕｔ２からデバイスＥの入力ポートＩｎ２へ出力する。
【００２８】
図４は、第１の実施形態のシミュレーション装置２１の構成を表わす図である。
シミュレーション装置２１は、ＣＰＵおよびメモリを備えたコンピュータである。ＣＰＵは、シミュレーションプログラムおよび入出力マップ作成プログラムを実行する。
【００２９】
シミュレーション装置２１は、シミュレーションプログラムによって、ユーザ入力部３４と、入出力マップ記憶部３６と、ライブラリ記憶部３２と、可視化部４２と、表示部３５と、モデルプログラム実行部２３と、共有メモリ４１として機能する。
【００３０】
表示部３５は、たとえばディスプレイ装置で構成される。
ユーザ入力部３４は、ユーザによるキーまたはマウスを用いた入力操作を受け付ける。
【００３１】
可視化部４２は、入出力マップの作成画面、シミュレーションのための設定画面、およびシミュレーションの実行画面を表示部３５に表示する。
【００３２】
入出力マップ作成部１４は、ユーザ入力部３４を通じてなされるユーザの指定に基づいて、入出力マップを作成する。
【００３３】
図５は、入出力マップの作成時の表示画面の例を表わす図である。
ユーザは、コントローラ１の入力ポートＩｎ１，Ｉｎ２、Ｉｎ３、出力ポートＯｕｔ１，Ｏｕｔ２，Ｏｕｔ３と接続する入出力装置（デバイス）のポートを選択する。
【００３４】
この例では、ユーザは、ユーザ入力部１２を通じて、コントローラ１の入力ポートＩｎ１とデバイスＡの出力ポートＯｕｔ１とを接続することを指定し、コントローラ１の入力ポートＩｎ２とデバイスＡの出力ポートＯｕｔ２とを接続することを指定し、コントローラ１の入力ポートＩｎ３とデバイスＡの出力ポートＯｕｔ３とを接続することを指定している。
【００３５】
また、ユーザは、コントローラ１の出力ポートＯｕｔ１とデバイスＣの入力ポートＩｎ１とを接続することを指定し、コントローラ１の出力ポートＯｕｔ２とデバイスＥの入力ポートＩｎ１とを接続することを指定し、コントローラ１の出力ポートＯｕｔ３とデバイスＥの入力ポートＩｎ２とを接続することを指定している。
【００３６】
入出力マップ記憶部３６は、入出力マップ作成部１４によって作成された入出力マップを記憶する。この入出力マップは、図１のコントローラ１で用いられるとともに、シミュレーションプログラムによるシミュレーション時にも使用される。
【００３７】
ライブラリ記憶部３２は、実世界のコントローラの動作を模擬したコントローラのモデルプログラム、実世界の制御対象機器の動作を模擬した制御対象機器のモデルプログラム、実世界のアクチュエータまたはセンサの動作を模擬したアクチュエータまたはセンサのモデルプログラム、実世界の入出力装置の動作を模擬した入出力装置のモデルプログラムを記憶する。
【００３８】
モデルプログラム実行部２３は、ユーザ入力部３４を通じて、ユーザによってライブラリから選択された１つのコントローラのモデルプログラムを実行する。モデルプログラム実行部２３は、ユーザ入力部３４を通じて、ユーザによってライブラリから選択された１個以上の入出力装置のモデルプログラムを実行する。モデルプログラム実行部２３は、ユーザ入力部３４を通じて、ユーザによってライブラリから選択された１個以上のアクチュエータまたはセンサのモデルプログラムを実行する。モデルプログラム実行部２３は、ユーザ入力部３４を通じて、ユーザによってライブラリから選択された１個以上の制御対処機器のモデルプログラムを実行する。
【００３９】
共有メモリ４１は、コントローラのモデルプログラムと、入出力装置のモデルプログラムとの間のデータの授受のためなどに使用される。
【００４０】
図６は、第１の実施形態のシミュレーション装置２１によるシミュレーションの手順を表わすフローチャートである。図７および図８は、表示部３５に表示される画面の例を表わす図である。
【００４１】
図８において、コントローラ１のモデルプログラムの仮想入力ポートＶＩｎ１，ＶＩｎ２，ＶＩｎ３は、コントローラ１の入力ポートＩｎ１，Ｉｎ２、Ｉｎ３を模擬したものであり、コントローラ１のモデルプログラムの仮想出力ポートＶＯｕｔ１，ＶＯｕｔ２，ＶＯｕｔ３は、コントローラ１の出力ポートＯｕｔ１，Ｏｕｔ２，Ｏｕｔ３を模擬したものである。デバイスＣのモデルプログラムの仮想入力ポートＶＩｎ１，ＶＩｎ２，ＶＩｎ３は、デバイスＣの入力ポートＩｎ１，Ｉｎ２，Ｉｎ３を模擬したものである。デバイスＥのモデルプログラムの仮想入力ポートＶＩｎ１，ＶＩｎ２は、デバイスＥの入力ポートＩｎ１，Ｉｎ２を模擬したものである。デバイスＡのモデルプログラムの仮想出力ポートＶＯｕｔ１，ＶＯｕｔ２，ＶＯｕｔ３，ＶＯｕｔ４は、デバイスＡの出力ポートＶＯｕｔ１，ＶＯｕｔ２，ＶＯｕｔ３，ＶＯｕｔ４を模擬したものである。
【００４２】
図６〜図８を参照して、ステップＳ１０１において、ユーザは、表示部３５に表示されたメニュー項目などを見ながら、ユーザ入力部３４を通じてライブラリから１個以上の制御対象機器のモデルプログラムを選択する。可視化部４２は、選択された１個以上の制御対象機器のモデルプログラムを表わす図形を表示部３５に表示する。図７の例では、ユーザが制御対象機器αのモデルプログラムおよび制御対象機器βのモデルプログラムを選択している。
【００４３】
また、ユーザは、表示部３５に表示されたメニュー項目などを見ながら、ユーザ入力部３４を通じてライブラリから１個以上のアクチュエータまたはセンサのモデルプログラムを選択する。図７の例では、ユーザはアクチュエータ＃１のモデルプログラム、アクチュエータ＃２のモデルプログラム、およびセンサ＃１のモデルプログラムを選択している。
【００４４】
また、ユーザが、表示部３５に表示されたメニュー項目などを見ながら、ユーザ入力部３４を通じてライブラリから１個以上の入出力装置のモデルプログラムを選択する。可視化部４２は、選択された１個以上の入出力装置のモデルプログラムを表わす図形を表示部３５に表示する。図７の例では、ユーザは、コントローラ１からのデータをアクチュエータ＃１へ出力するためのデバイスＣのモデルプログラム、コントローラ１からのデータをアクチュエータ＃２へ出力するためのデバイスＥのモデルプログラム、センサ＃１からのデータを受信してコントローラへ出力するためのデバイスＡのモデルプログラムを選択している。
【００４５】
ユーザが、表示部３５に表示されたメニュー項目などを見ながら、ユーザ入力部３４を通じてライブラリから１個のコントローラのモデルプログラムを選択する。可視化部４２は、選択された１個のコントローラのモデルプログラムを表わす図形を表示部３５に表示する。図７の例では、ユーザは、コントローラ１のモデルプログラムを選択している。
【００４６】
ステップＳ１０２において、ユーザが、表示部３５に表示されたメニュー項目などを見ながら、ユーザ入力部３４を通じて、コントローラ１のモデルプログラムの仮想ポートと入出力装置のモデルプログラムの仮想ポートの接続関係の表示を選択したときには、可視化部４２は、入出力マップに基づいて、選択されたコントローラ１のモデルプログラムの仮想ポートと、選択された１個以上の入出力装置のモデルプログラムの仮想ポートどうしを結ぶ接続線を表示部３５に表示する。モデルプログラムの仮想のポートとは、実世界の対象物のポートを模擬したポートである。
【００４７】
図８の例では、入出力マップにおいてコントローラ１の入力ポートＩｎ１と、デバイスＡの出力ポートＯｕｔ１とが接続されることが規定されているので、コントローラ１のモデルプログラムの仮想の入力ポートＶＩｎ１と、デバイスＡのモデルプログラムの仮想の出力ポートＶＯｕｔ１とを結ぶ接続線が表示されている。
【００４８】
また、入出力マップにおいてコントローラ１の入力ポートＩｎ２と、デバイスＡの出力ポートＯｕｔ２とが接続されることが規定されているので、コントローラ１のモデルプログラムの仮想の入力ポートＶＩｎ２と、デバイスＡのモデルプログラムの仮想の出力ポートＶＯｕｔ２とを結ぶ接続線が表示されている。
【００４９】
また、入出力マップにおいてコントローラ１の入力ポートＩｎ３と、デバイスＡの出力ポートＯｕｔ３とが接続されることが規定されているので、コントローラ１のモデルプログラムの仮想の入力ポートＶＩｎ３と、デバイスＡのモデルプログラムの仮想の出力ポートＶＯｕｔ３とを結ぶ接続線が表示されている。
【００５０】
また、入出力マップにおいてコントローラ１の出力ポートＯｕｔ１と、デバイスＣの入力ポートＩｎ１とが接続されることが規定されているので、コントローラ１のモデルプログラムの仮想の出力ポートＶＯｕｔ１と、デバイスＣのモデルプログラムの仮想の入力ポートＶＩｎ１とを結ぶ接続線が表示されている。
【００５１】
また、入出力マップにおいてコントローラ１の出力ポートＯｕｔ２と、デバイスＥの入力ポートＩｎ１とが接続されることが規定されているので、コントローラ１のモデルプログラムの仮想の出力ポートＶＯｕｔ２と、デバイスＥのモデルプログラムの仮想の入力ポートＶＩｎ１とを結ぶ接続線が表示されている。
【００５２】
また、入出力マップにおいてコントローラ１の出力ポートＯｕｔ３と、デバイスＥの入力ポートＩｎ２とが接続されることが規定されているので、コントローラ１のモデルプログラムの仮想の出力ポートＶＯｕｔ３と、デバイスＥのモデルプログラムの仮想の入力ポートＶＩｎ２とを結ぶ接続線が表示されている。
【００５３】
ステップＳ１０３において、モデルプログラム実行部２３は、選択された１個以上の制御対象機器のモデルプログラムをライブラリ記憶部３２から読み出して実行する。したがって、制御対象機器αのモデルプログラムおよび制御対象機器βのモデルプログラムが実行される。
【００５４】
また、モデルプログラム実行部２３は、選択された１個以上のアクチュエータまたはセンサのモデルプログラムをライブラリ記憶部３２から読み出して実行する。したがって、アクチュエータ＃１のモデルプログラム、アクチュエータ＃２のモデルプログラム、およびセンサ＃１のモデルプログラムが実行される。
【００５５】
また、モデルプログラム実行部２３は、選択された１個以上の入出力装置のモデルプログラムをライブラリ記憶部３２から読み出して実行する。したがって、デバイスＡのモデルプログラム、デバイスＣのモデルプログラム、およびデバイスＥのモデルプログラムが実行される。
【００５６】
また、モデルプログラム実行部２３は、選択された１個のコントローラのモデルプログラムをライブラリ記憶部３２から読み出して実行する。したがって、コントローラ１のモデルプログラムが実行される。
【００５７】
入出力装置のモデルプログラムと、コントローラのモデルプログラムは、共有メモリ４１を通じて、データの授受を行なう。
【００５８】
モデルプログラム実行部２３は、デバイスＣのモデルプログラムの中に、仮想入力ポートＶＩｎ１からデータを取り込む命令が含まれている場合には、その命令の実行時には、デバイスＣのモデルプログラムの仮想入力ポートＶＩｎ１に割りつけられている共有メモリ４１内の特定のアドレスのデータを取り込む。
【００５９】
モデルプログラム実行部２３は、デバイスＥのモデルプログラムの中に、仮想入力ポートＶＩｎ１からデータを取り込む命令が含まれている場合には、その命令の実行時には、デバイスＥのモデルプログラムの仮想入力ポートＶＩｎ１に割りつけられている共有メモリ４１内の特定のアドレスのデータを取り込む。
【００６０】
モデルプログラム実行部２３は、デバイスＥのモデルプログラムの中に、仮想入力ポートＶＩｎ２からデータを取り込む命令が含まれている場合には、その命令の実行時には、デバイスＥのモデルプログラムの仮想入力ポートＶＩｎ２に割りつけられている共有メモリ４１内の特定のアドレスのデータを取り込む。
【００６１】
モデルプログラム実行部２３は、デバイスＡのモデルプログラムの中に、仮想出力ポートＶＯｕｔ１からデータを出力する命令が含まれている場合には、その命令の実行時には、デバイスＡのモデルプログラムの仮想出力ポートＶＯｕｔ１に割りつけられている共有メモリ４１内の特定のアドレスへデータを出力する。
【００６２】
モデルプログラム実行部２３は、デバイスＡのモデルプログラムの中に、仮想出力ポートＶＯｕｔ２からデータを出力する命令が含まれている場合には、その命令の実行時には、デバイスＡのモデルプログラムの仮想出力ポートＶＯｕｔ２に割りつけられている共有メモリ４１内の特定のアドレスへデータを出力する。
【００６３】
モデルプログラム実行部２３は、デバイスＡのモデルプログラムの中に、仮想出力ポートＶＯｕｔ３からデータを出力する命令が含まれている場合には、その命令の実行時には、デバイスＡのモデルプログラムの仮想出力ポートＶＯｕｔ３に割りつけられている共有メモリ４１内の特定のアドレスへデータを出力する。
【００６４】
モデルプログラム実行部２３は、入出力マップ記憶部３６内の入出力マップに基づいて、コントローラ１のモデルプログラムの仮想ポートと、入出力装置のモデルプログラムの仮想ポートの間のデータの入出力を行なう。
【００６５】
たとえば、モデルプログラム実行部２３は、コントローラ１のモデルプログラムの中に、仮想出力ポートＶＯｕｔ１からデータを出力する命令が含まれている場合には、入出力マップにおいてコントローラ１の出力ポートＯｕｔ１と、デバイスＣの入力ポートＩｎ１とが接続されることが規定されているので、その命令の実行時には、デバイスＣのモデルプログラムの仮想入力ポートＶＩｎ１に割りつけられている共有メモリ４１内の特定のアドレスへデータを出力する。
【００６６】
モデルプログラム実行部２３は、コントローラ１のモデルプログラムの中に、仮想出力ポートＶＯｕｔ２からデータを出力する命令が含まれている場合には、入出力マップにおいてコントローラ１の出力ポートＯｕｔ２と、デバイスＥの入力ポートＩｎ１とが接続されることが規定されているので、その命令の実行時には、デバイスＥのモデルプログラムの仮想入力ポートＶＩｎ１に割りつけられている共有メモリ４１内の特定のアドレスへデータを出力する。
【００６７】
モデルプログラム実行部２３は、コントローラ１のモデルプログラムの中に、仮想出力ポートＶＯｕｔ３からデータを出力する命令が含まれている場合には、入出力マップにおいてコントローラ１の出力ポートＯｕｔ３と、デバイスＥの入力ポートＩｎ２とが接続されることが規定されているので、その命令の実行時には、デバイスＥのモデルプログラムの仮想入力ポートＶＩｎ２に割りつけられている共有メモリ４１内の特定のアドレスへデータを出力する。
【００６８】
モデルプログラム実行部２３は、コントローラ１のモデルプログラムの中に、仮想入力ポートＶＩｎ１からデータを取り込む命令が含まれている場合には、入出力マップにおいてコントローラ１の入力ポートＩｎ１と、デバイスＡの出力ポートＯｕｔ１とが接続されることが規定されているので、その命令の実行時には、デバイスＡのモデルプログラムの仮想出力ポートＶＯｕｔ１に割りつけられている共有メモリ４１内の特定のアドレスのデータを取り込む。
【００６９】
モデルプログラム実行部２３は、コントローラ１のモデルプログラムの中に、仮想入力ポートＶＩｎ２からデータを取り込む命令が含まれている場合には、入出力マップにおいてコントローラ１の入力ポートＩｎ２と、デバイスＡの出力ポートＯｕｔ２とが接続されることが規定されているので、その命令の実行時には、デバイスＡのモデルプログラムの仮想出力ポートＶＯｕｔ２に割りつけられている共有メモリ４１内の特定のアドレスのデータを取り込む。
【００７０】
モデルプログラム実行部２３は、コントローラ１のモデルプログラムの中に、仮想入力ポートＶＩｎ３からデータを取り込む命令が含まれている場合には、入出力マップにおいてコントローラ１の入力ポートＩｎ３と、デバイスＡの出力ポートＯｕｔ３とが接続されることが規定されているので、その命令の実行時には、デバイスＡのモデルプログラムの仮想出力ポートＶＯｕｔ３に割りつけられている共有メモリ４１内の特定のアドレスのデータを取り込む。
【００７１】
以上のように、本実施の形態によれば、実機を動作させる場合とシミュレーションを実行する場合の両方で利用できる入出力マップが作成されるので、コントローラと入出力装置との間のインタフェースの設計の手間を低減することができる。
【００７２】
なお、本実施の形態では、シミュレーション装置で、入出力マップを作成することとしたが、シミュレーション装置の外部で専用のツールを用いて入出力マップを作成し、シミュレーション装置内の入出力マップ記憶部へネットワークなどを通じて伝送することとしてもよい。
【００７３】
［第２の実施形態］
第２の実施形態では、シミュレーション用に作成した入出力マップを用いてシミュレーションを行ないとともに、シミュレーションに使用しているこの入出力マップが、シミュレーション装置の外部で作成された実機用の入出力マップと整合するか否かを判定する。
【００７４】
図９は、第２の実施形態のシミュレーション装置５１の構成を表わす図である。
シミュレーション装置５１は、ＣＰＵおよびメモリを備えたコンピュータである。ＣＰＵは、シミュレーションプログラムおよび入出力マップ作成プログラムを実行する。
【００７５】
図９のシミュレーション装置５１が、図４のシミュレーション装置２１と相違する点は、図９のシミュレーション装置５１は、第１入出力マップ記憶部４９と、第２入出力マップ作成部７２と、第２入出力マップ記憶部４６と、整合性判定部７１とを備えることと、モデルプログラム実行部４８、可視化部５２、ユーザ入力部５４の機能である。
【００７６】
第１入出力マップ記憶部４９は、第１の実施形態で説明した入出力マップと同じものを第１入出力マップとして保存する。
【００７７】
第２入出力マップ作成部７２は、ユーザ入力部５４を通じてなされるユーザの指定に基づいて、第２入出力マップを作成して、第２入出力マップ記憶部４６に保存する。
【００７８】
整合性判定部７１は、第２入出力マップが第１入出力マップと整合するか否かを判定する。
【００７９】
第１の実施形態のモデルプログラム実行部２３は、入出力マップに基づいて、コントローラ１のモデルプログラムの仮想ポートと、入出力装置のモデルプログラムの仮想ポートの間のデータの入出力を行なったが、第２の実施形態のモデルプログラム実行部４８は、第２入出力マップに基づいて、コントローラ１のモデルプログラムの仮想ポートと、入出力装置のモデルプログラムの仮想ポートの間のデータの入出力を行なう。
【００８０】
可視化部５２は、第１の実施形態で説明した機能に加えて、整合性判定部７１による判定結果を表示部３５に表示する。
【００８１】
ユーザ入力部５４は、第１の実施形態で説明した機能に加えて、第２入出力マップ作成のためのユーザの操作入力を受け付ける。
【００８２】
シミュレーション装置５１は、シミュレーションプログラムによって、ユーザ入力部５４と、第１入出力マップ記憶部４９と、第２入出力マップ作成部７２と、第２入出力マップ記憶部４６と、整合性判定部７１と、ライブラリ記憶部３２と、可視化部５２と、表示部３５と、モデルプログラム実行部４８と、共有メモリ４１して機能する。
【００８３】
図１０は、第２の実施形態のシミュレーション装置５１の動作手順を表わすフローチャートである。図７および図１１は、表示部３５に表示される画面の例を表わす図である。図１２は、第２入出力マップの例を表わす図である。
【００８４】
図７、図１０〜図１２を参照して、ステップＳ２０１において、ユーザは、表示部３５に表示されたメニュー項目などを見ながら、ユーザ入力部５４を通じてライブラリから１個以上の制御対象機器のモデルプログラムを選択する。可視化部５２は、選択された１個以上の制御対象機器のモデルプログラムを表わす図形を表示部３５に表示する。図７の例では、ユーザが制御対象機器αのモデルプログラムおよび制御対象機器βのモデルプログラムを選択している。
【００８５】
また、ユーザは、表示部３５に表示されたメニュー項目などを見ながら、ユーザ入力部５４を通じてライブラリから１個以上のアクチュエータまたはセンサのモデルプログラムを選択する。図７の例では、ユーザはアクチュエータ＃１のモデルプログラム、アクチュエータ＃２のモデルプログラム、およびセンサ＃１のモデルプログラムを選択している。
【００８６】
また、ユーザが、表示部３５に表示されたメニュー項目などを見ながら、ユーザ入力部５４を通じてライブラリから１個以上の入出力装置のモデルプログラムを選択する。可視化部５２は、選択された１個以上の入出力装置のモデルプログラムを表わす図形を表示部３５に表示する。図７の例では、ユーザは、コントローラ１からのデータをアクチュエータ＃１へ出力するためのデバイスＣのモデルプログラム、コントローラ１からのデータをアクチュエータ＃２へ出力するためのデバイスＥのモデルプログラム、センサ＃１からのデータを受信してコントローラへ出力するためのデバイスＡのモデルプログラムを選択している。
【００８７】
ユーザが、表示部３５に表示されたメニュー項目などを見ながら、ユーザ入力部５４を通じてライブラリから１個のコントローラのモデルプログラムを選択する。可視化部５２は、選択された１個のコントローラのモデルプログラムを表わす図形を表示部３５に表示する。図７の例では、ユーザは、コントローラ１のモデルプログラムを選択している。
【００８８】
ステップＳ２０２において、ユーザが、ユーザ入力部５４を通じて、表示部３５に表示されたコントローラのモデルプログラムの図形に含まれる仮想ポートを表わす点と、１個以上の入出力装置のモデルプログラムの図形に含まれる仮想ポートを表わす点とを接続する操作を実行する。可視化部５２は、ユーザによって接続が指定された仮想ポートと仮想ポートの間を結ぶ実線の接続線を表示部３５に表示する。
【００８９】
図１１の例では、ユーザは、コントローラ１のモデルプログラムの仮想入力ポートＶＩｎ１と、デバイスＡのモデルプログラムの仮想出力ポートＶＯｕｔ１とを接続し、コントローラ１のモデルプログラムの仮想入力ポートＶＩｎ２と、デバイスＡのモデルプログラムの仮想出力ポートＶＯｕｔ２とを接続し、コントローラ１のモデルプログラムの仮想入力ポートＶＩｎ３と、デバイスＡのモデルプログラムの仮想出力ポートＶＯｕｔ３とを接続している。また、ユーザは、コントローラ１のモデルプログラムの仮想出力ポートＶＯｕｔ１と、デバイスＥのモデルプログラムの仮想入力ポートＶＩｎ１とを接続し、コントローラ１のモデルプログラムの仮想出力ポートＶＯｕｔ２と、デバイスＣのモデルプログラムの仮想入力ポートＶＩｎ１とを接続し、コントローラ１のモデルプログラムの仮想出力ポートＶＯｕｔ３と、デバイスＥのモデルプログラムの仮想入力ポートＶＩｎ２とを接続している。
【００９０】
ステップＳ２０３において、第２入出力マップ作成部７２は、ユーザによって定められた接続関係を表わす図１２に示すような第２入出力マップを作成し、第２入出力マップ記憶部４６に記憶する。
【００９１】
ステップＳ２０４において、モデルプログラム実行部４８は、選択された１個以上の制御対象機器のモデルプログラムをライブラリ記憶部３２から読み出して実行する。したがって、制御対象機器αのモデルプログラムおよび制御対象機器βのモデルプログラムが実行される。
【００９２】
また、モデルプログラム実行部４８は、選択された１個以上のアクチュエータまたはセンサのモデルプログラムをライブラリ記憶部３２から読み出して実行する。したがって、アクチュエータ＃１のモデルプログラム、アクチュエータ＃２のモデルプログラム、およびセンサ＃１のモデルプログラムが実行される。
【００９３】
また、モデルプログラム実行部４８は、選択された１個以上の入出力装置のモデルプログラムをライブラリ記憶部３２から読み出して実行する。したがって、デバイスＡのモデルプログラム、デバイスＣのモデルプログラム、およびデバイスＥのモデルプログラムが実行される。
【００９４】
また、モデルプログラム実行部４８は、選択された１個のコントローラのモデルプログラムをライブラリ記憶部３２から読み出して実行する。したがって、コントローラ１のモデルプログラムが実行される。
【００９５】
入出力装置のモデルプログラムと、コントローラのモデルプログラムは、共有メモリ４１を通じて、データの授受を行なう。
【００９６】
モデルプログラム実行部４８は、デバイスＣのモデルプログラムの中に、仮想入力ポートＶＩｎ１からデータを取り込む命令が含まれている場合には、その命令の実行時には、デバイスＣのモデルプログラムの仮想入力ポートＶＩｎ１に割りつけられている共有メモリ４１内の特定のアドレスのデータを取り込む。
【００９７】
モデルプログラム実行部４８は、デバイスＥのモデルプログラムの中に、仮想入力ポートＶＩｎ１からデータを取り込む命令が含まれている場合には、その命令の実行時には、デバイスＥのモデルプログラムの仮想入力ポートＶＩｎ１に割りつけられている共有メモリ４１内の特定のアドレスのデータを取り込む。
【００９８】
モデルプログラム実行部４８は、デバイスＥのモデルプログラムの中に、仮想入力ポートＶＩｎ２からデータを取り込む命令が含まれている場合には、その命令の実行時には、デバイスＥのモデルプログラムの仮想入力ポートＶＩｎ２に割りつけられている共有メモリ４１内の特定のアドレスのデータを取り込む。
【００９９】
モデルプログラム実行部４８は、デバイスＡのモデルプログラムの中に、仮想出力ポートＶＯｕｔ１からデータを出力する命令が含まれている場合には、その命令の実行時には、デバイスＡのモデルプログラムの仮想出力ポートＶＯｕｔ１に割りつけられている共有メモリ４１内の特定のアドレスへデータを出力する。
【０１００】
モデルプログラム実行部４８は、デバイスＡのモデルプログラムの中に、仮想出力ポートＶＯｕｔ２からデータを出力する命令が含まれている場合には、その命令の実行時には、デバイスＡのモデルプログラムの仮想出力ポートＶＯｕｔ２に割りつけられている共有メモリ４１内の特定のアドレスへデータを出力する。
【０１０１】
モデルプログラム実行部４８は、デバイスＡのモデルプログラムの中に、仮想出力ポートＶＯｕｔ３からデータを出力する命令が含まれている場合には、その命令の実行時には、デバイスＡのモデルプログラムの仮想出力ポートＶＯｕｔ３に割りつけられている共有メモリ４１内の特定のアドレスへデータを出力する。
【０１０２】
モデルプログラム実行部４８は、第２入出力マップ記憶部４６内の第２入出力マップに基づいて、コントローラ１のモデルプログラムの仮想ポートと、入出力装置のモデルプログラムの仮想ポートの間のデータの入出力を行なう。
【０１０３】
たとえば、モデルプログラム実行部４８は、コントローラ１のモデルプログラムの中に、仮想出力ポートＶＯｕｔ１からデータを出力する命令が含まれている場合には、第２入出力マップにおいてコントローラ１の仮想出力ポートＶＯｕｔ１と、デバイスＣの仮想入力ポートＶＩｎ１とが接続されることが規定されているので、その命令の実行時には、デバイスＣのモデルプログラムの仮想入力ポートＶＩｎ１に割りつけられている共有メモリ４１内の特定のアドレスへデータを出力する。
【０１０４】
モデルプログラム実行部４８は、コントローラ１のモデルプログラムの中に、仮想出力ポートＶＯｕｔ２からデータを出力する命令が含まれている場合には、第２入出力マップにおいてコントローラ１の仮想出力ポートＶＯｕｔ２と、デバイスＥの仮想入力ポートＶＩｎ１とが接続されることが規定されているので、その命令の実行時には、デバイスＥのモデルプログラムの仮想入力ポートＶＩｎ１に割りつけられている共有メモリ４１内の特定のアドレスへデータを出力する。
【０１０５】
モデルプログラム実行部４８は、コントローラ１のモデルプログラムの中に、仮想出力ポートＶＯｕｔ３からデータを出力する命令が含まれている場合には、第２入出力マップにおいてコントローラ１の仮想出力ポートＶＯｕｔ３と、デバイスＥの仮想入力ポートＶＩｎ２とが接続されることが規定されているので、その命令の実行時には、デバイスＥのモデルプログラムの仮想入力ポートＶＩｎ２に割りつけられている共有メモリ４１内の特定のアドレスへデータを出力する。
【０１０６】
モデルプログラム実行部４８は、コントローラ１のモデルプログラムの中に、仮想入力ポートＶＩｎ１からデータを取り込む命令が含まれている場合には、第２入出力マップにおいてコントローラ１の仮想入力ポートＶＩｎ１と、デバイスＡの仮想出力ポートＶＯｕｔ１とが接続されることが規定されているので、その命令の実行時には、デバイスＡのモデルプログラムの仮想出力ポートＶＯｕｔ１に割りつけられている共有メモリ４１内の特定のアドレスのデータを取り込む。
【０１０７】
モデルプログラム実行部４８は、コントローラ１のモデルプログラムの中に、仮想入力ポートＶＩｎ２からデータを取り込む命令が含まれている場合には、第２入出力マップにおいてコントローラ１の仮想入力ポートＶＩｎ２と、デバイスＡの仮想出力ポートＶＯｕｔ２とが接続されることが規定されているので、その命令の実行時には、デバイスＡのモデルプログラムの仮想出力ポートＶＯｕｔ２に割りつけられている共有メモリ４１内の特定のアドレスのデータを取り込む。
【０１０８】
モデルプログラム実行部４８は、コントローラ１のモデルプログラムの中に、仮想入力ポートＶＩｎ３からデータを取り込む命令が含まれている場合には、第２入出力マップにおいてコントローラ１の仮想入力ポートＶＩｎ３と、デバイスＡの仮想出力ポートＶＯｕｔ３とが接続されることが規定されているので、その命令の実行時には、デバイスＡのモデルプログラムの仮想出力ポートＶＯｕｔ３に割りつけられている共有メモリ４１内の特定のアドレスのデータを取り込む。
【０１０９】
ステップＳ２０５において、シミュレーション装置５１の外部で作成された第１入出力マップが、シミュレーション装置５１へ伝送される。第１入出力マップ記憶部４９は、伝送された第１入出力マップを記憶する。第１入出力マップは、たとえば、第１の実施形態で説明した図２の入出力マップと同様であるものとする。
【０１１０】
ステップＳ２０６において、整合性判定部７１は、第２入出力マップ記憶部４６に記憶されている第２入出力マップと、第１入出力マップ記憶部４９に記憶されている第１入出力マップとが整合するか否かを判定する。第２入出力マップが、第１入出力マップでのコントローラのポートをコントローラのモデルプログラムの仮想ポートに置き換え、第１入出力マップの入出力装置のポートを入出力装置のモデルプログラムの仮想ポートに置き替えたものであるときに、第１入出力マップと第２入出力マップが整合すると判定される。
【０１１１】
たとえば、仮に、図１２の第２入出力マップが、図２の第１入出力マップでのコントローラ１のポートＩｎ１，Ｉｎ２，Ｉｎ３，Ｏｕｔ１，Ｏｕｔ２，Ｏｕｔ３をコントローラ１のモデルプログラムの仮想ポートＶＩｎ１，ＶＩｎ２，ＶＩｎ３，ＶＯｕｔ１，ＶＯｕｔ２，ＶＯｕｔ３に置き換え、図２の第１入出力マップでのデバイスＡのポートＯｕｔ１，Ｏｕｔ２、デバイスＣのポートＩｎ１、デバイスＥのポートＩｎ１，Ｉｎ２をデバイスＡのモデルプログラムの仮想ポートＶＯｕｔ１，ＶＯｕｔ２、デバイスＣのモデルプログラムの仮想ポートＶＩｎ１、デバイスＥのモデルプログラムの仮想ポートＶＩｎ１，ＶＩｎ２に置き替えたものである場合には、図２の第１入出力マップと図１２の第２入出力マップが整合すると判定される。
【０１１２】
しかしながら、図２の第１入出力マップでは、コントローラ１のポートＯｕｔ１とデバイスＣのポートＩｎ１とが接続し、コントローラ１のポートＯｕｔ２とデバイスＥのポートＩｎ１とが接続するのに対して、図１２の第２入出力マップでは、コントローラ１のモデルプログラムの仮想ポートＶＯｕｔ１とデバイスＥのモデルプログラムの仮想ポートＶＩｎ１とが接続し、コントローラ１のモデルプログラムの仮想ポートＶＯｕｔ２とデバイスＣのモデルプログラムの仮想ポートＶＩｎ１とが接続する。したがって、整合性判定部７１は、第１入出力マップと第２入出力マップが整合しないと判定する。
【０１１３】
ステップＳ２０７において、可視化部５２は、整合性判定部７１による判定結果を表示部３５に表示する。たとえば、可視化部５２は、第２入出力マップで規定された接続関係のうち、第１入出力マップで規定された接続関係と一致しないものがあるときには、第１入出力マップの接続関係を表わす点線の接続線を表示する。
【０１１４】
図１１の例では、コントローラ１のモデルプログラムの仮想出力ポートＶＯｕｔ１と、デバイスＥのモデルプログラムの仮想入力ポートＶＩｎ１とが点線の接続線で接続され、コントローラ１のモデルプログラムの仮想出力ポートＶＯｕｔ２と、デバイスＣのモデルプログラムの仮想入力ポートＶＩｎ１とが点線の接続線で接続されている。これによって、ユーザは、コントローラのモデルプログラムの仮想ポートと入出力装置のモデルプログラムの仮想ポートとの接続関係が、実際のコントローラのポートと入出力装置のポートとの接続関係と相違することを知ることができる。
【０１１５】
以上のように、本実施の形態によれば、実機を動作させる場合の入出力マップとシミュレーションを実行する場合の入出力マップが整合するか否かをユーザに知らせることができるので、コントローラと入出力装置との間のインタフェースの設計の手間を低減することができる。
【０１１６】
［第２の実施形態の変形例］
可視化部７１は、可視化部５２は、第２入出力マップで規定された接続関係のうち、第１入出力マップで規定された接続関係と異なるものがあるときには、図１３に示すように、第２入出力マップの接続関係のうち、第１入出力マップと異なる接続関係を文字で説明したメッセージを表示するものとしてもよい。
【０１１７】
あるいは、可視化部７１は、第２入出力マップで規定された接続関係のうち、第１入出力マップで規定された接続関係と異なるものがあるときには、図１４に示すように、異なる旨を文字で説明したメッセージを表示するものとしてもよい。
【０１１８】
また、可視化部５２は、第２入出力マップで規定された接続関係のうち、第１入出力マップで規定された接続関係と異なるものがあるときには、図１５に示すように、第１入出力マップの接続関係のうち、第２入出力マップと異なる接続関係を文字で説明したメッセージを表示するものとしてもよい。
【０１１９】
今回開示された実施の形態はすべての点で例示であって制限的なものでないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１２０】
１  コントローラ、２  入出力装置群、３  アクチュエータ／センサ群、４  制御対象機器群、１４  入出力マップ作成部、２１，５１  シミュレーション装置、２３，４８  モデルプログラム実行部、３２  ライブラリ記憶部、３４，５４  ユーザ入力部、３５  表示部、３６，９１  入出力マップ記憶部、４１  共有メモリ、４２，５２  可視化部、４６  第２入出力マップ記憶部、４９  第１入出力マップ記憶部、７１  整合性判定部、７２  第２入出力マップ作成部、９２  実機制御部。
【図１】
2015046082.tif 000003
【図２】
2015046082.tif 000004
【図３】
2015046082.tif 000005
【図４】
2015046082.tif 000006
【図５】
2015046082.tif 000007
【図６】
2015046082.tif 000008
【図７】
2015046082.tif 000009
【図８】
2015046082.tif 000010
【図９】
2015046082.tif 000011
【図１０】
2015046082.tif 000012
【図１１】
2015046082.tif 000013
【図１２】
2015046082.tif 000014
【図１３】
2015046082.tif 000015
【図１４】
2015046082.tif 000016
【図１５】
2015046082.tif 000017