(57)【特許請求の範囲】
【請求項１】
現在の状態および状態遷移規則が確定した状態において状態遷移処理を実行する通常動作と該通常動作を行なうために必要な情報を設定する保守動作との双方を実行可能であって状態遷移処理を行うステートマシンに対する、ステートマシン制御方式であって、
前記ステートマシンに対して状態遷移要因を入力要因として設定し、前記ステートマシンに対して起動要求を発行する起動制御部を有し、
前記保守動作を行なう状態における制御要求を含む前記保守動作を行う要求を保守制御要因として、前記起動制御部が前記ステートマシンに対して設定する前記入力要因において、前記ステートマシンに対する前記保守制御要因が前記状態遷移要因の一部として規定されているステートマシン制御方式。
【請求項２】
前記起動制御部は、前記起動要求として保守制御起動トリガと通常動作起動トリガとを同一のトリガで起動する、請求項１に記載のステートマシン制御方式。
【請求項３】
状態遷移処理による状態結果を出力しない機能、指定する状態からの状態遷移処理を実行する機能、状態遷移処理を停止する機能、および状態遷移処理の結果に関係なく状態結果を出力する機能の少なくとも１つが前記保守制御要因として定義されて前記状態遷移処理に統合されている、請求項１または２に記載のステートマシン制御方式。
【請求項４】
前記ステートマシンは、複数の論理ステートマシンに対応して前記各論理ステートマシンの状態遷移処理を実行する状態遷移処理部を有し、前記起動制御部は、各論理ステートマシンごとに前記入力要因を設定する、請求項１乃至３のいずれか１項に記載のステートマシン制御方式。
【請求項５】
前記ステートマシンより結果出力を読み出す動作状態出力部をさらに備える請求項１乃至４のいずれか１項に記載のステートマシン制御方式。
【請求項６】
現在の状態および状態遷移規則が確定した状態において状態遷移処理を実行する通常動作と該通常動作を行なうために必要な情報を設定する保守動作との双方を実行可能であって状態遷移処理を行うステートマシンであって、
外部から設定された入力要因が格納される入力要因格納部と、
外部から入力される起動要求に応じて起動し、前記入力要因格納部に格納された前記入力要因にしたがって状態遷移処理を実行する状態遷移処理部と、
を有し、
前記保守動作を行なう状態における制御要求を含む前記保守動作を行う要求を保守制御要因として、前記入力要因は遷移要因と前記保守制御要因とを含み、前記保守制御要因が前記状態遷移処理の要因の一部として扱われる、ステートマシン。
【請求項７】
前記通常動作の起動要求と前記保守動作の起動要求とが同一である、請求項６に記載のステートマシン。
【請求項８】
状態情報および動作モード情報を格納する設定情報格納部をさらに有する請求項６または７に記載のステートマシン。
【請求項９】
状態遷移処理による状態結果を出力しない機能、指定する状態からの状態遷移処理を実行する機能、状態遷移処理を停止する機能、および状態遷移処理の結果に関係なく状態結果を出力する機能の少なくとも１つが前記保守制御要因として定義されて前記状態遷移処理に統合されている、請求項６乃至８のいずれか１項に記載のステートマシン。
【請求項１０】
前記状態遷移処理部での状態遷移処理の結果を保持する処理結果格納部をさらに有する請求項６乃至９のいずれか１項に記載のステートマシン。
【請求項１１】
前記状態遷移処理部は、複数の論理ステートマシンに対応して前記各論理ステートマシンの状態遷移処理を実行し、前記入力要因格納部には各論理ステートマシンごとに前記入力要因が設定される、請求項６乃至１０のいずれか１項に記載のステートマシン。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ステートマシン（状態機械）を制御するステートマシン制御方式と、このような制御方式に適合したステートマシンに関する。
【０００２】
【従来の技術】
ステートマシン（状態機械）は、数学的に言えば、状態を有するとともにその上での状態遷移の規則が定義された計算機構である。このようなステートマシンは、各種の制御などに広く利用されている。
【０００３】
ところで、数学的にはステートマシンは上述のように規定されるとしても、実計算機としてステートマシンを構成し、実際にそのステートマシンを運用する場合には、動作モードの設定や初期状態の設定を行う必要がある。したがって、ステートマシンの動作制御を行う場合には、(1)通常動作処理と(2)保守動作処理との２種類の制御を実現する必要がある。
【０００４】
ここで、通常動作処理とは、現在の状態および動作モードが確定した状態（以下、通常運用状態と呼ぶ）において遷移要因が与えられた際に、現状態と遷移要因から次状態を決定する処理のことであり、ステートマシンについての上述した数学的な規定に基づく処理のことである。ここで動作モードとは、ステートマシンの状態遷移規則のことを意味する。
【０００５】
これに対して保守動作処理とは、動作モード設定処理および初期状態設定など、上述した通常動作処理を行なうために必要な情報をステートマシンに設定する処理のことである。また、この処理を実施する際のステートマシンの状態を保守状態と呼ぶことにする。
【０００６】
図５は、保守状態での制御を考慮した従来のステートマシン制御方式の構成の一例を示している。制御対象のステートマシン５１は、遷移要因格納部６１、状態遷移処理部６２及び処理結果格納部６３により構成されるとともに、起動制御部５２及び動作状態出力部５３とに接続されている。起動制御部５２は、ステートマシン５１に対して、(1)通常状態における状態遷移処理の起動を要求するための起動要求、(2)ステートマシン５１の初期立ち上げにおいて現状態を確定させるための情報（以下、状態情報と呼ぶ）および動作モード情報からなる設定情報、(3)通常状態における状態遷移処理で使用する状態遷移要因である遷移要因、および(4)系（ステートマシン５１）の状態が通常運用状態であるか保守状態であるかを通知する保守制御情報を設定する。起動要求と設定情報と保守制御情報はステートマシン５１の状態遷移処理部６２に設定され、遷移要因は遷移要因格納部６１に設定されるようになっている。また、保守制御情報は、保守状態においてステートマシン５１の出力を無視する、あるいはステートマシン５１の出力を強制的に受け取って自ブロックでの処理を実施するかを設定するために、動作状態出力部５３にも出力されるようになっている。
【０００７】
このように構成した従来のステートマシン制御方式においては、ステートマシン５１の状態遷移処理部６２は、起動制御部５２からの起動要求を受けて入力情報を参照して状態遷移処理を実行し、状態結果を処理結果格納部６３に書き込む。そしてこの状態遷移処理部６２は、処理結果格納部６３に書き込まれたデータが前回値と異なる場合に、動作状態出力部５３に対し、状態変化通知を発行する。動作状態出力部５３は、この状態変化通知を受けて処理結果格納部６３より結果出力を読み出し、自ブロックでの処理を実施することになる。ただし、起動制御部５２から保守制御情報を受けている場合には、動作状態出力部５３は、保守制御情報での設定を優先させて動作する。なお、状態遷移処理部６２から起動制御部５２に対して、現在のステートマシン５１の状態を示すステータスが出力されている。
【０００８】
しかしながら、上述したステートマシン制御系は、起動制御部５２がステートマシン５１に対して定周期で状態遷移処理を起動させるという条件下で動作させた場合に、(1)通常動作処理の起動タイミングと保守動作処理の実施タイミングとの調停が必要となるので、起動制御部５２の制御アルゴリズムが複雑になり、(2)起動制御部５２によって設定された保守制御情報を使用して状態遷移処理を行なうかどうかを判断する必要があって、ステートマシン５１の動作が複雑になり、さらに、(3)ステートマシン制御系が通常動作処理状態なのか保守動作処理状態なのかを動作状態出力部５３が認識する必要があって、動作状態出力部５３の動作が複雑になる、という問題点を生じる。
【０００９】
【発明が解決しようとする課題】
そこで本発明は、定周期で状態遷移処理が起動されるステートマシンにおいて上記の問題点を解決する、起動制御部−ステートマシン−動作状態出力部の間のインタフェースを含むステートマシン制御方式と、そのようなステートマシン制御方式に適合したステートマシンを提供することにある。
【００１０】
【課題を解決するための手段】
本発明のステートマシン制御方式は、現在の状態および状態遷移規則が確定した状態において状態遷移処理を実行する通常動作と通常動作を行なうために必要な情報を設定する保守動作との双方を実行可能であって状態遷移処理を行うステートマシンに対する、ステートマシン制御方式であって、ステートマシンに対して状態遷移要因を設定し、ステートマシンに対して起動要求を発行する起動制御部を有し、保守動作を行なう状態における制御要求を含む保守動作を行う要求を保守制御要因として、起動制御部がステートマシンに対して設定する入力要因において、ステートマシンに対する保守制御要因が状態遷移要因の一部として規定されている。
【００１１】
本発明のステートマシンは、現在の状態および状態遷移規則が確定した状態において状態遷移処理を実行する通常動作と通常動作を行なうために必要な情報を設定する保守動作との双方を実行可能であって状態遷移処理を行うステートマシンであって、外部から入力される入力要因が格納される入力要因格納部と、外部から入力される起動要求に応じて起動し、入力要因にしたがって状態遷移処理を実行する状態遷移処理部と、を有し、保守動作を行なう状態における制御要求を含む保守動作を行う要求を保守制御要因として、入力要因は遷移要因と保守制御要因とを含み、保守制御要因が状態遷移処理の要因の一部として扱われる。
【００１２】
【発明の実施の形態】
次に、本発明の好ましい実施の形態について、図面を参照して説明する。図１は本発明の実施の一形態のステートマシン制御方式の構成を示すブロック図である。ここでは、ステートマシンを定周期に起動する場合に適合した制御方式を説明する。
【００１３】
図１において、制御対象となるステートマシン１は、起動制御部２および動作状態出力部３に接続されている。そしてこのステートマシン１は、起動制御部２によって入力要因が設定される入力要因格納部１１と、起動制御部２によって状態情報および動作モード情報からなる設定情報が設定される設定情報格納部１２と、ステートマシンとしての状態遷移処理を実行する状態遷移処理部１３と、状態遷移処理部１３により状態遷移処理後の状態結果が書き込まれる処理結果格納部１４とを備えている。ここで入力要因とは、通常状態における状態遷移処理で使用する遷移要因と、保守動作を行う要求との両方を指す。すなわちこのステートマシン制御方式では、保守動作を行う要求（保守状態における制御要求を含む）を保守制御要因とし、この保守制御要因を状態遷移要因の一部として定義する。保守制御要因は、他の遷移要因と混在して設定することが可能である。
【００１４】
さらに、このステートマシン制御方式においては、起動制御部２は、ステートマシン１の状態遷移処理部１３に対して起動要求を発行するとともに、状態遷移処理部１３からステータスを読み出せるようになっている。状態遷移処理部１３は、起動制御部２からの起動要求によって起動され、入力要因にしたがって状態遷移処理または保守動作処理を実行し、処理結果格納部１４に書き込むデータ（状態結果）が前回値と異なる場合には、動作状態出力部３に対して状態変化通知を発行する。ただし後述するように、状態遷移処理部１３は、保守制御要因として保守制御要求が設定されている場合には、それにしたがって動作する。また起動要求において、通常動作を行なう場合のステートマシン起動トリガと保守動作を行なう場合のステートマシン起動トリガは同一とする。
【００１５】
ここで、本実施の形態における保守制御要因について説明する。本実施の形態では、ステートマシン１に設定される保守制御要因として、ＮＯＰ，ＳＯＰ１，ＳＯＰ２，ＳＯＰ３の４種類の保守動作処理の実施要求を定義する。ステートマシン１は、このような保守制御要因にしたがって動作する。
【００１６】
ＮＯＰは、状態遷移処理部１３の内部状態を更新せず、かつ状態遷移処理後の状態結果を出力しない機能である。このようなＮＯＰが必要となる状況は、動作モードが確定していない時（初期立ち上げ時、動作モード変更時）などである。
【００１７】
ＳＯＰ１は、ステートマシン１が指定する状態から状態遷移処理を実行する機能である。このようなＳＯＰ１が必要となる状況は、運用中のステートマシン１をリセットする場合にリセット前後で状態が変化しないようにする場合、あるいは、状態を初期化する場合である。
【００１８】
ＳＯＰ２は、状態遷移処理を停止する機能である。このようなＳＯＰ２が必要となる状況は、状態遷移処理は起動するが実質的に状態遷移処理を行なわないようにする場合である。
【００１９】
ＳＯＰ３は、状態遷移処理の結果に関係なく状態結果を出力する機能である。このようなＳＯＰ３が必要となる状況は、動作モード変更後の最初の状態遷移処理後、または動作状態出力部３が初期化された場合である。
【００２０】
次に、このステートマシン制御方式の動作を説明する。
【００２１】
起動制御部２は、ステートマシン１の状態遷移処理部１３から定周期でステータスを読み出し、状態遷移処理が実行可能な状態かどうかを識別する。状態遷移処理が実行可能な状態であれば、起動制御部２は、入力要因および設定情報を設定し、起動要求によってステートマシン１の状態遷移処理を起動する。ステータスの読み出し周期をステートマシン１の状態遷移処理に対して十分長く設定すれば、ステートマシン１を定周期で起動することと同値になる。
【００２２】
ステートマシン１は、起動制御部２からの起動要求を受けて、状態遷移処理を開始する。このとき、ステートマシン１の状態遷移処理部１３は、起動制御部２からの起動要求を受けて入力要因格納部１１および設定情報格納部１２の情報を参照し、状態遷移処理を実行する。そして状態遷移処理部１３は、状態遷移処理後の状態結果を処理結果格納部１４に書き込む。ここで、処理結果格納部１４に書き込むデータが前回値と異なる場合には、状態遷移処理部１３は、動作状態出力部３に対し、状態変化通知を発行する。ただし、状態遷移処理部１３は、入力要因格納部１１に保守制御要因として保守制御要求が設定されている場合には、それにしたがって動作する。動作状態出力部３は、状態変化通知を受けてステートマシン１の処理結果格納部１４より結果出力を読み出し、自ブロック（動作状態出力部３）での処理を実施する。
【００２３】
このようなステートマシン制御方式の処理の流れを図示したものが図２である。以下では、図２に示した［１］から［１２］のステップでの処理について、図１を参照しながら説明する。
【００２４】
まず、ステップ［１］において、起動制御部２は、ステートマシン１の状態遷移処理部１３の動作ステータスを読み出す。読み出したステータスが“アイドル(IDLE)状態（＝状態遷移処理完了状態）”である場合に、以降の処理が行なわれる。ステータスの読み出しは定周期で実行する。次に起動制御部２は、ステップ［２］において、設定情報格納部１２に設定情報を設定し、ステップ［３］において、入力要因格納部１１に入力要因を設定する。なお、入力要因は、保守制御要因を包含する。その後、ステップ［４］において起動制御部２は、状態遷移処理部１３に対して起動要求として状態遷移処理開始要求を発行する。
【００２５】
ステップ［４］の状態遷移処理開始要求により、ステップ［５］において状態遷移処理部１３は、自身（状態遷移処理部１３）の動作ステータスを“ビジー(BUSY)”に更新する。そして、状態遷移処理部１３は、ステップ［６］において入力要因格納部１１から入力要因を読み出し、ステップ［７］において設定情報格納部１２から設定情報を読み出し、その後、ステップ［８］において、入力要因として設定されている要求（遷移要因または保守制御要因）にしたがい動作を行なう。ここで入力要因が遷移要因であれば、従来の場合と同様に状態遷移処理が行われる。また、入力要因が保守制御要因であれば、この実施の形態では状態遷移処理の一部とみなされる保守動作処理が実行される。
【００２６】
上述したように保守制御要因としてはＮＯＰ，ＳＯＰ１，ＳＯＰ２，ＳＯＰ３が定義されているが、ここでの保守動作処理において、これらは以下の形で実現される。
【００２７】
ＮＯＰが設定されたステートマシン１は、状態遷移処理で使用する各設定値の読み出しを行なわず、内部状態を更新せず、以下に述べるステップ［９］，［１０］の出力を行なわない。
【００２８】
ＳＯＰ１が設定されたステートマシン１は、ステップ［７］で読み込まれた設定情報中の状態情報と現在の入力要因から次状態を決定する。
【００２９】
ＳＯＰ２が設定されたステートマシン１は、入力要因中の遷移要因のマスクを行う。
【００３０】
ＳＯＰ３が設定されたステートマシン１は、後述のステップ［１０］で発行する状態変化通知を、状態結果の変化の有無に関係なく発行する。
【００３１】
ステップ［８］での状態遷移処理（保守動作処理を含む）が終了すると、ステップ［９］において、状態遷移処理部１３は、状態遷移処理後の状態結果を処理結果格納部１４に出力する。そしてステップ［１０］において、ステップ［９］の状態結果が前回の状態結果と異なる場合に、状態遷移処理部１３は、動作状態出力部３に対して状態変化通知を発行する。ただし、上述したように、ＳＯＰ３が設定されている場合には、状態結果の変化の有無に関係なく状態変化通知を発行する。
【００３２】
動作状態出力部３は、ステップ［１１］において、状態変化通知を受信したとき、処理結果格納部１４をリードし、結果出力を取得する。その後、ステップ［１２］において、状態遷移処理部１３は、状態遷移処理部１３自身の動作ステータスを“アイドル（＝状態遷移処理完了）”に更新する。起動制御部２が定周期で状態遷移処理部１３の動作ステータスを読み込んでいるとすれば、動作ステータスが“アイドル”となったことにより、上述のステップ［２］〜［１２］の処理を繰り返して行うことが可能になる。
【００３３】
このステートマシン制御方式では、このように保守制御を実現することで保守動作自体を状態遷移処理の一部とみなすことができるようになる。その結果、保守制御要因が状態遷移要因の一部として定義されるので、ステートマシンの入力インタフェースが簡略化できるようになり、通常動作と保守動作の起動制御が統合されるため、両者の動作制御間の調停が不要となって、起動制御部２のステートマシン起動制御が単純になる。また、保守動作処理や保守制御を全て状態遷移処理部１３が行う構成となっているので、動作状態出力部３は、ステートマシン１がどのような状態（通常状態または保守状態）であるかを認識する必要がなくなり、制御情報の局在化による系の簡素化が達成される。
【００３４】
さらに、保守制御処理が通常処理の状態遷移処理の過程に対する次の処理として実現可能なため、状態遷移処理部１３は常に状態遷移処理に準じた動作を実施すればよく、通常状態であるか保守状態であるかを意識する必要がなくなる。具体的には、ＳＯＰ１，ＳＯＰ２は、設定データ、処理データの置き換えとして実現され、ＮＯＰは特定処理の非実行として実現され、ＳＯＰ３は特定処理の強制実行として実現される。このようにして、このステートマシン制御方式によれば、ステートマシン１内の状態遷移処理部１３の動作が単純になる。
【００３５】
次に、本発明の別の実施の形態について説明する。
【００３６】
本発明のステートマシン制御方式は、複数のステートマシンを並列に制御する系にも適用できるものである。ここで、複数のステートマシンを並列に制御する系において、(1)複数のステートマシンを一つの起動制御部が監視制御すること、および(2)各ステートマシンに対する保守動作が他のステートマシンの動作に影響しないこと、の２つの条件が要求される場合を考える。
【００３７】
本発明を応用することで、以下に示す単純な制御アルゴリズムによって、上記の要求を満足し、加えて状態遷移処理部を各ステートマシンで共用化することが可能となる。
【００３８】
［制御アルゴリズム］
１．起動制御部は、一つの起動要求で全てのステートマシンに対する起動要求とする。
【００３９】
２．ステートマシン群のステータスを定周期で読み出し、状態遷移処理が実行可能な状態であれば、状態遷移処理を起動する。
【００４０】
図３は、Ｎ個のステートマシンを制御するステートマシン制御方式のブロック図である。図３において、Ｎ個のステートマシンに対応するステートマシン群３１は、起動制御部３２および動作状態出力部３３と接続されている。このステートマシン群３１は、論理的にはＮ個のステートマシンとして機能するが、物理的には１個の装置（ステートマシン）として構築されるものである。ステートマシン群３１は、その内部に、各ステートマシンの入力要因（状態遷移要因および保守制御要因）を格納する入力要因格納部４１と、各ステートマシンに個別に設定されるべき設定情報（状態情報および動作モード情報）を格納する個別設定格納部４２と、全ステートマシンで共通する設定情報を格納する共通設定格納部４３と、各ステートマシンで共用される状態遷移処理部４４と、処理結果格納部４５とを備えている。処理結果格納部４５は、各ステートマシンごとの出力情報として、前回値からの状態結果の変化の有無を示す状態変化フラグと、状態遷移処理による結果出力を格納する。また、状態遷移処理部４３の動作ステータスは、共通設定格納部４３に保持される。
【００４１】
このステートマシン制御方式においては、起動制御部３２は、各ステートマシンごとの入力要因を入力要因格納部４１に設定し、ステートマシンごとの個別設定情報を個別設定格納部４２に設定し、全ステートマシンで共通する設定情報を共通設定格納部４３に設定し、状態遷移処理部４４に対して起動要求を発行するとともに、状態遷移処理部４４の動作ステータスを共通設定格納部４３から読み出せるようになっている。
【００４２】
図において、入力要因格納部４１における「入力要因（１）」、「入力要因（Ｎ）」は、それぞれ、Ｎ個の論理的なステートマシンのうちの１番目、Ｎ番目のステートマシンに対する入力要因が格納されることを示している。個別設定格納部４２における「個別設定（１）」も、１番目のステートマシンに対して個別設定されるべき設定情報を示している。処理結果格納部４５についても同様に、「結果出力（１）」、「状態変化フラグ（１）」もそれぞれ１番目のステートマシンに対する結果出力と、その結果出力において前回値から変化があるかどうかを示す状態変化フラグである。
【００４３】
このステートマシン群３１では、状態遷移処理部４４は、各論理的なステートマシンとしての状態遷移処理を時分割態様で実行する。すなわち、入力要因（１）と個別設定（１）を読み込んで、１番目のステートマシンとしての状態遷移処理を実行して結果出力（１）（および状態変化フラグ（１））として出力し、次に、入力要因（２）と個別設定（２）を読み込んで、２番目のステートマシンとしての状態遷移処理を実行して結果出力（２）（および状態変化フラグ（２））として出力し、といった処理を各ステートマシンに対して順番に実行する。論理的なステートマシンとしての具体的な処理は、上述した図１及び図２に示したものとほぼ同様である。
【００４４】
図４は、図３に示すステートマシン制御方式において、ステートマシン（２）については、保守制御処理（ＮＯＰ）を設定し、他のステートマシンについては、通常処理を設定したとしたときの状態遷移処理の実行を示すフロー図である。ここでは、起動制御部３２は、一度に全てのステートマシンに入力要因を設定し、また、状態遷移処理起動前の個別設定情報設定を省略するものとしている。図４に示す処理は、基本的には図２に示した処理と同様に進行するが、状態遷移処理部４４は各ステートマシンの入力要因（および個別設定情報）を順次処理するようになっている点で相違する。ここに示す例の場合、ステートマシン（２）は、保守制御要因（ＮＯＰ）によって内部状態を更新せず、かつ状態結果を出力しないので、個別設定情報の値が不定であってもステートマシンの状態遷移および状態結果は保持される。このため、起動制御部３２は、図４において★が付された処理に示されるように、状態遷移処理部４４の動作とは独立してステートマシン（２）の個別設定情報にアクセス可能することが可能である。
【００４５】
【発明の効果】
以上説明したように本発明は、保守制御要因を状態遷移要因の一部として定義することにより、ステートマシンの入力インタフェースが簡略化され、また、通常動作と保守動作の起動制御が統合されることとなって起動制御部でのステートマシン起動制御が単純になり、通常状態であるか保守状態であるかを意識する必要がなくなって状態遷移処理部の動作が単純になり、保守動作処理が全て状態遷移処理部で行われることとなって、制御情報の局在化による系の簡素化が達成できる、という効果がある。
【図面の簡単な説明】
【図１】本発明の実施の一形態のステートマシン制御方式を説明するブロック図である。
【図２】図１に示したステートマシン制御方式の処理を説明するフロー図である。
【図３】本発明の別の実施の形態のステートマシン制御方式を説明するブロック図である。
【図４】図３に示したステートマシン制御方式の処理を説明するフロー図である。
【図５】従来のステートマシン制御方式を説明するブロック図である。
【符号の説明】
１，５１    ステートマシン
２，３２，５２    起動制御部
３，３３，５３    動作状態出力部
１１，４１    入力要因格納部
１２    設定情報格納部
１３，４４，６２    状態遷移処理部
１４，４５，６３    処理結果格納部
３１    ステートマシン群
４２    個別設定格納部
４３    共通設定格納部
６１    遷移要因格納部
【図１】
0004535663.tif 000002
【図２】
0004535663.tif 000003
【図３】
0004535663.tif 000004
【図４】
0004535663.tif 000005
【図５】
0004535663.tif 000006