(57)【特許請求の範囲】
【請求項１】
制御対象を制御する制御装置において解釈及び実行され、ＦＢＤ言語により作成される制御ロジックと、前記制御装置において前記制御ロジックを実行する順序を規定すると共に、実行した結果に基づいて実行するアクションを規定した状態分岐フローと、を生成するロジック生成装置であって、
前記制御ロジックは、状態遷移を指定する情報に基づいて、アクティブな状態を示すための内部フラグと、状態遷移の発生を示す内部フラグと、を付与するロジックであり、
前記制御対象における状態遷移を指定する情報を取得する指定情報取得手段と、
前記状態遷移を指定する情報から、前記制御ロジックに含まれる自動生成制御ロジック及び前記状態分岐フローを生成するための生成ルールを保持するルール保持手段と、
前記ルール保持手段において保持する前記生成ルールに基づいて、前記状態遷移を指定する情報から前記制御ロジックに含まれる自動生成制御ロジック及び前記状態分岐フローを生成するロジック生成手段と、
を備えるロジック生成装置。
【請求項２】
前記状態遷移を指定する情報には、状態遷移表又は状態遷移図と、当該状態遷移表又は当該状態遷移図における遷移イベントの発生条件を特定する情報と、当該状態遷移表又は当該状態遷移図における各状態での実行フローと、が含まれる請求項１記載のロジック生成装置。
【請求項３】
前記状態遷移を指定する情報を作成する指定情報作成手段をさらに備える請求項１又は２記載のロジック生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロジック生成装置に関する。
【背景技術】
【０００２】
従来から、制御対象からデータを収集しながら制御対象を監視すると共に、収集したデータ等に基づいて制御対象を制御する制御装置を備える制御システムがプラント等で用いられていることが知られている。制御システムに含まれる制御装置は、予め作成された制御ロジックを用いて各種の制御を行う（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−１３２５０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
制御装置で用いられる制御ロジックは、一般的に、以下の手順によって制御システムの開発者によって作成される。すなわち、開発者が制御対象の状態遷移を設計した後に、この状態遷移に対応した制御ロジックを例えばＦＢＤ（ファンクション・ブロック・ダイアグラム）言語を用いて作成すると共に、その制御ロジックの実行順序を規定する状態分岐フローを作成する。しかしながら、開発者が設計した制御対象の状態遷移に基づいて制御ロジックを作成する場合には、作業量が多くなりがちであり、作成コストが増大する。また、開発者が制御ロジック又は状態分岐フローを誤って作成する可能性もあり、精度の点からも改善の余地があった。
【０００５】
本発明は上記を鑑みてなされたものであり、より簡便に高い精度の制御ロジック及び状態分岐フローを生成可能なロジック生成装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明に係るロジック生成装置は、制御対象を制御する制御装置において解釈及び実行され、ＦＢＤ言語により作成された制御ロジックと、前記制御装置において前記制御ロジックを実行する順序を規定した状態分岐フローと、を生成するロジック生成装置であって、前記制御対象における状態遷移を指定する情報を取得する指定情報取得手段と、前記状態遷移を指定する情報から、前記制御ロジックに含まれる自動生成制御ロジック及び前記状態分岐フローを生成するための生成ルールを保持するルール保持手段と、前記ルール保持手段において保持する前記生成ルールに基づいて、前記状態遷移を指定する情報から前記制御ロジックに含まれる自動生成制御ロジック及び前記状態分岐フローを生成するロジック生成手段と、を備えることを特徴とする。
【０００７】
上記のロジック生成装置では、予め定められた生成ルールに基づいて、ロジック生成手段において状態遷移を指定する情報に対応した自動生成制御ロジックと、この自動生成制御ロジックを含む制御ロジックに対応した及び状態分岐フローが作成される。したがって、制御システムの開発者が制御ロジック及び状態分岐フローを作成する場合と比較して、制御ロジック及び状態分岐フローの作成に係るコストを低減させることができる。また、生成ルールに基づいて自動生成制御ロジック及び状態分岐フローを作成する構成とすることで、開発者による誤り等を減らすことができる。このように、ロジック生成装置によれば、より簡便に高い精度の制御ロジック及び状態分岐フローの生成を可能とする。
【０００８】
ここで、前記状態遷移を指定する情報には、状態遷移表又は状態遷移図と、当該状態遷移表又は当該状態遷移図における遷移イベントの発生条件を特定する情報と、当該状態遷移表又は当該状態遷移図における各状態での実行フローと、が含まれる態様とすることができる。
【０００９】
上記の構成とすることで、自動生成制御ロジック及び状態分岐フローを生成するための生成ルールの指定が容易となるため、ルール保持手段で保持する生成ルールの作成が容易になる。
【００１０】
また、前記状態遷移を指定する情報を作成する指定情報作成手段をさらに備える態様とすることができる。
【００１１】
このように、ロジック生成装置が指定情報作成手段を備えている場合、外部装置で作成した状態遷移を指定する情報をロジック生成装置に対して渡す必要がなくなる。また、状態遷移を指定する情報に修正が必要な場合には、容易に修正を行うことができる。このように、指定情報作成手段をロジック生成装置が備えている場合、ロジック生成に係る作業性が向上する。
【発明の効果】
【００１２】
本発明によれば、より簡便に高い精度の制御ロジック及び状態分岐フローを生成可能なロジック生成装置が提供される。
【図面の簡単な説明】
【００１３】
【図１】図１は、本発明の一実施形態に係る制御システムの概略構成図である。
【図２】図２は、制御装置において実行される一の制御サイクルに係るフローシートを示している。
【図３】図３は、制御ロジック及び状態分岐フローの生成方法を示すフローチャートである。
【図４】図４（Ａ）は状態遷移図の一例であり、図４（Ｂ）は図４（Ａ）に対応する状態遷移表の一例であり、図４（Ｃ）は図４（Ａ）及び図４（Ｂ）に対応する遷移イベントの発生条件を特定する情報の一例であり、図４（Ｄ）は、状態Ｓ１及び状態Ｓ２にそれぞれ対応付けられたＥｎｔｒｙアクション、Ｄｏアクション、Ｅｘｉｔアクションの実行フローを模式的に示したものである。
【図５】図５（Ａ）は、ルールＤＢにて保持している生成ルールを適用して生成した自動生成制御ロジックを含む制御ロジックであり、図５（Ｂ）は、図５（Ａ）の制御ロジックをタイミングチャートに反映して記述したものである。
【図６】図６は、２状態間の状態遷移に係る状態分岐フローの例である。
【図７】図７は、第１の変更例に係る状態遷移図である。
【図８】図８（Ａ）は、第１の変更例に係る図５（Ａ）のＣ２に対応するロジック群であり、図８（Ｂ）は、第１の変更例に係る図５（Ａ）のＣ３に対応するロジック群である。
【図９】図９は、第１の変更例に係る図５（Ａ）のＣ４に対応するロジック群である。
【図１０】図１０は、第１の変更例に係る状態分岐フローの例である。
【図１１】図１１は、第２の変更例に係る状態遷移図である。
【図１２】図１２は、第２の変更例に係るＣ２に対応するロジック群である。
【図１３】図１３は、第２の変更例に係るＣ３に対応するロジック群である。
【図１４】図１４は、第２の変更例に係るＣ４に対応するロジック群である。
【図１５】図１５は、第２の変更例に係る状態分岐フローの例である。
【発明を実施するための形態】
【００１４】
以下、添付図面を参照して、本発明を実施するための形態を詳細に説明する。なお、図面の説明においては同一要素には同一符号を付し、重複する説明を省略する。
【００１５】
図１は、本発明の一実施形態に係る制御システムの概略構成図である。制御システム１は例えばプラント等において適用されるシステムであり、制御対象となる装置の状態を示すデータ等を収集し、当該データ及びその他の情報に基づいて制御対象となる装置の制御を行うシステムである。
【００１６】
制御システム１は、ロジック生成装置１０、制御装置２０及び制御対象装置３０を含んで構成される。
【００１７】
ロジック生成装置１０は、制御対象装置３０の制御を制御装置２０が行うための制御ロジックと制御ロジックを実行する順序を規定した状態分岐フローとを生成する装置である。制御ロジックとはファンクション・ブロック・ダイアグラム（ＦＢＤ）言語で作成されたロジックプログラムであり、制御対象装置３０に係る情報に基づいた演算を実行するための複数のロジックにより構成される。また、状態分岐フローとは、制御ロジックの実行順序を規定すると共にその実行結果に基づく動作を規定するフローチャートである。ロジック生成装置１０の各機能部については後述する。ロジック生成装置１０により生成された制御ロジック及び状態分岐フローは、制御装置２０へ送られる。
【００１８】
ロジック生成装置１０は、ＣＰＵ（Central  Processing  Unit）、主記憶装置であるＲＡＭ（Random  Access  Memory）及びＲＯＭ（Read  Only  Memory）、制御装置２０等の他の機器との間の通信を行う通信モジュール、並びにハードディスク等の補助記憶装置等のハードウェアを備えるコンピュータとして構成される。そして、これらの構成要素が動作することにより、後述のロジック生成装置１０としての機能が発揮される。
【００１９】
制御装置２０は、制御対象装置３０からのデータを取得すると共に、制御ロジックを解釈して実行することで制御対象装置３０の制御に係る動作を行う。制御装置２０は、実行エンジン２１と入出力部２２とを備える。実行エンジン２１は、ロジック生成装置１０において生成された制御ロジックを解釈し、制御ロジックに記載された演算を実行する順序を規定した状態分岐フローに基づいて実行する機能を有する。入出力部２２は、制御対象装置３０からのデータ等を受信すると共に、実行エンジンにより制御ロジックを実行した結果に基づいて、制御対象装置３０に対して処理の実行等を指示する機能を有する。
【００２０】
制御対象装置３０は、制御システム１において制御装置２０による制御の対象となる装置であり、例えば、プラントにおける運転装置等が挙げられる。制御対象装置３０は、制御装置２０からの指示を受信すると、これに基づいて運転制御等を行う。また、制御対象装置３０は、制御装置２０からの指示に基づいて、自装置で取得された運転データ等を制御装置２０に対して送信する。このように、制御対象装置３０では、自装置の状態を示す情報を制御装置２０に対して送信し、自装置の状態に対応した指示を制御装置２０から受信することで、運転の制御が行われる。
【００２１】
なお、図１では制御システム１を構成する制御装置２０及び制御対象装置３０がそれぞれ１台である場合を示しているが、制御装置２０及び制御対象装置３０は制御システム１にそれぞれ複数含まれていてもよい。この場合、制御装置２０が複数の制御対象装置３０を制御する構成とすることもできる。
【００２２】
ロジック生成装置１０の各機能部について説明する。ロジック生成装置１０は、ユーザインタフェース１１に含まれる取得部１２（指定情報取得手段）と、ロジック生成部１３（ロジック生成手段）と、ルールＤＢ（データベース）１４（ルール保持手段）と、出力部１５と、を含んで構成される。
【００２３】
ユーザインタフェース１１は、ユーザによるロジック生成装置１０に対する入力及びユーザからの入力に対するロジック生成装置１０による処理の結果の出力を行う部分である。ユーザインタフェース１１には、取得部１２が含まれる。取得部１２は、ユーザから制御対象装置３０における状態遷移を指定する情報を取得する機能を有する。ロジック生成装置１０における制御ロジック及び状態分岐フローの生成は、ユーザインタフェース１１をユーザが操作することによってユーザから出される制御ロジック及び状態分岐フローの生成指示を契機に開始される。ユーザからの制御ロジック及び状態分岐フローの生成指示には、制御対象装置３０の状態遷移を指定する情報が含まれる。この状態遷移に係る情報に基づいて、制御ロジック及び状態分岐フローが生成される。取得部１２により取得された制御ロジック及び状態分岐フローの生成指示は、ロジック生成部１３へ送られる。
【００２４】
なお、本実施形態では、ユーザインタフェース１１をユーザが操作することにより、状態遷移を指定する情報をロジック生成装置１０において作成可能であるとする。この場合、ユーザインタフェース１１は、状態遷移を指定する情報を作成する指定情報作成手段としても機能する。なお、外部装置で生成された状態遷移を指定する情報を取得部１２にて取得する構成としてもよい。すなわち、ロジック生成装置１０で使用する状態遷移を指定する情報を作成する装置は、ロジック生成装置１０及び外部装置のどちらでもよい。ただし、ロジック生成装置１０が状態遷移を指定する情報を作成する機能を備えている場合、作成済みの状態遷移を指定する情報をロジック生成装置１０に対して渡す必要がなくなる。また、状態遷移を指定する情報に修正が必要な場合、容易に修正を行うことができる。
【００２５】
ロジック生成部１３は、取得部１２から送られた制御ロジック及び状態分岐フローの生成指示に基づいて、制御ロジック及び状態分岐フローを生成する機能を有する。ロジック生成部１３は、制御ロジック及び状態分岐フローの生成指示に含まれる状態遷移を指定する情報に基づいて、ルールＤＢ１４に保持された生成ルールに基づいて自動生成制御ロジック及び状態分岐フローを生成する。また、ロジック生成部１３は、自動生成制御ロジックと状態遷移を指定する情報とに基づいて制御ロジックを生成する機能も備えている。制御ロジックには、取得部１２において取得された状態遷移を指定する情報の一部が含まれるが、制御ロジックについての詳細は後述する。なお、ロジック生成部１３では、生成後の自動生成制御ロジック及び状態分岐フローが正しいものであるか（適切に動作するか）を確認するためのエラーチェックを併せて行う構成としてもよい。ロジック生成部１３により生成された制御ロジック及び状態分岐フローは、出力部１５へ送られる。
【００２６】
ルールＤＢ１４は、状態遷移を指定する情報に基づいて自動生成制御ロジック及び状態分岐フローを生成するための生成ルールを保持する機能を有する。ルールＤＢ１４において保持される生成ルールについて、及び、生成ルールに基づいてロジック生成部１３において自動生成制御ロジック及び状態分岐フローを生成する方法については、後述する。
【００２７】
出力部１５は、ロジック生成部１３において生成された制御ロジック及び状態分岐フローを制御装置２０に対して送信する機能を有する。出力部１５から制御装置２０に対して送信された制御ロジック及び状態分岐フローは、制御装置２０において解釈及び実行される。
【００２８】
次に、ロジック生成装置１０における制御ロジック及び状態分岐フローの生成について、説明する。
【００２９】
まず、制御装置２０において解釈及び実行される制御ロジック及び状態分岐フローについて図２を参照しながら説明する。図２は、制御装置２０において実行される一の制御サイクルに係るフローシートＦ１を示している。制御装置２０では、制御の単位（サイクル）毎に１つのフローシートが準備され、当該フローシートに示された処理を一定周期毎に実行することで、制御対象装置３０の制御を行っている。サイクル単位のフローシートＦ１には、状態遷移フローＦ２というブロックが含まれている。
【００３０】
制御装置２０において、フローシートＦ１に示されたフローに則った処理を行うとき、状態遷移フローＦ２のブロックでは、状態遷移フローＦ２にて示される処理を行うことが要求されている。この状態遷移フローＦ２のブロックに含まれるのが制御ロジック及び状態分岐フローである。すなわち、ロジック生成装置１０において生成される制御ロジック及び状態分岐フローは、状態遷移フローＦ２に用いられる。
【００３１】
状態遷移フローＦ２では、制御対象装置３０からの情報に基づいて制御対象装置３０の状態を切り替えるか否か、切り替えるのであればどの状態に切り替えるかを判定するフローであり、制御装置２０は、フローに則った判定の結果に基づいて、制御対象装置３０の状態の切り替えを指示する。ここでの状態とは、単純な場合であれば運転状態のＯＮ／ＯＦＦ等が挙げられるが、これに限定されるものではない。
【００３２】
なお、図２で示すフローシートＦ１では、フロー内のブロックが１つ（状態遷移フローＦ２）のみである場合を示しているが、制御対象装置３０を制御する際に用いられるフローシートには、複数のブロックが含まれている場合もあるし、フローの途中に分岐が含まれている場合もある。また、状態遷移フローに係るブロックが複数含まれている場合もある。制御ロジック及び状態分岐フローは、状態遷移フローに係る１ブロック毎に生成されるものである。
【００３３】
ロジック生成装置１０では、上記の状態遷移フローＦ２に用いられる制御ロジック及び状態分岐フローをユーザの指示により生成することができる。制御ロジック及び状態分岐フローの生成方法について、図３のフローチャートを参照しながら説明する。併せて、図４〜図１５の具体例を参照しながら、ロジック生成装置１０のルールＤＢ１４にて保持される生成ルールについても説明する。
【００３４】
図３に示すように、ロジック生成装置１０の取得部１２において、状態遷移を指定する情報を取得する（Ｓ１１）。本実施形態のロジック生成装置１０においては、状態遷移を指定する情報は、ユーザがユーザインタフェース１１を操作することにより生成される。
【００３５】
状態遷移を指定する情報とは、制御対象装置３０における動作の移行について指定する情報である。具体的には、状態遷移を指定する情報には、「状態遷移表又は状態遷移図」と、状態遷移表又は状態遷移図における「遷移イベントの発生条件を特定する情報」と、状態遷移表又は状態遷移図における「各状態での実行フロー」と、が含まれる。
【００３６】
状態遷移を指定する情報の例を図４に示す。図４（Ａ）は状態遷移図の一例であり、図４（Ｂ）は図４（Ａ）に対応する状態遷移表の一例である。また、図４（Ｃ）は図４（Ａ）（又は図４（Ｂ））に対応する遷移イベントの発生条件を特定する情報の一例であり、図４（Ａ）（又は図４（Ｂ））に対応する各状態での実行フローを模式的に示したものである。図４に示す例は状態遷移に係る最も単純な例であり、２つの状態の間を制御対象装置が移行する場合について示している。
【００３７】
図４（Ａ）の状態遷移図では、制御対象装置３０が２つの状態（Ｓ１、Ｓ２）の間を遷移可能であることを示している。状態Ｓ１及び状態Ｓ２には、それぞれＥｎｔｒｙアクション、Ｄｏアクション、Ｅｘｉｔアクションが対応付けられている。Ｅｎｔｒｙアクションとは、所定の状態（例えば状態Ｓ１）を開始する（入る）際に実行するアクション（制御対象装置３０における動作）を示している。また、Ｄｏアクションとは、所定の状態を継続しているときに実行するアクションを示している。また、Ｅｘｉｔアクションとは、所定の状態を終了する（出る）際に実行するアクションを示している。
【００３８】
また、図４（Ａ）に示す状態遷移図では、制御対象装置３０が状態Ｓ１にある場合に、遷移イベントＥ１２が発生すると、状態Ｓ１から状態Ｓ２から移行することを示している。遷移イベントＥ１２が発生して制御対象装置３０が状態Ｓ２に遷移する場合には、状態Ｓ１のＥｘｉｔアクションが実行された後に、状態Ｓ２のＥｎｔｒｙアクションが実行されることで、状態Ｓ２へ移行する。同様に、状態遷移図では、遷移イベントＥ２１が発生すると、状態Ｓ２から状態Ｓ１から移行することも示している。このように、状態遷移図には、各状態において実行されるアクション及び状態間を移行するための遷移イベントを特定する情報が含まれる。
【００３９】
図４（Ｂ）に示す状態遷移表は、状態遷移図と同じ情報を含んでいるものであり、記載方法を変更したものである。状態遷移表における行は状態を表していて、各行にて各状態で実行するアクションが対応付けられている。また、状態遷移表における列は遷移イベントの発生条件と、遷移イベントが発生した際にどの状態へ遷移するかを示している。このように、状態遷移図又は状態遷移表を用いることで、制御対象装置３０が取り得る状態の種類及びその移行に係る条件を把握することができる。
【００４０】
図４（Ｃ）は、遷移イベントの発生条件を特定する情報の一例である。図４（Ｃ）では、図４（Ａ）の状態遷移図（又は図４（Ｂ）の状態遷移表）における遷移イベントＥ１２及び遷移イベントＥ２１の発生条件を示している。図４（Ｃ）の例では、ＤＩ０００１条件を満たし、且つ（ＡＮＤ）、＄ＬＬ０００１条件を満たした場合に、遷移イベントＥ１２が発生することを示している。また、ＤＩ０００２条件、又は（ＯＲ）、＄ＬＬ００１０条件を満たした場合に、遷移イベントＥ２１が発生することを示している。図４（Ｃ）で示す各条件には、例えば制御対象装置３０から送信されるデータの数値範囲等を用いることができる。
【００４１】
図４（Ｄ）は、状態Ｓ１及び状態Ｓ２にそれぞれ対応付けられたＥｎｔｒｙアクション、Ｄｏアクション、Ｅｘｉｔアクションの実行フローを模式的に示したものである。このように、図４（Ａ），（Ｂ）に示した各アクションに対応する実行フローをそれぞれ準備する。ここでの実行フローとは、制御対象装置３０における動作をそれぞれ指定するものであり、例えば、Ｓ１＿ＥｎｔｒｙＦｌｏｗとしては、制御対象装置３０における特定の機能に係る電源をＯＮにする動作を実行させるフローを適用することができる。
【００４２】
状態遷移を指定する情報として、上述の「状態遷移表又は状態遷移図」、「遷移イベントの発生条件を特定する情報」、及び、「各状態における実行フロー」をロジック生成装置１０の取得部１２が取得すると、ロジックの生成に係る処理が開始される。
【００４３】
図３に戻り、取得部１２で取得された状態遷移を指定する情報は、ロジック生成部１３へ送られた後、ロジック生成部１３において、ルールＤＢ１４にて保持された情報に基づいて生成される自動生成制御ロジックを含む制御ロジックを生成する（Ｓ１２）。
【００４４】
制御ロジックとは、アクティブな状態を示す内部フラグと、状態遷移の発生を示す内部フラグとを生成するためのロジック群であり、ＦＢＤ言語で生成されている。制御ロジックの例を図５に示す。図５（Ａ）は、制御ロジックを生成した例である。また、図５（Ｂ）は、図５（Ａ）に示すロジック群をタイミングチャートに反映して記述したものである。なお、図５（Ａ）のＣ１に記載されたロジック群は、取得部１２により取得された遷移イベントの発生条件を特定する情報（図４（Ｃ）参照）である。Ｃ１に示すロジック群に記載された情報は、状態遷移を指定する情報の一部であり、ユーザから取得される情報である。なお、ロジック生成部１３において、ユーザから取得した状態遷移を指定する情報に基づいて、ＦＢＤ言語で生成されたロジック群（図５（Ａ）に示すＣ１に記載されたロジック群）を生成する構成としてもよい。また、ロジック生成部１３では、ルールＤＢ１４にて保持している生成ルールを適用して図５（Ａ）のＣ２〜Ｃ４に記載するロジック群を生成する。本実施形態における自動生成制御ロジックとは、図５（Ａ）に示すロジック群のうち、Ｃ２〜Ｃ４で示すロジック群を指す。なお、Ｃ１〜Ｃ４に示すロジック群をまとめたものをブロックシートと呼ぶ場合がある。
【００４５】
図５（Ａ）のＣ２は、状態Ｓ１から状態Ｓ２への内部処理用の遷移フラグ（Ｓ１２＿Ｃｏｎｄ）又は状態Ｓ２から状態Ｓ１への内部処理用の遷移フラグ（Ｓ２１＿Ｃｏｎｄ）を立てるためのロジック群である。例えば、Ｃ２に記載された１つ目のロジックは、現在の状態がＳ１（Ｓ１＿Ａｃｔ）であって、且つ（ＡＮＤ）、遷移イベントＥ１２が発生した場合には、Ｓ１２＿Ｃｏｎｄフラグを立てることが示されている。
【００４６】
図５（Ａ）のＣ３は、内部のアクティブな状態を示すフラグを立てるためのロジック群である。内部が状態Ｓ１であると判定される場合には、Ｓ１＿Ａｃｔフラグを立て、状態Ｓ２であると判定される場合には、Ｓ２＿Ａｃｔフラグを立てるロジックが示されている。
【００４７】
図５（Ａ）のＣ４は、状態に応じた処理を実行するための判定に用いられるフラグを立てるためのロジック群である。例えば、内部状態が状態Ｓ１（Ｓ１＿Ａｃｔ）である場合には、立ち上がりを検出した場合（ＰＬＳ）には、Ｓ１＿Ｅｎｔｒｙフラグが立てられる。また、立ち下がりを検出した場合（ＰＬＦ）には、Ｓ１＿Ｅｘｉｔフラグが立てられる。また、いずれの場合にもＳ１＿Ａｌｌフラグが立てられる。同様に内部状態が状態Ｓ２（Ｓ２＿Ａｃｔ）の場合にも、立てるフラグが決定される。
【００４８】
図５（Ｂ）は、図５（Ａ）のＣ１〜Ｃ４に係るフラグと制御対象装置３０の動作との対応関係を示したものであり、制御対象装置３０が状態Ｓ１と状態Ｓ２との間を遷移する場合の各アクションとの対応関係を示したものである。図５（Ｂ）は参考のために示したものであり、ロジック生成装置１０では、図５（Ａ）に示す制御ロジックのみが生成される。
【００４９】
図３に戻り、ロジック生成部１３では、自動生成制御ロジックを含む制御ロジックを生成した後に、ルールＤＢ１４にて保持された情報に基づいて状態分岐フローを生成する（Ｓ１３）。
【００５０】
２状態間の状態遷移に係る状態分岐フローを図６に示す。ロジック生成装置１０では、状態分岐フローを状態遷移フローＦ２として一の制御サイクルに係るフローシートＦ１に埋め込むことから、状態分岐フローをフローシートと呼ぶ場合がある。
【００５１】
図６に示す状態分岐フローによれば、まず、Ｃ２〜Ｃ４に係る制御ロジックの演算を実行する（Ｓ２１）。この際、Ｃ２，Ｃ３，Ｃ４の順にロジックの演算を実行することが規定されている。次に、制御ロジックを実行した結果、Ｓ１＿Ａｌｌのフラグが立っているか否かが判定される（Ｓ２２）。ここで、Ｓ１＿Ａｌｌフラグが立っていると判定された場合（Ｓ２２−ＹＥＳ）、Ｓ１＿Ｅｎｔｒｙフラグが立っているか（Ｓ２３）、Ｓ１＿Ｅｘｉｔフラグが立っているか（Ｓ２４）の順に判定される。Ｓ１＿Ｅｎｔｒｙフラグが立っている場合（Ｓ２３−ＹＥＳ）には、Ｓ１＿ＥｎｔｒｙＦｌｏｗを実行する（Ｓ２５）。また、Ｓ１＿Ｅｘｉｔフラグが立っている場合（Ｓ２４−ＹＥＳ）には、Ｓ１＿ＥｘｉｔＦｌｏｗを実行する（Ｓ２６）。いずれのフラグも立っていない場合（Ｓ２３−Ｎｏ，Ｓ２４−Ｎｏ）の場合には、Ｓ１−ＤｏＦｌｏｗを実行する（Ｓ２７）。
【００５２】
一方、Ｓ１＿Ａｌｌフラグが立っていないと判定された場合（Ｓ２２−Ｎｏ）、Ｓ２＿Ａｌｌのフラグが立っているか否かが判定される（Ｓ２８）。Ｓ２＿Ａｌｌフラグが立っていると判定された場合（Ｓ２８−ＹＥＳ）、Ｓ２＿Ｅｎｔｒｙフラグが立っているか（Ｓ２９）、Ｓ２＿Ｅｘｉｔフラグが立っているか（Ｓ３０）の順に判定される。Ｓ２＿Ｅｎｔｒｙフラグが立っている場合（Ｓ２９−ＹＥＳ）には、Ｓ２＿ＥｎｔｒｙＦｌｏｗを実行する（Ｓ３１）。また、Ｓ２＿Ｅｘｉｔフラグが立っている場合（Ｓ３０−ＹＥＳ）には、Ｓ２＿ＥｘｉｔＦｌｏｗを実行する（Ｓ３２）。いずれのフラグも立っていない場合（Ｓ２９−Ｎｏ，Ｓ３０−Ｎｏ）の場合には、Ｓ２−ＤｏＦｌｏｗを実行する（Ｓ３２）。
【００５３】
また、Ｓ１＿Ａｌｌフラグ及びＳ２＿Ａｌｌフラグの双方とも立っていないと判定された場合（Ｓ２２−Ｎｏ，Ｓ２８−Ｎｏ）、いずれの処理も行わずフローを終了する。
【００５４】
ロジック生成部１３では、図５（Ａ）のＣ２〜Ｃ４に示す自動生成制御ロジックを含む制御ロジック（Ｃ１〜Ｃ４）と、図６に示す状態分岐フローとを生成する。
【００５５】
図３に戻り、ロジック生成部１３では、制御ロジック及び状態分岐フローを生成した後に、これらを生成結果として出力部１５から制御装置２０に対して出力する（Ｓ１４）。以上により、ロジック生成装置１０におけるロジック生成に係る処理が終了する。
【００５６】
なお、図４（Ａ）の状態遷移図又は図４（Ｂ）の状態遷移表で示したモデル、すなわち制御対象装置３０が２状態間を遷移するモデルは、状態遷移に係る最も単純なモデルである。したがって、図５（Ａ）のＣ２〜Ｃ４で示した制御ロジック及び図６で示した状態分岐フローは、状態遷移図又は状態遷移表が複雑になった場合にも基本となるものである。したがって、ロジック生成装置１０では、図５（Ａ）のＣ２〜Ｃ４で示した制御ロジック及び図６で示した状態分岐フローのように、制御対象装置３０の動作において基本となる制御ロジック及び状態分岐フローをルールＤＢ１４にて保持しておく。そして、状態遷移図又は状態遷移表の状態の数が増加する場合又は条件分岐等が複雑になる場合には、まず上述の制御ロジック及び状態分岐フローを読み込み、これに追加や変更等を加えることで、状態遷移を指定する情報に対応した制御ロジック及び状態分岐フローを生成する。追加や変更を行う場合のルールもルールＤＢ１４において保持しておくことで、ユーザ等から取得した状態遷移を指定する情報に応じた制御ロジック及び状態分岐フローを生成することができる。
【００５７】
図７〜図１０を参照しながら、制御ロジック及び状態分岐フローの第１の変更例を説明する。図７は、第１の変更例に係る状態遷移図であり、図４（Ａ）の状態遷移図に対応する図である。図４（Ａ）と比較すると、破線部Ｄ１に囲った部分、すなわち、状態Ｓ２から遷移可能な状態Ｓ３が追加されていて、状態Ｓ３との間の遷移に係る遷移イベントＥ２３及び遷移イベントＥ３２に係る部分が規定されている。この状態遷移図に対応した制御ロジック及び状態分岐フローをロジック生成装置１０で生成する場合、図７の状態遷移図と、この状態遷移図に対応した「遷移イベントの発生条件を特定する情報」及び「各状態における実行フロー」と、が状態遷移を指定する情報として取得部１２により取得される。
【００５８】
図８（Ａ），（Ｂ）及び図９は、ルールＤＢ１４において保持される生成ルールに基づいて、図７の状態遷移図に対応した自動生成制御ロジックを生成した例を示す。図８（Ａ）は、図５（Ａ）のＣ２に対応するロジック群であり、図８（Ｂ）は、図５（Ａ）のＣ３に対応するロジック群であり、図９は、図５（Ａ）のＣ４に対応するロジック群である。図５（Ａ）のＣ２〜Ｃ４に示すロジック群と比較すると、破線Ｄ２〜Ｄ５で示す部分が追加又は変更されている。破線Ｄ２〜Ｄ５で示す部分は、状態Ｓ３及び遷移イベントＥ２３，Ｅ３２を追加することによる自動生成制御ロジックであり、状態Ｓ１と状態Ｓ２との間を遷移する場合と基本的に同じ趣旨のロジックが追加されているものである。
【００５９】
図１０は、ルールＤＢ１４において保持される生成ルールに基づいて、図７の状態遷移図に対応した状態分岐フローを生成した例を示す。図６に示す状態分岐フローと比較すると、破線Ｄ６で示すが追加されている。破線Ｄ６で示した部分のフローは、状態Ｓ１又は状態Ｓ２と同様の分岐のフローとなっている。
【００６０】
このように、図４（Ａ）に示す基本の状態遷移図（又は図４（Ｂ）に示す基本の状態遷移表）と比較して、状態Ｓ２から状態Ｓ３への遷移が追加される場合に、基本の制御ロジック及び状態分岐フローに対して追加又は変更を行う箇所は予め設定することができる。そこで、この追加又は変更を行う箇所を特定する情報を生成ルールとしてルールＤＢ１４において保持しておくことで、遷移する状態の数が増えた場合にも対応することができる。
【００６１】
次に、図１１〜図１５を参照しながら、制御ロジック及び状態分岐フローの第２の変更例を説明する。図１１は、図４（Ａ）の状態遷移図に対応する図であって、図７に示す状態遷移図からさらに変更を加えたものである。図７と比較すると、破線Ｄ７に囲った部分、すなわち、状態Ｓ３から状態Ｓ１又は状態Ｓ２へ遷移する際のイベントに対応した接続線（矢印）が追加されている。この状態遷移図に対応した制御ロジック及び状態分岐フローをロジック生成装置１０で生成する場合、図１１の状態遷移図と、この状態遷移図に対応した「遷移イベントの発生条件を特定する情報」及び「各状態における実行フロー」と、が状態遷移を指定する情報として取得部１２により取得される。
【００６２】
図１２〜図１４は、ルールＤＢ１４において保持される生成ルールに基づいて、図１１の状態遷移図に対応した自動生成制御ロジックを生成した例を示す。図１２は、図５（Ａ）及び８（Ａ）のＣ２に対応するロジック群であり、図１３は、図５（Ａ）及び図８（Ｂ）のＣ３に対応するロジック群であり、図１４は、図５（Ａ）及び図９のＣ４に対応するロジック群である。図８（Ａ），（Ｂ）及び図９に示した３状態を遷移する場合のロジック群Ｃ２〜Ｃ４と比較すると、破線Ｄ８（図１２）及び破線Ｄ９〜Ｄ１１（図１３）で示す部分が追加又は変更されている。なお、図１２及び図１３では、内部処理用の遷移フラグの名称（例えばＳ１２＿Ｃｏｎｄ１）が前述の例（Ｓ１２＿Ｃｏｎｄ）から変更されているが、遷移イベントの追加に伴って遷移イベントを互いに区別するために名称を変更したものである。Ｓ３２＿Ｃｏｎｄ２が遷移イベントＥ３２（Ｅ３）に対応し、Ｓ３２＿Ｃｏｎｄ３が遷移イベントＥ３２（Ｅ４）に対応し、Ｓ３１＿Ｃｏｎｄ１が遷移イベントＥ３１（Ｅ１）に対応する。
【００６３】
図１５は、ルールＤＢ１４において保持される生成ルールに基づいて、図１１の状態遷移図に対応した状態分岐フローを生成した例を示す。図１０に示した３状態を遷移する場合の状態分岐フローからの変更はない。
【００６４】
このように、図７に示す３状態を遷移する場合の状態遷移図（又は状態遷移表）と比較して、状態Ｓ３から状態Ｓ１又は状態Ｓ２への遷移が追加される場合に、制御ロジック及び状態分岐フローにおいて追加又は変更を行う箇所は予め設定することができる。そこで、この追加又は変更を行う箇所を特定する情報を生成ルールとしてルールＤＢ１４において保持しておくことで、遷移する状態の数が増えた場合にも対応することができる。
【００６５】
上記では、遷移する状態の数が３つの場合まで説明したが、遷移する状態の数又は遷移イベントの数が増えた状態遷移図又は状態遷移表についても、上記の生成ルールを組み合わせて適用することで、ロジック生成装置１０によって自動生成制御ロジックを含む制御ロジック及び状態分岐フローを生成することができる。また、上記の生成ルールの他にも予め生成ルールを生成しておいてルールＤＢ１４で保持しておくことで、より複雑な状態遷移図又は状態遷移表に対応した制御ロジック及び状態分岐フローの生成が可能となる。
【００６６】
このように、本実施形態に係るロジック生成装置１０によれば、取得部１２において状態遷移を指定する情報を取得すると、この状態遷移を指定する情報に基づいて、ロジック生成部１３において制御ロジック及び状態分岐フローが生成される。
【００６７】
従来は、制御ロジック及び状態分岐フローは、制御システムの開発者によって作成されていた。また、従来からＦＢＤ言語（ファンクション・ブロック・ダイアグラム）は視覚的に分かりやすいグラフィカルな言語であるとの認識から、ＦＢＤ言語を用いたプログラムの作成は比較的容易であると考えられていた。したがって、状態遷移を設計した開発者自身が制御ロジックのようなＦＢＤ言語を用いたロジックプログラムの作成を行うと、効率よく作業を行うことができると考えられていた。しかしながら、状態の遷移が複雑な場合には、作成すべき制御ロジック及び状態分岐フローも複雑となるため、作成に係る作業量が増大するため作成コストも増大する。また、作成する制御ロジック及び状態分岐フローが増加すると、その中にミスが含まれる可能性も増加する。したがって、誤った制御ロジック及び状態分岐フローが作成される可能性があり、そのチェック及び修正に係る作業も増える。
【００６８】
これに対して、本実施形態に係るロジック生成装置１０では、予め定められた生成ルールに基づいて、ロジック生成部１３において状態遷移を指定する情報に対応した自動生成制御ロジック及び状態分岐フローが作成される。したがって、制御システムの開発者が制御ロジック及び状態分岐フローを全て作成する場合と比較して、制御ロジックのうち自動生成制御ロジックに対応する部分及び状態分岐フローの作成に係るコストを低減させることができる。また、予め作成した生成ルールに誤りがなければ、生成ルールに則って作成した制御ロジック及び状態分岐フローに誤りが含まれる余地はない。したがって、ロジック生成装置１０は、より高い精度の制御ロジック及び状態分岐フローを作成可能である。
【００６９】
また、状態遷移を指定する情報に、状態遷移表又は状態遷移図と、当該状態遷移表又は当該状態遷移図における遷移イベントの発生条件を特定する情報と、当該状態遷移表又は当該状態遷移図における各状態での実行フローと、が含まれている場合、上記実施形態で示したように制御ロジック及び状態分岐フローを生成するための生成ルールが分かりやすいため、ルールＤＢにて保持する生成ルールをシステム開発者が容易に設計することができる。
【００７０】
また、ロジック生成装置１０において、状態遷移を指定する情報を作成する指定情報作成手段を備えている場合、作成済みの状態遷移を指定する情報をロジック生成装置１０に対して渡す必要がなくなる。また、状態遷移を指定する情報に修正が必要な場合、容易に修正を行うことができる。このように、指定情報作成手段としての機能をロジック生成装置１０が備えている場合、ロジック生成に係る作業性が向上する。
【００７１】
以上、本発明の実施形態に係るロジック生成装置について説明したが、上述した実施形態は本発明の一例を示すものである。本発明に係るロジック生成装置は、上記実施形態に限られるものではなく、各請求項に記載した要旨を変更しない範囲で変形し、又は他のものに適用したものであってもよい。
【００７２】
例えば、ロジック生成装置１０は、上記実施形態で説明したように１台の装置によって実現されていてもよいし、複数台の装置の組み合わせによって実現されていてもよい。
【００７３】
また、上記実施形態では、状態遷移を指定する情報に、状態遷移表又は状態遷移図と、当該状態遷移表又は当該状態遷移図における遷移イベントの発生条件を特定する情報と、当該状態遷移表又は当該状態遷移図における各状態での実行フローと、が含まれている場合について説明したが、これに限定されるものではない。制御対象装置３０を制御するための状態遷移に係る諸条件及び諸条件に基づく動作を規定する情報であれば、その形式は特に限定されない。ただし、状態遷移を指定する情報の形式に応じて、ロジック生成装置１０のルールＤＢ１４において保持される情報（生成ルール）の形式も変更する必要がある。
【００７４】
また、ロジック生成装置１０において、複数の制御対象装置３０に係る制御ロジック及び状態分岐フローを作成する場合、制御対象装置３０毎に異なる生成ルールを用いて制御ロジック及び状態分岐フローを作成する構成としてもよい。その場合、ルールＤＢ１４では、制御対象装置３０毎に異なる生成ルールを保持しておくことができる。また、その場合には、状態遷移を指定する情報には、対象の装置を特定する情報を対応付ける構成とすることが好ましい。
【００７５】
また、上記実施形態では、制御装置２０において実行される一の制御サイクルをフローシートＦ１にまとめた構成としているが、サイクル毎の処理をフローシートに個別にまとめる構成には限定されない。また、ロジック生成装置１０において作成された制御ロジック及び状態分岐フローが、フローシートＦ１における一つのブロックとなる構成には限定されない。すなわち、制御装置２０における制御ロジック及び状態分岐フローの格納方法や取り扱い方法については、適宜変更することができる。
【符号の説明】
【００７６】
１  制御システム
１０  ロジック生成装置
１１  ユーザインタフェース
１２  取得部
１３  ロジック生成部
１４  ルールＤＢ
１５  出力部
２０  制御装置
２１  実行エンジン
２２  入出力部
３０  制御対象装置
【図１】
0006620432.tif 000002
【図２】
0006620432.tif 000003
【図３】
0006620432.tif 000004
【図４】
0006620432.tif 000005
【図５】
0006620432.tif 000006
【図６】
0006620432.tif 000007
【図７】
0006620432.tif 000008
【図８】
0006620432.tif 000009
【図９】
0006620432.tif 000010
【図１０】
0006620432.tif 000011
【図１１】
0006620432.tif 000012
【図１２】
0006620432.tif 000013
【図１３】
0006620432.tif 000014
【図１４】
0006620432.tif 000015
【図１５】
0006620432.tif 000016