(57)【要約】【課題】複数の制御ロジックを用いることに起因する制御装置間での制御演算結果の不一致を回避可能な多重化制御装置を提供する。【解決手段】多重化制御装置の備える複数の制御ユニットは、信号利用ロジック及び信号生成ロジックのうち、非周期最短ロジックよりも演算周期が短い割込制御ロジックが実行されていない空き時間に、非周期最短ロジックを構成する複数の演算要素を実行順に実行するとともに、信号生成ロジックの実行により得られた信号を参照して信号利用ロジックを実行するように構成され、割込制御ロジックの演算周期毎の同期ポイントにおいて、非周期最短ロジックの演算要素の実行情報を相互に交換して、最も多くの演算要素の実行を終えた先行制御ユニットを特定し、各制御ユニットが、同期ポイントにおいて先行制御ユニットが実行を終えた演算要素の実行完了まで非周期最短ロジックを優先して実行するように構成される。【選択図】  図５
2016081329.tif 000002
【特許請求の範囲】
【請求項１】
信号利用ロジックおよび１つ以上の信号生成ロジックを含む複数の制御ロジックを実行するための多重化制御装置であって、
前記複数の制御ロジックのうち演算周期が最短である周期最短ロジック以外の非周期最短ロジックの各々よりも演算周期が短い割込制御ロジックが実行されていない空き時間に、各々の前記非周期最短ロジックを構成する複数の演算要素を実行順に実行するとともに、前記信号生成ロジックの実行により得られた信号を参照して前記信号利用ロジックを実行するようにそれぞれが構成された複数の制御ユニットを備え、
前記複数の制御ユニットは、
各々の前記非周期最短ロジックよりも短い前記割込制御ロジックのそれぞれの演算周期毎に少なくとも一つずつ設定される同期ポイントにおいて、各々の前記非周期最短ロジックの前記演算要素の実行情報を相互に交換して、最も多くの前記演算要素の実行を終えた先行制御ユニットを前記非周期最短ロジックごとに特定し、
少なくとも前記先行制御ユニットを除く他の制御ユニットが、前記同期ポイントにおいて又は前記同期ポイントの直前において前記先行制御ユニットが実行を終えた前記演算要素の実行を少なくとも完了するまで各々の前記非周期最短ロジックを優先して実行するように構成され、
前記複数の制御ユニットは、前記複数の制御ロジックのうち少なくとも１つの制御ロジックの演算結果を比較して、各々の制御ユニットの異常を検出するように構成されたことを特徴とする多重化制御装置。
【請求項２】
前記同期ポイントは、前記割込制御ロジックの各々の演算周期毎に１つずつだけ設定されることを特徴とする請求項１に記載の多重化制御装置。
【請求項３】
前記同期ポイントは、前記割込制御ロジックの各々の実行開始タイミングであることを特徴とする請求項２に記載の多重化制御装置。
【請求項４】
前記複数の制御ユニットの各々は、前記複数の制御ロジックの演算周期の粒度を示す単位期間毎に設定されるタイマー割込みポイントにてタイマー割込み処理を実行可能に構成されており、
前記同期ポイントは、前記タイマー割込みポイントに設定されることを特徴とする請求項１乃至３の何れか一項に記載の多重化制御装置。
【請求項５】
前記複数の制御ロジックは、２以上の信号生成ロジックを含み、
前記同期ポイントは、前記信号利用ロジック及び前記２以上の信号生成ロジックの演算周期の最大公約数で表される周期毎に設定されるポイントを含むことを特徴とする請求項１乃至４の何れか一項に記載の多重化制御装置。
【請求項６】
制御対象の状態を示す信号を検出するための状態監視部と、
前記状態監視部によって検出された前記信号に基づいて、前記制御対象を制御するための制御機器に与える制御信号を生成するための請求項１乃至５の何れか一項に記載の多重化制御装置と、を備え、
前記多重化制御装置は、前記制御ユニットの各々により独立して前記制御信号を生成し、前記複数の制御ユニットからの前記制御信号に基づいて、前記制御信号を前記制御機器に与えるように構成されたことを特徴とする機器制御システム。
【請求項７】
複数の制御ユニットを用いて、信号利用ロジックおよび１つ以上の信号生成ロジックを含む複数の制御ロジックを実行するための多重化制御方法であって、
前記複数の制御ユニットの各々について、前記複数の制御ロジックのうち演算周期が最短である周期最短ロジック以外の非周期最短ロジックの各々よりも演算周期が短い割込制御ロジックが実行されていない空き時間に、各々の前記非周期最短ロジックを構成する複数の演算要素を実行順に実行するとともに、前記信号生成ロジックの実行により得られた信号を参照して前記信号利用ロジックを実行するロジック実行ステップと、
各々の前記非周期最短ロジックよりも短い前記割込制御ロジックのそれぞれの演算周期毎に少なくとも一つずつ設定される同期ポイントにおいて、各々の前記非周期最短ロジックの前記演算要素の実行情報を前記複数の制御ユニット間で相互に交換する同期情報交換ステップと、
前記実行情報交換ステップにおいて前記複数の制御ユニット間で相互に交換された前記演算要素の実行情報に基づいて、最も多くの前記演算要素の実行を終えた先行制御ユニットを前記非周期最短ロジックごとに特定する先行制御ユニット特定ステップと、
少なくとも前記先行制御ユニットを除く他の制御ユニットについて、前記同期ポイントにおいて又は前記同期ポイントの直前において前記先行制御ユニットが実行を終えた前記演算要素の実行を少なくとも完了するまで、各々の前記非周期最短ロジックを優先して実行する同期実行ステップと、
前記複数の制御ユニット間における前記複数の制御ロジックのうち少なくとも１つの制御ロジックの演算結果の比較により、各々の制御ユニットの異常を検出する異常検出ステップと、を備えることを特徴とする多重化制御方法。
【請求項８】
前記同期ポイントは、前記割込制御ロジックの各々の演算周期毎に１つだけ設定されることを特徴とする請求項７に記載の多重化制御方法。
【請求項９】
前記同期ポイントは、前記割込制御ロジックの各々の実行開始タイミングであることを特徴とする請求項８に記載の多重化制御方法。
【請求項１０】
前記複数の制御ユニットの各々は、前記複数の制御ロジックの演算周期の粒度を示す単位期間毎に設定されるタイマー割込みポイントにてタイマー割込み処理を実行可能に構成されており、
前記同期ポイントは、前記タイマー割込みポイントに設定されることを特徴とする請求項７乃至９の何れか一項に記載の多重化制御方法。
【請求項１１】
前記複数の制御ロジックは、２以上の信号生成ロジックを含み、
前記同期ポイントは、前記信号利用ロジック及び前記２以上の信号生成ロジックの演算周期の最大公約数で表される周期毎に設定されるポイントを含むことを特徴とする請求項７乃至１０の何れか一項に記載の多重化制御方法。
【請求項１２】
制御対象の状態を示す信号を検出するための状態監視ステップと、
請求項７乃至１１の何れか一項に記載の多重化制御方法により、前記状態監視ステップにおいて検出された前記信号に基づいて、前記制御対象を制御するための制御機器に与える制御信号を生成する制御信号生成ステップと、を備え、
前記制御信号生成ステップでは、前記制御ユニットの各々により独立して前記制御信号を生成し、前記複数の制御ユニットからの前記制御信号に基づいて、前記制御信号を前記制御機器に与えることを特徴とする機器制御方法。
【請求項１３】
前記複数の制御ユニットは、前記先行制御ユニットを含めた全ての制御ユニットが、前記同期ポイントにおいて又は前記同期ポイントの直前において前記先行制御ユニットが実行を終えた前記演算要素の次の演算要素の実行を完了するまで各々の前記非周期最短ロジックを優先して実行するように構成されたことを特徴とする請求項１乃至５の何れか一項に記載の多重化制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、多重化制御装置及び方法並びに機器制御システム及び方法に関する。
【背景技術】
【０００２】
制御装置によって信頼性や安全性の高い制御を行うために、制御装置を多重化させる場合がある。
多重化の方式として、例えば、同期型の多重化方式が知られている。同期型の多重化方式では、例えば、複数の制御装置の各々において、同一の入力データ及び同一制御ロジックを用いて制御演算を行い、各制御装置での演算結果を比較してその比較結果に応じた信号を制御対象の制御に用いる。この際、制御演算のタイミングを複数の制御装置間で揃える（同期させる）ことで、各制御装置が正常な場合には、各制御装置において同一の演算結果が得られるようにしている。
【０００３】
例えば、特許文献１に記載される多重化制御装置は、このような同期型の多重方式の一例である。特許文献１に記載の多重化制御装置では、３台の制御装置の制御演算処理部に同一の入力信号を入力して各制御装置にて制御演算を行っている。また、最も優先度の高い制御装置から他の制御演算装置へ同期信号を送って、制御演算処理の開始を一定の演算周期毎に揃えるようになっている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開昭６３−２６２７０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述したような同期型の多重化方式を採用していても、各制御装置において複数の制御ロジックを異なる演算周期で実行させ、かつ、一つの制御ロジックの演算結果を他の制御ロジックで参照するような場合においては、複数の装置間で参照タイミングがずれて、異なる演算周期の演算結果を参照してしまう場合がある。
【０００６】
この点、特許文献１には、複数の制御ロジックを異なる演算周期で実行させることについて記載されておらず、複数の制御ロジックを用いることに起因して複数の制御装置間で生じる制御演算結果の不一致を回避するための対策については何ら記載されていない。
【０００７】
上記の事情に鑑みて、本発明の少なくとも幾つかの実施形態は、複数の制御ロジックを異なる演算周期で実行させる複数の制御ユニット（制御装置）において、複数の制御ロジックを用いることに起因する制御演算結果の不一致を回避可能な多重化制御装置及び方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
（１）本発明の少なくとも一実施形態に係る多重化制御装置は、
信号利用ロジックおよび１つ以上の信号生成ロジックを含む複数の制御ロジックを実行するための多重化制御装置であって、
前記複数の制御ロジックのうち演算周期が最短である周期最短ロジック以外の非周期最短ロジックの各々よりも演算周期が短い割込制御ロジックが実行されていない空き時間に、各々の前記非周期最短ロジックを構成する複数の演算要素を実行順に実行するとともに、前記信号生成ロジックの実行により得られた信号を参照して前記信号利用ロジックを実行するようにそれぞれが構成された複数の制御ユニットを備え、
前記複数の制御ユニットは、
各々の前記非周期最短ロジックよりも短い前記割込制御ロジックのそれぞれの演算周期毎に少なくとも一つずつ設定される同期ポイントにおいて、各々の前記非周期最短ロジックの前記演算要素の実行情報を相互に交換して、最も多くの前記演算要素の実行を終えた先行制御ユニットを前記非周期最短ロジックごとに特定し、
少なくとも前記先行制御ユニットを除く他の制御ユニットが、前記同期ポイントにおいて又は前記同期ポイントの直前において前記先行制御ユニットが実行を終えた前記演算要素の実行を少なくとも完了するまで前記非周期最短ロジックを優先して実行するように構成され、
前記複数の制御ユニットは、前記複数の制御ロジックのうち少なくとも１つの制御ロジックの演算結果を比較して、各々の制御ユニットの異常を検出するように構成される。
【０００９】
上記（１）の構成では、各々の前記非周期最短ロジックよりも短い前記割込制御ロジックのそれぞれの演算周期毎に設定された同期ポイントにおいて、全ての制御ユニットにおいて、割込制御ロジックよりも優先して、少なくとも非周期最短ロジックにおける同一の演算要素まで（すなわち先行制御ユニットが実行を終えた演算要素まで）実行するようにした。このため、少なくとも各割込制御ロジックの周期毎に、全ての制御ユニットで非周期最短ロジックそれぞれの進行段階が揃うこととなる。よって、信号利用ロジックが各信号生成ロジックの演算結果を参照するタイミングにおいて、全ての制御ユニットで、各信号生成ロジックの同一周期での演算結果を参照することとなる。すなわち、上記（１）の構成によれば、信号利用ロジックにおける参照タイミングを全ての制御ユニットで揃えることができるため、複数の制御ロジックを用いることに起因する制御演算結果の不一致を回避することができる。
なお、本明細書において、演算要素とは実行命令の単位を指し、例えば、ファンクションブロック図における１つのファンクションブロック、又はラダー言語におけるニーモニック表現の１実行命令等のことである。
【００１０】
（２）幾つかの実施形態では、上記（１）の構成において、前記同期ポイントは、前記割込制御ロジックの各々の演算周期毎に１つずつだけ設定される。
上記（２）の構成では、同期ポイントを各割込制御ロジックの演算周期毎に１つずつだけ設けたので、同期ポイントをそれ以上設ける場合に比べて、制御ユニット間での同期の頻度、すなわち、非周期最短ロジックの演算要素の実行情報を相互に交換する頻度を少なくすることができる。よって、同期を行う際の制御ユニット間での通信を低減することができ、制御ユニットのオーバヘッドを低減することができる。
【００１１】
（３）幾つかの実施形態では、前記（２）の構成において、前記同期ポイントは、前記割込制御ロジックの各々の実行開始タイミングであってもよい。
【００１２】
（４）幾つかの実施形態では、上記（１）〜（３）の何れかの構成において、前記複数の制御ユニットの各々は、前記複数の制御ロジックの演算周期の粒度を示す単位期間毎に設定されるタイマー割込みポイントにてタイマー割込み処理を実行可能に構成されており、前記同期ポイントは、前記タイマー割込みポイントに設定される。
上記（４）の構成によれば、制御ロジックの記述内容によらずに、制御ユニット間の制御演算結果の不一致を回避することができる。
【００１３】
（５）幾つかの実施形態では、前記（１）〜（４）の何れかの構成において、前記複数の制御ロジックは、２以上の信号生成ロジックを含み、前記同期ポイントは、前記信号利用ロジック及び前記２以上の信号生成ロジックの演算周期の最大公約数で表される周期毎に設定される。
上記（５）の構成によれば、より短い時間間隔で（例えばタイマー割込みポイント毎に）同期ポイントを設ける場合に比べて、同期を行う際の制御ユニット間での通信を低減することができ、制御ユニットのオーバヘッドを低減することができる。
【００１４】
（６）本発明の本発明の少なくとも一実施形態に係る機器制御システムは、
制御対象の状態を示す信号を検出するための状態監視部と、
前記状態監視部によって検出された前記信号に基づいて、前記制御対象を制御するための制御機器に与える制御信号を生成するための上記（１）乃至（５）の何れかに記載の多重化制御装置と、を備え、
前記多重化制御装置は、前記制御ユニットの各々により独立して前記制御信号を生成し、前記複数の制御ユニットからの前記制御信号に基づいて、前記制御信号を前記制御機器に与えるように構成される。
【００１５】
上記（６）の構成では、多重化制御装置にて、割込制御ロジックの各々の演算周期毎に設定された同期ポイントにおいて、全ての制御ユニットにおいて、割込制御ロジックよりも優先して、非周期最短ロジックにおける同一の演算要素まで（すなわち先行制御ユニットが実行を終えた演算要素まで）実行するようにした。このため、少なくとも各割込制御ロジックの周期毎に、全ての制御ユニットで非周期最短ロジックそれぞれの進行段階が揃うこととなる。よって、信号利用ロジックが、各信号生成ロジックの演算結果を参照するタイミングにおいて、全ての制御ユニットで、各信号生成ロジックの同一周期での演算結果を参照することとなる。すなわち、上記（６）の構成によれば、信号利用ロジックにおける参照タイミングを全ての制御ユニットで揃えることができるため、複数の制御ロジックを用いることに起因する制御演算結果の不一致を回避することができる。
【００１６】
（７）本発明の少なくとも一実施形態に係る多重化制御方法は、
複数の制御ユニットを用いて、信号利用ロジックおよび１つ以上の信号生成ロジックを含む複数の制御ロジックを実行するための多重化制御方法であって、
前記複数の制御ユニットの各々について、前記複数の制御ロジックのうち演算周期が最短である周期最短ロジック以外の非周期最短ロジックの各々よりも演算周期が短い割込制御ロジックが実行されていない空き時間に、各々の前記非周期最短ロジックを構成する複数の演算要素を実行順に実行するとともに、前記信号生成ロジックの実行により得られた信号を参照して前記信号利用ロジックを実行するロジック実行ステップと、
各々の前記非周期最短ロジックよりも短い前記割込制御ロジックのそれぞれの演算周期毎に少なくとも一つずつ設定される同期ポイントにおいて、各々の前記非周期最短ロジックの前記演算要素の実行情報を前記複数の制御ユニット間で相互に交換する同期情報交換ステップと、
前記実行情報交換ステップにおいて前記複数の制御ユニット間で相互に交換された前記演算要素の実行情報に基づいて、最も多くの前記演算要素の実行を終えた先行制御ユニットを前記非周期最短ロジックごとに特定する先行制御ユニット特定ステップと、
少なくとも前記先行制御ユニットを除く他の制御ユニットについて、前記同期ポイントにおいて又は前記同期ポイントの直前において前記先行制御ユニットが実行を終えた前記演算要素の実行を少なくとも完了するまで、各々の前記非周期最短ロジックを優先して実行する同期実行ステップと、
前記複数の制御ユニット間における前記複数の制御ロジックのうち少なくとも１つの制御ロジックの演算結果の比較により、各々の制御ユニットの異常を検出する異常検出ステップと、を備える。
【００１７】
上記（７）の構成では、各々の前記非周期最短ロジックよりも短い前記割込制御ロジックのそれぞれの演算周期毎に設定された同期ポイントにおいて、全ての制御ユニットにおいて、割込制御ロジックよりも優先して、少なくとも非周期最短ロジックにおける同一の演算要素まで（すなわち先行制御ユニットが実行を終えた演算要素まで）実行するようにした。このため、少なくとも各割込制御ロジックの周期毎に、全ての制御ユニットで非周期最短ロジックそれぞれの進行段階が揃うこととなる。よって、信号利用ロジックが、各信号生成ロジックの演算結果を参照するタイミングにおいて、全ての制御ユニットで、各信号生成ロジックの同一周期での演算結果を参照することとなる。すなわち、上記（６）の構成によれば、信号利用ロジックにおける参照タイミングを全ての制御ユニットで揃えることができるため、複数の制御ロジックを用いることに起因する制御演算結果の不一致を回避することができる。
【００１８】
（８）幾つかの実施形態では、上記（７）の構成において、前記同期ポイントは、前記割込制御ロジックの各々の演算周期毎に１つずつだけ設定される。
上記（８）の構成では、同期ポイントを各割込制御ロジックの演算周期毎に１つずつだけ設けたので、同期ポイントをそれ以上設ける場合に比べて、制御ユニット間での同期の頻度、すなわち、非周期最短ロジックの演算要素の実行情報を相互に交換する頻度を少なくすることができる。よって、同期を行う際の制御ユニット間での通信を低減することができ、制御ユニットのオーバヘッドを低減することができる。
【００１９】
（９）幾つかの実施形態では、上記（８）の構成において、前記同期ポイントは、前記割込制御ロジックの各々の実行開始タイミングであってもよい。
【００２０】
（１０）幾つかの実施形態では、上記（７）〜（９）の何れかの構成において、前記複数の制御ユニットの各々は、前記複数の制御ロジックの演算周期の粒度を示す単位期間毎に設定されるタイマー割込みポイントにてタイマー割込み処理を実行可能に構成されており、前記同期ポイントは、前記タイマー割込みポイントに設定される。
上記（１０）の構成によれば、制御ロジックの記述内容によらずに、制御ユニット間の制御演算結果の不一致を回避することができる。
【００２１】
（１１）幾つかの実施形態では、上記（７）〜（１０）の何れかの構成において、前記複数の制御ロジックは、２以上の信号生成ロジックを含み、前記同期ポイントは、前記信号利用ロジック及び前記２以上の信号生成ロジックの演算周期の最大公約数で表される周期毎に設定される。
上記（１１）の構成によれば、より短い時間間隔で（例えばタイマー割込みポイント毎に）同期ポイントを設ける場合に比べて、同期を行う際の制御ユニット間での通信を低減することができ、制御ユニットのオーバヘッドを低減することができる。
【００２２】
（１２）本発明の少なくとも一実施形態に係る機器制御方法は、
制御対象の状態を示す信号を検出するための状態監視ステップと、
上記（７）乃至（１１）の何れかに記載の多重化制御方法により、前記状態監視ステップにおいて検出された前記信号に基づいて、前記制御対象を制御するための制御機器に与える制御信号を生成する制御信号生成ステップと、を備え、
前記制御信号生成ステップでは、前記制御ユニットの各々により独立して前記制御信号を生成し、前記複数の制御ユニットからの前記制御信号に基づいて、前記制御信号を前記制御機器に与える。
【００２３】
上記（１２）の構成では、割込制御ロジックの各々の演算周期毎に設定された同期ポイントにおいて、全ての制御ユニットにおいて、割込制御ロジックよりも優先して、非周期最短ロジックにおける同一の演算要素まで（すなわち先行制御ユニットが実行を終えた演算要素まで）実行するようにした。このため、少なくとも各割込制御ロジックの周期毎に、全ての制御ユニットで非周期最短ロジックそれぞれの進行段階が揃うこととなる。よって、信号利用ロジックが各信号生成ロジックの演算結果を参照するタイミングにおいて、全ての制御ユニットで、各信号生成ロジックの同一周期での演算結果を参照することとなる。すなわち、上記（１２）の構成によれば、信号利用ロジックにおける参照タイミングを全ての制御ユニットで揃えることができるため、複数の制御ロジックを用いることに起因する制御演算結果の不一致を回避することができる。
【００２４】
（１３）幾つかの実施形態では、上記（１）〜（５）のいずれかの構成において、前記複数の制御ユニットは、前記先行制御ユニットを含めた全ての制御ユニットが、前記同期ポイントにおいて又は前記同期ポイントの直前において前記先行制御ユニットが実行を終えた前記演算要素の次の演算要素の実行を完了するまで各々の前記非周期最短ロジックを優先して実行するように構成される。
上記（１３）の構成によれば、同期ポイントの時点で、先行制御ユニットにおいて、演算要素の実行中である場合（すなわち、同期ポイントの直前において実行を終えた演算要素の次の演算要素が実行中である場合）にも、割込制御ロジックのそれぞれの演算周期毎に設定された同期ポイントにおいて、全ての制御ユニットにおいて、割込制御ロジックよりも優先して、非周期最短ロジックにおける同一の演算要素まで（すなわち先行制御ユニットが実行を終えた演算要素の次の演算要素まで）実行するようにした。このため、少なくとも各割込制御ロジックの周期毎に、全ての制御ユニットで非周期最短ロジックそれぞれの進行段階が揃うこととなる。
よって、信号利用ロジックにおける参照タイミングを全ての制御ユニットで揃えることができるため、複数の制御ロジックを用いることに起因する制御演算結果の不一致を回避することができる。
【発明の効果】
【００２５】
本発明の少なくとも一実施形態によれば、複数の制御ロジックを異なる演算周期で実行させる複数の制御ユニット（制御装置）において、複数の制御ロジックを用いることに起因する制御演算結果の不一致を回避することができる。
【図面の簡単な説明】
【００２６】
【図１】一実施形態に係る機器制御システムの全体構成の概略を示す図である。
【図２】一実施形態に係る機器制御方法の概要を示すフロー図である。
【図３】一実施形態に係る多重化制御方法の概要を示すフロー図である。
【図４】一実施形態に係る多重化制御装置における制御ロジックの演算内容が記述されたファンクションブロック図を模式的に示す図である。
【図５】一実施形態に係る多重化制御装置における、異なる演算周期をもつ信号利用ロジックと信号生成ロジックの実行の流れを示す図である。
【図６】従来の多重化制御装置における、異なる演算周期をもつ信号利用ロジックと信号生成ロジックの実行の流れを示す図である。
【図７】一実施形態に係る多重化制御装置における、異なる演算周期をもつ信号利用ロジックと信号生成ロジックの実行の流れを示す図である。
【図８】一実施形態に係る多重化制御装置において、それぞれ異なる演算周期をもつ信号利用ロジックと２つの信号生成ロジックとを実行するときの処理の流れを示す図である。
【図９】一実施形態に係る多重化制御装置における制御ロジックの演算内容が記述されたファンクションブロック図を模式的に示す図である。
【発明を実施するための形態】
【００２７】
以下、添付図面を参照して本発明の幾つかの実施形態について説明する。ただし、実施形態として記載されている又は図面に示されている構成部品の寸法、材質、形状、その相対的配置等は、本発明の範囲をこれに限定する趣旨ではなく、単なる説明例にすぎない。
【００２８】
まず、一実施形態に係る機器制御システム及び機器制御方法の概要について、図１及び図２を参照して説明する。図１は、一実施形態に係る機器制御システムの全体構成の概略を示す図であり、図２は、一実施形態に係る機器制御方法の概要を示すフロー図である。
【００２９】
図１に示す機器制御システム１００は、制御対象４の状態を示す信号（以降において状態信号とも称する）ｆを検出するための状態監視部６と、状態信号ｆに基づいて、制御対象４を制御するための制御機器７に与える制御信号Ｙを生成するための多重化制御装置１と、を備える。また、多重化制御装置１は、３台の制御ユニット２を備える。
なお、図１に示す実施形態では、多重化制御装置１を構成する制御ユニット２の数は３台であるが、本発明においては制御ユニットの数は複数で有ればとくに限定されず、２台以上であればよい。
【００３０】
各制御ユニット２は、状態監視部６によって検出された状態信号ｆに基づいて、後述する信号利用ロジック及び信号生成ロジックを含む制御ロジックを実行して、各々が独立して制御信号Ｙを生成するように構成される。そして、多重化制御装置１は、各制御ユニット２により生成された制御信号Ｙに基づいて、制御信号Ｙを制御機器７に与えるように構成される。制御対象４には、例えばガスタービンやエンジン等が含まれる。
【００３１】
例えば、ガスタービン（制御対象４）の状態を示す信号がセンサ（状態監視部６）によって検出される。センサ（状態監視部６）によって検出された状態信号ｆは、各制御ユニット２へ入力される。各制御ユニット２は、入力された状態信号ｆに基づいて制御ロジックを実行し、演算結果を出力する。そして、各制御ユニット２での演算結果が、例えば一致するか否かに応じて、制御対象４を制御する制御機器７に与える制御信号を生成する。
例えば、各制御ユニット２での演算結果が相互に一致する場合には、制御対象４の通常運転を継続するための制御信号を制御機器７（例えばバルブ等のアクチュエータ）に与える。この結果、制御対象４は通常運転を継続させる。
また、各制御ユニット２での演算結果が相互に一致しない場合には、何れかの制御ユニット２に故障等の異常が発生していると判断され、例えば、安全のために制御対象４の運転を停止するための制御信号を制御機器７に与え、例えばバルブ（制御機器７）を閉じて制御対象４の運転を停止させる。
【００３２】
一実施形態に係る機器制御方法では、このような機器制御システム１００を用いて、図２に示す以下の手順に沿って制御対象機器４の制御を行う。
まず、状態監視部６によって、制御対象機器４の状態信号を検出する（Ｓ２）。
次いで、制御ユニット２の各々により、ステップＳ２において検出された状態信号ｆに基づいて、後述するステップＳ４０２〜Ｓ４１０により、制御対象機器４に与える制御信号Ｙを生成する（Ｓ４）。
そして、各制御ユニット２からの制御信号Ｙが相互に一致するか等の判定を行い（Ｓ６）、その判定に基づいて制御信号Ｙを制御対象機器４に与える（Ｓ８）。
【００３３】
ステップＳ６において、多重化制御装置１が２台の制御ユニット２により構成される場合には、各制御ユニット２により生成された制御信号Ｙが相互に一致する場合に、制御信号Ｙを制御機器７に与えるようになっていてもよい。また、多重化制御装置１が３台以上の制御ユニット２により構成される場合には、各制御ユニット２により生成された制御信号Ｙについて、各制御ユニット２での多数決もしくは中間値選択により、制御信号Ｙを制御機器７に与えるようになっていてもよい。
【００３４】
次に、一実施形態に係る多重化制御装置及び多重化制御方法について、図３〜７を参照して説明する。
図３は、一実施形態に係る多重化制御方法の概要を示すフロー図である。図４は、一実施形態に係る多重化制御装置における制御ロジックの演算内容が記述されたファンクションブロック図を模式的に示す図である。図５〜図７は、異なる演算周期をもつ信号利用ロジックと信号生成ロジックの実行の流れを示す図であって、図５及び図７は、それぞれ一実施形態に係る多重化制御装置における実行の流れを示す図であり、図６は従来の多重化制御装置における実行の流れを示す図である。
【００３５】
一実施形態に係る多重化制御装置１を構成する制御ユニット２の各々は、信号利用ロジックと１つ以上の信号生成ロジックとを含む複数の制御ロジックを実行するように構成される。各制御ユニット２はＣＰＵを備えてもよく、該ＣＰＵによって各制御ロジックを実行するように構成されてもよい。
また、一実施形態に係る多重化制御方法は、複数の制御ユニット２を用いて、信号利用ロジックと１つ以上の信号生成ロジックを含む複数の制御ロジックを実行するための方法である。この多重化制御方法では、上述した複数の制御ユニット２を含む多重化制御装置１を用いて、図３に示す以下の手順に沿って多重化制御を行う。
【００３６】
まず、複数の制御ユニット２の各々について、複数の制御ロジックのうち、演算周期が最短である周期最短ロジック以外の非周期最短ロジックの各々よりも演算周期が短い割込制御ロジックが実行されていない空き時間に、非周期最短ロジックを構成する複数の演算要素を実行順に実行するとともに、信号生成ロジックの実行により得られた信号を参照して信号利用ロジックを実行する（Ｓ４０２）。
そして、割込制御ロジックそれぞれの演算周期毎に少なくとも一つずつ設定される同期ポイントにおいて、各々の非周期最短ロジックの演算要素の実行情報を複数の制御ユニット２の間で相互に交換する（Ｓ４０４）。
次に、ステップＳ４０４において複数の制御ユニット２の間で相互に交換された演算要素の実行情報に基づいて、最も多くの前記演算要素の実行を終えた先行制御ユニットを特定する（Ｓ４０６）。
その後、少なくとも先行制御ユニットを除く他の制御ユニット２について、同期ポイントにおいて又は前記同期ポイントの直前において先行制御ユニットが実行を終えた演算要素の実行を少なくとも完了するまで、各々の非周期最短ロジックを優先して実行する（Ｓ４０８）。
そして、複数の制御ユニット２の間において複数の制御ロジックのうち少なくとも１つの制御ロジックの演算結果を比較することにより、各々の制御ユニット２の異常を検出する（Ｓ４１０）。
【００３７】
一実施形態に係る多重化制御装置１を構成する制御ユニット２の各々は、上述した多重化制御方法の各ステップＳ４０２〜Ｓ４１０を実行可能に構成される。
【００３８】
以下に、上述した多重化制御方法の各ステップＳ４０２〜Ｓ４１０についてより詳細に説明する。
【００３９】
ステップＳ４０２において信号利用ロジックを構成する演算要素とは、制御ロジックにおける実行命令の単位を指す。なお、一実施形態では、信号利用ロジックのみならず、信号生成ロジックも複数の演算要素により構成される。
図４には、一実施形態に係る信号生成ロジック及び信号利用ロジックのそれぞれについてのファンクションブロック図が示される。
図４のファンクションブロック図において、信号生成ロジック１２及び信号利用ロジック１４の各々は、複数のファンクションブロック１６（図４においては１〜４の数字がそれぞれ付された４つのファンクションブロック１６Ａ〜１６Ｈ）を含む。このファンクションブロック１６（１６Ａ〜１６Ｈ）のそれぞれが実行命令の単位、すなわち演算要素である。
【００４０】
ファンクションブロック１６（１６Ａ〜１６Ｈ）の各々に付された数字は、各制御ロジック（信号生成ロジック１２及び信号利用ロジック１４の各々）の中での実行順を示す。制御ユニット２は、各制御ロジックにおいて規定された実行順に、各演算要素を順に実行するようになっている。
また、各ファンクションブロック１６（１６Ａ〜１６Ｈ）同士をつなぐ矢印は、ファンクションブロック間での入力と出力の関係を示す。例えば、信号生成ロジック１２において、第１のファンクションブロック１６Ａでの出力（演算結果）は、第３のファンクションブロック１６Ｃの入力である。
【００４１】
図４において、信号生成ロジック１２と、信号利用ロジック１４とは、シート間接続要素１８，１９によって接続されている。なお、シート間接続要素は、ダイアグラム間接続要素とも呼ばれることがある。
シート間接続要素は、ファンクションブロック図同士のつながりのポイントを示す要素であり、例えば、各ロジック間での参照関係を示す。図４には、信号生成ロジック１２の実行により得られた最終的な演算結果（すなわち、信号生成ロジック１２の最後の演算要素１６Ｄでの出力信号）Ｗ（ｉ）が、信号利用ロジック１４の２番目の演算要素１６Ｆにおいて参照されることが示されている。このように、信号利用ロジックにおいて、信号生成ロジックにより得られた信号（演算結果）を参照する演算要素を、以降においてＥｒｅｆと表現することがある。
【００４２】
図５〜図７には、複数の制御ユニット２として、制御装置Ａ及びＢの２台を用いた場合の、各制御装置での異なる演算周期をもつ信号利用ロジックと１つの信号生成ロジックの実行の流れが示される。図５〜図７において、信号利用ロジック及び信号生成ロジックの演算周期は、それぞれ、Ｔｕ及びＴｇｅｎで表される。なお、図５〜図７において、Ｔは各制御ロジックの演算周期、Ｅは信号利用ロジックの演算要素、Ｗは信号生成ロジックにより得られる信号（演算結果）、Ｐは同期ポイント、Ｙは信号利用ロジックでの演算結果を表す記号である。また、図５において、Ｗ（ｉ）等におけるｉは、信号生成ロジックのｉ番目の演算周期におけるものであることを表す。
【００４３】
図５及び図６に示す例では、信号利用ロジックの周期Ｔｕは、信号生成ロジックの周期Ｔｇｅnよりも長い（Ｔｕ＞Ｔｇｅｎ）。すなわち、各制御ユニットにおいて実行される複数の２つの制御ロジックのうち、演算周期が最も短い信号生成ロジックは周期最短ロジックであり、信号利用ロジックは非周期最短ロジックである。
一方、図７に示す例では、信号利用ロジックの周期Ｔｕは、信号生成ロジックの周期Ｔｇｅnよりも短い（Ｔｕ＜Ｔｇｅｎ）。すなわち、各制御ユニットにおいて実行される複数の２つの制御ロジックのうち、演算周期が最も短い信号利用ロジックは周期最短ロジックであり、信号生成ロジックは非周期最短ロジックである。
【００４４】
ステップＳ４０２のフローについて、図５を参照して説明する。
ステップＳ４０２では、図５に示すように、各制御ユニット２（制御装置Ａ及びＢ）において、周期最短ロジック（信号生成ロジック）以外の非周期最短ロジックの各々（ここでは信号利用ロジック）よりも演算周期が短い割込制御ロジック（すなわち信号生成ロジック）が実行されていない空き時間に、非周期最短ロジックである信号利用ロジックを構成する複数の演算要素が実行順に実行される。
すなわち、制御装置Ａ及びＢの各々において、２つの制御ロジックが切り替わりながら実行される。例えば、比較的短い演算周期Ｔｇｅｎで実行される信号生成ロジックについては、該演算周期Ｔｇｅｎ毎に演算が開始され、１演算周期分の演算が完了すると、非周期最短ロジックである信号利用ロジックの実行に切り替わり、信号生成ロジックの次の演算周期の開始タイミングまで、信号利用ロジックの演算が演算要素の実行順に実行される。そして、信号生成ロジックの次の演算周期の開始タイミングに達すれば、信号利用ロジックの演算が全て完了していなくても、信号生成ロジックの実行に切り替わる（信号利用ロジックの実行は信号生成ロジックによって割り込まれる）。すなわち、各制御ユニットにおいて、非周期最短ロジックよりも短い演算周期で実行される割込制御ロジックである信号生成ロジックが実行されていない空き時間に、非周期最短ロジックである信号利用ロジックの演算が実行される。言い換えれば、各制御ユニットにおいて信号生成ロジック（割込制御ロジック）が信号利用ロジック（非周期最短ロジック）よりも優先的に実行される。
【００４５】
また、ステップＳ４０２では、各制御ユニット２（制御装置Ａ及びＢ）において、信号生成ロジックの実行により得られた信号Ｗを参照して信号利用ロジックを実行する。
すなわち、信号生成ロジックが実行されることにより、信号生成ロジックの演算周期Ｔｇｅｎ毎に信号生成ロジックによる演算結果Ｗが得られる。例えば、信号生成ロジックのｉ番目の演算周期では、信号生成ロジックによる演算結果Ｗ（ｉ）が得られる。
一方、信号利用ロジックはその実行過程において信号生成ロジックの演算結果Ｗを参照する演算要素Ｅｒｅｆを含んでおり、演算要素Ｅｒｅｆの演算の時点において信号生成ロジックの直近の演算周期で得られた演算結果（信号）Ｗを参照するようになっている。なお、図５中のＥｒｅｆからＷへ向かう矢印は、演算要素ＥｒｅｆにおいてＷを参照していることを示す。
【００４６】
ステップＳ４０４では、割込制御ロジックの各々の演算周期毎に少なくとも一つ設定される同期ポイントにおいて、非周期最短ロジックの演算要素の実行情報が複数の制御ユニット２の間で相互に交換される。
図５に示すフローに係る実施形態では、各制御ユニット２（制御装置Ａ及びＢ）において実行される信号生成ロジックは１つであり、その演算周期はＴｇｅｎである。信号生成ロジックは周期最短ロジックであるとともに、非周期最短ロジックである信号利用ロジックよりも演算周期が短い割込制御ロジックであり、この演算周期Ｔｇｅｎ毎に１つの同期ポイントＰ（図５においてＰｉ等で示される）が設定されている。また、各同期ポイントＰは、信号生成ロジック（割込制御ロジック）の実行開始タイミングに設定されている。
【００４７】
同期ポイントＰにおいて制御ユニット２同士の間で交換される信号利用ロジック（非周期最短ロジック）の演算要素の実行情報には、例えば、各制御ユニットにおいて、当該同期ポイントＰｉの時点までに演算が完了している信号利用ロジックの演算要素（図５におけるＥｉ）の情報が含まれる。この実行情報を制御ユニット２の間で交換することで、どの制御ユニット２において信号利用ロジックの演算がどこまで進んだかを各制御ユニット２において特定することができる。
図５に示すフローに係る実施形態では、例えば同期ポイントＰｉ＋１の時点では、制御装置Ａ及び制御装置Ｂのそれぞれにおいて、信号利用ロジックの演算要素Ｅｉ＋１までの演算が完了している。
【００４８】
ステップＳ４０６では、ステップＳ４０４において複数の制御ユニット２の間で相互に交換された演算要素の実行情報に基づいて、最も多くの前記演算要素の実行を終えた先行制御ユニットを特定する。
図５に示すフローに係る実施形態では、同期ポイントＰｉ＋１の時点における信号利用ロジック（非周期最短ロジック）の演算要素Ｅｉ＋１は、制御装置ＡではＥｒｅｆ（信号生成ロジックの演算結果Ｗを参照する演算要素）であるのに対し、制御装置Ｂでは、Ｅｒｅｆよりも前に演算される演算要素である。したがって、同期ポイントＰｉ＋１の時点における先行制御ユニットは制御装置Ａであると特定される。
【００４９】
ステップＳ４０８では、先行制御ユニットを除く他の制御ユニット２について、同期ポイントＰにおいて又は同期ポイントＰの直前において先行制御ユニットが実行を終えた演算要素の実行完了まで、非周期最短ロジックを優先して実行される。
図５に示すフローに係る実施形態では、同期ポイントＰｉ＋１において（あるいは同期ポイントＰｉ＋１の直前において）先行制御ユニットである制御装置Ａが実行を終えた演算要素Ｅｉ＋１はＥｒｅｆである。よって、先行制御ユニットを除く他の制御ユニットである制御装置Ｂでは、制御装置Ｂにおける演算要素Ｅｉ＋１よりも後に実行される演算要素Ｅｒｅｆの実行完了まで、信号生成ロジック（割込制御ロジック）ではなく、信号利用ロジック（非周期最短ロジック）が優先して実行される。
ここで、「同期ポイントＰにおいて又は同期ポイントＰの直前において先行制御ユニットが実行を終えた演算要素」とは、同期ポイントＰの時点で、先行制御ユニットにおいて既に実行が完了した演算要素のうち、最も進んでいる演算要素（最も最近実行が完了した演算要素）のことである。
【００５０】
なお、一実施形態では、同期ポイントＰの時点で、先行制御ユニットにおいて、演算要素が実行中である場合（すなわち、同期ポイントの直前において実行を終えた演算要素の次の演算要素が実行中である場合）がある。このような場合、ステップＳ４０８では、先行制御ユニットを含む全ての制御ユニットにおいて、該同期ポイントＰの時点で先行制御ユニットにおいて実行中の演算要素（同期ポイントの直前において実行を終えた演算要素の次の演算要素）まで、非周期最短ロジックが割込制御ロジックよりも優先して実行される。
【００５１】
このように、各同期ポイントにおいて先行制御ユニットが実行を終えた演算要素の実行完了まで、その他の制御ユニット２について（又は全ての制御ユニット２について）非周期最短ロジックである信号利用ロジックを優先して実行することで、信号利用ロジックにおける参照タイミングを全ての制御ユニット２で揃えることができる。このことを、従来例と比較して説明する。
【００５２】
図６に示す従来の多重化制御装置を用いた場合の例では、割込制御ロジックである信号生成ロジックの演算周期毎の同期ポイントは設けられておらず、信号生成ロジック（割込制御ロジック）の各演算周期の開始に合わせて必ず信号生成ロジックの演算が開始されるようになっている。
【００５３】
この場合、一方の制御装置において何らかの原因により信号利用ロジックの演算に遅延が発生する場合がある。例えば、制御装置間でのクロック周波数の微妙なずれの蓄積やキャッシュの使用状況の違い等によって一方の制御装置において演算に遅延発生することがある。そうすると、各制御装置間で制御ロジック実行の切り替えタイミングに差が出てくることがある。この結果、複数の制御ロジック間で演算結果を参照する参照タイミングに関して、各制御装置間でずれが生じる場合がある。
図６の例では、信号生成ロジックのｉ番目の演算周期において、制御装置Ａでは信号利用ロジックは演算要素Ｅｒｅｆまで演算が完了している。これに対し、何らかの原因により信号利用ロジックの演算に遅延が発生した制御装置Ｂでは、信号利用ロジックは演算要素Ｅｒｅｆよりも前の演算要素の演算が完了しているにすぎず、演算要素Ｅｒｅｆの演算は開始されていない。なお、制御装置Ｂでは、演算要素Ｅｒｅｆは信号生成ロジックの（ｉ＋１）番目の演算周期において演算が行われている。
このとき、制御装置Ａでは、演算要素Ｅｒｅｆにおいて参照されるのはＷ（ｉ）であるのに対して、制御装置Ｂでは、同じ演算要素Ｅｒｅｆにおいて参照されるのはＷ（ｉ＋１）である。つまり、制御装置Ａと制御装置Ｂとの間で参照タイミングにずれが生じる結果、制御装置Ａと制御装置Ｂとで異なる演算結果の値を参照することとなる。
この結果、制御装置Ａと制御装置Ｂとの間では、信号利用ロジックの同一周期において、演算要素Ｅｒｅｆを含む信号利用ロジックでの演算結果が一致しないこととなる。このため、複数の制御ロジックを用いることに起因して制御演算結果の不一致が生じることとなる。
このような場合、各制御装置は正常であるにもかかわらず、演算結果の不一致によりいずれかの制御装置に故障が生じているものと判断されてしまい、制御対象を適切に制御することができない場合がある。
【００５４】
一方、図５に示すフローに係る実施形態では、割込制御ロジックである信号生成ロジックの演算周期毎に設定された同期ポイントにおいて、全ての制御ユニット２（制御装置Ａ及びＢ）において、信号生成ロジック（割込制御ロジック）よりも優先して、非周期最短ロジックである信号利用ロジックにおける同一の演算要素まで（すなわち先行制御ユニットである制御装置Ａが実行を終えた演算要素Ｅｒｅｆまで）実行するようになっている。このため、少なくとも信号生成ロジック（割込制御ロジック）の周期毎に、全ての制御ユニット２で信号利用ロジック（非周期最短ロジック）の進行段階が揃うこととなる。よって、信号利用ロジックが、信号生成ロジックの演算結果を参照するタイミングにおいて、全ての制御ユニット２（制御装置Ａ及びＢ）で、各信号生成ロジックの同一周期での演算結果を参照することとなる。
このように、信号利用ロジック（非周期最短ロジック）における参照タイミングを全ての制御ユニット２で揃えることができるため、複数の制御ロジックを用いることに起因する制御演算結果の不一致を回避することができる。
【００５５】
なお、上記説明における実施形態では、同期ポイントにおいて信号利用ロジック（非周期最短ロジック）の進行段階を揃える単位は、最小の演算単位である演算要素としている。この点については、演算要素よりも細かい単位で信号利用ロジック（非周期最短ロジック）の進行段階を揃えたほうが、制御ロジックの実行の切り替えをより迅速にできるために好ましいとも考えられる。しかしながら、演算要素よりも細かい分割となると、ＣＰＵの実行命令の分割となる。そうすると演算要素のアルゴリズムに同期ポイントの仕組みを組み込むこととなり、オーバヘッドが大きくなる。
そこで、上記説明における実施形態のように、同期ポイントにおいては演算要素の単位で信号利用ロジック（周期最長ロジック）の進行段階を揃えるようにすることで、オーバヘッドを抑制しつつ、各制御ロジック間での実行の切り替えを速やかに行うことができる。
【００５６】
ステップＳ４１０では、複数の制御ユニット２の間において、複数の制御ロジックのうち少なくとも１つの制御ロジックの演算結果を比較することにより、各々の制御ユニット２の異常を検出する。
図５に示すフローに係る実施形態では、制御装置Ａでは信号利用ロジックの演算結果ＹＡが得られ、制御装置Ｂでは信号利用ロジックの演算結果ＹＢが得られる。この演算結果ＹＡとＹＢとの比較により、制御装置Ａ及びＢの異常を検出する。例えば、演算結果ＹＡとＹＢが同一であれば、制御装置Ａ及び制御装置は正常であると判断し、演算結果ＹＡとＹＢとが異なれば、制御装置Ａ又は制御装置Ｂにおいて異常が発生したと判断する。
ステップＳ４０７〜Ｓ４０８において複数の制御ロジックを用いることに起因する制御演算結果の不一致が回避されるため、ステップＳ４１０において制御装置の異常判定の精度を向上させることができる。
【００５７】
次に、図５に示すフローに係る実施形態とは異なり、信号利用ロジックは周期最短ロジックであり、信号生成ロジックは非周期最短ロジックである場合のステップＳ４０２のフローについて、図７を参照して説明する。
【００５８】
ステップＳ４０２では、図７に示すように、各制御ユニット２（制御装置Ａ及びＢ）において、周期最短ロジックである信号利用ロジック以外の非周期最短ロジックの各々（信号生成ロジック）よりも演算周期が短い割込制御ロジック（すなわち信号利用ロジック）が実行されていない空き時間に、非周期最短ロジックである信号生成ロジックを構成する複数の演算要素が実行順に実行される。
すなわち、制御装置Ａ及びＢの各々において、２つの制御ロジックが切り替わりながら実行される。例えば、比較的短い演算周期Ｔｕで実行される信号利用ロジックについては、該演算周期Ｔｕ毎に演算が開始され、１演算周期分の演算が完了すると、非周期最短ロジックである信号生成ロジックの実行に切り替わり、割込制御ロジックである信号利用ロジックの次の演算周期の開始タイミングまで、非周期最短ロジックである信号生成ロジックの演算が演算要素の実行順に実行される。そして、信号利用ロジックの次の演算周期の開始タイミングに達すれば、信号生成ロジックの演算が全て完了していなくても、割込制御ロジックである信号利用ロジックの実行に切り替わる（信号生成ロジックの実行は信号利用ロジックによって割り込まれる）。すなわち、各制御ユニットにおいて割込制御ロジックである信号利用ロジックが実行されていない空き時間に、非周期最短ロジックである信号生成ロジックの演算が実行される。言い換えれば、各制御ユニットにおいて信号利用ロジック（割込制御ロジック）が信号生成ロジック（非周期最短ロジック）よりも優先的に実行される。
【００５９】
また、ステップＳ４０２では、各制御ユニット２（制御装置Ａ及びＢ）において、信号生成ロジックの実行により得られた信号Ｗを参照して信号利用ロジックを実行する。
すなわち、信号生成ロジックが実行されることにより、信号生成ロジックの演算周期Ｔｇｅｎ毎に信号生成ロジックによる演算結果Ｗが得られる。例えば、信号生成ロジックのｊ番目の演算周期では、信号生成ロジックによる演算結果Ｗ（ｊ）が得られる。
一方、信号利用ロジックはその実行過程において信号生成ロジックの演算結果Ｗを参照する演算要素Ｅｒｅｆを含んでおり、演算要素Ｅｒｅｆの演算の時点において信号生成ロジックの直近の演算周期で得られた演算結果（信号）Ｗを参照するようになっている。なお、図７中のＥｒｅｆからＷへ向かう矢印は、演算要素ＥｒｅｆにおいてＷを参照していることを示す。
【００６０】
ステップＳ４０４では、割込制御ロジックの各々の演算周期毎に少なくとも一つ設定される同期ポイントにおいて、非周期最短ロジックの演算要素の実行情報が複数の制御ユニット２の間で相互に交換される。
図７に示すフローに係る実施形態では、各制御ユニット２（制御装置Ａ及びＢ）において実行される信号利用ロジックは１つであり、その演算周期はＴｕである。信号利用ロジックは周期最短ロジックであるとともに、非周期最短ロジックである信号生成ロジックよりも演算周期が短い割込制御ロジックであり、この演算周期Ｔｕ毎に１つの同期ポイントＰ（図７においてＰｉ等で示される）が設定されている。また、各同期ポイントＰは、信号利用ロジック（割込制御ロジック）の実行開始タイミングに設定されている。
【００６１】
同期ポイントＰにおいて制御ユニット２同士の間で交換される信号生成ロジック（非周期最短ロジック）の演算要素の実行情報には、例えば、各制御ユニットにおいて、当該同期ポイントＰｉの時点までに演算が完了している信号生成ロジックの演算要素（図７におけるＥｇｅｎ（ｉ））の情報が含まれる。この実行情報を制御ユニット２の間で交換することで、どの制御ユニット２において信号生成ロジックの演算がどこまで進んだかを各制御ユニット２において特定することができる。
図７に示すフローに係る実施形態では、例えば同期ポイントＰｉ＋１の時点では、制御装置Ａ及び制御装置Ｂのそれぞれにおいて、信号生成ロジックの演算要素Ｅｇｅｎ（ｉ＋１）までの演算が完了している。
【００６２】
ステップＳ４０６では、ステップＳ４０４において複数の制御ユニット２の間で相互に交換された演算要素の実行情報に基づいて、最も多くの前記演算要素の実行を終えた先行制御ユニットを特定する。
図７に示すフローに係る実施形態では、同期ポイントＰｉ＋１の時点における信号生成ロジック（非周期最短ロジック）の演算要素Ｅｇｅｎ（ｉ＋１）は、制御装置Ａでは演算結果Ｗ（ｊ）を生成する演算要素である。これに対し、制御装置Ｂでは、同期ポイントＰｉ＋１の時点における信号生成ロジック（非周期最短ロジック）の演算要素Ｅｇｅｎ（ｉ＋１）は、演算結果Ｗ（ｊ）を生成する演算要素よりも前に演算される演算要素である。したがって、同期ポイントＰｉ＋１の時点における先行制御ユニットは制御装置Ａであると特定される。
【００６３】
ステップＳ４０８では、先行制御ユニットを除く他の制御ユニット２について、同期ポイントＰにおいて先行制御ユニットが実行を終えた演算要素の実行完了まで、非周期最短ロジックを優先して実行される。
図７に示すフローに係る実施形態では、同期ポイントＰｉ＋１において先行制御ユニットである制御装置Ａが実行を終えた演算要素Ｅｇｅｎ（ｉ＋１）は演算結果Ｗ（ｊ）を生成する演算要素である。よって、先行制御ユニットを除く他の制御ユニットである制御装置Ｂでは、制御装置Ｂにおける演算要素Ｅｇｅｎ（ｉ＋１）よりも後に実行される演算結果Ｗ（ｊ）を生成する演算要素の実行完了まで、信号利用ロジック（割込制御ロジック）ではなく、信号生成ロジック（非周期最短ロジック）が優先して実行される。
【００６４】
このように、図７に示すフローに係る実施形態では、割込制御ロジックである信号利用ロジックの演算周期毎に設定された同期ポイントにおいて、全ての制御ユニット２（制御装置Ａ及びＢ）において、信号利用ロジック（割込制御ロジック）よりも優先して、非周期最短ロジックである信号生成ロジックにおける同一の演算要素まで（すなわち先行制御ユニットである制御装置Ａが実行を終えた演算要素Ｅｇｅｎまで）実行するようになっている。このため、少なくとも信号利用ロジック（割込制御ロジック）の周期毎に、全ての制御ユニット２で信号生成ロジック（非周期最短ロジック）の進行段階が揃うこととなる。よって、信号利用ロジックが、信号生成ロジックの演算結果を参照するタイミングにおいて、全ての制御ユニット２（制御装置Ａ及びＢ）で、各信号生成ロジックの同一周期での演算結果を参照することとなる。
このように、信号利用ロジックにおける参照タイミングを全ての制御ユニット２で揃えることができるため、複数の制御ロジックを用いることに起因する制御演算結果の不一致を回避することができる。
【００６５】
ステップＳ４１０では、複数の制御ユニット２の間において、複数の制御ロジックのうち少なくとも１つの制御ロジックの演算結果を比較することにより、各々の制御ユニット２の異常を検出する。
図７に示すフローに係る実施形態では、制御装置Ａでは信号生成ロジックの演算結果ＹＡが得られ、制御装置Ｂでは信号生成ロジックの演算結果ＹＢが得られる。この演算結果ＹＡとＹＢとの比較により、制御装置Ａ及びＢの異常を検出する。例えば、演算結果ＹＡとＹＢが同一であれば、制御装置Ａ及び制御装置は正常であると判断し、演算結果ＹＡとＹＢとが異なれば、制御装置Ａ又は制御装置Ｂにおいて異常が発生したと判断する。
ステップＳ４０７〜Ｓ４０８において複数の制御ロジックを用いることに起因する制御演算結果の不一致が回避されるため、ステップＳ４１０において制御装置の異常判定の精度を向上させることができる。
【００６６】
なお、図７に示すフローに係る実施形態では、例えば、信号生成ロジックのｊ番目の周期の実行の結果として一旦演算結果Ｗ（ｊ）が得られた後は、次の演算周期（ｊ＋１番目の周期）で新たに演算結果Ｗ（ｊ＋１）が得られるまでは、より周期の短い信号利用ロジックによって、Ｗ（ｉ）が繰り返し参照される。
例えば、図７において、信号利用ロジックの（ｉ＋１）〜（ｉ＋４）番目等の各周期における演算要素Ｅｒｅｆ（ｉ＋１）〜Ｅｒｅｆ（ｉ＋４）等では、同期ポイントＰｉ＋１の直前に得られたＷ（ｊ）が繰り返し参照される。また、Ｗ（ｊ）が得られるよりも前に実行される、信号利用ロジックの（ｉ−１）番目やｉ番目等の周期における演算要素Ｅｒｅｆ（ｉ−１）やＥｒｅｆ（ｉ）等では、Ｗ（ｊ）が得られる前の参照値Ｗ（ｊ−１）が参照される。Ｗ（ｊ−１）は、信号生成ロジックの（ｊ−１）番目の周期の実行の結果として得られる演算結果である。
【００６７】
以上の説明における実施形態では、同期ポイントＰは、非周期最短ロジックよりも演算周期が短い割込制御ロジックの演算周期毎に１つだけ設定される。また、以上の説明における実施形態では、同期ポイントＰは、割込制御ロジックの実行開始タイミングに設定される。
同期ポイントＰを割込制御ロジックの演算周期毎に１つだけ設けたことで、同期ポイントＰをそれ以上設ける場合に比べて、制御ユニット２の間での同期の頻度、すなわち、信号利用ロジックの演算要素の実行情報を相互に交換する頻度を少なくすることができる。よって、同期を行う際の制御ユニット２の間での通信を低減することができ、制御ユニット２のオーバヘッドを低減することができる。
【００６８】
幾つかの実施形態では、同期ポイントは周期毎に２以上あってもよい。また、幾つかの実施形態では、同期ポイントは、演算開始と同時でなくてもよい。
【００６９】
幾つかの実施形態では、各制御ユニット２は、各制御ロジックの演算周期の粒度を示す単位期間毎に設定されるタイマー割込みポイントにてタイマー割込み処理を実行可能に構成されていてもよい。この場合、同期ポイントＰは、タイマー割込みポイントに設定されてもよい。
上記において「各制御ロジックの演算周期の粒度を示す単位期間」というのは、この単位期間の整数倍の期間にて各制御ロジックの演算周期を設定できることを意味する。
タイマー割込みポイントに同期ポイントＰを設定することで、制御ロジックの記述内容によらずに、複数の制御ユニット２の間での制御演算結果の不一致を回避することができる。
【００７０】
図８は、一実施形態に係る多重化制御装置において、それぞれ異なる演算周期をもつ信号利用ロジックと２つの信号生成ロジックとを実行するときの処理の流れを示す図である。また、図９は、一実施形態に係る多重化制御装置における制御ロジックの演算内容が記述されたファンクションブロック図を模式的に示す図である。
【００７１】
図８に示すフローに係る実施形態では、信号生成ロジックは、第１信号生成ロジック及び第２信号生成ロジックの２つの信号生成ロジックを含む。そして、多重化制御装置を構成する各制御ユニット２では、信号利用ロジック、第１信号生成ロジック及び第２信号生成ロジックの合計３つの制御ロジックが実行される。これらの制御ロジックのうち、信号利用ロジックは、最も長い演算周期Ｔｕ毎に実行される。第１信号生成ロジック及び第２信号生成ロジックは、いずれも、周期最長ロジックである信号利用ロジックよりも短い演算周期（それぞれＴｇｅｎ＿１及びＴｇｅｎ＿２）毎に実行され、図８に示すフローに係る実施形態では、第２信号生成ロジックの演算周期Ｔｇｅｎ＿２の方が、第１信号生成ロジックの演算周期Ｔｇｅｎ＿１よりも長い。すなわち、３つの制御ロジックの演算周期について、Ｔｕ＞Ｔｇｅｎ＿２＞Ｔｇｅｎ＿１の関係が成り立つ。
図８に示すフローに係る実施形態では、制御ユニット２の各々において、第２信号生成ロジックは第１信号生成ロジックの演算結果Ｗ１を参照し、信号利用ロジックは第２信号生成ロジックの演算結果Ｗ２を参照するように構成される。このことは、後述において図９を用いて説明する。
【００７２】
制御ユニット２の各々において実行される上記３つの制御ロジックのうち、演算周期が最短である第１信号生成ロジックは周期最短ロジックであり、信号利用ロジック及び第２信号生成ロジックは、非周期最短ロジックである。
また、非周期最短ロジックである信号利用ロジックよりも演算周期が短い第１信号生成ロジック及び第２信号生成ロジックは、信号利用ロジックについての割込制御ロジックである。すなわち、信号利用ロジックの実行は、第１信号生成ロジック及び第２信号生成ロジックによって割り込まれる。さらに、非周期最短ロジックである第２信号生成ロジックよりも演算周期が短い第１信号生成ロジックは、第２信号生成ロジックについての割込制御ロジックである。すなわち、第２信号生成ロジックの実行は、第１信号生成ロジックによって割り込まれる。
制御ユニット２においては、割込制御ロジックである第１信号生成ロジックの演算周期毎に１つずつ、同期ポイントＰ１が設定されている。また、割込制御ロジックである第２信号生成ロジックの演算周期毎に１つずつ、同期ポイントＰ２が設定されている。なお、同期ポイントＰ１及びＰ２の各々は、第１信号生成ロジック及び第２信号生成ロジックの実行開始タイミングに設定されている。
【００７３】
図８に示すフローに係る実施形態では、各制御ユニット２において、割込制御ロジックである第１信号生成ロジックの演算周期毎に設定された同期ポイントＰ１において、全ての制御ユニット２において、第１信号生成ロジックよりも優先して、非周期最短ロジックである信号利用ロジック及び第２信号生成ロジックのそれぞれにおける同一の演算要素まで実行する。このため、少なくとも第１信号生成ロジックの演算周期Ｔｇｅｎ＿１毎に、全ての制御ユニット２で信号利用ロジック及び第２信号生成ロジックの進行段階が揃うこととなる。よって、信号利用ロジック又は第２信号生成ロジックが、第１信号生成ロジックの演算結果を参照するタイミングにおいて、全ての制御ユニット２で、第１信号生成ロジックの同一周期での演算結果を参照することとなる。
また、割込制御ロジックである第２信号生成ロジックの演算周期毎に設定された同期ポイントＰ２において、全ての制御ユニット２において、第２信号生成ロジックよりも優先して、非周期最短ロジックである信号利用ロジックにおける同一の演算要素まで実行する。このため、少なくとも第２信号生成ロジックの演算周期Ｔｇｅｎ＿２毎に、全ての制御ユニット２で信号利用ロジックの進行段階が揃うこととなる。よって、信号利用ロジックが、第２信号生成ロジックの演算結果を参照するタイミングにおいて、全ての制御ユニット２で、第２信号生成ロジックの同一周期での演算結果を参照することとなる。
このように、非周期最短ロジックである信号利用ロジック及び第２信号生成ロジックにおける参照タイミングを全ての制御ユニット２で揃えることができるため、複数の制御ロジックを用いることに起因する制御演算結果の不一致を回避することができる。
【００７４】
幾つかの実施形態では、複数の制御ロジックが、信号利用ロジックと、第１信号生成ロジック及び第２信号生成ロジックからなる２つの信号生成ロジックと、を含む場合において、同期ポイントは、信号利用ロジック、第１信号生成ロジック及び第２信号生成ロジックの演算周期の最大公約数で表される周期毎に設定されてもよい。
一実施形態では、信号利用ロジックの演算周期Ｔｕが１５０ｍｓ、第１信号生成ロジックの演算周期Ｔｇｅｎ＿１が５０ｍｓ、第２信号生成ロジックの演算周期Ｔｇｅｎ＿２が１００ｍｓであり、同期ポイントＰは、演算周期Ｔｕ、Ｔｇｅｎ＿１及びＴｇｅｎ＿２の最大公約数で表される５０ｍｓの周期毎に設定されてもよい。
このように、各制御ロジックの演算周期の最大公約数で表される周期毎に同期ポイントを設けることで、それよりも短い周期で同期ポイントを設定する場合に比べて、制御ユニット２の間で同期を行う時間当たりの回数が少なくなる。例えば、制御ユニット２において、タイマー割込みポイントが１０ｍｓ毎に設定されている場合において、該タイマー割込みポイント毎に同期ポイントＰが設けられる場合に比べて、上述のように５０ｍｓ毎に同期ポイントＰが設定される場合には、同期ポイントＰの頻度は１／５となる。よって、各制御ユニット２におけるオーバヘッドを低減することができる。
【００７５】
図９は、一実施形態に係る多重化制御装置における制御ロジックの演算内容が記述されたファンクションブロック図を模式的に示す図である。
制御ユニット２において、信号利用ロジック１４’及び２つの信号生成ロジック（第１信号生成ロジック１２Ａ’及び第２信号生成ロジック１２Ｂ’）からなる３つの制御ロジックが実行される場合の、各制御ロジックそれぞれについてのファンクションブロック図が示される。
図９のファンクションブロック図では、シート間接続要素１８，１９を伴うファンクションブロック１６のみが表されており、その他のファンクションブロックは省略されている。
【００７６】
図９に示すように、第２信号生成ロジック１２Ｂ’は、第２信号生成ロジック１２Ｂ’に含まれる演算要素Ｅｒｅfにおいて第１信号生成ロジック１２Ａ’の演算結果Ｗ１を参照するように構成される。また、信号利用ロジック１４’は、信号利用ロジック１４’に含まれる演算要素Ｅｒｅfにおいて第２信号生成ロジック１２Ｂ’の演算結果Ｗ２を参照するように構成される。
【００７７】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限定されることはなく、上述した実施形態に変形を加えた形態や、これらの形態を適宜組み合わせた形態も含む。
【００７８】
また、本明細書において、一の構成要素を「備える」、「含む」、又は、「有する」という表現は、他の構成要素の存在を除外する排他的な表現ではない。
【符号の説明】
【００７９】
１            多重化制御装置
２            制御ユニット
４            制御対象
６            状態監視部
７            制御機器
１２          信号生成ロジック
１４          信号利用ロジック
１６Ａ〜Ｈ    ファンクションブロック（演算要素）
１８          シート間接続要素
１９          シート間接続要素
１００        機器制御システム
Ｅ            演算要素
Ｐ            同期ポイント
Ｔｇｅｎ        信号生成ロジックの演算周期
Ｔｕ          信号利用ロジックの演算周期
Ｗ            演算結果（信号）
Ｙ            制御信号
ｆ            状態信号
【図１】
2016081329.tif 000003
【図２】
2016081329.tif 000004
【図３】
2016081329.tif 000005
【図４】
2016081329.tif 000006
【図５】
2016081329.tif 000007
【図６】
2016081329.tif 000008
【図７】
2016081329.tif 000009
【図８】
2016081329.tif 000010
【図９】
2016081329.tif 000011