(57)【要約】  本発明に係るエレベーター安全制御装置は、複数の安全制御機能および複数の非安全制御機能を各々独立したプログラムとして記憶するとともに、安全スケジューリング情報を記憶する記憶部と、安全スケジューリング情報に従って、複数の安全制御機能および複数の非安全制御機能に対応するそれぞれのプログラムを順次実行することにより、エレベーターの制御演算を行うＣＰＵとを備え、ＣＰＵは、各制御周期において、安全スケジューリング情報に従って安全制御機能を連続して空き時間なしに順次実行し、安全制御機能をすべて実行した後の制御周期内の空き時間で、複数の非安全制御機能を実行するものである。
2019171424.tif 000002
【特許請求の範囲】
【請求項１】
複数の安全制御機能および複数の非安全制御機能を各々独立したプログラムとして記憶するとともに、前記複数の安全制御機能を各制御周期で実行する際の制御周期ごとのスケジューリングと実行順序があらかじめ規定された安全スケジューリング情報を記憶する記憶部と、
前記安全スケジューリング情報に従って、前記複数の安全制御機能および前記複数の非安全制御機能に対応するそれぞれのプログラムを順次実行することにより、エレベーターの制御演算を行うＣＰＵと
を備え、
前記ＣＰＵは、各制御周期において、前記安全スケジューリング情報として規定された前記実行順序に従って前記安全制御機能を連続して空き時間なしに順次実行し、制御周期内に割り当てられた安全制御機能をすべて実行した後の制御周期内の空き時間で、前記複数の非安全制御機能を実行する
エレベーター安全制御装置。
【請求項２】
エレベーターの状態に関する信号を入力値として取得する入力部と、
前記複数の安全制御機能および複数の非安全制御機能からなるすべての制御機能について、ある制御機能が他の制御機能に影響を及ぼさないように、制御機能間の独立性を保証する独立性保証部と
をさらに有し、
前記安全スケジューリング情報は、前記複数の安全制御機能の実行順と、前記複数の安全制御機能のそれぞれに対応して安全制御機能の演算処理を前記ＣＰＵで実行することができる時間を定めた規定時間と、各制御周期中の最後に実行する安全制御機能であるか否かを示す最終フラグと、が対応づけられており、
前記記憶部は、前記非安全制御機能の実行順が規定された非安全スケジューリング情報がさらに記憶されており、
前記独立性保証部は、それぞれの安全制御機能による演算処理時間が前記規定時間を超過したか否かを監視する規定時間タイマ、および各制御周期を監視する制御周期タイマを有し、
前記ＣＰＵは、各制御周期において、
最初に、前記安全スケジューリング情報で規定された実行順に従って安全制御機能の演算処理を開始し、前記最終フラグが有効である安全制御機能の演算処理までを実行し、
安全制御機能の演算処理が、演算処理中の安全制御機能に対応づけられている規定時間以前に終了したとき、または前記規定時間に達し前記規定時間タイマによる割込が発生したときに、次の実行順の安全制御機能の演算処理を開始させることで、制御周期中に実行すべき安全制御機能の演算処理を連続して空き時間なしに順次実行し、
制御周期中に実行すべき安全制御機能の演算処理が完了した後に、制御周期の終了までの空き時間において、前記非安全スケジューリング情報で規定された実行順に従って非安全制御機能の演算処理を実行し、
前記制御周期が経過し前記制御周期タイマによる割込が発生したときに、実行中の非安全制御機能を中断して１つの制御周期の演算処理を終了する
請求項１に記載のエレベーター安全制御装置。
【請求項３】
各々独立して実行される各プログラムの実行状態の情報を保持するコンテキストブロックをさらに備え、
前記ＣＰＵは、
前記規定時間タイマまたは前記制御周期タイマの割込が発生したときに、演算処理中の制御機能を中断し、中断した制御機能に関するプログラムの実行状態の情報を前記コンテキストブロックに格納し、
中断した制御機能を次回実行する際に、前記コンテキストブロックに格納されたプログラムの実行状態の情報を利用して、中断した状態の制御機能の演算処理を再開可能とする
請求項２に記載のエレベーター安全制御装置。
【請求項４】
前記ＣＰＵは、前記複数の安全制御機能のそれぞれを実行するために使用する領域が個別に割り当てられた内部メモリを有し、
前記独立性保証部は、前記複数の安全制御機能および複数の非安全制御機能からなるすべての制御機能のいずれかの演算処理を実行中に、演算処理中の制御機能が許可された領域以外の前記内部メモリの領域にアクセスした異常アクセス状態の有無を監視し、前記異常アクセス状態を検出した場合には、前記ＣＰＵに対して、エレベーターの安全動作を実行させる指令を出力するメモリ保護機能を有する
請求項２または３に記載のエレベーター安全制御装置。
【請求項５】
前記安全スケジューリング情報は、安全制御機能が演算処理中に中断可能であるか否かを示す中断可能フラグがさらに関連付けられており、
前記ＣＰＵは、前記中断可能フラグが無効である安全制御機能の演算処理中に、前記規定時間タイマの割込が発生した場合には、エレベーターの安全動作を実行する
請求項２から４のいずれか１項に記載のエレベーター安全制御装置。
【請求項６】
前記制御周期タイマの値は、前記各々独立したプログラムに対応して固有に設定可能であり、
前記ＣＰＵは、演算処理を実行する制御機能に対応するプログラムに設定された前記制御周期タイマの値を利用可能である
請求項２から５のいずれか１項に記載のエレベーター安全制御装置。
【請求項７】
前記ＣＰＵは、
前記制御周期タイマの経過回数を保持するカウンタを有し、
前回制御周期タイマを取得した際の制御周期タイマの値および経過回数と、今回制御周期タイマを取得した際の制御周期タイマの値および経過回数とを用いて、前回から今回までの経過時間を計測可能とする
請求項６に記載のエレベーター安全制御装置。
【請求項８】
特定の区間のみ前記規定時間タイマによる割込を禁止したい安全制御機能のタスクについて、
前記ＣＰＵは、
前記タスクの開始時に制御周期タイマの値ｔａを取得し、
前記特定の区間の開始時に制御周期タイマの値ｔｂを取得し、
前記特定の区間の開始時において、前記特定の区間の時間幅ｔｃと、前記タスクの規定時間タイマの設定値ｔｄから、
ｔｄ＜ｔｂ−ｔａ＋ｔｃ
の関係が成立するか否かを判断し、前記関係が成立する場合には、前記特定の区間の開始時において前記タスクの演算処理を中断して次の実行順へ処理を移行し、前記タスクの前記次の実行順となった際に前記特定の区間の初めの状態から前記タスクの実行を再開することで、前記特定の区間における前記規定時間タイマによる割込を禁止する
請求項６または７に記載のエレベーター安全制御装置。
【請求項９】
前記ＣＰＵは、
前記次の実行順において、前記特定の区間が開始した場合には開始フラグをセットし、前記特定の区間が終了した場合には終了フラグをセットし、
前記特定の区間が開始した後に規定時間タイマの割込が発生した際に、前記開始フラグがセットされており、かつ前記終了フラグがセットされていない場合には、エレベーターの安全動作を実行する
請求項８に記載のエレベーター安全制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の安全制御機能を備えたエレベーターの運転を制御するエレベーター安全制御装置に関するものである。
【背景技術】
【０００２】
近年、エレベーターには、種々の安全制御機能が導入されるようになっている。安全制御機能の具体例としては、以下のものが挙げられる。
・終端階強制減速機能（ＳＥＴＳ）
・戸開走行保護機能（ＵＣＭＰ）
・自己診断機能（ＤＩＡＧ）
・系統間通信機能（ＩＣＯＭ）【０００３】
一方、非安全制御機能の具体例としては、以下のものが挙げられる。
・データロギング機能（ＤＬＯＧ）
・エレベーター運転制御装置とのインターフェース機能（ＣＣＩＦ）【０００４】
上述したような安全制御機能は、今後、さらに適用範囲の拡大が見込まれる。これらの安全制御機能をそれぞれ実装する場合、安全機能ごとに基板あるいは装置を複数用意しなければならない。このため、装置のコスト、および装置の据付・保守の手間が増大してしまう。【０００５】
そこで、この問題を解決するために、複数の安全制御機能を一の基板あるいは一の装置に実装する方法が提案されている（例えば、特許文献１参照）。【０００６】
複数の安全制御機能を一の基板あるいは一の装置に実装する場合、安全制御機能のアプリケーション、あるいは非安全制御機能のアプリケーションが、他の安全制御機能に影響を及ぼさないよう、各制御機能の独立性を確保する必要がある。【０００７】
そこで、タイム・パーティショニングを用いたタスクスケジューリングによって、安全制御機能関連のアプリケーションを、非安全制御機能関連のアプリケーションから独立させている従来技術がある（例えば、特許文献２参照）。各タイムパーティションは、毎周期固定の大きさであり、それぞれのパーティションで決められたタスク群の中から、タスクがスケジューリングされる。【０００８】
特許文献２における図１の例では、タイムパーティションＴＰ１には安全制御機能のタスクＳＴ１、タイムパーティションＴＰ２には安全制御機能のタスクＳＴ２、タイムパーティションＴＰ３には非安全制御機能のタスクＮＳＴ１とＮＳＴ２が、それぞれスケジューリングされている。各ＴＰ内でのスケジューリング方法は、自由である。ただし、独立性の確保のため、同一のＴＰ内に安全制御機能関連のアプリケーションのタスクと非安全制御機能関連のアプリケーションのタスクとを混在させることはできない。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特許第５５０７１８号公報
【特許文献２】特開２０１０−２７１７５９号公報
【特許文献３】国際公開第２０１１／１５８３０１号
【特許文献４】特開２００３−１０４６４６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、従来技術には、以下のような課題がある。
特許文献２で用いられているタイム・パーティショニングでは、毎周期を決まった大きさのパーティションに分割し、かつ、分割されたパーティション内で、決められた種類のアプリケーションのタスクがスケジューリングされる。アプリケーションの処理が完了するまでに要する時間は、条件分岐、バスの競合などの要因によって、変動する。従って、パーティションの大きさは、各アプリケーションの最悪実行時間を考慮して設定する必要がある。【００１１】
ここで、最悪実行時間とは、処理が完了するまでに要する時間が最も長くなるワーストケースの時間を指している。このため、特許文献２では、最悪実行時間を考慮して各パーティションが大きめに設定されており、タスクが早期に終了した場合、パーティション内に空き時間が発生する。【００１２】
しかしながら、独立性の確保のためには、安全制御機能関連のアプリケーションのタスクと非安全制御機能関連のアプリケーションのタスクとは、必ず別のパーティションにスケジューリングしなければならない。【００１３】
したがって、安全制御機能関連のアプリケーションに割り当てられたパーティションに空きが発生したとしても、その空き時間に非安全制御機能関連のアプリケーションのタスクを割り当てることはできない。この結果、特許文献２で用いられているタイム・パーティショニングでは、ＣＰＵの利用効率を向上できないという課題がある。【００１４】
本発明は、前記のような課題を解決するためになされたものであり、安全制御機能のタスクと非安全制御機能のタスクとの独立性を確保した上で、効率的なタスクスケジューリングを実現するエレベーター安全制御装置を得ることを目的とする。
【課題を解決するための手段】
【００１５】
本発明に係るエレベーター安全制御装置は、複数の安全制御機能および複数の非安全制御機能を各々独立したプログラムとして記憶するとともに、複数の安全制御機能を各制御周期で実行する際の制御周期ごとのスケジューリングと実行順序があらかじめ規定された安全スケジューリング情報を記憶する記憶部と、安全スケジューリング情報に従って、複数の安全制御機能および複数の非安全制御機能に対応するそれぞれのプログラムを順次実行することにより、エレベーターの制御演算を行うＣＰＵとを備え、ＣＰＵは、各制御周期において、安全スケジューリング情報として規定された実行順序に従って安全制御機能を連続して空き時間なしに順次実行し、制御周期内に割り当てられた安全制御機能をすべて実行した後の制御周期内の空き時間で、複数の非安全制御機能を実行するものである。
【発明の効果】
【００１６】
本発明によれば、安全制御機能のタスクを優先して実行し、安全制御機能の実行が完了した後の空き時間を、各制御周期の後ろにまとめ、空き時間を利用して非安全制御機能を実行することができる構成を備えている。この結果、安全制御機能のタスクと非安全制御機能のタスクとの独立性を確保した上で、効率的なタスクスケジューリングを実現するエレベーター安全制御装置を得ることができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施の形態１におけるエレベーター安全制御装置の構成図である。
【図２Ａ】本発明の実施の形態１に係る論理部および独立性保証部において、安全スケジューリング情報および非安全スケジューリング情報に基づいて１回目の制御周期で実行されるタスク処理内容を説明するための図である。
【図２Ｂ】本発明の実施の形態１に係る論理部および独立性保証部において、安全スケジューリング情報および非安全スケジューリング情報に基づいて２回目の制御周期で実行されるタスク処理内容を説明するための図である。
【図３】本発明の実施の形態１に係る論理部および独立性保証部により実行される一連のタスク処理をまとめたフローチャートである。
【図４】本発明の実施の形態１に係る安全スケジューリング情報および非安全スケジューリング情報の変形例を示した図である。
【図５】本発明の実施の形態１において、安全制御機能のタスクを実行中に中断処理が発生した際のエラー処理を説明するための図である。
【図６Ａ】本発明の実施の形態１における変形例５の動作を説明するための図である。
【図６Ｂ】本発明の実施の形態１における変形例５の動作を説明するための図である。
【図７Ａ】本発明の実施の形態１における変形例６の動作を説明するための図である。
【図７Ｂ】本発明の実施の形態１における変形例６の動作を説明するための図である。
【図７Ｃ】本発明の実施の形態１における変形例６の動作を説明するための図である。
【図８】本発明の実施の形態２に係るエレベーター安全制御装置を適用するエレベーターシステムの全体構成図である。
【図９】本発明の実施の形態２におけるエレベーター安全監視装置の内部構成を詳細に示したブロック図である。
【図１０】本発明の実施の形態２における第１の安全監視系統および第２の安全監視系統に共通の構成図である。
【図１１Ａ】本発明の実施の形態２において、安全スケジューリング情報および非安全スケジューリング情報に従った実行計画に相当する実行タイムチャートである。
【図１１Ｂ】本発明の実施の形態２によるタスク処理を実行した際の実行タイムチャートである。
【図１１Ｃ】従来技術によるタスク処理を実行した際の実行タイムチャートである。
【発明を実施するための形態】
【００１８】
以下、本発明のエレベーター安全制御装置の好適な実施の形態につき図面を用いて説明する。
【００１９】
実施の形態１．
まず始めに、本発明の説明で用いられる語句として、「タスク」、「規定時間」、「制御周期」、「安全スケジューリング情報」、「非安全スケジューリング情報」、「タスク中断」、「タスク終了」に関する意味内容の説明を、表１にまとめて示す。
【００２０】
【表１】
2019171424.tif 000003
【００２１】
図１は、本発明の実施の形態１におけるエレベーター安全制御装置の構成図である。本実施の形態１に係るエレベーター安全制御装置は、入力部１０、論理部２０、および独立性保証部３０を備えて構成されている。論理部２０内のＣＰＵ２１は、エレベーターの状態に関する信号を入力値として取得するとともに、プログラム４０、安全スケジューリング情報５０、および非安全スケジューリング情報６０を読み込む。
【００２２】
ここで、プログラム４０、安全スケジューリング情報５０、および非安全スケジューリング情報６０は、記憶部内に記憶されたデータに相当し、論理部２０内のＣＰＵ２１は、これらのデータを参照して、エレベーター制御に必要な処理を実行することとなる。
【００２３】
プログラム４０は、複数の安全制御機能のタスク４１および複数の非安全制御機能のタスク４２を有している。
【００２４】
安全スケジューリング情報５０は、複数の安全制御機能のタスク４１を、どの制御周期でどのような順序で実行すべきかを規定するスケジューリング情報である。具体的には、安全スケジューリング情報５０は、安全制御機能の各タスクの実行順序、タスクの規定時間、および各制御周期の最後に実行される最終安全タスクであることを示す最終フラグが定義された情報である。
【００２５】
図１に示す安全スケジューリング情報５０の具体例では、最初の制御周期で、安全制御機能のタスクＳＴ１、ＳＴ２が順に実行され、次の制御周期で、安全制御機能のタスクＳＴ１、ＳＴ３が順に実行されるとともに、タスクＳＴ１、ＳＴ２、ＳＴ３のそれぞれが、規定時間Ｔ１、Ｔ２、Ｔ３で監視されることが定義付けされている。
【００２６】
非安全スケジューリング情報６０は、複数の非安全制御機能のタスク４２の実行順序を規定するスケジューリング情報である。具体的には、非安全スケジューリング情報６０は、制御周期には依存せずに、どのような順序で非安全制御機能の各タスクを実行すべきかだけが定義された情報である。
【００２７】
図１に示す非安全スケジューリング情報６０の具体例では、非安全制御機能のタスクＮＳＴ１、ＮＳＴ２、ＮＳＴ３、ＮＳＴ１の順で、順次実行すべきことが定義付けされている。
【００２８】
そして、論理部２０内のＣＰＵ２１は、入力値を用いて、安全スケジューリング情報５０でスケジューリングが規定された複数の安全制御機能、および非安全スケジューリング情報６０でスケジューリングが規定された複数の非安全制御機能を、各々独立したプログラム４０として順次実行することにより、エレベーターの制御演算を行う。
【００２９】
また、論理部２０内のＣＰＵ２１は、必要に応じて、各々独立して実行される各プログラム４０の実行状態の情報をコンテキストブロック７０に保持させ、実行状態の情報を必要に応じて読み出すことができる。ここで、コンテキストブロック７０は、記憶部内に記憶された、読み書き可能なデータに相当する。
【００３０】
独立性保証部３０は、複数の安全制御機能のタスク４１および複数の非安全制御機能のタスク４２からなるすべての制御機能について、ある制御機能が他の制御機能に影響を及ぼさないように、制御機能間の独立性を保証する。独立性保証部３０は、規定時間の経過状況を監視する規定時間タイマ３１、制御期間の経過状況を監視する制御周期タイマ３２、およびメモリ保護機能３３を備えて構成されている。
【００３１】
本発明は、論理部２０と独立性保証部３０とが連動して、安全スケジューリング情報５０および非安全スケジューリング情報６０で規定された各タスクを、各々独立したプログラム４０として順次実行することで、結果的に、安全制御機能のタスク４１を実行しない空き時間を、各制御周期の後ろにまとめることができる点を技術的特徴としている。
【００３２】
そして、この空き時間は、従来手法と異なり、安全制御機能から独立している。このため、それぞれの制御周期の空き時間に、非安全スケジューリング情報６０で実行順序が規定された非安全制御機能のタスク４２を順次割り当てることが可能となる。この結果、本発明は、従来手法と比較して、ＣＰＵ２１の利用効率の向上を測ることができる。
【００３３】
そこで、次に、本実施の形態１に係る論理部２０と独立性保証部３０により実行されるタスク処理の具体的な動作について、図２Ａ、図２Ｂ、図３を用いて詳細に説明する。図２Ａは、本発明の実施の形態１に係る論理部２０および独立性保証部３０において、安全スケジューリング情報５０および非安全スケジューリング情報６０に基づいて１回目の制御周期で実行されるタスク処理内容を説明するための図である。また、図２Ｂは、本発明の実施の形態１に係る論理部２０および独立性保証部３０において、安全スケジューリング情報５０および非安全スケジューリング情報６０に基づいて２回目の制御周期で実行されるタスク処理内容を説明するための図である。
【００３４】
図２Ａでは、１回目の制御周期が時刻ｔ０〜時刻ｔ３の期間として示されており、図２Ｂでは、２回目の制御周期が時刻ｔ３〜時刻ｔ６の期間として示されている。そして、図２Ａ、図２Ｂは、図１に示した安全スケジューリング情報５０および非安全スケジューリング情報６０に従って、論理部２０と独立性保証部３０により実行されたタスク処理結果を示したものを例示している。
【００３５】
まず、図２Ａに示した１回目の制御周期においては、安全スケジューリング情報５０に従って、安全制御機能のタスクＳＴ１、ＳＴ２が連続して空き時間なしに順次実行される。さらに、安全制御機能のタスクＳＴ１、ＳＴ２が実行された後の空き時間において、非安全スケジューリング情報６０に従って、非安全制御機能のタスクＮＳＴ１、ＮＳＴ２、ＮＳＴ３が連続して順次実行される。
【００３６】
より具体的には、時刻ｔ１において、タスクＳＴ１に対して設定されている規定時間Ｔ１が経過する前に、タスクＳＴ１の処理が完了している。従って、ＣＰＵ２１は、独立性保証部３０内の規定時間タイマ３１による割込が発生する前に、時刻ｔ１において、タスクＳＴ２の処理を開始する。
【００３７】
時刻ｔ２は、時刻ｔ１から規定時間Ｔ２が経過した後の時刻に相当する。ＣＰＵ２１は、時刻ｔ２において、タスクＳＴ２が完了していない状態で、規定時間タイマ３１による割込を受け、タスクＳＴ２の処理を中断する。
【００３８】
時刻ｔ２〜時刻ｔ３の期間は、１回目の制御周期において、タスクＳＴ１、ＳＴ２を処理した後の空き時間に相当する。そこで、ＣＰＵ２１は、非安全スケジューリング情報６０に従って、非安全制御機能のタスクＮＳＴ１、ＮＳＴ２、ＮＳＴ３を順次実行する。ただし、１回目の制御周期の終了時刻ｔ３においては、タスクＮＳＴ３の処理が完了しない状態で、制御周期タイマ３２による割込が発生している。従って、タスクＮＳＴ３は、後述する２回目の制御周期の空き時間において、中断された以降の処理が再開されることとなる。
【００３９】
次に、図２Ｂに示した２回目の制御周期においては、安全スケジューリング情報５０に従って、安全制御機能のタスクＳＴ１、ＳＴ３が連続して空き時間なしに順次実行される。さらに、安全制御機能のタスクＳＴ１、ＳＴ３が実行された後の空き時間において、非安全スケジューリング情報６０に従って、非安全制御機能のタスクが連続して順次実行される。上述したように、１回目の制御周期において、タスクＮＳＴ３は、中断されている。従って、２回目の制御周期における空き時間では、タスクＮＳＴ３の処理を再開するところから開始され、その後、非安全スケジューリング情報６０に従ってタスクＮＳＴ１が実行されることとなる。
【００４０】
より具体的には、時刻ｔ４は、時刻ｔ３から規定時間Ｔ１が経過した時刻に相当する。従って、ＣＰＵ２１は、時刻ｔ４において、タスクＳＴ１が完了していない状態で、規定時間タイマ３１による割込を受け、タスクＳＴ１の処理を中断する。そして、ＣＰＵ２１は、時刻ｔ４において、タスクＳＴ３の処理を開始する。
【００４１】
時刻ｔ５において、タスクＳＴ３に対して設定されている規定時間Ｔ３が経過する前に、タスクＳＴ３の処理が完了している。そして、時刻ｔ５〜時刻ｔ６の期間は、２回目の制御周期において、タスクＳＴ１、ＳＴ３を処理した後の空き時間に相当する。従って、ＣＰＵ２１は、独立性保証部３０内の規定時間タイマ３１による割込が発生する前に、時刻ｔ５において、タスクＮＳＴ３の継続処理を再開する。
【００４２】
ただし、２回目の制御周期の終了時刻ｔ６においては、タスクＮＳＴ１の処理が完了しない状態で、制御周期タイマ３２による割込が発生している。従って、タスクＮＳＴ１は、３回目の制御周期の空き時間において、中断された以降の処理が再開されることとなる。
【００４３】
図３は、本発明の実施の形態１に係る論理部２０および独立性保証部３０により実行される一連のタスク処理をまとめたフローチャートである。なお、以降の説明では、図１および図２に示した具体的なタスクスケジューリングに基づいて、図３のフローチャートについて説明する。
【００４４】
論理部２０は、ステップＳ３０１において、初期設定を行った後、ステップＳ３０２において、安全スケジューリング情報５０に基づいて、１回目の制御周期における安全制御機能のタスクのうちの最初のタスクＳＴ１を割り当てる。
【００４５】
次に、ステップＳ３０３において、論理部２０は、タスクＳＴ１に割り当てられた規定時間Ｔ１が経過する前に、すなわち、独立性保証部３０内の規定時間タイマ３１により割込が発生する前に、タスクＳＴ１の終了処理を実行したかを判定する。論理部２０は、ステップＳ３０３において、Ｙｅｓと判定した場合にはステップＳ３０５に進み、Ｎｏと判定した場合にはステップＳ３０４に進む。
【００４６】
ステップＳ３０４に進んだ場合には、論理部２０は、規定時間タイマ３１による割込が発生することで、タスクＳＴ１を中断し、ステップＳ３０５に進む。
【００４７】
ステップＳ３０５に進んだ場合には、論理部２０は、１回目の制御周期で実行すべき安全制御機能のタスクがまだ残っているかを、最終フラグに基づいて判断する。論理部２０は、ステップＳ３０３において、Ｙｅｓと判定した場合にはステップＳ３０２に進み、Ｎｏと判定した場合にはステップＳ３０６に進む。
【００４８】
図１、図２に示した例では、１回目の制御周期において、安全制御機能のタスクＳＴ１の後にタスクＳＴ２を処理する必要がある。従って、タスクＳＴ２に関して,ステップＳ３０２〜ステップＳ３０５の処理を行った後、ステップＳ３０６に進むこととなる。
【００４９】
ステップＳ３０６以降の処理では、論理部２０および独立性保証部３０は、１回目の制御周期で安全制御機能のタスクＳＴ１、ＳＴ２を実行した後の空き時間で、非安全制御機能のタスクを順次実行することとなる。
【００５０】
論理部２０は、ステップＳ３０６において、非安全スケジューリング情報６０に基づいて、１回目の制御周期における空き時間で実行すべき非安全制御機能のタスクがあるか否かを判断する。論理部２０は、ステップＳ３０６において、Ｙｅｓと判定した場合にはステップＳ３０７に進み、Ｎｏと判定した場合にはステップＳ３１０に進む。
【００５１】
ステップＳ３０７に進んだ場合には、論理部２０は、非安全スケジューリング情報６０に基づいて、非安全制御機能のタスクのうちの最初のタスクＮＳＴ１を割り当てる。
【００５２】
次に、ステップＳ３０８において、論理部２０は、制御周期が終了する前に、すなわち、独立性保証部３０内の制御周期タイマ３２により割込が発生する前に、タスクＮＳＴ１の終了処理を実行したかを判定する。論理部２０は、ステップＳ３０８において、Ｙｅｓと判定した場合にはステップＳ３０６に進み、Ｎｏと判定した場合にはステップＳ３０９に進む。
【００５３】
図１、図２に示した例では、非安全スケジューリング情報６０として、タスクＮＳＴ１以降に、タスクＮＳＴ２、タスクＮＳＴ３、タスクＮＳＴ１、・・・が設定されている。従って、論理部２０は、制御周期タイマ３２による割込を受信するまでは、ステップＳ３０６〜ステップＳ３０８の処理を繰り返すことで、非安全スケジューリング情報６０として設定された非安全制御機能のタスクを連続して順次実行することとなる。
【００５４】
ステップＳ３０９に進んだ場合には、論理部２０は、制御周期タイマ３２による割込が発生することで、現在実行中の非安全制御機能のタスクを中断し、１回目の制御周期の一連処理を終え、ステップＳ３０２に戻ることとなる。図１、図２に示した例では、非安全制御機能のタスクＮＳＴ３を実行中に、制御周期タイマ３２による割込が発生することで、タスクＮＳＴ３を中断し、１回目の制御周期が完了することとなる。
【００５５】
また、先のステップＳ３０６からステップＳ３１０に進んだ場合には、論理部２０は、実行すべき非安全制御機能のタスクがないため、制御周期タイマ３２による割込が発生するまで、待機する。そして、ステップＳ３１１において、制御周期タイマ３２による割込が発生することで、１回目の制御周期の一連処理を終え、ステップＳ３０２に戻ることとなる。
【００５６】
図１、図２に示した例では、２回目の制御周期で安全性御機能のタスクＳＴ１、ＳＴ３を実行すべきことが、安全スケジューリング情報５０により規定されている。従って、１回目の制御周期での一連処理を終了した後に、ステップＳ３０２に戻った場合には、２回目の制御周期における各タスク処理を連続して順次実行することとなる。
【００５７】
次に、上述したような、空き時間を制御周期の後半に配置する基本的な技術思想を実現するためのいくつかの変形例について、以下に説明する。
【００５８】
［変形例１］
安全スケジューリング情報５０および非安全スケジューリング情報６０の変形例について説明する。図４は、本発明の実施の形態１に係る安全スケジューリング情報および非安全スケジューリング情報の変形例を示した図である。
【００５９】
先の図１に示した安全スケジューリング情報５０は、すべて安全制御機能のタスクにより構成されていた。これに対して、図４に示した安全スケジューリング情報５０ａは、１つ以上の非安全制御機能のタスクが含まれて構成されている。
【００６０】
具体的には、図４に示す安全スケジューリング情報５０ａは、１回目の制御周期で安全制御機能のタスクＳＴ１に続いて非安全制御機能のタスクＮＳＴ１を実行することが規定されており、２回目の制御周期で安全制御機能のタスクＳＴ１に続いて非安全制御機能のタスクＮＳＴ２を実行することが規定されている。一方、図４に示す非安全スケジューリング情報６０ａは、安全スケジューリング情報５０ａには組み込まれていないその他の非安全制御機構のタスクＮＳＴ３、ＮＳＴ４、ＮＳＴ５が、実行順を規定されて構成されている。
【００６１】
このように、１つ以上の非安全制御機能のタスクを含むように構成された安全スケジューリング情報５０ａを用いることで、非安全制御機能のタスクＮＳＴ１、ＮＳＴ２のリアルタイム性を確保することが可能となる。
【００６２】
［変形例２］
図１および図４の例では、非安全制御機能のタスクの実行順序は、非安全スケジューリング情報６０によって、事前に決定しておく場合について説明した。しかしながら、非安全制御機能のタスクは、必ずしも事前に決定しておく必要はなく、各制御周期において、動的にスケジューリングを行う形態とすることも可能である。
【００６３】
［変形例３］
安全制御機能のタスクＳＴｎのうち、中断が許容できないタスクについて、中断発生時にエラー処理を実施する形態としてもよい。例えば、図１、図２に示した例において、安全制御機能のタスクＳＴ２が、中断できないタスクであった場合を考える。図５は、本発明の実施の形態１において、安全制御機能のタスクを実行中に中断処理が発生した際のエラー処理を説明するための図である。
【００６４】
図５に示すように、ＣＰＵ２１は、時刻ｔ２で規定時間タイマ３１による割込が発生することで、その後、エラー処理を実行することができる。なお、このようなエラー処理を行うためには、安全制御機能のタスクのうち、中断ができないタスクの特定をあらかじめおこなっておく必要がある。そこで、このような特定を行うためには、中断可否を示す情報を各安全制御機能のタスクと関連付けて、安全スケジューリング情報５０として記憶させておくか、あるいはコンテキストブロック７０内に記憶させておくことが考えられる。
【００６５】
［変形例４］
ＣＰＵ２１は、各タスクの実行時において、制御周期タイマ３２から制御周期タイマ値をリアルタイムに取得し、演算処理に利用することも可能である。
【００６６】
［変形例５］
変形例４の考え方を利用して、ＣＰＵ２１は、さらに、制御周期の経過回数をカウントしておくことで、複数の制御周期にまたがったタスク処理の経過時間を計測することが可能となる。図６Ａ、図６Ｂは、本発明の実施の形態１における変形例５の動作を説明するための図である。
【００６７】
図６Ａの［１］で示した時刻において、ＣＰＵ２１は、制御周期経過回数カウンタがＮ１の制御周期において、制御周期タイマ３２から制御周期タイマ値ｔａを取得する。さらに、図６Ｂの［２］で示した時刻において、ＣＰＵ２１は、制御周期経過回数カウンタがＮ２の制御周期において、制御周期タイマ３２から制御周期タイマ値ｔｂを取得する。この結果、ＣＰＵ２１は、［１］で示した時刻から［２］で示した時刻までの経過時間を、下式によって算出することができる。
経過時間＝（Ｎ２−Ｎ１）×Ｔ＋（ｔｂ−ｔａ）
【００６８】
［変形例６］
変形例４および変形例５の考え方を利用して、ＣＰＵ２１は、特定の区間において割り込まれたくないタスクが存在する場合に、割込を回避することも可能である。図７Ａ〜図７Ｃは、本発明の実施の形態１における変形例６の動作を説明するための図である。
【００６９】
図７Ａ〜図７Ｃでは、タスクＳＴ２が、特定の区間において割り込まれたくないタスクに相当する。図７Ａの［１］で示した時刻において、ＣＰＵ２１は、タスクＳＴ２の開始時に、制御周期タイマ３２から制御周期タイマ値ｔａを読み取る。そして、ＣＰＵ２１は、タスクＳＴ１の実行を開始した後、割込を受け付けたくない特定の区間の開始時に相当する［２］で示した時刻において、制御周期タイマ３２から制御周期タイマ値ｔｂを読み取る。
【００７０】
ここで、割込を受け付けたくない特定の区間は、最も長く実行時間がかかってしまったことを想定した期間ｔｃとしてあらかじめ規定することができ、内部メモリに相当するメモリ２２内に設定しておくことができる。
【００７１】
また、タスクＳＴ２の規定周期Ｔ２をｔｄとすると、ＣＰＵ２１は、以下の式（１）の条件が成立するかを、図７Ａの［２］で示した時刻において判定する。
ｔｄ＜ｔｂ−ｔａ＋ｔｃ    （１）
【００７２】
式（１）の条件が成立する場合には、［２］で示した時刻以降にタスクＳＴ２を継続して実行すると、割込を受け付けたくない特定の区間において規定周期タイマによる割込が発生してしまうことが想定される。そこで、ＣＰＵ２１は、式（１）の条件が成立すると判定した場合には、［２］で示した時刻においてタスクＳＴ２の実行を中断し、図７Ｂに示すように、非安全制御機能のタスクＮＳＴ１の実行を開始する。
【００７３】
そして、ＣＰＵ２１は、図７Ｃに示した２回目の制御周期において、タスクＳＴ１を実行した後、［３］で示した時間帯で、中断していたタスクＳＴ２の実行を再開する。この結果、図７Ａおよび図７Ｃにおいて編みかけ部分として示したタスクＳＴ２の特定の区間における割込の発生を防止することができる。
【００７４】
なお、ＣＰＵ２１は、タスクＳＴ２の特定の区間の処理を実行する際には、以下のような処理を行うことで、特定の区間において割込が発生した場合の対応を取ることができる。ＣＰＵ２１は、特定の区間を開始した際には開始フラグをセットし、特定の区間の処理が終了した際には終了フラグをセットする、フラグ処理を実行することができる。
【００７５】
ＣＰＵ２１は、このようなフラグ処理を実行することで、特定の区間が開始した後に、規定時間タイマの割込が発生した際に、開始フラグがセットされており、かつ終了フラグがセットされていないと判定した場合には、特定の区間で割込が発生してしまったと判定できる。そこで、ＣＰＵ２１は、特定の区間で割込が発生したと判断した場合には、例えば、エレベーターの安全動作を実行するなどの対応を取ることができる。
【００７６】
以上のように、実施の形態１に係るタスクスケジューリング手法によれば、安全制御機能のタスクを実行しない空き時間を、各制御周期の後ろにまとめることができる。この結果、ＣＰＵの利用効率が向上し、安全制御機能のタスクと非安全制御機能のタスクとの独立性を確保した上で、効率的なタスクスケジューリングを実現することができる。
【００７７】
実施の形態２．
本実施の形態２では、エレベーターシステムの具体的な構成に対して、先の実施の形態１で説明したタスクスケジューリング手法を適用する場合について説明する。
【００７８】
従来、かご戸、または乗場戸が戸開した状態でかごが異常走行した場合、かごを急停止させて安全な状態を確保する戸開走行保護装置が考案されている（例えば、特許文献３参照）。
【００７９】
また、かごが終端階付近で暴走した場合に、かご過速を検出して制動装置を作動させ、バッファ衝突前に安全な速度以下に減速させる終端階強制減速装置が考案されている（例えば、特許文献４参照）。
【００８０】
これらの安全装置は、高度な信頼性が要求され、例えば、電子安全装置等のアーキテクチャとして実装される。こうしたアーキテクチャは、機器の二重化構成等により、ハードウェアコストが高くなる傾向があり、なるべく多くの安全機能を同一のハードウェアに実装する形態が望ましい。こうした形態の実現手段として、先の特許文献２では、複数の安全機能プログラムが互い干渉せず、確実に実行できる仕組みが開示されている。
【００８１】
一方、これらの安全システムにおいても、保守性を高めるために、内部データのロギング、データ出力等の保守機能があった方が望ましい。他方、これらの保守機能は、非安全機能であり、安全機能よりも実行優先度が低くなる。このため、安全機能の実行を阻害せず、保守機能のスループットを向上させるには、安全機能の実行がない時間を効率的に利用して非安全機能を実行させるような、時間効率性を向上させる仕組みが必要となる。
【００８２】
そこで、先の実施の形態１で説明した手法を、エレベーター安全制御装置に適用する場合について、以下に詳細に説明する。
【００８３】
図８は、本発明の実施の形態２に係るエレベーター安全制御装置を適用するエレベーターシステムの全体構成図である。図８に示したエレベーターシステム２００は、エレベーター機構部２１０、エレベーター駆動装置２２０、ブレーキ装置２３０、エレベーター安全回路２４０、エレベーター運転制御ユニット２５０、およびエレベーター安全監視ユニット２６０を含んで構成されている。
【００８４】
エレベーター機構部２１０は、かご２１１、おもり２１２、綱車２１３、返し車２１４、ロープ２１５、および昇降路内機器２１６を備える。
【００８５】
かご２１１とおもり２１２は、ロープ２１５によって連結され、ロープ２１５は、綱車２１３と返し車２１４に懸架される。
【００８６】
昇降路内機器２１６は、乗場戸スイッチ２１６ａ、かご戸スイッチ２１６ｂ、ドアゾーンプレート２１６ｃ、ドアゾーンセンサ２１６ｄ、終点スイッチカム２１６ｅ、昇降路内の上部基準位置スイッチ２１６ｆ、昇降路内の下部基準位置スイッチ２１６ｇ、ガバナシーブ２１６ｈ、ガバナロープ２１６ｉ、およびガバナエンコーダ２１６ｊを備える。
【００８７】
乗場戸スイッチ２１６ａは、乗場に設置され、乗場戸の戸開状態を検出する。また、かご戸スイッチ２１６ｂは、かごに設置され、かご戸の戸開状態を検出する。
【００８８】
ドアゾーンプレート２１６ｃは、昇降路内の乗場近傍に設置されている。かご２１１に設置されたドアゾーンセンサ２１６ｄは、ドアゾーンプレート２１６ｃを検出することで、かご床面が乗場床面から所定距離内にあることを検知する。
【００８９】
上部基準位置スイッチ２１６ｆは、昇降路内の上部に設置され、下部基準位置スイッチ２１６ｇは、昇降路内の下部に設置されており、それぞれ、スイッチ接点に連結固定されたローラーを有している。上部基準位置スイッチ２１６ｆおよび下部基準位置スイッチ２１６ｇは、かごに固定された終点スイッチカム２１６ｅにより、ローラーが押されることで、スイッチ接点が検出状態となる。従って、上部基準位置スイッチ２１６ｆおよび下部基準位置スイッチ２１６ｇは、かごが昇降路内の規定位置にいることを検知できる。
【００９０】
ガバナシーブ２１６ｈは、かご２１１に連結固定されたガバナロープ２１６ｉにより回転する。ガバナエンコーダ２１６ｊは、ガバナシーブ２１６ｈの回転を検出して、かごの移動量を検知する。
【００９１】
エレベーター駆動装置２２０は、商用電源２２１、インバータ２２２、モータ２２３、および商用電源２２１からインバータ２２２への給電を遮断する主回路コンタクタ＃ＭＣの主接点２２４を備える。インバータ２２２は、後述するエレベーター運転制御装置（ＣＣ）２５１からの指令に基づいて、モータ２２３を回転させて、綱車２１３を駆動させる。
【００９２】
ブレーキ装置２３０は、綱車２１３に接触して摩擦により制動トルクを与える第１および第２ブレーキシュー２３１、ブレーキシューを吸引、落下する第１および第２ブレーキコイル２３２、エレベーター運転制御装置（ＣＣ）２５１からの指令によりブレーキコイルの電流を制御する第１、および第２ブレーキチョッパ２３３、およびブレーキ電源からブレーキコイル２３２への給電を遮断するブレーキ回路リレー（＃ＢＫ）の主接点２３４を備える。
【００９３】
エレベーター安全回路２４０は、制御電源に安全リレー＃ＳＦ１、＃ＳＦ２の各主接点、およびその他安全スイッチ接点が直列に接続されて構成されている。エレベーター安全回路２４０内の各接点がすべてオン状態となったときの最終出力により、＃ＭＣ、＃ＢＫコイルの一次側に、コンタクタ／リレー駆動用の電力が供給される。
【００９４】
エレベーター運転制御ユニット２５０は、エレベーター運転制御装置（ＣＣ）２５１、＃ＭＣ、＃ＢＫの各コイル、およびエレベーター運転制御装置（ＣＣ）２５１からの指令を入力して各コイルへの給電をＯＮ／ＯＦＦするスイッチ半導体２５２を備える。
【００９５】
エレベーター運転制御装置（ＣＣ）２５１は、インバータ２２２と、第１、および第２ブレーキチョッパ２３３と、＃ＭＣ、＃ＢＫの各スイッチ半導体２５２に指令を出力して、かご２１１の運転を制御する。
【００９６】
エレベーター安全監視ユニット２６０は、エレベーター安全監視装置（ＳＦ）２６１、第１、および第２安全リレーの各コイル、およびエレベーター安全監視装置（ＳＦ）２６１からの指令を入力して各コイルへの給電をＯＮ／ＯＦＦするスイッチ半導体２６２を備える。
【００９７】
エレベーター安全監視装置（ＳＦ）２６１は、乗場戸スイッチ２１６ａ、かご戸スイッチ２１６ｂ、ドアゾーンセンサ２１６ｄ、上部基準位置スイッチ２１６ｆ、下部基準位置スイッチ２１６ｇ、ガバナエンコーダ２１６ｊの各状態を入力する。そして、エレベーター安全監視装置（ＳＦ）２６１は、これらの入力に基づいて、終端階過速、戸開走行、および自ユニット構成機器の故障を含む少なくとも１つ以上の非安全状態を検出した場合には、安全停止シーケンスを実行して、エレベーター運転制御装置（ＣＣ）２５１に停止指令を出力してかご２１１を停止させるとともに、＃ＳＦ１、＃ＳＦ２を遮断して、かご２１１を制止保持させる。
【００９８】
図９は、本発明の実施の形態２におけるエレベーター安全監視装置（ＳＦ）２６１の内部構成を詳細に示したブロック図である。エレベーター安全監視装置（ＳＦ）２６１は、同一の機器および機能から構成される２重系統として、第１の安全監視系統１４０ａおよび第２の安全監視系統１４０ｂを備える。第１の安全監視系統１４０ａおよび第２の安全監視系統１４０ｂのそれぞれは、乗場戸スイッチ２１６ａ、かご戸スイッチ２１６ｂ、ドアゾーンセンサ２１６ｄ、各基準位置スイッチ２１６ｆ、２１６ｇ、およびガバナエンコーダ２１６ｊの各状態を入力する。
【００９９】
第１の安全監視系統１４０ａは、これらの入力に基づいて、＃ＳＦ１のスイッチ半導体２６２に駆動指令を出力し、エレベーター運転制御装置（ＣＣ）２５１に対して停止指令を出力する。同様に、第２の安全監視系統１４０ｂは、これらの入力に基づいて、＃ＳＦ２のスイッチ半導体２６２に駆動指令を出力し、エレベーター運転制御装置（ＣＣ）２５１に対して停止指令を出力する。
【０１００】
第１の安全監視系統１４０ａおよび第２の安全監視系統１４０ｂのそれぞれは、以下の４つの安全制御機能を有している。
・終端階強制減速機能（ＳＥＴＳ）
・戸開走行保護機能（ＵＣＭＰ）
・自己診断機能（ＤＩＡＧ）
・系統間通信機能（ＩＣＯＭ）
【０１０１】
また、第１の安全監視系統１４０ａおよび第２の安全監視系統１４０ｂのそれぞれは、以下の２つの非安全制御機能を、保守機能として有している。
・データロギング機能（ＤＬＯＧ）
・エレベーター運転制御装置とのインターフェース機能（ＣＣＩＦ）
【０１０２】
ＳＥＴＳは、各基準位置スイッチ２１６ｆ、２１６ｇ、ガバナエンコーダ２１６ｊの各状態を入力し、かごの現在速度がかごの現在位置に応じたかご過速監視レベルを超過した場合に、安全停止シーケンスを実行する機能である。
【０１０３】
ＵＣＭＰは、乗場戸スイッチ２１６ａ、かご戸スイッチ２１６ｂ、ドアゾーンセンサ２１６ｄ、ガバナエンコーダ２１６ｊの各状態を入力し、乗場戸、またはかご戸が戸開した状態でかごが乗場床面からあらかじめ設定された距離以上移動した場合に、またはかごの現在速度が規定値以上となった場合に、安全停止シーケンスを実行する機能である。
【０１０４】
ＤＩＡＧは、少なくとも電源、クロック、ＷＤＴ、ＣＰＵ、メモリ、バス、プログラム、安全リレーを含むユニット構成機器について動作チェックを実施し、故障を検出した場合には、安全停止シーケンスを実行する機能である。
【０１０５】
ＩＣＯＭは、第１の安全監視系統１４０ａおよび第２の安全監視系統１４０ｂの系統間で入出力状態、演算状態等のデータを相互に伝送し、不整合を検出した場合には、いずれかの系統で演算不良があったと判断して、両系統にて安全停止シーケンスを実行する機能である。
【０１０６】
保守機能は、非安全制御機能として、データロギング機能（ＤＬＯＧ）、およびＣＣインターフェース機能（ＣＣＩＦ）を備え、安全制御機能の実行がない空き時間のタイミングで実行される。具体的には、ＤＬＯＧにより、入出力状態、演算状態、およびイベント履歴のログを記録してデータをストアし、ＣＣＩＦにより、エレベーター運転制御装置（ＣＣ）２５１からの要求に応じて、ストアしたデータを伝送する。
【０１０７】
図１０は、本発明の実施の形態２における第１の安全監視系統１４０ａおよび第２の安全監視系統１４０ｂに共通の構成図である。この図１０は、先の実施の形態１における図１の構成図と対応している。すなわち、図１０における第１の安全監視系統１４０ａおよび第２の安全監視系統１４０ｂに共通の構成は、図１で説明した本発明に係るエレベーター安全制御装置の構成と等価である。そこで、説明を分かりやすくするために、図１に対応する図１０中のそれぞれの構成に対しては、図１の符号に１００を足した符号を付している。
【０１０８】
本実施の形態２に係る第１の安全監視系統１４０ａ（第２の安全監視系統１４０ｂ）は、外部機器Ｉ／Ｆ１１０、論理部１２０、および独立性保証部１３０を備えて構成されている。論理部１２０内のＣＰＵ１２１は、エレベーターの状態に関する信号を外部機器Ｉ／Ｆ１１０を介した入力値として取得するとともに、安全制御機能のタスク１４１、非安全制御機能のタスク１４２、安全スケジューリング情報１５０、および非安全スケジューリング情報１６０を読み込む。
【０１０９】
ここで、安全制御機能のタスク１４１、非安全制御機能のタスク１４２、安全スケジューリング情報１５０、および非安全スケジューリング情報１６０は、記憶部内に記憶されたデータに相当し、論理部１２０内のＣＰＵ１２１は、これらのデータを参照して、エレベーター制御に必要な処理を実行することとなる。
【０１１０】
安全制御機能のタスク１４１は、ＳＥＴＳタスク、ＵＣＭＰタスク、ＤＩＡＧタスク、およびＩＣＯＭタスクの各安全プログラムで構成されている。以下では、これらのタスクを、「安全タスク」と呼ぶこともある。
【０１１１】
非安全制御機能のタスク１４２は、ＤＬＯＧタスク、ＣＣＩＦタスクの各非安全ロゴラムで構成されている。以下では、これらのタスクを、「非安全タスク」と呼ぶこともある。）
【０１１２】
安全スケジューリング情報１５０は、各安全タスクの実行順序、実行規定時間、各制御周期における最終安全タスクであることを示す最終フラグ、および各安全タスクの中断可否を示す中断フラグが定義された情報である。
【０１１３】
非安全スケジューリング情報１６０は、各非安全タスクの実行順序だけが定義された情報である。
【０１１４】
コンテキストブロック１７０は、ＳＥＴＳ実行状態、ＵＣＭＰ実行状態、ＤＩＡＧ実行状態、およびＩＣＯＭ実行状態を格納する。ここで、コンテキストブロック１７０は、記憶部内に記憶された、読み書き可能なデータに相当する。
【０１１５】
外部機器Ｉ／Ｆ１１０は、乗場戸スイッチ２１６ａ、かご戸スイッチ２１６ｂ、ドアゾーンセンサ２１６ｄ、基準位置スイッチ２１６ｆ、２１６ｇ、およびガバナエンコーダ２１６ｊの各信号を入力する際の、あるいは安全リレー＃ＳＦ１、Ｓ＃ＳＦ２に駆動指令を出力する際のインターフェースである。
【０１１６】
論理部１２０は、ＣＰＵ１２１およびメモリ１２２を備えている。そして、メモリ１２２には、各種の安全タスクを実行する際に使用される領域として、ＳＥＴＳ領域、ＵＣＭＰ領域、ＤＩＡＧ領域、およびＩＣＯＭ領域が、個別領域として割り付けられている。
【０１１７】
独立性保証部１３０は、規定時間タイマ１３１、制御周期タイマ１３２、およびメモリ保護機能１３３を備えている。
【０１１８】
メモリ保護機能１３３は、安全タスクおよび非安全タスクが実行される際に、他の安全タスクのメモリ領域にアクセスした場合に、同領域のデータを保護するとともに、異常アクセスを検出したことをＣＰＵ１２１に送信し、安全停止シーケンスを実行させる。例えば、ＳＥＴＳタスクがＵＣＭＰ領域にアクセスした場合が、異常アクセスに相当する。
【０１１９】
ＣＰＵ１２１は、第１の安全監視系統１４０ａ（第２の安全監視系統１４０ｂ）の起動後に、安全スケジューリング情報１５０を参照し、既定の実行順序に従って安全タスクをコールする。これにあわせて、独立性保証部１３０は、規定時間タイマ１３１によるタスク実行時間計測を開始する。また、独立性保証部１３０は、各制御周期の最初のタスクの実行を開始する場合には、制御周期タイマ１３２をリセットしてからタイマカウントを開始する。
【０１２０】
ＣＰＵ１２１は、安全タスクの実行時間が安全スケジューリング情報で設定された規定時間になるか、または実行中のタスクが自らタスク終了を宣言することで、実行中タスクを終了、または中断して、最終フラグを参照する。
【０１２１】
最終フラグがＦＡＬＳＥの場合、ＣＰＵ１２１は、次の安全タスクをコールし、あわせて、独立性保証部１３０は、規定時間タイマ１３１をリセットして、次タスクの実行時間計測を開始する。
【０１２２】
一方、最終フラグがＴＲＵＥの場合、ＣＰＵ１２１は、非安全スケジューリング情報を参照し、既定の実行順序に従って、非安全タスクをコールする。
【０１２３】
制御周期タイマ１３２が規定の制御周期になると、ＣＰＵ１２１は、実行中の非安全タスクを中断し、次の制御周期の処理に移行する。そして、ＣＰＵ１２１は、安全スケジューリング情報を参照して、次の制御周期における最初の安全タスクをコールする。あわせて、独立性保証部１３０は、規定時間タイマ１３１および制御周期タイマ１３２をそれぞれリセットして、それぞれのタイマカウントを開始する。
【０１２４】
ＣＰＵ１２１は、安全スケジューリング情報の実行順序の最終の安全タスクの実行を終了すると、次の安全タスク実行のタイミングでは、安全スケジューリング情報の実行順序の先頭に戻る。
【０１２５】
次に、制御周期ごとの各タスクの実行タイムチャートを用いて、本実施の形態２に係るタスク処理の効果について説明する。図１１Ａは、本発明の実施の形態２において、安全スケジューリング情報１５０および非安全スケジューリング情報１６０に従った実行計画に相当する実行タイムチャートである。
【０１２６】
これに対して、図１１Ｂは、本発明の実施の形態２によるタスク処理を実行した際の実行タイムチャートである。また、図１１Ｃは、従来技術によるタスク処理を実行した際の実行タイムチャートである。
【０１２７】
図１１Ａ〜図１１Ｃに示した具体例では、制御周期Ｔ＝１［ｍｓ］を１実行ステップとして、３ステップにより１周期分の安全タスクおよび非安全タスクを実行するものとする。
【０１２８】
図１１Ａに示すように、安全スケジューリング情報１５０および非安全スケジューリング情報１６０による実行計画では、ステップ１（ステップカウンタＮ＝１）、ステップ２（ステップカウンタＮ＝２）、ステップ３（ステップカウンタＮ＝３）において、以下のようなタスク割り当てが行われている。
＜ステップ１（ステップカウンタＮ＝１）＞
・時間ｔ＝０〜０．１［ｍｓ］で、ＩＣＯＭタスク
・時間ｔ＝０．１〜０．４［ｍｓ］で、ＤＩＡＧタスク（１／３）
・時間ｔ＝０．４〜０．７［ｍｓ］で、ＳＥＴＳタスク
・時間ｔ＝０．７〜１．０［ｍｓ］で、非安全タスク
＜ステップ２（ステップカウンタＮ＝２）＞
・時間ｔ＝０〜０．１［ｍｓ］で、ＩＣＯＭタスク
・時間ｔ＝０．１〜０．６［ｍｓ］で、ＤＩＡＧタスク（２／３）
・時間ｔ＝０．６〜０．８［ｍｓ］で、ＵＣＭＰタスク
・時間ｔ＝０．８〜１．０［ｍｓ］で、非安全タスク
＜ステップ３（ステップカウンタＮ＝３）＞
・時間ｔ＝０〜０．１［ｍｓ］で、ＩＣＯＭタスク
・時間ｔ＝０．１〜０．８［ｍｓ］で、ＤＩＡＧタスク（３／３）
・時間ｔ＝０．８〜１．０［ｍｓ］で、非安全タスク
【０１２９】
図１０中の安全スケジューリング情報１５０における中断フラグで規定されたように、ＩＣＯＭタスク、ＳＥＴＳタスク、ＵＣＭＰタスクは、中断不可とし、ＤＩＡＧタスクは、３／３のみ中断不可とする。そして、中断不可のタスクが規定時間以内に終了しなかった場合には、ＣＰＵ１２１は、プログラム異常を検出して安全停止シーケンスを実行するものとする。
【０１３０】
安全スケジューリング情報において各タスクを実行するために割り当てられる規定時間は、タスク処理の条件分岐の組合せの中で処理量が最大となる実行パスに基づいて決定される。安全タスクの場合、正常時では、異常監視処理のみが実行されるため、実際の実行時間は、規定時間よりも短いが、異常時では、追加で安全動作処理も実行されるため、実際の実行時間は、規定時間に近づく。
【０１３１】
非安全タスクの実行時間は、非安全スケジューリング情報では定義せず、また、規定時間タイマによる監視も実施しない。ただし、図１１Ｂ、図１１Ｃでは、ＤＬＯＧタスクの処理時間を０．１［ｍｓ］、ＣＣＩＦタスクの処理時間を１．０［ｍｓ］としている。
【０１３２】
次に、図１１Ｂを用いて、本実施の形態２によるタスク処理を実際に実行した場合について説明する。ステップ１では、ｔ＝０〜０．１［ｍｓ］でＩＣＯＭタスクが実行され、次に、ｔ＝０．１［ｍｓ］からＤＩＡＧタスク（１／３）が実行される。ここで、ＤＩＡＧタスク（１／３）の実行規定時間は、０．３［ｍｓ］のため、ｔ＝０．４［ｍｓ］まで実行可能だが、異常検出なく、ｔ＝０．３［ｍｓ］で終了したとする。
【０１３３】
そこで、ＣＰＵ１２１は、ｔ＝０．３［ｍｓ］の時点で、次の安全タスクであるＳＥＴＳタスクの実行を開始する。ｔ＝０．３〜０．６［ｍｓ］でＳＥＴＳタスクが実行可能であるが、こちらも異常検出なく、ｔ＝０．５［ｍｓ］で終了したとする。
【０１３４】
ＣＰＵ１２１は、安全スケジューリング情報１５０よりＳＥＴＳタスクの最終フラグがＴＲＵＥであるため、このステップでの安全タスクの実行は終了したと判断できる。そこで、ＣＰＵ１２１は、ｔ＝０．５［ｍｓ］からは、非安全スケジューリング情報１６０に従ってＤＬＯＧタスクを実行する。ＤＬＯＧタスクは、０．１［ｍｓ］で完了し、ｔ＝０．６［ｍｓ］よりＣＣＩＦタスクが実行される。
【０１３５】
ＣＣＩＦタスクは、完了まで１．０［ｍｓ］かかるが、ｔ＝１．０［ｍｓ］にて制御周期タイマ１３２が制御Ｔ＝１［ｍｓ］となり割込が発生する。このため、ＣＣＩＦタスクは、０．４［ｍｓ］実行したところで中断される。
【０１３６】
次のステップ２では、ｔ＝０〜０．１［ｍｓ］でＩＣＯＭタスクが実行され、次に、ｔ＝０．１〜０．６［ｍｓ］でＤＩＡＧタスク（２／３）が実行可能であるが、ｔ＝０．４５［ｍｓ］で終了したとする。この結果、次に、ｔ＝０．４５〜０．６５［ｍｓ］でＵＣＭＰタスクが実行可能であるが、実際にはＵＣＭＰタスクがｔ＝０．６［ｍｓ］で終了したとする。
【０１３７】
ＵＭＣＰの最終フラグがＴＲＵＥであるため、次に非安全タスクが実行され、ｔ＝０．６［ｍｓ］から、先のステップ１で中断したＣＣＩＦタスクが再開される。ＣＣＩＦタスクがさらに０．４［ｍｓ］実行されたところで、制御周期タイマが制御Ｔ＝１［ｍｓ］となり、ＣＣＩＦタスクの実行は、再び中断される。
【０１３８】
次のステップ３では、ｔ＝０〜０．１［ｍｓ］でＩＣＯＭタスクが実行され、次に、ｔ＝０．１〜０．８［ｍｓ］でＤＩＡＧタスク（３／３）が実行可能であるが、ｔ＝０．６［ｍｓ］で終了したとする。ＤＩＡＧ（３／３）の最終フラグがＴＲＵＥであるため、次に、非安全タスクが実行され、ｔ＝０．６［ｍｓ］から、先のステップ２で中断したＣＣＩＦタスクが再開される。
【０１３９】
ＣＣＩＦタスクは、すでにステップ１、２で、合計０．８［ｍｓ］実行しているため、残り０．２［ｍｓ］の処理が、ステップ３のｔ＝０．６〜０．８［ｍｓ］で実行される。
【０１４０】
ＣＣＩＦタスクの実行完了後には、次の非安全タスクがないため、ｔ＝０．８［ｍｓ］以降、ステップ３の終了までは、いずれの処理も実行しない空き時間となる。
【０１４１】
なお、ＳＥＴＳタスクおよびＵＣＭＰタスクでは、かご現在速度の演算が必要である。そこで、前回タスク実行時に取得したガバナエンコーダ値ｘ＿ｇｏｖ’、および制御周期タイマ値ｔ＿ｇｏｖ’と、それぞれの現在値ｘ＿ｇｏｖ、ｔ＿ｇｏｖと、制御周期Ｔと、速度正規化係数Ｋとを用いることにより、ＣＰＵ１２１は、下式に従ってかご速度を算出することができる。
かご速度
＝Ｋ×（ｘ＿ｇｏｖ−ｘ＿ｇｏｖ’）
／（３×Ｎ＋ｔ＿ｇｏｖ−ｔ＿ｇｏｖ’）
【０１４２】
図１１Ｂに示したように、本発明によるタスク処理では、安全タスクが規定時間より先に完了した場合の空き時間を効率的に利用し、非安全タスクに対してより多くの時間を割り当てることを可能としている。この結果、ＣＰＵ１２１の利用効率が向上し、タスク処理の時間効率性を向上させることが可能となる。
【０１４３】
一方、従来技術によるタスク割り当て時間を固定する方式を採用して、今回と同様の安全タスク、非安全タスクを実行した場合には、図１１Ｃに示す実行タイムチャートとなる。すなわち、空き時間において、安全タスクの処理が実行されないため、処理時間が１．０［ｍｓ］であるＣＣＩＦタスクが完了するステップが、ステップ５となってしまっている。すなわち、従来技術では、より多くのステップに渡る分割実行が必要となり、本発明によるタスク処理を実行した場合と比較して、処理時間が増大するケースが想定される。
【０１４４】
以上のように、実施の形態２に係るタスクスケジューリング手法によれば、安全制御機能のタスクを実行しない空き時間を、各制御周期の後ろにまとめることができる。この結果、ＣＰＵの利用効率が向上し、安全制御機能のタスクと非安全制御機能のタスクとの独立性を確保した上で、効率的なタスクスケジューリングを実現することができる。
【符号の説明】
【０１４５】
２１  ＣＰＵ、３０  独立性保証部、３１  規定時間タイマ、３２  制御周期タイマ、３３  メモリ保護機能、４０  プログラム、４１  安全制御機能のタスク、４２  非安全制御機能のタスク、５０、５０ａ  安全スケジューリング情報、６０、６０ａ  非安全スケジューリング情報、７０  コンテキストブロック、１２１  ＣＰＵ、１３０  独立性保証部、１３１  規定時間タイマ、１３２  制御周期タイマ、１３３  メモリ保護機能、１４０ａ、１４０ｂ  安全監視系統、１４１  安全制御機能のタスク、１４２  非安全制御機能のタスク、１５０  安全スケジューリング情報、１６０  非安全スケジューリング情報、１７０  コンテキストブロック。
【図１】
2019171424.tif 000004
【図２Ａ】
2019171424.tif 000005
【図２Ｂ】
2019171424.tif 000006
【図３】
2019171424.tif 000007
【図４】
2019171424.tif 000008
【図５】
2019171424.tif 000009
【図６Ａ】
2019171424.tif 000010
【図６Ｂ】
2019171424.tif 000011
【図７Ａ】
2019171424.tif 000012
【図７Ｂ】
2019171424.tif 000013
【図７Ｃ】
2019171424.tif 000014
【図８】
2019171424.tif 000015
【図９】
2019171424.tif 000016
【図１０】
2019171424.tif 000017
【図１１Ａ】
2019171424.tif 000018
【図１１Ｂ】
2019171424.tif 000019
【図１１Ｃ】
2019171424.tif 000020
【国際調査報告】
2019171424.tif 000021
2019171424.tif 000022
2019171424.tif 000023
2019171424.tif 000024