(57)【特許請求の範囲】
【請求項１】
複数の機器それぞれにおいて実行される複数のプロセスについて、処理内容を受け付ける受付工程と、前記処理内容に基づいてソースコードを生成する生成工程とを、コンピュータに実行させるための仕様記述プログラムであって、
前記受付工程は、更に、前記複数の機器のうちの同種別の複数の機器を対象とした処理内容であることを示す固有の表現方法を、選択可能な機能としてユーザに提供し、
前記生成工程は、前記固有の表現方法が記述されたプロセスの処理内容について、同種別の機器がとりうる最大数のデータ及び／または各種別の機器の上位と下位の関係を規定するデータに基づいて補完処理を行うことでソースコードを生成する、仕様記述プログラム。
【請求項２】
前記受付工程は、
所定のプロセスに対する固有の表現方法であって、該所定のプロセスを、同種別の複数の機器を対象として実行することを示す固有の表現方法を、選択可能な機能としてユーザに提供する、請求項１に記載の仕様記述プログラム。
【請求項３】
前記受付工程は、
所定のプロセスの処理内容に含まれる機器の変数に対する固有の表現方法であって、同種別の複数の機器のいずれかまたは全ての機器の変数を対象に、統計量を算出することを示す固有の表現方法を、選択可能な機能としてユーザに提供する、請求項１に記載の仕様記述プログラム。
【請求項４】
前記受付工程は、
所定のプロセスの処理内容に含まれる条件文に対する固有の表現方法であって、同種別の複数の機器のいずれかまたは全ての機器を対象として、該条件文を判定することを示す固有の表現方法を、選択可能な機能としてユーザに提供する、請求項１に記載の仕様記述プログラム。
【請求項５】
前記ユーザにより選択された前記固有の表現方法に基づいて、処理内容の整合性を判定する判定工程、を更にコンピュータに実行させるための、請求項１に記載の仕様記述プログラム。
【請求項６】
複数の機器それぞれにおいて実行される複数のプロセスについて、処理内容を受け付ける受付工程と、前記処理内容に基づいてソースコードを生成する生成工程とを有する仕様記述方法であって、
前記受付工程は、更に、前記複数の機器のうちの同種別の複数の機器を対象とした処理内容であることを示す固有の表現方法を、選択可能な機能としてユーザに提供し、
前記生成工程は、前記固有の表現方法が記述されたプロセスの処理内容について、同種別の機器がとりうる最大数のデータ及び／または各種別の機器の上位と下位の関係を規定するデータに基づいて補完処理を行うことでソースコードを生成する、仕様記述方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、仕様記述プログラム及び仕様記述方法に関する。
【背景技術】
【０００２】
一般に、機器システムを構成する複数の機器それぞれにおいて実行される複数のプロセスを設計する場合、各プロセスの処理内容を記述する記述者は、機器システムに含まれる同種別の機器の機器台数を加味した処理内容を記述することが求められる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−０９１１３４号公報
【特許文献２】特開２０１３−０８８８７３号公報
【特許文献３】国際公開第２０１４／１７０９７０号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一方で、プロセスの設計時においては、個別の機器システムの機器構成（各種別の機器台数等）が具体的に定められていないことも多い。このため、機器台数を加味した処理内容を記述しようとすると、記述者は、様々なバリエーションの機器構成を想定したうえで処理内容を記述する必要があり、記述が複雑化するという問題があった。
【０００５】
本開示は、複数の機器それぞれにおいて実行される複数のプロセスを設計する際、各プロセスの処理内容を簡潔に記述することが可能な仕様記述プログラム及び仕様記述方法を提供する。
【課題を解決するための手段】
【０００６】
本開示の第１の態様は、
複数の機器それぞれにおいて実行される複数のプロセスについて、処理内容を受け付ける受付工程と、前記処理内容に基づいてソースコードを生成する生成工程とを、コンピュータに実行させるための仕様記述プログラムであって、
前記受付工程は、更に、前記複数の機器のうちの同種別の複数の機器を対象とした処理内容であることを示す固有の表現方法を、選択可能な機能としてユーザに提供し、
前記生成工程は、前記固有の表現方法が記述されたプロセスの処理内容について、同種別の機器がとりうる最大数のデータ及び／または各種別の機器の上位と下位の関係を規定するデータに基づいて補完処理を行うことでソースコードを生成する。
【０００７】
本開示の第１の態様によれば、複数の機器それぞれにおいて実行される複数のプロセスを設計する際、各プロセスの処理内容を簡潔に記述することが可能な仕様記述プログラムを提供することができる。
【０００８】
また、本開示の第２の態様は、第１の態様に記載の仕様記述プログラムであって、
前記受付工程は、
所定のプロセスに対する固有の表現方法であって、該所定のプロセスを、同種別の複数の機器を対象として実行することを示す固有の表現方法を、選択可能な機能としてユーザに提供する。
【０００９】
また、本開示の第３の態様は、第１の態様に記載の仕様記述プログラムであって、
前記受付工程は、
所定のプロセスの処理内容に含まれる機器の変数に対する固有の表現方法であって、同種別の複数の機器のいずれかまたは全ての機器の変数を対象に、統計量を算出することを示す固有の表現方法を、選択可能な機能としてユーザに提供する。
【００１０】
また、本開示の第４の態様は、第１の態様に記載の仕様記述プログラムであって、
前記受付工程は、
所定のプロセスの処理内容に含まれる条件文に対する固有の表現方法であって、同種別の複数の機器のいずれかまたは全ての機器を対象として、該条件文を判定することを示す固有の表現方法を、選択可能な機能としてユーザに提供する。
【００１３】
また、本開示の第７の態様は、第１の態様に記載の仕様記述プログラムであって、
前記ユーザにより選択された前記固有の表現方法に基づいて、処理内容の整合性を判定する判定工程、を更にコンピュータに実行させる。
【００１４】
本開示の第８の態様は、
複数の機器それぞれにおいて実行される複数のプロセスについて、処理内容を受け付ける受付工程と、前記処理内容に基づいてソースコードを生成する生成工程とを有する仕様記述方法であって、
前記受付工程は、更に、前記複数の機器のうちの同種別の複数の機器を対象とした処理内容であることを示す固有の表現方法を、選択可能な機能としてユーザに提供し、
前記生成工程は、前記固有の表現方法が記述されたプロセスの処理内容について、同種別の機器がとりうる最大数のデータ及び／または各種別の機器の上位と下位の関係を規定するデータに基づいて補完処理を行うことでソースコードを生成する。
【００１５】
本開示の第８の態様によれば、複数の機器それぞれにおいて実行される複数のプロセスを設計する際、各プロセスの処理内容を簡潔に記述することが可能な仕様記述方法を提供することができる。
【図面の簡単な説明】
【００１６】
【図１】設計作業支援装置の利用シーンの一例を示す図である。
【図２】設計作業支援装置のハードウェア構成の一例を示す図である。
【図３】階層構造データの具体例を示す図である。
【図４】仕様記述処理の流れを示すフローチャートである。
【図５】仕様記述部の機能構成の一例を示す図である。
【図６】プロセスに対する固有の表現方法の具体例を示す第１の図である。
【図７】プロセスに対する固有の表現方法の具体例を示す第２の図である。
【図８Ａ】機器の変数に対する固有の表現方法の具体例を示す第１の図である。
【図８Ｂ】機器の変数に対する固有の表現方法の具体例を示す第２の図である。
【図８Ｃ】機器の変数に対する固有の表現方法の具体例を示す第３の図である。
【図９】条件文に対する固有の表現方法の具体例を示す図である。
【図１０】判定部の処理の具体例を示す図である。
【発明を実施するための形態】
【００１７】
以下、各実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省く。
【００１８】
［第１の実施形態］
＜設計作業支援装置の利用シーン＞
はじめに、機器システムを構成する複数の機器それぞれにおいて実行される複数のプロセスを設計する際の、設計作業支援装置の利用シーンについて説明する。図１は、設計作業支援装置の利用シーンの一例を示す図である。図１に示すように、設計作業支援装置１１０は、例えば、機器システム１０を構成する複数の機器それぞれにおいて実行される複数のプロセスについての制御プログラムを提供する。
【００１９】
なお、図１において、機器システム１０は、複数のユニットを有し、それぞれのユニットにおいて、複数種別の機器（機器Ａ、機器Ｂ）が、ユニット外の機器（機器Ｃ）と連携して動作するシステムである。ただし、設計作業支援装置１１０により制御プログラムが提供される機器システム１０の機器構成はこれに限定されない。つまり、設計作業支援装置１１０により提供される制御プログラムは、他の様々なバリエーションの機器構成にも適用可能であり、図１に示す機器システム１０は、そのうちの一例にすぎない。
【００２０】
設計作業支援装置１１０には、設計作業支援プログラムがインストールされており、当該プログラムが実行されることで、設計作業支援装置１１０は、設計作業支援機能１２０を実現する。
【００２１】
また、設計作業支援プログラムには、複数のサブ機能を実現するサブプログラム（例えば、仕様記述プログラム）が含まれ、設計作業支援プログラムが実行される際、当該サブプログラムもあわせて実行される。つまり、設計作業支援機能１２０が有する複数のサブ機能には、少なくとも仕様記述部１２１の機能が含まれる。
【００２２】
仕様記述部１２１は、ユーザ１３０により、複数の機器（図１の例では、機器Ａ〜機器Ｃ）それぞれにおいて実行される複数のプロセスの処理内容が記述された場合に、これを受け付ける。また、仕様記述部１２１は、処理内容を受け付けた複数のプロセスについて、階層構造データ格納部１２２に格納された階層構造データを参照しながら、ソースコードを生成する。
【００２３】
階層構造データは、制御プログラムが適用されうる機器システム（機器システム１０以外の様々なバリエーションの機器構成を有する機器システムを含む）について、
・システム、ユニット、各種別の機器の上位と下位の関係を示す階層構造と、
・システム、ユニット、各種別の機器の最大数と、
を規定したデータである。なお、本実施形態では、システム、ユニット、各種別の機器を、"要素単位"と称する。
【００２４】
また、仕様記述部１２１は、同種別の複数の機器を対象とした処理内容であることを示す固有の表現方法を、選択可能な機能としてユーザ１３０に提供する。更に、仕様記述部１２１は、ユーザ１３０により固有の表現方法が選択された場合に、これを受け付ける。本実施形態において、仕様記述部１２１が提供する固有の表現方法には、
・プロセスに対する固有の表現方法（同種別の複数の機器を対象としてプロセスを実行することを示す固有の表現方法）、
・プロセスの処理内容に含まれる機器の変数に対する固有の表現方法（同種別の複数の機器のいずれかまたは全ての機器の変数を対象に、統計量を算出することを示す固有の表現方法）、
・プロセスの処理内容に含まれる条件文に対する固有の表現方法（同種別の複数の機器のいずれかまたは全ての機器を対象として、条件文を判定することを示す固有の表現方法）、
が含まれる。
【００２５】
また、仕様記述部１２１は、プロセスに対する固有の表現方法を受け付けた場合、
・当該固有の表現方法が記述されたプロセスを、当該固有の表現方法により特定される要素単位と同種別の要素単位の最大数に応じた数のプロセスに展開し、展開後の各プロセスの処理内容について、ソースコードを生成する。
【００２６】
また、仕様記述部１２１は、プロセスの処理内容に含まれる機器の変数に対する固有の表現方法を受け付けた場合、
・当該固有の表現方法が記述された機器の変数に、同種別の複数の機器のいずれかまたは全ての機器を対象に算出した統計量を代入する構成としたうえで、当該プロセスの処理内容について、ソースコードを生成する。
【００２７】
また、仕様記述部１２１は、条件文に対する固有の表現方法を受け付けた場合、
・当該固有の表現方法が記述された条件文が含まれるプロセスにおいて、当該条件文を、同種別の要素単位のいずれかまたは全てを対象とした条件文に展開し、展開後の条件文を含む処理内容について、ソースコードを生成する。
【００２８】
更に、仕様記述部１２１は、プロセスに対する固有の表現方法に基づいて、該プロセスの処理内容の整合性を判定する。仕様記述部１２１では整合性を判定するにあたり、階層構造データ格納部１２２に格納された階層構造データを参照する。
【００２９】
なお、仕様記述部１２１が整合性を判定するタイミングは、ユーザ１３０がプロセスの処理内容を記述したタイミングでもよいし、仕様記述部１２１が、プロセスの処理内容について、ソースコードを生成するタイミングでもよい。
【００３０】
このように、仕様記述部１２１では、同種別の複数の機器を対象とした処理内容であることを示す固有の表現方法を、選択可能な機能としてユーザ１３０に提供する。また、仕様記述部１２１は、ユーザにより固有の表現方法が選択された場合に、これを受け付け、受け付けた固有の表現方法に応じた処理を実行したうえでソースコードを生成する。
【００３１】
これにより、ユーザ１３０は、複数の機器それぞれにおいて実行される複数のプロセスを設計する際、各プロセスの処理内容を簡潔に記述することができる。
【００３２】
なお、本実施形態では、受け付けた固有の表現方法に応じた処理の詳細を説明する際、各ユニットを区別するために、あるいは、同種別の各機器を区別するために、添え字を用いることとする。
【００３３】
例えば、図１において、"ユニット"の後の添え字（"１"、"２"、"３"）は、各ユニットを区別するために便宜的に付したものである。同様に、図１において、"機器Ａ"、"機器Ｂ"、"機器Ｃ"の後の添え字（"１．１"、"１．２"、・・・"３"、"４"等）は、同種別の各機器を区別するために便宜的に付したものである。
【００３４】
このうち、"機器Ａ"の各機器を区別するために付した添え字、及び、"機器Ｂ"の各機器を区別するために付した添え字は、いずれも、"．"（ドット）の右側が、各機器が属するユニットの添え字に対応している。また、"．"（ドット）の左側が、ユニット内における連番（１番目、２番目）の値に対応している。
【００３５】
＜設計作業支援装置のハードウェア構成＞
次に、設計作業支援装置１１０のハードウェア構成について説明する。図２は、設計作業支援装置のハードウェア構成の一例を示す図である。
【００３６】
図２に示すように、設計作業支援装置１１０は、ＣＰＵ（Central Processing Unit）２０１、ＲＯＭ（Read Only Memory）２０２、ＲＡＭ（Random Access Memory）２０３を有する。ＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３は、いわゆるコンピュータを形成する。
【００３７】
また、設計作業支援装置１１０は、補助記憶装置２０４、表示装置２０５、操作装置２０６、通信装置２０７、ドライブ装置２０８を有する。なお、設計作業支援装置１１０の各ハードウェアは、バス２０９を介して相互に接続される。
【００３８】
ＣＰＵ２０１は、補助記憶装置２０４にインストールされている各種プログラム（例えば、設計作業支援プログラム等）を実行する演算デバイスである。
【００３９】
ＲＯＭ２０２は、不揮発性メモリである。ＲＯＭ２０２は、補助記憶装置２０４にインストールされている各種プログラムをＣＰＵ２０１が実行するために必要な各種プログラム、データ等を格納する主記憶デバイスとして機能する。具体的には、ＲＯＭ２０２はＢＩＯＳ（Basic Input/Output System）やＥＦＩ（Extensible Firmware Interface）等のブートプログラム等を格納する、主記憶デバイスとして機能する。
【００４０】
ＲＡＭ２０３は、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）等の揮発性メモリである。ＲＡＭ２０３は、補助記憶装置２０４にインストールされている各種プログラムがＣＰＵ２０１によって実行される際に展開される作業領域を提供する、主記憶デバイスとして機能する。
【００４１】
補助記憶装置２０４は、各種プログラムや、各種プログラムが実行される際に用いられるデータを格納する補助記憶デバイスである。例えば、階層構造データ格納部１２２は、補助記憶装置２０４において実現される。
【００４２】
表示装置２０５は、設計作業支援装置１１０の内部状態を表示する表示デバイスである。操作装置２０６は、設計作業支援装置１１０のユーザ１３０が設計作業支援装置１１０に対して各種指示を入力する際に用いる入力デバイスである。
【００４３】
通信装置２０７は、不図示のネットワークに接続し通信を行うための通信デバイスである。
【００４４】
ドライブ装置２０８は記録媒体２１０をセットするためのデバイスである。ここでいう記録媒体２１０には、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等のように情報を光学的、電気的あるいは磁気的に記録する媒体が含まれる。また、記録媒体２１０には、ＲＯＭ、フラッシュメモリ等のように情報を電気的に記録する半導体メモリ等が含まれていてもよい。
【００４５】
なお、補助記憶装置２０４にインストールされる各種プログラムは、例えば、配布された記録媒体２１０がドライブ装置２０８にセットされ、該記録媒体２１０に記録された各種プログラムがドライブ装置２０８により読み出されることでインストールされる。あるいは、補助記憶装置２０４にインストールされる各種プログラムは、通信装置２０７を介して、ネットワークよりダウンロードされることでインストールされてもよい。
【００４６】
＜階層構造データの具体例＞
次に、階層構造データ格納部１２２に格納された階層構造データの具体例について説明する。図３は、階層構造データの具体例を示す図である。図３に示すように、本実施形態の場合、制御プログラムが適用されうる機器システムは、いずれも、システム３０１、ユニット３０２、各種別（機器Ａ〜機器Ｃ）の機器３０３〜３０５の各要素単位により構成される。
【００４７】
図３の階層構造データ３００の例は、システム３０１が最上位の階層に位置付けられていることを示している。また、システム３０１の１つ下の階層には、ユニット３０２と機器３０３とが位置付けられていることを示している。更に、ユニット３０２の１つ下の階層には、機器３０４と機器３０５とが位置付けられていることを示している。
【００４８】
また、図３の階層構造データ３００の例は、システム３０１、ユニット３０２、各種別の機器３０３〜３０５の各要素単位の最大数として、
・システムの最大数＝"１"、
・ユニットの最大数＝"３"、
・機器Ａの最大数＝"２"
・機器Ｂの最大数＝"２"
・機器Ｃの最大数＝"６４"
が規定されていることを示している（符号３０６参照）。
【００４９】
なお、図３に示す階層構造データ３００の例によれば、制御プログラムが適用されうる機器システムは、機器Ａを最大６台設置することが可能である（各ユニットに、機器Ａが最大数分設置された場合）。なお、図１に示した個別の機器システム１０には、機器Ａを最大数分設置していないユニットが含まれるため、機器Ａの台数の合計は５台となっている。
【００５０】
同様に、図３に示す階層構造データ３００の例によれば、制御プログラムが適用されうる機器システムは、機器Ｂを最大６台設置することが可能である（各ユニットに、機器Ｂが最大数分設置された場合）。なお、図１に示した個別の機器システム１０には、機器Ｂを最大数分設置していないユニットが含まれるため、機器Ｂの台数の合計は５台となっている。
【００５１】
同様に、図３に示す階層構造データ３００の例によれば、制御プログラムが適用されうる機器システムは、機器Ｃを最大６４台設置することが可能である。なお、図１に示した個別の機器システム１０は、機器Ｃを４台設置した場合を示している。
【００５２】
上述したように、仕様記述部１２１では、階層構造データ３００に基づいてソースコードを生成する。このため、仕様記述部１２１によれば、階層構造データ３００が網羅する、様々なバリエーションの機器構成を有する機器システムに対して、制御プログラムを適用することができる。
【００５３】
＜仕様記述処理の流れ＞
次に、仕様記述部１２１による仕様記述処理の流れについて説明する。図４は、仕様記述処理の流れを示すフローチャートである。ユーザ１３０からの指示に基づき仕様記述部１２１が起動することで、図３に示す仕様記述処理が実行される。
【００５４】
ステップＳ４０１において、仕様記述部１２１は、階層構造データ格納部１２２より階層構造データ３００を読み出す。
【００５５】
ステップＳ４０２において、仕様記述部１２１は、ユーザ１３０により、各プロセスの処理内容に含まれる各変数の属性が入力された場合に、これを受け付ける。
【００５６】
ステップＳ４０３において、仕様記述部１２１は、ユーザ１３０により、各プロセスの属性が入力された場合に、これを受け付ける。仕様記述部１２１が受け付けるプロセスの属性には、ユーザ１３０により選択された、プロセスに対する固有の表現方法が含まれる。
【００５７】
ステップＳ４０４において、仕様記述部１２１は、ユーザ１３０により、各プロセスの処理内容に含まれる機器の変数に対する固有の表現方法が入力された場合に、これを受け付ける。仕様記述部１２１では、所定の指定画面を介して、各プロセスの処理内容に含まれる機器の変数に対する固有の表現方法を受け付ける。
【００５８】
ステップＳ４０５において、仕様記述部１２１は、ユーザ１３０により、各プロセスの処理内容が記述された場合に、これを受け付ける。仕様記述部１２１が受け付ける処理内容には、各変数（固有の表現方法が記述された機器の変数を含む）が含まれる。また、仕様記述部１２１が受け付ける処理内容には、各条件文（固有の表現方法が記述された条件文を含む）が含まれる。
【００５９】
ステップＳ４０６において、仕様記述部１２１は、ステップＳ４０５において処理内容を受け付けた各プロセスについて、各プロセスに対する固有の表現方法に基づいて、処理内容の整合性を判定する。また、仕様記述部１２１は、整合性についての判定結果をユーザ１３０に出力する。これにより、ユーザ１３０は、対応するプロセスの処理内容を修正する。
【００６０】
ステップＳ４０７において、仕様記述部１２１は、ユーザ１３０からソースコードの生成指示が入力されたか否かを判定する。ステップＳ４０７において、ソースコードの生成指示が入力されていないと判定した場合には（ステップＳ４０７においてＮｏの場合には）、仕様記述処理を終了する。
【００６１】
一方、ステップＳ４０７において、ソースコードの生成指示が入力されたと判定した場合には、ステップＳ４０８に進む。
【００６２】
ステップＳ４０８において、仕様記述部１２１は、補完処理を行う。ここでいう補完処理には、
・固有の表現方法が記述されたプロセスを、当該固有の表現方法により特定される要素単位と同種別の要素単位の最大数に応じた数のプロセスに展開すること、
・固有の表現方法が記述された機器の変数に、同種別の複数の機器のいずれかまたは全ての機器を対象として算出した統計量を代入する構成とすること、
・固有の表現方法が記述された条件文が含まれるプロセスにおいて、当該条件文を、同種別の要素単位のいずれかまたは全てを対象とした条件文に展開すること、
が含まれる。
【００６３】
ステップＳ４０９において、仕様記述部１２１は、補完処理が行われた各プロセスについて、ソースコードを生成した後、仕様記述処理を終了する。
【００６４】
＜仕様記述部の機能構成＞
次に、仕様記述部１２１の機能構成について説明する。図５は、仕様記述部の機能構成の一例を示す図である。図５に示すように、仕様記述部１２１は、記述部５０１、判定部５０２、生成部５０３を有する。
【００６５】
記述部５０１は受付工程を実行する。具体的には、記述部５０１は、
・プロセスに対する固有の表現方法、
・プロセスの処理内容に含まれる機器の変数に対する固有の表現方法、
・プロセスの処理内容に含まれる条件文に対する固有の表現方法、
を選択可能な機能として、ユーザ１３０に提供するとともに、ユーザ１３０により、
・各変数の属性、
・各プロセスの属性（プロセスに対する固有の表現方法を含む）、
・機器の変数に対する固有の表現方法、
・各プロセスの処理内容（条件文に対する固有の表現方法を含む）、
等が記述または選択された場合に、これを受け付ける。
【００６６】
また、記述部５０１は、各プロセスの処理内容を、判定部５０２に通知する。更に、記述部５０１は、ユーザ１３０よりソースコードの生成指示が入力された場合に、各プロセスの処理内容を、生成部５０３に通知する。
【００６７】
判定部５０２は判定工程を実行する。具体的には、判定部５０２は、記述部５０１から各プロセスの処理内容が通知されると、プロセスに対する固有の表現方法に基づいて、通知されたプロセスの処理内容の整合性を判定する。なお、判定部５０２では、整合性を判定する際、階層構造データ格納部１２２に格納された階層構造データ３００を参照する。また、判定部５０２は、整合性がないと判定した場合、判定結果をユーザ１３０に報知する。
【００６８】
生成部５０３は生成工程を実行する。具体的には、生成部５０３は、記述部５０１からプロセスの処理内容が通知されると、固有の表現方法（プロセス、機器の変数、条件文）に基づいて補完処理を行ったうえで、ソースコードを生成する。
【００６９】
＜プロセスに対する固有の表現方法の具体例＞
次に、プロセスに対する固有の表現方法の具体例として、
・各変数の属性、
・固有の表現方法が記述されたプロセスの処理内容、
・プロセスに対する固有の表現方法を受け付けた場合の補完処理、
について説明する。なお、以下の具体例では、機器システム１０が空調システムであり、機器Ａが圧縮機、機器Ｂが熱交換器、機器Ｃが室内機であるとして、説明を行う。
【００７０】
（１）プロセスに対する固有の表現方法の具体例１
はじめに、プロセスに対する固有の表現方法の具体例１について説明する。図６は、プロセスに対する固有の表現方法の具体例を示す第１の図である。図６において、変数属性情報６０１は、ユーザ１３０により選択される各変数の属性の一例である。
【００７１】
図６に示すように、変数属性情報６０１は、情報の項目として、"変数"と"要素単位"とを含む。"変数"には、変数名が記述される。また、"要素単位"には、"変数"がいずれの要素単位（システム、ユニット、各種別の機器）の変数であるかが、ユーザ１３０の選択に基づき記述される。変数属性情報６０１は、"圧縮機変数Ｘ"が、圧縮機ごとに決まる変数であることを示している。
【００７２】
ここで、変数属性情報６０１が記述された状態で、仕様記述部１２１の記述部５０１が、プロセスに対する固有の表現方法として、"要素単位：圧縮機"を受け付けたとする。また、仕様記述部１２１の記述部５０１が、"圧縮機変数Ｘ"が記述されたプロセス６１１の処理内容を受け付けたとする。
【００７３】
この場合、仕様記述部１２１の生成部５０３では、ソースコードを生成する際、プロセス６１１を、システムに含まれる圧縮機の最大数に応じた数のプロセスに展開する（符号６２１参照）。なお、符号６２１において、"圧縮機変数Ｘ．"、"圧縮機センサＹ．"の後に付された添え字は、いずれの圧縮機の変数、または、いずれの圧縮機のセンサであるかを示している。例えば、添え字＝"１．１"が付された変数またはセンサは、圧縮機１．１の変数またはセンサであることを示している。ただし、圧縮機１．１は、上述したように、ユニット１に属する１番目の圧縮機であることを示している。
【００７４】
具体的には、階層構造データ３００によれば、システムに含まれる圧縮機の最大数は、"６"であることから、仕様記述部１２１の生成部５０３では、６個のプロセスに展開する。また、仕様記述部１２１の生成部５０３では、それぞれの"圧縮機変数Ｘ"に、対応する値（図６の例では、圧縮機センサの値を２倍した値）を代入する。
【００７５】
このように、プロセスに対する固有の表現方法を受け付け、補完処理を実行したうえでソースコードを生成する構成とすることで、ユーザ１３０は、プロセスの処理内容を簡潔に記述することができる。
【００７６】
（２）プロセスに対する固有の表現方法の具体例２
次に、プロセスに対する固有の表現方法の具体例２について説明する。図７は、プロセスに対する固有の表現方法の具体例を示す第２の図である。図７において、変数属性情報７０１は、ユーザ１３０により選択される各変数の属性の一例であり、図６で説明した変数属性情報６０１と同様である。
【００７７】
ただし、図７の変数属性情報７０１は、"ユニット変数Ｘ"が、ユニットごとに決まる変数であることを示している。
【００７８】
ここで、図６と同様に、変数属性情報７０１が記述された状態で、仕様記述部１２１の記述部５０１が、プロセスに対する固有の表現方法として、"要素単位：ユニット"を受け付けたとする。また、仕様記述部１２１の記述部５０１が、"ユニット変数Ｘ"が記述されたプロセス７１１の処理内容を受け付けたとする。
【００７９】
この場合、仕様記述部１２１の生成部５０３では、ソースコードを生成する際、プロセス７１１を、システムに含まれるユニットの最大数に応じた数のプロセスに展開する（符号７２１参照）。
【００８０】
具体的には、階層構造データ３００によれば、システムに含まれるユニットの最大数は、"３"であることから、仕様記述部１２１の生成部５０３では、３個のプロセスに展開する。また、仕様記述部１２１の生成部５０３では、それぞれの"ユニット変数Ｘ"に、対応する値（図７の例では、ユニットセンサの値を２倍した値）を代入する。
【００８１】
このように、プロセスに対する固有の表現方法を受け付け、補完処理を実行したうえでソースコードを生成する構成とすることで、ユーザ１３０は、プロセスの処理内容を簡潔に記述することができる。
【００８２】
＜機器の変数に対する固有の表現方法の具体例＞
次に、プロセスの処理内容に含まれる機器の変数に対する固有の表現方法の具体例として、
・機器の変数に対する固有の表現方法を受け付ける指定画面、
・固有の表現方法が記述された機器の変数が含まれるプロセスの処理内容、
・機器の変数に対する固有の表現方法を受け付けた場合の補完処理、
について説明する。
【００８３】
（１）機器の変数の算出その１
図８Ａは、機器の変数に対する固有の表現方法の具体例を示す第１の図である。図８Ａに示すように、仕様記述部１２１の記述部５０１では、要素単位が圧縮機の変数に対する固有の表現方法を、例えば、ユニット統計量算出フォーマットの指定画面８１１を介して受け付ける。
【００８４】
ユニット統計量算出フォーマットの指定画面８１１には、機器の変数の名称を入力する入力欄８１１＿１が含まれる。図８Ａの例は、入力欄８１１＿１に"ユニット内の運転中の圧縮機の圧縮機回転数の最大値"が入力された様子を示している。
【００８５】
また、ユニット統計量算出フォーマットの指定画面８１１には、システムかユニットかを指定する指定欄８１１＿２、運転状況を指定する指定欄８１１＿３が含まれる。更に、ユニット統計量算出フォーマットの指定画面８１１には、算出対象の変数を指定する指定欄８１１＿４、統計量の算出方法を指定する指定欄８１１＿５が含まれる。
【００８６】
図８Ａの例は、指定欄８１１＿２において"ユニット内"が指定され、指定欄８１１＿３において"運転中"が指定され、指定欄８１１＿４において"圧縮機回転数"が指定され、指定欄８１１＿５において"最大値"が指定された様子を示している。なお、入力欄８１１＿１は、指定欄８１１＿２〜８１１＿５においてそれぞれ指定された内容に基づいて、自動的に入力されるものとする。
【００８７】
図８Ａの例によれば、
・ユニット内の各圧縮機であって、運転中の各圧縮機の回転数を取得し、
・取得した各圧縮機の回転数の中で、最大の回転数を識別する、
ことで、"ユニット内の運転中の圧縮機の圧縮機回転数の最大値"が算出される。
【００８８】
ここで、プロセス８１２の処理内容として、ユーザ１３０が、機器の変数に対する固有の表現方法を含む、"Ｘ＝ユニット内の運転中の圧縮機の圧縮機回転数の最大値"を記述したとする。
【００８９】
この場合、仕様記述部１２１の生成部５０３では、ユニット内の運転中の全ての圧縮機を対象に、回転数を取得し、最大の回転数を識別することで補完処理を行う。
【００９０】
具体的には、仕様記述部１２１の生成部５０３では、ユニットｊの場合にあっては、ユニットｊ内の圧縮機１．ｊ、圧縮機２．ｊの運転中の回転数の中で最大の回転数を識別し、"ユニット内の運転中の圧縮機の圧縮機回転数の最大値"に代入する構成とする。なお、階層構造データ３００の場合にあっては、ｊには、"１"、"２"、"３"のいずれかの数字が入るものとする。
【００９１】
（２）機器の変数の算出その２
図８Ｂは、機器の変数に対する固有の表現方法の具体例を示す第２の図である。図８Ｂに示すように、仕様記述部１２１の記述部５０１では、要素単位が圧縮機の変数に対する固有の表現方法を、例えば、圧縮機統計量算出フォーマットの指定画面８２１を介して受け付ける。
【００９２】
圧縮機統計量算出フォーマットの指定画面８２１には、機器の変数の名称を入力する入力欄８２１＿１が含まれる。図８Ｂの例は、入力欄８２１＿１に"システム内の運転中の圧縮機の圧縮機回転数の最大値"が入力された様子を示している。
【００９３】
また、圧縮機統計量算出フォーマットの指定画面８２１には、システムかユニットかを指定する指定欄８２１＿２、運転状況を指定する指定欄８２１＿３が含まれる。更に、圧縮機統計量算出フォーマットの指定画面８２１には、算出対象の変数を指定する指定欄８２１＿４、統計量の算出方法を指定する指定欄８２１＿５が含まれる。
【００９４】
図８Ｂの例は、指定欄８２１＿２において"システム内"が指定され、指定欄８２１＿３において"運転中"が指定され、指定欄８２１＿４において"圧縮機回転数"が指定され、指定欄８２１＿５において"最大値"が指定された様子を示している。なお、入力欄８２１＿１は、指定欄８２１＿２〜８２１＿５においてそれぞれ指定された内容に基づいて、自動的に入力されるものとする。
【００９５】
図８Ｂの例によれば、
・システム内の各圧縮機であって、運転中の各圧縮機の回転数を取得し、
・取得した各圧縮機の回転数の中で、最大の回転数を識別する、
ことで、"システム内の運転中の圧縮機の圧縮機回転数の最大値"が算出される。
【００９６】
ここで、プロセス８２２の処理内容として、ユーザ１３０が、機器の変数に対する固有の表現方法を含む、"Ｘ＝システム内の運転中の圧縮機の圧縮機回転数の最大値"を記述したとする。
【００９７】
この場合、仕様記述部１２１の生成部５０３では、システム内の運転中の全ての圧縮機を対象に、回転数を取得し、最大の回転数を識別することで補完処理を行う。
【００９８】
具体的には、仕様記述部１２１の生成部５０３では、システム内の圧縮機１．１、１．２、２．１、２．２、３．１、３．２の運転中の回転数の中で最大の回転数を識別し、"システム内の運転中の圧縮機の圧縮機回転数の最大値"に代入する構成とする。なお、上述したように、機器システム１０の場合、圧縮機３．２は存在しないため、圧縮機３．２運転中での圧縮機回転数は"Ｎｕｌｌ"と識別される。
【００９９】
（３）機器の変数の算出その３
図８Ｃは、機器の変数に対する固有の表現方法の具体例を示す第３の図である。図８Ｃに示すように、仕様記述部１２１の記述部５０１では、要素単位が室内機の変数に対する固有の表現方法を、例えば、室内機統計量算出フォーマットの指定画面８３１を介して受け付ける。
【０１００】
室内機統計量算出フォーマットの指定画面８３１には、機器の変数の入力を記述する入力欄８３１＿１が含まれる。図８Ｃの例は、入力欄８３１＿１に"冷房運転中の室内機の測定温度の最大値"が入力された様子を示している。
【０１０１】
また、室内機統計量算出フォーマットの指定画面８３１には、温度調節のモードを指定する指定欄８３１＿２、運転状況を指定する指定欄８３１＿３、算出対象の変数を指定する指定欄８３１＿４、統計量の算出方法を指定する指定欄８３１＿５が含まれる。
【０１０２】
図８Ｃの例は、指定欄８３１＿２において、"冷房"が指定され、指定欄８３１＿３において"運転中"が指定され、指定欄８３１＿４において"測定温度"が指定され、指定欄８３１＿５において"最大値"が指定された様子を示している。なお、入力欄８３１＿１は、指定欄８３１＿２〜８３１＿５においてそれぞれ指定された内容に基づいて、自動的に入力されるものとする。
【０１０３】
図８Ｃの例によれば、
・冷房モードで運転中の各室内機の測定温度を取得し、
・取得した各室内機の測定温度の中で、最大の測定温度を識別する、
ことで、"冷房運転中の室内機の測定温度の最大値"が算出される。
【０１０４】
ここで、プロセス８３２の処理内容として、ユーザ１３０が、機器の変数に対する固有の表現方法を含む、"Ｘ＝冷房運転中の室内機の測定温度の最大値"を記述したとする。
【０１０５】
この場合、仕様記述部１２１の生成部５０３では、システム内の冷房運転中の全ての室内機を対象に、測定温度を取得し、最大の測定温度を識別することで補完処理を行う。
【０１０６】
具体的には、仕様記述部１２１の生成部５０３では、システム内の室内機１〜６４の冷房運転中の測定温度の中で、最大の測定温度を識別し、"冷房運転中の室内機の測定温度の最大値"に代入する構成とする。なお、上述したように、機器システム１０の場合、室内機５〜６４は存在しないため、室内機５〜６４の冷房運転中の測定温度は"Ｎｕｌｌ"と識別される。
【０１０７】
＜条件文に対する固有の表現方法の具体例＞
次に、条件文に対する固有の表現方法の具体例として、
・固有の表現方法が記述された条件文が含まれるプロセスの処理内容、
・条件文に対する固有の表現方法を受け付けた場合の補完処理、
について説明する。図９は、条件文に対する固有の表現方法の具体例を示す図である。
【０１０８】
図９の例に示すように、プロセス９００の処理内容として、ユーザ１３０が、条件文に対する固有の表現方法である、"すべてのユニット"、"すべての圧縮機"を記述したとする。
【０１０９】
この場合、仕様記述部１２１の生成部５０３では、記述された条件文を、当該固有の表現方法により特定される圧縮機（すべてのユニットに含まれるすべての圧縮機）を対象とした条件文に展開することで補完処理を行う。
【０１１０】
具体的には、図９の場合、プロセス９００の要素単位が"システム"であって、処理内容として"すべてのユニット"が記述されている。このため、仕様記述部１２１の生成部５０３では、ユニット変数を含む条件文を、システムに属するユニットの最大数（３）に応じた数の条件文に展開する。
【０１１１】
また、図９の場合、プロセス９００の要素単位が"システム"であって、処理内容として"すべてのユニット"の下位に、"すべての圧縮機"が記述されている。このため、仕様記述部１２１の生成部５０３では、まず、ユニット変数を含む条件文を、ユニットの最大数（３）に応じた数の条件文に展開し、更に、その下位で、圧縮機変数を含む条件文を、ユニット内の圧縮機の最大数（２）に応じた数の条件文に展開する。
【０１１２】
結果として、仕様記述部１２１の生成部５０３では、最下位の圧縮機変数を含む条件文を、システムに属する圧縮機の最大数（３×２＝６）に応じた数の条件文に展開する（符号９１１〜９１６、符号９２１〜９２６参照）。
【０１１３】
ここで、最大数に応じた数の条件文を展開した場合、各条件文に含まれる圧縮機は、必ずしも存在しているとは限られない。そこで、仕様記述部１２１の生成部５０３では、圧縮機の有無を含む条件文を付加する（符号９２１〜９２６参照）。
【０１１４】
同様に、最大数に応じて条件文を展開した場合、各条件文に含まれるユニットは、必ずしも存在しているとは限られない。そこで、仕様記述部１２１の生成部５０３では、ユニットの有無を含む条件文を付加する（符号９３１〜９３３参照）。
【０１１５】
＜判定部の処理の具体例＞
次に、判定部５０２の処理の具体例について説明する。図１０は、判定部の処理の具体例を示す図である。上述したように、判定部５０２は、固有の表現方法に基づいて、各プロセスの処理内容の整合性を判定する。
【０１１６】
図１０においてプロセス１０００は、記述部５０１から通知され、プロセスに対する固有の表現方法として、"要素単位：システム"が記述されたプロセスを示している。プロセス１０００の処理内容に記述された条件文によれば、システム変数が１０より大きく、かつ、ユニット変数が３０より大きい場合に、システムの状態が状態Ａから状態Ｂに遷移する。
【０１１７】
ここで、階層構造データ３００に示したように、システムには、複数のユニット（最大３個のユニット）が含まれる。このため、プロセスに対する固有の表現方法として、"要素単位：システム"が記述された状態では、条件文に含まれる"ユニット変数＞３０"なる記述が、最大３個のユニットのうちのいずれのユニットであるかが不明である。
【０１１８】
判定部５０２では、このような場合に、整合性がないと判定し、判定結果をユーザ１３０に報知する。図１０において、エラーメッセージ１００３は、判定部５０２によりユーザ１３０に報知された判定結果を示している。
【０１１９】
なお、エラーメッセージ１００３が報知された場合、ユーザ１３０は、例えば、以下のような方法によりプロセス１０００を修正する。
・プロセス１０００に対する固有の表現方法（"要素単位：システム"）を"要素単位：ユニット"に修正する（プロセス１０１参照）。
・プロセス１０００の処理内容に含まれる条件文に、条件文に対する固有の表現方法である、"すべてのユニット"を付加する（プロセス１０２０参照）。
【０１２０】
プロセス１０１０によれば、各ユニットがそれぞれのユニット変数について、"ユニット変数＞３０"を判定することが明確になるため、エラーが解消されることになる。
【０１２１】
また、プロセス１０２０によれば、システム内の全てのユニットのユニット変数について、"ユニット変数＞３０"を判定することが明確になるため、エラーが解消することになる。
【０１２２】
＜まとめ＞
以上の説明から明らかなように、第１の実施形態に係る仕様記述プログラムが実行されることで、仕様記述部は、
・複数の機器それぞれにおいて実行される複数のプロセスについて、処理内容を受け付ける。
・複数の機器のうちの同種別の複数の機器を対象とした処理内容であることを示す固有の表現方法を、選択可能な機能としてユーザに提供する。
【０１２３】
このように、固有の表現方法を選択可能な機能として提供する構成とすることで、仕様記述部によれば、ユーザは、様々なバリエーションの機器構成が想定される場合でも、各プロセスの処理内容を簡潔に記述することができる。
【０１２４】
つまり、第１の実施形態によれば、複数の機器それぞれにおいて実行される複数のプロセスを設計する際、各プロセスの処理内容を簡潔に記述することが可能な仕様記述プログラム及び仕様記述方法を提供することができる。
【０１２５】
［第２の実施形態］
上記第１の実施形態では、機器システムが、システム、ユニット、各種別の機器を要素単位とする階層構造により構成されるものとして説明したが、機器システムの階層構造を構成する要素単位はこれに限定されない。
【０１２６】
また、上記第１の実施形態では、システム、ユニット、各種別の機器の最大数を、図３の階層構造データ３００に示したが、システム、ユニット、各種別の機器の最大数は、これに限定されない。
【０１２７】
また、上記第１の実施形態では、統計量として最大値を挙げたが、統計量はこれに限定されず、最小値、平均値、分散値等、他の統計量が算出されてもよい。
【０１２８】
以上、実施形態を説明したが、特許請求の範囲の趣旨及び範囲から逸脱することなく、形態や詳細の多様な変更が可能なことが理解されるであろう。
【符号の説明】
【０１２９】
１０                    ：機器システム
１１０                  ：設計作業支援装置
１２０                  ：設計作業支援機能
１２１                  ：仕様記述部
１２２                  ：階層構造データ格納部
３００                  ：階層構造データ
５０１                  ：記述部
５０２                  ：判定部
５０３                  ：生成部
【図１】
0006974772.tif 000002
【図２】
0006974772.tif 000003
【図３】
0006974772.tif 000004
【図４】
0006974772.tif 000005
【図５】
0006974772.tif 000006
【図６】
0006974772.tif 000007
【図７】
0006974772.tif 000008
【図８Ａ】
0006974772.tif 000009
【図８Ｂ】
0006974772.tif 000010
【図８Ｃ】
0006974772.tif 000011
【図９】
0006974772.tif 000012
【図１０】
0006974772.tif 000013