(57)【要約】【課題】部品モジュールの接続が限定されない系統モデルを構築可能な装置及び方法を提供する。【解決手段】シミュレータ構築装置２０は、入力手段２２から受け付けた情報に従い部品モジュールを配置し結線する処理部３８と、配置し結線した部品モジュールの種類、個数および並び順を判断する処理部３９と、部品モジュールの種類と当該種類に対応するソースコードとを関連付けた部品基本ソースプログラム３２と部品モジュールのプロトコル設定の情報を含むソース生成ルール情報３３を参照し、各部品モジュールのソースコードをそれぞれ生成する処理部４０と、何れかの部品モジュールを制御する旨の情報と、部品モジュールと同じプロトコルで各部品モジュールと通信する旨の情報とを有する組み上げルール情報３４を参照し、部品モジュールを制御するメインモジュールのソースコードを組み上げる処理部４１とを備える。【選択図】  図２
2013065099.tif 000002
【特許請求の範囲】
【請求項１】
シミュレーションを実行する系統の構成部品となる部品のモデルである部品モジュールを配置して結線することによって前記部品モジュールと前記部品モジュールを制御するメインモジュールとを備え、前記部品モジュールと前記メインモジュールとが共通のプロトコルに従って情報をやりとりする前記系統のモデルを構築するシミュレータ構築処理手段を具備し、
前記シミュレータ構築処理手段は、入力手段から受け付けた前記系統の構成部品となる部品モジュールを配置および結線する情報に従って前記部品モジュールを配置して結線する部品配置結線処理部と、
前記部品配置結線処理部が配置して結線する前記部品モジュールの種類、個数および並び順を判断する系統構成・部品順序判断処理部と、
前記部品モジュールの種類と当該部品モジュールの種類に対応するソースコードとが関連付けられた部品基本ソースプログラムと前記部品モジュールについて前記共通のプロトコルを設定する情報を含んだソース生成ルール情報とを参照して、前記ソース生成ルール情報に、前記部品モジュールのソースコードと、当該部品モジュールの識別情報であるＩＤと、当該部品モジュールの名称の情報と、部品基本ソースコードに含まれる変数の情報とを付加して前記部品モジュールのソースコードをそれぞれ生成する部品ソース生成部と、
前記メインモジュールが何れかの部品モジュールを制御する旨の情報と、前記部品モジュールと同じプロトコルで各部品モジュールと通信する旨の情報とを有する前記メインモジュールのソースコードのテンプレート情報を含む組み上げルール情報を参照して、前記メインモジュールの前記テンプレート情報に、前記系統のモデルの外部から入力される変数および外部へ出力する変数の情報と、制御対象となる個々の部品モジュールに付される名称の情報、ＩＤの情報、使用する変数および前記メインモジュールと前記制御対象となる個々の部品モジュールとの間で情報を授受する順序の情報を付加して前記メインモジュールのソースコードを組み上げるメインソース組み上げ処理部と、を備えることを特徴とするシミュレータ構築装置。
【請求項２】
前記系統のモデルは、前記部品モジュールの各々と前記部品モジュールの各々を制御するメインモジュールとを共通のバスで接続し、前記共通のプロトコルで通信可能に構成したことを特徴とする請求項１記載のシミュレータ構築装置。
【請求項３】
前記系統のモデルは、前記部品モジュールが模擬している部品の設計仕様情報を有する設計仕様情報データベースを前記共通のバスに、さらに、接続して構成されることを特徴とする請求項２記載のシミュレータ構築装置。
【請求項４】
前記部品配置結線処理部は、前記部品モジュールの図柄を表示手段に表示して、前記入力手段から与えられた前記部品モジュールの図柄を配置して結線する旨の指示に従って前記部品モジュールの図柄を配置して結線した状態を前記表示手段に表示するグラフィカルユーザインターフェイスをユーザに提供する機能を有することを特徴とする請求項１から３の何れか１項に記載のシミュレータ構築装置。
【請求項５】
前記メインモジュールは、前記各部品モジュールの入出力を制御し、各部品モジュールの入出力の管理を行うことを特徴とする請求項１から４の何れか１項に記載のシミュレータ構築装置。
【請求項６】
前記共通のバスに伝送される信号は、前記メインモジュールから前記部品モジュールに信号を送る場合には、リクエストのオンと共に前記部品モジュールの識別情報および前記部品モジュールの入力となる情報を送信し、前記部品モジュールから前記メインモジュールへ信号を送る場合にはレスポンスのオンと共に計算結果を送信するように構成されることを特徴とする請求項１から５の何れか１項に記載のシミュレータ構築装置。
【請求項７】
コンピュータを用いて、シミュレーションを実行する系統の構成部品となる部品のモデルである部品モジュールを配置して結線することによって前記部品モジュールと前記部品モジュールを制御するメインモジュールとを備え、前記部品モジュールと前記メインモジュールとが共通のプロトコルに従って情報をやりとりする前記系統のモデルを構築する方法であり、
部品配置結線処理部が、入力手段から受け付けた前記系統の構成部品となる部品モジュールを配置および結線する情報に従って前記部品モジュールを配置して結線する部品配置結線処理ステップと、
系統構成・部品順序判断処理部が、前記部品配置結線処理ステップで配置され結線された前記部品モジュールの種類、個数および並び順を判断する系統構成・部品順序判断処理ステップと、
部品ソース生成部が、前記部品モジュールの種類と当該部品モジュールの種類に対応するソースコードとが関連付けられた部品基本ソースプログラムと前記部品モジュールについて前記共通のプロトコルを設定する情報を含んだソース生成ルール情報とを参照して、前記ソース生成ルール情報に、前記部品モジュールのソースコードと、当該部品モジュールの識別情報であるＩＤと、当該部品モジュールの名称の情報と、部品基本ソースコードに含まれる変数の情報とを付加して前記部品モジュールのソースコードをそれぞれ生成する部品ソース生成ステップと、
メインソース組み上げ処理部が、前記メインモジュールが何れかの部品モジュールを制御する旨の情報と、前記部品モジュールと同じプロトコルで各部品モジュールと通信する旨の情報とを有する前記メインモジュールのソースコードのテンプレート情報を含む組み上げルール情報を参照して、前記メインモジュールの前記テンプレート情報に、前記系統のモデルの外部から入力される変数および外部へ出力する変数の情報と、制御対象となる個々の部品モジュールに付される名称の情報、ＩＤの情報、使用する変数および前記メインモジュールと前記制御対象となる個々の部品モジュールとの間で情報を授受する順序の情報を付加して前記メインモジュールのソースコードを組み上げるメインソース組み上げ処理ステップと、を備えることを特徴とするシミュレータ構築方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シミュレータ構築装置およびシミュレータ構築方法に関する。
【背景技術】
【０００２】
例えば、プラントを対象としたシミュレータでは、プラントの実機と近い環境を作るために多くの機器を模擬するプラントモデル作成システムやプラント模擬装置が提案されている。このような多くの機器を模擬するプラントモデル作成システムやプラント模擬装置では、そのソフトウェアの量は通常膨大なものであり、その開発・製作・保守には多大な労力を要している。
【０００３】
上記の様な事情に鑑みて、プラントモデル作成システム等に関わるソフトウェア開発・製作・保守の労力軽減化を図った種々の技術が提案されている。例えば、特開２０１１−３４１７９号公報（特許文献１）に記載されるように、プラントを対象としたシミュレータを構築する技術の一例としては、弁、ポンプ、タンクなどの機器を部品モジュールとして作成し、作成した部品モジュールを接続してプラントの系統モデルを作成することによってプラントを対象としたシミュレータを構築する技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−３４１７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１等に記載されるような従来のシミュレータを構築する技術では、既存のソースを流用する等、事前に準備していたソースプログラムを用いて予め部品のモデルとなる部品モジュールを作成している。そのため、部品モジュールを接続して系統モデルを作成する場合でも、決まった部品モジュールとの接続に限られていた。従って、既存の部品モジュールを接続して系統モデルを構築できない場合には、当該系統モデルを作成するための部品モジュール（以下、「特殊部品モジュール」と称する。）を新たに作成する必要が生じ、系統モデルの作成が効率的に行えない場合があるという課題がある。
【０００６】
また、特殊部品モジュールは、機能が限定されてしまうため、汎用性に乏しく、他の系統モデルに流用し難い上、単体の既存部品で対応できない場合には、その都度、特殊部品モジュールを作成する必要がある。
【０００７】
例えば、弁、ポンプなどの部品化された部品モジュールをグラフィカルユーザインターフェイス（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ：ＧＵＩ）により、配置、結線して系統モデルを構築する従来のシミュレータの場合、当該系統モデルを構成する部品モジュールのソースプログラムは予め準備されているものであるため、構築する系統モデルにおいて、弁部品等が単体の弁部品を組み合わせたものでは対応できない場合が生じる。この場合、当該系統モデルを構築するのに必要な部品モジュールおよびそのソースプログラムを予め準備する必要がある。
【０００８】
より具体的な例として、プラントにおける系統の一部として、例えば、液体等が流れるパイプおよび弁で構成された流路を模擬する場合を説明する。
【０００９】
流路を模擬する際には、常に上流の状態を考慮して下流の状態を判断する必要がある。例えば、パイプに一つの弁が設置されている流路であれば、その弁の状態のみを考慮すれば良いが、パイプに二つの弁が直列に設置されている流路においては、下流側の弁が開いていても、上流側の弁が閉じているのであれば、この流路に液体を流そうとしても流れない。二つの弁が直列に設置されている流路の場合には、両方の弁がともに「開」の状態、すなわち、二つの弁が両方とも開いている状態にあって初めて液体が流れ、流量等の液体の流れに関する物理量が検出される。
【００１０】
このことを、ソースプログラム（式）で示すと、弁単体で構成される流路の流量を求めるソースプログラムは、Ｆを流路の流量、Ｆｃを弁の定格流量、Ｚｖを弁の開度とすると、以下の式（１）のように表すことができる。
【００１１】
Ｆ  ＝  Ｆｃ  ＊  Ｚｖ  ・・・（１）
【００１２】
一方、上記式（１）の場合と同一の定格流量Ｆｃを有する二つの弁（第１の弁と第２の弁）を直列に設置した流路における流量を求めるソースプログラムは、Ｆが流路の流量、Ｆｃが弁の定格流量、Ｚｖ１およびＺｖ２が第１の弁の開度および第２の弁の開度とすると、以下の式（２）のように表すことができる。
【００１３】
Ｆ  ＝  Ｆｃ  ＊  Ｚｖ０  ＊  Ｚｖ１  ・・・（２）
【００１４】
このように、弁単体で構成される流路と同じ弁を直列に二つ配置した流路とでは、同じ弁を設置して構成される流路であっても、ソースプログラムが異なるため、使用する弁の配置毎、すなわち、流路の構成毎に部品モジュールを作成する必要が生じている。そうなると、一から系統モデルの構築する場合と同様の負担が生じてしまうため、系統モデルの作成が効率的に行えない場合があるという課題がある。
【００１５】
さらに、部品モジュール間のインターフェースが必ずしも共通化されたものではなく、この様な場合には、部品モジュールを接続する際にインターフェースの属性を考慮する必要があるため、系統モデルの作成が効率的に行えない場合があるという課題がある。これは、既存のソースプログラムを部品モジュールに設定する、あるいは、予め使用される状況を想定したソースプログラムを設定するためである。
【００１６】
本発明は、上述した課題を解決するためになされたものであり、部品モジュールの接続が限定されない系統モデルを構築できるシミュレータ構築装置およびシミュレータ構築方法を提供することを目的とする。
【課題を解決するための手段】
【００１７】
本発明の実施形態に係るシミュレータ構築装置は、上述した課題を解決するため、シミュレーションを実行する系統の構成部品となる部品のモデルである部品モジュールを配置して結線することによって前記部品モジュールと前記部品モジュールを制御するメインモジュールとを備え、前記部品モジュールと前記メインモジュールとが共通のプロトコルに従って情報をやりとりする前記系統のモデルを構築するシミュレータ構築処理手段を具備し、前記シミュレータ構築処理手段は、入力手段から受け付けた前記系統の構成部品となる部品モジュールを配置および結線する情報に従って前記部品モジュールを配置して結線する部品配置結線処理部と、前記部品配置結線処理部が配置して結線する前記部品モジュールの種類、個数および並び順を判断する系統構成・部品順序判断処理部と、前記部品モジュールの種類と当該部品モジュールの種類に対応するソースコードとが関連付けられた部品基本ソースプログラムと前記部品モジュールについて前記共通のプロトコルを設定する情報を含んだソース生成ルール情報とを参照して、前記ソース生成ルール情報に、前記部品モジュールのソースコードと、当該部品モジュールの識別情報であるＩＤと、当該部品モジュールの名称の情報と、部品基本ソースコードに含まれる変数の情報とを付加して前記部品モジュールのソースコードをそれぞれ生成する部品ソース生成部と、前記メインモジュールが何れかの部品モジュールを制御する旨の情報と、前記部品モジュールと同じプロトコルで各部品モジュールと通信する旨の情報とを有する前記メインモジュールのソースコードのテンプレート情報を含む組み上げルール情報を参照して、前記メインモジュールの前記テンプレート情報に、前記系統のモデルの外部から入力される変数および外部へ出力する変数の情報と、制御対象となる個々の部品モジュールに付される名称の情報、ＩＤの情報、使用する変数および前記メインモジュールと前記制御対象となる個々の部品モジュールとの間で情報を授受する順序の情報を付加して前記メインモジュールのソースコードを組み上げるメインソース組み上げ処理部と、を備えることを特徴とする。
【００１８】
本発明の実施形態に係るシミュレータ構築方法は、上述した課題を解決するため、コンピュータを用いて、シミュレーションを実行する系統の構成部品となる部品のモデルである部品モジュールを配置して結線することによって前記部品モジュールと前記部品モジュールを制御するメインモジュールとを備え、前記部品モジュールと前記メインモジュールとが共通のプロトコルに従って情報をやりとりする前記系統のモデルを構築する方法であり、部品配置結線処理部が、入力手段から受け付けた前記系統の構成部品となる部品モジュールを配置および結線する情報に従って前記部品モジュールを配置して結線する部品配置結線処理ステップと、系統構成・部品順序判断処理部が、前記部品配置結線処理ステップで配置され結線された前記部品モジュールの種類、個数および並び順を判断する系統構成・部品順序判断処理ステップと、部品ソース生成部が、前記部品モジュールの種類と当該部品モジュールの種類に対応するソースコードとが関連付けられた部品基本ソースプログラムと前記部品モジュールについて前記共通のプロトコルを設定する情報を含んだソース生成ルール情報とを参照して、前記ソース生成ルール情報に、前記部品モジュールのソースコードと、当該部品モジュールの識別情報であるＩＤと、当該部品モジュールの名称の情報と、部品基本ソースコードに含まれる変数の情報とを付加して前記部品モジュールのソースコードをそれぞれ生成する部品ソース生成ステップと、メインソース組み上げ処理部が、前記メインモジュールが何れかの部品モジュールを制御する旨の情報と、前記部品モジュールと同じプロトコルで各部品モジュールと通信する旨の情報とを有する前記メインモジュールのソースコードのテンプレート情報を含む組み上げルール情報を参照して、前記メインモジュールの前記テンプレート情報に、前記系統のモデルの外部から入力される変数および外部へ出力する変数の情報と、制御対象となる個々の部品モジュールに付される名称の情報、ＩＤの情報、使用する変数および前記メインモジュールと前記制御対象となる個々の部品モジュールとの間で情報を授受する順序の情報を付加して前記メインモジュールのソースコードを組み上げるメインソース組み上げ処理ステップと、を備えることを特徴とする。
【発明の効果】
【００１９】
本発明によれば、モデルを作成する際の効率を従来よりも高めることができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施形態に係るシミュレータ構築装置および構築方法の概念を従来のものと対比して説明する説明図であり、（Ａ）は系統の結線図、（Ｂ）は従来のシミュレータ構築装置および構築方法によって作成した系統モデルの処理の流れを説明する説明図、図１（Ｃ）は本発明の実施形態に係るシミュレータ構築装置および構築方法によって作成した系統モデルの処理の流れを説明する説明図。
【図２】本発明の実施形態に係るシミュレータ構築装置の構成を示す概略図。
【図３】部品基本ソースプログラム、ソース生成ルール情報並びに部品基本ソースプログラムおよびソース生成ルール情報を用いて生成される部品ソースの一例を示す説明図であり、（Ａ）が部品基本ソースプログラムの一例を示す説明図、（Ｂ）がソース生成ルール情報の一例を示す説明図、（Ｃ）が部品ソースの一例を示す説明図。
【図４】組み上げルール情報と、組み上げルール情報に基づいて組み上げられたメインソースの一例を示す説明図であり、（Ａ）が組み上げルール情報、（Ｂ）が図１（Ｃ）に示される系統モデルにおけるメインモジュールのメインソースの一例を示す説明図。
【図５】本発明の実施形態に係るシミュレータ構築装置を用いてユーザが行う操作手順を説明する説明図。
【図６】本発明の実施形態に係るシミュレータ構築装置が実行する系統モデル構築処理手順の処理工程を示した処理フロー図。
【図７】本発明の実施形態に係るシミュレータ構築方法の一例である系統モデル構築処理手順が具備する部品ソース生成処理工程のより詳細な処理内容を示した処理フロー図。
【図８】本発明の実施形態に係るシミュレータ構築方法の一例である系統モデル構築処理手順が具備するメインソース組み上げ処理工程のより詳細な処理内容を示した処理フロー図。
【図９】本発明の実施形態に係るシミュレータ構築装置およびシミュレータ構築方法によって構築された系統モデルの一例について構成を示す概略図。
【図１０】系統の一例である模擬系統および当該模擬系統をモデル化した系統モデルの構成を説明する図であり、（Ａ）は模擬系統の構成を説明する説明図、（Ｂ）は模擬系統をモデル化した系統モデルの構成を説明する説明図。
【図１１】図１０に示される系統モデルのシミュレーション実行時における動作例を示す説明図。
【図１２】本発明の実施形態に係るシミュレータ構築装置およびシミュレータ構築方法によって構築された系統モデルのシミュレーション実行時におけるメインモジュールと各部品モジュールの共通バスにおける伝送状態を示した波形図。
【発明を実施するための形態】
【００２１】
以下、本発明の実施形態に係るシミュレータ構築装置およびシミュレータ構築方法について、添付の図面を参照して説明する。
【００２２】
本発明の実施形態に係るシミュレータ構築装置およびシミュレータ構築方法は、シミュレーションを実行する系統（システム）のモデル（以下、「系統モデル」と称する。）を、当該系統を構成する部品のモデルである部品モジュールと、部品モジュールの構成、接続および状態を管理し、個々の部品モジュールで計算させた結果を取得し、取得した結果を用いて計算するメインモジュールとを備え、各部品モジュールとメインモジュールとが共通する通信規約（共通プロトコル）によって情報の授受を可能に接続して構成したものである。
【００２３】
従来、シミュレーションを実行する系統を構成する部品のモデルである部品モジュールを接続して構築した系統モデルにおいて、当該部品モジュールの接続順に順を追って（シーケンシャルに）計算を行っていたものを、本発明の実施形態に係るシミュレータ構築装置およびシミュレータ構築方法では、系統モデルを構成する部品モジュールで個々の計算を行い、その計算結果の情報をメインモジュールで管理して最終的な計算結果を得るようにしたものである。すなわち、本発明の実施形態に係るシミュレータ構築装置およびシミュレータ構築方法は、従来は各部品モジュールを接続して系統モデルとなる単一の計算処理実行体（モジュール）を構築していたのに対して、メインモジュールと部品モジュールとが情報をやりとりするモジュールの結合体を構築する点で相違する。
【００２４】
図１は、本発明の実施形態に係るシミュレータ構築装置および構築方法の概念を従来のものと対比して説明する説明図である。より詳細には、図１（Ａ）は系統の結線図、図１（Ｂ）は従来のシミュレータ構築装置および構築方法によって図１（Ａ）に示される系統の系統モデルを作成した場合における系統モデルの処理の流れを説明する説明図、図１（Ｃ）は本発明の実施形態に係るシミュレータ構築装置および構築方法によって図１（Ａ）に示される系統の系統モデルを作成した場合における系統モデルの処理の流れを説明する説明図である。
【００２５】
図１（Ａ）に示される系統は、一例として、配管２と弁３（３ａ，３ｂ，３ｃ，３ｄ）とを接続して構成された流路４である。
【００２６】
系統の一例である流路４は、第１の弁３ａが配置された主流路４ａから第１の弁３ａの下流側で二つの分岐流路４ｂ，４ｃに分岐し、分岐流路４ｂに配置された第２の弁３ｂの下流側と分岐流路４ｃに配置された第４の弁３ｄの下流側で合流流路４ｄに合流する。なお、弁３ａ，３ｂ，３ｃ，３ｄは、何れも同じ弁とする。
【００２７】
図１（Ｂ）に示される従来の系統モデル５は、以下の式（３）〜（５）の式で表される計算を順次行い、流路４の出口流量Ｆｏｕｔを計算する単一のモジュールである。系統モデル５では、まず、入力条件として与えられる分岐流路４ｂに流入する流量Ｆｉｎ１および分岐流路４ｃに流入するＦｉｎ２とを用いて、分岐流路４ｂを流れる流量Ｆ１および分岐流路４ｃを流れる流量Ｆ２を計算する。
【００２８】
流量Ｆ１，Ｆ２は、第１の弁３ａの開度をＺｖ１、第２の弁３ｂの開度をＺｖ２、第３の弁３ｃの開度をＺｖ３および第４の弁３ｄの開度をＺｖ４とすると、それぞれ、以下の式（３），（４）で計算される。
【００２９】
Ｆ１  ＝  Ｆｉｎ１  ＊  Ｚｖ１  ＊  Ｚｖ２            ・・・（３）
Ｆ２  ＝  Ｆｉｎ２  ＊  Ｚｖ１  ＊  Ｚｖ３  ＊Ｚｖ４  ・・・（４）
【００３０】
流量Ｆ１および流量Ｆ２を計算した後は、計算の結果、得られた流量Ｆ１および流量Ｆ２を以下の式（５）に従って加算し、合流流路４ｄの流量、すなわち、流路４の出口流量Ｆｏｕｔを計算する。
【００３１】
Ｆｏｕｔ  ＝  Ｆ１  ＋  Ｆ２  ・・・（５）
【００３２】
一方、図１（Ｃ）に示される系統モデル７は、メインモジュール８と、少なくとも一つ以上の部品モジュール９（図１（Ｃ）に示される例では、部品モジュール９ａ，９ｂ，９ｃ，９ｄ，９ｅ，９ｆ）とを備え、メインモジュール８が部品モジュール９と情報の授受を行う。
【００３３】
メインモジュール８は個々の部品モジュール９ａ，９ｂ，９ｃ，９ｄ，９ｅ，９ｆの接続状態を把握しており、受け取った情報をどの部品モジュール９（９ａ，９ｂ，９ｃ，９ｄ，９ｅ，９ｆ）に与えるかまたは最終結果として出力するかを管理する機能を有する。
【００３４】
また、部品モジュール９（９ａ，９ｂ，９ｃ，９ｄ，９ｅ，９ｆ）は、例えば、弁３等の同じ機器の単位で構成される部品モデルである。図１（Ｃ）に示される部品モジュール９の例は、四つの弁３ａ，３ｂ，３ｃ，３ｄに対応する弁の部品モジュール（以下、「弁モジュール」と称する。）９ａ，９ｂ，９ｃ，９ｄと、一つの流路である主流路４ａから二つの流路である分岐流路４ｂ，４ｃに分岐する流路に対応する分岐の部品モジュール（以下、「分岐モジュール」と称する。）９ｅと、二つの流路である分岐流路４ｂ，４ｃから一つの流路である合流流路４ｄに合流する流路に対応する合流の部品モジュール（以下、「合流モジュール」と称する。）９ｆである。
【００３５】
系統モデル７では、まず、入力条件として与えられる主流路４ａに流入する流量Ｆｉｎをメインモジュール８が受け取る。メインモジュール８は、受け取った流量Ｆｉｎの情報を、主流路４ａにおいてＦｉｎの流量が流入する第１の弁３ａについての部品モジュール（以下、「第１の弁モジュール」と称する。）９ａに与える。
【００３６】
図１（Ｃ）に示される系統モデル７では、弁モジュール９ａ，９ｂ，９ｃ，９ｄは、何れも以下の式（６）を演算するように構成されている。
【００３７】
弁の出口の流量＝弁の入口の流量×弁の開度  ・・・（６）
【００３８】
第１の弁モジュール９ａは、メインモジュール８から流量Ｆｉｎの情報を受け取ると、上記式（６）を用いて計算する。第１の弁モジュール９ａでは、入口の流量がＦｉｎなので、第１の弁３ａの開度をＺｖ１、第１の弁３ａの出口の流量をＦ１とすれば、上記式（６）は、以下の式（６ａ）となる。
【００３９】
Ｆ１  ＝  Ｆｉｎ  ＊  Ｚｖ１  ・・・（６ａ）
【００４０】
第１の弁モジュール９ａは、メインモジュール８から受け取った流量Ｆｉｎの情報と上記式（６ａ）に基づいて、第１の弁３ａの出口の流量Ｆ１を算出し、得られた結果を、メインモジュール８へ与える。
【００４１】
続いて、メインモジュール８は、第１の弁モジュール９ａから受け取った第１の弁３ａの出口の流量Ｆ１を、第１の弁モジュール９ａの下流側に接続される分岐モジュール９ｅに与える。
【００４２】
分岐モジュール９ｅは、分岐モジュール９ｅの入口の流量は流量Ｆ１として、以下の式（７），（８）で与えられる分岐流路４ｂを流れる流体の流量Ｆ０１および分岐流路４ｃを流れる流体の流量Ｆ０２を計算する。ここで、下記式（７）に記される「ｒａｔｅ」は、主流路４ａから分岐流路４ｂ側へ分岐する割合である。
【００４３】
Ｆ０１  ＝  Ｆ１  ＊  ｒａｔｅ  ・・・（７）
Ｆ０２  ＝  Ｆ１  −  Ｆ０１    ・・・（８）
【００４４】
分岐モジュール９ｅは、分岐流路４ｂおよび分岐流路４ｃの流量Ｆ０１，Ｆ０２を算出し、得られた結果を、メインモジュール８へ与える。
【００４５】
続いて、メインモジュール８は、分岐モジュール９ｅから受け取った分岐流路４ｂの流量Ｆ０１を、分岐モジュール９ｅの下流側に位置する分岐流路４ｂ側の第２の弁３ｂについての部品モジュール（以下、「第２の弁モジュール」と称する。）９ｂへ与える。また、メインモジュール８は、分岐モジュール９ｅから受け取った分岐流路４ｃの流量Ｆ０２を、分岐モジュール９ｅの下流側に位置する分岐流路４ｃ側の第３の弁３ｃについての部品モジュール（以下、「第３の弁モジュール」と称する。）９ｃへ与える。
【００４６】
第２の弁モジュール９ｂおよび第３の弁モジュール９ｃは、それぞれ、メインモジュール８から分岐流路４ｂの流量Ｆ０１および分岐流路４ｃの流量Ｆ０２の情報を受け取ると、上記式（６）を用いて計算する。ここで、それぞれの弁３ｂ，３ｃの開度をＺｖ２，Ｚｖ３、弁３ｂ，３ｃの出口の流量をＦ２，Ｆ３とすれば、弁モジュール９ｂ，９ｃは、それぞれの弁入口における流量がＦ０１，Ｆ０２なので、上記式（６）は、それぞれ、以下の式（６ｂ），（６ｃ）となる。
【００４７】
Ｆ２  ＝  Ｆ０１  ＊  Ｚｖ２  ・・・（６ｂ）
Ｆ３  ＝  Ｆ０２  ＊  Ｚｖ３  ・・・（６ｃ）
【００４８】
第２の弁モジュール９ｂおよび第３の弁モジュール９ｃは、メインモジュール８から受け取った流量Ｆ０１，Ｆ０２の情報と上記式（６ｂ），（６ｃ）に基づいて、第２の弁３ｂの出口の流量Ｆ２および第３の弁３ｃの出口の流量Ｆ３を算出し、得られた結果を、メインモジュール８へ与える。
【００４９】
続いて、メインモジュール８は、第２の弁モジュール９ｂから受け取った第２の弁３ｂの出口の流量Ｆ２を第２の弁モジュール９ｂの下流側に接続される合流モジュール９ｆに与え、第３の弁モジュール９ｃから受け取った第３の弁３ｃの出口の流量Ｆ３を第３の弁モジュール９ｃの下流側に接続される第４の弁３ｄについての部品モジュール（以下、「第４の弁モジュール」と称する。）９ｄに与える。
【００５０】
第４の弁モジュール９ｄは、メインモジュール８から第３の弁３ｃの出口の流量Ｆ３の情報を受け取ると、上記式（６）を用いて計算する。第４の弁モジュール９ｄでは、入口の流量がＦ３なので、第４の弁３ｄの開度をＺｖ４、第４の弁３ｄの出口の流量をＦ４とすれば、上記式（６）は、以下の式（６ｄ）となる。
【００５１】
Ｆ４  ＝  Ｆ３  ＊  Ｚｖ４  ・・・（６ｄ）
【００５２】
第４の弁モジュール９ｄは、メインモジュール８から受け取った流量Ｆ３の情報と上記式（６ｄ）に基づいて、第４の弁３ｄの出口の流量Ｆ４を算出し、得られた結果を、メインモジュール８へ与える。
【００５３】
続いて、メインモジュール８は、第４の弁モジュール９ｄから受け取った第４の弁３ｄの出口の流量Ｆ４を、第４の弁モジュール９ｄの下流側に接続される合流モジュール９ｆに与える。
【００５４】
合流モジュール９ｆは、分岐流路４ｂを流れる流体Ｆ２および分岐流路４ｃを流れる流体の流量Ｆ４として、以下の式（９）で与えられる合流流路４ｄを流れる流体の流量Ｆｏｕｔを計算する。
【００５５】
Ｆｏｕｔ  ＝  Ｆ２  ＋  Ｆ４  ・・・（９）
【００５６】
合流モジュール９ｆは、合流流路４ｄを流れる流体の流量Ｆｏｕｔを算出すると、得られた結果を、メインモジュール８へ与える。メインモジュール８は、最終（最下流）の構成要素である合流モジュール９ｆから算出結果を受け取ると、合流モジュール９ｆから受け取った結果、すなわち、合流流路４ｄを流れる流量Ｆｏｕｔを流路４の出口流量として出力する。
【００５７】
このように、本発明の実施形態に係るシミュレータ構築装置および構築方法によって作成された系統モデル７は、各部品モジュール９の入出力をメインモジュールによって管理（制御）、すなわち、メインモジュール８で中央管理する。
【００５８】
図２は、本発明の実施形態に係るシミュレータ構築装置の一例であるシミュレータ構築装置２０の構成を示す概略図である。
【００５９】
シミュレータ構築装置２０は、例えば、ハードウエア資源であるコンピュータとソフトウェア資源であるシミュレータ構築処理プログラム（以下、プログラムをＰＧと省略する。）２１とが協働することによって実現される。シミュレータ構築装置２０は、操作の入力を受け付ける入力手段２２と、処理実行結果等の視覚的な情報をユーザに提示する表示手段２３と、シミュレーションを実行する系統（システム）のモデル（以下、「系統モデル」と称する。）の構成部品となる部品のモデルを配置して結線することによって系統モデルを構築するシミュレータ構築処理手段２４と、シミュレータ構築処理手段２４で構築した系統モデルによってシミュレーションを実行するシミュレーション実行手段２５と、プログラム、ファイル、データベース（以下、「ＤＢ」と省略する。）等の電子的な情報を記憶して格納可能な記憶領域を有する記憶手段２６と、各手段２２，２３，２４，２５，２６と情報をやりとりし、各手段２２，２３，２４，２５，２６をそれぞれ制御する制御手段２７と、を具備する。
【００６０】
ここで、符号３１，３２，３３，３４は、それぞれ、シミュレータ構築処理手段２４が系統モデルを構築する際に参照する部品モジュールＤＢ、部品基本ソースＰＧ、ソース生成ルール情報および組み上げルール情報である。また、符号３６は、シミュレータ構築処理手段２４が構築した系統モデルについてのプログラムソース（以下、「系統モデルプログラムソース」と称する。）である。
【００６１】
シミュレータ構築処理手段２４は、部品配置結線処理部３８と、系統構成・部品順序判断処理部３９と、部品ソース生成部４０と、メインソース組み上げ処理部４１と、を備える。
【００６２】
部品配置結線処理部３８は、グラフィカルユーザインターフェイス（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ：ＧＵＩ）をユーザに提供する機能（ＧＵＩ機能）と、入力手段２２が受け付けた部品モジュール（部品モデル）および当該部品モジュールを配置する位置についての情報に基づいて、当該部品モジュールを指定された位置に配置する機能（部品モジュール配置機能）と、指定された二つの部品モジュールを結線する機能（部品モジュール結線機能）と、を有する。
【００６３】
部品配置結線処理部３８は、ＧＵＩ機能を用いて、ユーザに配置および結線する部品モジュールを指定する操作の入力を入力手段２２の一例であるポインティングデバイスを操作して行うことができる環境（インターフェイス）を提供する。また、部品配置結線処理部３８は、部品モジュール配置機能と部品モジュール結線機能とを用いて、指定された部品モジュールの配置および結線を行う。
【００６４】
系統構成・部品順序判断処理部３９は、部品配置結線処理部３８が部品モジュールを配置し結線することによって構築される系統モデルの構成、すなわち、系統モデルを構成する部品モジュールの種類および個数を判断する機能（構成判断機能）と、系統モデルを構成する部品モジュールの並び順を判断する機能（順序判断機能）と、を有する。
【００６５】
系統構成・部品順序判断処理部３９は、部品モジュールのアイコン（図柄）と当該アイコンに対応する部品モジュールの名称またはサブルーチン名とを関連付けた情報を有する部品モジュールＤＢ３１を参照するとともに、構成判断機能および順序判断機能を用いて、部品配置結線処理部３８が配置した部品モジュールのアイコンと対応する部品モジュールの名称またはサブルーチン名の情報を取得する。また、部品配置結線処理部３８が配置した部品モジュールのアイコンの個数および配置場所から、構築される系統モデルを構成する部品モジュールの個数およびその並び順を判断する。
【００６６】
部品ソース生成部４０は、部品基本ソースＰＧ３２およびソース生成ルール情報３３を参照して、系統構成・部品順序判断処理部３９が判断した系統モデルを構成する部品モジュールのソースコードを生成する機能（部品ソース生成機能）を有する。
【００６７】
ここで、部品基本ソースＰＧ３２は、部品モジュールとして予め作成される部品の種類と当該部品の種類に対応する部品基本ソースコードとが関連付けられた情報である。部品基本ソースコードは、部品モジュールのソースコード（部品ソース）の基本情報であり、実行文に相当する情報である。同じ部品についての部品モジュールでは同じになる。
【００６８】
また、ソース生成ルール情報３３は、部品基本ソースコードから部品ソースを生成する際に行う処理内容（ルール）を規定した情報であり、部品モジュール間でプロトコルを共通化する情報、すなわち、部品モジュールのインターフェースを設定する情報を含んだ、いわば、部品ソースのテンプレートとなる情報（以下、「部品ソーステンプレート情報」と称する。）である。
【００６９】
部品ソース生成部４０は、部品基本ソースＰＧ３２およびソース生成ルール情報３３を参照し、系統構成・部品順序判断処理部３９が判断した系統モデルを構成する部品モジュールとして作成される部品の種類に対応する部品基本ソースコードおよび部品ソーステンプレート情報を取得し、部品基本ソースコードと、当該部品モジュールの識別情報であるＩＤと、当該部品モジュールの名称（サブルーチンの名称）の情報と、部品基本ソースコードに含まれる変数の情報を部品ソーステンプレート情報に付加して、当該部品モジュールの部品ソースを生成する。
【００７０】
メインソース組み上げ処理部４１は、メインモジュールとして個々の部品モジュールを管理するメインソースのテンプレート情報（以下、「メインソーステンプレート情報」と称する。）を有する組み上げルール情報３４を参照して、メインソーステンプレート情報を取得し、メインソーステンプレート情報を有するメインモジュールを生成する機能（メインモジュール生成機能）と、系統構成・部品順序判断処理部３９が判断した系統モデルを構成する部品モジュールを管理するメインモジュールと外部との入力および出力の設定を行う機能（外部入出力設定機能）と、管理する部品モジュールを設定する機能（管理対象設定機能）と、メインモジュールとメインモジュールの管理対象となる部品モジュールとの情報授受の順番、すなわち、系統モデルにおいて何れの部品モジュールから処理を実行するかの順番を設定する機能（処理順番設定機能）と、を有する。
【００７１】
ここで、メインソーステンプレート情報は、メインモジュールが何れかの部品モジュールを管理（制御）する旨の情報と、部品モジュールと共通のプロトコル（共通プロトコル）で部品モジュールと通信する旨の情報とを有する、いわば、メインソースのテンプレートとなる情報である。
【００７２】
メインソース組み上げ処理部４１は、メインモジュール生成機能を用いて、メインソーステンプレート情報を有するメインモジュールを生成する。続いて、メインソース組み上げ処理部４１は、外部入出力設定機能を用いて、メインソーステンプレート情報に、外部から入力される変数および外部へ出力する変数の情報を付加する。
【００７３】
さらに、メインソース組み上げ処理部４１は、管理対象設定機能および処理順番設定機能を用いて、メインソーステンプレート情報に、管理対象となる個々の部品モジュールに付されるサブルーチンの名称、ＩＤの情報、サブルーチンの実行で使用する変数、および、メインモジュールと部品モジュールとの間で情報を授受する順序の情報を含む管理部品モジュール情報を付加（設定）して部品配置結線処理部３８が配置し結線した個々の部品モジュールを制御するメインモジュールとして設定し、メインソースの組み上げを完了する。
【００７４】
メインソース組み上げ処理部４１が、メインソースの組み上げを完了すると、メインモジュールとメインモジュールの管理対象となる部品モジュールの各々とは共通プロトコルで情報の授受が可能に接続される。換言すれば、メインモジュールとメインモジュールの管理対象となる部品モジュールを有し、メインモジュールとメインモジュールの管理対象となる部品モジュールの各々とは共通プロトコルで情報の授受が可能に接続された系統モデルの系統モデルプログラムソース３６が生成される。
【００７５】
なお、図２に示されるシミュレータ構築装置２０は、シミュレーション実行手段２５を具備する場合の例であるが、シミュレータ構築処理手段２４で構築した系統モデルによるシミュレーションの実行を自装置（シミュレータ構築装置）２０内で行うことを想定していない場合等を考慮してシミュレーション実行手段２５を具備しないシミュレータ構築装置２０を構成しても良い。
【００７６】
図３は部品基本ソースＰＧ３２、ソース生成ルール情報３３並びに部品基本ソースＰＧ３２およびソース生成ルール情報３３を用いて生成される部品ソース４３の一例を示す説明図である。より詳細には、図３（Ａ）が部品基本ソースＰＧ３２の一例を示す説明図、図３（Ｂ）がソース生成ルール情報３３の一例を示す説明図、図３（Ｃ）が部品ソース４３の一例を示す説明図である。
【００７７】
部品基本ソースＰＧ３２は、部品モジュールとして予め作成される部品の種類を示す「サブルーチン名」と各サブルーチン名に対応する部品基本ソースコードが規定される。部品基本ソースコードとは、部品ソースにおける実行文に相当する情報であり、例えば、図３（Ａ）に示されるように、弁（ｖａｌｖｅ）ならば、「Ｆｏｕｔ＝Ｆｉｎ＊Ｚｖ」である。なお、Ｆｏｕｔは弁の流出流量、Ｆｉｎは流入流量、Ｚｖは弁の開度である。
【００７８】
ソース生成ルール情報３３は、部品モジュールの部品ソーステンプレート情報が規定される。部品ソーステンプレート情報には、系統モデルプログラムソース３６において部品モジュールとメインモジュールとを接続する共通バスのプロトコルであるリクエスト（ＲＥＱ）、レスポンス（ＲＥＳ）および部品モジュールを識別する識別情報を示す変数ＩＤｉｎの情報を含んでいる。生成後の部品ソース４３と比較すると、部品基本ソースコードと、この部品基本ソースコードで使用される変数の情報と、部品モジュールを個別に識別する識別情報としてのＩＤと、サブルーチン名（部品モジュールの名称）の情報とが存在していない状態である。
【００７９】
図３（Ｃ）は、部品基本ソースＰＧ３２およびソース生成ルール情報３３を用いて生成される部品ソース４３の一例を説明する説明図である。
【００８０】
部品ソース４３は、部品ソース生成部４０が、部品基本ソースＰＧ３２を参照することで取得した部品基本ソースコード（部品ソース４３における実行文に相当する情報）と、部品基本ソースコードで使用される変数の情報と、当該部品基本ソースコードに対応する部品モジュールの名称を示すサブルーチン名の情報と、部品ソース４３を生成する際に発行されるＩＤ（例えば番号）とをソース生成ルール情報３３に付加することによって生成される。
【００８１】
図３（Ｃ）に示される部品ソース４３は、例えば、第１の弁（ｖａｌｖｅ  １）についての部品モジュールの部品ソースであり、図３（Ｂ）に示されるソース生成ルール情報３３に対して、第１行目では、ｓｕｂｒｏｕｔｉｎｅ（サブルーチン）の後に「ｖａｌｖｅ  １」がサブルーチン名を示す情報として追記される。また、第１行目の（  ）内には、弁の実行文「Ｆｏｕｔ＝Ｆｉｎ＊Ｚｖ」で使用される変数であるＦｏｕｔ、ＦｉｎおよびＺｖが追記される。
【００８２】
さらに、第４行目（空白行を数えない、以下同じ。）には、部品ソース４３を生成する際に発行される部品モジュールを個別に識別するＩＤ（ＩＤ番号）である「ＩＤ＝１」が追記される。さらにまた、第６行目には、弁の実行文「Ｆｏｕｔ＝Ｆｉｎ＊Ｚｖ」が追記される。
【００８３】
図４は、組み上げルール情報３４と、組み上げルール情報３４に基づいて組み上げられたメインソース４５の一例を示す説明図である。より詳細には、図４（Ａ）が組み上げルール情報３４、すなわち、メインソーステンプレート情報の一例を示す説明図、図４（Ｂ）が一例として図１（Ｃ）に示される系統モデル７におけるメインモジュール８のメインソース４５の一例を示す説明図である。
【００８４】
組み上げルール情報３４は、メインモジュールが何れかの部品モジュールを管理（制御）する旨の情報と、部品モジュールと共通のプロトコル（共通プロトコル）で部品モジュールと通信する旨の情報とを有する。例えば、図４（Ａ）に示される組み上げルール情報３４では、第６行目の「ｃａｌｌ  ｓｙｓ１  ｃｎｔ」が何れかの部品モジュールを管理（制御）する旨の情報に相当する。
【００８５】
また、「ｃａｌｌ  ｓｙｓ１  ｃｎｔ」の（  ）内に含まれるＲＥＱ（リクエスト），ＲＥＳ（レスポンス），ＩＤ（アイディ：部品モジュールの識別情報）は部品モジュールの部品ソースでも使用されるプロトコルであり、部品モジュールと共通のプロトコル（共通プロトコル）で部品モジュールと通信する旨の情報に相当する。
【００８６】
図４（Ｂ）に示されるメインソース４５では、図４（Ａ）に示される組み上げルール情報３４に対して、外部からの入力、外部への出力、呼び出すサブルーチンおよび当該サブルーチンで使用される変数の情報が付加されている。より詳細には、図４（Ｂ）に示されるメインソース４５のうち、第１０行目の「ｃａｌｌ  ｓｉｇ＿ｉｎ（Ｆｉｎ）」のうち（  ）内の「Ｆｉｎ」が外部からの入力を示す情報であり、第１７行目の「ｃａｌｌ  ｓｉｇ＿ｉｎ（Ｆｏｕｔ）」のうち（  ）内の「Ｆｏｕｔ」が外部への出力である。
【００８７】
また、第１１〜１６行目の「ｃａｌｌ  ｖａｌｖｅ  １（ＲＥＱ，ＲＥＳ（１），ＩＤ，Ｆ１，Ｆｉｎ，Ｚｖ１）」、「ｃａｌｌ  ｂｒａｎｃｈ（ＲＥＱ，ＲＥＳ（５），ＩＤ，Ｆ０１，Ｆ０２，Ｆ１，ｒａｔｅ）」、「ｃａｌｌ  ｖａｌｖｅ  ２（ＲＥＱ，ＲＥＳ（２），ＩＤ，Ｆ２，Ｆ０１，Ｚｖ２）」、「ｃａｌｌ  ｖａｌｖｅ  ３（ＲＥＱ，ＲＥＳ（３），ＩＤ，Ｆ３，Ｆ０２，Ｚｖ３）」、「ｃａｌｌ  ｖａｌｖｅ  ４（ＲＥＱ，ＲＥＳ（４），ＩＤ，Ｆ４，Ｆ３，Ｚｖ４）」および「ｃａｌｌ  ｊｏｉｎ（ＲＥＱ，ＲＥＳ（６），ＩＤ，Ｆｏｕｔ，Ｆ２，Ｆ４）」が呼び出すサブルーチンである。
【００８８】
このとき、弁（ｖａｌｖｅ）等の同じ部品が存在する場合、同じ変数が登場するため、開度についてはサブルーチン名と同様に末尾に数字を付す等して区別して追記される。例えば、弁の開度Ｚｖは、第１の弁モジュール９ａ〜第４の弁モジュール９ｄについて、それぞれ、Ｚｖ１〜Ｚｖ４となる。また、ＲＥＳ（１）〜ＲＥＳ（６）のかっこ内の数字はどの部品モジュールからのＲＥＳかを判別するために追記される情報であり、例えばＩＤと対応した数字が付される。
【００８９】
また、入口の流量および出口の流量を示す変数ＦｉｎおよびＦｏｕｔについては、接続関係を考慮して変数が変更される。例えば、系統モデル７の入口となる第１の弁モジュール９ａについては、入口側の流量を示す変数Ｆｉｎはそのまま維持し、出口側の流量をＦ１とする。また、分岐モジュール９ｅについては、入口側が第１の弁モジュール９ａと接続されているため、入口側の流量を第１の弁モジュール９ａの出口側の流量と同じＦ１とし、出口側の流量をＦ０１，Ｆ０２とする。
【００９０】
第２の弁モジュール９ｂについては、入口側が分岐モジュール９ｅと接続されているため、入口側の流量を分岐モジュール９ｅの出口側の流量のうち第２の弁モジュール９ｂ側へ流れる流量と同じＦ０１とし、出口側の流量をＦ２とする。また、第３の弁モジュール９ｃについては、入口側が分岐モジュール９ｅと接続されているため、入口側の流量を分岐モジュール９ｅの出口側の流量のうち第３の弁モジュール９ｃ側へ流れる流量と同じＦ０２とし、出口側の流量をＦ３とする。さらに、第４の弁モジュール９ｄについては、入口側が第３の弁モジュール９ｃと接続されているため、入口側の流量を第３の弁モジュール９ｃの出口側の流量と同じＦ３とし、出口側の流量をＦ４とする。
【００９１】
そして、系統モデル７の出口となる合流モジュール９ｆについては、出口側の流量を示す変数Ｆｏｕｔをそのまま維持する。一方で、入口側の流量のうち第２の弁モジュール９ｂ側の流量を第２の弁モジュール９ｂの出口側の流量であるＦ２、第４の弁モジュール９ｄ側の流量を第４の弁モジュール９ｄの出口側の流量であるＦ４とする。
【００９２】
サブルーチンで使用される変数の情報については、例えば、第２行目の「ｃｏｍｍｏｎ  ｒａｔｅ，Ｚｖ１，Ｚｖ２，Ｚｖ３，Ｚｖ４」と、第５，６行目の「ｒｅａｌ  ｒａｔｅ，Ｚｖ１，Ｚｖ２，Ｚｖ３，Ｚｖ４，Ｆｉｎ，Ｆｏｕｔ」および「ｒｅａｌ  Ｆ１，Ｆ２，Ｆ３，Ｆ４，Ｆ０１，Ｆ０２」と、第９行目の「ｃａｌｌ  ｓｙｓ１  ｃｎｔ（ＲＥＱ，ＲＥＳ，ＩＤ，Ｆｉｎ，Ｆｏｕｔ，Ｆ１，Ｆ２，Ｆ３，Ｆ４，Ｆ０１，Ｆ０２）」に示されるように、サブルーチンで使用される変数であるｒａｔｅ，Ｚｖ１，Ｚｖ２，Ｚｖ３，Ｚｖ４，Ｆｉｎ，Ｆｏｕｔ，Ｆ１，Ｆ２，Ｆ３，Ｆ４，Ｆ０１，Ｆ０２の情報が付加される。
【００９３】
図５はシミュレータ構築装置２０を用いてユーザが行う操作手順を説明する説明図である。
【００９４】
図５に示されるように、表示手段の一例であるディスプレイの画面４７には、例えば、部品基本ソースＰＧが用意された部品モジュールと対応するアイコン（図柄）５１を提示（表示）する部品メニュー窓４８と、部品の配置および結線を行う作業領域である部品配置結線処理窓４９とが表示される。
【００９５】
画面４７に表示されるアイコン５１の情報は、制御手段から表示手段に与えられる情報である。制御手段は、シミュレータ構築処理手段を制御して、シミュレータ構築処理手段からアイコン５１の情報を取得する。シミュレータ構築処理手段は、部品モジュールＤＢを参照することで、部品モジュールＤＢに格納されるアイコン５１の情報を取得することができる。
【００９６】
シミュレータ構築装置２０は、ＧＵＩを有し、ユーザは部品配置結線処理窓４９にアイコン（図柄）５１（５１ａ，５１ｂ，５１ｃ，５１ｄ）を配置し（作業ｗ１）、結線する（作業ｗ２）作業を、入力手段の一例であるポインティングデバイスを操作して行うことができる。
【００９７】
シミュレータ構築装置２０では、ユーザの入力操作によって、部品配置結線処理窓４９に配置されたアイコン５１が結線されると、シミュレータ構築処理手段２４が部品配置結線処理窓４９に配置され結線されたアイコン５１と対応する部品モジュールと、当該部品モジュールを管理（制御）するメインモジュールとを備えた系統モデルを構築する処理を実行する。
【００９８】
図６はシミュレータ構築装置２０が実行する系統モデル７を構築する処理手順（以下、「系統モデル構築処理手順」と称する。）の処理工程を示した処理フロー図である。
【００９９】
本発明の実施形態に係るシミュレータ構築方法の一例である系統モデル構築処理手順は、シミュレータ構築処理手段２４が、構築する系統モデルを構成する部品モジュール（部品モデル）を配置し結線する部品配置結線処理工程（ステップＳ１）と、部品配置結線処理工程で配置結線された部品モジュールの配置順序を判断する系統構成・部品順序判断処理工程（ステップＳ２）と、系統構成・部品順序判断処理工程で判断された結果に基づき、部品基本ソースＰＧ３２およびソース生成ルール情報３３を参照して部品配置結線処理部３８が配置し結線した部品モジュールのソースコードを生成する部品ソース生成処理工程（ステップＳ３）と、組み上げルール情報３４を参照して、系統構成・部品順序判断処理工程で判断された系統モデルを構成する個々の部品モジュールをそれぞれ制御するメインモジュールとメインモジュールの管理対象となる部品モジュールとを共通プロトコルで接続した系統モデルを生成するメインソース組み上げ処理工程（ステップＳ４）と、を具備する。
【０１００】
部品配置結線処理工程（ステップＳ１）では、シミュレータ構築処理手段２４の部品配置結線処理部３８が部品モジュールＤＢ３１を参照して系統モデルを構成する部品モジュール（部品モデル）を配置し結線するための操作環境としてＧＵＩを提供し、部品モジュールに対応するアイコンを配置し結線する操作の入力を受け付ける。部品モジュールに対応するアイコンを配置し結線する操作の入力を制御手段が認識すると、制御手段から入力のあった操作の情報をシミュレータ構築処理手段２４の部品配置結線処理部３８に与えられ、部品配置結線処理部３８が受け取った操作の情報に従って、アイコンに対応する部品モジュールを配置して結線する。
【０１０１】
続くステップＳ２では、系統構成・部品順序判断処理部３９が部品配置結線処理工程で配置結線された部品モジュールの配置順序を判断する。系統構成・部品順序判断処理部３９は、部品モジュールＤＢ３１を参照し、配置された部品モジュールに対応するアイコン（図柄）を検索キーとして部品モジュールの名称（サブルーチン名）を取得する。また、部品配置結線処理部３８が配置した部品モジュールのアイコンの個数および配置場所から、構築される系統モデルを構成する部品モジュールの個数およびその並び順を判断する。
【０１０２】
続くステップＳ３では、部品ソース生成部４０が、系統構成・部品順序判断処理工程で判断された結果に基づき、部品配置結線処理工程で配置され結線された部品モジュールの種類、個数および並び順を特定する。そして、部品ソース生成部４０が部品基本ソースＰＧ３２およびソース生成ルール情報３３を参照して、部品配置結線処理工程で配置され結線された部品モジュールのソースコードを生成する。部品ソース生成処理工程（ステップＳ３）のより詳細な処理内容については後述する図７に示す。
【０１０３】
続くステップＳ４では、メインソース組み上げ処理部４１が、組み上げルール情報３４を参照して、系統構成・部品順序判断処理工程で判断された系統モデルを構成する部品モジュールの各々をそれぞれ制御するメインモジュールとメインモジュールの管理対象となる部品モジュールとが共通プロトコルで情報の授受可能に接続し、系統モデルプログラムソース３６を生成する。メインソース組み上げ処理工程（ステップＳ４）のより詳細な処理内容については後述する図８に示す。
【０１０４】
図７は、本発明の実施形態に係るシミュレータ構築方法の一例である系統モデル構築処理手順が具備する部品ソース生成処理工程（ステップＳ３）のより詳細な処理内容を示した処理フロー図である。
【０１０５】
部品ソース生成処理工程は、部品基本ソースコード取得ステップ（ステップＳ３１）と、部品ソーステンプレート情報取得ステップ（ステップＳ３２）と、部品ソース生成ステップ（ステップＳ３３）と、部品ソース生成処理完了判定ステップ（ステップＳ３４）とを備える。
【０１０６】
部品基本ソースコード取得ステップ（ステップＳ３１）では、部品ソース生成部４０が、部品基本ソースＰＧ３２を参照し、系統構成・部品順序判断処理部３９から受け取った系統構成・部品順序判断処理工程で判断された部品の種類判断結果が示す部品の種類に対応した部品基本ソースコードを取得する。
【０１０７】
部品ソーステンプレート情報取得ステップ（ステップＳ３２）では、部品ソース生成部４０が、ソース生成ルール情報３３を参照し、部品ソースのテンプレート情報を読み出して取得する。
【０１０８】
部品ソース生成ステップ（ステップＳ３３）では、部品ソース生成部４０が、部品ソースのテンプレート情報に、当該部品モジュールの部品基本ソースコードと、識別情報であるＩＤと、モジュールの名称（サブルーチンの名称）とを付加して当該部品モジュールの部品ソースを生成する。
【０１０９】
部品ソース生成処理完了判定ステップ（ステップＳ３４）では、部品ソース生成部４０が、系統構成・部品順序判断処理部３９から受け取った系統構成・部品順序判断処理工程で判断された部品の部品モジュールのうち、部品ソースを生成していない部品モジュールが存在するか否かを判断する。
【０１１０】
部品ソースを生成していない部品モジュールがある場合（ステップＳ３４でＹＥＳの場合）には、ステップＳ３１に戻り、ステップＳ３１〜ステップＳ３４の処理ステップを繰り返し、系統構成・部品順序判断処理工程で判断された全部品についての部品モジュールのソースコードを生成する。そして、部品ソースを生成していない部品モジュールがなくなった場合（ステップＳ３４でＮＯの場合）には、部品ソース生成処理工程の全処理ステップ（ステップＳ３１〜ステップＳ３４）を終了する。
【０１１１】
なお、ステップＳ３１とステップＳ３２の処理実行の順番は、ステップＳ３３の実行前に完了していれば、どのような順番であっても構わない。すなわち、ステップＳ３２がステップＳ３１の前に実行されても良いし、ステップＳ３１と同時に実行されても良い。
【０１１２】
図８は、本発明の実施形態に係るシミュレータ構築方法の一例である系統モデル構築処理手順が具備するメインソース組み上げ処理工程（ステップＳ４）のより詳細な処理内容を示した処理フロー図である。
【０１１３】
メインソース組み上げ処理工程（ステップＳ４）は、メインモジュール生成ステップ（ステップＳ４１）と、外部入出力設定ステップ（ステップＳ４２）と、管理部品モジュール設定ステップ（ステップＳ４３）と、を備える。
【０１１４】
メインモジュール生成ステップ（ステップＳ４１）では、メインソース組み上げ処理部４１が、組み上げルール情報３４を参照して、部品モジュールを管理（制御）するメインモジュールのメインソーステンプレート情報を取得する。すなわち、メインソーステンプレート情報を有するメインモジュールを生成する。
【０１１５】
外部入出力設定ステップ（ステップＳ４２）では、メインソース組み上げ処理部４１が、系統構成・部品順序判断処理工程で判断された系統モデルを構成する部品モジュールの接続状態に基づき、メインモジュールの外部との入力および出力の設定を行う。すなわち、メインモジュールのメインソーステンプレート情報に外部との入力および出力を示す変数を追記する。
【０１１６】
管理部品モジュール設定ステップ（ステップＳ４３）では、メインソース組み上げ処理部４１が、メインソーステンプレート情報に、系統構成・部品順序判断処理工程で判断された系統モデルを構成する部品モジュールのサブルーチンの名称、ＩＤの情報、サブルーチンの実行で使用する変数、および、メインモジュールと部品モジュールとの間で情報を授受する順序の情報を含む管理部品モジュール情報をさらに付加（設定）して部品配置結線処理部３８が配置し結線した個々の部品モジュールを制御するメインモジュールとして設定する。
【０１１７】
メインソース組み上げ処理部４１がステップＳ４１〜ステップＳ４３の処理ステップを完了すると、メインモジュールとメインモジュールの管理対象となる部品モジュールの各々とは共通プロトコルで情報の授受が可能に接続される。換言すれば、メインモジュールとメインモジュールの管理対象となる部品モジュールを有し、メインモジュールとメインモジュールの管理対象となる部品モジュールの各々とは共通プロトコルで情報の授受が可能に接続された系統モデルの系統モデルプログラムソース３６が生成される。
【０１１８】
図９は、本発明の実施形態に係るシミュレータ構築装置およびシミュレータ構築方法によって構築された系統モデル７の一例について構成を示す概略図である。
【０１１９】
系統モデル７は、メインモジュール８と、少なくとも一つ以上の部品モジュール９とを備え、メインモジュール８と部品モジュール９とが共通プロトコルでの情報の伝送が可能なバス（共通バス）５５で接続される。また、系統モデル７は、必要に応じて、部品モジュール９が模擬している部品の設計仕様情報（例えば、弁ならば定格流量、タンクならば定格容量、ポンプならば定格流量や定格出力、分岐させる場合には分岐比等）を有する設計仕様情報ＤＢ５６を備え、設計仕様情報ＤＢ５６が共通バス５５に接続される。
【０１２０】
なお、入力境界５７および出力境界５８は、系統モデル７の入力および出力である。メインモジュール８へ与えられる入力境界５７および操作信号は、シミュレータ構築装置の入力手段から入力することで与えることができる。
【０１２１】
図９に示されるように、メインモジュール８と共通バス５５を設け、各部品モジュール９を共通プロトコルで共通バス５５に接続した系統モデル７を作成することによって、各部品モジュール９での計算結果はメインモジュール８に集められる。そして、メインモジュール８が部品モジュール９の接続状態に従って入出力を制御することができる。
【０１２２】
故に、部品モジュール９間における接続状態を変更する場合、メインモジュール８における入出力の制御、すなわち、メインソースを変更するだけで済む。本発明の実施形態に係るシミュレータ構築装置およびシミュレータ構築方法であれば、弁単体で構成される流路と同じ弁を直列に二つ配置した流路とでは、同じ弁を設置して構成される流路であってもそれぞれ部品モジュールを作成する必要が生じていた従来のシミュレータ構築装置およびシミュレータ構築方法よりも格段に負担を軽減できる。
【０１２３】
次に、本発明の実施形態に係るシミュレータ構築装置およびシミュレータ構築方法で構築された系統モデル７によるシミュレーションの実行時の情報の流れを説明する。
【０１２４】
図１０は系統の一例である模擬系統６１および当該模擬系統６１をモデル化した系統モデル７の構成を説明する図であり、より詳細には、図１０（Ａ）は模擬系統６１の構成を説明する説明図、図１０（Ｂ）は模擬系統６１をモデル化した系統モデル７の構成を説明する説明図である。
【０１２５】
図１０（Ａ）に示される模擬系統６１は、入力側（図１０（Ａ）における左側）から順に第１の弁３ａと、タンク３ｅと、第２の弁３ｂとを直列に接続して構成される。また、図１０（Ｂ）に示される系統モデル７は、図１０（Ａ）に示される模擬系統６１をモデル化したものであり、メインモジュール８には、他の系統モデルとの入力側の境界となる入力境界５７と他の系統モデルとの出力側の境界となる出力境界５８が接続される。さらに、メインモジュール８は、共通バス５５を介して、第１の弁３ａの部品モジュールである第１の弁モジュール９ａと、タンク３ｅの部品モジュールであるタンクモジュール９ｇと、第２の弁３ｂの部品モジュールである第２の弁モジュール９ｂと、タンク３ｅの定格容量、流出の液侵および流出の定格容量等の設計仕様情報ＤＢ５６と接続される。また、第１の弁モジュール９ａ、タンクモジュール９ｇおよび第２の弁モジュール９ｂには、それぞれ、ＩＤが１，２，３と付されている。
【０１２６】
図１１は図１０に示される系統モデル７のシミュレーション実行時における動作例を示す説明図である。なお、図１１に示される左欄は操作信号または設定値の入力（図１１において「操作／設定入力」と示す）を示す欄であり、右欄は共通バスの入出力の様子を示す欄である。
【０１２７】
図１０に示される系統モデル７のシミュレーション実行時における動作は、図１１に示されるように、まず、上流系統からの情報である「流入流量：１ｍ３／ｈ（立方メートル毎時）」が入力境界５７に与えられ、入力境界５７からメインモジュール８へ与えられる（ステップＳ５１）。
【０１２８】
続いて、メインモジュール８は、与えられた入力（流入流量：１ｍ３／ｈ）を第１の弁モジュール９ａへ伝送するため、リクエスト（ＲＥＱ）フラグ、ＩＤ（ＩＤ＝１）および流入流量（１ｍ３／ｈ）を共通バス５５へ流す（ステップＳ５２）。
【０１２９】
続いて、第１の弁モジュール９ａでは、リクエストがＯＮの状態で自己の部品モジュールを示すＩＤ＝１を検知して、計算を開始する。この時、第１の弁モジュール９ａは計算に必要な操作信号として第１の弁３ａの開度の入力を受け付ける。第１の弁３ａの開度が入力されると、第１の弁３ａの流出流量を計算する（ステップＳ５３）。第１の弁３ａの開度として入力された開度が５０％ならば、流出流量（ｍ３／ｈ）は流入流量１（ｍ３／ｈ）×開度５０％（＝０．５）を計算して０．５ｍ３／ｈとなる。第１の弁モジュール９ａが計算した結果の情報は、メインモジュール８へ送られる。
【０１３０】
続いて、メインモジュール８は、第１の弁３ａの直ぐ下流側に接続されるタンク３ｅの部品モジュールであるタンクモジュール９ｇへ伝送するため、リクエスト（ＲＥＱ）フラグ、ＩＤ（ＩＤ＝２）および流入流量（０．５ｍ３／ｈ）を共通バス５５へ流す（ステップＳ５４）。
【０１３１】
続いて、タンクモジュール９ｇでは、リクエストがＯＮの状態で自己の部品モジュールを示すＩＤ＝２を検知して、計算を開始する（ステップＳ５５）。この時、タンクモジュール９ｇは計算に必要な操作信号として現在の液位、タンクの定格容量、流出の液浸および定格の流出流量の入力を受け付ける。なお、図１１に示される例の場合、液位が０ｍ３（立方メートル）であり、液浸以下の液位であるため流出流量も０ｍ３／ｈとなる。タンクモジュール９ｇが計算した結果の情報は、メインモジュール８へ送られる。
【０１３２】
続いて、メインモジュール８は、タンク３ｅの直ぐ下流側に接続される第２の弁３ｂの部品モジュールである第２の弁モジュール９ｂへ伝送するため、リクエスト（ＲＥＱ）フラグ、ＩＤ（ＩＤ＝３）および流入流量（０ｍ３／ｈ）を共通バス５５へ流す（ステップＳ５６）。
【０１３３】
続いて、第２の弁モジュール９ｂでは、リクエストがＯＮの状態で自己の部品モジュールを示すＩＤ＝３を検知して、計算を開始する。この時、第２の弁モジュール９ｂは計算に必要な操作信号として第２の弁３ｂの開度の入力を受け付ける。第２の弁３ｂの開度が入力されると、第２の弁３ｂの流出流量を計算する（ステップＳ５７）。第２の弁３ｂの開度として入力された開度が０％ならば、流出流量（ｍ３／ｈ）は流入流量０（ｍ３／ｈ）×開度０％（＝０）を計算して０ｍ３／ｈとなる。
【０１３４】
第２の弁モジュール９ｂが計算した結果の情報は、メインモジュール８へ送られる。メインモジュール８は、第２の弁モジュール９ｂの計算結果、すなわち、０（ｍ３／ｈ）を、系統モデル７の最終出力として出力境界５８へ与える（ステップＳ５８）。
【０１３５】
図１２は本発明の実施形態に係るシミュレータ構築装置およびシミュレータ構築方法によって構築された系統モデルのシミュレーション実行時におけるメインモジュールと各部品モジュールの共通バスにおける伝送状態を示した波形図である。
【０１３６】
図１２に示されるように、メインモジュールでは、まず、ＩＤ＝１の部品モジュール（第１の弁モジュール）へ入力された情報（例えば、流入流量１ｍ３／ｈ）をリクエスト（ＲＥＱ）がオン（ＯＮ）のタイミングでリクエストのオンと共にＩＤ＝１およびＩＤ＝１の部品モジュールの入力となる情報（上記例では流入流量１ｍ３／ｈ）が共通バスを介して伝送する。
【０１３７】
メインモジュールからリクエストのオンとＩＤ＝１の部品モジュール（第１の弁モジュール）の入力となる流入流量１ｍ３／ｈが共通バスを介してＩＤ＝１の部品モジュールに伝送されると、ＩＤ＝１の部品モジュールでは、メインモジュールから入力された流入流量１ｍ３／ｈと操作信号とから当該部品モジュールの部品ソースで規定される計算を行い、レスポンス（ＲＥＳ）がオン（ＯＮ）のタイミングでレスポンスのオンと共に計算結果をメインモジュールへ共通バスを介して伝送する。
【０１３８】
以降同様にして、メインモジュールと、メインモジュールと接続される全ての部品モジュールとの間で情報のやりとりが繰り返される。すなわち、メインモジュールは、共通バスを介してＩＤ＝２の部品モジュール（タンクモジュール）へＩＤ＝１の部品モジュールから受け取った情報をリクエストがオンのタイミングで送り、ＩＤ＝２の部品モジュールが計算した計算結果をレスポンスがオンのタイミングで共通バスを介して受け取る。続いて、メインモジュールは、共通バスを介してＩＤ＝３の部品モジュール（第２の弁モジュール）へＩＤ＝２の部品モジュールから受け取った情報をリクエストがオンのタイミングで送り、ＩＤ＝３の部品モジュールが計算した計算結果をレスポンスがオンのタイミングで共通バスを介して受け取る。
【０１３９】
以上、本発明の実施形態に係るシミュレータ構築装置およびシミュレータ構築方法によれば、系統モデル７を作成する際の効率を従来よりも高めることができる。すなわち、従来では、弁単体で構成される流路と同じ弁を直列に二つ配置した流路とでは、同じ弁を設置して構成される流路であっても、ソースプログラムが異なるため、使用する弁の配置毎、に部品モジュール９を作成する必要が生じていたが、本発明の実施形態に係るシミュレータ構築装置およびシミュレータ構築方法では、部品モジュール９を新たに作成する必要は無く、部品モジュール９の接続が限定されない系統モデル７を構築できる。
【０１４０】
また、本発明の実施形態に係るシミュレータ構築装置およびシミュレータ構築方法によれば、部品モジュール間のインターフェースを共通化しておくので、インターフェースの属性を考慮する必要がなく、系統モデル７の作成を効率的に行うことができる。
【０１４１】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階では、上述した実施例以外にも様々な形態で実施することが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１４２】
２  配管
３  弁
４  流路
５  従来の系統モデル
７  系統モデル
８  メインモジュール
９  部品モジュール
２０  シミュレータ構築装置
２１  シミュレータ構築処理ＰＧ
２２  入力手段
２３  表示手段
２４  シミュレータ構築処理手段
２５  シミュレーション実行手段
２６  記憶手段
２７  制御手段
３１  部品モジュールＤＢ
３２  部品基本ソースＰＧ
３３  ソース生成ルール情報
３４  組み上げルール情報
３６  系統モデルプログラムソース
３８  部品配置結線処理部
３９  系統構成・部品順序判断処理部
４０  部品ソース生成部
４１  メインソース組み上げ処理部
４３  部品ソース
４５  メインソース
４７  画面
４８  部品メニュー窓
４９  部品配置結線処理窓
５１  アイコン
５５  共通バス
５６  設計仕様情報ＤＢ
６１  模擬系統
【図１】
2013065099.tif 000003
【図２】
2013065099.tif 000004
【図３】
2013065099.tif 000005
【図４】
2013065099.tif 000006
【図５】
2013065099.tif 000007
【図６】
2013065099.tif 000008
【図７】
2013065099.tif 000009
【図８】
2013065099.tif 000010
【図９】
2013065099.tif 000011
【図１０】
2013065099.tif 000012
【図１１】
2013065099.tif 000013
【図１２】
2013065099.tif 000014