(57)【要約】【課題】システム開発に携わる要員の誰もが容易にかつ迅速に巨大で複雑なシステムを構築することができるようなシステム開発支援ツールを提供する。【解決手段】特定のシステムのコンセプトを表現するためのコンセプト部品とコンセプトを実現させるためのリアライズ部品とを有するコンセプトチャートを作成するためのチャート作成手段と、作成したコンセプトチャートを制御プログラムに変換するチャート変換手段と、を備えるプログラム開発支援装置１である。チャート作成手段は、入力部２０と、コンセプトチャートの作成過程を表示するための表示部３０と、オペレータによる入力部２０の操作に基づいて、コンセプトチャートを構成するコンセプト部品及びリアライズ部品を含む部品を表示部３０に表示するとともに、部品に関する情報と部品同士の関係を規定する情報とを表示部３０に表示する部品情報表示手段と、を有する。【選択図】図１
2010020539.tif 000002
【特許請求の範囲】
【請求項１】
特定のシステムのコンセプトを表現するためのコンセプト部品と前記コンセプトを実現させるために機能の流れに従って構成されたリアライズ部品とを有するコンセプトチャートを作成するためのチャート作成手段と、前記チャート作成手段で作成したコンセプトチャートを制御プログラムに変換するチャート変換手段と、を備えるプログラム開発支援装置であって、
前記チャート作成手段は、
オペレータが操作可能な入力部と、
前記コンセプトチャートの作成過程を表示するための表示部と、
オペレータによる前記入力部の操作に基づいて、前記コンセプトチャートを構成する前記コンセプト部品及び前記リアライズ部品を含む複数の部品を前記表示部に表示するとともに、前記部品の各々に関する情報と前記部品同士の関係を規定する情報とを前記表示部に表示する部品情報表示手段と、を有するものである、
プログラム開発支援装置。
【請求項２】
前記コンセプトチャートは、
前記コンセプトを具体化した複数のサブコンセプトを階層的に表現するための複数のサブコンセプト部品を有するものである、
請求項１に記載のプログラム開発支援装置。
【請求項３】
前記制御プログラムを前記コンセプトチャートに逆変換する逆変換手段を備える、
請求項１に記載のプログラム開発支援装置。
【請求項４】
前記チャート変換手段は、
前記チャート作成手段で作成した前記コンセプトチャートを、ＦＡ制御言語で記述された第一の制御プログラムに変換する第一変換手段と、
前記第一変換手段で得た前記第一の制御プログラムを、Ｃ言語で記述された第二の制御プログラムに変換する第二変換手段と、を有するものである、
請求項１から３の何れか一項に記載のプログラム開発支援装置。
【請求項５】
特定のシステムのコンセプトを表現するためのコンセプト部品と前記コンセプトを実現させるために機能の流れに従って構成されたリアライズ部品とを有するコンセプトチャートを用いて、前記システムの制御プログラムを作成するプログラム作成方法であって、
オペレータによる所定の入力部の操作に基づいて、前記コンセプトチャートを構成する前記コンセプト部品及び前記リアライズ部品を含む複数の部品と、前記部品の各々に関する情報と、前記部品同士の関係を規定する情報と、を所定の表示部に表示して前記コンセプトチャートを作成するチャート作成工程と、
前記チャート作成工程で作成した前記コンセプトチャートを制御プログラムに変換するチャート変換工程と、を備える、
プログラム作成方法。
【請求項６】
前記チャート変換工程で得た前記制御プログラムのシステム適用試験を実施する試験工程と、
前記システム適用試験の結果に基づいて前記制御プログラムを修正すべきか否かを判定する修正判定工程と、を備え、
前記修正判定工程において前記制御プログラムを修正すべきであると判定した場合に、再度前記チャート作成工程及び前記チャート変換工程を経ることにより前記制御プログラムを修正する、
請求項５に記載のプログラム作成方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム開発支援装置及びプログラム作成方法に関する。
【背景技術】
【０００２】
現在、種々の産業分野において、搬送機械、工作機械、産業用ロボット等の種々の産業機械を同期させて制御するシステムの開発が進められている。このようなシステムを統合制御する制御装置の一つとして、従来は、プログラマブル・ロジック・コントローラ（Programmable Logic Controller：以下、「ＰＬＣ」という。）が採用されている。
【０００３】
ＰＬＣによって制御される新たなシステムを開発する際には、（１）要求仕様を設定する、（２）各種機械相互の動作仕様に基づいてＰＬＣ制御用のプログラムを作成する、（３）システムを組み立てる、（４）組み立てられたシステムにプログラムを載せて試験を行う、という工程群を経るのが一般的である。
【０００４】
ＰＬＣ制御用のプログラムとして、従来は、ラダー言語で作成されたラダープログラムが採用されている（例えば、特許文献１参照）。ラダー言語とは、多数のリレーとコイルを論理的に接続した形式の図式言語であり、ＰＬＣが直接実行できる言語の一種である。
【特許文献１】特開平７−１９１７１７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところが、ラダープログラムは、電気回路についての専門的な知識を有する電気技術者によって作成されるため、システム開発に携わる他の技術者（仕様技術者、ハードウェア技術者、ソフトウェア技術者等）にとっては理解が困難なものであった。このため、ラダープログラムを採用すると、システム開発時における技術者間での意思疎通が困難となって連携試験時にしわ寄せが来る可能性が高くなる。また、ラダープログラム作成の際には、ソフトウェア作成の際に採用される種々の手法（機能の分担開発、再利用、構造化設計等）を利用することができないため、ラダープログラム自体の開発性能に限界があり、大規模で複雑なシステムを構築することが困難となっていた。
【０００６】
このような問題を解決するため、近年においては、ラダー言語に代わる他のプログラミング言語（例えばＢＡＳＩＣやＣ言語等）で作成したＰＬＣ制御用のプログラムが採用されているが、かかる場合においても、採用したプログラミング言語に精通した専門の要員が必要となる。また、近年においては、例えばプログラマブルユニット等のようなＰＬＣに代わる他の制御装置が提案されているが、このようなユニットを開発する際にも、ハードウェアに精通しかつ高級言語を理解することができる専門の開発要員が必要となる。
【０００７】
本発明は、かかる事情に鑑みてなされたものであり、システム開発に携わる要員の誰もが容易にかつ迅速に巨大で複雑なシステムを構築することができるようなシステム開発支援ツールを提供することを目的とする。
【課題を解決するための手段】
【０００８】
前記目的を達成するため、本発明に係るプログラム開発支援装置は、特定のシステムのコンセプトを表現するためのコンセプト部品とコンセプトを実現させるために機能の流れに従って構成されたリアライズ部品とを有するコンセプトチャートを作成するためのチャート作成手段と、チャート作成手段で作成したコンセプトチャートを制御プログラムに変換するチャート変換手段と、を備えるプログラム開発支援装置であって、チャート作成手段は、オペレータが操作可能な入力部と、コンセプトチャートの作成過程を表示するための表示部と、オペレータによる入力部の操作に基づいて、コンセプトチャートを構成するコンセプト部品及びリアライズ部品を含む複数の部品を表示部に表示するとともに、部品の各々に関する情報と部品同士の関係を規定する情報とを表示部に表示する部品情報表示手段と、を有するものである。
【０００９】
かかる構成を採用すると、特定のシステムのコンセプト自体及びそのコンセプトを実現させるための機能の流れを視覚的・直感的に理解可能なコンセプトチャートを用いて、そのシステムの制御プログラムを開発することができるので、専門性の異なった技術者同志が容易に意思疎通を図ることができる。従って、システムの開発が全体的にスムーズとなり、連携試験時にしわ寄せが来る可能性を低減させることができる。この結果、複雑で大規模なシステムの開発を、容易にかつ迅速に低コスト・高品質で実現させることが可能となる。
【００１０】
前記プログラム開発支援装置において、コンセプトを具体化した複数のサブコンセプトを階層的に表現するための複数のサブコンセプト部品を有するコンセプトチャートを採用することもできる。
【００１１】
かかる構成を採用すると、抽象的なコンセプトを具体的なサブコンセプトに分割し、サブコンセプトの各々を実現させるようなコンセプトチャートを作成することができる。すなわち、あるコンセプトを実現するための詳細なコンセプト（サブコンセプト）を階層的に洗い出すことができ、人間の思考を直接的に表現することができるため、誰もが容易に理解することが可能なコンセプトチャートを作成することができる。
【００１２】
また、前記プログラム開発支援装置において、制御プログラムをコンセプトチャートに逆変換する逆変換手段を備えることもできる。
【００１３】
かかる構成を採用すると、設計と実装とのずれを確認することができるので、メンテナンス性を向上させることができ、移植性能を高めることが可能となる。また、例えば、ソフトウェア技術者が制御プログラムを変更した場合に、その変更結果を他の技術者（仕様技術者やハードウェア技術者）がコンセプトチャートの形式で確認することができる。従って、システムの設計変更及びその確認がきわめて容易となる。
【００１４】
また、前記プログラム開発支援装置において、チャート作成手段で作成したコンセプトチャートを、ＦＡ制御言語で記述された第一の制御プログラムに変換する第一変換手段と、第一変換手段で得た第一の制御プログラムを、Ｃ言語で記述された第二の制御プログラムに変換する第二変換手段と、を有するチャート変換手段を採用することができる。ここで、ＦＡ制御言語とは、コンセプトチャートとＣ言語との中間に位置し日本語で理解可能な新規なプログラミング言語である。
【００１５】
かかる構成を採用すると、コンセプトチャートを、比較的理解し易いＦＡ制御言語及びＣ言語に変換することができるので、従来ＰＬＣ分野で用いられていた専門の要員にしか理解できないラダー言語等を用いる必要がない。従って、専門の開発要員が不要となるため、システムの設計・開発に要するコストを著しく低減させることが可能となる。
【００１６】
また、本発明に係るプログラム作成方法は、特定のシステムのコンセプトを表現するためのコンセプト部品とコンセプトを実現させるために機能の流れに従って構成されたリアライズ部品とを有するコンセプトチャートを用いて、システムの制御プログラムを作成するプログラム作成方法であって、オペレータによる所定の入力部の操作に基づいて、コンセプトチャートを構成するコンセプト部品及びリアライズ部品を含む複数の部品と、部品の各々に関する情報と、部品同士の関係を規定する情報と、を所定の表示部に表示してコンセプトチャートを作成するチャート作成工程と、チャート作成工程で作成したコンセプトチャートを制御プログラムに変換するチャート変換工程と、を備えるものである。
【００１７】
かかる方法を採用すると、特定のシステムのコンセプト自体及びそのコンセプトを実現させるための機能の流れを視覚的・直感的に理解可能なコンセプトチャートを用いて、そのシステムの制御プログラムを作成することができるので、専門性の異なった技術者同志が容易に意思疎通を図ることができる。従って、システムの開発が全体的にスムーズとなり、連携試験時にしわ寄せが来る可能性を低減させることができる。この結果、複雑で大規模なシステムの開発を、容易にかつ迅速に低コスト・高品質で実現させることが可能となる。
【００１８】
前記プログラム作成方法において、チャート変換工程で得た制御プログラムのシステム適用試験を実施する試験工程と、システム適用試験の結果に基づいて制御プログラムを修正すべきか否かを判定する修正判定工程と、を備え、修正判定工程において制御プログラムを修正すべきであると判定した場合に、再度チャート作成工程及びチャート変換工程を経ることにより制御プログラムを修正することもできる。
【００１９】
かかる方法を採用すると、作成した制御プログラムに不具合があった場合においても、コンセプトチャートを用いることにより容易にかつ迅速に制御プログラムを修正することが可能となる。
【発明の効果】
【００２０】
本発明によれば、システム開発に携わる要員の誰もが容易にかつ迅速に巨大で複雑なシステムの構築を実現させることができるようなシステム開発支援ツールを提供することが可能となる。
【発明を実施するための最良の形態】
【００２１】
以下、図面を参照して、本発明の実施形態に係るプログラム開発支援装置について説明する。
【００２２】
まず、図１〜図６を用いて、本実施形態に係るプログラム開発支援装置１の構成について説明する。
【００２３】
プログラム開発支援装置１は、図１に示すように、各種情報処理を行う中央情報処理装置１０と、中央情報処理装置１０に接続された入力部２０及び表示部３０と、を備えている。本装置１は、コンセプトチャートを採用することにより、システム開発に携わる技術者によるプログラムの開発を支援するものである。なお、コンセプトチャートとは、特定のシステムのコンセプトを表現しかつそのコンセプトを実現させるためのチャート（図表）であり、コンセプト自体を表現するコンセプト部品と、コンセプトを構成する複数のサブコンセプトを表現する複数のサブコンセプト部品と、コンセプト及びサブコンセプトを実現させるためのリアライズ部品と、を含む複数の部品から構成されている。
【００２４】
入力部２０は、マウスやキーボード等を含む各種ポインティングデバイスであり、オペレータが中央情報処理装置１０に対して各種情報の入力を行う際に使用される。オペレータは、入力部２０を用いて、コンセプトチャートを構成する部品（コンセプト部品やリアライズ部品）の選択入力を行うことができるとともに、これら部品に関する各種情報や部品同士の関係を規定する情報を入力することができる。表示部３０は、図２に示すように、中央情報処理装置１０から出力される画像信号を受けて、各種画像を表示するものである。表示部３０には、図３〜図６に示すように、入力部２０により選択入力されたコンセプトチャートを構成する部品が表示される。
【００２５】
中央情報処理装置１０は、ＣＰＵ、ＲＯＭ、ＲＡＭ、ＨＤＤ、入出力インタフェース等を備えるコンピュータシステムであり、ＲＯＭに記録された各種制御プログラムをＣＰＵが読み込んで所望の演算を実行することにより、種々の処理や制御を行う。具体的には、中央情報処理装置１０は、入力部２０からの入力信号を受けて、表示部３０に表示すべき画像信号を表示部３０に出力することにより、入力部２０を介して選択入力されたコンセプトチャートを構成する部品を表示部３０に表示する。また、中央情報処理装置１０は、入力部２０からの入力信号を受けて、表示された部品の各々に関する情報や、表示された部品同士の関係を規定する情報を表示する。すなわち、中央情報処理装置１０は、本発明における部品情報表示手段として機能する。また、中央情報処理装置１０、入力部２０及び表示部３０により、本発明におけるチャート作成手段が構成される。
【００２６】
また、中央情報処理装置１０は、作成したコンセプトチャートを制御プログラムに変換する。具体的には、中央情報処理装置１０は、作成したコンセプトチャートを、ＦＡ制御言語で記述された制御プログラム（第一の制御プログラム）に変換する。また、中央情報処理装置１０は、ＦＡ制御言語で記述された制御プログラムを、Ｃ言語で記述された制御プログラム（第二の制御プログラム）に変換する。すなわち、中央情報処理装置１０は、チャート変換手段（第一変換手段及び第二変換手段）として機能する。  また、中央情報処理装置１０は、ＦＡ制御言語又はＣ言語で記述された制御プログラムをコンセプトチャートに逆変換することができる。すなわち、中央情報処理装置１０は、逆変換手段としても機能する。
【００２７】
ここで、図２〜図６を用いて、本実施形態に係るプログラム開発支援装置１におけるコンセプトチャートの作成方法の一例について説明する。
【００２８】
まず、オペレータは、図２に示すような表示部３０に表示されたツールバー３１（コンセプトチャートを構成する部品に対応するボタン群）の中から、入力部２０を用いて、貼り付けたい部品のボタンを選択する。例えば、オペレータが入力部２０（マウス）を用いてツールバー３１の中の「開始部品」ボタンをクリックすると、その入力信号を受けた中央情報処理装置１０は、表示部３０の下部に「部品選択モード：開始部品」という文字を表示する。このような「部品選択モード」の状態で、オペレータが入力部２０（マウス）を用いて表示部３０の中央部にあるチャート作成画面３２をクリックすると、その入力信号を受けた中央情報処理装置１０は、図３に示すように、表示部３０のチャート作成画面３２に開始部品Ｓを貼り付ける（表示する）。この時点で、「部品選択モード」は解除される。
【００２９】
次いで、オペレータが、表示部３０のチャート作成画面３２に貼り付けられた（表示された）開始部品Ｓをクリックすると、その入力信号を受けた中央情報処理装置１０は、図４に示すように、チャート作成画面３２の右側にあるプロパティ画面３３に開始部品Ｓのプロパティリストを表示する。オペレータは、入力部２０を用いて、このプロパティリストに、開始部品Ｓのプロパティを入力する。例えば、オペレータが入力部２０（キーボード）を用いてプロパティリストの「Summary」の欄に「プログラム開始」と入力すると、その入力信号を受けた中央情報処理装置１０は、図４に示すように、チャート作成画面３２の開始部品Ｓの上方に「プログラム開始」と表示する。
【００３０】
オペレータは、上記と同様の手順で、図５に示すように、表示部３０のチャート作成画面３２に別の部品（例えばコンセプト部品Ｃ1）を貼り付けることができる。この後、オペレータは、入力部２０（マウス）を用いて、開始部品Ｓとコンセプト部品Ｃ1とを線で結ぶ。具体的には、オペレータは、チャート作成画面３２の開始部品Ｓの上にマウスポインタを配置した状態でマウスの左ボタンを押し、押したままマウスポインタをコンセプト部品Ｃ1へと移動させた後、左ボタンを離す。このような入力信号を受けた中央情報処理装置１０は、図６に示すように、開始部品Ｓとコンセプト部品Ｃ1とを結ぶ線Ｌを表示する。以下、同様の手順で、コンセプトチャートを作成することができる。
【００３１】
次いで、図７〜図１５を用いて、特定のシステムに適用される制御プログラムを作成する方法を説明する。本実施形態においては、タンク内の水温を一定に保つように水温を制御する水温制御システム１００に適用される制御プログラムを作成する方法について説明する。
【００３２】
図７は、本実施形態で作成される制御プログラムが適用される水温制御システム１００の構成図である。水温制御システム１００は、水を貯留するタンク１１０と、タンク１１０内の水温を検出する水温センサ１２０と、タンク１１０内の水を加温するヒータ１３０と、タンク１１０内の水温の目標値（設定温度）を設定するための操作ボタン（ＵＰ／ＤＯＷＮボタン）や設定温度を表示する表示部を有する操作パネル１４０と、タンク１１０内の水温を一定（操作パネル１４０での設定温度）に保つようにヒータ１３０をＯＮ／ＯＦＦ制御するコントローラ１５０と、を備えている。
【００３３】
本実施形態では、水温制御システム１００のコンセプトチャートを使用して、コントローラ１５０の動作を制御するための制御プログラムを作成することとする。一般的には、図８に示すようなタスク構成図を用いて、水温制御システム１００の主要な構成におけるタスクを明確にするが、コンセプトチャートにおいては、後述するコンセプト部品を具現化（リアライズ）して作成されたモジュール部品にタスク属性をプロパティで設定するだけでタスクとして実行される。
【００３４】
ここで、「タスク」とは、水温制御システム１００のコンセプト（目的・機能）を実現させるために、水温制御システム１００の主要な構成が達成すべきサブコンセプトである。操作パネル１４０におけるタスクは、操作ボタンを押下操作することによりタンク１１０内の水温の目標値（設定温度）を設定すること（操作パネル制御タスクＴ1）である。コントローラ１５０は、所定時間毎に操作ボタンの状態をチェックして設定温度を更新し、設定温度に変化があった場合には、その変化を水温制御タスクＴ3に反映させる。水温センサ１２０におけるタスクは、所定時間毎にタンク１１０内の水温を検出すること（水温監視タスクＴ2）である。コントローラ１５０は、水温センサ１２０を介して所定時間毎にタンク１１０内の水温を検出し、水温に変化があった場合には、その変化を水温制御タスクＴ3に反映させる。コントローラ１５０におけるタスクは、操作パネル１４０による設定温度の変化と、水温センサ１２０で検出されたタンク１１０内の水温の変化と、に基づいて、ヒータ１３０を制御すること（水温制御タスクＴ3）である。
【００３５】
まず、図９及び図１０に示すように、オペレータは、水温制御システム１００のコンセプトを示すコンセプト部品Ｃ1を、プログラム開発支援装置１の表示部３０に表示して定義する（コンセプト定義工程：Ｓ１）。コンセプト定義工程Ｓ１においては、オペレータが、入力部２０を用いて、コンセプトチャートを構成する部品群の中からコンセプト部品Ｃ1を選択して入力操作を行う。かかる入力操作を受けた中央情報処理装置１０は、表示部３０にコンセプト部品Ｃ1を表示する。また、オペレータは、入力部２０を用いて、表示したコンセプト部品Ｃ1に関する情報（内容や属性）を入力する。かかる入力操作を受けた中央情報処理装置１０は、表示部３０にコンセプト部品Ｃ1に関する情報を表示する。例えば、水温制御システム１００のコンセプトは「タンク内の水温を一定に制御する」ことであるので、その旨が入力されて表示される。なお、コンセプト定義工程Ｓ１においては、コンセプトチャートの開始部品Ｓ及び終了部品Ｅも併せて表示（定義）する。
【００３６】
次いで、オペレータは、図１１に示すように、コンセプト定義工程Ｓ１で表示したコンセプト部品Ｃ1を、複数のサブコンセプト部品Ｃ2〜Ｃ4に分割する（コンセプト分割工程：Ｓ２）。コンセプト分割工程Ｓ２においては、オペレータが、入力部２０を用いて、コンセプト部品Ｃ1を構成するサブコンセプト部品Ｃ2〜Ｃ4を選択して入力操作を行う。入力操作を受けた中央情報処理装置１０は、表示部３０にサブコンセプト部品Ｃ2〜Ｃ4を表示する。また、オペレータは、入力部２０を用いて、表示したサブコンセプト部品Ｃ2〜Ｃ4に関する情報を入力するとともに、表示したサブコンセプト部品同士の関係を規定する情報を入力する。かかる入力操作を受けた中央情報処理装置１０は、表示部３０にサブコンセプト部品Ｃ2〜Ｃ4に関する情報を表示するとともに、部品間の関係を規定する情報を表示する。水温制御システム１００のサブコンセプトは、前記したタスク（操作パネル制御タスクＴ1、水温監視タスクＴ2、水温制御タスクＴ3）に相当するので、その旨が入力されて項目列挙的に表示される。なお、図１１において、サブコンセプト部品Ｃ2〜Ｃ4は直列的に表示されているが、この直列的関係は時系列的な関係を示すものではない。各サブコンセプト部品Ｃ2〜Ｃ4は、前記したようなモジュールをタスク化する設定を利用することにより、実際は並列的（同時並行的）に実行することができる。
【００３７】
次いで、オペレータは、図１２〜図１５に示すように、サブコンセプト部品Ｃ2〜Ｃ4を実現させるためのリアライズ部品を、プログラム開発支援装置１の表示部３０に表示する（リアライジング工程：Ｓ３）。オペレータは、入力部２０を用いて、サブコンセプト部品Ｃ2〜Ｃ4を実現させるためのリアライズ部品を選択して入力操作を行う。かかる入力操作を受けた中央情報処理装置１０は、表示部３０にリアライズ部品を表示する。また、オペレータは、入力部２０を用いて、貼り付けたリアライズ部品に関する情報を入力するとともに、表示したリアライズ部品同士の関係を規定する情報を入力する。かかる入力操作を受けた中央情報処理装置１０は、表示部３０にリアライズ部品に関する情報やリアライズ部品同士の関係を規定する情報を表示する。
【００３８】
＜操作パネル制御＞
ここで、図１２を用いて、サブコンセプト部品Ｃ2を実現させるためのリアライズ部品Ｒ1〜Ｒ17について具体的に説明する。サブコンセプト部品Ｃ2のサブコンセプトは、操作パネル制御タスクＴ1に相当するものである。二個一組で配置されるＲ1及びＲ2は、反復を表すリアライズ部品であり、これらの間に配置されたリアライズ部品は所定の周期で繰り返し実行される。二個一組で配置されるＲ3〜Ｒ12（Ｒ3及びＲ4の組、Ｒ5及びＲ6の組、Ｒ7及びＲ8の組、Ｒ9及びＲ10の組、Ｒ11及びＲ12の組）は条件を表すリアライズ部品であり、一定の条件を満たした場合に、これらの間に配置されたリアライズ部品が実行される。Ｒ13〜Ｒ17は、各々、実行する内容を具体的に表示するリアライズ部品である。Ｒ13は「現在の設定温度を保存する」ことを実行するものであり、Ｒ14は「設定温度を１℃上げる」ことを実行するものであり、Ｒ15は「設定温度を１℃下げる」ことを実行するものであり、Ｒ16は「設定温度を水温制御に反映させる」ことを実行するものであり、Ｒ17は「所定時間の遅延処理（周期に相当する時間だけ処理を遅れさせること）」を実行するものである。
【００３９】
本実施形態においては、水温制御タスクＴ3が実行された場合に、Ｒ3及びＲ4の間に配置されたリアライズ部品群（Ｒ5〜Ｒ17）が実行される。水温制御タスクＴ3が実行された場合には、Ｒ13が実行されて、現在の設定温度が保存される。続いて、操作パネル１４０の操作ボタンが押下操作された場合に、Ｒ5及びＲ6の間に配置されたリアライズ部品群（Ｒ7〜Ｒ10、Ｒ14及びＲ15）が実行される。操作ボタンのうちＵＰボタンが押下操作され、かつ設定温度が上限値以下である場合には、Ｒ7及びＲ8の間に配置されたＲ14が実行されて、設定温度が１℃上げられる。一方、操作ボタンのうちＤＯＷＮボタンが押下操作され、かつ設定温度が下限値以上である場合には、Ｒ9及びＲ10の間に配置されたＲ15が実行されて、設定温度が１℃下げられる。続いて、設定温度が変更された場合に、Ｒ11及びＲ12の間に配置されたＲ16が実行されて、設定温度の変更情報が水温制御タスクＴ3に通知されて水温制御に反映される。その後Ｒ17が実行されて、所定時間の遅延処理がなされる。
【００４０】
＜水温監視＞
次いで、図１３を用いて、サブコンセプト部品Ｃ3を実現させるためのリアライズ部品Ｒ20〜Ｒ28について具体的に説明する。サブコンセプト部品Ｃ3のサブコンセプトは、水温監視タスクＴ2に相当するものである。二個一組で配置されるＲ20及びＲ21は、反復を表すリアライズ部品であり、これらの間に配置されたリアライズ部品は所定の周期で繰り返し実行される。二個一組で配置されるＲ22〜Ｒ25（Ｒ22及びＲ23の組、Ｒ24及びＲ25の組）は条件を表すリアライズ部品であり、一定の条件を満たした場合に、これらの間に配置されたリアライズ部品が実行される。Ｒ26〜Ｒ28は、各々、実行する内容を具体的に表示するリアライズ部品である。Ｒ26は「現在の水温を保存する」ことを実行するものであり、Ｒ27は「検出された水温（検出温度）を水温制御に反映させる」ことを実行するものであり、Ｒ28は「所定時間の遅延処理（周期に相当する時間だけ処理を遅れさせること）」を実行するものである。
【００４１】
本実施形態においては、水温制御タスクＴ3が実行されていた場合に、Ｒ22及びＲ23の間に配置されたリアライズ部品群（Ｒ24〜Ｒ28）が実行される。水温制御タスクＴ3が実行されていた場合には、Ｒ26が実行されて、現在のタンク１１０内の水温が保存される。続いて、水温センサ１２０で検出された水温（検出温度）が変更された場合に、Ｒ24及びＲ25の間に配置されたＲ27が実行されて、検出温度の変更情報が水温制御タスクＴ3に通知されて水温制御に反映される。その後Ｒ28が実行されて、所定時間の遅延処理がなされる。
【００４２】
＜水温制御＞
続いて、図１４及び図１５を用いて、サブコンセプト部品Ｃ4を実現させるためのリアライズ部品Ｒ30〜Ｒ44について具体的に説明する。サブコンセプト部品Ｃ4のサブコンセプトは、水温制御タスクＴ3に相当するものである。Ｒ30〜Ｒ32は、各々、実行する内容を具体的に表示するリアライズ部品である。Ｒ30は「水温制御を初期化する」ことを実行するものであり、Ｒ31は「メッセージの待機」を実行するものであり、Ｒ32は「受信メッセージをマップする（受信したメッセージを構成する情報を他のリアライズ部品でも参照できるようにする）」ことを実行するものである。二個一組で配置されるＲ33及びＲ34は、メッセージの振分を表すリアライズ部品であり、メッセージの内容に応じて、これらの間に配置されたリアライズ部品が実行される。Ｒ35、Ｒ36及びＲ40は、各々、実行する内容を具体的に表示するリアライズ部品である。Ｒ35は「設定温度を更新する」ことを実行するものであり、Ｒ36は「検出温度を変更する」ことを実行するものであり、Ｒ40は「ヒータを制御する」ことを実行するものである。
【００４３】
本実施形態においては、まず、Ｒ30が実行されて、水温制御の初期化（設定温度を下限値に設定するとともに水温を未検出状態とすること）が実現される。続いて、Ｒ31及びＲ32が実行されて、メッセージ（操作パネル制御タスクＴ1における設定温度の変更情報及び水温監視タスクＴ2における検出温度の変更情報）の待機がなされ、メッセージを受信した場合には、待機が解除されて、受信したメッセージを構成する情報が他のリアライズ部品で参照可能となる。その後、受信したメッセージが「設定温度の変更情報」であった場合には、Ｒ33及びＲ34の間に配置されたＲ35及びＲ40が実行されて、設定温度が変更された状態でヒータが制御される。一方、受信したメッセージが「検出温度の変更情報」であった場合には、Ｒ33及びＲ34の間に配置されたＲ35及びＲ40が実行されて、検出温度が変更された状態でヒータが制御される。
【００４４】
Ｒ40は、図１５に示すようなリアライズ部品Ｒ41〜Ｒ44によって構成されている。二個一組で配置されるＲ41及びＲ42は条件を表すリアライズ部品であり、一定の条件を満たした場合に、これらの間に配置されたリアライズ部品が実行される。Ｒ43及びＲ44は、各々、実行する内容を具体的に表示するリアライズ部品である。Ｒ43は「ヒータをＯＮにする」ことを実行するものであり、Ｒ44は「ヒータをＯＦＦにする」ことを実行するものである。本実施形態においては、検出温度が設定温度未満であった場合に、Ｒ43が実行されてヒータがＯＮにされ、タンク１１０内の水が加温される。一方、検出温度が設定温度以上であった場合に、Ｒ44が実行されてヒータがＯＦＦにされ、タンク１１０内の水が自然冷却される。
【００４５】
以上のコンセプト定義工程Ｓ１、コンセプト分割工程Ｓ２及びリアライジング工程Ｓ３を経ることにより、水温制御システム１００のコンセプトチャートが作成されることとなる。すなわち、これらの工程群は、本発明におけるチャート作成工程を構成する。このようなコンセプトチャートにより、システム開発に携わる全ての要員が、水温制御システム１００のコンセプトを明確に把握することができ、このコンセプトを実現させるための段階的なタスク（サブコンセプト）を認識することができ、さらに、これらサブコンセプトを実現させるための具体的なプロセスを認識することができる。
【００４６】
このようなコンセプトチャートを作成した後、オペレータは、入力部２０を用いて、コンセプトチャートを所定の制御プログラムに変換するための入力操作を行う。かかる入力操作を受けた中央情報処理装置１０は、コンセプトチャートとＦＡ制御言語との対応テーブルを参照して、作成したコンセプトチャートをＦＡ制御言語で記述された制御プログラムに変換し、さらに、ＦＡ制御言語で記述された制御プログラムをＣ言語で記述された制御プログラムに変換する（チャート変換工程：Ｓ４）。ＦＡ制御言語とは、コンセプトチャートとＣ言語との中間に位置し日本語で理解可能な新規なプログラミング言語である。本実施形態においては、例えばコンセプトチャートのヒータ制御に係る部分を、以下のようなＦＡ制御言語プログラムに変換する。
【００４７】
modeule ヒータ制御
(in         short 水温,         // 水温
in          short 設定温度,   // 設定温度
out_at      bool  ヒータ)                 // ヒータ制御リレー
[     //
//    水温が設定温度以下の場合
if(水温 < 設定温度)
[           //
//    ヒータをＯＮにする
ヒータ = true;                ]
//
//    水温が設定温度以上の場合
else
[           //    ヒータをＯＦＦにする
//    ヒータ = false;         ]           ]
【００４８】
なお、チャート変換工程Ｓ４では、ＦＡ制御言語とＣ言語との対応テーブルを参照して、ＦＡ制御言語で記述された制御プログラムをＣ言語で記述された制御プログラムに変換する。中央情報処理装置１０は、このようにＣ言語で記述された制御プログラムを得た後、Ｃ言語コンパイラを用いて制御プログラムをオブジェクトファイルに変換し、最終的に実行ファイルを作成する。
【００４９】
その後、所定の要員（例えばハードウェア技術者）は、チャート変換工程Ｓ４を経て作成された制御プログラムの実行ファイルを実際のシステム（又はシミュレータ）に適用して試験を行う（試験工程：Ｓ５）。そして、オペレータは、その試験結果に基づいて、制御プログラムを修正する必要があるか否かを判定し（修正判定工程：Ｓ６）、修正する必要がないと判断した場合には、制御プログラムの作成を終了する。一方、修正判定工程Ｓ６において、制御プログラムを修正する必要があると判断した場合には、オペレータは、前記したチャート作成工程（例えばコンセプト分割工程Ｓ２やリアライジング工程Ｓ３）に戻ってコンセプトチャートを修正し、その後チャート変換工程Ｓ４以降の工程を経て制御プログラムの修正を行う。以上の手順を経て、水温制御システム１００に適用される制御プログラムを作成することができる。オペレータは、表示部３０に表示されているコンセプトチャートを参照しながら入力部２０を操作し、コンセプトチャート上で視覚的・直感的に試験を行うことができる。
【００５０】
以上説明した実施形態に係るプログラム開発支援装置１においては、特定のシステムのコンセプト自体及びそのコンセプトを実現させるアルゴリズムを視覚的・直感的に理解可能なコンセプトチャートを用いて、そのシステムの制御プログラムを開発することができるので、専門性の異なった技術者同志が容易に意思疎通を図ることができる。従って、システムの開発が全体的にスムーズとなり、連携試験時にしわ寄せが来る可能性を低減させることができる。この結果、複雑で大規模なシステムの開発を、容易にかつ迅速に低コスト高品質で実現させることが可能となる。
【００５１】
また、以上説明した実施形態に係るプログラム開発支援装置１においては、抽象的なコンセプトを具体的なサブコンセプトに分割し、サブコンセプトの各々を実現させるようなコンセプトチャートを作成することができる。すなわち、あるコンセプトを実現するための詳細なコンセプト（サブコンセプト）を階層的に洗い出すことができ、人間の思考を直接的に表現することができるため、誰もが容易に理解することが可能なコンセプトチャートを作成することができる（ラダー言語では、このような人間の思考を階層的に表現することができないので、大規模で複雑なシステムの開発が困難となっている）。
【００５２】
また、以上説明した実施形態に係るプログラム開発支援装置１においては、コンセプトチャートを、比較的理解し易いＦＡ制御言語及びＣ言語に変換することができるので、従来ＰＬＣ分野で用いられていた専門の要員にしか理解できないラダー言語等を用いる必要がない。従って、専門の開発要員が不要となるため、システムの設計・開発に要するコストを著しく低減させることが可能となる。
【００５３】
なお、以上の実施形態においては、修正判定工程Ｓ６において、制御プログラムを修正する必要があると判断した場合に、コンセプトチャートの修正及び変換を介して制御プログラムを修正した例を示したが、ＦＡ制御言語やＣ言語で記述された制御プログラムを直接修正することもできる。かかる場合には、オペレータは、入力部２０を用いて、制御プログラムをコンセプトチャートに逆変換するための入力操作を行うことができる。かかる入力操作を受けた中央情報処理装置１０は、修正した制御プログラム（ＦＡ制御言語やＣ言語で記述された制御プログラム）をコンセプトチャートに変換する。
【００５４】
このようにすると、ソフトウェア技術者が制御プログラムを変更した場合に、その変更結果を他の技術者（仕様技術者やハードウェア技術者）がコンセプトチャートの形式で確認することができる。従って、システムの設計変更及びその確認がきわめて容易となる。
【図面の簡単な説明】
【００５５】
【図１】本発明の実施形態に係るプログラム開発支援装置の構成を説明するためのブロック図である。
【図２】図１に示したプログラム開発支援装置の表示部に表示されたコンセプトチャート作成画面を示す図である。
【図３】図２に示したコンセプトチャート作成画面にコンセプトチャートを構成する部品を貼り付けた状態を示す図である。
【図４】図３に示した部品に関する情報を表示した状態を示す図である。
【図５】図２に示したコンセプトチャート作成画面にコンセプトチャートを構成する複数の部品を貼り付けた状態を示す図である。
【図６】図５に示した部品同士の関係を規定する情報を表示した状態を示す図である。
【図７】本発明の実施形態で作成される制御プログラムが適用される水温制御システムの構成図である。
【図８】図７に示した水温制御システムのタスクを示す概念図である。
【図９】図７に示した水温制御システムに適用される制御プログラムを作成する方法を説明するためのフローチャートである。
【図１０】図７に示した水温制御システムのコンセプトチャートを構成するコンセプト部品を示す概念図である。
【図１１】図１０に示したコンセプト部品を複数のサブコンセプト部品に分割した状態を示す概念図である。
【図１２】図１１に示した操作パネル制御に係るサブコンセプト部品を実現させるためのリアライズ部品を示す概念図である。
【図１３】図１１に示した水温監視に係るサブコンセプト部品を実現させるためのリアライズ部品を示す概念図である。
【図１４】図１１に示した水温制御に係るサブコンセプト部品を実現させるためのリアライズ部品を示す概念図である。
【図１５】図１４に示したヒータ制御に係るリアライズ部品を具体化したリアライズ部品を示す概念図である。
【符号の説明】
【００５６】
１…プログラム開発支援装置、１０…中央情報処理装置（部品情報表示手段、チャート作成手段、チャート変換手段、第一変換手段、第二変換手段、逆変換手段）、２０…入力部（チャート作成手段）、３０…表示部（チャート作成手段）、１００…水温制御システム、Ｃ1…コンセプト部品、Ｃ2〜Ｃ4…サブコンセプト部品、Ｒ1〜Ｒ44…リアライズ部品。
【図１】
2010020539.tif 000003
【図２】
2010020539.tif 000004
【図３】
2010020539.tif 000005
【図４】
2010020539.tif 000006
【図５】
2010020539.tif 000007
【図６】
2010020539.tif 000008
【図７】
2010020539.tif 000009
【図８】
2010020539.tif 000010
【図９】
2010020539.tif 000011
【図１０】
2010020539.tif 000012
【図１１】
2010020539.tif 000013
【図１２】
2010020539.tif 000014
【図１３】
2010020539.tif 000015
【図１４】
2010020539.tif 000016
【図１５】
2010020539.tif 000017