本発明は、ハンドル操作に基づき鉄道用車両の運転制御を行う無接点主幹制御器及び無接点主幹制御器の故障検知方法に関する。
鉄道用車両(電車)は、運転手が操作を行って車両を制御するためのインターフェースとなる主幹制御器(master controller:マスコン)を運転台に搭載している。運転台は、列車編成の両先頭車両に存在する。主幹制御器は、運転手と列車のインターフェースとなる装置であり、運転手が操作する主ハンドルのノッチ位置により、ノッチ指令を出力する。この主幹制御器は、現在はワンハンドルマスコンが主流である。ワンハンドルマスコンは、1つの軸(棒)を前後させ、奥に行くほど制動力の強いブレーキノッチ、手前に行くほど加速力の強い力行ノッチとなる。運転手は、このハンドルを前後させることにより、手前に引いて加速指令を行い、中間位置で惰行指令、奥に押して制動指令を行う。
なお、ノッチ指令は、列車に対する制動、加速等の指令である。1例として、ブレーキ(制動)ノッチ8段、力行(加速)ノッチ4段等が一般的であり、数値が大きいノッチほど力が上となる。また、ブレーキノッチ0と力行ノッチ0の状態は、ユルメ(切)といい、加速も制動も行われずに惰行となる。
従来の有接点主幹制御器は、ハンドル位置を接点(スイッチ)のオン/オフを利用して検出するので、接点の状態がそのままノッチ指令となる。最近では、接点不良を回避する目的から、無接点主幹制御器が主流となり、当該無接点主幹制御器は、接点の代わりにセンサ(角度検出センサ:ハンドルは前後にスライド式に動くのではなく、扇状に円運動するため)を用いてハンドルの位置を検出し、検出した角度に基づきノッチを算出してノッチ指令信号に変換する。
近年の主幹制御器は、主ハンドルのノッチの角度を検出するセンサとして、アブソリュートロータリエンコーダを適用したものが多い。このロータリエンコーダは、対象とする回転軸の絶対角度を検出し、所定数のビットからなるバイナリコードやグレイコード等として出力するものであり、始動時等の電源投入の際にも原点からの角度を即時且つ正確に知ることができるという利点がある。
ロータリエンコーダから出力されるコードの誤りを検出する方法として、いくつかの方法が考えられる。例えば、ロータリエンコーダから出力されるコードに基づく検出角度を監視し、連続性が失われた場合に故障とする検出方法がある。運転手により操作された主ハンドルは、連続的に角度を変化させるので、故障の無い通常の状態において、所定時間内における角度変化量は所定値以下の値をとることとなる。これを利用して、ロータリエンコーダに接続された制御基板内のCPUは、ロータリエンコーダから出力されるコードに基づいて算出された検出角度を監視し、1msタイマー割込みにより更新されるエンコーダ値が前回値よりも一定範囲以上変化した状態が一定時間経過した場合に故障と判断する。なお、「一定時間経過」することを要件としているのは、ロータリエンコーダがたまたま何らかの不具合により誤った値をコードとして出力したとしても、その次に正しい値のコードを出力する場合には、問題無いためである。
また、ロータリエンコーダから出力されるコードに誤り検出符号であるパリティビットを付加して故障検出を行う方法もある。この方法を採用したロータリエンコーダは、検出した角度に対応する二進数のバイナリコードあるいはグレイコードに対して1ビットのパリティビットを付加したコードを生成し、コード中の「1」の総数が偶数あるいは奇数になるようにしたコードを出力する。ロータリエンコーダにより出力されたコードを復号する制御部を有したCPU等は、復号する際にパリティビットを含めた全体のビットが常に偶数あるいは奇数であるか否かをチェックすることにより故障検出を行う。
特許文献1には、アブソリュートロータリエンコーダを使用したシステムにおける異常検出を簡単、確実に行うことができるロータリエンコーダ及びロータリエンコーダシステムが記載されている。
このロータリエンコーダは、多トラック型アブソリュートパターンを有する回転板と、アブソリュートパターンを読み取る検出部と、検出部の出力の異常を検出するための誤り検出回路とを備える。
また、このロータリエンコーダは、検出部が、回転板の一方の側に設けられ回転板の径方向に一列に配置された複数個の発光素子と、回転板の他方の側に設けられ発光素子に対応するように回転板の径方向に一列に配置された複数個の受光素子と、回転板と発光素子の間に設けられ回転板の径方向に一列に配置された複数の孔を有するスリットとを含み、誤り検出回路が、検出部の出力を増幅するためのデータ出力部と、データ出力部の出力データに基づき誤り検出符号を生成する符号化部と、誤り検出符号に基づき出力データの誤りを検出し異常の有無信号を出力する復号化部とを含む。
このロータリエンコーダによれば、外部システムでの異常検出処理が簡素あるいは不要になるとともに、確実な異常検出を行うことができる。
特開平9−105646号公報
しかしながら、従来の主幹制御器は、ロータリエンコーダから出力されるバイナリコードやグレイコードに基づいて故障検知を行う際において、いずれかのビットに断線が生じた場合に、断線したビットによっては故障を検知しにくいという問題がある。
例えば、主幹制御器の主ハンドル軸とロータリエンコーダの回転軸の軸比が1:3であるとする。この場合には、主ハンドル軸が120度回転すると、ロータリエンコーダの回転軸が360度回転したことに相当する。図2は、8ビットのコードを使用した場合における従来のコードと対応する角度を示す表である。主幹制御器の主ハンドル軸とロータリエンコーダの回転軸との軸比を1:3に設定しているので、図2におけるエンコーダ角度は、主ハンドル角度の3倍となっている。
図2に示す例においては、主ハンドル角度が0度である場合にロータリエンコーダは、バイナリコード(あるいはグレイコード)として“00000000”を出力する。また、主ハンドルを操作して主ハンドルの角度が増えるにつれ、出力されるバイナリコードの値も増えていく。ここで図2は、8ビットを例にとっているので、エンコーダ角度の1周360度を256段階(256パルス)に分けて対応させた表となっている。したがって、エンコーダ角度が約1.4度増えるにつれ、バイナリコードの値が1つずつ増えていく。
上述したように、ロータリエンコーダから出力されるコードに対応する検出角度の連続性等をチェックすることにより、従来の主幹制御器は、いずれのビットが断線したとしても故障を検知することができる。しかしながら、図2に示すように、最上位ビットを変化させるには(すなわちバイナリコードで“01111111”から“10000000”に変化させるには)、運転手は、主ハンドル角度を60度(エンコーダ角度が180度)まで回転させる必要がある。ここで、最上位ビットに断線が生じているとすると、主ハンドルを60度まで回転させた際にバイナリコードは、“01111111”から“00000000”に変化するため、連続性のチェックにひっかかり最上位ビットの断線が判明する。これは、グレイコードの場合も同様であり、最上位ビットが0から1に変化するのは、主ハンドルの角度が60度のときである。
ここで、主ハンドルにおける60度の回転は、約10ノッチに相当する。したがって、従来の主幹制御器は、運転手が主ハンドルを10ノッチ分(60度)回転させてはじめて最上位ビットの断線が判明する。逆に言えば、運転手が主ハンドルを60度回転させないかぎり、最上位ビットにおける断線は判明しない。
この問題は、最上位ビットにかぎらず上位ビットのいずれに対しても生じる問題である。すなわち、バイナリコードあるいはグレイコードを使用する従来の主幹制御器のロータリエンコーダは、ある程度の角度、主ハンドルを回転させなければ出力するコードの上位のビットが変化せず、断線が生じていても故障を検出できないという問題点がある。
また、パリティビットは、出力されたコードに誤りが発生しているか否かを検出することができるが、いずれのビットが誤っているかを指摘できず、また上位ビットが変化しない限り誤りを検出できないため、上述した問題に対処することはできない。
本発明は上述した従来技術の問題点を解決するもので、主ハンドル角度のわずかな回転により、ロータリエンコーダから出力されるコードのいずれのビットも均一に故障を検知することができる無接点主幹制御器及び無接点主幹制御器の故障検知方法を提供することを課題とする。
本発明に係る無接点主幹制御器は、上記課題を解決するために、鉄道車両に搭載される無接点主幹制御器であって、所定ビットのバイナリコードを昇順に並べて値の小さな順に全体の2分の1までを取り出し、取り出された各コード間に1つ前のコードの全ビットを反転させたコードを埋め込むことにより生成した角度検出用コードを有するとともに、前記角度検出用コードに基づき主ハンドルの角度位置に応じた位置信号を生成するロータリエンコーダと、前記ロータリエンコーダにより生成された位置信号に基づき前記鉄道車両の駆動及び制動を制御するノッチ指令信号を生成する制御部とを備えることを特徴とする。
本発明によれば、いずれのビットも2パルス以内で変化する角度検出用コードを採用したロータリエンコーダ及び制御部を備えているので、主ハンドル角度を2パルス分回転させる間に、いずれのビットも均一に故障を検知することができる。
以下、本発明の無接点主幹制御器及び無接点主幹制御器の故障検知方法の実施の形態を、図面に基づいて詳細に説明する。
以下、本発明の実施例について図面を参照しながら説明する。図1は、本発明の実施例1の無接点主幹制御器の構成を示すブロック図である。本実施例において、無接点主幹制御器は、鉄道車両に搭載され、当該鉄道車両の制御を行う。
まず、本実施の形態の構成を説明する。本実施例の無接点主幹制御器は、図1に示すように、ロータリエンコーダ1、主ハンドル2、及び制御基板3により構成される。
主ハンドル2は、運転手の操作により前後に回動可能であり、その回転角度に応じて鉄道車両の加速や制動の指令となるノッチを指定する。
ロータリエンコーダ1は、主ハンドル1の絶対角度を検出するアブソリュートロータリエンコーダであり、所定ビットのバイナリコードを昇順に並べて値の小さな順に全体の2分の1までを取り出し、取り出された各コード間に1つ前のコードの全ビットを反転させたコードを埋め込むことにより生成した角度検出用コードを有するとともに、角度検出用コードに基づき主ハンドルの角度位置に応じた位置信号を生成する。
図2に示す「新コード」は、上述した方法により生成した角度検出用コードである。ここで新コードたる角度検出用コードは、8ビットであるため、8ビットのバイナリコードを昇順に並べて値の小さな順に全体の2分の1までを取り出し、取り出された各コード間に1つ前のコードの全ビットを反転させたコードを埋め込むことにより生成される。
昇順に並べられた8ビットのバイナリコードは、“00000000”から“11111111”までの256個のコードである。したがって、値の小さな順に全体の2分の1までを取り出したバイナリコードは、“00000000”から“01111111”までの128個のコードである。
取り出された各コード間に1つ前のコードの全ビットを反転させたコードを埋め込んだ角度検出用コードは、図2に示す新コードのようになる。例えば、“00000000”と“00000001”との間には、“00000000”の全ビットを反転させたコードである“11111111”が埋め込まれている。同様に、“00000001”と“00000010”との間には、“00000001”の全ビットを反転させたコードである“11111110”が埋め込まれている。以後、同様の方法により各コード間に1つ前のコードの全ビットを反転させたコードを埋め込み、最後に“01111111”の後に全ビットを反転させた“10000000”を埋め込んで角度検出用コードが完成する。
主ハンドル2の回転軸は、ロータリエンコーダ1の回転軸と機械的に接続されている。本実施例において、主ハンドル2の回転軸とロータリエンコーダ1の回転軸の軸比は、1:3であるものとする。
ロータリエンコーダ1は、上述した方法により生成した角度検出用コード(すなわち図2に示す新コード)と各コードに対応するエンコーダ角度とを図2に示すようなテーブルとして予め記憶しており、主ハンドル2を回転させることによりロータリエンコーダ1が回転すると、回転した角度位置に応じた角度検出用コードを位置信号として生成し出力する。この一連のロータリエンコーダ1における位置信号の生成手順は、無接点主幹制御器の故障検知方法における位置信号生成ステップに対応する。
例えば、主ハンドル2を0度から60度まで回転させると、ロータリエンコーダ1は、角度検出用コード“00000000”、“11111111”、“00000001”、“11111110”、…、“11000000”、“01000000”を位置信号として順番に出力する。
制御基板3は、本発明の制御部に対応し、図示しないCPUやメモリ等を有し、ロータリエンコーダ1により生成された位置信号に基づき鉄道車両の駆動及び制動を制御するノッチ指令信号を生成する。すなわち、制御基板3は、ロータリエンコーダ1と同様に、角度検出用コードと各コードに対応するエンコーダ角度(あるいは主ハンドル角度)とを図2に示すようなテーブルとして予め記憶しており、入力された位置信号に基づき主ハンドル2の角度を算出することにより、運転手の意図するノッチ指令信号を生成する。
なお、制御基板3は、ロータリエンコーダ1により出力されたストローブビットに基づき、ロータリエンコーダ1により生成され出力された位置信号をサンプリングする。ここで、ストローブビットとは、ロータリエンコーダ1により出力される位置信号が確定したことを示す信号である。ロータリエンコーダ1により出力される位置信号は、厳密に全てのビットが同時に変化するわけではない。したがって、制御基板3は、ストローブビットを監視することにより、ロータリエンコーダ1から出力される位置信号の各ビットを示す信号線の変化が確定したことを知ることができる。
また、制御基板3は、ロータリエンコーダ1により生成された位置信号に基づきロータリエンコーダ1の故障を検知する。この制御基板3における動作は、無接点主幹制御器の故障検知方法における故障検知ステップに対応する。
具体的には、制御基板3は、ロータリエンコーダ1により生成された位置信号の前回値と今回値とが互いに全ビット反転された値となっているか否かを判断するとともに、両値が互いに全ビット反転された値となっていない状態が連続して2回以上生じた場合にロータリエンコーダ1を故障したと判断する。
次に、上述のように構成された本実施の形態の作用を説明する。図3は、本実施例の形態の無接点主幹制御器の制御基板3の動作を示すフローチャート図である。まず、ロータリエンコーダ1は、主ハンドル1の絶対角度を検出し、角度検出用コードに基づき主ハンドルの角度位置に応じた位置信号を生成する。
制御基板3は、ロータリエンコーダ1により生成された位置信号に基づき鉄道車両の駆動及び制動を制御するノッチ指令信号を生成する。その際に、制御基板3は、ロータリエンコーダ1により生成された位置信号に基づきロータリエンコーダ1の故障を検知する。
ここで、運転手は、操作により主ハンドルの角度を50度から60度に回転させようとしているとする。今、主ハンドル2の角度が59.06度であるとすると、図2よりエンコーダ角度は177.18度であり、ロータリエンコーダ1は、位置信号として“00111111”を生成して出力する。
このロータリエンコーダ1の出力値である“00111111”は、制御基板3に「今回値」として入力される(ステップS101)。なお、主ハンドル2の角度が58.59度であったときにロータリエンコーダ1により出力された値“11000001”は、制御基板3に「前回値」として記憶されている。
次に、制御基板3は、前回値である“11000001”の全ビットを反転する(ステップS103)。ここで、反転された前回値は、“00111110”である。
次に、制御基板3は、ロータリエンコーダ1により生成された位置信号の前回値と今回値とが互いに全ビット反転された値となっているか否かを判断する(ステップS105)。制御基板3が有する今回値は、“00111111”である。一方、制御基板3により反転された前回値は、“00111110”である。両者を比較すると、最下位ビットが異なるため、制御基板3は、今回値と反転した前回値とは不一致であると判断する。
ここで、制御基板3は、1回目異常フラグがセットされているか否かを判断する(ステップS111)。1回目異常フラグが既にセットされている場合には、今回の不一致は2回目であるため、制御基板3は、ロータリエンコーダ1を故障したと判断する(ステップS113)。すなわち、制御基板3は、ロータリエンコーダ1により生成された位置信号の前回値と今回値とが互いに全ビット反転された値となっていない状態が連続して2回以上生じた場合にロータリエンコーダ1を故障したと判断する。ここで、2回連続とは、ロータリエンコーダ1による2パルス分を意味する。
ステップS111において、1回目異常フラグがセットされていない(リセット状態である)場合には、制御基板3は、今回の不一致を1回目の不一致であると判断し、1回目異常フラグをセットする(ステップS115)。
次に、制御基板3は、今回値である“00111111”を前回値として記憶する(ステップS117)。したがって、今まで前回値として記憶されていた“11000001”は、制御基板3により削除される。ここで一旦制御基板3の処理は終了する。その後、制御基板3は、新たな値が今回値として入力されないかぎり、図3に示すフローチャートの動作を行わない。したがって、主ハンドル2の角度が変わらず、前回値と同じ値をロータリエンコーダ1が出力したとしても、制御基板3は、動作しない。
その後、主ハンドル2の角度が59.53度まで回転されると、ロータリエンコーダ1は、位置信号として“11000000”を生成して出力する。
このロータリエンコーダ1の出力値である“11000000”は、制御基板3に「今回値」として入力される(ステップS101)。
次に、制御基板3は、前回値である“00111111”の全ビットを反転する(ステップS103)。ここで、反転された前回値は、“11000000”である。
次に、制御基板3は、ロータリエンコーダ1により生成された位置信号の前回値と今回値とが互いに全ビット反転された値となっているか否かを判断する(ステップS105)。制御基板3が有する今回値は、“11000000”である。一方、制御基板3により反転された前回値は、“11000000”である。両者を比較すると同一であるため、制御基板3は、今回値と反転した前回値とは一致すると判断する。
この場合に、制御基板3は、ロータリエンコーダ1を正常であると判断する(ステップS107)とともに、1回目異常フラグがセットされている場合には当該フラグをリセットする(ステップS109)。制御基板3は、主ハンドル角度が59.06度であったときに1回目異常フラグをセットしたので、当該フラグをリセットする。
次に、制御基板3は、今回値である“11000000”を前回値として記憶する(ステップS117)。したがって、今まで前回値として記憶されていた“00111111”は、制御基板3により削除される。
以下、主ハンドル2の角度が変わり、ロータリエンコーダ1により新しい位置信号が出力されるたびに、制御基板3は、図3に示すフローチャート図の動作を繰り返す。ロータリエンコーダ1から図2に示す新コードである角度検出用コードが位置信号として正しく出力されているかぎり、位置信号の前回値と今回値とが互いに全ビット反転された値となっていない状態が連続して2回以上生じることはない。
上述のとおり、本発明の実施例1の形態に係る無接点主幹制御器によれば、いずれのビットも2パルス以内で変化する角度検出用コードを採用したロータリエンコーダ及び制御部を備えているので、主ハンドル角度を2パルス分(約1度)回転させる間に、いずれのビットも均一に故障を検知することができる。
本発明による角度検出用コードを使用した場合、ロータリエンコーダ1により出力される角度検出用コードの位置信号は、当該位置信号の前回値と今回値とが互いに全ビット反転された値となっていない状態が連続して2回以上生じることはない。
言い換えれば、ロータリエンコーダ1により位置信号として出力される角度検出用コードは、2パルス以内に全ビットが必ず反転する。したがって、制御基板3は、2回以上連続して反転しないビットに対し、当該ビットの信号線の断線等による故障が生じていることを即座に発見することができる。
本発明は、ロータリエンコーダを使用する様々なアプリケーションに対して適用可能であるが、鉄道車両に用いられる主幹制御器のように、ロータリエンコーダの故障を早期に検知する必要があるアプリケーションに対しては特に有効である。鉄道車両における主幹制御器は、ノッチを1段階(約10パルス、主ハンドルの角度で約5度)切り換える間に故障を検知することが理想とされ、本発明は、2パルス以内の故障検知が可能だからである。
また、本実施例において、8ビットの角度検出用コードを例にとって説明したが、ロータリエンコーダ1により出力される位置信号は、必ずしも8ビットにかぎるものではなく、4ビット、12ビット、16ビット等の8ビット以外の信号であってもよい。その場合には、制御基板3は、当該所定ビットの角度検出用コードと各コードに対応するエンコーダ角度(あるいは主ハンドル角度)とをテーブルとして予め記憶した構成となる。
本発明の実施例2の無接点主幹制御器は、図1に示す実施例1の無接点主幹制御器の構成と同一の構成を有するため、重複した説明を省略する。ただし、本実施例の制御基板3は、ロータリエンコーダ1により生成された位置信号の今回値が当該位置信号のビット数で表せる最大値の2分の1以上であり且つ当該今回値と前回値とが互いに全ビット反転された値となっていない場合にロータリエンコーダ1を故障したと判断する。
次に、上述のように構成された本実施の形態の作用を説明する。図4は、本実施例の形態の無接点主幹制御器の制御基板3の動作を示すフローチャート図である。まず、ロータリエンコーダ1は、主ハンドル1の絶対角度を検出し、角度検出用コードに基づき主ハンドルの角度位置に応じた位置信号を生成する。
制御基板3は、ロータリエンコーダ1により生成された位置信号に基づき鉄道車両の駆動及び制動を制御するノッチ指令信号を生成する。その際に、制御基板3は、ロータリエンコーダ1により生成された位置信号に基づきロータリエンコーダ1の故障を検知する。
ここで、運転手は、操作により主ハンドルの角度を50度から60度に回転させようとしているとする。今、主ハンドル2の角度が59.06度であるとすると、図2よりエンコーダ角度は177.18度であり、ロータリエンコーダ1は、位置信号として“00111111”を生成して出力する。
このロータリエンコーダ1の出力値である“00111111”は、制御基板3に「今回値」として入力される(ステップS201)。なお、主ハンドル2の角度が58.59度であったときにロータリエンコーダ1により出力された値“11000001”は、制御基板3に「前回値」として記憶されている。
次に、制御基板3は、今回値である“00111111” が位置信号のビット数で表せる最大値の2分の1以上であるか否かを判断する(ステップS203)。本実施例において、位置信号のビット数は8ビットであるため、位置信号のビット数で表せる最大値は、“11111111”すなわち255である。255の2分の1は、127.5である。
今回値である“00111111”は、63であるため、制御基板3は、今回値である“00111111” が位置信号のビット数で表せる最大値の2分の1以上ではないと判断する。
次に、制御基板3は、今回値である“00111111”を前回値として記憶する(ステップS211)。したがって、今まで前回値として記憶されていた“11000001”は、制御基板3により削除される。
その後、主ハンドル2の角度が59.53度まで回転されると、ロータリエンコーダ1は、位置信号として“11000000”を生成して出力する。
このロータリエンコーダ1の出力値である“11000000”は、制御基板3に「今回値」として入力される(ステップS201)。
次に、制御基板3は、今回値である“11000000” が位置信号のビット数で表せる最大値の2分の1以上であるか否かを判断する(ステップS203)。今回値である“11000000”は、192であるため、制御基板3は、今回値である“11000000” が位置信号のビット数で表せる最大値の2分の1以上であると判断する。
次に、制御基板3は、前回値である“00111111”の全ビットを反転する(ステップS205)。ここで、反転された前回値は、“11000000”である。
次に、制御基板3は、ロータリエンコーダ1により生成された位置信号の前回値と今回値とが互いに全ビット反転された値となっているか否かを判断する(ステップS207)。制御基板3が有する今回値は、“11000000”である。一方、制御基板3により反転された前回値は、“11000000”である。両者を比較すると同一であるため、制御基板3は、今回値と反転した前回値とは一致すると判断する。
次に、制御基板3は、今回値である“11000000”を前回値として記憶する(ステップS211)。したがって、今まで前回値として記憶されていた“00111111”は、制御基板3により削除される。
以下、主ハンドル2の角度が変わり、ロータリエンコーダ1により新しい位置信号が出力されるたびに、制御基板3は、図4に示すフローチャート図の動作を繰り返す。
なお、ステップS207において、制御基板3が、ロータリエンコーダ1により生成された位置信号の前回値と今回値とが互いに全ビット反転された値となっていないと判断した場合には、制御基板3は、ロータリエンコーダ1を故障したと判断する(ステップS209)。すなわち、制御基板3は、ロータリエンコーダ1により生成された位置信号の今回値が当該位置信号のビット数で表せる最大値の2分の1以上であり且つ当該今回値と前回値とが互いに全ビット反転された値となっていない場合であると判断するからである。
本発明における角度検出用コードは、所定ビットのバイナリコードを昇順に並べて値の小さな順に全体の2分の1までを取り出し、取り出された各コード間に1つ前のコードの全ビットを反転させたコードを埋め込むことにより生成したものである。したがって、制御基板3により位置信号のビット数で表せる最大値の2分の1以上であると判断されたコード(位置信号)は、角度検出用コードを作成する段階において各コード間に埋め込まれた1つ前のコードの全ビットを反転させたコードである。
したがって、制御基板3は、ロータリエンコーダ1により生成された位置信号の今回値が当該位置信号のビット数で表せる最大値の2分の1以上であり且つ当該今回値と前回値とが互いに全ビット反転された値となっていない場合にロータリエンコーダ1を故障したと判断する。
上述のとおり、本発明の実施例2の形態に係る無接点主幹制御器によれば、実施例1と同様に、主ハンドル角度を2パルス分回転させる間に、いずれのビットも均一に故障を検知することができる。また、本実施例においては、実施例1のように2度の連続した位置信号の不一致を待つ必要が無く、制御基板3は、1度の不一致によりロータリエンコーダ1を故障したと判断することができる。
本発明の実施例3の無接点主幹制御器は、図1に示す実施例1,2の無接点主幹制御器の構成と同一の構成を有するため、重複した説明を省略する。ただし、本実施例の制御基板3は、ロータリエンコーダ1により生成された位置信号の前回値と今回値とをバイナリコードに変換して比較し、その差が所定値以上である場合にロータリエンコーダ1を故障したと判断する。
次に、上述のように構成された本実施の形態の作用を説明する。図5は、本実施例の形態の無接点主幹制御器の制御基板3の動作を示すフローチャート図である。まず、ロータリエンコーダ1は、主ハンドル1の絶対角度を検出し、角度検出用コードに基づき主ハンドルの角度位置に応じた位置信号を生成する。
制御基板3は、ロータリエンコーダ1により生成された位置信号に基づき鉄道車両の駆動及び制動を制御するノッチ指令信号を生成する。その際に、制御基板3は、ロータリエンコーダ1により生成された位置信号に基づきロータリエンコーダ1の故障を検知する。
ここで、運転手は、操作により主ハンドルの角度を50度から60度に回転させようとしているとする。今、主ハンドル2の角度が59.53度であるとすると、図2よりエンコーダ角度は178.59度であり、ロータリエンコーダ1は、位置信号として“11000000”を生成して出力する。
このロータリエンコーダ1の出力値である“11000000”は、制御基板3に「今回値」として入力される(ステップS301)。なお、主ハンドル2の角度が59.06度であったときにロータリエンコーダ1により出力された値“00111111”をバイナリコードに変換した値である“01111110”は、制御基板3に「前回値」として記憶されている。
次に、制御基板3は、今回値として入力された“11000000”をバイナリコードに変換する(ステップS303)。図2に示す表より、バイナリコードに変換された今回値は、“01111111”である。
次に、制御基板3は、バイナリコードの前回値である“01111110”とバイナリコードの今回値である“01111111”とを比較し、その差が所定値以上であるか否かを判断する(ステップS305)。本実施例において、制御基板3は、その差が4以上であるか否かを判断するものとする。
ここで、バイナリコードの前回値である“01111110”は、10進数に変換すると126である。一方、バイナリコードの今回値である“01111111”は、10進数に変換すると127である。したがって、制御基板3は、前回値と今回値との差が4以上ではない(一定範囲内である)と判断する。
次に、制御基板3は、バイナリコードの今回値である“01111111”を前回値として記憶する(ステップS309)。したがって、今まで前回値として記憶されていた“01111110”は、制御基板3により削除される。
仮に上から2番目のビットに対応する信号線の断線が生じていたと仮定すると、図5に示すフローチャート上では、以下に示すような流れとなる。上述した場合と同様に、運転手は、操作により主ハンドルの角度を50度から60度に回転させようとしているとする。今、主ハンドル2の角度が59.53度であるとすると、図2よりエンコーダ角度は178.59度であり、ロータリエンコーダ1は、位置信号として“11000000”を生成して出力しようとする。しかしながら、信号線断線の不具合により、ロータリエンコーダ1は、位置信号として“10000000”を生成して出力する。
このロータリエンコーダ1の出力値である“10000000”は、制御基板3に「今回値」として入力される(ステップS301)。なお、主ハンドル2の角度が59.06度であったときにロータリエンコーダ1により出力された値“00111111”をバイナリコードに変換した値である“01111110”は、制御基板3に「前回値」として記憶されている。
次に、制御基板3は、今回値として入力された“10000000”をバイナリコードに変換する(ステップS303)。図2に示す表より、バイナリコードに変換された今回値は、“11111111”である。
次に、制御基板3は、バイナリコードの前回値である“01111110”とバイナリコードの今回値である“11111111”とを比較し、その差が所定値以上(4以上)であるか否かを判断する(ステップS305)。
ここで、バイナリコードの前回値である“01111110”は、10進数に変換すると126である。一方、バイナリコードの今回値である“11111111”は、10進数に変換すると255である。したがって、制御基板3は、前回値と今回値との差が4以上である(一定範囲内ではない)と判断する。
この場合には、制御基板3は、ロータリエンコーダ1を故障したと判断する(ステップS307)。
次に、制御基板3は、バイナリコードの今回値である“11111111”を前回値として記憶する(ステップS309)。したがって、今まで前回値として記憶されていた“01111110”は、制御基板3により削除される。
上述のとおり、本発明の実施例3の形態に係る無接点主幹制御器によれば、実施例1,2と同様に、主ハンドル角度を2パルス分回転させる間に、いずれのビットも均一に故障を検知することができる。また、制御基板3が判断に使用する所定値(本実施例においては4)の値を調節することにより、制御基板3の判断に許容性を持たせることができる。
また、実施例1又は2の方法と本実施例の方法を組み合わせることにより、本実施例における無接点主幹制御器は、より確実に故障検知を行うことができる。
本発明の実施例4の無接点主幹制御器は、図1に示す実施例1乃至3の無接点主幹制御器の構成と同一の構成を有するため、重複した説明を省略する。ただし、本実施例のロータリエンコーダ1は、生成した位置信号に誤り検出を行うためのパリティビットを付加して出力する。また、制御基板3は、ロータリエンコーダ1により位置信号に付加されたパリティビットに基づきロータリエンコーダ1に対する故障検知を行う。
次に、上述のように構成された本実施の形態の作用を説明する。図6は、本実施例の形態の無接点主幹制御器の制御基板3の動作を示すフローチャート図である。まず、ロータリエンコーダ1は、主ハンドル1の絶対角度を検出し、角度検出用コードに基づき主ハンドルの角度位置に応じた位置信号を生成する。その際に、ロータリエンコーダ1は、生成した位置信号に誤り検出を行うためのパリティビットを付加して出力する。
制御基板3は、ロータリエンコーダ1により生成された位置信号に基づき鉄道車両の駆動及び制動を制御するノッチ指令信号を生成する。その際に、制御基板3は、ロータリエンコーダ1により生成された位置信号に基づきロータリエンコーダ1の故障を検知する。
ここで、運転手は、操作により主ハンドルの角度を50度から60度に回転させようとしているとする。今、主ハンドル2の角度が59.53度であるとすると、図2よりエンコーダ角度は178.59度であり、ロータリエンコーダ1は、位置信号として“11000000”を生成する。その際に、ロータリエンコーダ1は、位置信号の「1」の合計が例えば必ず奇数になるように、生成した位置信号に誤り検出を行うためのパリティビットを付加して出力する。今、生成した位置信号は、“11000000”であるので、「1」の合計は2であり偶数である。したがって、ロータリエンコーダ1は、生成した位置信号にパリティビットとして「1」を付加して出力する。
ロータリエンコーダ1は、位置信号“11000000”にパリティビット“1”を付加した値である“110000001”を出力する。このロータリエンコーダ1の出力値である“110000001”は、制御基板3に入力される(ステップS401)。
次に、制御基板3は、入力された値である“110000001”からパリティを読み出す(ステップS403)。ここでは、制御基板3は、最下位ビットである“1”をパリティとして読み出す。この値をPeとする。
次に、制御基板3は、予め記憶したテーブルからパリティを取得する(ステップS405)。この値をPtとする。制御基板3は、図2に新コードとして示した角度検出用コードと各コードに対応するパリティの値をテーブルとして予め記憶している。したがって、当該テーブルは、角度検出用コード“11000000”に対するパリティの値を“1”として予め記憶している。制御基板3は、予め記憶されている当該パリティ値“1”を、Ptとして取得する。
次に、制御基板3は、ステップS403において読み出したパリティPeとステップS405において取得したパリティPtとが同一であるか否かを判断する(ステップS407)。ここでは、いずれの値も“1”であるため、制御基板3は、パリティPeとパリティPtとが同一であると判断する。
仮に、ロータリエンコーダ1が位置信号として“11000000”を生成した際にパリティとして“0”を付加したとすると、ステップS403において制御基板3は、パリティPeとして“0”を読み出す。この場合には、制御基板3は、パリティPeとPtとが同一でないと判断し(ステップS407)、ロータリエンコーダ1を故障したと判断する(ステップS409)。
上述のとおり、本発明の実施例3の形態に係る無接点主幹制御器によれば、本発明の角度検出用コードに対してパリティビットによる故障検知を行うことができる。本発明の角度検出用コードは、2パルス以内に全ビットが変化するため、制御基板3は、本実施例に示すパリティビットを用いた方法においても、2パルス以内に故障を検知することができる。さらに、実施例1乃至3に示す方法と組み合わせることで、より確実な故障検知が可能となる。
本発明に係る無接点主幹制御器及び無接点主幹制御器の故障検知方法は、ハンドル操作の出力指令に基づき鉄道用車両の運転制御を行う無接点主幹制御器に利用可能である。
本発明の実施例1の形態の無接点主幹制御器の構成を示すブロック図である。
本発明の実施例1の形態の無接点主幹制御器において8ビットのコードを使用した場合における従来のコード及び本発明のコードと対応する角度とを示す図である。
本発明の実施例1の形態の無接点主幹制御器の制御基板の動作を示すフローチャート図である。
本発明の実施例2の形態の無接点主幹制御器の制御基板の動作を示すフローチャート図である。
本発明の実施例3の形態の無接点主幹制御器の制御基板の動作を示すフローチャート図である。
本発明の実施例4の形態の無接点主幹制御器の制御基板の動作を示すフローチャート図である。
符号の説明
1 ロータリエンコーダ
2 主ハンドル
3 制御基板