(57)【要約】【課題】予め定められた基本処理の実行と、その実行に障害が発生したことの検出とに共通のプロセッサを用いるにも関わらず、プロセッサ自身が障害の発生をすみやかに検出することができる処理実行装置、処理実行方法、及び制御プログラムを提供する。【解決手段】基本処理実行部２１は、プロセッサとしてのＣＰＵ２０によって構成され、予め定められた基本処理を繰り返し実行し、基本処理において、基本処理用カウンタ群５１の記憶内容を更新する。割込み処理実行部２２は、ＣＰＵ２０によって構成され、基本処理実行部２１による基本処理の１回の実行あたりに少なくとも１回の頻度で、基本処理よりも実行の優先度が高い割込み処理を繰り返し実行し、割込み処理において、基本処理用カウンタ群５１の記憶内容が更新されているか否かによって、基本処理実行部２１による基本処理の実行がなされたか否かを判定する基本処理実行判定を行う。【選択図】図２
2019032690.tif 000002
【特許請求の範囲】
【請求項１】
記憶内容の更新が可能な第１の記憶手段と、
プロセッサによって構成され、予め定められた基本処理を繰り返し実行し、前記基本処理において、前記第１の記憶手段の記憶内容を更新する第１の実行手段と、
前記プロセッサによって構成され、前記第１の実行手段による前記基本処理の１回の実行あたりに少なくとも１回の頻度で、前記基本処理よりも実行の優先度が高い優先処理を繰り返し実行し、前記優先処理において、前記第１の記憶手段の記憶内容が更新されているか否かによって、前記第１の実行手段による前記基本処理の実行がなされたか否かを判定する基本処理実行判定を行う第２の実行手段と、
を備える、処理実行装置。
【請求項２】
前記基本処理が、逐次に実行される複数の単位基本処理を含み、
前記第１の記憶手段が、複数の前記単位基本処理の各々に対応して設けられた単位基本処理用カウンタよりなる単位基本処理用カウンタ群を有し、
前記第１の実行手段が、１つの前記単位基本処理の実行を終える度に、該単位基本処理に対応して設けられた前記単位基本処理用カウンタを更新し、
前記第２の実行手段が、前記基本処理実行判定において、前記単位基本処理用カウンタ群を構成する前記単位基本処理用カウンタの更新の有無によって、該単位基本処理用カウンタに対応する前記単位基本処理の実行がなされたか否かの判定を行う、
請求項１に記載の処理実行装置。
【請求項３】
記憶内容の更新が可能な第２の記憶手段、をさらに備え、
前記第２の実行手段が、前記優先処理において前記第２の記憶手段の記憶内容を更新し、
前記第１の実行手段が、前記基本処理において、前記第２の記憶手段の記憶内容が更新されているか否かによって、前記第２の実行手段による前記優先処理の実行がなされたか否かを判定する優先処理実行判定も行う、
請求項１又は２に記載の処理実行装置。
【請求項４】
前記優先処理が、逐次に実行される複数の単位優先処理を含み、
前記第２の記憶手段が、複数の前記単位優先処理の各々に対応して設けられた単位優先処理用カウンタよりなる単位優先処理用カウンタ群を有し、
前記第２の実行手段が、１つの前記単位優先処理の実行を終える度に、該単位優先処理に対応して設けられた前記単位優先処理用カウンタを更新し、
前記第１の実行手段が、前記優先処理実行判定において、前記単位優先処理用カウンタ群を構成する前記単位優先処理用カウンタの更新の有無によって、該単位優先処理用カウンタに対応する前記単位優先処理の実行がなされたか否かの判定を行う、
請求項３に記載の処理実行装置。
【請求項５】
前記優先処理が、前記第１の実行手段による前記基本処理の実行を中断して実行される割込み処理である、
請求項１から４のいずれか１項に記載の処理実行装置。
【請求項６】
前記基本処理及び前記優先処理が、鉄道車両の客室を空調する鉄道車両用空調機器を制御するための処理であり、
前記鉄道車両用空調機器と共に前記鉄道車両に搭載される、
請求項１から５のいずれか１項に記載の処理実行装置。
【請求項７】
プロセッサに、予め定められた基本処理を繰り返し実行させ、前記基本処理において、記憶内容の更新が可能な第１の記憶手段の記憶内容を更新させる第１の実行段階と、
前記プロセッサに、前記第１の実行段階における前記基本処理の１回の実行あたりに少なくとも１回の頻度で、前記基本処理よりも実行の優先度が高い優先処理を繰り返し実行させ、前記優先処理において、前記第１の記憶手段の記憶内容が更新されているか否かによって、前記第１の実行段階において前記基本処理の実行がなされたか否かを判定する基本処理実行判定を行わせる第２の実行段階と、
を含む、処理実行方法。
【請求項８】
コンピュータに、
記憶内容の更新が可能な第１の記憶機能と、
予め定められた基本処理を繰り返し実行し、前記基本処理において、前記第１の記憶機能による記憶内容を更新する第１の実行機能と、
前記第１の実行機能による前記基本処理の１回の実行あたりに少なくとも１回の頻度で、前記基本処理よりも実行の優先度が高い優先処理を繰り返し実行し、前記優先処理において、前記第１の記憶機能による記憶内容が更新されているか否かによって、前記第１の実行機能による前記基本処理の実行がなされたか否かを判定する基本処理実行判定を行う第２の実行機能と、
を実現させる、制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理実行装置、処理実行方法、及び制御プログラムに関する。
【背景技術】
【０００２】
特許文献１に開示されるように、互いに別々の処理を実行する第１のサブシステムと第２のサブシステムとを備える処理実行装置が知られている。この処理実行装置では、第１のサブシステムで発生した障害を第２のサブシステムで検出できるようにするために、第１のサブシステムが、自己の処理の実行においてカウンタの更新を行う。
【０００３】
第２のサブシステムは、そのカウンタを参照し、カウンタの更新がなされていない場合には、第１のサブシステムの処理が実行されていないため、第１のサブシステムに障害が発生したことを検出することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−２６７０９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記処理実行装置は、第１のサブシステムと第２のサブシステムとが、別々のプロセッサで構成されていることを前提としたものである。
【０００６】
第１のサブシステムと第２のサブシステムとが共通のプロセッサで構成されている場合には、第１のサブシステムに障害が発生したことでプロセッサの動作が正常でなくなると、その障害を検出する第２のサブシステムへの処理の移行が滞ってしまうことがあり得る。この場合は、第１のサブシステムで発生した障害をすみやかに検出することができない。
【０００７】
本発明の目的は、予め定められた基本処理の実行と、その実行に障害が発生したことの検出とに共通のプロセッサを用いるにも関わらず、プロセッサ自身が障害の発生をすみやかに検出することができる処理実行装置、処理実行方法、及び制御プログラムを提供することである。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明に係る処理実行装置は、
記憶内容の更新が可能な第１の記憶手段と、
プロセッサによって構成され、予め定められた基本処理を繰り返し実行し、前記基本処理において、前記第１の記憶手段の記憶内容を更新する第１の実行手段と、
前記プロセッサによって構成され、前記第１の実行手段による前記基本処理の１回の実行あたりに少なくとも１回の頻度で、前記基本処理よりも実行の優先度が高い優先処理を繰り返し実行し、前記優先処理において、前記第１の記憶手段の記憶内容が更新されているか否かによって、前記第１の実行手段による前記基本処理の実行がなされたか否かを判定する基本処理実行判定を行う第２の実行手段と、
を備える。
【発明の効果】
【０００９】
上記構成によれば、第２の実行手段は、優先処理における基本処理実行判定で、第１の記憶手段の記憶内容が更新されていない場合には、第１の実行手段による基本処理の実行がなされていないため、第１の実行手段に障害が発生したことを検出することができる。
【００１０】
優先処理は、基本処理よりも実行の優先度が高いため、第１の実行手段に障害が生じた場合でも、優先処理への移行が滞る事態が生じにくい。また、優先処理は、基本処理の１回の実行あたりに少なくとも１回の頻度で繰り返し実行される。このため、基本処理の実行と、その実行に障害が発生したことの検出とに共通のプロセッサを用いるにも関わらず、プロセッサ自身が障害の発生をすみやかに検出することができる。
【図面の簡単な説明】
【００１１】
【図１】実施形態１に係る処理実行装置の構成を示すブロック図
【図２】実施形態１に係る処理実行装置の機能を示すブロック図
【図３】実施形態１に係る基本処理実行部が行うメイン制御のフローチャート
【図４】実施形態１に係る基本処理と割込み処理のタイミングチャート
【図５】実施形態１に係る割込み処理実行部が行う割込み処理のフローチャート
【図６】図５に示す割込み処理の続きを示すフローチャート
【図７】実施形態１に係る基本処理実行部が行う基本処理ループのフローチャート
【図８】実施形態２に係る割込み処理実行部が行う割込み処理のフローチャート
【図９】実施形態３に係る鉄道車両用空調システムの構成を示す概念図
【発明を実施するための形態】
【００１２】
以下、図面を参照し、本発明の実施形態に係る処理実行装置について説明する。図中、同一又は対応する部分に同一の符号を付す。
【００１３】
［実施形態１］
図１に示すように、本実施形態に係る処理実行装置１００は、制御対象機器ＣＳを制御するものである。処理実行装置１００は、制御対象機器ＣＳとの間の信号の授受を媒介するインターフェース１０と、インターフェース１０を介して制御対象機器ＣＳを制御するプロセッサとしてのＣＰＵ（Central Processing Unit）２０とを備える。
【００１４】
また、処理実行装置１００は、制御対象機器ＣＳの制御手順を規定した制御プログラム３１を記憶しているプログラム用メモリとしての補助メモリ３０も備える。
【００１５】
制御プログラム３１は、制御対象機器ＣＳを制御するための予め定められた基本処理の手順を規定した基本処理用プログラム３１ａと、基本処理よりも実行の優先度が高く、制御対象機器ＣＳを制御するための優先処理としての割込み処理の手順を規定した割込み処理用プログラム３１ｂとを含む。
【００１６】
ＣＰＵ２０は、基本処理用プログラム３１ａを実行することにより、基本処理を実行する、図２に示す基本処理実行部２１として機能する。また、ＣＰＵ２０は、割込み処理用プログラム３１ｂを実行することにより、割込み処理を実行する、図２に示す割込み処理実行部２２として機能する。
【００１７】
また、図１において、処理実行装置１００は、割込み処理を実行すべきタイミングを表す信号である割込みトリガＴＲをＣＰＵ２０に与えるトリガ付与手段としてのタイマ割込みＩＣ（Integrated Circuit）４０も備える。ＣＰＵ２０は、割込みトリガＴＲが与えられる度に、割込み処理を実行する。
【００１８】
また、処理実行装置１００は、制御プログラム３１がロードされるカウンタ群用メモリとしての主メモリ５０も備える。ＣＰＵ２０は、主メモリ５０にロードした基本処理用プログラム３１ａ及び割込み処理用プログラム３１ｂを実行する。また、主メモリ５０には、制御プログラム３１がロードされる記憶領域以外の記憶領域も確保される。
【００１９】
具体的には、ＣＰＵ２０が基本処理用プログラム３１ａを実行することで、記憶内容の更新が可能な第１の記憶手段としての基本処理用カウンタ群５１を構成する記憶領域が、主メモリ５０に確保される。
【００２０】
また、ＣＰＵ２０が割込み処理用プログラム３１ｂを実行することで、記憶内容の更新が可能な第２の記憶手段としての割込み処理用カウンタ群５２を構成する記憶領域が、主メモリ５０に確保される。
【００２１】
基本処理用カウンタ群５１には、基本処理の完了を表す数値が格納され、割込み処理用カウンタ群５２には、割込み処理の完了を表す数値が格納される。なお、ここでいうカウンタとは、インクリメント可能に数値を記憶する機能を指し、記憶する実体は主メモリ５０であるが、記憶する機能の定義は、基本処理用プログラム３１ａと割込み処理用プログラム３１ｂにおいてなされたものである。
【００２２】
次に、図２〜図７を参照し、基本処理用プログラム３１ａと割込み処理用プログラム３１ｂの各々がＣＰＵ２０に実現させる機能について、具体的に説明する。
【００２３】
図２に示すように、ＣＰＵ２０は、各々共通の制御対象機器ＣＳを制御するために別々の処理を実行する基本処理実行部２１及び割込み処理実行部２２として機能する。
【００２４】
基本処理実行部２１は、制御対象機器ＣＳを制御するための予め定められた基本処理を繰り返し実行し、基本処理において、基本処理用カウンタ群５１の記憶内容を更新する第１の実行手段としての役割を果たす。以下、具体的に説明する。
【００２５】
図７に示すように、基本処理は、逐次に実行される第１の単位基本処理（ステップＳ２０−１−１）〜第Ｎの単位基本処理（ステップＳ２０−Ｎ−１）のＮ個の単位基本処理を含む。ここでＮは３以上の自然数とする。このことに対応して、図２に示す基本処理用カウンタ群５１は、第１の単位基本処理用カウンタ５１−１〜第Ｎの単位基本処理用カウンタ５１−ＮのＮ個の単位基本処理用カウンタを含む。
【００２６】
第１の単位基本処理用カウンタ５１−１は、第１の単位基本処理（ステップＳ２０−１−１）に対応して設けられたものであり、第２の単位基本処理用カウンタ５１−２は、第２の単位基本処理（ステップＳ２０−２−１）に対応して設けられたものであり、第Ｎの単位基本処理用カウンタ５１−Ｎは、第Ｎの単位基本処理（ステップＳ２０−Ｎ−１）に対応して設けられたものである。
【００２７】
図２に示す基本処理実行部２１は、図７に示すように、第１の単位基本処理（ステップＳ２０−１−１）〜第Ｎの単位基本処理（ステップＳ２０−Ｎ−１）のシーケンスを繰り返し実行する過程で、第ｉの単位基本処理の実行を終えると、第ｉの単位基本処理用カウンタ５１−ｉのインクリメントを行う。ここでｉは、１〜Ｎの任意の自然数とする。
【００２８】
次に、図２に示す割込み処理実行部２２について説明する。割込み処理実行部２２は、基本処理よりも実行の優先度が高く、制御対象機器ＣＳを制御するための割込み処理を、割込みトリガＴＲが与えられる度に実行し、割込み処理において、割込み処理用カウンタ群５２の記憶内容を更新する第２の実行手段としての役割を果たす。以下、具体的に説明する。
【００２９】
図５に示すように、割込み処理は、逐次に実行される第１の単位割込み処理（ステップＳ３０−１−１）〜第Ｍの単位割込み処理（ステップＳ３０−Ｍ−１）のＭ個の単位割込み処理を含む。ここでＭは３以上の自然数とする。このことに対応して、図２に示す割込み処理用カウンタ群５２は、第１の単位割込み処理用カウンタ５２−１〜第Ｍの単位割込み処理用カウンタ５２−ＭのＭ個の単位割込み処理用カウンタを含む。
【００３０】
第１の単位割込み処理用カウンタ５２−１は、第１の単位割込み処理（ステップＳ３０−１−１）に対応して設けられたものであり、第２の単位割込み処理用カウンタ５２−２は、第２の単位割込み処理（ステップＳ３０−２−１）に対応して設けられたものであり、第Ｍの単位基本処理用カウンタ５２−Ｍは、第Ｍの単位割込み処理（ステップＳ３０−Ｍ−１）に対応して設けられたものである。
【００３１】
図２に示す割込み処理実行部２２は、図５に示すように、第１の単位割込み処理（ステップＳ３０−１−１）〜第Ｍの単位割込み処理（ステップＳ３０−Ｍ−１）のシーケンスを実行する過程で、第ｊの単位割込み処理の実行を終えると、第ｊの単位割込み処理用カウンタ５２−ｊのインクリメントを行う。ここでｊは、１〜Ｍの任意の自然数とする。
【００３２】
以上説明した構成によれば、図２において、割込み処理実行部２２は、基本処理実行部２１が或る１周期分の基本処理を完了しているべきタイミングにおいて、基本処理用カウンタ群５１を構成する第１の単位基本処理用カウンタ５１−１〜第Ｎの単位基本処理用カウンタ５１−Ｎの各々の更新の有無によって、第１の単位基本処理（ステップＳ２０−１−１）〜第Ｎの単位基本処理（ステップＳ２０−Ｎ−１）の実行がなされたか否かを判定する基本処理実行判定を行うことができる。
【００３３】
同様に、基本処理実行部２１は、割込み処理実行部２２が或る割込み処理を完了しているべきタイミングにおいて、割込み処理用カウンタ群５２を構成する第１の単位割込み処理用カウンタ５２−１〜第Ｍの単位割込み処理用カウンタ５２−Ｍの各々の更新の有無によって、第１の単位割込み処理（ステップＳ３０−１−１）〜第Ｍの単位割込み処理（ステップＳ３０−Ｍ−１）の実行がなされたか否かを判定する割込み処理実行判定を行うことができる。
【００３４】
以下、図３〜図７を参照し、基本処理実行部２１と割込み処理実行部２２の動作をより具体的に説明する。
【００３５】
まず、基本処理実行部２１の動作を具体的に説明する。基本処理実行部２１は、処理実行装置１００が立ち上げられると、図３に示すメイン制御を開始する。以下、メイン制御について説明する。
【００３６】
図３に示すように、基本処理実行部２１は、処理実行装置１００が起動された際になすべきイニシャル処理、具体的には各種制御パラメータの初期化を行った後（ステップＳ１０）、割込みが発生したか否かを判定する（ステップＳ１１）。ここで、割込みが発生したか否かとは、割込みトリガＴＲが割込み処理実行部２２に出力されたことで、割込み処理実行部２２が割込み処理を実行しようとしているか否かを意味する。
【００３７】
基本処理実行部２１は、割込みが発生していない場合は（ステップＳ１１；ＮＯ）、基本処理を繰り返す基本処理ループを実行する（ステップＳ１２）。なお、１回の基本処理には、既述のように、第１の単位基本処理（ステップＳ２０−１−１）〜第Ｎの単位基本処理（ステップＳ２０−Ｎ−１）が含まれる。
【００３８】
一方、基本処理実行部２１は、ステップＳ１１で割込みが発生した場合は（ステップＳ１１；ＹＥＳ）、基本処理ループの実行を中断し（ステップＳ１３）、割込みが完了したか否かの判定を行う（ステップＳ１４）。ここで、割込みが完了したか否かとは、割込み処理実行部２２による１回分の割込み処理が完了したか否かを意味する。
【００３９】
基本処理実行部２１は、割込みがまだ完了していない場合は（ステップＳ１４；ＮＯ）、再びステップＳ１３に戻って割込み処理の完了を待ち、割込みが完了している場合は（ステップＳ１４；ＹＥＳ）、ステップＳ１２に移行して、基本処理ループの実行を再開する。
【００４０】
以上説明した基本処理実行部２１が行うメイン制御の時間軸に沿った流れを図４に示す。また、図４には、割込み処理実行部２２の動作の時間軸に沿った流れも示す。
【００４１】
図４に示すように、基本処理実行部２１は、イニシャル処理又は基本処理ループを実行している実行状態と、割込み処理実行部２２による割込み処理の完了を待つ割込み処理完了待ち状態とを交互に繰り返す。
【００４２】
これは、割込み処理実行部２２に対して、割込みトリガＴＲが、基本処理ループの繰り返し周期よりも短い周期で、繰り返し与えられることによる。即ち、１回の割込み処理と、次の割込み処理との間の時間間隔は、基本処理実行部２１による１回の基本処理の実行に要する時間よりも短い。
【００４３】
具体的には、割込みトリガＴＲは、基本処理実行部２１による基本処理の１回の実行あたりに２回の頻度で、周期的に与えられる。従って、２回分の割込み処理が完了する際には、１回分の基本処理が既に完了しているべきである。
【００４４】
そこで、割込み処理実行部２２は、２回の割込み処理に１回の頻度で、即ち、割込み処理の繰り返し周期の２倍の周期で、図２に示す基本処理用カウンタ群５１の更新の有無を確認することで、基本処理が実行されたか否かを判定する上述した基本処理実行判定を行える。以下、図５及び図６を参照し、割込み処理実行部２２の動作を具体的に説明する。
【００４５】
図５に示すように、割込み処理実行部２２は、割込みトリガＴＲが与えられると、第１の単位割込み処理を実行し（ステップＳ３０−１−１）、第１の単位割込み処理用カウンタ５２−１をインクリメントした後（ステップＳ３０−１−２）、第２の単位割込み処理を実行し（ステップＳ３０−２−１）、第２の単位割込み処理用カウンタ５２−２をインクリメントする（ステップＳ３０−２−２）。
【００４６】
そして、割込み処理実行部２２は、同様の処理を繰り返し、第Ｍの単位割込み処理を実行し（ステップＳ３０−Ｍ−１）、第Ｍの単位割込み処理用カウンタ５２−Ｍをインクリメントする（ステップＳ３０−Ｍ−２）。
【００４７】
図６に移行し、次に割込み処理実行部２２は、割込み処理の繰り返し回数を表すパラメータＫをインクリメントする（ステップＳ３１）。なお、処理実行装置１００を起動した際に、パラメータＫには、初期値として０が代入されているものとする。
【００４８】
次に、割込み処理実行部２２は、パラメータＫが２であるか否かを判定し（ステップＳ３２）、パラメータＫが２でないならば（ステップＳ３２；ＮＯ）、基本処理が既に完了しているタイミングではないので、割込み処理を終了する。
【００４９】
一方、割込み処理実行部２２は、パラメータＫが２である場合は（ステップＳ３２；ＹＥＳ）、パラメータＫを０にリセットした後（ステップＳ３３）、図２に示す第１の単位基本処理用カウンタ５１−１〜第Ｎの単位基本処理用カウンタ５１−Ｎのすべてがインクリメントされているか否かを判定する基本処理実行判定を行う（ステップＳ３４）。
【００５０】
以上のように、ステップＳ３２で、パラメータＫ＝２であるか否かの判定を行うので、２回の割込み処理に１回のタイミング、即ち、図４を参照して説明したように１回の基本処理が完了しているべきタイミングで、ステップＳ３４の基本処理実行判定がなされる。
【００５１】
割込み処理実行部２２は、第１の単位基本処理用カウンタ５１−１〜第Ｎの単位基本処理用カウンタ５１−Ｎのすべてがインクリメントされている場合は（ステップＳ３４；ＹＥＳ）、基本処理が正常に完了しているため、割込み処理を終了する。
【００５２】
この場合、割込み処理実行部２２は、図４に示したように、次の割込みトリガＴＲが発せられるまで待機する割込みトリガ待ち状態となる。そして、割込み処理実行部２２は、次の割込みトリガＴＲが発せられたとき、ステップＳ３０−１−１以降の割込み処理を再び実行する。
【００５３】
一方、図６のステップＳ３４で、割込み処理実行部２２は、第１の単位基本処理用カウンタ５１−１〜第Ｎの単位基本処理用カウンタ５１−Ｎの少なくとも１つがインクリメントされていない場合は（ステップＳ３４；ＮＯ）、基本処理が正常に完了していないため、基本処理実行部２１に異常が生じたものと判別する。
【００５４】
そして、割込み処理実行部２２は、異常の発生に対する復旧措置として、制御対象機器ＣＳを再起動させると共に（ステップＳ３５）、処理実行装置１００自身も再起動させる。以上、割込み処理実行部２２の動作について説明した。
【００５５】
次に、再び図４を参照し、基本処理実行部２１の動作説明に戻る。図４に示すように、１回の基本処理の実行中に、割込みトリガＴＲの出力が２回なされるので、１回の基本処理が完了するタイミングでは、２回分の割込み処理が完了しているべきである。
【００５６】
そこで、基本処理実行部２１は、１回の基本処理毎に、図２に示す割込み処理用カウンタ群５２の更新の有無を確認することで、２回分の割込み処理が実行されたか否かを判定する上述した割込み処理実行判定を行える。図３を参照して述べた基本処理ループに、この割込み処理実行判定が含まれる。以下、図７を参照し、基本処理ループの内容について具体的に説明する。
【００５７】
図７に示すように、基本処理実行部２１は、第１の単位基本処理を実行し（ステップＳ２０−１−１）、第１の単位基本処理用カウンタ５１−１をインクリメントした後（ステップＳ２０−１−２）、第２の単位基本処理を実行し（ステップＳ２０−２−１）、第２の単位基本処理用カウンタ５１−２をインクリメントする（ステップＳ２０−２−２）。
【００５８】
そして、基本処理実行部２１は、同様の処理を繰り返し、第Ｎの単位基本処理を実行し（ステップＳ２０−Ｎ−１）、第Ｎの単位基本処理用カウンタ５１−Ｎをインクリメントする（ステップＳ２０−Ｎ−２）。
【００５９】
次に、基本処理実行部２１は、図２に示す第１の単位割込み処理用カウンタ５２−１〜第Ｍの単位割込み処理用カウンタ５２−Ｍのすべてが２回分インクリメントされているか否かを判定する割込み処理実行判定を行う（ステップＳ２１）。
【００６０】
基本処理実行部２１は、第１の単位割込み処理用カウンタ５２−１〜第Ｍの単位割込み処理用カウンタ５２−Ｍのすべてが２回分インクリメントされている場合は（ステップＳ２１；ＹＥＳ）、割込み処理が正常に完了しているため、以上で１回分の基本処理を終え、次の基本処理を実行すべく再びステップＳ２０−１−１に戻る（ＲＥＴＵＲＮ）。
【００６１】
なお、図４に示したように、１回の基本処理の途中で２回の割込み処理が発生する。基本処理実行部２１は、図３のステップＳ１１で割込みが発生した場合、図３のステップＳ１３においては、図７に示すステップＳ２０−１−１〜Ｓ２１のどこまでを実行したかを記憶したうえで、基本処理を中断する退避処理を行う。
【００６２】
そして、基本処理実行部２１は、図３のステップＳ１４で割込みが完了したとき（ステップＳ１４；ＹＥＳ）、図３のステップＳ１２においては、退避処理で記憶しておいたステップの次のステップから、基本処理ループの実行を再開する。
【００６３】
一方、図７のステップＳ２１で、基本処理実行部２１は、第１の単位割込み処理用カウンタ５２−１〜第Ｍの単位割込み処理用カウンタ５２−Ｍの少なくとも１つが２回分インクリメントされていない場合は（ステップＳ２１；ＮＯ）、割込み処理が正常に完了していないため、割込み処理実行部２２に異常が生じたものと判別する。
【００６４】
そして、基本処理実行部２１は、異常の発生に対する復旧措置として、制御対象機器ＣＳを再起動させると共に（ステップＳ２２）、処理実行装置１００自身も再起動させる。
【００６５】
以上説明したように、本実施形態によれば、割込み処理実行部２２は、割込み処理における基本処理実行判定（ステップＳ３４）で、基本処理用カウンタ群５１の記憶内容が更新されていない場合には、基本処理実行部２１による基本処理の実行がなされていないため、基本処理実行部２１に障害が発生したことを検出することができる。
【００６６】
割込み処理は、基本処理よりも実行の優先度が高く、基本処理を中断して実行されるものであるため、基本処理実行部２１にデッドロックその他の障害が生じた場合でも、割込み処理への移行が滞る事態が生じにくい。また、割込み処理は、基本処理の１回の実行あたりに２回の頻度で繰り返し実行される。このため、基本処理の実行と、その実行に障害が発生したことの検出とに共通のＣＰＵ２０を用いるにも関わらず、ＣＰＵ２０自身が障害の発生をすみやかに検出することができる。
【００６７】
また、基本処理用カウンタ群５１が、第１〜第Ｎの単位基本処理用カウンタ５１−１〜５１−Ｎを含み、割込み処理実行部２２が、基本処理実行判定（ステップＳ３４）において、第１〜第Ｎの単位基本処理用カウンタ５１−１〜５１−Ｎの各々について更新の有無を確認する。このため、割込み処理実行部２２は、基本処理を構成する第１〜第Ｎの単位基本処理（ステップＳ２０−１−１〜Ｓ２０−Ｎ−１）のいずれに障害が発生したかも検知することができる。
【００６８】
また、基本処理実行部２１は、基本処理における割込み処理実行判定（ステップＳ２１）で、割込み処理用カウンタ群５２の記憶内容が更新されていない場合には、割込み処理実行部２２による割込み処理の実行がなされていないため、割込み処理実行部２２に障害が発生したことを検出することができる。
【００６９】
また、割込み処理用カウンタ群５２が、第１〜第Ｍの単位割込み処理用カウンタ５２−１〜５２−Ｍを含み、基本処理実行部２１が、割込み処理実行判定（ステップＳ２１）において、第１〜第Ｍの単位割込み処理用カウンタ５２−１〜５２−Ｍの各々について更新の有無を確認する。このため、基本処理実行部２１は、割込み処理を構成する第１〜第Ｍの単位割込み処理（ステップＳ３０−１−１〜Ｓ３０−Ｍ−１）のいずれに障害が発生したかも検知することができる。
【００７０】
［実施形態２］
上記実施形態１では、割込み処理実行部２２が、２回の割込み処理に１回の頻度で基本処理実行判定（ステップＳ３４）を行ったが、割込み処理実行部２２は、割込み処理の度に、基本処理が実行されたか否かの判定を行ってもよい。以下、その具体例を説明する。
【００７１】
図８に示すように、本実施形態では、割込み処理実行部２２が、図５のステップＳ３０−Ｍ−２を終えた後に、今回の割込み処理が、処理実行装置１００が起動されてから起算して２回目以降の割込み処理であるか否かを判定する（ステップＳ４０）。
【００７２】
今回の割込み処理が、最初の１回目の割込み処理である場合は（ステップＳ４０；ＮＯ）、割込み処理実行部２２は、割込み処理を終了する。
【００７３】
一方、割込み処理実行部２２は、今回の割込み処理が２回目以降の割込み処理である場合は（ステップＳ４０；ＹＥＳ）、第１〜第Ｎの単位基本処理用カウンタ５１−１〜５１−Ｎのうち、前回の割込み処理から今回の割込み処理までの間にインクリメントされたものの個数が、Ｌ個以上であるか否かの判定を行う（ステップＳ４１）。
【００７４】
ここでＬは、１以上Ｎ未満の自然数であり、割込み処理と次の割込み処理の間の期間に完了しているべき単位割込み処理の数の最低値を表す。Ｌの値は、基本処理ループの繰り返し周期と、割込みトリガＴＲの繰り返し周期とから、予め定められる。
【００７５】
割込み処理実行部２２は、第１〜第Ｎの単位基本処理用カウンタ５１−１〜５１−Ｎのうち、前回の割込み処理から今回の割込み処理までの間にインクリメントされたものの個数が、Ｌ個未満である場合は（ステップＳ４１；ＮＯ）、基本処理が正常に進行していないため、制御対象機器ＣＳを再起動させる（ステップＳ３５）。
【００７６】
一方、割込み処理実行部２２は、第１〜第Ｎの単位基本処理用カウンタ５１−１〜５１−Ｎのうち、前回の割込み処理から今回の割込み処理までの間にインクリメントされたものの個数が、Ｌ個以上である場合は（ステップＳ４１；ＹＥＳ）、ステップＳ３１に移行する。ステップＳ３１以降の処理内容は既に述べたため、重複する説明を省略する。
【００７７】
本実施形態によれば、割込み処理実行部２２が、割込み処理の度に、基本処理が実行されたか否かをチェックするため、基本処理実行部２１に発生した異常を、実施形態１の場合よりもすみやかに検出し得る。
【００７８】
［実施形態３］
上記実施形態に係る処理実行装置１００が制御する制御対象機器ＣＳは、鉄道車両の客室を空調する鉄道車両用空調機器であってもよい。以下、その具体例について述べる。
【００７９】
図９に示すように、本実施形態に係る鉄道車両用空調システム３００は、冷媒を用いて冷凍サイクルを構成することにより鉄道車両の客室を空調する鉄道車両用空調機器２００と、鉄道車両用空調機器２００を制御する処理実行装置１００とを備える。処理実行装置１００は、鉄道車両用空調機器２００と共に鉄道車両に搭載される。
【００８０】
鉄道車両用空調機器２００は、冷媒を気化させる蒸発器としての室内熱交換器２１０と、気化された冷媒を液体の冷媒から分離する気液分離器２２０と、分離された気体の冷媒を圧縮する圧縮機２３０と、圧縮された冷媒を凝縮させる凝縮器としての室外熱交換器２４０と、凝縮された冷媒を膨張させる膨張器２５０とを有する。
【００８１】
また、鉄道車両用空調機器２００は、これら室内熱交換器２１０、気液分離器２２０、圧縮機２３０、室外熱交換器２４０、及び膨張器２５０を接続し、冷媒を流通させる冷媒配管２６０も有する。
【００８２】
圧縮機２３０が、鉄道車両用空調機器２００によって構成される冷凍サイクル内で冷媒を循環させる。冷媒が循環されることにより、室内熱交換器２１０が冷却された状態となり、室外熱交換器２４０が発熱した状態となる。室内熱交換器２１０が、客室内の空気と熱交換することで、客室の冷房が実現される。冷房を実現するために生じる排熱は、室外熱交換器２４０によって鉄道車両の外部に放出される。
【００８３】
また、鉄道車両用空調機器２００は、室内熱交換器２１０と空気との熱交換を促進する室内ファン２７０と、室外熱交換器２４０と空気との熱交換を促進する室外ファン２８０とを有する。室内ファン２７０は、室内熱交換器２１０と熱交換することで冷却された空気を、客室に送り込む。室外ファン２８０は、室外熱交換器２４０と熱交換することにより加熱された空気を鉄道車両の外部に排出させる。
【００８４】
また、鉄道車両用空調機器２００は、各種の物理量を検出するセンサ群２９０も有する。センサ群２９０には、例えば、室内熱交換器２１０を通過した空気の温度である吹出空気温度を検出する吹出空気温度センサ、客室内の温度を検出する車内温度センサ、車外の外気温度を検出する外気温度センサ、日射量を検出する日射センサ、及び車両内の乗客の混雑度を検出する混雑度センサが含まれる。
【００８５】
処理実行装置１００は、上述した基本処理及び優先処理として、鉄道車両用空調機器２００を制御するための処理を行う。
【００８６】
具体的には、処理実行装置１００において、図２に示す割込み処理実行部２２は、割込み処理として、センサ群２９０から各種物理量のデータを取得すると共に、取得したデータに基づいて、圧縮機２３０の容量又は運転周波数の目標値、室内ファン２７０の運転周波数の目標値、及び室外ファン２８０の運転周波数の目標値を定める処理を行う。
【００８７】
また、処理実行装置１００において、図２に示す基本処理実行部２１は、基本処理として、圧縮機２３０の容量又は運転周波数、室内ファン２７０の運転周波数、及び室外ファン２８０の運転周波数を、割込み処理実行部２２による割込み処理において随時に補正される目標値に近づける制御を行う。
【００８８】
本実施形態に係る鉄道車両用空調システム３００によれば、処理実行装置１００が、基本処理及び割込み処理に異常が生じたか否かを自身で検知することができ、異常を検知した場合には、復旧措置として、鉄道車両用空調システム３００を再起動する。
【００８９】
これにより、鉄道車両用空調機器２００が正常な運転状態に戻る。このため、処理実行装置１００の異常に起因して客室の快適性が損なわれる問題が生じにくい、信頼性の高い鉄道車両用空調システム３００を提供することができる。
【００９０】
以上、本発明の実施形態について説明した。本発明はこれに限られず、以下に述べる変形も可能である。
【００９１】
上記実施形態では、一例として、基本処理を１回実行する期間に割込み処理を２回実行する場合について述べたが、割込み処理は、基本処理の１回の実行あたりに１回の頻度で行ってもよい。この場合でも、割込み処理の度に、基本処理用カウンタ群５１の記憶内容が更新されているか否かによって基本処理の実行がなされたか否かを判定する基本処理実行判定を行うことで、基本処理実行部２１に生じた異常をすみやかに検出できる。
【００９２】
また、基本処理を１回実行する期間に割込み処理を３回以上行ってもよい。一般に、基本処理を１回実行する期間に割込み処理をｎ回実行する場合は、図６及び図８のステップＳ３２のＫ＝２であるか否かの判定を、Ｋ＝ｎであるか否かの判定に置き換えればよい。ここで、ｎは１以上の自然数とする。
【００９３】
上記実施形態では、割込み処理実行部２２が、割込み処理において、まず第１〜第Ｍの単位割込み処理（Ｓ３０−１−１〜Ｓ３０−Ｍ−１）の実行を終えた後に、基本処理実行判定（ステップＳ３４）を行ったが、先に基本処理実行判定（ステップＳ３４）を行った後に、第１〜第Ｍの単位割込み処理（Ｓ３０−１−１〜Ｓ３０−Ｍ−１）を実行してもよい。同様に、基本処理実行部２１は、基本処理において、先に割込み処理実行判定（ステップＳ２１）を行った後に、第１〜第Ｎの単位基本処理（Ｓ２０−１−１〜Ｓ２０−Ｎ−１）を実行してもよい。
【００９４】
上記実施形態では、基本処理よりも実行の優先度が高い優先処理が割込み処理である場合について述べたが、優先処理は、基本処理よりも優先して実行されるものであれば、割込み処理でなくてもよい。基本処理と割込み処理とが、並行して実行される期間が存在してもよい。
【００９５】
上記実施形態では、記憶内容の更新が可能な第１の記憶手段を、プログラム上で定義されたソフトウエアカウンタである基本処理用カウンタ群５１として実現したが、基本処理用カウンタ群５１を専用のハードウエアカウンタで実現してもよい。同様に、記憶内容の更新が可能な第２の記憶手段としての割込み処理用カウンタ群５２を専用のハードウエアカウンタで実現してもよい。
【００９６】
上記実施形態では、基本処理用カウンタ群５１及び割込み処理用カウンタ群５２を構成するカウンタ群用メモリを、主メモリ５０によって実現した一例を述べたが、カウンタ群用メモリは、揮発性メモリであってもよいし、不揮発性メモリであってもよい。ＣＰＵ２０が、不揮発性メモリ上で制御プログラム３１を実行したり、不揮発性メモリ上の基本処理用カウンタ群５１及び割込み処理用カウンタ群５２を更新したりすることもあり得る。また、上記実施形態では、制御プログラム３１を記憶するプログラム用メモリを、補助メモリ３０によって実現した一例を述べたが、プログラム用メモリは、揮発性メモリであってもよいし、不揮発性メモリであってもよい。
【００９７】
図１に示した制御プログラム３１をコンピュータにインストールすることで、そのコンピュータを処理実行装置１００として機能させることもできる。制御プログラム３１は、通信回線を介して配布してもよいし、光ディスク、磁気ディスク、光磁気ディスク、フラッシュメモリといったコンピュータ読み取り可能な記録媒体に格納して配布してもよい。
【符号の説明】
【００９８】
１０…インターフェース、２０…ＣＰＵ（プロセッサ）、２１…基本処理実行部（第１の実行手段）、２２…割込み処理実行部（第２の実行手段）、３０…補助メモリ、３１…制御プログラム、３１ａ…基本処理用プログラム、３１ｂ…割込み処理用プログラム、４０…タイマ割込みＩＣ、５０…主メモリ、５１…基本処理用カウンタ群（第１の記憶手段）、５１−１…第１の単位基本処理用カウンタ（単位基本処理用カウンタ）、５１−２…第２の単位基本処理用カウンタ（単位基本処理用カウンタ）、５１−Ｎ…第Ｎの単位基本処理用カウンタ（単位基本処理用カウンタ）、５２…割込み処理用カウンタ群（第２の記憶手段）、５２−１…第１の単位割込み処理用カウンタ（単位優先処理用カウンタ）、５２−２…第２の単位割込み処理用カウンタ（単位優先処理用カウンタ）、５２−Ｍ…第Ｍの単位割込み処理用カウンタ（単位優先処理用カウンタ）、１００…処理実行装置、２００…鉄道車両用空調機器、２１０…室内熱交換器、２２０…気液分離器、２３０…圧縮機、２４０…室外熱交換器、２５０…膨張器、２６０…冷媒配管、２７０…室内ファン、２８０…室外ファン、２９０…センサ群、３００…鉄道車両用空調システム、ＣＳ…制御対象機器、ＴＲ…割込みトリガ。
【図１】
2019032690.tif 000003
【図２】
2019032690.tif 000004
【図３】
2019032690.tif 000005
【図４】
2019032690.tif 000006
【図５】
2019032690.tif 000007
【図６】
2019032690.tif 000008
【図７】
2019032690.tif 000009
【図８】
2019032690.tif 000010
【図９】
2019032690.tif 000011