(57)【要約】【課題】所定の時間内に、加工不良の発生を回避し、自動的に、診断テストを実施する機械の制御装置を提供する。【解決手段】機械の制御装置は、プログラムに基づいて機械の動作を制御するとともに、所定時間に機械の安全機能の診断テストを行う機械の制御装置であって、診断テストの実施予定時刻を計算する診断テスト時間計算部と、プログラムの実行前にプログラムの終了予測時刻を予測するプログラム実行時間予測部と、プログラムの終了予測時刻Ｔ２が診断テストの実施予定時刻を超えるか否かを判定することにより、所定時間に診断テストを実施するか否かを判定する診断テスト実施判定部と、診断テストを実行する診断テスト実行部とを備え、診断テスト実施判定部は、プログラムの終了予測時刻が診断テストの実施予定時刻を超える場合、プログラムの実行前に診断テストの実施予定時刻より先に診断テストを実施するよう、診断テスト実行部に指令する。【選択図】図１
2020123194.tif 000002
【特許請求の範囲】
【請求項１】
プログラムに基づいて機械の動作を制御するとともに、所定時間に機械の安全機能の診断テストを行う機械の制御装置であって、
前記診断テストの実施予定時刻Ｔ１を計算する診断テスト時間計算部と、
前記プログラムの実行前に前記プログラムの終了予測時刻Ｔ２を予測するプログラム実行時間予測部と、
前記プログラムの終了予測時刻Ｔ２が前記診断テストの実施予定時刻Ｔ１を超えるか否かを判定することにより、前記所定時間に前記診断テストを実施するか否かを判定する診断テスト実施判定部と、
前記診断テストを実行する診断テスト実行部と、
を備え、
前記診断テスト実施判定部は、前記プログラムの終了予測時刻Ｔ２が前記診断テストの実施予定時刻Ｔ１を超える場合、前記プログラムの実行前に前記診断テストの実施予定時刻Ｔ１より先に前記診断テストを実施するよう、前記診断テスト実行部に指令する、
機械の制御装置。
【請求項２】
前記診断テスト実施判定部は、
前記診断テストの実施予定時刻Ｔ１から所定の補正時間ｔ３を減算した前記診断テストの実施予定補正時刻Ｔ３を求め、
前記プログラムの終了予測時刻Ｔ２が前記診断テストの実施予定補正時刻Ｔ３を超えるか否かを判定することにより、前記所定時間に前記診断テストを実施するか否かを判定し、
前記プログラムの終了予測時刻Ｔ２が前記診断テストの実施予定補正時刻Ｔ３を超える場合、前記プログラムの実行前に前記診断テストの実施予定時刻Ｔ１より先に前記診断テストを実施するよう、前記診断テスト実行部に指令する、
請求項１に記載の機械の制御装置。
【請求項３】
前記プログラムの実行中及び実行後に前記診断テストの実施を管理する診断テスト実施管理部と、
前記プログラムを解析するプログラム解析部と、
前記プログラムの停止処理を行うプログラム停止処理部と、
を更に備え、
前記診断テスト実施判定部によって前記プログラムの終了予測時刻Ｔ２が前記診断テストの実施予定補正時刻Ｔ３を超えないと判定され、かつ、前記プログラムの実行中に前記診断テストの実施予定補正時刻Ｔ３を超える場合、前記診断テスト実施管理部は、前記プログラム解析部によって解析された前記プログラムの診断テスト実施可能ブロックで前記プログラムを停止するよう、前記プログラム停止処理部に要求し、かつ、前記プログラムの停止中に前記診断テストを実施するよう、前記診断テスト実行部に指令する、
請求項２に記載の機械の制御装置。
【請求項４】
前記プログラム停止処理部は、前記プログラムを停止した後、前記機械をリファレンス位置に移動させる、請求項３に記載の機械の制御装置。
【請求項５】
前記診断テスト実施可能ブロックは、前記プログラムにおける位置決め動作又は停止動作を含む非加工ブロックである、請求項３に記載の機械の制御装置。
【請求項６】
周辺機器の動作終了時刻を取得する取得部を更に備え、
前記診断テスト実施判定部は、前記周辺機器の動作予定時刻が前記診断テストの実施予定補正時刻Ｔ３を超えるか否かを判定することにより、前記所定時間に前記診断テストを実施するか否かを判定する、
請求項２に記載の機械の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工作機械又は産業用ロボット等の機械を制御する制御装置に関する。
【背景技術】
【０００２】
工作機械又は産業用ロボット等の機械において、機械部品の故障等によって安全機能が損なわれることを回避するため、例えば定期的な時間間隔で診断テストを実施することが知られている（例えば、特許文献１及び２参照）。
【０００３】
このような診断テストの一例としては、機械の異常を検知した場合に、軸移動を緊急停止させるための動力遮断回路の診断テストが挙げられる（ＭＣＣ遮断テスト）。この診断テストは、実際に動力遮断を行い、その時の動力遮断回路の接点状態を確認することで、遮断回路の異常を検出する。この診断テストは、動力遮断が必要となるため、機械の自動運転中に実施できない。したがって、機械の自動運転を行っていないタイミングを機械オペレータが見計らって、診断テストを実施する必要がある。
【０００４】
例えば、工作機械又は産業用ロボット等の機械を制御する数値制御装置が、設定した診断テストの時間が経過したことを機械オペレータ（あるいはＰＬＣ装置）に通知し、機械オペレータ（あるいはＰＬＣ装置）が機械の状態から診断テストの実施のタイミングを判断して、診断テストを実施していた。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第５６８１２２４号公報
【特許文献２】特開昭６２−２１９１０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
（１）機械の自動運転中に、診断テストの時刻となった場合において、機械の自動運転を優先すると、所定の周期内に、診断テストを実施できない。この場合、機械部品の故障等により、安全機能が動作しないリスクが高まっていた。
（２）機械の自動運転中に、診断テストの時刻となった場合において、診断テストを優先すると、加工が意図しないタイミングで中断される。この場合、加工不良が発生することがあった。
（３）所定の周期内に、診断テストを確実に実施するためには、診断テスト間の経過時間と機械の自動運転の時間とを、機械オペレータが確認する必要がある。この作業は機械オペレータの負担となっていた。
【０００７】
そこで、機械の制御装置において、（１）所定の時間内に、（２）加工不良の発生を回避し、（３）自動的に、診断テストを実施することが望まれている。
【課題を解決するための手段】
【０００８】
本開示に係る機械の制御装置は、プログラムに基づいて機械の動作を制御するとともに、所定時間に機械の安全機能の診断テストを行う機械の制御装置であって、前記診断テストの実施予定時刻Ｔ１を計算する診断テスト時間計算部と、前記プログラムの実行前に前記プログラムの終了予測時刻Ｔ２を予測するプログラム実行時間予測部と、前記プログラムの終了予測時刻Ｔ２が前記診断テストの実施予定時刻Ｔ１を超えるか否かを判定することにより、前記所定時間に前記診断テストを実施するか否かを判定する診断テスト実施判定部と、前記診断テストを実行する診断テスト実行部とを備え、前記診断テスト実施判定部は、前記プログラムの終了予測時刻Ｔ２が前記診断テストの実施予定時刻Ｔ１を超える場合、前記プログラムの実行前に前記診断テストの実施予定時刻Ｔ１より先に前記診断テストを実施するよう、前記診断テスト実行部に指令する。
【発明の効果】
【０００９】
一態様によれば、機械の制御装置において、（１）所定の時間内に、（２）加工不良の発生を回避し、（３）自動的に、診断テストを実施することができる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態に係る機械の制御装置の構成を示す図である。
【図２】Ｔ３＜Ｔ２の場合の診断テスト実施及びプログラム実行のタイミングチャートを示す図である。
【図３】Ｔ３＞Ｔ２及びＴ４＜Ｔ３の場合の診断テスト実施及びプログラム実行のタイミングチャートを示す図である。
【図４】Ｔ３＞Ｔ２及びＴ４＞Ｔ３の場合の診断テスト実施及びプログラム実行のタイミングチャートを示す図である。
【図５】本実施形態に係る機械の制御装置のプログラム実行前の動作を示すフローチャートである。
【図６】本実施形態に係る機械の制御装置のプログラム実行中の動作を示すフローチャートである。
【図７】本実施形態の変形例に係る機械の制御装置の構成を示す図である。
【発明を実施するための形態】
【００１１】
以下、添付の図面を参照して本発明の実施形態の一例について説明する。なお、各図面において同一又は相当の部分に対しては同一の符号を附すこととする。
【００１２】
図１は、本実施形態に係る機械の制御装置の構成を示す図である。図１に示す機械の制御装置１０は、例えば、プログラムに基づいて工作機械又は産業用ロボット等の機械の動作を制御する数値制御装置である。機械の制御装置１０は、定期的な周期（時間間隔）で機械の安全機能の診断テストを行う機能を有する。
【００１３】
このような診断テストとしては、以下のように、プログラム実行中に実施することができない診断テストが挙げられる。
（１）動力遮断回路テスト
実際に動力遮断を行い、その時の動力遮断回路の接点状態を確認することで、動力遮断回路の正常を確認するための診断テスト。
（２）ブレーキテスト
ブレーキの正常を確認するための診断テスト。重力軸のように、動力が失われた場合に軸が落下するなどの危険性がある軸に対して実施される。ブレーキをかけた状態でモータにトルクをかけ、モータが移動しないことを確認することで、ブレーキの正常を確認する。
（３）ＣＰＵ自己診断テスト／ＲＡＭテスト
制御装置のＣＰＵやＲＡＭが正常であることを確認するための診断テスト。ＣＰＵ自己診断テストは、各種指令の実行結果の確認、又はレジスタへの読み書き動作の確認を行う。ＲＡＭテストは、ＲＡＭの読み書き動作が正しく行えていることを確認する。どちらの診断テストも、プログラム実行中に使用するＣＰＵとＲＡＭエリアに対して診断テストを実施するため、動力を遮断して、軸が移動しない安全な状態で実施する必要がある。
【００１４】
機械の制御装置１０は、診断テスト時間計算部１２と、プログラム実行時間予測部１４と、記憶部１６と、診断テスト実施判定部１８と、診断テスト実施管理部２２と、診断テスト実行部２４と、プログラム解析部２６と、プログラム実行部（プログラム停止処理部）２８とを備える。
【００１５】
制御装置１０（記憶部１６を除く）は、例えば、ＤＳＰ（Digital Signal Processor）、ＦＰＧＡ（Field‐Programmable Gate Array）等の演算プロセッサで構成される。制御装置１０の各種機能は、例えば記憶部に格納された所定のソフトウェア（プログラム、アプリケーション）を実行することで実現される。制御装置１０の各種機能は、ハードウェアとソフトウェアとの協働で実現されてもよい。
記憶部１６は、例えばＥＥＰＲＯＭ等の書き換え可能なメモリ、又は例えばＨＤＤ（Hard Disk Drive）又はＳＳＤ（Solid State Drive）等の書き換え可能なディスクである。
【００１６】
なお、診断テスト時間計算部１２、プログラム実行時間予測部１４、記憶部１６、及び診断テスト実施判定部１８は、例えば機械の制御装置に設けられてもよいし、機械の制御装置にネットワークを介して接続されるサーバ装置に設けられてもよい。
【００１７】
図２は、Ｔ３＜Ｔ２の場合の診断テスト実施及びプログラム実行のタイミングチャートを示す図である。
図３は、Ｔ３＞Ｔ２及びＴ４＜Ｔ３の場合の診断テスト実施及びプログラム実行のタイミングチャートを示す図である。
図４は、Ｔ３＞Ｔ２及びＴ４＞Ｔ３の場合の診断テスト実施及びプログラム実行のタイミングチャートを示す図である。
図２〜図４において、各時間、各時刻及び各記号は以下の通りである。
Ｔ１：診断テストの実施予定時刻
Ｔ２：プログラムの終了予測時刻
Ｔ３：診断テストの実施予定補正時刻
Ｔ４：プログラムの実際の終了時刻
ｔ１：プログラムの実行予測時間
ｔ３：補正時間
白三角（上向き）：プログラムの開示時刻
白三角（下向き）：プログラムの終了予定時刻
黒三角（下向き）：プログラムの実際の終了時刻
白四角：診断テストの実施予定補正時刻
白丸：診断テストの実施予定時刻
黒丸：診断テストの実行時刻
【００１８】
診断テスト時間計算部１２は、診断テストの実施予定時刻Ｔ１を計算する。
【００１９】
プログラム実行時間予測部１４は、プログラムの実行前に、プログラムの実行予測時間ｔ１を予測するとともに、プログラムの終了予測時刻Ｔ２を予測する。
【００２０】
記憶部１６は、診断テストの実施予定時刻Ｔ１を補正するための所定の補正時間ｔ３を記憶する。プログラムの実際の実行時間は実行予測時間ｔ１に対して延びることがある、すなわちプログラムの実際の終了時間は終了予測時刻Ｔ２に対して遅れることがある。その一例としては工具交換のプログラムが挙げられる。所定の補正時間ｔ３は、プログラムの実行予測時間ｔ１に対する実際の終了時間の延び時間、すなわちプログラムの終了予測時刻Ｔ２に対する実際の終了時間の遅れ時間を考慮して設定されればよい。
【００２１】
診断テスト実施判定部１８は、定期的な周期（時間間隔）における次の所定時間に、診断テストを実施するか否かを判定する。具体的には、診断テスト実施判定部１８は、診断テストの実施予定時刻Ｔ１から所定の補正時間ｔ３を減算した診断テストの実施予定補正時刻Ｔ３を求め、プログラムの終了予測時刻Ｔ２が診断テストの実施予定補正時刻Ｔ３を超えるか否かを判定する。
【００２２】
図２に示すように、プログラムの終了予測時刻Ｔ２が診断テストの実施予定補正時刻Ｔ３を超える場合、診断テスト実施判定部１８は、プログラムの実行前に診断テストの実施予定時刻Ｔ１より先に診断テストを実施するよう、診断テスト実行部２４に指令する。
一方、図３に示すように、プログラムの終了予測時刻Ｔ２が診断テストの実施予定補正時刻Ｔ３を超えない場合、診断テスト実施判定部１８は、プログラムの実行後に診断テストの実施予定時刻Ｔ１に診断テストを実施するよう、診断テスト実施管理部２２に要求する。
【００２３】
診断テスト実施管理部２２は、プログラムの実行中及び実行後に診断テストの実施を管理する。具体的には、
図３に示すように、診断テスト実施判定部１８によってプログラムの終了予測時刻Ｔ２が診断テストの実施予定補正時刻Ｔ３を超えないと判定され、かつ、プログラムの実行中に診断テストの実施予定補正時刻Ｔ３を超えない場合（すなわち、プログラムの実際の終了時刻Ｔ４が診断テストの実施予定補正時刻Ｔ３を超えない場合）、診断テスト実施管理部２２は、プログラムの実行後に診断テストの実施予定時刻Ｔ１に診断テストを実施するよう、診断テスト実行部２４に指令する。
【００２４】
一方、図４に示すように、診断テスト実施判定部１８によってプログラムの終了予測時刻Ｔ２が診断テストの実施予定補正時刻Ｔ３を超えないと判定され、かつ、プログラムの実行中に診断テストの実施予定補正時刻Ｔ３を超える場合（すなわち、プログラムの実際の終了時刻Ｔ４が診断テストの実施予定補正時刻Ｔ３を超える場合）、診断テスト実施管理部２２は、プログラム解析部２６によって解析されたプログラムの診断テスト実施可能ブロック（例えば、プログラムにおける位置決め動作又は停止動作を含む非加工ブロック）でプログラムを停止するよう、プログラム実行部に要求し、かつ、プログラムの停止中に診断テストを実施するよう、診断テスト実行部２４に指令する。
【００２５】
診断テスト実行部２４は、診断テスト実施判定部１８又は診断テスト実施管理部２２からの診断テストの実施指令に応じて、診断テストを実行する。
【００２６】
プログラム解析部２６は、プログラムを解析する。
【００２７】
プログラム実行部２８は、プログラムを実行する。プログラム実行部２８は、診断テスト実施管理部２２からの停止要求に応じて、プログラム解析部２６によって解析されたプログラムの診断テスト実施可能ブロックでプログラムを停止する。プログラム実行部２８は、プログラムを停止した後、機械をリファレンス位置に移動させる。
【００２８】
次に、図５及び図６を参照して、本実施形態に係る機械の制御装置の動作について説明する。図５は、本実施形態に係る機械の制御装置のプログラム実行前の動作を示すフローチャートであり、図６は、本実施形態に係る機械の制御装置のプログラム実行中の動作を示すフローチャートである。
【００２９】
まず、図５を参照して、プログラム実行前の機械の制御装置１０の動作について説明する。診断テスト実施判定部１８は、診断テスト時間計算部１２によって計算された診断テストの実施予定時刻Ｔ１を取得する（Ｓ１１）。また、診断テスト実施判定部１８は、プログラム実行時間予測部１４によって予測されたプログラムの終了予測時刻Ｔ２を取得する（Ｓ１２）。また、診断テスト実施判定部１８は、記憶部１６に記憶された補正時間ｔ３を取得することにより、診断テストの実施予定時刻Ｔ１から補正時間ｔ３を減算した診断テストの実施予定補正時刻Ｔ３を取得する（Ｓ１３）。
【００３０】
診断テスト実施判定部１８は、プログラムの終了予測時刻Ｔ２が診断テストの実施予定補正時刻Ｔ３を超えるか否かを判定することにより、定期的な周期（時間間隔）における次の所定時間に診断テストを実施するか否かを判定する（Ｓ１４）。
【００３１】
図２に示すように、プログラムの終了予測時刻Ｔ２が診断テストの実施予定補正時刻Ｔ３を超える場合（Ｓ１４においてＹＥＳ）、診断テスト実施判定部１８は、プログラムの実行前に診断テストの実施予定時刻Ｔ１より先に診断テストを実施するよう、診断テスト実行部２４に診断テストの実施指令を行う。これにより、診断テスト実行部２４は、プログラムの開始前に診断テストを実施する（Ｓ１５）。
また、診断テスト実施判定部１８は、診断テストの要求フラグをＯＦＦにする（Ｓ１６）。これにより、診断テスト実施管理部２２は、後述するプログラム実行中及び実行後に診断テストの実施管理を行わない。
【００３２】
一方、図３に示すように、プログラムの終了予測時刻Ｔ２が診断テストの実施予定補正時刻Ｔ３を超えない場合（Ｓ１４においてＮＯ）、診断テスト実施判定部１８は、診断テストの要求フラグをＯＮにする（Ｓ１７）。これにより、診断テスト実施管理部２２は、後述するプログラム実行中及び実行後に診断テストの実施管理を行う。
【００３３】
次に、図６を参照して、プログラム実行中の機械の制御装置１０の動作を説明する。
診断テスト実施管理部２２は、診断テストの要求フラグがＯＮであるか否か（すなわち、プログラムの終了予測時刻Ｔ２が診断テストの実施予定補正時刻Ｔ３を超えない場合であるか否か）を判定する（Ｓ２１）。
【００３４】
診断テストの要求フラグがＯＮである場合（すなわち、図３及び図４に示すように、プログラムの終了予測時刻Ｔ２が診断テストの実施予定補正時刻Ｔ３を超えない場合）（Ｓ２１においてＹＥＳ）、診断テスト実施管理部２２は、現在の時刻が診断テストの実施予定補正時刻Ｔ３を超えたか否か（すなわち、プログラム実行中に診断テストの実施予定補正時刻Ｔ３を超えたか否か、換言すれば、プログラムの実際の終了時刻Ｔ４が診断テストの実施予定補正時刻Ｔ３を超えたか否か）を判定する（Ｓ２２）。
【００３５】
現在の時刻が診断テストの実施予定補正時刻Ｔ３を超えた場合（すなわち、プログラム実行中に診断テストの実施予定補正時刻Ｔ３を超えた場合、換言すれば、図４に示すように、プログラムの実際の終了時刻Ｔ４が診断テストの実施予定補正時刻Ｔ３を超えた場合）（Ｓ２２においてＹＥＳ）、診断テスト実施管理部２２は、プログラム解析部２６によって解析されたプログラムの診断テスト実施可能ブロック（例えば、プログラムにおける位置決め動作又は停止動作を含む非加工ブロック）でプログラムを停止するよう、プログラム実行部２８に停止要求を行う。
これにより、プログラム実行部２８は、診断テスト実施可能ブロックか否かを判定する（Ｓ２３）。
【００３６】
診断テスト実施可能ブロックである場合（Ｓ２３においてＹＥＳ）、プログラム実行部２８は、診断テスト実施可能ブロックでプログラムを停止する。例えば、プログラム実行部２８は、位置決め動作の完了位置でプログラムを停止（中断）する（Ｓ２４）。プログラム実行部２８は、プログラムを停止した後、機械をリファレンス位置（安全な位置）に移動させる。
【００３７】
診断テスト実施管理部２２は、プログラムの停止中に診断テストを実施するよう、診断テスト実行部２４に診断テストの実施指令を行う。これにより、診断テスト実行部２４は、プログラムの停止中に診断テストを実行する（Ｓ２５）。
【００３８】
次に、診断テスト実施管理部２２は、プログラム実行部２８に再開要求を行う。これにより、プログラム実行部２８は、機械をリファレンス位置から例えば位置決め動作の完了位置に復帰させ、プログラムを再開する（Ｓ２６）。
また、診断テスト実施管理部２２は、診断テストの要求フラグをＯＦＦにする（Ｓ２７）。
【００３９】
一方、ステップＳ２１において診断テストの要求フラグがＯＦＦである場合（Ｓ２１においてＮＯ）、後述するステップＳ２８に移行する。
【００４０】
また、ステップＳ２１において診断テストの要求フラグがＯＮであり（すなわち、プログラムの終了予測時刻Ｔ２が診断テストの実施予定補正時刻Ｔ３を超えず）、かつ現在の時刻が診断テストの実施予定補正時刻Ｔ３を超えていない場合（すなわち、プログラム実行中に診断テストの実施予定補正時刻Ｔ３を超えていない場合、換言すれば、図３に示すように、プログラムの実際の終了時刻Ｔ４が診断テストの実施予定補正時刻Ｔ３を超えていない場合）（Ｓ２２においてＮＯ）、診断テスト実施管理部２２は、プログラムの実行後に診断テストの実施予定時刻Ｔ１に診断テストを実施するよう、診断テスト実行部２４に診断テストの実施指令を行う。後述するステップＳ２８に移行する。
【００４１】
また、ステップＳ２１において診断テストの要求フラグがＯＮであり（すなわち、プログラムの終了予測時刻Ｔ２が診断テストの実施予定補正時刻Ｔ３を超えず）、現在の時刻が診断テストの実施予定補正時刻Ｔ３を超えており（すなわち、プログラム実行中に診断テストの実施予定補正時刻Ｔ３を超えており、換言すれば、実際のプログラム終了時刻が診断テストの実施予定補正時刻Ｔ３を超えており）、かつ診断テストの実施可能ブロックでない場合（Ｓ２３においてＮＯ）、後述するＳ２８に移行する。
【００４２】
ステップＳ２８では、プログラムが終了であるか否かを判定する（Ｓ２８）。プログラムが終了である場合（Ｓ２８においてＹＥＳ）、診断テストの要求フラグをＯＦＦにする（Ｓ２９）。一方、プログラムが終了でない場合（Ｓ２８においてＮＯ）、診断テストの要求フラグをＯＦＦにリセットすることなく終了する（例えば、ステップＳ２１〜Ｓ２９の動作が繰り返される）。
【００４３】
以上説明したように、本実施形態に係る機械の制御装置１０によれば、プログラム実行前にプログラムの終了予測時刻を予測し、プログラムの終了予測時刻が診断テストの実施予定時刻を超える場合、プログラムの実行前に診断テストの実施予定時刻より先に診断テストを実施する。これにより、
（１）所定時間（定期的な周期、時間間隔）内に、診断テストを実施することができる。これにより、機械部品の故障等による機械の安全性の低下を抑制することができる。
なお、診断テストの周期を短く設定すれば、機械の安全性を向上させることができる。
（２）加工不良の発生を回避しつつ、診断テストを実施することができる。
（３）自動的に診断テストを実施することができる。これにより、機械オペレータの負担を軽減することができる。
【００４４】
また、本実施形態に係る機械の制御装置１０によれば、診断テストの実施予定時刻Ｔ１から所定の補正時間ｔ３を減算した診断テストの実施予定補正時刻Ｔ３を求め、プログラムの終了予測時刻Ｔ２が診断テストの実施予定補正時刻Ｔ３を超える場合、プログラムの実行前に診断テストの実施予定時刻Ｔ１より先に診断テストを実施する。これにより、
プログラムの実行予測時間ｔ１に対する実際の終了時間の延び時間、すなわちプログラムの終了予測時刻Ｔ２に対する実際の終了時間の遅れ時間を補うことができる。
【００４５】
また、本実施形態に係る機械の制御装置１０によれば、プログラムの終了予測時刻Ｔ２が診断テストの実施予定補正時刻Ｔ３を超えず、かつ、プログラムの実行中に診断テストの実施予定補正時刻Ｔ３を超える場合、プログラムの診断テスト実施可能ブロックでプログラムを停止し、プログラムの停止中に診断テストを実施する。これにより、
（２）加工中でも、加工不良の発生を回避しつつ、診断テストを実施することができる。
【００４６】
機械の自動運転中の診断テストの実行を回避する方法として、自動運転の開始時間を遅らせる方法が考えられる。しかし、この方法は、加工停止の無駄時間が発生してしまい、生産性が低下してしまう。これに対して、本実施形態に係る機械の制御装置１０によれば、加工停止の無駄時間を回避し、生産性の低下を回避することができる。
【００４７】
（変形例）
図７は、本実施形態の変形例に係る機械の制御装置１０の構成を示す図である。図７に示す機械の制御装置１０は、インターフェース（ＩＦ：取得部）３２を更に備える点で図１に示す機械の制御装置１０と異なる。
インターフェース３２は、例えばネットワークを介してロボット又は搬送機等の周辺機器の制御装置から周辺機器の動作予定時間（例えば、動作開始時刻及び動作終了時刻）を取得する。
【００４８】
診断テスト実施判定部１８は、プログラムの終了予測時刻Ｔ２に加えて、周辺機器の動作終了時刻に基づいて、診断テストの実施を判定してもよい。具体的には、診断テスト実施判定部１８は、周辺機器の動作予定時刻が診断テストの実施予定補正時刻Ｔ３を超えるか否かを判定することにより、所定時間に診断テストを実施するか否かを判定してもよい。
【００４９】
これにより、診断テスト実施判定部１８は、周辺機器の動作予定時刻が診断テストの実施予定補正時刻Ｔ３を超える場合、プログラムの実行前に診断テストの実施予定時刻Ｔ１より先に診断テストを実施するよう、診断テスト実行部２４に指令してもよい。
【００５０】
また、診断テスト実施判定部１８によって周辺機器の動作予定時刻が診断テストの実施予定補正時刻Ｔ３を超えないと判定され、かつ、プログラムの実行中に診断テストの実施予定補正時刻Ｔ３を超える場合、診断テスト実施管理部２２は、プログラム解析部２６によって解析されたプログラムの診断テスト実施可能ブロックでプログラムを停止するよう、プログラム実行部２８に要求し、かつ、プログラムの停止中に診断テストを実施するよう、診断テスト実行部２４に指令してもよい。
【００５１】
このように、プログラムの終了予測時刻Ｔ２に加えて、周辺機器の動作終了時刻に基づいて、診断テストの実施を判定することにより、周辺機器の動作中に診断テストが実施されることを回避することができる。
【００５２】
（変形例）
本実施形態では、診断テストの実施を判定において、診断テストの実施予定時刻Ｔ１から所定の補正時間ｔ３を減算した診断テストの実施予定補正時刻Ｔ３を用いたが、診断テストの実施予定補正時刻Ｔ３に代えて診断テストの実施予定時刻Ｔ１そのものを用いてもよい。
この場合でも、診断テスト実施判定部１８は、プログラムの終了予測時刻Ｔ２が診断テストの実施予定時刻Ｔ１を超えるか否かを判定することにより、定期的な周期（時間間隔）における次の所定時間に診断テストを実施するか否かを判定することができる。また、プログラムの終了予測時刻Ｔ２が診断テストの実施予定時刻Ｔ１を超える場合、診断テスト実施判定部１８は、プログラムの実行前に診断テストの実施予定時刻Ｔ１より先に診断テストを実施するよう、診断テスト実行部２４に指令することができる。
【００５３】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限定されることなく、種々の変更及び変形が可能である。例えば、上述した実施形態では、所定の周期で、すなわち定期的な時間間隔で診断テストを繰り返し行う機械の制御装置を例示したが、本実施形態はこれに限定されず、所定時間に診断テストを１回だけ行う機械の制御装置にも適用可能である。
【００５４】
また、上述した実施形態では、工作機械を制御する工作機械の数値制御装置を例示したが、本実施形態はこれに限定されず、産業用ロボット等の種々の機械の制御装置に適用可能である。
【符号の説明】
【００５５】
１０  機械の制御装置
１２  診断テスト時間計算部
１４  プログラム実行時間予測部
１６  記憶部
１８  診断テスト実施判定部
２２  診断テスト実施管理部
２４  診断テスト実行部
２６  プログラム解析部
２８  プログラム実行部（プログラム停止処理部）
３２  インターフェース（ＩＦ：取得部）
【図１】
2020123194.tif 000003
【図２】
2020123194.tif 000004
【図３】
2020123194.tif 000005
【図４】
2020123194.tif 000006
【図５】
2020123194.tif 000007
【図６】
2020123194.tif 000008
【図７】
2020123194.tif 000009