(58)【調査した分野】(Int.Cl.,DB名)
前記診断手段は、前記目標計時時間よりも短い周期で前記診断を繰り返し、前記制御プロセッサが正常であると診断した場合に前記リセット信号を出力することを特徴とする請求項2に記載の駆動制御装置。
前記安全状態移行処理手段は、前記診断手段が前記制御プロセッサの動作の異常を診断した場合に、前記制御対象装置を正常時よりも動作範囲の制限された安全状態とする制御信号を前記制御プロセッサから出力させることを特徴とする請求項2に記載の駆動制御装置。
前記安全状態移行処理手段は、前記診断手段が前記制御プロセッサの動作の異常を診断した場合に、前記制御プロセッサからの前記制御信号の出力を停止させることを特徴とする請求項4に記載の駆動制御装置。
前記安全状態移行処理手段は、前記診断手段が前記制御プロセッサの動作の異常を診断した場合に、前記制御対象装置の動作状態を時間経過に応じて所定の安全状態に移行させる制御信号を前記制御プロセッサから出力させることを特徴とする請求項4に記載の駆動制御装置。
前記安全状態移行処理手段は、前記診断手段が前記制御プロセッサの動作の異常を診断した場合に、前記制御プロセッサをホールド状態とすることを特徴とする請求項2に記載の駆動制御装置。
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、上述した特許文献2に開示の技術は、リセット信号が与えられても制御プロセッサであるCPUのリセット機能が正常に働かない場合への対策が講じられていない問題がある。また、上述した特許文献2に開示の技術は、制御プロセッサであるCPUのリセット機能が正常に働いたとしても、リセット後のCPUが正常な動作をする保証がないという問題がある。また、上述した特許文献2および3に開示の技術は、ウォッチドッグタイマ自体の動作が異常になった場合に、駆動制御システムを安全な状態に維持するのが困難であるという問題がある。
【0007】
この発明は、以上説明した事情に鑑みてなされたものであり、その第1の目的は、制御プロセッサのリセットが正常に働かなくなるような動作異常あるいは制御プロセッサのリセットを行ったとしても解消しないような動作異常が制御プロセッサに発生する場合においても、駆動制御システムを安全な状態に維持することができる駆動制御装置を提供することにある。また、この発明の第2の目的は、ウォッチドッグタイマ自体に動作異常が発生する状況においても、駆動制御システムを安全な状態に維持することができる駆動制御装置を提供することにある。
【課題を解決するための手段】
【0008】
この発明は、制御信号を生成する
制御処理部と、前記制御処理部の動作が正常であるか異常であるかを診断する診断手段とを含む制御プロセッサと、
前記制御処理部の動作が正常であると前記診断手段により診断された場合に前記制御プロセッサから供給されるリセット信号に応じて計時値をリセットし、前記リセット後、目標計時時間の計時を完了することによって、前記制御プロセッサから制御対象装置への前記制御信号の供給を遮断する遮断信号を継続的に出力するウォッチドッグタイマと、前記遮断信号が与えられていないとき、制御対象装置である駆動回路への前記制御信号の供給を継続し、前記遮断信号が与えられるとき、前記駆動回路への前記制御信号の供給を遮断するスイッチ回路と、を具備することを特徴とする駆動制御装置を提供する。
【0009】
この発明によれば、制御プロセッサからウォッチドッグタイマへのリセット信号の供給が途絶えると、ウォッチドッグタイマは、目標計時時間の計時を完了することによって、制御対象装置への制御信号の供給を継続的に遮断する。そのため、制御プロセッサのリセットが正常に働かなくなるような動作異常あるいは制御プロセッサのリセットを行ったとしても解消しないような動作異常が制御プロセッサに発生したとしても、制御対象装置が制御プロセッサの動作異常の悪影響を受けるのを阻止し、駆動制御システムを安全な状態に維持することができる。
【0010】
好ましい態様において、前記制御プロセッサは、当該制御プロセッサの動作の診断を行う診断手段と、前記診断手段が当該制御プロセッサの動作に異常があると診断した場合に、正常時よりも動作範囲が制限された安全状態に当該制御プロセッサを移行させる安全状態移行処理手段とを具備する。
【0011】
この態様によれば、ウォッチドッグタイマ自体の動作異常が発生し、制御プロセッサの動作異常発生時にウォッチドッグタイマが制御対象装置への制御信号の供給を遮断できなくても、制御プロセッサを安全状態に移行することができ、駆動制御システムを安全な状態に維持することができる。
【0012】
好ましい態様において、前記診断手段は、前記目標計時時間よりも短い周期で前記診断を繰り返し、前記制御プロセッサが正常であると診断した場合に前記リセット信号を出力する。
【0013】
この態様によれば、前記診断手段が当該制御プロセッサの動作に異常があると診断した場合に、ウォッチドッグタイマが遮断信号を出力する前に、安全状態移行手段が制御プロセッサを安全状態に移行させる。従って、制御対象装置の安全性を確保することができる。
【0014】
好ましい態様において、前記安全状態移行処理手段は、前記診断手段が前記制御プロセッサの動作の異常を診断した場合に、前記制御対象装置を正常時よりも動作範囲の制限された安全状態とする制御信号を前記制御プロセッサから出力させる。
【0015】
この態様によれば、制御プロセッサの動作異常が診断された場合に、制御対象装置の動作範囲を制限することにより制御対象装置の安全性を確保することができる。
【0016】
好ましい態様においては、前記安全状態移行処理手段は、前記診断手段が前記制御プロセッサの動作の異常を診断した場合に、前記制御プロセッサからの前記制御信号の出力を停止させる。
【0017】
この態様によれば、制御プロセッサの動作の異常を診断した後は、制御プロセッサの動作異常の影響が制御対象装置に及ぶのを阻止することができる。
【0018】
好ましい態様においては、前記安全状態移行処理手段は、前記診断手段が前記制御プロセッサの動作の異常を診断した場合に、前記制御対象装置の動作状態を時間経過に応じて所定の安全状態に移行させる制御信号を前記制御プロセッサから出力させる。
【0019】
この態様によれば、制御プロセッサの動作の異常が診断された場合に、制御対象装置の駆動状態を時間経過に伴って徐々に安全な状態に移行させることができる。従って、制御対象装置の動作が不安定になるのを防止することができる。
【0020】
好ましい態様においては、前記制御プロセッサは、前記診断手段が前記制御プロセッサの動作の異常を診断した場合に、前記制御プロセッサの動作の異常を上位コントローラに通知する通信手段を具備する。この態様によれば、上位コントローラは制御プロセッサの動作の異常を認識することができる。
【0021】
好ましい態様においては、前記安全状態移行処理手段は、前記診断手段が前記制御プロセッサの動作の異常を診断した場合に、前記制御プロセッサをホールド状態とする。この態様によれば、制御プロセッサの動作異常が診断された場合、制御プロセッサがホールド状態とされるので、制御プロセッサの動作異常の影響が大きくなるのを防止することができる。
【発明の効果】
【0022】
以上説明したように、この発明によれば、制御プロセッサのリセットが正常に働かなくなるような動作異常あるいは制御プロセッサのリセットを行ったとしても解消しないような動作異常が制御プロセッサに発生したとしても、制御対象装置が制御プロセッサの動作異常の悪影響を受けるのを阻止し、駆動制御システムを安全な状態に維持することができる。
【発明を実施するための形態】
【0024】
以下、図面を参照しつつ、この発明の実施形態について説明する。
図1は、この発明の一実施形態による駆動制御装置1を含む駆動制御システムの構成を示すブロック図である。この駆動制御システムは、
図1に示すように、駆動制御装置1と、上位コントローラ2と、スイッチ回路3と、駆動制御装置1の制御対象装置である駆動回路4と、アクチュエータ5とを有する。
【0025】
上位コントローラ2は、例えばPLC(Programmable Logic Controller)等の制御装置と、安全リレー等からなる安全装置とにより構成されている。この上位コントローラ2は、使用者による操作等に基づいて生成した制御指令信号を駆動制御装置1に供給する。また、上位コントローラ2は、駆動制御システム内において、アクチュエータ5への作業者の接近等の危険の発生を検知した場合あるいは非常停止ボタンの押圧操作が行われた場合等に安全信号を発生して駆動制御装置1に供給する。また、上位コントローラ2は、駆動制御装置1の制御プロセッサ11(後述)の異常を示す異常報告信号を駆動制御装置1から受け取り、警報の発生等、異常報告信号に対応した処理を実行する。
【0026】
スイッチ回路3は、駆動制御装置1と駆動回路4の間に設けられている。このスイッチ回路3は、常時は、駆動制御装置1が出力する制御信号を駆動回路4に供給するが、駆動制御装置1から遮断信号が与えられることによりオフとなり、駆動制御装置1から駆動回路4への制御信号の供給を遮断する。
【0027】
駆動回路4は、例えばインバータの主回路であり、複数のスイッチング素子により構成されている。この駆動回路4は、駆動制御装置1から供給される制御信号に基づいてスイッチング素子をオンさせ、このスイッチング素子を介してアクチュエータ5に駆動電圧を供給する。アクチュエータ5は、例えばモータである。
【0028】
駆動制御装置1は、制御指令信号或いは安全信号に基づいて制御信号を生成し、スイッチ回路3を介して制御信号を駆動回路4に供給し、アクチュエータ5の駆動を制御する。この駆動制御装置1は、
図1に示すように、制御プロセッサ11と、ウォッチドッグタイマ(以下、WDTと略す)12とを有する。WDT12は、一定周期のクロックのカウントを行うカウンタを有し、制御プロセッサ11からリセット信号の供給があると、WDT12はクロックのカウント値(すなわち、計時値)をゼロにする。また、WDT12は、計時値が所定の目標計時時間に到達すると、スイッチ回路3に継続的に遮断信号を供給する。
【0029】
制御プロセッサ11は、上位コントローラ2から供給される制御指令信号または安全信号に基づいてアクチュエータ5を制御するための制御信号を生成する手段である。この制御プロセッサ11は、CPUコアの他、このCPUコアが実行するプログラムを記憶したROMと、CPUコアによってワークエリアとして使用されるRAMとを内蔵したCPUである。
図1では、CPUコアとROMとRAMの図示は省略している。制御プロセッサ11のCPUコア(以下、説明の便宜のため、単に制御プロセッサ11という)がROM内のプログラムを実行することにより実現される機能は、
図1に示す通信処理部111と、指令入力処理部112と、アクチュエータ制御処理部113と、診断処理部114と、制御信号出力処理部115と、安全状態移行処理部116とに大別することができる。
【0030】
通信処理部111は、上位コントローラ2から制御指令信号および安全信号を受信する手段である。また、通信処理部111は、安全状態移行処理部116から異常報告信号を受け取った場合に、その異常報告信号を上位コントローラ2に送信し、以後、上位コントローラ2からの制御指令信号および安全信号の受信を拒否する。ただし、上位コントローラ2が異常報告信号の内容を判断して復帰指令信号を送信した場合、通信処理部111は、この復帰指令信号を受信し、上位コントローラ2からの制御信号および安全信号の受信を再開する。指令入力処理部112は、通信処理部111が上位コントローラ2から受信した制御指令信号および安全信号をアクチュエータ制御処理部113に引き渡す手段である。アクチュエータ制御処理部113は、制御指令信号や安全信号に基づいて、アクチュエータ5を駆動制御するための制御信号を生成するための演算処理を実行する手段である。
【0031】
例えば、アクチュエータ5がモータであり、駆動回路4がモータを駆動するインバータの主回路である場合、アクチュエータ制御処理部113は、駆動回路4の各スイッチング素子のON/OFFを制御するためのPWM(Pulse Width Modulation;パルス幅変調)信号を生成する。その際、アクチュエータ制御処理部113は、制御指令信号や安全信号に応じて、制御信号であるPWM信号のパルス幅の増減の制御を行う。
【0032】
制御信号出力処理部115は、アクチュエータ制御処理部113によって生成される制御信号を制御プロセッサ11から出力する手段である。制御信号出力処理部115は、安全状態移行処理部116から停止信号を受け取った場合に、制御信号の出力を停止する。
【0033】
診断処理部114は、アクチュエータ制御処理部113の動作が正常であるか異常であるかを診断する手段である。
図1に示すように、診断処理部114は、プログラムシーケンス診断処理部1141と、安全機能診断処理部1142とを含む。ここで、プログラムシーケンス診断処理部1141は、アクチュエータ制御処理部113の動作のうち制御指令信号に応じて制御信号の生成を行う動作が正常であるか異常であるかを診断する手段である。また、安全機能診断処理部1142は、アクチュエータ制御処理部113の動作のうち安全信号に応じて制御信号の生成を行う動作が正常であるか異常であるかを診断する手段である。
【0034】
これらの診断において、プログラムシーケンス診断処理部1141および安全機能診断処理部1142は、アクチュエータ制御処理部113において使用される制御プロセッサ11のALUの異常、データ経路の異常、レジスタの異常、内部RAMの異常、アドレス計算手段の異常、割り込み処理手段の異常、制御ロジックの異常、構成レジスタの異常を検知する。
【0035】
診断処理部114は、プログラムシーケンス診断処理部1141による診断処理および安全機能診断処理部1142による診断処理を周期的に繰り返し、両診断処理においてアクチュエータ制御処理部113の動作が正常である旨の診断結果が得られた場合にリセット信号をWDT12に供給する。また、安全状態移行処理部116は、プログラムシーケンス診断処理部1141による診断処理または安全機能診断処理部1142による診断処理において、アクチュエータ制御処理部113の動作の異常が診断された場合に、異常信号を安全状態移行処理部116に出力する。この異常信号は制御プロセッサ11が異常である旨を示す情報とその異常内容を示す情報とを含む。
【0036】
安全状態移行処理部116は、診断処理部114がアクチュエータ制御処理部113の動作に異常があると診断した場合に、正常時よりも動作範囲が制限された安全状態に制御プロセッサ11を移行させる安全状態移行処理手段として機能する。具体的には、本実施形態において安全状態とは、制御プロセッサ11がホールド(内部状態を遷移させない状態)し、制御信号の生成および出力を行わない状態である。安全状態移行処理部116は、診断処理部114から異常信号を受け取った場合に、制御信号出力処理部115に停止信号を出力するとともに、異常信号を異常報告信号として通信処理部111に出力し、さらに制御プロセッサ11をホールド状態にする。
以上が本実施形態の構成である。
【0037】
次に、本実施形態の動作について説明する。
図2は、制御プロセッサ11の処理内容を示すフローチャートである。駆動制御装置1の電源投入等に伴って起動指令が発生すると、まず、ステップS101に進むと、プログラムシーケンス診断処理部1141がプログラムシーケンス診断処理を実行する。このプログラムシーケンス診断処理は、アクチュエータ制御処理部113の動作のうち制御指令信号に応じて制御信号を生成する動作を診断する処理である。
【0038】
次にステップS102に進むと、プログラムシーケンス診断処理部1141は、プログラムシーケンス診断処理の診断結果についての判断を行う。アクチュエータ制御処理部113の動作が異常であることを診断結果が示している場合、処理はステップS110に進み、アクチュエータ制御処理部113の動作が正常であることを診断結果が示している場合、処理はステップS103に進む。
【0039】
次にステップS103に進むと、安全機能診断処理部1142が安全機能診断処理を実行する。この安全機能診断処理は、アクチュエータ制御処理部113の動作のうち安全信号に応じて制御信号を生成する動作を診断する処理である。
【0040】
次にステップS104に進むと、安全機能診断処理部1142は、安全機能診断処理の診断結果についての判断を行う。アクチュエータ制御処理部113の動作が異常であることを診断結果が示している場合、処理はステップS110に進み、アクチュエータ制御処理部113の動作が正常であることを診断結果が示している場合、処理はステップS105に進む。
【0041】
次にステップS105に進むと、診断処理部114は、WDT12にリセット信号を出力し、WDT12の計時値をリセットさせる。次にステップS106に進むと、アクチュエータ制御処理部113が本来のアクチュエータ制御処理を実行する。このアクチュエータ制御処理において、アクチュエータ制御処理部113は、指令入力処理部112から制御指令信号或いは安全信号を取得し、制御指令信号や安全信号に基づいて制御信号を生成し、制御信号出力処理部115に供給する。
【0042】
このステップS106が終了すると、処理はステップS101に戻る。以後、プログラムシーケンス診断処理(ステップS101)および安全機能診断処理(ステップS103)の両診断結果においてアクチュエータ制御処理部113の動作が正常である限り、ステップS101→S102→S103→S104→S105→S106→S101の順に各ステップの処理が繰り返される。
【0043】
一方、ステップS102またはS104の判断において、アクチュエータ制御処理部113の動作が異常であることを診断結果が示していると、処理はステップS110へ進む。このステップS110において、診断処理部114は、安全状態移行処理部116に異常信号を出力する。そして、安全状態移行処理部116は、異常報告信号を通信処理部111に出力する。これにより通信処理部111は、異常報告信号を上位コントローラ2に送信し、以後、上位コントローラ2からの制御指令信号および安全信号の受信を拒否する。ただし、上位コントローラ2が異常報告信号の内容を判断して復帰指令信号を送信した場合、通信処理部111は、この復帰指令信号を受信し、上位コントローラ2からの制御信号および安全信号の受信を再開する。次にステップS111に進むと、安全状態移行処理部116が安全状態に移行するための処理を行う。具体的には、安全状態移行処理部116は、停止信号を制御信号出力処理部115に出力する。これにより制御信号出力処理部115は、アクチュエータ制御処理部113からの制御信号の外部への出力を停止する。また、安全状態移行処理部116は、制御プロセッサ11への内部クロックを停止し、制御プロセッサ11をホールド状態とし、
図2に示す処理を終了する。
【0044】
図3はステップS103の安全機能診断処理の処理内容を示すフローチャートである。安全機能診断処理部1142は、この安全機能診断処理の実行を開始すると、まず、ステップS201に進み、ROMから安全機能診断用の入力データを読み出してRAMに格納する。次にステップS202に進むと、安全機能診断処理部1142は、この入力データをアクチュエータ制御処理部113に供給し、この入力データに基づいて演算を行わせる。次にステップS203に進むと、安全機能診断処理部1142は、アクチュエータ制御処理部113の演算結果をRAMに書き込む。次にステップS204に進むと、安全機能診断処理部1142は、ROMから安全機能診断用の入力データを再度読み出してRAMに格納する。次にステップS205に進むと、安全機能診断処理部1142は、この入力データをアクチュエータ制御処理部113に再度供給し、この入力データに基づく演算を再度行わせる。次にステップS206に進むと、安全機能診断処理部1142は、アクチュエータ制御処理部113の演算結果をRAMに書き込む。次にステップS207に進むと、安全機能診断処理部1142は、ステップS203においてRAMに書き込んだ演算結果と、ステップS206においてRAMに書き込んだ演算結果とを比較し、両者が一致するか否かを診断する。
【0045】
ステップS207の判断結果が「NO」である場合、処理はステップS208に進む。次にステップS208に進むと、安全機能診断処理部1142は、アクチュエータ制御処理部113が異常であると診断し、安全機能診断処理を終了する。
【0046】
一方、ステップS207の判断結果が「YES」であると、処理はステップS210に進む。次にステップS210に進むと、安全機能診断処理部1142は、安全機能診断用のテストデータをROMから読み出し、RAMに格納する。次にステップS211に進むと、安全機能診断処理部1142は、アクチュエータ制御処理部113にこのテストデータに基づく演算を行わせる。次にステップS212に進むと、安全機能診断処理部1142は、アクチュエータ制御処理部113の演算結果をRAMに書き込む。次にステップS213に進むと、安全機能診断処理部1142は、テストデータに基づく演算結果の期待値である判定値をROMから読み出す。次にステップS214に進むと、安全機能診断処理部1142は、ステップS212においてRAMに書き込んだ演算結果と、ステップS213においてROMから読み出した判定値とを比較し、両者が一致するか否かを判断する。このステップS214の判断結果が「NO」である場合、処理は上述したステップS208に進む。一方、ステップS214の診断結果が「YES」である場合、処理はステップS215に進む。次にステップS215に進むと、安全機能診断処理部1142は、アクチュエータ制御処理部113は正常であると診断し、安全機能診断処理を終了する。
【0047】
以上が
図2のステップS103における安全機能診断処理の内容である。ステップS101のプログラムシーケンス診断処理も基本的にこの安全機能診断処理と同様である。
【0048】
図4〜
図6は、本実施形態の動作例を示すタイムチャートである。
図4は、前掲
図2において、プログラムシーケンス診断処理(ステップS101)および安全機能診断処理(ステップS103)の両診断においてアクチュエータ制御処理部113が正常であると診断される場合の動作例を示している。この場合、制御プロセッサ11では、
図4に示すように、プログラムシーケンス診断処理、安全機能診断処理およびアクチュエータ制御処理からなる処理が周期的に繰り返される。
【0049】
ここで、WDT12がリセットされてからタイムアウトになるまでの目標計時時間は、1周期分のプログラムシーケンス診断処理、安全機能診断処理およびアクチュエータ制御処理の全所要時間よりも長い。従って、WDT12がリセットされると、その後、WDT12の計時値が目標計時時間に到達するよりも前に、プログラムシーケンス診断処理(ステップS101)および安全機能診断処理(ステップS103)の両診断においてアクチュエータ制御処理部113が正常であると診断され、WDT12がリセットされる。従って、WDT12がタイムアウトとなってスイッチ回路3が遮断されることはない。
【0050】
また、プログラムシーケンス診断処理(ステップS101)および安全機能診断処理(ステップS103)の両診断においてアクチュエータ制御処理部113が正常であると診断される場合、診断処理部114は異常信号を出力せず、安全状態移行処理部116は停止信号を制御信号出力処理部115に出力しない。従って、制御信号出力処理部115は、アクチュエータ制御処理部113が生成する制御信号を出力し、スイッチ回路3はこの制御信号を駆動回路4に供給する。
【0051】
図5は、前掲
図2のプログラムシーケンス診断処理(ステップS101)においてアクチュエータ制御処理部の動作の異常が診断され、時刻t1において診断処理部114から異常信号が出力(
図2のステップS110)される動作例を示している。この異常信号が出力されると、安全状態移行処理部116は、停止信号を制御信号出力処理部115に出力する。この結果、
図5に示すように、制御信号出力処理部115は、アクチュエータ制御処理部113が生成する制御信号の出力を停止する。
【0052】
また、本実施形態において、WDT12の目標計時時間は、プログラムシーケンス診断処理が繰り返される周期よりも長い。このため、
図5に例示するように、時刻t1より後の時刻t2において、WDT12の計時値が、目標計時時間に到達し、WDT12が遮断信号をスイッチ回路3に出力する。この結果、スイッチ回路3はオフとなる。
【0053】
このように本実施形態によれば、プログラムシーケンス診断処理部1141が制御プロセッサ11の動作異常を検知した場合に、WDT12がスイッチ回路3を遮断するよりも前に、安全状態移行処理部116が制御信号出力処理部115による制御信号の出力を停止させる。安全機能診断処理部1142が制御プロセッサ11の動作異常を検知した場合も同様である。従って、例えばWDT12が正常に働かない状況においても制御プロセッサ11の誤動作の影響が制御対象装置である駆動回路4およびアクチュエータ5に及ぶのを阻止することができる。
【0054】
さらに、本実施形態によれば、制御プロセッサ11から異常報告信号を上位コントローラ2に出力するので、上位コントローラ2が制御プロセッサ11の動作異常を認識し、適切な対応をとることができる。また、本実施形態によれば、制御プロセッサ11は、異常診断時、自らをホールド状態に移行するので、制御プロセッサ11の動作異常が進行するのを止め、制御プロセッサ11が致命的な故障に陥るのを回避することができる。
【0055】
図6は、前掲
図2において、プログラムシーケンス診断処理部1141がプログラムシーケンス診断処理(ステップS101)の実行を開始した後、プログラムシーケンス診断処理部1141の動作異常が発生し、診断処理部114によってリセット信号が出力されることなく、WDT12の計時値が時刻t3において目標計時時間に到達した動作例を示している。このように本実施形態によれば、プログラムシーケンス診断処理部1141の動作異常が発生した場合には、WDT12の計時値が目標計時時間に到達し、遮断信号によりスイッチ回路3がオフとされ、制御プロセッサ11の誤動作の影響が制御対象装置である駆動回路4およびアクチュエータ5に及ぶのを阻止することができる。安全機能診断処理部1142の動作異常が発生した場合も同様である。
【0056】
<他の実施形態>
以上、この発明の一実施形態について説明したが、この発明には他にも実施形態が考えられる。例えば次の通りである。
【0057】
(1)上記実施形態では、
図3のステップS201〜S206において、アクチュエータ制御処理部113は入力データに基づく演算を2回行い、ステップS207においてプログラムシーケンス診断処理部1141が演算結果を比較したが、演算の回数は2回に限られない。アクチュエータ制御処理部113が演算を3回以上行い、プログラムシーケンス診断処理部1141が各演算の演算結果を比較してもよい。演算の回数を増やせば制御プロセッサ11の動作異常を検知しやすくなるが、制御プロセッサ11に負荷がかかるので、制御プロセッサ11の性能に応じて適宜演算の回数を決めればよい。
【0058】
(2)上記実施形態では、プログラムシーケンス診断処理を実行した後に安全機能診断処理を実行していたが、この順番が逆であってもよい。また、
図3のステップS210〜S214の処理の後にステップS201〜S207の処理を実行してもよい。
【0059】
(3)上記実施形態では、アクチュエータ制御処理部113の演算結果を判定値と比較したが、アクチュエータ制御処理部113の演算の所要時間を所定の基準時間と比較することで制御プロセッサ11の動作異常を検知してもよい。また、例えば
図3の安全機能診断処理において、ステップS202の演算の所要時間とステップS205の演算の所要時間を比較し、両所要時間の差が所定の閾値を越えている場合にアクチュエータ制御処理部113の動作が異常であると診断してもよい。また、制御プロセッサ11が例えば時分割制御により複数の処理を並行して進める場合には、各処理が行われる順序を監視し、各処理の順序が所定の順序でない場合に制御プロセッサ11の動作が異常であると診断してもよい。あるいは各処理の所要時間を所定の基準時間と比較し、いずれかの処理の所要時間と基準時間との差が所定の閾値を越えた場合に制御プロセッサ11の動作が異常であると診断してもよい。あるいは処理の順序に基づく判断と処理の所要時間に基づく判断とを併用して制御プロセッサ11の動作が異常であるか否かを診断してもよい。
【0060】
(4)上記実施形態では、診断処理部114が異常信号を安全状態移行処理部116に供給すると、安全状態移行処理部116が停止信号を制御信号出力処理部115に供給し、制御信号出力処理部115が制御信号の供給を停止した。しかし、この場合に安全状態移行処理部116は、制御信号出力処理部115に停止信号を供給する代わりに、安全状態に対応した制御信号の生成をアクチュエータ制御処理部113に行わせてもよい。ここで、安全状態とは、正常時よりも動作範囲の制限されたアクチュエータ5の駆動状態であり、速度が制限されたアクチュエータ5の駆動状態やアクチュエータ5の停止等が安全状態に含まれる。さらに、安全状態移行処理部116は、異常信号の内容に応じて安全状態に対応した制御信号の生成をアクチュエータ制御部113に行わせてもよい。そのために、異常信号の内容とその内容に応じた安全状態もしくは安全状態の決定方法を制御プロセッサ11のROMやRAMが予め記憶していてもよい。制御プロセッサ11の動作異常が診断された場合、安全状態移行処理部116は、アクチュエータ5をこのような安全状態にするための制御信号をアクチュエータ制御処理部113に生成させるのである。
【0061】
あるいは制御プロセッサ11の動作異常が診断された場合、安全状態移行処理部116は、アクチュエータ5を時間経過に伴って徐々に安全状態(例えば停止状態)に移行させる制御信号をアクチュエータ制御処理部113に生成させてもよい。
【0062】
また、安全状態移行処理部116は、このような安全状態に対応した制御信号の生成を行わせる指示をアクチュエータ制御処理部113に送った後、所定時間が経過するのを待って、停止信号を制御信号出力処理部115に出力することが好ましい。また、診断処理部114は、安全状態移行処理部116が停止信号を制御信号出力処理部115に出力するまでの間、リセット信号をWDT12に供給し続けることが好ましい。これにより、所定時間の間は、アクチュエータ制御処理部113が生成する安全状態に対応した制御信号が駆動回路4に供給され、アクチュエータ5が制御される。この所定時間は、予め設定した一定時間でもよいし、制御プロセッサ11の異常検出時におけるアクチュエータ5の動作速度等に応じて決定してもよい。この態様によれば、アクチュエータ5の急停止による事故を防止できる。
【0063】
(5)上記実施形態では、プログラムシーケンス診断処理、安全機能診断処理、アクチュエータ制御処理といったタスク単位での時分割制御により、プログラムシーケンス診断処理、安全機能診断処理、アクチュエータ制御処理を並行して進めることで、制御プロセッサ11による制御信号の生成と並行して制御プロセッサ11の診断を実施した。しかし、タスク単位よりも細かい時間単位での時分割制御によりプログラムシーケンス診断処理、安全機能診断処理、アクチュエータ制御処理を並行して進めてもよい。
【0064】
図7はプログラムシーケンス診断処理、安全機能診断処理、アクチュエータ制御処理の時分割制御の態様を示すタイムチャートである。この例では、時間軸は、ある時間長を持った複数のタイムスロットに分割されている。
図7に示す例では、複数のタイムスロットcの各間にタイムスロットaまたはbが挟まれている。制御プロセッサ11は、離散した複数のタイムスロットcを利用して、アクチュエータ制御処理を実行する。また、制御プロセッサ11は、所定個数のタイムスロットaを利用してプログラムシーケンス診断処理を実行した後、所定個数のタイムスロットbを利用して安全機能診断処理を実行し、両診断処理において制御プロセッサの動作が正常であると診断された場合にWDT12にリセット信号を出力する動作を周期的に繰り返す。この態様によれば、複数のアクチュエータ制御処理間の時間間隔を狭くすることができる。従って、1周期分のプログラムシーケンス診断処理および安全機能診断処理の所要時間が長い場合に有効である。
【0065】
(6)この発明は複数のCPUコアを備えたマルチコアCPUを制御プロセッサ11とする駆動制御装置にも勿論適用可能である。この場合において、例えば複数のCPUコアにアクチュエータ制御処理を実行させ、各CPUコアの演算結果を比較することにより、CPUコアの動作異常の有無を診断してもよい。この場合、周期的に、各CPUコアの動作の異常が検出されたか否かを確認し、異常が検出されなかった場合はWDT12にリセット信号を出力し、異常が検出された場合は制御プロセッサ11を安全状態に移行させるようにすればよい。
【0066】
(7)上記実施形態では、制御プロセッサ11の動作を診断するための診断処理部114をソフトウェアにより実現したが、診断処理部114をハードウェアにより実現してもよい。