(57)【要約】【課題】  制御プロセッサのリセットが正常に働かなくなるような動作異常あるいは制御プロセッサのリセットを行ったとしても解消しないような動作異常が制御プロセッサに発生する場合においても、駆動制御システムを安全な状態に維持することができる駆動制御装置を提供する。【解決手段】  制御プロセッサ１１は、制御対象装置である駆動回路４およびアクチュエータ５のための制御信号を生成するアクチュエータ制御処理部１１３とその診断を行う診断処理部１１４を有する。診断処理部１１４は、制御プロセッサ１１の動作が正常である場合に周期的にＷＤＴ１２にリセット信号を出力する。ＷＤＴ１２は、この周期的なリセット信号が途絶えると、制御プロセッサ１１から制御対象装置への制御信号の供給を遮断する遮断信号を継続的に出力する。【選択図】図１
2016207002.tif 000002
【特許請求の範囲】
【請求項１】
制御信号を生成する制御プロセッサと、
前記制御プロセッサから供給されるリセット信号に応じて計時値をリセットし、このリセット後、目標計時時間の計時を完了することによって、前記制御プロセッサから制御対象装置への制御信号の供給を遮断する遮断信号を継続的に出力するウォッチドッグタイマと
を具備することを特徴とする駆動制御装置。
【請求項２】
前記制御プロセッサは、
当該制御プロセッサの動作の診断を行う診断手段と、
前記診断手段が当該制御プロセッサの動作に異常があると診断した場合に、正常時よりも動作範囲が制限された安全状態に当該制御プロセッサを移行させる安全状態移行処理手段と
を具備することを特徴とする請求項１に記載の駆動制御装置。
【請求項３】
前記診断手段は、前記目標計時時間よりも短い周期で前記診断を繰り返し、前記制御プロセッサが正常であると診断した場合に前記リセット信号を出力することを特徴とする請求項２に記載の駆動制御装置。
【請求項４】
前記安全状態移行処理手段は、前記診断手段が前記制御プロセッサの動作の異常を診断した場合に、前記制御対象装置を正常時よりも動作範囲の制限された安全状態とする制御信号を前記制御プロセッサから出力させることを特徴とする請求項２に記載の駆動制御装置。
【請求項５】
前記安全状態移行処理手段は、前記診断手段が前記制御プロセッサの動作の異常を診断した場合に、前記制御プロセッサからの前記制御信号の出力を停止させることを特徴とする請求項４に記載の駆動制御装置。
【請求項６】
前記安全状態移行処理手段は、前記診断手段が前記制御プロセッサの動作の異常を診断した場合に、前記制御対象装置の動作状態を時間経過に応じて所定の安全状態に移行させる制御信号を前記制御プロセッサから出力させることを特徴とする請求項４に記載の駆動制御装置。
【請求項７】
前記制御プロセッサは、
前記診断手段が前記制御プロセッサの動作の異常を診断した場合に、前記制御プロセッサの動作の異常を上位コントローラに通知する通信手段を具備することを特徴とする請求項２に記載の駆動制御装置。
【請求項８】
前記安全状態移行処理手段は、前記診断手段が前記制御プロセッサの動作の異常を診断した場合に、前記制御プロセッサをホールド状態とすることを特徴とする請求項２に記載の駆動制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ウォッチドッグタイマを備える駆動制御装置に関する。
【背景技術】
【０００２】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、以下「ＣＰＵ」と略記）によりアクチュエータ等の制御対象装置の駆動制御を行う駆動制御システムでは、ＣＰＵの異常や故障への対策が強く求められている。そこで、ＣＰＵを監視し、ＣＰＵの異常や故障を検知する技術が種々開発されている。例えば特許文献１に開示の技術では、監視対象のＣＰＵとは別に監視ＩＣを設け、この監視ＩＣがＣＰＵのトルクモニタ部と信号異常診断部の動作状態を監視し、これらの動作異常を検知すると、マイクロコンピュータの自己監視部と協調して、フェールセーフ制御を実施する。
【０００３】
しかしながら、この特許文献１に開示の技術において、監視ＩＣが検知するＣＰＵの動作異常は、トルクモニタ部と信号異常診断部の動作異常等の特定の異常に限られる。そして、この特許文献１に開示の技術は、ＣＰＵの動作において発生し得るＡＬＵ（Ａｒｉｔｈｍｅｔｉｃ  Ｌｏｇｉｃ  Ｕｎｉｔ；算術論理演算装置）の動作異常、データ経路の動作異常、レジスタの動作異常、内部ＲＡＭの動作異常、アドレス計算の動作異常、割り込み処理の動作異常、制御ロジックの動作異常、構成レジスタの動作異常といった広範囲の動作異常を検知して、その対応を行うことができないという問題がある。
【０００４】
ＣＰＵにおいて発生し得る広範囲の動作異常への対応手段として、ウォッチドッグタイマを利用した手段がある。例えば特許文献２に開示の技術では、ＣＰＵからウォッチドッグタイマに周期的にパルス信号を供給してウォッチドッグタイマをリセットする。ＣＰＵに動作異常が発生してパルス信号が所定時間供給されないと、ウォッチドッグタイマはリセット信号をＣＰＵに出力し、ＣＰＵにリセット処理を実行させる。また、特許文献３に開示の技術では、特許文献２と同様にウォッチドッグタイマが設けられているが、ウォッチドッグタイマは、ＣＰＵからの定期的なウォッチドッグタイマクリア信号の供給が途絶えると、ＣＰＵが正常動作していないと判断し、上位システムに対してエラー通知を送信する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−４３５３６号公報
【特許文献２】特開２００３−９７３４５号公報
【特許文献３】特開２０１４−３２５５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、上述した特許文献２に開示の技術は、リセット信号が与えられても制御プロセッサであるＣＰＵのリセット機能が正常に働かない場合への対策が講じられていない問題がある。また、上述した特許文献２に開示の技術は、制御プロセッサであるＣＰＵのリセット機能が正常に働いたとしても、リセット後のＣＰＵが正常な動作をする保証がないという問題がある。また、上述した特許文献２および３に開示の技術は、ウォッチドッグタイマ自体の動作が異常になった場合に、駆動制御システムを安全な状態に維持するのが困難であるという問題がある。
【０００７】
この発明は、以上説明した事情に鑑みてなされたものであり、その第１の目的は、制御プロセッサのリセットが正常に働かなくなるような動作異常あるいは制御プロセッサのリセットを行ったとしても解消しないような動作異常が制御プロセッサに発生する場合においても、駆動制御システムを安全な状態に維持することができる駆動制御装置を提供することにある。また、この発明の第２の目的は、ウォッチドッグタイマ自体に動作異常が発生する状況においても、駆動制御システムを安全な状態に維持することができる駆動制御装置を提供することにある。
【課題を解決するための手段】
【０００８】
この発明は、制御信号を生成する制御プロセッサと、前記制御プロセッサから供給されるリセット信号に応じて計時値をリセットし、このリセット後、目標計時時間の計時を完了することによって、前記制御プロセッサから制御対象装置への制御信号の供給を遮断する遮断信号を継続的に出力するウォッチドッグタイマとを具備することを特徴とする駆動制御装置を提供する。
【０００９】
この発明によれば、制御プロセッサからウォッチドッグタイマへのリセット信号の供給が途絶えると、ウォッチドッグタイマは、目標計時時間の計時を完了することによって、制御対象装置への制御信号の供給を継続的に遮断する。そのため、制御プロセッサのリセットが正常に働かなくなるような動作異常あるいは制御プロセッサのリセットを行ったとしても解消しないような動作異常が制御プロセッサに発生したとしても、制御対象装置が制御プロセッサの動作異常の悪影響を受けるのを阻止し、駆動制御システムを安全な状態に維持することができる。
【００１０】
好ましい態様において、前記制御プロセッサは、当該制御プロセッサの動作の診断を行う診断手段と、前記診断手段が当該制御プロセッサの動作に異常があると診断した場合に、正常時よりも動作範囲が制限された安全状態に当該制御プロセッサを移行させる安全状態移行処理手段とを具備する。
【００１１】
この態様によれば、ウォッチドッグタイマ自体の動作異常が発生し、制御プロセッサの動作異常発生時にウォッチドッグタイマが制御対象装置への制御信号の供給を遮断できなくても、制御プロセッサを安全状態に移行することができ、駆動制御システムを安全な状態に維持することができる。
【００１２】
好ましい態様において、前記診断手段は、前記目標計時時間よりも短い周期で前記診断を繰り返し、前記制御プロセッサが正常であると診断した場合に前記リセット信号を出力する。
【００１３】
この態様によれば、前記診断手段が当該制御プロセッサの動作に異常があると診断した場合に、ウォッチドッグタイマが遮断信号を出力する前に、安全状態移行手段が制御プロセッサを安全状態に移行させる。従って、制御対象装置の安全性を確保することができる。
【００１４】
好ましい態様において、前記安全状態移行処理手段は、前記診断手段が前記制御プロセッサの動作の異常を診断した場合に、前記制御対象装置を正常時よりも動作範囲の制限された安全状態とする制御信号を前記制御プロセッサから出力させる。
【００１５】
この態様によれば、制御プロセッサの動作異常が診断された場合に、制御対象装置の動作範囲を制限することにより制御対象装置の安全性を確保することができる。
【００１６】
好ましい態様においては、前記安全状態移行処理手段は、前記診断手段が前記制御プロセッサの動作の異常を診断した場合に、前記制御プロセッサからの前記制御信号の出力を停止させる。
【００１７】
この態様によれば、制御プロセッサの動作の異常を診断した後は、制御プロセッサの動作異常の影響が制御対象装置に及ぶのを阻止することができる。
【００１８】
好ましい態様においては、前記安全状態移行処理手段は、前記診断手段が前記制御プロセッサの動作の異常を診断した場合に、前記制御対象装置の動作状態を時間経過に応じて所定の安全状態に移行させる制御信号を前記制御プロセッサから出力させる。
【００１９】
この態様によれば、制御プロセッサの動作の異常が診断された場合に、制御対象装置の駆動状態を時間経過に伴って徐々に安全な状態に移行させることができる。従って、制御対象装置の動作が不安定になるのを防止することができる。
【００２０】
好ましい態様においては、前記制御プロセッサは、前記診断手段が前記制御プロセッサの動作の異常を診断した場合に、前記制御プロセッサの動作の異常を上位コントローラに通知する通信手段を具備する。この態様によれば、上位コントローラは制御プロセッサの動作の異常を認識することができる。
【００２１】
好ましい態様においては、前記安全状態移行処理手段は、前記診断手段が前記制御プロセッサの動作の異常を診断した場合に、前記制御プロセッサをホールド状態とする。この態様によれば、制御プロセッサの動作異常が診断された場合、制御プロセッサがホールド状態とされるので、制御プロセッサの動作異常の影響が大きくなるのを防止することができる。
【発明の効果】
【００２２】
以上説明したように、この発明によれば、制御プロセッサのリセットが正常に働かなくなるような動作異常あるいは制御プロセッサのリセットを行ったとしても解消しないような動作異常が制御プロセッサに発生したとしても、制御対象装置が制御プロセッサの動作異常の悪影響を受けるのを阻止し、駆動制御システムを安全な状態に維持することができる。
【図面の簡単な説明】
【００２３】
【図１】この発明の一実施形態による駆動制御装置１を含む駆動制御システムの構成を示すブロック図である。
【図２】同駆動制御装置１の制御プロセッサ１１の処理内容を示すフローチャートである。
【図３】同制御プロセッサ１１が実行する安全機能診断処理を示すフローチャートである。
【図４】同制御プロセッサ１１の第１の動作例を示すタイムチャートである。
【図５】同制御プロセッサ１１の第２の動作例を示すタイムチャートである。
【図６】同制御プロセッサ１１の第３の動作例を示すタイムチャートである。
【図７】この発明の他の実施形態における制御プロセッサの動作例を示すタイムチャートである。
【発明を実施するための形態】
【００２４】
以下、図面を参照しつつ、この発明の実施形態について説明する。
図１は、この発明の一実施形態による駆動制御装置１を含む駆動制御システムの構成を示すブロック図である。この駆動制御システムは、図１に示すように、駆動制御装置１と、上位コントローラ２と、スイッチ回路３と、駆動制御装置１の制御対象装置である駆動回路４と、アクチュエータ５とを有する。
【００２５】
上位コントローラ２は、例えばＰＬＣ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｃｏｎｔｒｏｌｌｅｒ）等の制御装置と、安全リレー等からなる安全装置とにより構成されている。この上位コントローラ２は、使用者による操作等に基づいて生成した制御指令信号を駆動制御装置１に供給する。また、上位コントローラ２は、駆動制御システム内において、アクチュエータ５への作業者の接近等の危険の発生を検知した場合あるいは非常停止ボタンの押圧操作が行われた場合等に安全信号を発生して駆動制御装置１に供給する。また、上位コントローラ２は、駆動制御装置１の制御プロセッサ１１（後述）の異常を示す異常報告信号を駆動制御装置１から受け取り、警報の発生等、異常報告信号に対応した処理を実行する。
【００２６】
スイッチ回路３は、駆動制御装置１と駆動回路４の間に設けられている。このスイッチ回路３は、常時は、駆動制御装置１が出力する制御信号を駆動回路４に供給するが、駆動制御装置１から遮断信号が与えられることによりオフとなり、駆動制御装置１から駆動回路４への制御信号の供給を遮断する。
【００２７】
駆動回路４は、例えばインバータの主回路であり、複数のスイッチング素子により構成されている。この駆動回路４は、駆動制御装置１から供給される制御信号に基づいてスイッチング素子をオンさせ、このスイッチング素子を介してアクチュエータ５に駆動電圧を供給する。アクチュエータ５は、例えばモータである。
【００２８】
駆動制御装置１は、制御指令信号或いは安全信号に基づいて制御信号を生成し、スイッチ回路３を介して制御信号を駆動回路４に供給し、アクチュエータ５の駆動を制御する。この駆動制御装置１は、図１に示すように、制御プロセッサ１１と、ウォッチドッグタイマ（以下、ＷＤＴと略す）１２とを有する。ＷＤＴ１２は、一定周期のクロックのカウントを行うカウンタを有し、制御プロセッサ１１からリセット信号の供給があると、ＷＤＴ１２はクロックのカウント値（すなわち、計時値）をゼロにする。また、ＷＤＴ１２は、計時値が所定の目標計時時間に到達すると、スイッチ回路３に継続的に遮断信号を供給する。
【００２９】
制御プロセッサ１１は、上位コントローラ２から供給される制御指令信号または安全信号に基づいてアクチュエータ５を制御するための制御信号を生成する手段である。この制御プロセッサ１１は、ＣＰＵコアの他、このＣＰＵコアが実行するプログラムを記憶したＲＯＭと、ＣＰＵコアによってワークエリアとして使用されるＲＡＭとを内蔵したＣＰＵである。図１では、ＣＰＵコアとＲＯＭとＲＡＭの図示は省略している。制御プロセッサ１１のＣＰＵコア（以下、説明の便宜のため、単に制御プロセッサ１１という）がＲＯＭ内のプログラムを実行することにより実現される機能は、図１に示す通信処理部１１１と、指令入力処理部１１２と、アクチュエータ制御処理部１１３と、診断処理部１１４と、制御信号出力処理部１１５と、安全状態移行処理部１１６とに大別することができる。
【００３０】
通信処理部１１１は、上位コントローラ２から制御指令信号および安全信号を受信する手段である。また、通信処理部１１１は、安全状態移行処理部１１６から異常報告信号を受け取った場合に、その異常報告信号を上位コントローラ２に送信し、以後、上位コントローラ２からの制御指令信号および安全信号の受信を拒否する。ただし、上位コントローラ２が異常報告信号の内容を判断して復帰指令信号を送信した場合、通信処理部１１１は、この復帰指令信号を受信し、上位コントローラ２からの制御信号および安全信号の受信を再開する。指令入力処理部１１２は、通信処理部１１１が上位コントローラ２から受信した制御指令信号および安全信号をアクチュエータ制御処理部１１３に引き渡す手段である。アクチュエータ制御処理部１１３は、制御指令信号や安全信号に基づいて、アクチュエータ５を駆動制御するための制御信号を生成するための演算処理を実行する手段である。
【００３１】
例えば、アクチュエータ５がモータであり、駆動回路４がモータを駆動するインバータの主回路である場合、アクチュエータ制御処理部１１３は、駆動回路４の各スイッチング素子のＯＮ／ＯＦＦを制御するためのＰＷＭ（Ｐｕｌｓｅ  Ｗｉｄｔｈ  Ｍｏｄｕｌａｔｉｏｎ；パルス幅変調）信号を生成する。その際、アクチュエータ制御処理部１１３は、制御指令信号や安全信号に応じて、制御信号であるＰＷＭ信号のパルス幅の増減の制御を行う。
【００３２】
制御信号出力処理部１１５は、アクチュエータ制御処理部１１３によって生成される制御信号を制御プロセッサ１１から出力する手段である。制御信号出力処理部１１５は、安全状態移行処理部１１６から停止信号を受け取った場合に、制御信号の出力を停止する。
【００３３】
診断処理部１１４は、アクチュエータ制御処理部１１３の動作が正常であるか異常であるかを診断する手段である。図１に示すように、診断処理部１１４は、プログラムシーケンス診断処理部１１４１と、安全機能診断処理部１１４２とを含む。ここで、プログラムシーケンス診断処理部１１４１は、アクチュエータ制御処理部１１３の動作のうち制御指令信号に応じて制御信号の生成を行う動作が正常であるか異常であるかを診断する手段である。また、安全機能診断処理部１１４２は、アクチュエータ制御処理部１１３の動作のうち安全信号に応じて制御信号の生成を行う動作が正常であるか異常であるかを診断する手段である。
【００３４】
これらの診断において、プログラムシーケンス診断処理部１１４１および安全機能診断処理部１１４２は、アクチュエータ制御処理部１１３において使用される制御プロセッサ１１のＡＬＵの異常、データ経路の異常、レジスタの異常、内部ＲＡＭの異常、アドレス計算手段の異常、割り込み処理手段の異常、制御ロジックの異常、構成レジスタの異常を検知する。
【００３５】
診断処理部１１４は、プログラムシーケンス診断処理部１１４１による診断処理および安全機能診断処理部１１４２による診断処理を周期的に繰り返し、両診断処理においてアクチュエータ制御処理部１１３の動作が正常である旨の診断結果が得られた場合にリセット信号をＷＤＴ１２に供給する。また、安全状態移行処理部１１６は、プログラムシーケンス診断処理部１１４１による診断処理または安全機能診断処理部１１４２による診断処理において、アクチュエータ制御処理部１１３の動作の異常が診断された場合に、異常信号を安全状態移行処理部１１６に出力する。この異常信号は制御プロセッサ１１が異常である旨を示す情報とその異常内容を示す情報とを含む。
【００３６】
安全状態移行処理部１１６は、診断処理部１１４がアクチュエータ制御処理部１１３の動作に異常があると診断した場合に、正常時よりも動作範囲が制限された安全状態に制御プロセッサ１１を移行させる安全状態移行処理手段として機能する。具体的には、本実施形態において安全状態とは、制御プロセッサ１１がホールド（内部状態を遷移させない状態）し、制御信号の生成および出力を行わない状態である。安全状態移行処理部１１６は、診断処理部１１４から異常信号を受け取った場合に、制御信号出力処理部１１５に停止信号を出力するとともに、異常信号を異常報告信号として通信処理部１１１に出力し、さらに制御プロセッサ１１をホールド状態にする。
以上が本実施形態の構成である。
【００３７】
次に、本実施形態の動作について説明する。図２は、制御プロセッサ１１の処理内容を示すフローチャートである。駆動制御装置１の電源投入等に伴って起動指令が発生すると、まず、ステップＳ１０１に進むと、プログラムシーケンス診断処理部１１４１がプログラムシーケンス診断処理を実行する。このプログラムシーケンス診断処理は、アクチュエータ制御処理部１１３の動作のうち制御指令信号に応じて制御信号を生成する動作を診断する処理である。
【００３８】
次にステップＳ１０２に進むと、プログラムシーケンス診断処理部１１４１は、プログラムシーケンス診断処理の診断結果についての判断を行う。アクチュエータ制御処理部１１３の動作が異常であることを診断結果が示している場合、処理はステップＳ１１０に進み、アクチュエータ制御処理部１１３の動作が正常であることを診断結果が示している場合、処理はステップＳ１０３に進む。
【００３９】
次にステップＳ１０３に進むと、安全機能診断処理部１１４２が安全機能診断処理を実行する。この安全機能診断処理は、アクチュエータ制御処理部１１３の動作のうち安全信号に応じて制御信号を生成する動作を診断する処理である。
【００４０】
次にステップＳ１０４に進むと、安全機能診断処理部１１４２は、安全機能診断処理の診断結果についての判断を行う。アクチュエータ制御処理部１１３の動作が異常であることを診断結果が示している場合、処理はステップＳ１１０に進み、アクチュエータ制御処理部１１３の動作が正常であることを診断結果が示している場合、処理はステップＳ１０５に進む。
【００４１】
次にステップＳ１０５に進むと、診断処理部１１４は、ＷＤＴ１２にリセット信号を出力し、ＷＤＴ１２の計時値をリセットさせる。次にステップＳ１０６に進むと、アクチュエータ制御処理部１１３が本来のアクチュエータ制御処理を実行する。このアクチュエータ制御処理において、アクチュエータ制御処理部１１３は、指令入力処理部１１２から制御指令信号或いは安全信号を取得し、制御指令信号や安全信号に基づいて制御信号を生成し、制御信号出力処理部１１５に供給する。
【００４２】
このステップＳ１０６が終了すると、処理はステップＳ１０１に戻る。以後、プログラムシーケンス診断処理（ステップＳ１０１）および安全機能診断処理（ステップＳ１０３）の両診断結果においてアクチュエータ制御処理部１１３の動作が正常である限り、ステップＳ１０１→Ｓ１０２→Ｓ１０３→Ｓ１０４→Ｓ１０５→Ｓ１０６→Ｓ１０１の順に各ステップの処理が繰り返される。
【００４３】
一方、ステップＳ１０２またはＳ１０４の判断において、アクチュエータ制御処理部１１３の動作が異常であることを診断結果が示していると、処理はステップＳ１１０へ進む。このステップＳ１１０において、診断処理部１１４は、安全状態移行処理部１１６に異常信号を出力する。そして、安全状態移行処理部１１６は、異常報告信号を通信処理部１１１に出力する。これにより通信処理部１１１は、異常報告信号を上位コントローラ２に送信し、以後、上位コントローラ２からの制御指令信号および安全信号の受信を拒否する。ただし、上位コントローラ２が異常報告信号の内容を判断して復帰指令信号を送信した場合、通信処理部１１１は、この復帰指令信号を受信し、上位コントローラ２からの制御信号および安全信号の受信を再開する。次にステップＳ１１１に進むと、安全状態移行処理部１１６が安全状態に移行するための処理を行う。具体的には、安全状態移行処理部１１６は、停止信号を制御信号出力処理部１１５に出力する。これにより制御信号出力処理部１１５は、アクチュエータ制御処理部１１３からの制御信号の外部への出力を停止する。また、安全状態移行処理部１１６は、制御プロセッサ１１への内部クロックを停止し、制御プロセッサ１１をホールド状態とし、図２に示す処理を終了する。
【００４４】
図３はステップＳ１０３の安全機能診断処理の処理内容を示すフローチャートである。安全機能診断処理部１１４２は、この安全機能診断処理の実行を開始すると、まず、ステップＳ２０１に進み、ＲＯＭから安全機能診断用の入力データを読み出してＲＡＭに格納する。次にステップＳ２０２に進むと、安全機能診断処理部１１４２は、この入力データをアクチュエータ制御処理部１１３に供給し、この入力データに基づいて演算を行わせる。次にステップＳ２０３に進むと、安全機能診断処理部１１４２は、アクチュエータ制御処理部１１３の演算結果をＲＡＭに書き込む。次にステップＳ２０４に進むと、安全機能診断処理部１１４２は、ＲＯＭから安全機能診断用の入力データを再度読み出してＲＡＭに格納する。次にステップＳ２０５に進むと、安全機能診断処理部１１４２は、この入力データをアクチュエータ制御処理部１１３に再度供給し、この入力データに基づく演算を再度行わせる。次にステップＳ２０６に進むと、安全機能診断処理部１１４２は、アクチュエータ制御処理部１１３の演算結果をＲＡＭに書き込む。次にステップＳ２０７に進むと、安全機能診断処理部１１４２は、ステップＳ２０３においてＲＡＭに書き込んだ演算結果と、ステップＳ２０６においてＲＡＭに書き込んだ演算結果とを比較し、両者が一致するか否かを診断する。
【００４５】
ステップＳ２０７の判断結果が「ＮＯ」である場合、処理はステップＳ２０８に進む。次にステップＳ２０８に進むと、安全機能診断処理部１１４２は、アクチュエータ制御処理部１１３が異常であると診断し、安全機能診断処理を終了する。
【００４６】
一方、ステップＳ２０７の判断結果が「ＹＥＳ」であると、処理はステップＳ２１０に進む。次にステップＳ２１０に進むと、安全機能診断処理部１１４２は、安全機能診断用のテストデータをＲＯＭから読み出し、ＲＡＭに格納する。次にステップＳ２１１に進むと、安全機能診断処理部１１４２は、アクチュエータ制御処理部１１３にこのテストデータに基づく演算を行わせる。次にステップＳ２１２に進むと、安全機能診断処理部１１４２は、アクチュエータ制御処理部１１３の演算結果をＲＡＭに書き込む。次にステップＳ２１３に進むと、安全機能診断処理部１１４２は、テストデータに基づく演算結果の期待値である判定値をＲＯＭから読み出す。次にステップＳ２１４に進むと、安全機能診断処理部１１４２は、ステップＳ２１２においてＲＡＭに書き込んだ演算結果と、ステップＳ２１３においてＲＯＭから読み出した判定値とを比較し、両者が一致するか否かを判断する。このステップＳ２１４の判断結果が「ＮＯ」である場合、処理は上述したステップＳ２０８に進む。一方、ステップＳ２１４の診断結果が「ＹＥＳ」である場合、処理はステップＳ２１５に進む。次にステップＳ２１５に進むと、安全機能診断処理部１１４２は、アクチュエータ制御処理部１１３は正常であると診断し、安全機能診断処理を終了する。
【００４７】
以上が図２のステップＳ１０３における安全機能診断処理の内容である。ステップＳ１０１のプログラムシーケンス診断処理も基本的にこの安全機能診断処理と同様である。
【００４８】
図４〜図６は、本実施形態の動作例を示すタイムチャートである。図４は、前掲図２において、プログラムシーケンス診断処理（ステップＳ１０１）および安全機能診断処理（ステップＳ１０３）の両診断においてアクチュエータ制御処理部１１３が正常であると診断される場合の動作例を示している。この場合、制御プロセッサ１１では、図４に示すように、プログラムシーケンス診断処理、安全機能診断処理およびアクチュエータ制御処理からなる処理が周期的に繰り返される。
【００４９】
ここで、ＷＤＴ１２がリセットされてからタイムアウトになるまでの目標計時時間は、１周期分のプログラムシーケンス診断処理、安全機能診断処理およびアクチュエータ制御処理の全所要時間よりも長い。従って、ＷＤＴ１２がリセットされると、その後、ＷＤＴ１２の計時値が目標計時時間に到達するよりも前に、プログラムシーケンス診断処理（ステップＳ１０１）および安全機能診断処理（ステップＳ１０３）の両診断においてアクチュエータ制御処理部１１３が正常であると診断され、ＷＤＴ１２がリセットされる。従って、ＷＤＴ１２がタイムアウトとなってスイッチ回路３が遮断されることはない。
【００５０】
また、プログラムシーケンス診断処理（ステップＳ１０１）および安全機能診断処理（ステップＳ１０３）の両診断においてアクチュエータ制御処理部１１３が正常であると診断される場合、診断処理部１１４は異常信号を出力せず、安全状態移行処理部１１６は停止信号を制御信号出力処理部１１５に出力しない。従って、制御信号出力処理部１１５は、アクチュエータ制御処理部１１３が生成する制御信号を出力し、スイッチ回路３はこの制御信号を駆動回路４に供給する。
【００５１】
図５は、前掲図２のプログラムシーケンス診断処理（ステップＳ１０１）においてアクチュエータ制御処理部の動作の異常が診断され、時刻ｔ１において診断処理部１１４から異常信号が出力（図２のステップＳ１１０）される動作例を示している。この異常信号が出力されると、安全状態移行処理部１１６は、停止信号を制御信号出力処理部１１５に出力する。この結果、図５に示すように、制御信号出力処理部１１５は、アクチュエータ制御処理部１１３が生成する制御信号の出力を停止する。
【００５２】
また、本実施形態において、ＷＤＴ１２の目標計時時間は、プログラムシーケンス診断処理が繰り返される周期よりも長い。このため、図５に例示するように、時刻ｔ１より後の時刻ｔ２において、ＷＤＴ１２の計時値が、目標計時時間に到達し、ＷＤＴ１２が遮断信号をスイッチ回路３に出力する。この結果、スイッチ回路３はオフとなる。
【００５３】
このように本実施形態によれば、プログラムシーケンス診断処理部１１４１が制御プロセッサ１１の動作異常を検知した場合に、ＷＤＴ１２がスイッチ回路３を遮断するよりも前に、安全状態移行処理部１１６が制御信号出力処理部１１５による制御信号の出力を停止させる。安全機能診断処理部１１４２が制御プロセッサ１１の動作異常を検知した場合も同様である。従って、例えばＷＤＴ１２が正常に働かない状況においても制御プロセッサ１１の誤動作の影響が制御対象装置である駆動回路４およびアクチュエータ５に及ぶのを阻止することができる。
【００５４】
さらに、本実施形態によれば、制御プロセッサ１１から異常報告信号を上位コントローラ２に出力するので、上位コントローラ２が制御プロセッサ１１の動作異常を認識し、適切な対応をとることができる。また、本実施形態によれば、制御プロセッサ１１は、異常診断時、自らをホールド状態に移行するので、制御プロセッサ１１の動作異常が進行するのを止め、制御プロセッサ１１が致命的な故障に陥るのを回避することができる。
【００５５】
図６は、前掲図２において、プログラムシーケンス診断処理部１１４１がプログラムシーケンス診断処理（ステップＳ１０１）の実行を開始した後、プログラムシーケンス診断処理部１１４１の動作異常が発生し、診断処理部１１４によってリセット信号が出力されることなく、ＷＤＴ１２の計時値が時刻ｔ３において目標計時時間に到達した動作例を示している。このように本実施形態によれば、プログラムシーケンス診断処理部１１４１の動作異常が発生した場合には、ＷＤＴ１２の計時値が目標計時時間に到達し、遮断信号によりスイッチ回路３がオフとされ、制御プロセッサ１１の誤動作の影響が制御対象装置である駆動回路４およびアクチュエータ５に及ぶのを阻止することができる。安全機能診断処理部１１４２の動作異常が発生した場合も同様である。
【００５６】
＜他の実施形態＞
以上、この発明の一実施形態について説明したが、この発明には他にも実施形態が考えられる。例えば次の通りである。
【００５７】
（１）上記実施形態では、図３のステップＳ２０１〜Ｓ２０６において、アクチュエータ制御処理部１１３は入力データに基づく演算を２回行い、ステップＳ２０７においてプログラムシーケンス診断処理部１１４１が演算結果を比較したが、演算の回数は２回に限られない。アクチュエータ制御処理部１１３が演算を３回以上行い、プログラムシーケンス診断処理部１１４１が各演算の演算結果を比較してもよい。演算の回数を増やせば制御プロセッサ１１の動作異常を検知しやすくなるが、制御プロセッサ１１に負荷がかかるので、制御プロセッサ１１の性能に応じて適宜演算の回数を決めればよい。
【００５８】
（２）上記実施形態では、プログラムシーケンス診断処理を実行した後に安全機能診断処理を実行していたが、この順番が逆であってもよい。また、図３のステップＳ２１０〜Ｓ２１４の処理の後にステップＳ２０１〜Ｓ２０７の処理を実行してもよい。
【００５９】
（３）上記実施形態では、アクチュエータ制御処理部１１３の演算結果を判定値と比較したが、アクチュエータ制御処理部１１３の演算の所要時間を所定の基準時間と比較することで制御プロセッサ１１の動作異常を検知してもよい。また、例えば図３の安全機能診断処理において、ステップＳ２０２の演算の所要時間とステップＳ２０５の演算の所要時間を比較し、両所要時間の差が所定の閾値を越えている場合にアクチュエータ制御処理部１１３の動作が異常であると診断してもよい。また、制御プロセッサ１１が例えば時分割制御により複数の処理を並行して進める場合には、各処理が行われる順序を監視し、各処理の順序が所定の順序でない場合に制御プロセッサ１１の動作が異常であると診断してもよい。あるいは各処理の所要時間を所定の基準時間と比較し、いずれかの処理の所要時間と基準時間との差が所定の閾値を越えた場合に制御プロセッサ１１の動作が異常であると診断してもよい。あるいは処理の順序に基づく判断と処理の所要時間に基づく判断とを併用して制御プロセッサ１１の動作が異常であるか否かを診断してもよい。
【００６０】
（４）上記実施形態では、診断処理部１１４が異常信号を安全状態移行処理部１１６に供給すると、安全状態移行処理部１１６が停止信号を制御信号出力処理部１１５に供給し、制御信号出力処理部１１５が制御信号の供給を停止した。しかし、この場合に安全状態移行処理部１１６は、制御信号出力処理部１１５に停止信号を供給する代わりに、安全状態に対応した制御信号の生成をアクチュエータ制御処理部１１３に行わせてもよい。ここで、安全状態とは、正常時よりも動作範囲の制限されたアクチュエータ５の駆動状態であり、速度が制限されたアクチュエータ５の駆動状態やアクチュエータ５の停止等が安全状態に含まれる。さらに、安全状態移行処理部１１６は、異常信号の内容に応じて安全状態に対応した制御信号の生成をアクチュエータ制御部１１３に行わせてもよい。そのために、異常信号の内容とその内容に応じた安全状態もしくは安全状態の決定方法を制御プロセッサ１１のＲＯＭやＲＡＭが予め記憶していてもよい。制御プロセッサ１１の動作異常が診断された場合、安全状態移行処理部１１６は、アクチュエータ５をこのような安全状態にするための制御信号をアクチュエータ制御処理部１１３に生成させるのである。
【００６１】
あるいは制御プロセッサ１１の動作異常が診断された場合、安全状態移行処理部１１６は、アクチュエータ５を時間経過に伴って徐々に安全状態（例えば停止状態）に移行させる制御信号をアクチュエータ制御処理部１１３に生成させてもよい。
【００６２】
また、安全状態移行処理部１１６は、このような安全状態に対応した制御信号の生成を行わせる指示をアクチュエータ制御処理部１１３に送った後、所定時間が経過するのを待って、停止信号を制御信号出力処理部１１５に出力することが好ましい。また、診断処理部１１４は、安全状態移行処理部１１６が停止信号を制御信号出力処理部１１５に出力するまでの間、リセット信号をＷＤＴ１２に供給し続けることが好ましい。これにより、所定時間の間は、アクチュエータ制御処理部１１３が生成する安全状態に対応した制御信号が駆動回路４に供給され、アクチュエータ５が制御される。この所定時間は、予め設定した一定時間でもよいし、制御プロセッサ１１の異常検出時におけるアクチュエータ５の動作速度等に応じて決定してもよい。この態様によれば、アクチュエータ５の急停止による事故を防止できる。
【００６３】
（５）上記実施形態では、プログラムシーケンス診断処理、安全機能診断処理、アクチュエータ制御処理といったタスク単位での時分割制御により、プログラムシーケンス診断処理、安全機能診断処理、アクチュエータ制御処理を並行して進めることで、制御プロセッサ１１による制御信号の生成と並行して制御プロセッサ１１の診断を実施した。しかし、タスク単位よりも細かい時間単位での時分割制御によりプログラムシーケンス診断処理、安全機能診断処理、アクチュエータ制御処理を並行して進めてもよい。
【００６４】
図７はプログラムシーケンス診断処理、安全機能診断処理、アクチュエータ制御処理の時分割制御の態様を示すタイムチャートである。この例では、時間軸は、ある時間長を持った複数のタイムスロットに分割されている。図７に示す例では、複数のタイムスロットｃの各間にタイムスロットａまたはｂが挟まれている。制御プロセッサ１１は、離散した複数のタイムスロットｃを利用して、アクチュエータ制御処理を実行する。また、制御プロセッサ１１は、所定個数のタイムスロットａを利用してプログラムシーケンス診断処理を実行した後、所定個数のタイムスロットｂを利用して安全機能診断処理を実行し、両診断処理において制御プロセッサの動作が正常であると診断された場合にＷＤＴ１２にリセット信号を出力する動作を周期的に繰り返す。この態様によれば、複数のアクチュエータ制御処理間の時間間隔を狭くすることができる。従って、１周期分のプログラムシーケンス診断処理および安全機能診断処理の所要時間が長い場合に有効である。
【００６５】
（６）この発明は複数のＣＰＵコアを備えたマルチコアＣＰＵを制御プロセッサ１１とする駆動制御装置にも勿論適用可能である。この場合において、例えば複数のＣＰＵコアにアクチュエータ制御処理を実行させ、各ＣＰＵコアの演算結果を比較することにより、ＣＰＵコアの動作異常の有無を診断してもよい。この場合、周期的に、各ＣＰＵコアの動作の異常が検出されたか否かを確認し、異常が検出されなかった場合はＷＤＴ１２にリセット信号を出力し、異常が検出された場合は制御プロセッサ１１を安全状態に移行させるようにすればよい。
【００６６】
（７）上記実施形態では、制御プロセッサ１１の動作を診断するための診断処理部１１４をソフトウェアにより実現したが、診断処理部１１４をハードウェアにより実現してもよい。
【符号の説明】
【００６７】
１……駆動制御装置、２……上位コントローラ、３……スイッチ回路、４……駆動回路、５……アクチュエータ、１１……制御プロセッサ、１２……ＷＤＴ、１１１……通信処理部、１１２……指令入力処理部、１１３……アクチュエータ制御処理部、１１４……診断処理部、１１５……制御信号出力処理部、１１６……安全状態移行処理部、１１４１……プログラムシーケンス診断処理部、１１４２……安全機能診断処理部。
【図１】
2016207002.tif 000003
【図２】
2016207002.tif 000004
【図３】
2016207002.tif 000005
【図４】
2016207002.tif 000006
【図５】
2016207002.tif 000007
【図６】
2016207002.tif 000008
【図７】
2016207002.tif 000009