(57)【要約】【課題】  機械的機構部の動作を電子回路および制御プログラムにより制御して目的の機能を実現する電子・機構複合装置に関し、制御プログラムの不当動作防止技術に関する。【解決手段】  電子・機構複合装置において、コマンドレジスタの値とセンスレジスタの値の組み合わせの内、禁止されるパターンを保持する禁止パターンメモリ部と、コマンドレジスタおよびセンスレジスタの値のパターンと、禁止パターンメモリ部に保持されたパターンとを比較し、一致するパターンが存在するとき禁止操作検出信号を出力するパターン比較部と、パターン比較部が禁止操作検出信号を示すとき、駆動回路を不活性化する駆動禁止手段とを設ける。【選択図】図１
2008140010.tif 000002
【特許請求の範囲】
【請求項１】
機構部と、機構部を駆動する駆動回路と、駆動回路に指示を与えるコマンドレジスタと、機構部／駆動回路の状態を示すセンスレジスタと、プロセッサとプログラムを保持するメモリとを有する主制御部とにより、センスレジスタの値を検知しつつ、コマンドレジスタの値をプログラム制御することにより機構部を制御して、所定の機能を実現する電子・機構複合装置であって、
コマンドレジスタの値とセンスレジスタの値の組み合わせの内、禁止されるパターンを保持する禁止パターンメモリ部と、
コマンドレジスタおよびセンスレジスタの値のパターンと、禁止パターンメモリ部に保持された禁止パターンとを比較し、一致するパターンが存在するとき禁止操作検出信号を出力するパターン比較部と、
パターン比較部が禁止操作検出信号を示すとき、駆動回路を不活性化する駆動禁止手段と
を有することを特徴とする電子・機構複合装置。
【請求項２】
請求項１に記載の電子・機構複合装置であって、
パターン比較部が禁止操作検出信号を示すとき、その禁止パターンに対応する禁止操作コードをプロセッサから読み出し可能なステータスレジスタに書き込み、プロセッサに割り込みをかける禁止操作警告部と、
禁止操作検出によって割り込みがかかったとき、ステータスレジスタから禁止操作コードを読み出し、割り込みの戻り先アドレスと併せて表示するエラー報告手段と
を有することを特徴とする電子・機構複合装置。
【請求項３】
機構部と、機構部を駆動する駆動回路と、駆動回路に指示を与えるコマンドレジスタと、機構部／駆動回路の状態を示すセンスレジスタと、プロセッサとプログラムを保持するメモリとを有し、センスレジスタの値を検知しつつ、コマンドレジスタの値をプログラム制御することにより機構部を制御して、規定された機能を実現する電子・機構複合装置であって、
コマンドレジスタの値とセンスレジスタの値の組み合わせの内、禁止されるパターンを保持する禁止パターンメモリ部と、
コマンドレジスタおよびセンスレジスタのパターンと、禁止パターンメモリ部に保持された禁止パターンとを比較し、一致するパターンが存在するとき禁止操作検出信号を出力するパターン比較部と、
パターン比較部が禁止操作検出信号を示すとき、その禁止パターンに対応する禁止操作コードを、プロセッサから読み出し可能なステータスレジスタに書き込み、プロセッサに割り込みをかける禁止操作警告部と、
禁止操作検出によって割り込みがかかったとき、ステータスレジスタから禁止操作コードを読み出し、割り込みの戻り先アドレスと併せて表示し、かつ駆動回路を不活性化する駆動禁止手段を動作させて駆動回路を不活性化するエラー報告手段と
を有することを特徴とする電子・機構複合装置。
【請求項４】
請求項１ないし請求項３に記載の電子・機構複合装置であって、
禁止パターンメモリ部は対になった禁止パターンを保持しており、
パターン比較部は第一の禁止パターンと一致することを検出したとき、それをセンスレジスタの所定のフラグ部に記憶しておき、第二の禁止パターンと一致するかを比較して一致するパターンが存在するとき禁止操作検出信号を出力する
ことを特徴とする電子・機構複合装置。
【請求項５】
請求項１ないし請求項４に記載の電子・機構複合装置であって、
禁止パターンメモリ部は主制御部から書き込み可能に構成したものである
ことを特徴とする電子・機構複合装置。
【請求項６】
機構部と、機構部を駆動する駆動回路と、駆動回路に指示を与えるコマンドレジスタと、機構部／駆動回路の状態を示すセンスレジスタと、プロセッサとプログラムを保持するメモリとを有する主制御部とにより、センスレジスタの値を検知しつつ、コマンドレジスタの値をプログラム制御することにより機構部を制御して、所定の機能を実現する電子・機構複合装置であって、
コマンドレジスタに書き込みが行われると割り込みを起こす割り込み手段と、
前記メモリにコマンドレジスタの値とセンスレジスタの値の組み合わせの内、禁止されるパターンを保持する禁止パターン領域と、
コマンドレジスタおよびセンスレジスタの値のパターンと、禁止パターン領域に保持された禁止パターンとを比較し、一致するパターンが存在するとき禁止操作検出信号を出力するパターン比較手段と、
パターン比較部が禁止操作検出信号を示すとき、コマンドレジスタを不活性化する駆動禁止手段と
を有することを特徴とする電子・機構複合装置。
【発明の詳細な説明】
【技術分野】
【０００１】
機械的機構部の動作を電子回路および制御プログラムにより制御して目的の機能を実現する電子・機構複合装置に関し、制御プログラムの不当動作防止技術に関する。
【背景技術】
【０００２】
機械的機構部の動作を電子回路および制御プログラムにより制御することは、プリンタ、磁気ディスク装置など多くの入出力装置で行われている。
【０００３】
近年では、制御内容、機能が高度化し、かつ制御回路に使用するプロセッサが高機能となり制御プログラムも高度に複雑化している。そのため制御プログラムを構成する要素として、OS、ドライバソフト、アプリケーション等、プログラムがモジュール化しており、多様な製品に使用可能で汎用性がある反面、開発者にとっては制御内容の詳細が不明になってきている。
【０００４】
例えば、テープライブラリ装置においては、磁気テープ媒体を棚からドライブへ、ドライブから棚へ搬送する搬送ロボットの機構部があり、複数のモータやソレノイド等を制御することによって、搬送機構部を制御している。また、その他の電子回路や機構を含めて装置全体の制御を制御プログラムが司る。
【０００５】
装置の制御プログラムのバグが原因で、特に開発段階では、モータやソレノイド等の異常動作が起きることがある。従来の保護方式では、機構部の駆動回路の異常電流や、温度上昇を検出する等により遮断したり、ヒューズによるなどの手段が取られた。この場合でも機構部にストレスがかかるし、最悪の場合、機構部が壊れるまで止めることができない。また、異常発生時に、装置としてのエラーコード等を表示するに留まるため、プログラムのバグに原因あることに辿り着くまでに時間を要する。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
装置異常が発生した場合、その原因が回路等のハードウエアの不具合によるものか、制御プログラムの不具合によるものかの切り分け、さらに制御プログラムのどこが問題があるかの切り分けが重要であるが、装置の機能の規模に比例して制御プログラムも複雑化しており不具合の原因究明が困難になっている。
【０００７】
プログラム動作が正常でないことを検出して、駆動回路を強制的に遮断する技術が特許文献１に開示されている。
【特許文献１】特開昭62-151901号公報  しかし、ここで問題にしているプログラムの動作異常の検出は、プログラムの暴走状態を検出するものであり、そこに到達する以前にどのような制御指示を出したかわからないため、やはり機構部にストレスがかかるおそれがある。
【課題を解決するための手段】
【０００８】
機構部と、機構部を駆動する駆動回路と、駆動回路に指示を与えるコマンドレジスタと、機構部／駆動回路の状態を示すセンスレジスタと、プロセッサとプログラムを保持するメモリよりなる主制御部とを有し、センスレジスタの値を検知しつつ、コマンドレジスタの値をプログラム制御することにより機構部を制御して、所定の機能を実現する電子・機構複合装置において、
コマンドレジスタの値とセンスレジスタの値の組み合わせの内、禁止されるパターンを保持する禁止パターンメモリ部と、
コマンドレジスタおよびセンスレジスタの値のパターンと、禁止パターンメモリ部に保持されたパターンとを比較し、一致するパターンが存在するとき禁止操作検出信号を出力するパターン比較部と、
パターン比較部が禁止操作検出信号を示すとき、駆動回路を不活性化する駆動禁止手段とを設ける。
【０００９】
ここで、コマンドレジスタはビット対応あるいは複数のビットの組み合わせにより機構部のいずれかに動作指示を与えるものであり、通常はフリップフロップ等のメモリ素子で構成されるが、必ずしもメモリ素子である必要はない。センスレジスタは機構部等からフィードバックされる信号そのもの、あるいはその組み合わせであることが多く、必ずしもメモリ素子は存在しない。プログラム制御部からレジスタの形で読み書きできるように構成されていればよい。
【００１０】
例えば、複数のモータあるいはソレノイドが同時に動作してはいけない場合に、その指示（禁止操作）が出されても、実際に動作する前に、あるいは早い段階で抑えることができる。
【００１１】
さらに、パターン比較部が禁止操作検出信号を示すとき、その禁止パターンに対応する禁止操作コードをプロセッサから読み出し可能なステータスレジスタに書き込み、プロセッサに割り込みをかける禁止操作検出部と、
禁止操作検出割り込みによって割り込みがかかったとき、ステータスレジスタを読み出し、禁止操作コードと割り込みの戻り先アドレスとを不揮発メモリに格納するエラー報告手段とを設ける。
【００１２】
これにより、どのプログラムにより、どのような指示が出されたかを容易に突き止めることができる。
【００１３】
また、駆動回路を不活性化する駆動禁止手段としては、禁止操作検出信号によりハードウエア回路で直接駆動回路を不活性にする構成にすることもできるが、禁止操作検出割り込みによって割り込みがかかったとき、ステータスレジスタを読み出し、禁止操作コードと割り込みの戻り先アドレスとを不揮発メモリに格納するとともに、駆動回路を不活性化するように構成することもできる。
【００１４】
さらに、禁止パターンメモリ部は対になった禁止パターンを保持しており、
パターン比較部は第一の禁止パターンと一致することを検出したとき、それをセンスレジスタのフラグ部に記憶しておき（この段階では問題ない）、（そのフラグ部を含む）第二の禁止パターンと一致するかを比較して一致するパターンが存在するとき禁止操作検出信号を出力する。このように構成することにより、時間的に異なるタイミングで出された、より複雑な禁止操作に対応することが可能になる。
【００１５】
禁止パターンメモリ部は主制御部から書き込み可能に構成しておけば、禁止パターンを自由に追加変更可能になり、デバッグ時に有効である。
【００１６】
さらに、禁止パターンは制御プログラムを収めるメモリ内の領域に置き、コマンドレジスタに書き込みが行われると割り込みを起こす構成とし、この割り込み処理において、プログラム処理でパターン比較部以降の機能を処理することもできる。
【発明の効果】
【００１７】
禁止されるべき操作指示は、駆動回路を動作させない、または早めに抑止することにより機構部を動かす前に無効化される。従って、機構部にストレスをかけることを避けることができる。また、どのプログラムアドレスでどのような不当処理を実行したかを容易に検出することが出来るため、装置開発段階や製品出荷以降のプログラムのバグの原因究明が早期可能となる。
【００１８】
また、装置エラーが発生した場合に、不揮発メモリにコードと戻り先のプログラムアドレスの情報が格納されていない場合は、制御プログラムのバグによるエラーでない可能性が高いことが容易に判断でき、エラー原因の切り分けが容易になる。
【００１９】
検出パターンをプログラムで設定できる構成とすることにより、容易に検出パターンを追加することが可能となり、デバッグ過渡期の原因調査を容易にすることが可能となる。
【発明を実施するための最良の形態】
【００２０】
（実施例１）
テープライブラリ装置の構成を図１に示す。
【００２１】
装置は、主制御部10と、I/O制御回路41と、機構部51（１〜n）と、I/O制御回路41を制御するためのコマンドレジスタ21、センスレジスタ22と、禁止操作検出部30とを有する。主制御部10は主としてメモリ12とCPU11（プロセッサ）とからなり、コマンドレジスタ21とセンスレジスタ22を操作してI/O制御回路41に指示を与え、機構部51（１〜n）を動作させる。この他にコマンドレジスタ21、センスレジスタ22と同格の制御用レジスタが存在するが、ここでは言及しない。また、簡単のため、コマンドレジスタ21、センスレジスタ22は各１つとするが、一体にしたレジスタとすることもできるし、これらを複数設けてもよいことは当然である。
【００２２】
禁止操作検出部30は、禁止パターンを複数保持する禁止パターンメモリ34、禁止パターンメモリ34の内容とコマンドレジスタ21およびセンスレジスタ22の内容と比較し、禁止操作に当てはまるパターンを検出するパターン比較部31、禁止パターンが検出されると、そのコマンド操作の実行を抑止するか不活性化する駆動禁止手段33とを有する。禁止操作検出部30は、コマンドレジスタ21とセンスレジスタ22の各ビットの値の条件により、I/O制御回路側の回路故障または機構部の故障となる禁止操作の状態を検出する。また、禁止操作に対応するコード（エラーコード）を、所定のレジスタ（ステータスレジスタ24）に書き込み、割り込み信号を発生させる禁止操作警告部32を有する。
【００２３】
この禁止操作割り込みを受信した主制御部のCPU11は、割り込み処理ルーチンr3の中で、ステータスレジスタ24に格納されたコードと割り込み処理後の戻り先のプログラムアドレスをメモリ12に格納し、装置の制御処理を中止し、エラー報告する。なお、エラーコードと割り込み処理後の戻り先のプログラムアドレスは不揮発メモリ13に格納すればより有効である。
【００２４】
図２に概略の処理フローを示す。
【００２５】
モータ制御ルーチンr1がモータへ正転駆動を指示したとき、禁止操作検出部が禁止パターンとして検出した場合、割り込みを発生させる。OS r2は割り込み処理ルーチンを起動する。
【００２６】
割り込み処理ルーチンr3は、ステータスレジスタ24に格納されたエラーコードと、プログラムカウンタ値（戻り先のプログラムアドレス）とを、所定のメモリ位置に書き込んで、パネル等に所定のエラー表示をして終了、あるいは継続する。別途、格納されたエラーコードと、プログラムカウンタ値とから解析して、わかり易く表示するエラー報告ルーチンr4により、操作者に知らせることができる。また、解析ルーチンr5により、エラーログを解析し、エラーの原因をより詳しく分かりやすく報告するようにすることもできる。
【００２７】
禁止操作の実行を抑止あるいは阻止するには、モータやソレノイドへの駆動信号を阻止するようにするか、より直接的にモータ駆動用の電源を切断する。
【００２８】
図３にテープライブラリ装置の媒体搬送機構の構成を示す。
【００２９】
媒体搬送機構はドライブと媒体収納部（これらは図には表現していない）との間で媒体を受け渡しする。その内のハンド/スイブル機構部103は、上下動作（Y）、水平動作（Z）、回転動作（S）を順次行って指定された収納位置に達し、前後動作（P）で媒体を出し入れする。
【００３０】
例１  単純な例を説明する。上下動作（Y）、水平動作（Z）機構には位置を保持するソレノイドと位置を移動させるモータとがあり、それぞれI/O制御回路の駆動回路によって駆動される。位置を変えるときにはソレノイド駆動を解除しロックをはずしてからモータ駆動をしなければならない。
【００３１】
ここで、コマンドレジスタの２ビットで、00：モータ駆動オフ、01：モータ正転駆動、10：逆転駆動、11：ブレーキを指示し、他の１ビットでソレノイド駆動のオン、オフを指示するものとする。禁止パターンは、ソレノイド駆動オンで、モータ駆動が01：モータ正転駆動または10：逆転駆動の場合である。このパターンを検出した場合はその信号送出を阻止する。これは同時に矛盾する操作を指示する場合であり、あまり起こらないが、ソレノイド解除をしないまま、後でモータ駆動を行うような場合がある。プログラムをモジュール化して組み合わせるなどの場合に起き易い。これを検出するにはセンスレジスタにソレノイドの状態を表示するビットを設け、コマンドレジスタとセンスレジスタを併せた禁止パターンとすれば、より精密な禁止操作の検出ができる。
【００３２】
また、モータやソレノイドなどの異常状態をセンスレジスタに表示し、異常がある場合に駆動操作することを禁止するようにすることもできる。
【００３３】
例２
図４に禁止操作検出部の動作説明図を示す。具体例として、媒体搬送機構のＺモータ駆動禁止パターンを検出する例を説明する。
【００３４】
図４に示すように、各モータには回転量を示すエンコーダが付属し、I/O制御回路41に信号を送る。I/O制御回路41には、それをカウントして位置を表示するタコカウンタがある。この値が所定の範囲のときフラグ62をセットする。フラグはセンスレジスタ22としてまとめられる。
【００３５】
媒体搬送機構のＺモータを制御して水平位置を変える場合に行ってはならない操作指示、すなわちZ動作禁止操作のパターンを図５に示す。
【００３６】
例えばタコカウンタの値（タコ値）の動作範囲が0000〜9000であるとして、I/O制御回路41のフラグセット部62は、上下動作（Y）のタコ値が2001〜9000（媒体収納エリア）であるとき、Yフラグをセットする。回転動作（S）は、タコ値が0201〜3999、4201〜8799（０度、９０度、１８０度以外の状態）のとき、Sフラグをセットする。前後動作（P）は、1001〜9000（ハンドに媒体あり）、7000〜8799（ハンドに媒体なし）、のとき、Pフラグをセットする。
【００３７】
これらのフラグがオンであるセンスレジスタと、Zモータの操作を指示する指定があるコマンドレジスタとのパターンを禁止パターンとして禁止パターンメモリ23に登録しておく。禁止パターンは、各モータ（Ｙ、Ｓ，Ｐ、Ｚ）について、設けられるものとする。
【００３８】
なお、禁止パターンメモリ34は独立のメモリとして存在し、パターン比較部31もハードウエア回路として説明したが、これらはCPU11からアクセスできるメモリ12におき、禁止操作検出部3をプログラム（ファームウエア）として構成することも可能である。例えばデバッグモードのとき、コマンドレジスタ21への書き込みがあると割り込みを起こすように構成すればよい。
【図面の簡単な説明】
【００３９】
【図１】本発明の電子機構複合装置の構成
【図２】本発明処理フロー概略
【図３】テープライブラリ装置の搬送機構部構成
【図４】禁止操作検出部の動作説明図
【図５】Z動作禁止操作
【符号の説明】
【００４０】
10    主制御部 
11    CPU（プロセッサ）
12    メモリ
13    不揮発メモリ
14    充電制御回路
21    コマンドレジスタ
22    センスレジスタ
24    ステータスレジスタ
30    禁止操作検出部
31    パターン比較部
32    禁止操作警告部
33    駆動禁止手段
34    禁止パターンメモリ
41    I/O制御回路
51    機構部
61    モータ駆動回路
62    フラグセット部
【図１】
2008140010.tif 000003
【図２】
2008140010.tif 000004
【図３】
2008140010.tif 000005
【図４】
2008140010.tif 000006
【図５】
2008140010.tif 000007