(57)【要約】【課題】  内部状態遷移処理を考慮せずシーケンス処理プログラムを容易に記述することができ、内部状態遷移処理の変化によってシーケンス処理プログラムを修正する必要がなく、内部状態遷移やシーケンス処理プログラムの設計を自由に行う。【解決手段】  機器の複数の動作状態の中から１の動作状態を決定する状態処理専用タスク部１０１と、複数のシーケンス処理プログラムの中から１の処理プログラムを動作させるシーケンス処理専用タスク部１０７と、状態処理専用タスク部１０１が決定した動作状態に対応するシーケンス処理プログラムを選択してシーケンス処理専用タスク部１０７を起動させるタスク接続部１１１とを備える。【選択図】      図１
2005276174.tif 000002
【特許請求の範囲】
【請求項１】
機器の複数の動作状態の中から１の動作状態を決定する状態決定部と、
複数の処理プログラムの中から１の処理プログラムを動作させる第１のシーケンス処理部と、
前記状態決定部が決定した動作状態に対応する処理プログラムを選択して前記第１のシーケンス処理部を起動させる起動部とを備えた機器制御装置。
【請求項２】
前記複数の処理プログラムの中から、前記第１のシーケンス処理部によって動作される処理プログラムとは異なる処理プログラムを動作させる第２のシーケンス処理部をさらに備え、
前記起動部は、前記状態決定部が決定した動作状態に対応する処理プログラムを選択して前記第２のシーケンス処理部を、前記第１のシーケンス処理部の動作中に起動させる請求項１に記載の機器制御装置。
【請求項３】
前記第１のシーケンス処理部と前記第２のシーケンス処理部との間でデータ授受による連係動作を行うシーケンス処理連係部をさらに備えた請求項２に記載の機器制御装置。
【請求項４】
前記シーケンス処理連係部は共有メモリ領域を備え、
前記第１のシーケンス処理部と前記第２のシーケンス処理部とがそれぞれ前記共有メモリ領域に書き込みを行うことによりデータ授受を行う請求項３に記載の機器制御装置。
【請求項５】
前記シーケンス処理連係部は独立したタスクとして起動し、前記第１のシーケンス処理部と前記第２のシーケンス処理部とに対して連係対象データをそれぞれ配信することによりデータ授受を行う請求項３に記載の機器制御装置。
【請求項６】
前記起動部は、前記状態決定部によって現在の動作状態とは異なる動作状態が決定された場合、処理プログラムを変更するための例外処理プログラムを選択して前記第１のシーケンス処理部を起動させる請求項１記載の機器制御装置。
【請求項７】
前記起動部は、オペレーティングシステムのタスクを起動又は終了する例外処理プログラムを選択して前記第１のシーケンス処理部を起動させる請求項６記載の機器制御装置。
【請求項８】
機器の複数の動作状態の中から１の動作状態を決定する状態決定ステップと、
前記状態決定ステップにおいて決定した動作状態に対応する処理プログラムを複数の処理プログラムの中から選択する第１の選択ステップと、
前記選択ステップにおいて選択された処理プログラムを動作させる第１のシーケンス処理部を起動する第１の起動ステップとを含む機器制御方法。
【請求項９】
前記第１の選択ステップにおいて選択された処理プログラムとは異なる処理プログラムを選択する第２の選択ステップと、
前記第２の選択ステップにおいて選択された処理プログラムを動作させる第２のシーケンス処理部を、前記第１のシーケンス処理部の動作中に起動させる第２の起動ステップとをさらに含む請求項８に記載の機器制御方法。
【請求項１０】
前記第１のシーケンス処理部と前記第２のシーケンス処理部との間でデータ授受による連係動作を行うシーケンス処理連係ステップをさらに含む請求項９に記載の機器制御方法。
【請求項１１】
シーケンス処理連係ステップは、前記第１のシーケンス処理部と前記第２のシーケンス処理部とがそれぞれ共有メモリ領域に書き込みを行うことによりデータ授受を行う請求項１０に記載の機器制御方法。
【請求項１２】
前記シーケンス処理連係ステップは独立したタスクとして起動し、前記第１のシーケンス処理部と前記第２のシーケンス処理部とに対して連係対象データをそれぞれ配信することによりデータ授受を行う請求項１０に記載の機器制御方法。
【請求項１３】
前記第１の起動ステップは、前記状態決定ステップにおいて現在の動作状態とは異なる動作状態が決定された場合、処理プログラムを変更するための例外処理プログラムを選択して前記第１のシーケンス処理部を起動させる請求項８記載の機器制御方法。
【請求項１４】
前記第１の起動ステップは、オペレーティングシステムのタスクを起動又は終了する例外処理プログラムを選択して前記第１のシーケンス処理部を起動させる請求項１３記載の機器制御装置。
【請求項１５】
機器の複数の動作状態の中から１の動作状態を決定する状態決定手段と、
複数の処理プログラムの中から１の処理プログラムを動作させるシーケンス処理手段と、
前記状態決定手段が決定した動作状態に対応する処理プログラムを選択して前記シーケンス処理手段を起動させる起動手段としてコンピュータを機能させる機器制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機器の状態に応じてシーケンス処理内容を変化させる機器制御装置、機器制御方法及び機器制御プログラムに関するものである。
【背景技術】
【０００２】
従来の機器組み込み向けの実時間処理ソフトウェア構成方法には、例えば特許文献１のような構成方法があった。図１５は、特許文献１に記載された従来の状態遷移動作システムの構成方法を示す図である。図１５に示す従来の状態遷移動作システムはシーケンス部品（内部状態部品）３０１の組み合わせと、状態部品を接合する接合部品（イベント入力部品）３０２とからなる。内部状態部品３０１は内部にシーケンス制御プログラムを記憶しており、内部状態が遷移すると内部状態部品に内包されたシーケンス制御プログラムが起動される。イベント入力部品３０２は外部からのイベントが入力されると内部状態部品３０１にイベントを配信して内部状態の遷移を行わせる。
【０００３】
前記従来例を含め従来の一般的な機器組み込み制御ソフトウェアは常に一定の繰り返し処理を行い、必要なタイミングに従って制御信号を出力、ユーザ操作の信号を取得などしつつ、自機器の状態を変化させ機器全体の制御を行っていた。以下図１６に従って従来の機器組み込み制御ソフトウェアの構造を説明する。図１６に示す従来の機器組み込み制御ソフトウェアは常に一定の繰り返し処理を行うためのループ構造２１１を備え、ループ構造２１１中において制御対象物を制御するための制御信号出力Ｓ２０１、Ｓ２１０などを行う。またループ構造２１１中では制御信号出力を行うことに加え、制御対象機器の現行状態を管理するための内部状態遷移処理Ｓ２０２などを行う。さらにループ構造２１１中では制御信号出力処理と内部状態遷移処理を行うことに加え、ユーザからの操作入力を受け付けるためのユーザ入力取得処理Ｓ２０３などを行う。ユーザ入力処理は入力の種類に従い、例えば入力判定Ｓ２０４に示す様に通常は出力しない制御信号出力Ｓ２０５を出力する場合もある。さらに入力の種類によっては内部状態遷移処理Ｓ２０８を行って内部状態を遷移させると共に、通常は出力しない制御信号出力Ｓ２０９を行う。
【特許文献１】特開平１１−３３８６８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、前記従来の機器組み込み制御ソフトウェアでは内部状態の遷移処理と機器制御を行うための制御信号出力処理またはシーケンス制御プログラムとが分離されていない構造であった。そのため、内部状態の構成に変化が生じ内部状態遷移処理を変更しなければならない場合に、信号出力処理またはシーケンス制御プログラムも同時に変更しなければならず、ソフトウェアの保守が非常に困難になるという問題があった。また内部状態遷移処理の設計がシーケンス制御プログラムの処理順序に制約されて、設計者の意図通りに記述することができず、自由な内部状態の設計を阻害することもあった。
【０００５】
本発明は上記課題を解決するためになされたもので、内部状態遷移処理を考慮せずシーケンス処理プログラムを容易に記述することができ、内部状態遷移処理の変化によってシーケンス処理プログラムを修正する必要がなく、内部状態遷移やシーケンス処理プログラムの設計を自由に行うことができる機器制御装置、機器制御方法及び機器制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係る機器制御装置は、機器の複数の動作状態の中から１の動作状態を決定する状態決定部と、複数の処理プログラムの中から１の処理プログラムを動作させる第１のシーケンス処理部と、前記状態決定部が決定した動作状態に対応する処理プログラムを選択して前記第１のシーケンス処理部を起動させる起動部とを備える。
【０００７】
この構成によれば、第１のシーケンス処理部によって、複数の処理プログラムの中から１の処理プログラムが動作される。状態決定部によって、機器の複数の動作状態の中から１の動作状態が決定され、起動部によって、決定された動作状態に対応する処理プログラムが選択されて第１のシーケンス処理部が起動される。
【０００８】
このように、内部状態の遷移処理とシーケンス処理プログラムとを分離することにより、内部状態遷移処理を考慮せずシーケンス処理プログラムを容易に記述することができる。また、内部状態遷移処理の変化によってシーケンス処理プログラムを修正する必要がなく、内部状態遷移やシーケンス処理プログラムの設計を自由に行うことができる。
【０００９】
また、上記の機器制御装置において、前記複数の処理プログラムの中から、前記第１のシーケンス処理部によって動作される処理プログラムとは異なる処理プログラムを動作させる第２のシーケンス処理部をさらに備え、前記起動部は、前記状態決定部が決定した動作状態に対応する処理プログラムを選択して前記第２のシーケンス処理部を、前記第１のシーケンス処理部の動作中に起動させることが好ましい。
【００１０】
この構成によれば、第２のシーケンス処理部によって、複数の処理プログラムの中から、第１のシーケンス処理部によって動作される処理プログラムとは異なる処理プログラムが動作される。そして、起動部によって、決定した動作状態に対応する処理プログラムが選択されて第２のシーケンス処理部が、第１のシーケンス処理部の動作中に起動される。したがって、第１のシーケンス処理部と第２のシーケンス処理部とにおいて両者に動作上の関連があるようなシーケンス処理プログラムを複数同時に協調動作させることができる。
【００１１】
また、上記の機器制御装置において、前記第１のシーケンス処理部と前記第２のシーケンス処理部との間でデータ授受による連係動作を行うシーケンス処理連係部をさらに備えることが好ましい。
【００１２】
この構成によれば、シーケンス処理連係部によって、第１のシーケンス処理部と第２のシーケンス処理部との間でデータ授受による連係動作が行われるので、複数のシーケンス処理プログラムを円滑に協調動作させることができる。
【００１３】
また、上記の機器制御装置において、前記シーケンス処理連係部は共有メモリ領域を備え、前記第１のシーケンス処理部と前記第２のシーケンス処理部とがそれぞれ前記共有メモリ領域に書き込みを行うことによりデータ授受を行うことが好ましい。
【００１４】
この構成によれば、第１のシーケンス処理部と第２のシーケンス処理部とがそれぞれ共有メモリ領域に書き込みを行うことによりデータ授受が行われるので、複数のシーケンス処理部のデータ授受を円滑に行うことができる。
【００１５】
また、上記の機器制御装置において、前記シーケンス処理連係部は独立したタスクとして起動し、前記第１のシーケンス処理部と前記第２のシーケンス処理部とに対して連係対象データをそれぞれ配信することによりデータ授受を行うことが好ましい。
【００１６】
この構成によれば、シーケンス処理連係部は独立したタスクとして起動し、第１のシーケンス処理部と第２のシーケンス処理部とに対して連係対象データをそれぞれ配信することによりデータ授受が行われる。なお、連携対象データとは、第１のシーケンス処理部と第２のシーケンス処理部とで使用される情報である。したがって、複数のシーケンス処理部のデータ授受を円滑に行うことができる。
【００１７】
また、上記の機器制御装置において、前記起動部は、前記状態決定部によって現在の動作状態とは異なる動作状態が決定された場合、処理プログラムを変更するための例外処理プログラムを選択して前記第１のシーケンス処理部を起動させることが好ましい。
【００１８】
この構成によれば、起動部によって、状態決定部により現在の動作状態とは異なる動作状態が決定された場合、処理プログラムを変更するための例外処理プログラムが選択されて第１のシーケンス処理部が起動される。このように、処理プログラムを変更するための例外処理プログラムが選択されて起動されることにより、処理プログラムの切り替えを円滑に行うことができる。
【００１９】
また、上記の機器制御装置において、前記起動部は、オペレーティングシステムのタスクを起動又は終了する例外処理プログラムを選択して前記第１のシーケンス処理部を起動させることが好ましい。
【００２０】
この構成によれば、起動部によって、オペレーティングシステムのタスクを起動又は終了する例外処理プログラムが選択されて第１のシーケンス処理部が起動されるので、オペレーティングシステムのタスクを容易に起動又は終了することができる。
【００２１】
本発明に係る機器制御方法は、機器の複数の動作状態の中から１の動作状態を決定する状態決定ステップと、前記状態決定ステップにおいて決定した動作状態に対応する処理プログラムを複数の処理プログラムの中から選択する第１の選択ステップと、前記選択ステップにおいて選択された処理プログラムを動作させる第１のシーケンス処理部を起動する第１の起動ステップとを含む。
【００２２】
この構成によれば、状態決定ステップにおいて、機器の複数の動作状態の中から１の動作状態が決定され、第１の選択ステップにおいて、決定された動作状態に対応する処理プログラムが複数の処理プログラムの中から選択され、第１の起動ステップにおいて、選択された処理プログラムを動作させる第１のシーケンス処理部が起動される。
【００２３】
このように、内部状態の遷移処理とシーケンス処理プログラムとを分離することにより、内部状態遷移処理を考慮せずシーケンス処理プログラムを容易に記述することができる。また、内部状態遷移処理の変化によってシーケンス処理プログラムを修正する必要がなく、内部状態遷移やシーケンス処理プログラムの設計を自由に行うことができる。
【００２４】
また、上記の機器制御方法において、前記第１の選択ステップにおいて選択された処理プログラムとは異なる処理プログラムを選択する第２の選択ステップと、前記第２の選択ステップにおいて選択された処理プログラムを動作させる第２のシーケンス処理部を、前記第１のシーケンス処理部の動作中に起動させる第２の起動ステップとをさらに含むことが好ましい。
【００２５】
この構成によれば、第２の選択ステップにおいて、第１の選択ステップにおいて選択された処理プログラムとは異なる処理プログラムが選択され、第２の起動ステップにおいて、第２の選択ステップにおいて選択された処理プログラムを動作させる第２のシーケンス処理部が、第１のシーケンス処理部の動作中に起動される。したがって、第１のシーケンス処理部と第２のシーケンス処理部とにおいて両者に動作上の関連があるようなシーケンス処理プログラムを複数同時に協調動作させることができる。
【００２６】
また、上記の機器制御方法において、前記第１のシーケンス処理部と前記第２のシーケンス処理部との間でデータ授受による連係動作を行うシーケンス処理連係ステップをさらに含むことが好ましい。
【００２７】
この構成によれば、シーケンス処理連係ステップにおいて、第１のシーケンス処理部と第２のシーケンス処理部との間でデータ授受による連係動作が行われるので、複数のシーケンス処理プログラムを円滑に協調動作させることができる。
【００２８】
また、上記の機器制御方法において、シーケンス処理連係ステップは、前記第１のシーケンス処理部と前記第２のシーケンス処理部とがそれぞれ共有メモリ領域に書き込みを行うことによりデータ授受を行うことが好ましい。
【００２９】
この構成によれば、第１のシーケンス処理部と第２のシーケンス処理部とがそれぞれ共有メモリ領域に書き込みを行うことによりデータ授受が行われるので、複数のシーケンス処理部のデータ授受を円滑に行うことができる。
【００３０】
また、上記の機器制御方法において、前記シーケンス処理連係ステップは独立したタスクとして起動し、前記第１のシーケンス処理部と前記第２のシーケンス処理部とに対して連係対象データをそれぞれ配信することによりデータ授受を行うことが好ましい。
【００３１】
この構成によれば、シーケンス処理連係ステップは独立したタスクとして起動し、第１のシーケンス処理部と第２のシーケンス処理部とに対して連係対象データをそれぞれ配信することによりデータ授受が行われる。なお、連携対象データとは、第１のシーケンス処理部と第２のシーケンス処理部とで使用される情報である。したがって、複数のシーケンス処理部のデータ授受を円滑に行うことができる。
【００３２】
また、上記の機器制御方法において、前記第１の起動ステップは、前記状態決定ステップにおいて現在の動作状態とは異なる動作状態が決定された場合、処理プログラムを変更するための例外処理プログラムを選択して前記第１のシーケンス処理部を起動させることが好ましい。
【００３３】
この構成によれば、第１の起動ステップにおいて、状態決定ステップで現在の動作状態とは異なる動作状態が決定された場合、処理プログラムを変更するための例外処理プログラムが選択されて第１のシーケンス処理部が起動される。このように、処理プログラムを変更するための例外処理プログラムが選択されて起動されることにより、処理プログラムの切り替えを円滑に行うことができる。
【００３４】
また、上記の機器制御方法において、前記第１の起動ステップは、オペレーティングシステムのタスクを起動又は終了する例外処理プログラムを選択して前記第１のシーケンス処理部を起動させることが好ましい。
【００３５】
この構成によれば、第１の起動ステップにおいて、オペレーティングシステムのタスクを起動又は終了する例外処理プログラムが選択されて第１のシーケンス処理部が起動されるので、オペレーティングシステムのタスクを容易に起動又は終了することができる。
【００３６】
本発明に係る機器制御プログラムは、機器の複数の動作状態の中から１の動作状態を決定する状態決定手段と、複数の処理プログラムの中から１の処理プログラムを動作させるシーケンス処理手段と、前記状態決定手段が決定した動作状態に対応する処理プログラムを選択して前記シーケンス処理手段を起動させる起動手段としてコンピュータを機能させる。
【００３７】
この構成によれば、シーケンス処理手段によって、複数の処理プログラムの中から１の処理プログラムが動作される。状態決定手段によって、機器の複数の動作状態の中から１の動作状態が決定され、起動手段によって、決定された動作状態に対応する処理プログラムが選択されてシーケンス処理手段が起動される。
【００３８】
このように、内部状態の遷移処理とシーケンス処理プログラムとを分離することにより、内部状態遷移処理を考慮せずシーケンス処理プログラムを容易に記述することができる。また、内部状態遷移処理の変化によってシーケンス処理プログラムを修正する必要がなく、内部状態遷移やシーケンス処理プログラムの設計を自由に行うことができる。
【発明の効果】
【００３９】
本発明によれば、内部状態の遷移処理とシーケンス処理プログラムとを分離することにより、内部状態遷移処理を考慮せずシーケンス処理プログラムを容易に記述することができる。また、内部状態遷移処理の変化によってシーケンス処理プログラムを修正する必要がなく、内部状態遷移やシーケンス処理プログラムの設計を自由に行うことができる。
【発明を実施するための最良の形態】
【００４０】
以下に本発明の実施の形態について、図面を参照しながら説明する。
【００４１】
（実施の形態１）
図１は、本発明の実施の形態１における実時間処理向け機器制御装置のソフトウェア構成を示す図である。
【００４２】
図１において、状態処理専用タスク部１０１はリアルタイムＯＳ（オペレーティングシステム）のタスク機能を利用し一つの独立した処理単位として他のタスクと同時に並行して処理を行う。状態処理専用タスク部１０１は制御対象機器の状態１０２、１０３、１０４、１０５、１０６を持ち、これら状態間の状態遷移処理を行う。入力部１１３は、ユーザによる入力を受け付けるものであり、例えば、状態１０２から状態１０３又は状態１０４へ遷移するよう指示する。状態処理専用タスク部１０１は、入力部１１３によって入力された指示内容に応じて状態遷移処理を行う。各状態１０２、１０３、１０４、１０５、１０６は制御対象機器が各状態にある時に行うべきシーケンス処理プログラムの情報を保持している。
【００４３】
シーケンス処理専用タスク部１０７はシーケンス処理プログラム１０８、１０９、１１０を動作させるためのタスクである。状態処理専用タスク部１０１と同様にリアルタイムＯＳのタスク機能を利用し一つの独立した処理単位として他のタスクと同時に並行して処理を行う。シーケンス処理専用タスク部１０７は任意のシーケンス処理プログラムを動作させることができるが、同時に複数のシーケンス処理プログラムを実行しなければならない場合には、シーケンス処理専用タスク部１１２の様に複数のシーケンス処理専用タスク部を動作させる。複数のシーケンス処理専用タスクも他のタスクと同様にリアルタイムＯＳのタスク機能を利用して同時並行に実行される。
【００４４】
タスク接続部１１１は、状態処理専用タスク部１０１とシーケンス処理専用タスク部１０７とを接続するモジュールである。タスク接続部１１１はタイマー割り込みによって周期的に起動される。タイマー割り込み周期は状態処理専用タスク部１０１からのメッセージを処理するのに必要十分な期間で設定され、タイマー割り込みによって起動されるごとに状態処理専用タスク部１０１からのメッセージをポーリングによって受け取る。このためにタスク接続部１１１はタイマー割り込みの周期にのみ従って状態処理専用タスク部１０１からのメッセージを処理する。
【００４５】
状態処理専用タスク部１０１からのメッセージは複数の指令コマンド内容をひとまとめにしたパケットとして一回のメッセージの中に格納されて送信される。状態処理専用タスク部１０１からのメッセージを図２に示す。図２に示すタスク間メッセージ６０１は、リアルタイムＯＳの通信機能を用いて送受信されるメッセージであり、状態処理専用タスク部１０１からタスク接続部１１１に送られる。タスク間メッセージ６０１には一つの指令コマンドパケット６０２が格納される。
【００４６】
指令コマンドパケット６０２は、状態処理専用タスク部１０１からシーケンス処理専用タスク部１０７への指令コマンド６０３を複数個内蔵した一群の指令コマンドの集まりである。指令コマンドパケット６０２は、タスク接続部１１１によって解釈され、個々の指令コマンド６０３に分解された後、シーケンス処理専用タスク部１０７へ送信される。指令コマンド６０３は、起動シーケンス種別指定コマンド、シーケンスパラメータコマンド、シーケンス例外処理コマンドなどの種類を持つ。
【００４７】
ここで、起動シーケンス種別指定コマンド、シーケンスパラメータコマンド及びシーケンス例外処理コマンドについてビデオレコーダを例に説明する。起動シーケンス種別指定コマンドとは、光ディスクからの再生及び光ディスクへの記録等を指定するコマンドである。シーケンスパラメータコマンドとは、再生速度及び録画ビットレート等のパラメータを指定するコマンドである。シーケンス例外処理コマンドとは、再生中に再生速度を変更する場合及び再生中に再生を停止する場合等に発行されるコマンドである。すなわち、再生速度を変更することが可能である場合、再生中にユーザによって早送りボタンが押下されることにより再生速度のパラメータを変更する。また、再生中に停止ボタンが押下されることにより再生処理シーケンスを停止させ、バッファフラッシュ処理を行った後、停止処理シーケンスを起動させる。
【００４８】
起動シーケンス種別指定コマンド、シーケンスパラメータコマンドは、シーケンス処理のための指令コマンドとしてシーケンス処理専用タスク部１０７へそのまま送信される。シーケンス例外処理コマンドは、あるシーケンスからある他のシーケンスへ処理が変更される場合、シーケンス変更のための後始末処理、初期化処理などを行うための補助シーケンス処理を起動させるためのコマンドである。シーケンス例外処理コマンドは、タスク接続部１１１で解釈された後、シーケンス例外処理呼び出しを行うことによって指令コマンドにより要求された処理が実現される。
【００４９】
タスク接続部１１１は、指令コマンドパケット６０２として受け取った指令コマンド群を一回の起動で全て処理する。ここで、タスク接続部１１１の処理内容について説明する。図３は、タスク接続部１１１の処理内容を説明するためのフローチャートである。
【００５０】
まず、タスク接続部１１１は、自タスクを休眠状態にし、状態処理専用タスク部１０１によって出力されるメッセージの入力を待つ(ステップＳ７０１)。次に、状態処理専用タスク部１０１からメッセージが入力されると、タスク接続部１１１は休眠状態から起床して実行状態に入る。実行状態に入ると、タスク接続部１１１は、自タスク宛のメッセージをポーリングして取得する(ステップＳ７０２)。
【００５１】
メッセージを受け取ると、タスク接続部１１１は、受け取ったメッセージのパケットに含まれている最初の指令コマンドの種類を判定する(ステップＳ７０３)。指令コマンドの種類がシーケンス例外処理以外であった場合には（ステップＳ７０３でＮＯ）、タスク接続部１１１は、指令コマンドの内容に従って、シーケンス起動指令やシーケンスパラメータ通知処理を行い、シーケンス処理専用タスク部１０７を起動する(ステップＳ７０４)。
【００５２】
一方、指令コマンドの種類がシーケンス例外処理であった場合には（ステップＳ７０３でＹＥＳ）、タスク接続部１１１は、シーケンス例外起動処理(ステップＳ７０５)に入る。タスク接続部１１１は、指定されたシーケンス例外の種類に応じて実際のシーケンス例外処理を呼び出してシーケンス例外処理を行う（ステップＳ７０６）。なお、このシーケンス例外処理については、図４を用いて後述する。
【００５３】
上記ステップＳ７０４又はステップＳ７０６における指令コマンドの処理が終了したら次に、タスク接続部１１１は、メッセージとして受け取ったパケットの中にまだ指令コマンドが残っているかどうかの判定を行う(ステップＳ７０７)。未処理の指令コマンドが残っていれば（ステップＳ７０７でＹＥＳ）、ステップＳ７０３に戻り、タスク接続部１１１は上記と同様の処理を繰り返し行う。全ての指令コマンドの処理が完了して、パケットの中に指令コマンドが無い状態になると（ステップＳ７０７でＮＯ）、ステップＳ７０１に戻り、タスク接続部１１１は自タスクを再び休眠状態にして、状態処理専用タスク部１０１によって出力されるメッセージの入力を待つ状態に戻る。
【００５４】
このように、機器の状態変化に伴う内部状態遷移処理は状態処理専用タスク部１０１のみで行い、シーケンス処理はシーケンス処理専用タスク部１０７で内部状態の遷移とは無関係に処理する。
【００５５】
次に、図３のステップＳ７０６におけるシーケンス例外処理について説明する。本実施の形態におけるシーケンス例外処理では、タスクの起動及び停止を切り替える。図４は、本実施の形態におけるシーケンス例外処理について説明するためのフローチャートである。
【００５６】
まず、ステップＳ９０１において、タスク接続部１１１は指令コマンドを解釈する。次に、ステップＳ９０２において、タスク接続部１１１は、入力された指令コマンドを解釈した結果、タスク制御が必要であるか否かを判断する。ここで、タスク制御が必要である場合（ステップＳ９０２でＹＥＳ）、ステップＳ９０４の処理に移行し、タスク制御が不要である場合（ステップＳ９０２でＮＯ）、ステップＳ９０３の処理に移行する。
【００５７】
タスク制御が不要である場合、ステップＳ９０３において、タスク接続部１１１は、タスク制御以外のシーケンス例外処理を実行する。一方、タスク制御が必要である場合、ステップＳ９０４において、タスク接続部１１１は、操作対象シーケンスのタスクＩＤを取得する。このタスクＩＤは、操作対象タスクのＩＤ番号を指定するものである。
【００５８】
次に、ステップＳ９０５において、タスク接続部１１１は、取得したタスクＩＤに基づいて、タスクを起動するか、終了するかを判断する。ここで、タスクを起動すると判断された場合（ステップＳ９０５で起動）、ステップＳ９０６の処理に移行し、タスクを終了すると判断された場合（ステップＳ９０５で終了）、ステップＳ９０７の処理に移行する。
【００５９】
タスクを起動すると判断された場合、ステップＳ９０６において、タスク接続部１１１は、タスクを起動するタスク起動サービスコールを発行する。一方、タスクを終了すると判断された場合、ステップＳ９０７において、タスク接続部１１１は、タスクを終了するタスク終了サービスコールを発行する。
【００６０】
このように、起動部の一例に相当するタスク接続部１１１によって、オペレーティングシステムのタスク機能を起動又は終了する例外処理プログラムが選択されてシーケンス処理専用タスク部１０７が起動されるので、オペレーティングシステムのタスク機能を容易に起動又は終了することができる。
【００６１】
以上のようにして、タスク接続部１１１は、状態処理専用タスク部１０１からシーケンス処理プログラムの起動指令を受け取り、シーケンス処理専用タスク部１０７を起動すると共に状態処理専用タスク部１０１から起動指令のあったシーケンス処理プログラムの種別をシーケンス処理専用タスク部１０７に通知する。シーケンス処理専用タスク部１０７は、シーケンス処理プログラムを起動する。タスク接続部１１１からの通知によって起動されると、シーケンス処理専用タスク部１０７は、タスク接続部１１１からの新たな通知が行われるまでの間は独立してシーケンス処理プログラムに記述された処理のみを行う。
【００６２】
図５は、シーケンス処理プログラムに記述されるシーケンス処理の内容を示す流れ図である。シーケンス処理プログラムは図５のようにシーケンス処理の内容のみを記述すればよく、機器の状態を遷移させる処理などは記述しなくてよい。すなわち、図１６に示す内部状態遷移処理Ｓ２０２，Ｓ２０８や入力判定処理Ｓ２０４，Ｓ２０７等が、本発明におけるシーケンス処理では不要となる。シーケンス処理のループ構造４１１は単純に制御信号出力Ｓ２０１，Ｓ２０５，Ｓ２０９，Ｓ２１０のみをプログラムのアルゴリズムに従って逐次的に配置し繰り返し処理を行う。図５において図１６と同じ処理については同じ符号を用い、説明は省略した。
【００６３】
かかる構成によれば、状態処理専用タスク部１０１に状態遷移処理のみを記述し、シーケンス処理専用タスク部１０７にシーケンス処理プログラムのみを記述することにより、状態遷移処理の記述によらずシーケンス処理プログラムを独立して記述することができる。
【００６４】
このように、第１のシーケンス処理部の一例に相当するシーケンス処理専用タスク部１０７によって、複数のシーケンス処理プログラムの中から１の処理プログラムが動作される。また、状態決定部の一例に相当する状態処理専用タスク部１０１によって、機器の複数の動作状態の中から１の動作状態が決定され、起動部の一例に相当するタスク接続部１１１によって、決定された動作状態に対応する処理プログラムが選択されてシーケンス処理専用タスク部１０７が起動される。
【００６５】
したがって、内部状態の遷移処理とシーケンス処理プログラムとを分離することにより、内部状態遷移処理を考慮せずシーケンス処理プログラムを容易に記述することができる。また、内部状態遷移処理の変化によってシーケンス処理プログラムを修正する必要がなく、内部状態遷移やシーケンス処理プログラムの設計を自由に行うことができる。さらに、機器の内部状態にかかわらずシーケンス処理プログラムのみを変更することができるので、シーケンス処理プログラムの更新が容易となる。
【００６６】
また、タスク接続部１１１によって、状態処理専用タスク部１０１により現在の動作状態とは異なる動作状態が決定された場合、シーケンス処理プログラムを変更するためのシーケンス例外処理プログラムが選択されてシーケンス処理専用タスク部１０７が起動される。このように、シーケンス処理プログラムを変更するためのシーケンス例外処理プログラムが選択されて起動されることにより、シーケンス処理プログラムの切り替えを円滑に行うことができる。
【００６７】
（実施の形態２）
図６は、本発明の実施の形態２の実時間処理向け機器制御装置のソフトウェア構成を示す図である。図６において、図１と同じ構成要素については同じ符号を用い、説明を省略する。
【００６８】
図６において、シーケンス処理プログラム間連係部５０１は、シーケンス処理専用タスク部１０７とシーケンス処理専用タスク部１１２との間の連係を行うための機構を提供する。実施の形態１においてはシーケンス処理専用タスク部１０７とシーケンス処理専用タスク部１１２とはそれぞれ独立して動作しており、シーケンス処理を行う上で相互に関連を持たない場合の実施の形態であった。本実施の形態２はシーケンス処理専用タスク部１０７とシーケンス処理専用タスク部１１２とが相互に関連し協調して動作を行う場合の実施の形態である。シーケンス処理プログラム間連係部５０１はリアルタイムＯＳが提供する共有メモリ機構などを利用して連係に必要なデータの受け渡しを行う。
【００６９】
かかる構成によれば、シーケンス処理専用タスク部１０７とシーケンス処理専用タスク部１１２とにおいて並行に動作を行うが両者に動作上の関連があるようなシーケンス処理プログラムを複数同時に協調動作させることができる。
【００７０】
このように、第２のシーケンス処理部に相当するシーケンス処理専用タスク部１１２によって、複数のシーケンス処理プログラムの中から、シーケンス処理専用タスク部１０７によって動作される処理プログラムとは異なる処理プログラムが動作される。そして、タスク接続部１１１によって、決定した動作状態に対応する処理プログラムが選択されてシーケンス処理専用タスク部１１２が、シーケンス処理専用タスク部１０７の動作中に起動される。したがって、シーケンス処理専用タスク部１０７とシーケンス処理専用タスク部１１２とにおいて両者に動作上の関連があるようなシーケンス処理プログラムを複数同時に協調動作させることができる。
【００７１】
また、シーケンス処理連携部の一例に相当するシーケンス処理プログラム間連係部５０１によって、シーケンス処理専用タスク部１０７とシーケンス処理専用タスク部１１２との間でデータ授受による連係動作が行われるので、複数のシーケンス処理プログラムを円滑に協調動作させることができる。
【００７２】
さらに、シーケンス処理専用タスク部１０７とシーケンス処理専用タスク部１１２とがそれぞれ共有メモリ領域に書き込みを行うことによりデータ授受が行われるので、複数のシーケンス処理専用タスク部のデータ授受を円滑に行うことができる。
【００７３】
なお、本実施の形態においてシーケンス処理プログラム専用タスクは２つのみ、シーケンス処理プログラム間連係部はその２つのシーケンス処理プログラム専用タスクの間のみに設けたが、連係して協調動作を行うシーケンス処理プログラム専用タスクは３つ以上複数個存在してもよく、またシーケンス処理プログラム間連係部５０１は連係して協調動作を行う必要のある全てのシーケンス処理プログラム専用タスク間を繋ぐように配置しても良い。
【００７４】
（実施の形態３）
図７は、本発明に係る機器制御装置が適用されるビデオレコーダのハードウエア構成の一例を示す図である。図７に示すビデオレコーダは、記録媒体４０１、記録媒体制御部４０２、映像デジタル変換部４０３、ＡＶエンコーダ４０４、ストリーム制御部４０５、ＡＶデコーダ４０６、メモリ４０７、マイコン（マイクロコンピュータ）４０８及び入力部４０９を備えて構成される。
【００７５】
記録媒体４０１は、コンピュータ読み取り可能な記録媒体であり、ＤＶＤ−Ｒ、ＤＶＤ−ＲＡＭ、ＣＤ−Ｒ等の記録用の光ディスク、ＤＶＤ−ＲＯＭ、ＣＤ−ＲＯＭ等の再生用の光ディスク、ＶＨＳ等のビデオテープ等が用いられる。
【００７６】
記録媒体制御部４０２は、例えばＤＶＤドライブが用いられ、記録媒体４０１へのデータの書き込み又は読み出しを行う。映像デジタル変換部４０３は、受信したアナログの映像信号をデジタルの映像信号に変換する。
【００７７】
ＡＶエンコーダ４０４は、映像デジタル変換部４０３によってデジタルに変換された映像データを符号化する。ストリーム制御部４０５は、記録媒体４０１から読み出されたデータ又は記録媒体４０１へ書き込むデータをストリーミングする。
【００７８】
ＡＶデコーダ４０６は、ストリーム制御部４０５によってストリーミングされたデータを複合化する。メモリ４０７は、ＡＶデコーダ４０６によって複合化されたデータを記憶する。マイコン４０８は、ＣＰＵ（中央演算処理装置）、ＲＡＭ（ランダムアクセスメモリ）及びＲＯＭ（リードオンリメモリ）等で構成され、装置全体を制御する。入力部４０９は、再生、録画、停止、早送り及び追っかけ再生など、ユーザによる種々の指示を受け付ける。
【００７９】
図８は、本発明の実施の形態３の実時間処理向け機器制御装置のソフトウェア構成を示す図である。なお、図８に示す機器制御装置は、図７に示すマイコン４０８が機器制御プログラムを実行することによって実現される。図８において、図１と同じ構成要素については同じ符号を用い、説明を省略する。
【００８０】
本実施の形態は本発明をビデオレコーダに応用した場合の例を示すものである。図８において、内部状態８０２はビデオレコーダが動作を停止している停止状態、内部状態８０３はビデオ再生を行っている再生状態、内部状態８０４は録画動作を行っている録画状態、内部状態８０５は早送りを行っている早送り状態である。それぞれの状態間は状態遷移を行うことのできる関係が決められており、矢印で結合されている状態間で、矢印の向きにしか状態遷移が発生しない。
【００８１】
本実施の形態では停止状態８０２からは再生状態８０３と録画状態８０４とへの遷移、再生状態８０３からは録画状態８０４への遷移、再生状態８０３からは早送り状態８０５への遷移、早送り状態８０５からは再生状態８０３への遷移、早送り状態８０５からは停止状態８０２への遷移、録画状態８０４からは停止状態８０２への状態遷移を行うことができる。
【００８２】
ユーザからの操作によって再生が指示され、停止状態８０２から再生状態８０３に遷移した場合には、再生状態８０３の処理の中からタスク接続部１１１を通して再生シーケンス処理プログラム８０６が起動される。再生シーケンス処理プログラム８０６が起動されると、シーケンス処理専用タスク部１０７は、状態処理専用タスク部１０１とは独立に並行して動作し、再生処理シーケンスを実行することのみを行う。次に、ユーザからの操作によって早送りが指示され、再生状態８０３から早送り状態８０５に状態が遷移した場合には早送り状態８０５の中からタスク接続部１１１を通して早送りシーケンス処理プログラム８０８が起動される。この場合、再生シーケンス処理プログラム８０６はタスク接続部１１１によって停止させられた後、早送りシーケンス処理プログラム８０８が起動される。早送りシーケンス処理プログラム８０８は、直前まで行われていた再生シーケンス処理プログラム８０６には関係なく、また状態遷移がどのように行われたかに依らず実行を開始する。その他録画シーケンス処理プログラム８０７なども同様に、ユーザ操作を入力とした状態遷移に伴って各々独立に起動される。
【００８３】
また、録画シーケンス処理プログラム８０７が動作中にユーザから再生の操作が指示された場合には、録画状態８０４から追っかけ再生状態８０９に状態が遷移し、追っかけ再生を行う状態となる。追っかけ再生状態８０９に遷移した場合には現在動作中の録画シーケンス処理プログラム８０７はそのまま動作し、さらに並行して再生シーケンス処理プログラム８０６が動作するためにタスク接続部１１１を通してシーケンス処理専用タスク部１１２が新たに追加して起動される。以前から動作していた録画シーケンス処理プログラム８０７と、新たに起動された再生シーケンス処理プログラム８０６とはシーケンス処理プログラム間で連係して動作するために連係録画・再生位置記憶領域８１０を通してデータのやりとりを行う。録画シーケンス処理プログラム８０７は現在録画中の番組の現在時分を連係録画・再生位置記憶領域８１０に随時書き込みを行い、再生シーケンス処理プログラム８０６は連係録画・再生位置記憶領域８１０に書き込まれた録画時分を参照しながら再生処理を行う。再生時分が録画時分に追いついてしまった場合には再生処理を停止する処理を行う。
【００８４】
次に、実施の形態３における機器制御プログラムについて説明する。図９〜１４は、機器制御プログラムのプログラムコードの一例を示す図である。なお、図９〜１４に示すプログラムコードは、Ｃ言語で記述されているが、本発明は特にこれに限定されず、他のプログラム言語で記述してもよい。また、本実施の形態における機器制御プログラムは、予めマスクＲＯＭに記憶されているが、本発明は特にこれに限定されず、書き換え可能なフラッシュメモリに記憶してもよく、さらに、コンピュータ読み取り可能な記録媒体、インターネットや電波等を経由してフラッシュメモリに記憶されてもよい。
【００８５】
図９は、データ構造のプログラムコードの一例を示す図である。図９に示すように、機器制御プログラムのデータ構造は、シーケンス例外処理に関するデータ（ＥＸＣＥＰＴＩＯＮ）９１１、指令コマンドに関するデータ（ＣＯＭＭＡＮＤ）９１２、シーケンス情報に関するデータ（ＳＥＱＩＮＦＯ）９１３、メッセージに関するデータ（ＳＥＱ＿ＭＳＧ）９１４及びシーケンスデータ（ＳＥＱ＿ＤＡＴ）９１５で構成されている。
【００８６】
図１０は、シーケンスデータのプログラムコードの一例を示す図である。図１０に示すように、プログラムコード９２１は、シーケンスデータを表している。シーケンスデータとしては、再生シーケンス・シーケンス例外（Ｐｌａｙ，ＰｌａｙＳｔａｒｔ）などが複数配列されている。
【００８７】
図１１は、シーケンス処理専用タスク部のプログラムコードの一例を示す図である。図１１に示すように、プログラムコード９３１は、シーケンス処理専用タスク部１０７を表しており、シーケンス処理専用タスク部１０７は、関数ＳＥＱ＿Ｍａｉｎ（ｉｎｔ  ｍｅｄｉａ）で実現される。図１２は、タスク接続部のプログラムコードの一例を示す図である。図１２に示すように、プログラムコード９４１は、タスク接続部１１１を表しており、タスク接続部１１１は、関数ＥＸＣ＿Ｍａｉｎ（ｖｏｉｄ）で実現される。
【００８８】
図１３は、タスク接続部のシーケンス例外処理関数のプログラムコードの一例を示す図である。図１３に示すように、プログラムコード９５１は、タスク接続部１１１におけるシーケンス例外処理を表している。タスク接続部１１１におけるシーケンス例外処理は、関数Ｐｌａｙ＿Ｓｔａｒｔ（ＣＯＭＭＡＮＤ  ＊ｍｓｇ，  ＥＸＣＥＰＴＩＯＮ  ＊ｅｘｃ）で実現される。図１４は、シーケンス処理関数のプログラムコードの一例を示す図である。図１４に示すように、プログラムコード９６１は、シーケンス処理関数を表している。シーケンス処理は、関数Ｐｌａｙ（ＲＳＱ＿ＭＳＧ＿Ｔ  ｒｓｑ＿ｍｓｇ）で実現される。
【００８９】
なお、本実施の形態ではシーケンス処理プログラム間連係部５０１の一実施の形態としてシーケンス処理プログラム間の共有データ領域の連係録画・再生位置記憶領域８１０を設けることとしたが、シーケンス処理プログラム間連係部５０１として一つのタスクを割り当てシーケンス処理プログラム間連係部５０１側からシーケンス処理プログラムへ共有情報を送信させるような構成などにしてもよい。このように、連係録画・再生位置記憶領域８１０は独立したタスクとして起動し、シーケンス処理専用タスク部１０７とシーケンス処理専用タスク部１１２とに対して連係対象データをそれぞれ配信することによりデータ授受が行われる。なお、連携対象データとは、シーケンス処理専用タスク部１０７とシーケンス処理専用タスク部１１２との両方で使用される共有情報である。したがって、複数のシーケンス処理専用タスク部のデータ授受を円滑に行うことができる。
【産業上の利用可能性】
【００９０】
本発明は動作状態を持ち、状態によってシーケンス処理内容を変化させなければならない機器のソフトウェア構成方法、例えばビデオテープレコーダ、ＤＶＤプレイヤーその他の家庭用電化製品の組み込み制御ソフトウェア構成方法として利用することができ、その産業上の利用可能性は非常に広く且つ大きい。
【図面の簡単な説明】
【００９１】
【図１】本発明の実施の形態１における実時間処理向け機器制御装置のソフトウェア構成を示す図である。
【図２】状態処理専用タスク部から出力されるメッセージを示す図である。
【図３】タスク接続部の処理内容を説明するためのフローチャートである。
【図４】本実施の形態におけるシーケンス例外処理について説明するためのフローチャートである。
【図５】シーケンス処理プログラムに記述されるシーケンス処理の内容を示す流れ図である。
【図６】本発明の実施の形態２の実時間処理向け機器制御装置のソフトウェア構成を示す図である。
【図７】本発明に係る機器制御装置が適用されるビデオレコーダのハードウエア構成の一例を示す図である。
【図８】本発明の実施の形態３の実時間処理向け機器制御装置のソフトウェア構成を示す図である。
【図９】データ構造のプログラムコードの一例を示す図である。
【図１０】シーケンスデータのプログラムコードの一例を示す図である。
【図１１】シーケンス処理専用タスク部のプログラムコードの一例を示す図である。
【図１２】タスク接続部のプログラムコードの一例を示す図である。
【図１３】タスク接続部のシーケンス例外処理関数のプログラムコードの一例を示す図である。
【図１４】シーケンス処理関数のプログラムコードの一例を示す図である。
【図１５】特許文献１に記載された従来の状態遷移動作システムの構成方法を示す図である。
【図１６】従来の実時間処理ソフトウェアのシーケンス処理の内容を示す流れ図である。
【符号の説明】
【００９２】
１０１    状態処理専用タスク部
１０２〜１０６    制御対象機器の状態
１０７，１１２    シーケンス処理専用タスク部
１０８〜１１０    シーケンス処理プログラム
１１１    タスク接続部
１１３    入力部
４０１    記録媒体
４０２    記録媒体制御部
４０３    映像デジタル変換部
４０４    ＡＶエンコーダ
４０５    ストリーム制御部
４０６    ＡＶデコーダ
４０７    メモリ
４０８    マイコン
５０１    シーケンス処理プログラム間連係部
８０２    停止状態
８０３    再生状態
８０４    録画状態
８０５    早送り状態
８０６    再生シーケンス処理プログラム
８０７    録画シーケンス処理プログラム
８０８    早送りシーケンス処理プログラム
８０９    追っかけ再生状態
８１０    連係録画・再生位置記憶領域
【図１】
2005276174.tif 000003
【図２】
2005276174.tif 000004
【図３】
2005276174.tif 000005
【図４】
2005276174.tif 000006
【図５】
2005276174.tif 000007
【図６】
2005276174.tif 000008
【図７】
2005276174.tif 000009
【図８】
2005276174.tif 000010
【図９】
2005276174.tif 000011
【図１０】
2005276174.tif 000012
【図１１】
2005276174.tif 000013
【図１２】
2005276174.tif 000014
【図１３】
2005276174.tif 000015
【図１４】
2005276174.tif 000016
【図１５】
2005276174.tif 000017
【図１６】
2005276174.tif 000018