(57)【特許請求の範囲】
【請求項１】
被加工物を加工する製造プロセスラインをシミュレーションするためのシミュレーションプログラムを生成するシミュレーションプログラム生成装置であって、
前記製造プロセスラインにおける設備機器の動作がグラフィック言語で記述されたプログラムモジュールである設備機器モデル部品を記憶する設備機器モデル部品記憶手段と、
前記被加工物の動きがグラフィック言語で記述されたプログラムモジュールである被加工物モデル部品を記憶する被加工物モデル部品記憶手段と、
前記設備機器の１つ又は複数と前記被加工物とが相互作用し合って生じる物理現象がグラフィック言語で記述されたプログラムモジュールであるプロセスモデル部品を記憶するプロセスモデル部品記憶手段と、
前記製造プロセスラインにおける設備機器の配置をグラフィカルに示す設備機器レイアウトと、前記設備機器の属性情報のリストである設備機器リストと、前記設備機器モデル部品に設定する設定パラメータを特定する情報が登録されたパラメータ・リスト関連定義と、を含む設計書をオペレータによる操作に基づいて作成する設計書作成手段と、
前記設備機器モデル部品と、前記被加工物モデル部品と、前記プロセスモデル部品と、前記設計書とを入力として、前記シミュレーションプログラムを自動生成するシミュレーションプログラム自動生成手段と、を有し、
前記設備機器レイアウトに登録されている前記設備機器と、前記設備機器リストに登録されている前記設備機器とが、前記設備機器を識別する情報により相互に関連付けられており、
前記設備機器リストに登録される前記設備機器の属性情報には、前記設備機器の属性に基づいた分類先を示すモデルタイプと、前記設備機器モデル部品に設定する設定パラメータの情報とが含まれており、
前記設計書作成手段は、前記パラメータ・リスト関連定義を前記モデルタイプ毎に作成し、
前記パラメータ・リスト関連定義は、前記設定パラメータとして前記設備機器リストに登録された設備機器の属性情報を特定する情報を記憶し、
前記シミュレーションプログラム自動生成手段は、前記設備機器レイアウトと、前記設備機器リストとに基づいて、前記設備機器モデル部品記憶手段により記憶された前記設備機器モデル部品を読み出す設備機器モデル部品読み出し手段と、
前記設備機器リストと前記パラメータ・リスト関連定義とに基づいて、前記設備機器モデル部品読み出し手段により読み出された前記設備機器モデル部品に前記設定パラメータを設定する設定パラメータ設定手段と、を更に有することを特徴とするシミュレーションプログラム生成装置。
【請求項２】
前記設定パラメータ設定手段は、複数の変数からなる前記設定パラメータを、配列変数として、前記設備機器モデル部品に設定することを特徴とする請求項１に記載のシミュレーションプログラム生成装置。
【請求項３】
前記パラメータ・リスト関連定義には、前記設備機器リストに登録されている前記設備機器の属性情報のうち、前記設備機器モデル部品に設定する設定パラメータとなる情報が登録されている場所を示す情報が、前記設定パラメータとして前記設備機器リストに登録された設備機器の属性情報を特定する情報として、前記モデルタイプ毎に登録されていることを特徴とする請求項１又は２に記載のシミュレーションプログラム生成装置。
【請求項４】
前記シミュレーションプログラム自動生成手段は、前記読み出した２つの前記設備機器モデル部品の入力と出力とが共通する部分を相互に接続する線を、水平方向の直線であるＸ軸線分と垂直方向の直線であるＹ軸線分とを繋ぎ合わせて作成することを自動で行う作成手段と、
前記設備機器モデル部品を含む領域に前記線の描画を禁止する不可侵領域を設定する不可侵領域設定手段と、を更に有し、
前記作成手段は、前記不可侵領域及び他の線分と重ならないように、前記Ｘ軸線分と前記Ｙ軸線分とを繋ぎ合わせることを特徴とする請求項１〜３の何れか１項に記載のシミュレーションプログラム生成装置。
【請求項５】
前記作成手段は、前記入力の部分である出発点を開始点として設定する開始点設定手段と、
前記出力の部分である到着点を終了点として設定する終了点設定手段と、
前記開始点と前記終了点とが対角に位置する矩形を干渉確認領域として作成する干渉確認領域作成手段と、
前記不可侵領域が矩形でない場合に、当該不可侵領域を、当該不可侵領域の外接矩形に変更する不可侵領域変更手段と、
前記干渉確認領域が前記矩形の前記不可侵領域の少なくとも一部と重なる場合に、前記矩形の不可侵領域の辺のうち、前記開始点に最も近い辺の頂点の何れかの位置に前記終了点の位置を変更する終了点変更手段と、
前記開始点と、前記終了点変更手段により位置が変更された終了点とが対角に位置する矩形を前記干渉確認領域として再作成する干渉確認領域再作成手段と、
前記矩形の前記不可侵領域の少なくとも一部と重ならない状態の前記干渉確認領域において対角に位置する前記開始点と前記終了点とを前記干渉確認領域の辺に沿って繋ぐ線分作成手段と、
前記線分作成手段により結ばれた終了点を開始点にすると共に、前記出力の部分を終了点にする開始点・終了点変更手段と、を更に有し、
前記矩形の前記不可侵領域の少なくとも一部と重ならない状態の前記干渉確認領域において対角に位置する前記終了点が前記到着点と一致するまで、少なくとも、前記干渉確認領域作成手段による前記干渉確認領域の作成と、前記終了点変更手段による前記終了点の位置の変更と、前記干渉確認領域再作成手段による前記干渉確認領域の再作成と、前記線分作成手段による前記開始点と前記終了点との接続と、前記開始点・終了点変更手段による前記開始点及び前記終了点の設定とを繰り返し行うことを特徴とする請求項４に記載のシミュレーションプログラム生成装置。
【請求項６】
前記シミュレーションプログラム自動生成手段は、前記作成手段により作成された２つの前記Ｘ軸線分であって、当該Ｘ軸線分の間に１つのＹ軸線分がある２つの前記Ｘ軸線分の垂直方向の位置を、前記不可侵領域と交わらないように統一することと、前記作成手段により作成された２つの前記Ｙ軸線分であって、当該Ｙ軸線分の間に１つのＸ軸線分がある２つの前記Ｙ軸線分の水平方向の位置を、前記不可侵領域と交わらないように統一することと、の少なくとも１つを行う線分低減手段を更に有することを特徴とする請求項５に記載のシミュレーションプログラム生成装置。
【請求項７】
前記シミュレーションプログラムを構成するプログラムモジュールのうち、前記設備機器モデル部品、前記被加工物モデル部品、及び前記プロセスモデル部品と異なる部分の記述がなされた雛形プログラムを記憶する雛形プログラム記憶手段を更に有し、
前記シミュレーションプログラム自動生成手段は、前記設備機器モデル部品と、前記被加工物モデル部品と、前記プロセスモデル部品と、前記設計書と、前記雛形プログラムと、を入力として、前記シミュレーションプログラムを自動生成することを特徴とする請求項１〜６の何れか１項に記載のシミュレーションプログラム生成装置。
【請求項８】
被加工物を加工する製造プロセスラインをシミュレーションするためのシミュレーションプログラムを生成するシミュレーションプログラム生成方法であって、
前記製造プロセスラインにおける設備機器の動作がグラフィック言語で記述されたプログラムモジュールである設備機器モデル部品を記憶する設備機器モデル部品記憶工程と、
前記被加工物の動きがグラフィック言語で記述されたプログラムモジュールである被加工物モデル部品を記憶する被加工物モデル部品記憶工程と、
前記設備機器の１つ又は複数と前記被加工物とが相互作用し合って生じる物理現象がグラフィック言語で記述されたプログラムモジュールであるプロセスモデル部品を記憶するプロセスモデル部品記憶工程と、
前記製造プロセスラインにおける設備機器の配置をグラフィカルに示す設備機器レイアウトと、前記設備機器の属性情報のリストである設備機器リストと、前記設備機器モデル部品に設定する設定パラメータを特定する情報が登録されたパラメータ・リスト関連定義と、を含む設計書をオペレータによる操作に基づいて作成する設計書作成工程と、
前記設備機器モデル部品と、前記被加工物モデル部品と、前記プロセスモデル部品と、前記設計書とを入力として、前記シミュレーションプログラムを自動生成するシミュレーションプログラム自動生成工程と、を有し、
前記設備機器レイアウトに登録されている前記設備機器と、前記設備機器リストに登録されている前記設備機器とが、前記設備機器を識別する情報により相互に関連付けられており、
前記設備機器リストに登録される前記設備機器の属性情報には、前記設備機器の属性に基づいた分類先を示すモデルタイプと、前記設備機器モデル部品に設定する設定パラメータの情報とが含まれており、
前記設計書作成工程は、前記パラメータ・リスト関連定義を前記モデルタイプ毎に作成し、
前記パラメータ・リスト関連定義は、前記設定パラメータとして前記設備機器リストに登録された設備機器の属性情報を特定する情報を記憶し、
前記シミュレーションプログラム自動生成工程は、前記設備機器レイアウトと、前記設備機器リストとに基づいて、前記設備機器モデル部品記憶工程により記憶された前記設備機器モデル部品を読み出す設備機器モデル部品読み出し工程と、
前記設備機器リストと前記パラメータ・リスト関連定義とに基づいて、前記設備機器モデル部品読み出し工程により読み出された前記設備機器モデル部品に前記設定パラメータを設定する設定パラメータ設定工程と、を更に有することを特徴とするシミュレーションプログラム生成方法。
【請求項９】
請求項１〜７の何れか１項に記載のシミュレーションプログラム生成装置の各手段としてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シミュレーションプログラム生成装置、シミュレーションプログラム生成方法、及びプログラムに関し、特に、製造プラントにおける各機器の動作、被加工物の動き、プロセス現象をシミュレーションするために用いて好適なものである。
【背景技術】
【０００２】
通常、製造プラントの実機がない段階で制御プログラムの機能を検証する場合、製造プラントを構成するアクチュエータやセンサ等の機器の動作を模擬するシミュレータを、制御プログラムを組み込む計算機と同じ計算機、或いは別の計算機に組み込んで構築し、当該シミュレータと制御プログラムとを連携させることによって制御プログラムの機能を検証することが行われる。
【０００３】
このようにして制御プログラムの機能を検証する技術として特許文献１に記載の技術がある。特許文献１には、被加工物が複数機器に跨っており、被加工物のトラッキングや張力等の複数の機器による処理が複雑に交錯する場合でも、実際の製造プラントで生じる現象を現実的な計算負荷で可及的に正確に再現するために、プログラムモジュールであるプラントモデル部品を組み合わせることによりシミュレーションプログラムを作成することが開示されている。このプラントモデル部品には、設備機器モデル部品と、プロセスモデル部品と、被加工物モデル部品とがある。設備機器モデル部品は、各設備機器の動作を記述するプログラムモジュールである。プロセスモデル部品は、設備機器の１つ又は複数と被加工物とが相互作用し合って生じる物理現象を記述するプログラムモジュールである。被加工物モデル部品は、被加工物の動きを模擬するプログラムモジュールである。特許文献１では、このようなプラントモデル部品を用いることにより、製造プラントにおける状態についての莫大な分岐処理を削減することができるようにしている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２３８１０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の技術では、シミュレーションプログラムを手動で作成する。したがって、設計者の負担が大きいものとなるという問題点があった。
本発明は、このような問題点に鑑みてなされたものであり、製造プラントにおける各機器の動作、被加工物の動き、プロセス現象をシミュレーションするシミュレーションプログラムを作成する際の設計者の負担を軽減することを目的とする。
【課題を解決するための手段】
【０００６】
本発明のシミュレーションプログラム生成装置は、被加工物を加工する製造プロセスラインをシミュレーションするためのシミュレーションプログラムを生成するシミュレーションプログラム生成装置であって、前記製造プロセスラインにおける設備機器の動作がグラフィック言語で記述されたプログラムモジュールである設備機器モデル部品を記憶する設備機器モデル部品記憶手段と、前記被加工物の動きがグラフィック言語で記述されたプログラムモジュールである被加工物モデル部品を記憶する被加工物モデル部品記憶手段と、前記設備機器の１つ又は複数と前記被加工物とが相互作用し合って生じる物理現象がグラフィック言語で記述されたプログラムモジュールであるプロセスモデル部品を記憶するプロセスモデル部品記憶手段と、前記製造プロセスラインにおける設備機器の配置をグラフィカルに示す設備機器レイアウトと、前記設備機器の属性情報のリストである設備機器リストと、前記設備機器モデル部品に設定する設定パラメータを特定する情報が登録されたパラメータ・リスト関連定義と、を含む設計書をオペレータによる操作に基づいて作成する設計書作成手段と、前記設備機器モデル部品と、前記被加工物モデル部品と、前記プロセスモデル部品と、前記設計書とを入力として、前記シミュレーションプログラムを自動生成するシミュレーションプログラム自動生成手段と、を有し、前記設備機器レイアウトに登録されている前記設備機器と、前記設備機器リストに登録されている前記設備機器とが、前記設備機器を識別する情報により相互に関連付けられており、前記設備機器リストに登録される前記設備機器の属性情報には、前記設備機器の属性に基づいた分類先を示すモデルタイプと、前記設備機器モデル部品に設定する設定パラメータの情報とが含まれており、前記設計書作成手段は、前記パラメータ・リスト関連定義を前記モデルタイプ毎に作成し、前記パラメータ・リスト関連定義は、前記設定パラメータとして前記設備機器リストに登録された設備機器の属性情報を特定する情報を記憶し、前記シミュレーションプログラム自動生成手段は、前記設備機器レイアウトと、前記設備機器リストとに基づいて、前記設備機器モデル部品記憶手段により記憶された前記設備機器モデル部品を読み出す設備機器モデル部品読み出し手段と、前記設備機器リストと前記パラメータ・リスト関連定義とに基づいて、前記設備機器モデル部品読み出し手段により読み出された前記設備機器モデル部品に前記設定パラメータを設定する設定パラメータ設定手段と、を更に有することを特徴とする。
【０００７】
本発明のシミュレーションプログラム生成方法は、被加工物を加工する製造プロセスラインをシミュレーションするためのシミュレーションプログラムを生成するシミュレーションプログラム生成方法であって、前記製造プロセスラインにおける設備機器の動作がグラフィック言語で記述されたプログラムモジュールである設備機器モデル部品を記憶する設備機器モデル部品記憶工程と、前記被加工物の動きがグラフィック言語で記述されたプログラムモジュールである被加工物モデル部品を記憶する被加工物モデル部品記憶工程と、前記設備機器の１つ又は複数と前記被加工物とが相互作用し合って生じる物理現象がグラフィック言語で記述されたプログラムモジュールであるプロセスモデル部品を記憶するプロセスモデル部品記憶工程と、前記製造プロセスラインにおける設備機器の配置をグラフィカルに示す設備機器レイアウトと、前記設備機器の属性情報のリストである設備機器リストと、前記設備機器モデル部品に設定する設定パラメータを特定する情報が登録されたパラメータ・リスト関連定義と、を含む設計書をオペレータによる操作に基づいて作成する設計書作成工程と、前記設備機器モデル部品と、前記被加工物モデル部品と、前記プロセスモデル部品と、前記設計書とを入力として、前記シミュレーションプログラムを自動生成するシミュレーションプログラム自動生成工程と、を有し、前記設備機器レイアウトに登録されている前記設備機器と、前記設備機器リストに登録されている前記設備機器とが、前記設備機器を識別する情報により相互に関連付けられており、前記設備機器リストに登録される前記設備機器の属性情報には、前記設備機器の属性に基づいた分類先を示すモデルタイプと、前記設備機器モデル部品に設定する設定パラメータの情報とが含まれており、前記設計書作成工程は、前記パラメータ・リスト関連定義を前記モデルタイプ毎に作成し、前記パラメータ・リスト関連定義は、前記設定パラメータとして前記設備機器リストに登録された設備機器の属性情報を特定する情報を記憶し、前記シミュレーションプログラム自動生成工程は、前記設備機器レイアウトと、前記設備機器リストとに基づいて、前記設備機器モデル部品記憶工程により記憶された前記設備機器モデル部品を読み出す設備機器モデル部品読み出し工程と、前記設備機器リストと前記パラメータ・リスト関連定義とに基づいて、前記設備機器モデル部品読み出し工程により読み出された前記設備機器モデル部品に前記設定パラメータを設定する設定パラメータ設定工程と、を更に有することを特徴とする。
【０００８】
本発明のプログラムは、前記シミュレーションプログラム生成装置の各手段としてコンピュータを機能させることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、設備機器レイアウトと、設備機器リストとに基づいて設備機器モデル部品を読み出し、設備機器リストとパラメータ・リスト関連定義とに基づいて、読み出した設備機器モデル部品に設定パラメータを設定するようにした。したがって、製造プラントにおける各機器の動作、被加工物の動き、プロセス現象をシミュレーションするシミュレーションプログラムを作成する際の設計者の負担を軽減することができる。
【図面の簡単な説明】
【００１０】
【図１】製造プロセスラインのシミュレーション装置の構成の一例を示す図である。
【図２】設備機器レイアウトの一例を示す図である。
【図３】設備機器リストの一例を示す図である。
【図４】パラメータ・リスト関連定義の一例を示す図である。
【図５】設備機器モデル部品、被加工物モデル部品、及びプロセスモデル部品の一例を示す図である。
【図６】雛形プログラムをベースとして自動生成されたプログラムの一例と、雛形プログラムを用いずに自動再生されたプログラムの一例を示す図である。
【図７】シミュレーションプログラムの一例を概念的に示す図である。
【図８】プログラミングシートに配置され、相互に線で結ばれた２つの設備機器モデル部品の一例を示す図である。
【図９】プログラミングシートに配置された設備機器モデル部品を相互に接続する線が交差した状態の一例を示す図である。
【図１０】プログラミングシートに配置された設備機器モデル部品を相互に線で接続する方法の一例を説明する図である。
【図１１】設備機器モデル部品を相互に線を構成するＸ軸線分とＹ軸線分の一例を示す図である。
【図１２】備機器モデル部品を相互に線で接続する際のシミュレーションプログラム自動生成部の処理の一例を説明するフローチャートである。
【図１３】図１２のステップＳ１２１２の線分低減処理の詳細の一例を説明するフローチャートである。
【図１４】設備機器モデル部品を相互に線で接続する方法の第１の例の前半部分を説明する図である。
【図１５】設備機器モデル部品を相互に線で接続する方法の第１の例の後半部分を説明する図である。
【図１６】設備機器モデル部品を相互に線で接続する方法の第２の例の前半部分を説明する図である。
【図１７】設備機器モデル部品を相互に線で接続する方法の第２の例の後半部分を説明する図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照しながら、本発明の一実施形態を説明する。
図１は、製造プロセスラインのシミュレーション装置１０００の構成の一例を示す図である。本実施形態では、製造プロセスラインのシミュレーションプログラムを実行させることにより、製造プロセスラインの実機がない段階又は実機の稼動前に、予め作成した、当該製造プロセスラインの制御プログラムのデバッグを行う場合を例に挙げて説明する。また、本実施形態では、製造プロセスラインが、鉄鋼業の表面処理ラインにおける製造プロセスラインである場合を例に挙げて説明する。尚、以下の説明では、製造プロセスラインのシミュレーション装置１０００を必要に応じてシミュレーション装置と略称する。
【００１２】
シミュレーション装置１０００は、シミュレーションプログラム生成装置２０００と、設備機器シミュレーションＰＬＣ３０００と、被加工物シミュレーションＰＬＣ４０００と、プロセスシミュレーションＰＬＣ５０００と、ＨＭＩ（ヒューマン・マシン・インターフェース）６０００と、を有する。
【００１３】
設備機器シミュレーションＰＬＣ３０００は、製造プロセスラインに配置される設備機器や、操作盤の動作を模擬する設備機器シミュレーション用計算機である。操作盤は、製造プロセスの操業を監視・制御するために操作者が操作するものである。表面処理ラインでは、設備機器として、例えば、ピンチロールを駆動するモータや、当該モータの回転速度（回転数）を検出するパルスジェネレータ（ＰＬＧ）や、鋼板を検知するセンサ等がある。
被加工物シミュレーションＰＬＣ４０００は、製造プロセスラインにおいて、設備機器によって搬送・加工される被加工物の動きを模擬する被加工物用計算機である。被加工物の動きは、表面処理ラインでは、鋼板の動きである。被加工物である材料の変形を無視できる場合には、搬送中の被加工物のトラッキング（位置の追跡）を行うことによって、被加工物の動きが模擬される。
【００１４】
プロセスシミュレーションＰＬＣ５０００は、製造プロセスラインにおけるプロセス現象を模擬するプロセスシミュレーション用計算機である。表面処理ラインでは、設備と被加工物とが相互に作用し合って生じる張力や荷重等が、プロセス現象となる。
尚、製造プロセスラインに配設されている各種のセンサの働きは、設備機器シミュレーションＰＬＣ３０００、被加工物シミュレーションＰＬＣ４０００、及びプロセスシミュレーションＰＬＣ５０００によって、センサの設置位置や機能により配分されてシミュレーションされる。例えば、設備機器の動きを検知するセンサは、設備機器シミュレーションＰＬＣ３０００により模擬され、被加工物の動きを検知するセンサは被加工物シミュレーションＰＬＣ４０００により模擬される。
【００１５】
ＨＭＩ６０００は、各設備機器の動作、被加工物の動き、及びプロセス現象を模擬した内容をグラフィカルに表示する仮想プラント画面を表示するための装置であり、コンピュータディスプレイ及びキーボード等を有する。ＨＭＩ６０００は、設備機器シミュレーションＰＬＣ３０００、被加工物シミュレーションＰＬＣ４０００、プロセスシミュレーションＰＬＣ５０００から出力される模擬信号に基づき、仮想プラント画面の表示内容を変更する。
設備機器シミュレーションＰＬＣ３０００、被加工物シミュレーションＰＬＣ４０００、プロセスシミュレーションＰＬＣ５０００、及びＨＭＩ６０００は、伝送路７０００に接続される。伝送路７０００は、例えば、専用回線やＬＡＮ等のネットワークを用いることにより実現される。
【００１６】
シミュレーションプログラム生成装置２０００は、設備機器シミュレーションＰＬＣ３０００、被加工物シミュレーションＰＬＣ４０００、及びプロセスシミュレーションＰＬＣ５０００を動作させるシミュレーションプログラムを自動生成して、設備機器シミュレーションＰＬＣ３０００、被加工物シミュレーションＰＬＣ４０００、及びプロセスシミュレーションＰＬＣ５０００に転送する装置である。設備機器シミュレーションＰＬＣ３０００・被加工物シミュレーションＰＬＣ４０００・プロセスシミュレーションＰＬＣ５０００は、シミュレーションプログラムを実行することにより、製造プロセスラインにおける設備機器の動作・被加工物の動き・プロセス現象を模擬し、その結果を示す模擬信号を出力する。
【００１７】
制御ＰＬＣ８０００は、伝送路７０００に接続されており、製造プロセスラインの実機を制御する制御プログラム８１００に従って、設備機器等の動作指令信号を生成して操作盤９０００等に出力する。前述したように、設備機器シミュレーションＰＬＣ３０００・被加工物シミュレーションＰＬＣ４０００・プロセスシミュレーションＰＬＣ５０００は、シミュレーションプログラムを実行することにより、製造プロセスラインにおける設備機器の動作・被加工物の動き。プロセス現象を模擬する。したがって、製造プロセスラインの実機がない場合でも、制御プログラム８１００から見れば、設備機器シミュレーションＰＬＣ３０００・被加工物シミュレーションＰＬＣ４０００・プロセスシミュレーションＰＬＣ５０００は、あたかも実機があるかの如く振舞うことができる。
操作盤９０００は、オペレータが製造プロセスラインにおける操業を監視・制御するためのものである。
【００１８】
次に、本実施形態のシミュレーションプログラム生成装置２０００の一例を詳細に説明する。シミュレーションプログラム生成装置２０００のハードウェアは、ＣＰＵ、ＲＯＭ、ＲＡＭ、ＨＤＤ、及び各種のインターフェースを備えた情報処理装置（パーソナルコンピュータ等）や専用のハードウェアを用いることにより実現される。
（入出力部２１００）
入出力部２１００は、ユーザインターフェースとなる部分である。入出力部２１００は、例えば、設計者が各種の情報を入力するためのキーボードやマウス等の操作装置と、設計者が各種の情報を入力する際の案内画面等の各種の画面を表示する表示装置等を有する。尚、設計者とは、シミュレータモデルの仕様を設計する人物や、シミュレーションプログラムを改造する人物を指す。これらの人物は通常同じであるが、異なることもある。
【００１９】
（設計書作成部２２００）
設計書作成部２２００は、設計者による入出力部２１００の操作に従って、設計書を作成する。
本実施形態では、設計書は、所定のフォーマットで記載された「製造プロセスラインの設計資料」の電子データ（ファイル）であり、設備機器レイアウト２２１０と、設備機器リスト２２２０と、パラメータ・リスト関連定義２２３０と、を有する。
＜設備機器レイアウト２２１０＞
図２は、設備機器レイアウト２２１０の一例を示す図である。尚、図２では、説明を簡単にするため、実際にレイアウトされる設備機器の一部（例えばセンサや電磁弁）を省略する。また、以降、本実施形態では、説明を簡単にするため、設備機器として図２に示す設備機器のみがあるものとして説明を行う。
【００２０】
設備機器レイアウト２２１０は、表面処理工程における製造プロセスライン上の各設備機器の配置をグラフィカルに示す機器レイアウト図である（尚、図２に示す破線は設備機器レイアウト２２１０を特定するための仮想線であり、実際には表示されない）。設備機器レイアウト２２１０は、例えば、公知の表計算ソフトウェアを用いることにより作成される。
設計者は、表面処理工程における製造プロセスラインで使用される設備機器を模した部品画像の候補を表示する画面である部品画像候補一覧画面２１１１の表示指示を行う。設計書作成部２２００は、この表示指示により、部品画像候補一覧画面２１１１を最前面に表示する。
【００２１】
設計者は、部品画像候補一覧画面２１１１に表示されている部品画像を、設備機器レイアウト２２１０内のシート２１１２にドラッグ・アンド・ドロップする。そうすると、設計書作成部２２００は、ドラッグされた部品画像をドロップされたシート２１１２上の位置にコピーする。
【００２２】
図２に示す例では、ペイオフリールの部品画像２１１１ａ、テンションリールの部品画像２１１１ｂ、ピンチロールの部品画像２１１１ｃ、シャーの部品画像２１１１ｄ、及びパルスジェネレータの部品画像２１１１ｅが、シート２１１２にコピーされた状態を示す。ここで、各部品画像２１１１ａ〜２１１１ｅには、当該部品画像で模している設備機器の識別情報として、当該設備機器の略称の情報が関連付けられている。設計書作成部２２００は、シート２１１２にコピーした部品画像２１１１ａ〜２１１１ｅの傍らに、当該部品画像２１１１ａ〜２１１１ｅで模している設備機器の略称を、当該設備機器の識別情報として表示する。
【００２３】
また、設計者は、シミュレーションを行う際の処理の単位であるゾーンと、各ゾーンの長さ（設備機器の間隔）の設定指示を行う。設計書作成部２２００は、この設定指示により、各ゾーンの範囲と長さの情報を、シート２１１２上に表示する。
さらに、設計者は、被加工物が搬送される経路に対応する位置への直線の描画指示を行う。図２に示す例では、ペイオフリールと最上流のピンチロールとの間、各ピンチロールの間、最下流のピンチロールとテンションリールとの間に被加工物が搬送されるので、これらの間にそれぞれ直線を描画する必要がある。設計書作成部２２００は、この描画指示により、ペイオフリールと最上流のピンチロールとの間、各ピンチロールの間、最下流のピンチロールとテンションリールとの間に直線を描画する。この直線により、シミュレーションを行う際の各設備機器の位置の関係が定義される。例えば、プロセス現象として、被加工物の張力をシミュレーションする際に、どのピンチロールの間で張力が発生するのかを、この直線によって、特定することができる。
尚、図２では、表記の都合上、ペイオフリールとテンションリールのみにパルスジェネレータの部品画像２１１１ｅが配置されている場合を例に挙げて示すが（ＰＬＧ１、ＰＬＧ２を参照）、ピンチロール（ＰＲ１〜ＰＲ６）に対してもパルスジェネレータの部品画像２１１１ｅが配置される。
【００２４】
＜設備機器リスト２２２０＞
図３は、設備機器リスト２２２０の一例を示す図である。
設備機器リスト２２２０は、設備機器レイアウト２２１０に含めた各設備機器の仕様を含む属性情報のリストである。図３に示す例では、設備機器リスト２２２０は、設備機器レイアウト２２１０に含めた各設備機器の略称・名称・モデルタイプ・仕様（性能）を相互に関連づけて記憶する。設備機器リスト２２２０は、例えば、公知の表計算ソフトウェアを用いることにより作成される。
設計者は、設備機器リスト２２２０に登録する内容の入力指示を行う。設計書作成部２２００は、この入力指示に従って、各設備機器の略称・名称・モデルタイプ・仕様を設備機器リスト２２２０に登録する。
【００２５】
図３では、モータで駆動される設備機器（ペイオフリール、ピンチロール）についての設備機器リスト２２２０を例に挙げて示す。
図３において、モデルタイプとは、後述する設備機器モデル部品を抽出する際のキーとなる情報であり、設備機器をその属性に基づいて分類した場合の分類先を示す情報である。図３に示すように、モータが使用される設備機器では、例えば、モータの制御方式（速度制御やトルク制御）によって設備機器が分類できるので、モータの制御方式によってモデルタイプが区別される。ただし、必ずしもこのようにしてモデルタイプを区別する必要はない。例えば、モータの制御方式と製造メーカによってモデルタイプを区別するようにしてもよい。
【００２６】
ＰＬＧ有無とは、設備機器にパルスジェネレータ（ＰＬＧ）がついているか否かを示すものである。図３において、ＰＬＧ有無として「有」と示されている設備機器にはパルスジェネレータ（ＰＬＧ）がついていることを示し、「無」と示されている設備機器にはパルスジェネレータ（ＰＬＧ）がついていないことを示す。尚、図３では、モータにより駆動する設備機器についての設備機器リスト２２２０を示すが、その他の設備機器についても、同様に、略称・名称・モデルタイプ・仕様が、設備機器リストに登録される。
前述したように、各部品画像２１１１ａ〜２１１１ｅには、当該部品画像で模している設備機器の略称の情報が関連付けられている。したがって、設備機器レイアウト２２１０に登録されている設備機器と、設備機器リスト２２２０に登録されている設備機器は、設備機器の略称によって相互に関連付けられる。
【００２７】
＜パラメータ・リスト関連定義２２３０＞
図４は、パラメータ・リスト関連定義２２３０の一例を示す図である。
パラメータ・リスト関連定義２２３０は、図３に示した設備機器リスト２２２０の各項目のうち、後述する設備機器モデル部品の入力変数（設定パラメータ）を配列変数として定義するためのものである。パラメータ・リスト関連定義２２３０は、例えば、ＳＴ（Structured Text）言語によるプログラムを用いて作成される。
設計者は、パラメータ・リスト関連定義２２３０の内容をＳＴ言語によるプログラムにより作成する。設計書作成部２２００は、作成したプログラムをパラメータ・リスト関連定義２２３０として登録する。
【００２８】
図４において、「パラメータ名称」は、図３に示した設備機器リスト２２２０の各項目を示す。「列Ｎｏ」は、設備機器リスト２２２０の何列目の情報であるのかを示す。「配列番号」は、配列変数における順番を示す。例えば、図３に示した設備機器リスト２２２０において、モータ容量は５列目にあるので、パラメータ・リスト関連定義２２３０のＮｏ２の「列Ｎｏ」は「５」になる。また、パラメータ・リスト関連定義２２３０のＮｏ２の「配列番号」は「１」であることから、このモータ容量は、配列変数の１番目に与えられるものとなる。尚、パラメータ・リスト関連定義２２３０のＮｏ１の「配列番号」は「−」であるので、機器略称は、配列変数に含まれない。
このようなパラメータ・リスト関連定義２２３０は、図３に示した設備機器リスト２２２０のモデルタイプ毎に個別に作成される。
【００２９】
（プラントモデル部品ＤＢ２３００、モデル部品追加・修正部２３１０）
プラントモデル部品ＤＢ２３００は、設備機器モデル部品ＤＢ２３０１と、被加工物モデル部品ＤＢ２３０２と、プロセスモデル部品ＤＢ２３０３と、を有する。
図５は、設備機器モデル部品（図５（ａ）、図５（ｂ））、被加工物モデル部品（図５（ｃ））、及びプロセスモデル部品（図５（ｄ））の一例を示す図である。図５では、図２に示した設備機器レイアウト２２１０のゾーン１についての設備機器モデル部品、被加工物モデル部品、及びプロセスモデル部品を例に挙げて示す。尚、以下の説明では、設備機器モデル部品、被加工物モデル部品、及びプロセスモデル部品を総称する場合には、プラントモデル部品と称する。
【００３０】
図５（ａ）〜図５（ｄ）に示すように、本実施形態のプラントモデル部品では、四角形の部分がプログラムモジュールを表し、当該四角形の図面に向かって左側の部分に、当該プログラムモジュールに入力する情報（入力変数）が記述され、右側の部分に、当該プログラムモジュールから出力する情報（出力変数）が記述される。入出力する情報の数（入力変数・出力変数の数）が多いほど、当該四角形の大きさは、大きくなる。
【００３１】
＜設備機器モデル部品ＤＢ２３０１＞
設備機器モデル部品ＤＢ２３０１は、設備機器モデル部品を記憶する。
設備機器モデル部品は、ペイオフリールの回転等の設備機器の動作と、設備機器の入力信号端子及び出力信号端子とを記述するプログラムモジュールである。このプログラムモジュールは、グラフィック言語で構築されたグラフィカルモジュールであり、ラダー言語などの、ステップで構成させたプログラムよりもソフトの流用性／メンテナンス性が良好である。具体的に設備機器モデル部品は、例えば、ＩＥＣ６１１３１−３のＦＢＤ（Function Block Diagram）言語で構築される。
【００３２】
図５（ａ）は、モータの仕様及び性能に基づいて、ピンチロールにおけるモータの回転動作の物理特性を模擬する設備機器モデルのプログラムモジュールをグラフィカルに表現したモータモデル部品５００を示す図である。
制御プログラム８１００の実行時に一連の操業処理の一つとして、制御ＰＬＣ８０００から出力される速度指令５０１及びブレーキ指令５０２と、後述するプロセスモデル部品５３０から出力される張力ＦＢＫ５０３と、設定パラメータ５０４と、を入力として、モータモデル部品５００にて、モータの速度ＦＢＫ５０５、トルクＦＢＫ５０６、及び回転数５０７を算出して出力する例を示す。設定パラメータ５０４には、前述した設備機器リスト２２２０及びパラメータ・リスト関連定義２２３０により特定される配列変数が入力される。
【００３３】
図５（ｂ）は、パルスジェネレータ（ＰＬＧ）の仕様及び性能に基づいて、ピンチロールにおけるパルスジェネレータ（ＰＬＧ）の速度検出動作の物理特性を模擬する設備機器モデルのプログラムモジュールをグラフィカルに表現したＰＬＧモデル部品５１０を示す図である。制御プログラム８１００の実行時に一連の操業処理の一つとして、制御ＰＬＣ８０００から出力される初期リセット５１１と、モータモデル部品５００から出力される回転数５１２と、設定パラメータ５１３と、を入力信号として、カウント値５１４を算出して出力する例を示す。図示は省略しているが、設定パラメータ５１３には、パルスジェネレータについての設備機器リスト及びパラメータ・リスト関連定義により特定される配列変数が入力される。
【００３４】
図５（ａ）、図５（ｂ）に示すように、設備機器モデル部品は、設備機器リスト２２２０に登録されるモデルタイプ毎に設備機器モデル部品ＤＢ２３０１に記憶されている（図５（ａ）、（ｂ）の「タイプＡ」、「タイプＣ」を参照）。このように、本実施形態では、モデルタイプによって、設備機器リスト２２２０と、設備機器モデル部品ＤＢ２３０１に記憶されている設備機器モデル部品とが相互に関連付けられる。
【００３５】
＜被加工物モデル部品ＤＢ２３０２＞
被加工物モデル部品ＤＢ２３０２は、被加工物モデル部品を記憶する。
被加工物モデル部品は、被加工部品（鋼板）の動きを記述するプログラムモジュールである。このプログラムモジュールは、グラフィック言語で構築されたグラフィカルモジュールである。具体的には、例えば、ＦＢＤ言語やＳＴ言語で構築される。
【００３６】
図５（ｃ）は、ゾーン１における被加工物の動きを模擬するトラッキングモデルのプログラムモジュールをグラフィカルに表現したトラッキングモデル部品５２０である。制御プログラム８１００の実行時に一連の操業処理の一つとして、トラッキング点５２１と、ＰＲ開５２２と、モータモデル部品５００から出力される速度ＦＢＫ５２３とを入力して、ゾーン（ここではゾーン１）の被加工物の入側速度５２４と出側速度５２５を算出して出力する例を示す。ここで、トラッキング点４２１は、被加工物の位置を示す。また、ＰＲ開５２２は、ゾーン（ここではゾーン１）の入側のピンチロールが開放状態であるか圧着状態であるかを示す。
【００３７】
＜プロセスモデル部品ＤＢ２３０３＞
プロセスモデル部品ＤＢ２３０３は、プロセスモデル部品を記憶する。
プロセスモデル部品は、設備機器の１つ又は複数と被加工物（鋼板）とが相互作用し合って生じる物理現象を記述するプロセスモデル部品である。このプログラムモジュールは、グラフィック言語で構築されたグラフィカルモジュールである。具体的には、例えば、ＦＢＤ言語やＳＴ言語で構築される。
【００３８】
図５（ｄ）は、ゾーン１における張力現象のグラフィカルなプログラムモジュールである張力モデル部品５３０を示す。張力モデル部品５３０では、トラッキングモデル部品５２０から出力される入側速度５３１及び出側速度５３２と、鋼板３０のヤング率、スタンド間距離や初期張力値等を設定した張力設定パラメータ５３３とを入力として、張力ＦＢＫを算出して出力する。
【００３９】
尚、本実施形態では、以上のプラントモデル部品（プログラムモジュール）の入出力の関係は、予め定められているものとする。例えば、図５（ａ）に示したモータモデル部品５００の回転数５０７と、図５（ｂ）に示したＰＬＧモデル部品５１０の回転数５１２とが相互に接続されることや、図５（ａ）に示したモータモデル部品５００の速度ＦＢＫ５０５と、図５（ｃ）に示した速度ＦＢＫ５２３とが相互に接続されることは、予め定められているものとする。
【００４０】
＜モデル部品追加・修正部２３１０＞
モデル部品追加・修正部２３１０は、設計者の入出力部２１００の操作に基づいて、前述した設備機器モデル部品、被加工物モデル部品、及びプロセスモデル部品の新規追加や機能の修正を行う。
【００４１】
（雛形プログラムＤＢ２４００、雛形プログラム追加・修正部２４１０）
雛形プログラムＤＢ２４００は、雛形プログラムを記憶する。雛形プログラムは、設備機器モデル部品、被加工物モデル部品、及びプロセスモデル部品以外の必要な処理が記述されたプログラムである。ただし、変数を可変にする場合には、当該変数の部分を空欄にし、別途設定した値を当該空欄に挿入できるようにする。
図６は、雛形プログラムをベースとして自動生成されたプログラムの一例（図６（ａ））と、雛形プログラムを用いずに自動再生されたプログラムの一例（図６（ｂ））を示す図である。図６（ａ）において、薄く示している数値は、雛形プログラムには含まれておらず、その他の文字の部分が雛形プログラムとなる。
【００４２】
雛形プログラムは、自動生成されたシミュレーションプログラムを、設計者が改造しやすくするために、設計者に読みやすい形で、シミュレーションプログラムを自動生成できるようにすることを目的とするものである。雛形プログラムは、設計者による入出力部２１００に基づいて記述されるものである（すなわち手動で作成されるものである）。設計者は、雛形プログラムの内容を後で確認しやすくするために、コメントを付けたり、スペースや「：＝」を入れたり、可読性を意識した記述を行ったり（例えばｆｏｒ文を使う）して雛形プログラムを作成することができる。また、１つの雛形プログラムにすると雛形プログラムが大きくなるので、設計者は、複数に分けて雛形プログラムを作成することができる。例えば、設計者は、或る雛形プログラムにおいて、処理の区切りとなるところまで記述した場合、その時点で当該雛形プログラムを保存し、別の雛形プログラムを作成することができる。
【００４３】
ここで、図６（ａ）に示す雛形プログラムをベースとして自動生成されたプログラムと、図６（ｂ）に示す雛形プログラムを用いずに自動再生されたプログラムとを比較する。
図６（ｂ）の領域６１０には、コメントがないため、モデルＡパラメータ＿１、モデルＡパラメータ＿２がどのような意味を有するのかを容易に把握することができない。したがって、図６（ａ）に示すプログラムに比べると、図６（ｂ）に示すプログラムの方が、プログラムの改造がやり難い。
また、図６（ｂ）の領域６２０のように、図６（ａ）に示すプログラムに比べると、図６（ｂ）に示すプログラムの方が、制御パラメータ＿Ｂの式の内容が分かり難い。
また、図６（ｂ）の領域６３０では、ゾーンの数分だけ、ゾーンの情報が並べられており、且つ、「：＝」の箇所が揃っていない。したがって、図６（ａ）に示すプログラムに比べると、図６（ｂ）に示すプログラムの方が、ゾーン情報の初期化の情報が読み難い。
【００４４】
雛形プログラム追加・修正部２４１０は、設計者の入出力部２１００の操作に基づいて、図６（ａ）に示すような雛形プログラムの新規追加や修正を行う。雛形プログラム追加・修正部２４１０は、雛形プログラムの修正を行う際に、雛形プログラムの内容を入出力部２１００に表示する。図６に示す例では、雛形プログラム追加・修正部２４１０は、図６（ａ）の薄く示している数値が空欄の状態で、図６（ａ）に示す内容を入出力部２１００に表示する。
【００４５】
（シミュレーションプログラム自動生成部２５００）
シミュレーションプログラム自動生成部２５００は、設計書作成部２２００で作成された設計書（設備機器レイアウト２２１０と、設備機器リスト２２２０と、パラメータ・リスト関連定義２２３０）と、プラントモデル部品ＤＢ２３００に登録されているプラントモデル部品（設備機器モデル部品、被加工物モデル部品、プロセスモデル部品）と、雛形プログラムＤＢ２４００に登録されている雛形プログラムとを入力して、製造プロセスラインにおける各設備機器の動作、被加工物の動き、プロセス現象をシミュレーションするシミュレーションプログラムを自動的に生成する。
【００４６】
図７は、シミュレーションプログラムの一例を概念的に示す図である。本実施形態では、ＩＥＣ６１１３１−３のＦＢＤ言語をサポートしたプログラミングツールを用いてシミュレーションプログラムが作成されるものとする。
【００４７】
＜雛形プログラムに対する処理＞
まず、シミュレーションプログラム自動生成部２５００は、雛形プログラムＤＢ２４００から、雛形プログラムを読み出す。
次に、シミュレーションプログラム自動生成部２５００は、雛形プログラムの変数の領域（空欄の領域）に値を挿入する。挿入する値は、オペレータによる入出力部２１００の操作に基づいて、パラメータリストとして予め登録されているものとする。
【００４８】
次に、シミュレーションプログラム自動生成部２５００は、値が挿入された雛形プログラムを、プログラミングシートに記述する。プログラミングシートは、プログラム言語（ＩＥＣ６１１３１−３言語）を作成するためのツールでのプログラムを記述する描画領域やテキスト領域のことである。本実施形態では、複数の雛形プログラムが作成され、図７に示すように、複数の雛形プログラムを、複数のプログラムシート（図７に示す例では、プログラムシートＢ、Ｃ等）に記述される。このとき、１つの雛形プログラムを１つまたは複数のプログラムシートに記述することができる。
【００４９】
＜設備機器モデル部品に対する処理＞
シミュレーションプログラム自動生成部２５００は、設備機器レイアウト２２１０から、どのゾーンにどの設備機器が配置されているのかを特定する。
次に、シミュレーションプログラム自動生成部２５００は、設備機器リスト２２２０において、特定した設備機器の略称と同じレコードに登録されているモデルタイプの設備機器モデル部品を、設備機器モデル部品ＤＢ２３０１から読み出す。設備機器リスト２２２０において、同じモデルタイプが複数登録されている場合、シミュレーションプログラム自動生成部２５００は、登録されている数分だけ、当該モデルタイプの設備機器モデル部品を、設備機器モデル部品ＤＢ２３０１から読み出す。また、このようにする代わりに、シミュレーションプログラム自動生成部２５００は、読み出した（１つの）設備機器モデル部品を、設備機器リスト２２２０に登録されている数分だけコピーするようにしてもよい。
【００５０】
次に、シミュレーションプログラム自動生成部２５００は、設備機器リスト２２２０及びパラメータ・リスト関連定義２２３０に基づいて、各設備機器モデル部品の設定パラメータに、該当する配列変数を設定する等、各設備機器モデル部品に対して各種の設定を行う。
次に、シミュレーションプログラム自動生成部２５００は、設定が行われた設備機器モデル部品を、設備機器レイアウト２２１０に従った位置関係になるように、プログラミングシートに記述する。図７に示すように、設備機器モデル部品は、雛形プログラムが記述されたプログラムシートとは別のプログラムシート（図７に示す例では、プログラムシートＡ、Ｄ等）に記述される。また、設備機器モデル部品は、複数のプログラムシートに記述される。例えば、１つのゾーンごとにプログラムシートが用意される。
【００５１】
次に、シミュレーションプログラム自動生成部２５００は、プログラミングシートに記述された設備機器モデル部品のうち、入力と出力とが共通する部分を相互に接続する線を自動で描画する。本実施形態では、設備機器モデル部品同士を相互に接続する線が２本以上になる場合、当該線同士が交差しないようにする。このようにするのは、設計者が後でシミュレーションプログラムを変更する際に設備機器モデル部品（プログラムモジュール）の接続関係を容易に把握できるようにするためである。
【００５２】
図８は、プログラミングシートに配置され、相互に線で結ばれた２つの設備機器モデル部品の一例を示す図である。図８では、図５（ａ）に示したモータモデル部品５００と、図５（ｂ）に示したＰＬＧモデル部品５１０を例に挙げて示す。
設備機器モデル部品を相互に接続する線を描画する方法の一例については後で詳細に説明する。
【００５３】
＜被加工物モデル、プロセスモデルに対する処理＞
本実施形態では、表面処理工程における製造プロセスラインのシミュレーションを行う。このため、使用する被加工物モデル部品及びプロセスモデル部品の種類は、予め定められている。したがって、被加工物モデル部品及びプロセスモデル部品として必要な数を求めればよい。そこで、シミュレーションプログラム自動生成部２５００は、設備機器レイアウト２２１０において設定されている線の数に基づいて、被加工物モデル部品及びプロセスモデル部品として必要になる数をそれぞれ決定する。
【００５４】
図２に示す例では、ゾーンの数が、被加工物モデル部品及びプロセスモデル部品として必要になる数になる。そして、シミュレーションプログラム自動生成部２５００は、被加工物モデル部品を、被加工物モデル部品ＤＢ２３０２から必要な数分だけ読み出すと共に、プロセスモデル部品を、プロセスモデル部品ＤＢ２３０３から必要な数分だけ読み出す。また、このようにする代わりに、シミュレーションプログラム自動生成部２５００は、読み出した（１つの）被加工物モデル部品及びプロセスモデル部品をそれぞれ必要な数分だけコピーするようにしてもよい。
【００５５】
次に、シミュレーションプログラム自動生成部２５００は、以上のようにして得られた被加工物モデル部品及びプロセスモデル部品に対して各種の設定を行う。例えば、シミュレーションプログラム自動生成部２５００は、ゾーンの長さ（設備機器の間隔）を、当該ゾーンに対応する被加工物モデル部品及びプロセスモデル部品に対して設定する。
次に、シミュレーションプログラム自動生成部２５００は、設定が行われた被加工物モデル部品及びプロセスモデル部品を、設備機器レイアウト２２１０に従って、プログラミングシートに記述する。被加工物モデル部品及びプロセスモデル部品は、複数のプログラムシート（図７に示す例では、プログラムシートＡ、Ｄ等）に記述される。例えば、各ゾーンのプログラムシートに、当該ゾーンに対応する被加工物モデル部品及びプロセスモデル部品が記述される。
【００５６】
本実施形態では、被加工物モデル部品及びプロセスモデル部品については、入力と出力とが共通する部分を相互に接続する線を自動で描画しない。前述したように、本実施形態では、被加工物モデル部品及びプロセスモデル部品は予め定められているので、設計者が後でシミュレーションプログラムを変更する際にこれらの接続関係を確認する必要となる場合が少ないからである。ただし、被加工物モデル部品及びプロセスモデル部品についても、設備機器モデル部品と同じ手法を用いて、入力と出力とが共通する部分を相互に接続する線を自動で描画してもよい。
【００５７】
（中間ファイル生成部２６００）
一般に、ＰＬＣ用のプログラミングツールは、メーカ独自に開発される。図１に示す例では、設備機器シミュレーションＰＬＣ３０００、被加工物シミュレーションＰＬＣ４０００、プロセスシミュレーションＰＬＣ５０００用にプログラミングツールが開発される。したがって、或るＰＬＣ専用のシミュレーションプログラムにすると、別のＰＬＣに対して当該シミュレーションプログラムを使用することができなくなる。
【００５８】
そこで、中間ファイル生成部２６００は、シミュレーションプログラム自動生成部２５００でプログラムシートに記述されたプログラムを、予め定義されている実行順序に従い、標準フォーマットに基づいた中間ファイルに変換する。ＰＬＣにおいては、世界標準フォーマット（PLCopen XML）が規格化されている。そこで、本実施形態では、このフォーマットに基づく中間ファイルを生成する。このようにすることにより、様々なプログラミングツールにシミュレーションプログラムを読み込ませることができる。
【００５９】
（シミュレーションプログラム編集部２７００）
シミュレーションプログラム編集部２７００は、設計者による入出力部２１００の操作に基づいて、ＰＬＣ用のプログラミングツールに、中間ファイル内のシミュレーションプログラムを読み込ませ、シミュレーションプログラムの内容を表示する。このとき、シミュレーションプログラム編集部２７００は、プログラムシートにグラフィカルに記述されたプラントモデル部品を表示することができる。前述したように、設備機器モデル部品は相互に線で接続されているので、設計者は、設備機器モデル部品の関係を、この線から把握することができる。
【００６０】
その後、設計者は、必要に応じて、シミュレーションプログラムの内容の変更指示を行う。シミュレーションプログラム編集部２７００は、この変更指示に基づいて、中間ファイル内のシミュレーションプログラムを変更する。例えば、設備機器シミュレーションＰＬＣ３０００、被加工物シミュレーションＰＬＣ４０００、及びプロセスシミュレーションＰＬＣ５０００用に、シミュレーションプログラムのカスタマイズが行われる。
【００６１】
（ＰＬＣ通信部２８００）
ＰＬＣ通信部２８００は、シミュレーションプログラム編集部２７００により変更されたシミュレーションプログラムを、設備機器シミュレーションＰＬＣ３０００、被加工物シミュレーションＰＬＣ４０００、及びプロセスシミュレーションＰＬＣ５０００にそれぞれダウンロードする。
【００６２】
設備機器シミュレーションＰＬＣ３０００、被加工物シミュレーションＰＬＣ４０００、及びプロセスシミュレーションＰＬＣ５０００は、それぞれ自身にダウンロードされたシミュレーションプログラムを実行し、制御ＰＬＣ８０００から出力される動作指令信号に基づいて、製造プロセスラインにおける設備機器、被加工物、プロセス現象を模擬する。そして、設備機器シミュレーションＰＬＣ３０００、被加工物シミュレーションＰＬＣ４０００、及びプロセスシミュレーションＰＬＣ５０００は、模擬した結果を示す模擬信号（センサの検出信号の模擬信号等）を制御ＰＬＣ８０００に送信する。
【００６３】
（プラント画面作成部２９００、ＨＭＩ通信部２９１０）
プラント画面作成部２９００は、設計者による入出力部２１００の操作に基づいて、設備機器の動作、被加工物の動き、及びプロセス現象を模擬した内容をグラフィカルに表示する仮想プラント画面を作成する。
ＨＭＩ通信部２９１０は、プラント画面作成部２９００により作成された仮想プラント画面をＨＭＩ６０００に送信する。前述したように、設備機器シミュレーションＰＬＣ３０００、被加工物シミュレーションＰＬＣ４０００、及びプロセスシミュレーションＰＬＣ５０００から出力される模擬信号に基づいて仮想プラント画面の表示内容が変更される。したがって、設計者は、この仮想プラント画面において、実機がない事前のデバッグの段階においても、あたかも実機があるかのごとく製造プラントラインの動作、及びプロセスにおいて発生する現象を視覚的に確認することができる。すなわち設計者は自分が意図しないプラントの動作を容易に視認できるため、円滑に制御プログラムの不具合の抽出が行え、デバッグ作業の効率を高めることができる。
【００６４】
（設備機器モデル部品の接続方法）
図９は、プログラミングシートに配置された設備機器モデル部品を相互に接続する線が交差した状態の一例を示す図である。
プログラミングシートにおいて、１つの設備機器モデル部品に対して複数の設備機器モデル部品を接続する場合があり、この際に、図９に示すように、設備機器モデル部品９００、９１０を相互に接続する線９２０と、設備機器モデル部品９１０、９３０を相互に接続する線９４０と、が交差した状態で表示を行うと、プログラムモジュールの可読性が低下する。そこで、本実施形態では、このような交差が生じないようにすることを自動で行う。
【００６５】
図１０は、プログラミングシートに配置された設備機器モデル部品を相互に線で接続する方法の一例を説明する図である。図１１は、設備機器モデル部品を相互に線を構成するＸ軸線分（図１１（ａ））とＹ軸線分（図１１（ｂ））の一例を示す図である。
図１０に示すように、本実施形態では、水平方向の直線であるＸ軸線分（図１１（ａ））と、垂直方向の直線であるＹ軸線分（図１１（ｂ））とを繋ぎ合わせることにより、２つの設備機器モデル部品１１００、１２００及び１２００、１３００を相互に接続する線を作成する。Ｘ軸線分の端点の一方を開始点と定義し、他方を終了点と定義する。また、Ｙ軸線分の端点の一方を開始点と定義し、他方を終了点と定義する（図１０、図１１の直線の両端の白丸を参照）。本実施形態では、各線分の端点のうち、既に作成されている線分に接続される点を開始点とし、次に作成される線分に接続される点を終了点とする。
【００６６】
また、図１０に示すように、不可侵領域１１１０、１２１０、１３１０、１４１０が予め設定されている。不可侵領域１１１０、１２１０、１３１０、１４１０は、Ｘ軸線分とＹ軸線分の（開始点及び終了点以外の）描画を禁止する領域である。図１０に示す例では、不可侵領域１１１０、１２１０、１３１０、１４１０は、設備機器モデル部品１１００、１２００、１３００、１４００及びその変数名が描画される領域の外縁から所定の距離だけ外側に位置する領域を外縁とする領域になる。
【００６７】
また、不可侵領域１１１０、１２１０、１３１０、１４１０のように矩形でない不可侵領域については、包括不可侵領域１１２０、１２２０、１３２０、１４２０が設定される。図１０に示すように、包括不可侵領域１１２０、１２２０、１３２０、１４２０は、不可侵領域１１１０、１２１０、１３１０、１４１０の外接矩形の領域である。
また、相互に接続する２つの設備機器モデル部品の共通する入力と出力の部分のうち、出力の部分を出発点と定義し、入力の部分を到着点と定義する。
【００６８】
以上の定義の下、図１２、図１３に示すフローチャートに従って、設備機器モデル部品を相互に線で接続する。図１２は、設備機器モデル部品を相互に線で接続する際のシミュレーションプログラム自動生成部２５００の処理の一例を説明するフローチャートである。また、図１３は、図１２のステップＳ１２１２の線分低減処理の詳細の一例を説明するフローチャートである。また、図１４〜図１７は、図１２、図１３に示すフローチャートに従って、図１０に示すようにして、設備機器モデル部品を相互に線で接続する方法の一例を説明する図である。以下、必要に応じて図１４〜図１７を参照しながら、図１２、図１３に示すフローチャートにおける処理を説明する。
【００６９】
尚、図１２では、一組の出発点と到着点についての処理を示す。従って、出発点と到着点との全ての組について、図１２の処理が行われる。また、図１４〜図１７では、既に、設備機器モデル部品１１００の出力１と設備機器モデル部品１４００の入力１とを相互に接続する線が作成されているものとする。さらに、図１４〜図１７では、設備機器モデル部品１１００の出力３と設備機器モデル部品１２００の入力２とを接続する線を作成した後、設備機器モデル部品１３００の出力１と設備機器モデル部品１２００の入力３とを相互に接続する線を作成する場合を例に挙げて説明する。ただし、接続する線の作成順序は限定されない（どの入力と出力（出発点と到着点）から、接続する線の作成を行ってもよい）。
【００７０】
まず、ステップＳ１２０１において、シミュレーションプログラム自動生成部２５００は、相互に線で接続される２つの設備機器モデル部品について、出発点を開始点に設定し、到着点を終了点に設定する。図１４（ａ）に示す例では、出発点１１３０が開始点に設定され、到着点１２３０が終了点に設定される。また、図１６（ａ）に示す例では、出発点１３３０が開始点に設定され、到着点１２４０が終了点に設定される。
【００７１】
次に、ステップＳ１２０２において、シミュレーションプログラム自動生成部２５００は、干渉確認領域を作成する。干渉確認領域は、開始点と終了点とが対角に位置する矩形の領域である。図１４（ｂ）に示す例では、干渉確認領域１４１が作成される。また、図１６（ｂ）に示す例では、干渉確認領域１４２が作成される。
【００７２】
次に、ステップＳ１２０３において、シミュレーションプログラム自動生成部２５００は、干渉確認領域内に線分（Ｘ軸線分又はＹ軸線分）があるか否かを判定する。この判定の結果、干渉確認領域内に線分がある場合には、ステップＳ１２０４に進む。一方、干渉確認領域内に線分がない場合には、ステップＳ１２０４を省略して後述するステップＳ１２０５に進む。図１４（ｂ）に示す例では、干渉確認領域１４１内に線分がないと判定される。一方、図１６（ｂ）に示す例では、干渉確認領域１４２内に線分があると判定される。
【００７３】
ステップＳ１２０４に進むと、シミュレーションプログラム自動生成部２５００は、新たな不可侵領域を作成する。この不可侵領域は、干渉確認領域を構成する辺のうち、当該干渉確認領域内の線分と交差する辺と、不可侵領域が拡大される方向に当該線分を所定の距離だけ平行移動した線と、で囲まれる矩形の領域である。図１６（ｂ）に示す例では、不可侵領域１６１が作成される。そして、ステップＳ１２０５に進む。
【００７４】
次に、ステップＳ１２０５において、シミュレーションプログラム自動生成部２５００は、これから作成する線分（後述するステップＳ１２１０に進んだと仮定した場合に作成される線分）が、干渉確認領域内の不可侵領域と干渉するか否かを判定する。この判定の結果、これから作成する線分が、干渉確認領域内の不可侵領域と干渉しない場合には、後述するステップＳ１２１０に進む。一方、これから作成する線分が、干渉確認領域内の不可侵領域と干渉する場合には、ステップＳ１２０６に進む。
【００７５】
図１４（ｂ）に示す例では、これから作成する線分（終了点１２３０からＸ軸の負の方向に延びる直線）は、干渉確認領域１４１内の不可侵領域１４１０と干渉するので、ステップＳ１２０６に進む。また、図１６（ｂ）に示す例でも、これから作成する線分（開始点１３３０からＹ軸の負の方向に延びる直線）は、干渉確認領域１４２内の不可侵領域１６１と干渉するので、ステップＳ１２０６に進む。
ステップＳ１２０６に進むと、シミュレーションプログラム自動生成部２５００は、干渉確認領域に凹凸があるか否か（すなわち、干渉確認領域が矩形であるか否か）を判定する。この判定の結果、干渉確認領域に凹凸がない（干渉確認領域が矩形である）場合には、ステップＳ１２０７を省略して後述するステップＳ１２０８に進む。一方、干渉確認領域に凹凸がある（干渉確認領域が矩形でない）場合には、ステップＳ１２０７に進む。
図１４（ｂ）に示す例では、不可侵領域１４１０に凹凸があると判定される。一方、図１６（ｂ）に示す例では、不可侵領域１６１に凹凸がないと判定される。
【００７６】
ステップＳ１２０７に進むと、シミュレーションプログラム自動生成部２５００は、凹凸があると判定された不可侵領域に対し、包括不可侵領域を作成する。図１４（ｃ）に示す例では、包括不可侵領域１４２０が作成される。そして、ステップＳ１２０８に進む。
ステップＳ１２０８に進むと、シミュレーションプログラム自動生成部２５００は、不可侵領域（包括不可侵領域）の辺のうち、開始点に最も近い辺の頂点の何れかの位置に終了点の位置を変更する。
【００７７】
終了点の位置を変更する方法の一例を説明すると、まず、ステップＳ１２０５の判定の結果、これから作成する線分と干渉する不可侵領域が複数ある場合、シミュレーションプログラム自動生成部２５００は、開始点に最も近い不可侵領域（又は包括不可侵領域）を選択する。そして、シミュレーションプログラム自動生成部２５００は、選択した不可侵領域又は包括不可侵領域の頂点のうち、干渉確認領域内にある頂点を新たな終了点として選択する。また、選択した不可侵領域又は包括不可侵領域の頂点のうち、干渉確認領域内にある頂点が複数ある場合、シミュレーションプログラム自動生成部２５００は、当該複数の頂点のうち、開始点に最も近い頂点を新たな終了点として選択する。また、選択した不可侵領域又は包括不可侵領域の頂点のうち、干渉確認領域内にある頂点がない場合にも、シミュレーションプログラム自動生成部２５００は、当該複数の頂点のうち、開始点に最も近い頂点を新たな終了点として選択する。
図１４（ｃ）に示す例では、終了点は、到着点１２３０から終了点１２３１に変更される。図１６（ｃ）に示す例では、終了点は、到着点１２４０から終了点１２４１に変更される。
【００７８】
次に、ステップＳ１２０９において、シミュレーションプログラム自動生成部２５００は、開始点と、ステップＳ１２０８で変更した終了点とが対角に位置する矩形の領域を新たな干渉確認領域として再作成する。図１４（ｃ）に示す例では、干渉確認領域１４３が再作成される。図１６（ｃ）に示す例では、開始点１３３０と終了点１２４１とを相互に結ぶ直線の領域が干渉確認領域１４４として再作成される。そして、前述したステップＳ１２０３に戻る。
【００７９】
ステップＳ１２０３に戻った後、図１４（ｃ）に示す例では、干渉確認領域１４３は線分と重ならないと判定される（ステップＳ１２０３でＮＯと判定される）。また、干渉確認領域１４３内には不可侵領域がないので、これから作成する線分が、干渉確認領域内の不可侵領域と干渉しないと判定される（ステップＳ１２０５でＮＯと判定される）。したがって、ステップＳ１２１０に進む。このことは、図１６（ｃ）に示す干渉確認領域１４４についても同じである。
【００８０】
ステップＳ１２１０に進むと、シミュレーションプログラム自動生成部２５００は、開始点から終了点までを干渉確認領域の辺に沿って結んだ線分を作成する。本実施形態では、現在の開始点を開始点とするＹ軸線分を作成した後、現在の終了点を終了点とするＸ軸線分を作成するものとする。
【００８１】
図１４（ｃ）に示す例では、現在の開始点１１３０を開始点とし、当該開始点から干渉確認領域１４３の辺に沿って当該辺の長さだけ隔てた点１１３１を終了点とするＹ軸線分を作成する。そして、作成したＹ軸線分の終了点１１３１を開始点とし、当該開始点から干渉確認領域１４３の辺に沿って当該辺の長さだけ隔てた点（すなわち現在の終了点１２３１）を終了点とするＸ軸線分を作成する。
図１６（ｃ）に示す例では、現在の開始点１３３０を開始点とし、当該開始点から干渉確認領域１４４の辺に沿って当該辺の長さだけ隔てた点１２４１を終了点とするＹ軸線分を作成する。この終了点は、現在の終了点と一致するので、Ｘ軸線分の作成は行われない。
【００８２】
次に、ステップＳ１２１１において、シミュレーションプログラム自動生成部２５００は、ステップＳ１２１０で最後に作成した線分の終了点が、到着点と一致するか否かを判定する。この判定の結果、ステップＳ１２１０で最後に作成した線分の終了点が、到着点と一致する場合には、ステップＳ１２１２に進み、線分低減処理を行い、図１２のフローチャートによる処理を終了する。尚、線分低減処理の詳細については、図１３を参照しながら後述する。一方、ステップＳ１２１０で最後に作成した線分の終了点が、到着点と一致しない場合には、ステップＳ１２１３に進む。
図１４（ｃ）に示す例でも、図１６（ｃ）に示す例でも、最後に作成した線分の終了点１２３１、１２４１は到着点１２３０、１２４０に一致しないので、ステップＳ１２１３に進む。
【００８３】
ステップＳ１２１３に進むと、シミュレーションプログラム自動生成部２５００は、ステップＳ１２１０で最後に作成した線分の終了点を開始点に設定し、到着点を終了点に設定する。図１４（ｄ）に示す例では、ステップＳ１２１０で最後に作成した線分の終了点１２３１が開始点に設定され、到着点１２３０が終了点に設定される。また、図１６（ｃ）に示す例では、ステップＳ１２１０で最後に作成した線分の終了点１２４１が開始点に設定され、到着点１２４０が終了点に設定される。そして、ステップＳ１２０２に戻る。
【００８４】
図１４（ｄ）に示す例では、ステップＳ１２０２に戻ると、干渉確認領域１４５が設定される。そして、ステップＳ１２０３において、干渉確認領域１４５は、線分と重ならないと判定され、ステップＳ１２０５に進む。そして、ステップＳ１２０５において、これから作成する線分（開始点１２３１からＸ軸の正の方向に延びる直線）が、干渉確認領域１４５内の不可侵領域と干渉すると判定され、ステップＳ１２０６において、不可侵領域１４１０、１２１０に凹凸があると判定され、ステップＳ１２０７において、包括不可侵領域１４２０が作成される。尚、図１４（ｄ）では不可侵領域１２１０に対する包括不可侵領域の図示を省略している。
【００８５】
そして、ステップＳ１２０８において、終了点は、到着点１２３０から終了点１２３２に変更される。そして、図１５（ａ）に示すように、ステップＳ１２０９において、干渉確認領域１４６が再作成される。尚、開始点１２３１と終了点１２３２のＹ座標は同じであるので、開始点１２３１と終了点１２３２の対角に位置する矩形は、開始点１２３１と終了点１２３２を相互に結ぶ直線となり、この直線の領域が領域干渉確認領域１４６になる。
そして、ステップＳ１２１０において、開始点１２３１と終了点１２３２を相互に結ぶＸ軸線分が作成される。そして、ステップＳ１２１１において、終了点１２３２は到着点１２３０ではないと判定され、ステップＳ１２１３において、終了点１２３２が開始点に設定され、到着点１２３０が終了点に設定される。そして、ステップＳ１２０２に戻る。
【００８６】
図１５（ｂ）に示す例では、ステップＳ１２０２に戻ると、干渉確認領域１４７が設定される。そして、ステップＳ１２０３において、干渉確認領域１４７は、線分と重ならないと判定され、ステップＳ１２０５に進む。そして、ステップＳ１２０５において、これから作成する線分（開始点１２３２を開始点とするＹ軸線分と到着点１２３０を終了点とするＸ軸線分とからなる、干渉確認領域１４７の辺に沿う線分）が、干渉確認領域１４７内の不可侵領域と干渉しないと判定される。したがって、ステップＳ１２１０において、現在の開始点１２３２を開始点とし、当該開始点から干渉確認領域１４７の辺に沿って当該辺の長さだけ隔てた点１２３３を終了点とするＹ軸線分を作成し、作成したＹ軸線分の終了点１２３３を開始点とし、当該開始点から干渉確認領域１４７の辺に沿って当該辺の長さだけ隔てた点（すなわち、現在の終了点１２３０）を終了点とするＸ軸線分を作成する。そして、ステップＳ１２１１において、終了点１２３０は到着点１２３０であると判定され、ステップＳ１２１２に進む。
【００８７】
これにより、図１５（ｂ）に示すように、出発点１１３０と到着点１２３０とを相互に結ぶ、Ｘ軸線分及びＹ軸線分とからなる折れ線が、不可侵領域及び他の線分と重ならないように作成される。
図１６（ｃ）に示す例でも、図１２のフローチャートに従って、前述したのと同様にして、出発点１３３０と到着点１２４０とを相互に結ぶ、Ｘ軸線分及びＹ軸線分とからなる折れ線が、不可侵領域及び他の線分と重ならないように作成される。尚、この際、干渉確認領域１４８、１４９がこの順で作成され、終了点１２４２、１２４３がこの順で作成される。
【００８８】
次に、図１３のフローチャートを参照しながら、図１２のステップＳ１２１２の線分低減処理の一例を説明する。
まず、ステップＳ１３０１において、シミュレーションプログラム自動生成部２５００は、間にＸ軸線分が１つある２つのＹ軸線分があるか否かを判定する。この判定の結果、間にＸ軸線分が１つある２つのＹ軸線分がない場合には、ステップＳ１３０２〜Ｓ１３０６を省略して後述するステップＳ１３０７に進む。一方、間にＸ軸線分が１つある２つのＹ軸線分がある場合には、ステップＳ１３０２に進む。
図１５（ｂ）に示す例では、間にＸ軸線分が１つある２つのＹ軸線分はないと判定される。図１６（ｃ）、図１７（ａ）に示す例では、開始点１３３０、終了点１２４１のＹ軸線分と、開始点１２４２、終了点１２４３のＹ軸線分との間に、開始点１２４１、終了点１２４２からなるＸ軸線分があると判定される。尚、図１７（ａ）は、図１６（ｃ）から、不可侵領域１６１と干渉確認領域１４８を除いて示したものである。
【００８９】
ステップＳ１３０２に進むと、シミュレーションプログラム自動生成部２５００は、間にＸ軸線分が１つある２つのＹ軸線分の組のうち、未選択の組を１つ選択する。ここでは、出発点に近いものから順に、２つのＹ軸線分の組のうち、未選択の組を１つ選択するものとする。図１６（ｃ）、図１７（ａ）に示す例では、開始点１３３０、終了点１２４１のＹ軸線分と、開始点１２４２、終了点１２４３のＹ軸線分との組が選択される。
次に、ステップＳ１３０３において、シミュレーションプログラム自動生成部２５００は、不可侵領域と交わらないように、ステップＳ１３０２で選択した２つのＹ軸線分を統一できるか否かを判定する。具体的に説明すると、シミュレーションプログラム自動生成部２５００は、ステップＳ１３０２で選択した２つのＹ軸線分の一方のＹ軸線分のＸ座標を他方のＹ軸線分のＸ座標に統一して、当該２つのＹ軸線分を１つのＹ軸線分にした場合に、不可侵領域と交わらないＹ軸線分が少なくとも１つできるか否かを判定する。尚、Ｙ軸線分を統一することにより、Ｘ軸線分が変更或いは新たに追加される場合には、当該Ｘ軸線分も不可侵領域と交わらない場合に、ステップＳ１３０３において、当該Ｙ軸線分は、不可侵領域と交わらない（すなわち、不可侵領域と交わらないＹ軸線分ができる）と判定するものとする。
【００９０】
この判定の結果、不可侵領域と交わらないように、ステップＳ１３０２で選択した２つのＹ軸線分を統一できない場合には、ステップＳ１３０４に進む。ステップＳ１３０４に進むと、シミュレーションプログラム自動生成部２５００は、間にＸ軸線分が１つある２つのＹ軸線分の組のうち、未選択の組があるか否かを判定する。この判定の結果、未選択の組がある場合には、ステップＳ１３０２に戻る。一方、未選択の組がない場合には、後述するステップＳ１３０７に進む。尚、ここでは、Ｘ座標を統一した新たなＹ軸線分は未選択であるとしてステップＳ１３０４の処理を行うものとする。
【００９１】
一方、ステップＳ１３０３において、不可侵領域と交わらないように、ステップＳ１３０２で選択した２つのＹ軸線分を統一できると判定された場合には、ステップＳ１３０５に進む。図１７（ａ）に示す例では、開始点１３３０、終了点１２４１のＹ軸線分のＸ座標を、開始点１２４２、終了点１２４３のＹ軸線分のＸ座標に統一して、これらのＹ軸線分を１つのＹ軸線分にすれば、当該Ｙ軸線分は不可侵領域と交わらない。
【００９２】
ステップＳ１３０５に進むと、シミュレーションプログラム自動生成部２５００は、ステップＳ１３０２で選択した２つのＹ軸線分のＸ座標の何れか一方を、統一するＸ座標として決定する。
この処理の具体例を説明すると、まず、ステップＳ１３０２で選択した２つのＹ軸線分の一方のＹ軸線分のＸ座標を他方のＹ軸線分のＸ座標に統一して、当該２つのＹ軸線分を１つのＹ軸線分にした場合に、不可侵領域と交わらないＹ軸線分が１つしかできない場合には、当該１つのＹ軸線分のＸ座標を採用する。一方、ステップＳ１３０２で選択した２つのＹ軸線分の一方のＹ軸線分のＸ座標を他方のＹ軸線分のＸ座標に統一して、当該２つのＹ軸線分を１つのＹ軸線分にした場合に、不可侵領域と交わらないＹ軸線分が２つできる場合には、当該２つのＹ軸線分のうち、不可侵領域及び他の線分との最短距離が長くなる方のＹ軸線分のＸ座標を採用する。
図１７（ａ）に示す例では、開始点１３３０、終了点１２４１のＹ軸線分のＸ座標を、開始点１２４２、終了点１２４３のＹ軸線分のＸ座標に統一しなければ、不可侵領域と交わらないＹ軸線分を作成できない。すなわち、開始点１２４２、終了点１２４３のＹ軸線分のＸ座標が採用される。
【００９３】
次に、ステップＳ１３０６において、シミュレーションプログラム自動生成部２５００は、ステップＳ１３０２で選択した２つのＹ軸線分のうち、ステップＳ１３０５で決定したＸ座標を有しないＹ軸線分のＸ座標を、ステップＳ１３０５で決定したＸ座標に変更し、新たなＹ軸線分を（１つ）作成する。尚、新たなＹ軸成分の開始点は、ステップＳ１３０２で選択した２つのＹ軸線分のうちＸ座標を変更するＹ軸線分の変更後の開始点である。また、新たなＹ軸線分の終了点は、ステップＳ１３０２で選択した２つのＹ軸線分のうちＸ座標を変更しないＹ軸線分の終了点である。そして、新たなＹ軸線分の開始点を終了点とし、ステップＳ１３０２で選択した２つのＹ軸線分のうちＸ座標を変更するＹ軸線分の変更前の元の開始点を開始点とするＸ軸線分を作成する。そして、前述したステップＳ１３０４に進む。
【００９４】
図１７（ａ）、図１７（ｂ）に示す例では、開始点１３３０、終了点１２４１のＹ軸線分と、開始点１２４２、終了点１２４３のＹ軸線分とのうち、開始点１３３０、終了点１２４１のＹ軸線分のＸ座標を、開始点１２４２、終了点１２４３のＹ軸線分のＸ座標に変更し、新たなＹ軸線分（開始点１２４５、終了点１２４３）を作成する。そして、開始点１３３０、終了点１２４１のＹ軸線分の変更前の元の開始点１３３０を開始点とし、新たなＹ軸線分の開始点１２４５を終了点とするＸ軸線分を作成する。そして、未選択の２つのＹ軸線分の組がないと判定され、ステップＳ１３０７に進む。
【００９５】
以上のようにしてステップＳ１３０７に進むと、シミュレーションプログラム自動生成部２５００は、ステップＳ１３０７〜Ｓ１３１２の処理を行う。ステップＳ１３０７〜Ｓ１３１２の処理は、それぞれ、前述したステップＳ１３０１〜Ｓ１３０６の説明において、ＸをＹに、ＹをＸに、それぞれ置き替えたものであるので、ここでは、その詳細な説明を省略する。ただし、ここでは、出発点又は到着点を含むＸ軸線分のＹ座標の変更はできないものとする。
【００９６】
図１５（ｂ）に示す例では、ステップＳ１３０７において、開始点１２３１、終了点１２３２のＸ軸線分と、開始点１２３３、終了点１２３０のＸ軸線分との間に、開始点１２３２、終了点１２３３からなるＹ軸線分が間にあると判定され、ステップＳ１３０８において、これら２つのＸ軸線分の組が選択される。そして、ステップＳ１３０９において、開始点１２３３、終了点１２３０のＸ軸線分は、到着点を含むのでＹ座標を変更できないと判定される。また、開始点１２３１、終了点１２３２のＸ軸線分のＹ座標を、開始点１２３３、終了点１２３０のＸ軸線分のＹ座標に統一し、当該２つのＸ軸線分を１つのＸ軸線分にすると、当該１つのＸ軸線分は、不可侵領域１４２０と交わると判定される。したがって、ステップＳ１３０９からステップＳ１３１０に進む。そして、その他に、間にＹ軸線分が１つある２つのＸ軸線分はないので、図１３のフローチャートによる処理を終了する。
したがって、図１５（ｃ）に示すように、出発点１１３０と到着点１２３０とを相互に結ぶ、Ｘ軸線分及びＹ軸線分とからなる折れ線は、図１５（ｂ）に示す状態から変更されずに確定する。
【００９７】
また、図１７（ｂ）に示す例では、ステップＳ１３０７において、間にＹ軸線分が１つある２つのＸ軸線分はないと判定されるので、図１３のフローチャートによる処理を終了する。
したがって、図１７（ｃ）に示すように、出発点１３３０と到着点１２４０とを相互に結ぶ、Ｘ軸線分及びＹ軸線分とからなる折れ線は、図１７（ｂ）に示す状態から変更されずに確定する。
【００９８】
（まとめ）
以上のように本実施形態では、製造プロセスライン上の各設備機器の配置を示す設備機器レイアウト２２１０に設定された設備機器と、設備機器の属性情報のリストである設備機器リスト２２２０に登録された設備機器とを、設備機器の略称により相互に関連付ける。また、設備機器の動作がグラフィック言語で記述されたプログラムモジュールである設備機器モデル部品（モータモデル部品５００等）に設定する設定パラメータを特定する情報が登録されたパラメータ・リスト関連定義２２３０と、設備機器リスト２２２０とをモデルタイプにより相互に関連付ける。
【００９９】
シミュレーションプログラムを自動生成する際に、設備機器レイアウト２２１０及び設備機器リスト２２２０に基づいて、設備機器モデル部品ＤＢ２３０１から設備機器モデル部品を読み出す。そして、パラメータ・リスト関連定義２２３０に従って設備機器リスト２２２０から読み出した設定パラメータを、当該設備機器モデル部品に設定する。
したがって、設備機器モデル部品に設定パラメータを個別に手動で設定する必要がなくなる。よって、シミュレーションプログラムを自動生成する際の設計者の負担を従来よりも軽減することができる。また、設定パラメータを別途定義するので、設定パラメータを変更した場合には、パラメータ・リスト関連定義２２３０を書き換えるだけで済むので、シミュレーションプログラムを自動生成するための処理を大幅に変更する必要がなくなる。
また、本実施形態では、パラメータ・リスト関連定義２２３０に登録されている設定パラメータを配列変数としたので（複数の変数を１つの変数として扱うので）、グラフィカルに表示される設備機器モデル部品が大きくなることを抑制することができる。
【０１００】
また、本実施形態では、設備機器モデル部品同士を相互に接続する線を水平方向の直線（Ｘ軸線分）と垂直方向の直線（Ｙ軸線分）とを繋ぎ合わせて作成する。この際、当該直線が、設備機器モデル部品の不可侵領域や、他の直線と交差しないように、Ｘ軸線分とＹ軸線分とを繋ぎ合わせる。
したがって、自動生成されたシミュレーションプログラムを変更する際に、設備機器モデル部品同士の関係を設計者に分かりやすく表示することができる。したがって、自動生成されたシミュレーションプログラムを変更する際の設計者の負担を減少させることができる。
尚、雛形プログラムにより可読性の高いプログラムモジュールを手動で作成することはできるが、設計者の負担が増大する。そこで、本実施形態では、設備機器モデル部品同士を相互に接続する線については、ある程度自動で可読性を高めることが可能であることに着目し、設備機器モデル部品同士を相互に接続する線を前記のようにして描画するようにした。一方、自動で可読性を高めることが困難な処理については雛形プログラムにより、シミュレーションプログラムの自動生成を行う前に手動で作成する。
【０１０１】
（変形例）
本実施形態では、設備機器シミュレーションＰＬＣ３０００と、被加工物シミュレーションＰＬＣ４０００と、プロセスシミュレーションＰＬＣ５０００とを用いる場合を例に挙げて説明した。しかしながら、必ずしもこのようにする必要はない。例えば、設備機器シミュレーションＰＬＣ３０００を用いずに、実際の設備機器を使用してもよい。この場合には、製造プロセスラインの現場にて行う無負荷テスト、すなわち実際の設備機器は使用するが被加工物（例えば鋼板）は使用しないで制御プログラム８１００のテスト（デバッグ）を行うことになる。
この他、表面処理工程における製造プロセスライン以外の製造プロセスラインにも、本実施形態の手法を適用することができる。
【０１０２】
尚、以上説明した本発明の実施形態は、コンピュータがプログラムを実行することによって実現することができる。また、前記プログラムを記録したコンピュータ読み取り可能な記録媒体及び前記プログラム等のコンピュータプログラムプロダクトも本発明の実施形態として適用することができる。記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
また、以上説明した本発明の実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、またはその主要な特徴から逸脱することなく、様々な形で実施することができる。
【０１０３】
（請求項との関係）
設備機器モデル部品記憶手段は、例えば、設備機器モデル部品ＤＢ２３０１に設備機器モデル部品を記憶することにより実現される。
被加工物モデル部品記憶手段は、例えは、被加工物モデル部品ＤＢ２３０２に被加工物モデル部品を記憶することにより実現される。
プロセスモデル部品記憶手段は、例えば、プロセスモデル部品ＤＢ２３０３にプロセスモデル部品を記憶することにより実現される。
設計書作成手段は、例えば、設計書作成部２２００を用いることにより実現される。
シミュレーションプログラム自動生成手段は、例えば、シミュレーションプログラム自動生成部２５００を用いることにより実現される。
設備機器を識別する情報は、例えば、設備機器の略称により実現される。
設備機器の属性情報は、図３に示す、機器略称、機器名称、モデルタイプ、モータ容量、Ｂａｓｅ速度、ＴＯＰ速度、慣性、ＰＬＧ有無により実現される。また、これらのうち、モータ容量、Ｂａｓｅ速度、ＴＯＰ速度、慣性が設定パラメータの情報の一例になる。
設備機器リストに登録された設備機器の属性情報は、例えば、図４に示す、列Ｎｏにより実現される。
作成手段は、例えば、シミュレーションプログラム自動生成部２５００が、図１２のフローチャートによる処理を実行することにより実現される。
開始点設定手段は、例えば、シミュレーションプログラム自動生成部２５００が、図１２のステップＳ１２０１の処理を実行することにより実現される。
終了点設定手段は、例えば、シミュレーションプログラム自動生成部２５００が、図１２のステップＳ１２０１の処理を実行することにより実現される。
干渉確認領域作成手段は、例えば、シミュレーションプログラム自動生成部２５００が、図１２のステップＳ１２０２の処理を実行することにより実現される。
不可侵領域変更手段は、例えば、シミュレーションプログラム自動生成部２５００が、図１２のステップＳ１２０７の処理を実行することにより実現される。
終了点変更手段は、例えば、シミュレーションプログラム自動生成部２５００が、図１２のステップＳ１２０８の処理を実行することにより実現される。
干渉確認領域再作成手段は、例えば、シミュレーションプログラム自動生成部２５００が、図１２のステップＳ１２０９の処理を実行することにより実現される。
線分作成手段は、例えば、シミュレーションプログラム自動生成部２５００が、図１２のステップＳ１２１０の処理を実行することにより実現される。
開始点・終了点変更手段は、例えば、シミュレーションプログラム自動生成部２５００が、図１２のステップＳ１２１３の処理を実行することにより実現される。
線分低減手段は、例えば、シミュレーションプログラム自動生成部２５００が、図１３のフローチャートによる処理を実行することにより実現される。
雛形プログラム記憶手段は、例えば、雛形プログラムＤＢ２４００に雛形プログラムを記憶することにより実現される。
【符号の説明】
【０１０４】
１０００：シミュレーション装置、２０００：シミュレーションプログラム生成装置、２２００：設計書作成部、２２１０：設備機器レイアウト、２２２０：設備機器リスト、２２３０：パラメータ・リスト関連定義、２３００：プラントモデル部品ＤＢ、２３０１：設備機器モデル部品ＤＢ、２３０２：被加工物モデル部品ＤＢ、２３０３：プロセスモデル部品ＤＢ、２４００：雛形プログラムＤＢ、２５００：シミュレーションプログラム自動生成部
【図１】
0006468000.tif 000002
【図２】
0006468000.tif 000003
【図３】
0006468000.tif 000004
【図４】
0006468000.tif 000005
【図５】
0006468000.tif 000006
【図６】
0006468000.tif 000007
【図７】
0006468000.tif 000008
【図８】
0006468000.tif 000009
【図９】
0006468000.tif 000010
【図１０】
0006468000.tif 000011
【図１１】
0006468000.tif 000012
【図１２】
0006468000.tif 000013
【図１３】
0006468000.tif 000014
【図１４】
0006468000.tif 000015
【図１５】
0006468000.tif 000016
【図１６】
0006468000.tif 000017
【図１７】
0006468000.tif 000018