【文献】
小尾俊之 外3名,50SMにおけるエディタ,構造エディタ,日本,共立出版株式会社,1988年 6月 1日,初版,p.147−163
(58)【調査した分野】(Int.Cl.,DB名)
特定のシステムのコンセプトを表現するためのコンセプト部品と前記コンセプトを実現させるために機能の流れに従って構成されたリアライズ部品とを有するコンセプトチャートを所定の入力部及び所定の表示部を用いて作成し、前記コンセプトチャートをPLCの制御プログラムに変換し、前記制御プログラムのシステム適用試験を実施することにより、前記コンセプトチャート上でのプログラム開発を実現させてPLCの制御プログラムを作成する、プログラム作成方法であって、
前記コンセプトチャートを作成するためのチャート作成手段と、前記チャート作成手段で作成した前記コンセプトチャートを前記制御プログラムに変換するチャート変換手段と、を備えるプログラム開発支援装置を使用し、
前記チャート作成手段は、オペレータが操作可能な入力部と、前記コンセプトチャートの作成過程を表示するための表示部と、オペレータによる前記入力部の操作に基づいて前記コンセプトチャートを構成する前記コンセプト部品及び前記リアライズ部品を含む複数の部品を前記表示部に表示するとともに前記部品の各々に関する情報と前記部品同士の関係を規定する情報とを前記表示部に表示する部品情報表示手段と、を有するものであり、
前記チャート変換手段は、前記チャート作成手段で作成した前記コンセプトチャートをFA制御言語で記述された第一の制御プログラムに変換する第一変換手段と、前記第一変換手段で得た前記第一の制御プログラムを、C言語で記述された第二の制御プログラムに変換する第二変換手段と、を有するものである、プログラム作成方法。
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところが、ラダープログラムは、電気回路についての専門的な知識を有する電気技術者によって作成されるため、システム開発に携わる他の技術者(仕様技術者、ハードウェア技術者、ソフトウェア技術者等)にとっては理解が困難なものであった。このため、ラダープログラムを採用すると、システム開発時における技術者間での意思疎通が困難となって連携試験時にしわ寄せが来る可能性が高くなる。また、ラダープログラム作成の際には、ソフトウェア作成の際に採用される種々の手法(機能の分担開発、再利用、構造化設計等)を利用することができないため、ラダープログラム自体の開発性能に限界があり、大規模で複雑なシステムを構築することが困難となっていた。
【0007】
このような問題を解決するため、近年においては、ラダー言語に代わる他のプログラミング言語(例えばBASICやC言語等)で作成したPLC制御用のプログラムが採用されているが、かかる場合においても、採用したプログラミング言語に精通した専門の要員が必要となる。また、近年においては、例えばプログラマブルユニット等のようなPLCに代わる他の制御装置が提案されているが、このようなユニットを開発する際にも、ハードウェアに精通しかつ高級言語を理解することができる専門の開発要員が必要となる。
【0008】
本発明は、かかる事情に鑑みてなされたものであり、システム開発に携わる要員の誰もが容易にかつ迅速に巨大で複雑なシステムを構築することができるようなシステム開発支援ツールを提供することを目的とする。
【課題を解決するための手段】
【0009】
前記目的を達成するため、本発明に係るプログラム開発支援装置は、特定のシステムのコンセプトを表現するためのコンセプト部品とコンセプトを実現させるために機能の流れに従って構成されたリアライズ部品とを有するコンセプトチャートを作成するためのチャート作成手段と、チャート作成手段で作成したコンセプトチャートを制御プログラムに変換するチャート変換手段と、を備えるプログラム開発支援装置であって、チャート作成手段は、オペレータが操作可能な入力部と、コンセプトチャートの作成過程を表示するための表示部と、オペレータによる入力部の操作に基づいて、コンセプトチャートを構成するコンセプト部品及びリアライズ部品を含む複数の部品を表示部に表示するとともに、部品の各々に関する情報と部品同士の関係を規定する情報とを表示部に表示する部品情報表示手段と、を有するものである。
【0010】
かかる構成を採用すると、特定のシステムのコンセプト自体及びそのコンセプトを実現させるための機能の流れを視覚的・直感的に理解可能なコンセプトチャートを用いて、そのシステムの制御プログラムを開発することができるので、専門性の異なった技術者同志が容易に意思疎通を図ることができる。従って、システムの開発が全体的にスムーズとなり、連携試験時にしわ寄せが来る可能性を低減させることができる。この結果、複雑で大規模なシステムの開発を、容易にかつ迅速に低コスト・高品質で実現させることが可能となる。
【0011】
前記プログラム開発支援装置において、コンセプトを具体化した複数のサブコンセプトを階層的に表現するための複数のサブコンセプト部品を有するコンセプトチャートを採用することもできる。
【0012】
かかる構成を採用すると、抽象的なコンセプトを具体的なサブコンセプトに分割し、サブコンセプトの各々を実現させるようなコンセプトチャートを作成することができる。すなわち、あるコンセプトを実現するための詳細なコンセプト(サブコンセプト)を階層的に洗い出すことができ、人間の思考を直接的に表現することができるため、誰もが容易に理解することが可能なコンセプトチャートを作成することができる。
【0013】
また、前記プログラム開発支援装置において、制御プログラムをコンセプトチャートに逆変換する逆変換手段を備えることもできる。
【0014】
かかる構成を採用すると、設計と実装とのずれを確認することができるので、メンテナンス性を向上させることができ、移植性能を高めることが可能となる。また、例えば、ソフトウェア技術者が制御プログラムを変更した場合に、その変更結果を他の技術者(仕様技術者やハードウェア技術者)がコンセプトチャートの形式で確認することができる。従って、システムの設計変更及びその確認がきわめて容易となる。
【0015】
また、前記プログラム開発支援装置において、チャート作成手段で作成したコンセプトチャートを、FA制御言語で記述された第一の制御プログラムに変換する第一変換手段と、第一変換手段で得た第一の制御プログラムを、C言語で記述された第二の制御プログラムに変換する第二変換手段と、を有するチャート変換手段を採用することができる。ここで、FA制御言語とは、コンセプトチャートとC言語との中間に位置し日本語で理解可能な新規なプログラミング言語である。
【0016】
かかる構成を採用すると、コンセプトチャートを、比較的理解し易いFA制御言語及びC言語に変換することができるので、従来PLC分野で用いられていた専門の要員にしか理解できないラダー言語等を用いる必要がない。従って、専門の開発要員が不要となるため、システムの設計・開発に要するコストを著しく低減させることが可能となる。
【0017】
また、本発明に係るプログラム作成方法は、特定のシステムのコンセプトを表現するためのコンセプト部品とコンセプトを実現させるために機能の流れに従って構成されたリアライズ部品とを有するコンセプトチャートを用いて、システムの制御プログラムを作成するプログラム作成方法であって、オペレータによる所定の入力部の操作に基づいて、コンセプトチャートを構成するコンセプト部品及びリアライズ部品を含む複数の部品と、部品の各々に関する情報と、部品同士の関係を規定する情報と、を所定の表示部に表示してコンセプトチャートを作成するチャート作成工程と、チャート作成工程で作成したコンセプトチャートを制御プログラムに変換するチャート変換工程と、を備えるものである。
【0018】
かかる方法を採用すると、特定のシステムのコンセプト自体及びそのコンセプトを実現させるための機能の流れを視覚的・直感的に理解可能なコンセプトチャートを用いて、そのシステムの制御プログラムを作成することができるので、専門性の異なった技術者同志が容易に意思疎通を図ることができる。従って、システムの開発が全体的にスムーズとなり、連携試験時にしわ寄せが来る可能性を低減させることができる。この結果、複雑で大規模なシステムの開発を、容易にかつ迅速に低コスト・高品質で実現させることが可能となる。
【0019】
前記プログラム作成方法において、チャート変換工程で得た制御プログラムのシステム適用試験を実施する試験工程と、システム適用試験の結果に基づいて制御プログラムを修正すべきか否かを判定する修正判定工程と、を備え、修正判定工程において制御プログラムを修正すべきであると判定した場合に、再度チャート作成工程及びチャート変換工程を経ることにより制御プログラムを修正することもできる。
【0020】
かかる方法を採用すると、作成した制御プログラムに不具合があった場合においても、コンセプトチャートを用いることにより容易にかつ迅速に制御プログラムを修正することが可能となる。
【発明の効果】
【0021】
本発明によれば、システム開発に携わる要員の誰もが容易にかつ迅速に巨大で複雑なシステムの構築を実現させることができるようなシステム開発支援ツールを提供することが可能となる。
【発明を実施するための形態】
【0023】
以下、図面を参照して、本発明の実施形態に係るプログラム開発支援装置について説明する。
【0024】
まず、
図1〜
図6を用いて、本実施形態に係るプログラム開発支援装置1の構成について説明する。
【0025】
プログラム開発支援装置1は、
図1に示すように、各種情報処理を行う中央情報処理装置10と、中央情報処理装置10に接続された入力部20及び表示部30と、を備えている。本装置1は、コンセプトチャートを採用することにより、システム開発に携わる技術者によるプログラムの開発を支援するものである。なお、コンセプトチャートとは、特定のシステムのコンセプトを表現しかつそのコンセプトを実現させるためのチャート(図表)であり、コンセプト自体を表現するコンセプト部品と、コンセプトを構成する複数のサブコンセプトを表現する複数のサブコンセプト部品と、コンセプト及びサブコンセプトを実現させるためのリアライズ部品と、を含む複数の部品から構成されている。
【0026】
入力部20は、マウスやキーボード等を含む各種ポインティングデバイスであり、オペレータが中央情報処理装置10に対して各種情報の入力を行う際に使用される。オペレータは、入力部20を用いて、コンセプトチャートを構成する部品(コンセプト部品やリアライズ部品)の選択入力を行うことができるとともに、これら部品に関する各種情報や部品同士の関係を規定する情報を入力することができる。表示部30は、
図2に示すように、中央情報処理装置10から出力される画像信号を受けて、各種画像を表示するものである。表示部30には、
図3〜
図6に示すように、入力部20により選択入力されたコンセプトチャートを構成する部品が表示される。
【0027】
中央情報処理装置10は、CPU、ROM、RAM、HDD、入出力インタフェース等を備えるコンピュータシステムであり、ROMに記録された各種制御プログラムをCPUが読み込んで所望の演算を実行することにより、種々の処理や制御を行う。具体的には、中央情報処理装置10は、入力部20からの入力信号を受けて、表示部30に表示すべき画像信号を表示部30に出力することにより、入力部20を介して選択入力されたコンセプトチャートを構成する部品を表示部30に表示する。また、中央情報処理装置10は、入力部20からの入力信号を受けて、表示された部品の各々に関する情報や、表示された部品同士の関係を規定する情報を表示する。すなわち、中央情報処理装置10は、本発明における部品情報表示手段として機能する。また、中央情報処理装置10、入力部20及び表示部30により、本発明におけるチャート作成手段が構成される。
【0028】
また、中央情報処理装置10は、作成したコンセプトチャートを制御プログラムに変換する。具体的には、中央情報処理装置10は、作成したコンセプトチャートを、FA制御言語で記述された制御プログラム(第一の制御プログラム)に変換する。また、中央情報処理装置10は、FA制御言語で記述された制御プログラムを、C言語で記述された制御プログラム(第二の制御プログラム)に変換する。すなわち、中央情報処理装置10は、チャート変換手段(第一変換手段及び第二変換手段)として機能する。 また、中央情報処理装置10は、FA制御言語又はC言語で記述された制御プログラムをコンセプトチャートに逆変換することができる。すなわち、中央情報処理装置10は、逆変換手段としても機能する。
【0029】
ここで、
図2〜
図6を用いて、本実施形態に係るプログラム開発支援装置1におけるコンセプトチャートの作成方法の一例について説明する。
【0030】
まず、オペレータは、
図2に示すような表示部30に表示されたツールバー31(コンセプトチャートを構成する部品に対応するボタン群)の中から、入力部20を用いて、貼り付けたい部品のボタンを選択する。例えば、オペレータが入力部20(マウス)を用いてツールバー31の中の「開始部品」ボタンをクリックすると、その入力信号を受けた中央情報処理装置10は、表示部30の下部に「部品選択モード:開始部品」という文字を表示する。このような「部品選択モード」の状態で、オペレータが入力部20(マウス)を用いて表示部30の中央部にあるチャート作成画面32をクリックすると、その入力信号を受けた中央情報処理装置10は、
図3に示すように、表示部30のチャート作成画面32に開始部品Sを貼り付ける(表示する)。この時点で、「部品選択モード」は解除される。
【0031】
次いで、オペレータが、表示部30のチャート作成画面32に貼り付けられた(表示された)開始部品Sをクリックすると、その入力信号を受けた中央情報処理装置10は、
図4に示すように、チャート作成画面32の右側にあるプロパティ画面33に開始部品Sのプロパティリストを表示する。オペレータは、入力部20を用いて、このプロパティリストに、開始部品Sのプロパティを入力する。例えば、オペレータが入力部20(キーボード)を用いてプロパティリストの「Summary」の欄に「プログラム開始」と入力すると、その入力信号を受けた中央情報処理装置10は、
図4に示すように、チャート作成画面32の開始部品Sの上方に「プログラム開始」と表示する。
【0032】
オペレータは、上記と同様の手順で、
図5に示すように、表示部30のチャート作成画面32に別の部品(例えばコンセプト部品C
1)を貼り付けることができる。この後、オペレータは、入力部20(マウス)を用いて、開始部品Sとコンセプト部品C
1とを線で結ぶ。具体的には、オペレータは、チャート作成画面32の開始部品Sの上にマウスポインタを配置した状態でマウスの左ボタンを押し、押したままマウスポインタをコンセプト部品C
1へと移動させた後、左ボタンを離す。このような入力信号を受けた中央情報処理装置10は、
図6に示すように、開始部品Sとコンセプト部品C
1とを結ぶ線Lを表示する。以下、同様の手順で、コンセプトチャートを作成することができる。
【0033】
次いで、
図7〜
図15を用いて、特定のシステムに適用される制御プログラムを作成する方法を説明する。本実施形態においては、タンク内の水温を一定に保つように水温を制御する水温制御システム100に適用される制御プログラムを作成する方法について説明する。
【0034】
図7は、本実施形態で作成される制御プログラムが適用される水温制御システム100の構成図である。水温制御システム100は、水を貯留するタンク110と、タンク110内の水温を検出する水温センサ120と、タンク110内の水を加温するヒータ130と、タンク110内の水温の目標値(設定温度)を設定するための操作ボタン(UP/DOWNボタン)や設定温度を表示する表示部を有する操作パネル140と、タンク110内の水温を一定(操作パネル140での設定温度)に保つようにヒータ130をON/OFF制御するコントローラ150と、を備えている。
【0035】
本実施形態では、水温制御システム100のコンセプトチャートを使用して、コントローラ150の動作を制御するための制御プログラムを作成することとする。一般的には、
図8に示すようなタスク構成図を用いて、水温制御システム100の主要な構成におけるタスクを明確にするが、コンセプトチャートにおいては、後述するコンセプト部品を具現化(リアライズ)して作成されたモジュール部品にタスク属性をプロパティで設定するだけでタスクとして実行される。
【0036】
ここで、「タスク」とは、水温制御システム100のコンセプト(目的・機能)を実現させるために、水温制御システム100の主要な構成が達成すべきサブコンセプトである。操作パネル140におけるタスクは、操作ボタンを押下操作することによりタンク110内の水温の目標値(設定温度)を設定すること(操作パネル制御タスクT
1)である。コントローラ150は、所定時間毎に操作ボタンの状態をチェックして設定温度を更新し、設定温度に変化があった場合には、その変化を水温制御タスクT
3に反映させる。水温センサ120におけるタスクは、所定時間毎にタンク110内の水温を検出すること(水温監視タスクT
2)である。コントローラ150は、水温センサ120を介して所定時間毎にタンク110内の水温を検出し、水温に変化があった場合には、その変化を水温制御タスクT
3に反映させる。コントローラ150におけるタスクは、操作パネル140による設定温度の変化と、水温センサ120で検出されたタンク110内の水温の変化と、に基づいて、ヒータ130を制御すること(水温制御タスクT
3)である。
【0037】
まず、
図9及び
図10に示すように、オペレータは、水温制御システム100のコンセプトを示すコンセプト部品C
1を、プログラム開発支援装置1の表示部30に表示して定義する(コンセプト定義工程:S1)。コンセプト定義工程S1においては、オペレータが、入力部20を用いて、コンセプトチャートを構成する部品群の中からコンセプト部品C
1を選択して入力操作を行う。かかる入力操作を受けた中央情報処理装置10は、表示部30にコンセプト部品C
1を表示する。また、オペレータは、入力部20を用いて、表示したコンセプト部品C
1に関する情報(内容や属性)を入力する。かかる入力操作を受けた中央情報処理装置10は、表示部30にコンセプト部品C
1に関する情報を表示する。例えば、水温制御システム100のコンセプトは「タンク内の水温を一定に制御する」ことであるので、その旨が入力されて表示される。なお、コンセプト定義工程S1においては、コンセプトチャートの開始部品S及び終了部品Eも併せて表示(定義)する。
【0038】
次いで、オペレータは、
図11に示すように、コンセプト定義工程S1で表示したコンセプト部品C
1を、複数のサブコンセプト部品C
2〜C
4に分割する(コンセプト分割工程:S2)。コンセプト分割工程S2においては、オペレータが、入力部20を用いて、コンセプト部品C
1を構成するサブコンセプト部品C
2〜C
4を選択して入力操作を行う。入力操作を受けた中央情報処理装置10は、表示部30にサブコンセプト部品C
2〜C
4を表示する。また、オペレータは、入力部20を用いて、表示したサブコンセプト部品C
2〜C
4に関する情報を入力するとともに、表示したサブコンセプト部品同士の関係を規定する情報を入力する。かかる入力操作を受けた中央情報処理装置10は、表示部30にサブコンセプト部品C
2〜C
4に関する情報を表示するとともに、部品間の関係を規定する情報を表示する。水温制御システム100のサブコンセプトは、前記したタスク(操作パネル制御タスクT
1、水温監視タスクT
2、水温制御タスクT
3)に相当するので、その旨が入力されて項目列挙的に表示される。なお、
図11において、サブコンセプト部品C
2〜C
4は直列的に表示されているが、この直列的関係は時系列的な関係を示すものではない。各サブコンセプト部品C
2〜C
4は、前記したようなモジュールをタスク化する設定を利用することにより、実際は並列的(同時並行的)に実行することができる。
【0039】
次いで、オペレータは、
図12〜
図15に示すように、サブコンセプト部品C
2〜C
4を実現させるためのリアライズ部品を、プログラム開発支援装置1の表示部30に表示する(リアライジング工程:S3)。オペレータは、入力部20を用いて、サブコンセプト部品C
2〜C
4を実現させるためのリアライズ部品を選択して入力操作を行う。かかる入力操作を受けた中央情報処理装置10は、表示部30にリアライズ部品を表示する。また、オペレータは、入力部20を用いて、貼り付けたリアライズ部品に関する情報を入力するとともに、表示したリアライズ部品同士の関係を規定する情報を入力する。かかる入力操作を受けた中央情報処理装置10は、表示部30にリアライズ部品に関する情報やリアライズ部品同士の関係を規定する情報を表示する。
【0040】
<操作パネル制御>
ここで、
図12を用いて、サブコンセプト部品C
2を実現させるためのリアライズ部品R
1〜R
17について具体的に説明する。サブコンセプト部品C
2のサブコンセプトは、操作パネル制御タスクT
1に相当するものである。二個一組で配置されるR
1及びR
2は、反復を表すリアライズ部品であり、これらの間に配置されたリアライズ部品は所定の周期で繰り返し実行される。二個一組で配置されるR
3〜R
12(R
3及びR
4の組、R
5及びR
6の組、R
7及びR
8の組、R
9及びR
10の組、R
11及びR
12の組)は条件を表すリアライズ部品であり、一定の条件を満たした場合に、これらの間に配置されたリアライズ部品が実行される。R
13〜R
17は、各々、実行する内容を具体的に表示するリアライズ部品である。R
13は「現在の設定温度を保存する」ことを実行するものであり、R
14は「設定温度を1℃上げる」ことを実行するものであり、R
15は「設定温度を1℃下げる」ことを実行するものであり、R
16は「設定温度を水温制御に反映させる」ことを実行するものであり、R
17は「所定時間の遅延処理(周期に相当する時間だけ処理を遅れさせること)」を実行するものである。
【0041】
本実施形態においては、水温制御タスクT
3が実行された場合に、R
3及びR
4の間に配置されたリアライズ部品群(R
5〜R
17)が実行される。水温制御タスクT
3が実行された場合には、R
13が実行されて、現在の設定温度が保存される。続いて、操作パネル140の操作ボタンが押下操作された場合に、R
5及びR
6の間に配置されたリアライズ部品群(R
7〜R
10、R
14及びR
15)が実行される。操作ボタンのうちUPボタンが押下操作され、かつ設定温度が上限値以下である場合には、R
7及びR
8の間に配置されたR
14が実行されて、設定温度が1℃上げられる。一方、操作ボタンのうちDOWNボタンが押下操作され、かつ設定温度が下限値以上である場合には、R
9及びR
10の間に配置されたR
15が実行されて、設定温度が1℃下げられる。続いて、設定温度が変更された場合に、R
11及びR
12の間に配置されたR
16が実行されて、設定温度の変更情報が水温制御タスクT
3に通知されて水温制御に反映される。その後R
17が実行されて、所定時間の遅延処理がなされる。
【0042】
<水温監視>
次いで、
図13を用いて、サブコンセプト部品C
3を実現させるためのリアライズ部品R
20〜R
28について具体的に説明する。サブコンセプト部品C
3のサブコンセプトは、水温監視タスクT
2に相当するものである。二個一組で配置されるR
20及びR
21は、反復を表すリアライズ部品であり、これらの間に配置されたリアライズ部品は所定の周期で繰り返し実行される。二個一組で配置されるR
22〜R
25(R
22及びR
23の組、R
24及びR
25の組)は条件を表すリアライズ部品であり、一定の条件を満たした場合に、これらの間に配置されたリアライズ部品が実行される。R
26〜R
28は、各々、実行する内容を具体的に表示するリアライズ部品である。R
26は「現在の水温を保存する」ことを実行するものであり、R
27は「検出された水温(検出温度)を水温制御に反映させる」ことを実行するものであり、R
28は「所定時間の遅延処理(周期に相当する時間だけ処理を遅れさせること)」を実行するものである。
【0043】
本実施形態においては、水温制御タスクT
3が実行されていた場合に、R
22及びR
23の間に配置されたリアライズ部品群(R
24〜R
28)が実行される。水温制御タスクT
3が実行されていた場合には、R
26が実行されて、現在のタンク110内の水温が保存される。続いて、水温センサ120で検出された水温(検出温度)が変更された場合に、R
24及びR
25の間に配置されたR
27が実行されて、検出温度の変更情報が水温制御タスクT
3に通知されて水温制御に反映される。その後R
28が実行されて、所定時間の遅延処理がなされる。
【0044】
<水温制御>
続いて、
図14及び
図15を用いて、サブコンセプト部品C
4を実現させるためのリアライズ部品R
30〜R
44について具体的に説明する。サブコンセプト部品C
4のサブコンセプトは、水温制御タスクT
3に相当するものである。R
30〜R
32は、各々、実行する内容を具体的に表示するリアライズ部品である。R
30は「水温制御を初期化する」ことを実行するものであり、R
31は「メッセージの待機」を実行するものであり、R
32は「受信メッセージをマップする(受信したメッセージを構成する情報を他のリアライズ部品でも参照できるようにする)」ことを実行するものである。二個一組で配置されるR
33及びR
34は、メッセージの振分を表すリアライズ部品であり、メッセージの内容に応じて、これらの間に配置されたリアライズ部品が実行される。R
35、R
36及びR
40は、各々、実行する内容を具体的に表示するリアライズ部品である。R
35は「設定温度を更新する」ことを実行するものであり、R
36は「検出温度を変更する」ことを実行するものであり、R
40は「ヒータを制御する」ことを実行するものである。
【0045】
本実施形態においては、まず、R
30が実行されて、水温制御の初期化(設定温度を下限値に設定するとともに水温を未検出状態とすること)が実現される。続いて、R
31及びR
32が実行されて、メッセージ(操作パネル制御タスクT
1における設定温度の変更情報及び水温監視タスクT
2における検出温度の変更情報)の待機がなされ、メッセージを受信した場合には、待機が解除されて、受信したメッセージを構成する情報が他のリアライズ部品で参照可能となる。その後、受信したメッセージが「設定温度の変更情報」であった場合には、R
33及びR
34の間に配置されたR
35及びR
40が実行されて、設定温度が変更された状態でヒータが制御される。一方、受信したメッセージが「検出温度の変更情報」であった場合には、R
33及びR
34の間に配置されたR
35及びR
40が実行されて、検出温度が変更された状態でヒータが制御される。
【0046】
R
40は、
図15に示すようなリアライズ部品R
41〜R
44によって構成されている。二個一組で配置されるR
41及びR
42は条件を表すリアライズ部品であり、一定の条件を満たした場合に、これらの間に配置されたリアライズ部品が実行される。R
43及びR
44は、各々、実行する内容を具体的に表示するリアライズ部品である。R
43は「ヒータをONにする」ことを実行するものであり、R
44は「ヒータをOFFにする」ことを実行するものである。本実施形態においては、検出温度が設定温度未満であった場合に、R
43が実行されてヒータがONにされ、タンク110内の水が加温される。一方、検出温度が設定温度以上であった場合に、R
44が実行されてヒータがOFFにされ、タンク110内の水が自然冷却される。
【0047】
以上のコンセプト定義工程S1、コンセプト分割工程S2及びリアライジング工程S3を経ることにより、水温制御システム100のコンセプトチャートが作成されることとなる。すなわち、これらの工程群は、本発明におけるチャート作成工程を構成する。このようなコンセプトチャートにより、システム開発に携わる全ての要員が、水温制御システム100のコンセプトを明確に把握することができ、このコンセプトを実現させるための段階的なタスク(サブコンセプト)を認識することができ、さらに、これらサブコンセプトを実現させるための具体的なプロセスを認識することができる。
【0048】
このようなコンセプトチャートを作成した後、オペレータは、入力部20を用いて、コンセプトチャートを所定の制御プログラムに変換するための入力操作を行う。かかる入力操作を受けた中央情報処理装置10は、コンセプトチャートとFA制御言語との対応テーブルを参照して、作成したコンセプトチャートをFA制御言語で記述された制御プログラムに変換し、さらに、FA制御言語で記述された制御プログラムをC言語で記述された制御プログラムに変換する(チャート変換工程:S4)。FA制御言語とは、コンセプトチャートとC言語との中間に位置し日本語で理解可能な新規なプログラミング言語である。本実施形態においては、例えばコンセプトチャートのヒータ制御に係る部分を、以下のようなFA制御言語プログラムに変換する。
【0049】
modeule ヒータ制御
(in short 水温, // 水温
in short 設定温度, // 設定温度
out_at bool ヒータ) // ヒータ制御リレー
[ //
// 水温が設定温度以下の場合
if(水温 < 設定温度)
[ //
// ヒータをONにする
ヒータ = true; ]
//
// 水温が設定温度以上の場合
else
[ // ヒータをOFFにする
// ヒータ = false; ] ]
【0050】
なお、チャート変換工程S4では、FA制御言語とC言語との対応テーブルを参照して、FA制御言語で記述された制御プログラムをC言語で記述された制御プログラムに変換する。中央情報処理装置10は、このようにC言語で記述された制御プログラムを得た後、C言語コンパイラを用いて制御プログラムをオブジェクトファイルに変換し、最終的に実行ファイルを作成する。
【0051】
その後、所定の要員(例えばハードウェア技術者)は、チャート変換工程S4を経て作成された制御プログラムの実行ファイルを実際のシステム(又はシミュレータ)に適用して試験を行う(試験工程:S5)。そして、オペレータは、その試験結果に基づいて、制御プログラムを修正する必要があるか否かを判定し(修正判定工程:S6)、修正する必要がないと判断した場合には、制御プログラムの作成を終了する。一方、修正判定工程S6において、制御プログラムを修正する必要があると判断した場合には、オペレータは、前記したチャート作成工程(例えばコンセプト分割工程S2やリアライジング工程S3)に戻ってコンセプトチャートを修正し、その後チャート変換工程S4以降の工程を経て制御プログラムの修正を行う。以上の手順を経て、水温制御システム100に適用される制御プログラムを作成することができる。オペレータは、表示部30に表示されているコンセプトチャートを参照しながら入力部20を操作し、コンセプトチャート上で視覚的・直感的に試験を行うことができる。
【0052】
以上説明した実施形態に係るプログラム開発支援装置1においては、特定のシステムのコンセプト自体及びそのコンセプトを実現させるアルゴリズムを視覚的・直感的に理解可能なコンセプトチャートを用いて、そのシステムの制御プログラムを開発することができるので、専門性の異なった技術者同志が容易に意思疎通を図ることができる。従って、システムの開発が全体的にスムーズとなり、連携試験時にしわ寄せが来る可能性を低減させることができる。この結果、複雑で大規模なシステムの開発を、容易にかつ迅速に低コスト高品質で実現させることが可能となる。
【0053】
また、以上説明した実施形態に係るプログラム開発支援装置1においては、抽象的なコンセプトを具体的なサブコンセプトに分割し、サブコンセプトの各々を実現させるようなコンセプトチャートを作成することができる。すなわち、あるコンセプトを実現するための詳細なコンセプト(サブコンセプト)を階層的に洗い出すことができ、人間の思考を直接的に表現することができるため、誰もが容易に理解することが可能なコンセプトチャートを作成することができる(ラダー言語では、このような人間の思考を階層的に表現することができないので、大規模で複雑なシステムの開発が困難となっている)。
【0054】
また、以上説明した実施形態に係るプログラム開発支援装置1においては、コンセプトチャートを、比較的理解し易いFA制御言語及びC言語に変換することができるので、従来PLC分野で用いられていた専門の要員にしか理解できないラダー言語等を用いる必要がない。従って、専門の開発要員が不要となるため、システムの設計・開発に要するコストを著しく低減させることが可能となる。
【0055】
なお、以上の実施形態においては、修正判定工程S6において、制御プログラムを修正する必要があると判断した場合に、コンセプトチャートの修正及び変換を介して制御プログラムを修正した例を示したが、FA制御言語やC言語で記述された制御プログラムを直接修正することもできる。かかる場合には、オペレータは、入力部20を用いて、制御プログラムをコンセプトチャートに逆変換するための入力操作を行うことができる。かかる入力操作を受けた中央情報処理装置10は、修正した制御プログラム(FA制御言語やC言語で記述された制御プログラム)をコンセプトチャートに変換する。
【0056】
このようにすると、ソフトウェア技術者が制御プログラムを変更した場合に、その変更結果を他の技術者(仕様技術者やハードウェア技術者)がコンセプトチャートの形式で確認することができる。従って、システムの設計変更及びその確認がきわめて容易となる。