(57)【特許請求の範囲】
【請求項１】
予め設定された事象の発生を検知する検知部と、
前記検知部が前記事象の発生を検知したとき、逐次変化する第１の数値制御情報を参照して前記事象の発生が検知されたタイミングにおける第１の数値制御情報を基準値として取得し、前記基準値を用いて予め設定された第１の演算処理を行うことによって第１判定条件を生成する、条件生成部と、
前記条件生成部が前記第１判定条件を生成した後、逐次変化する第２の数値制御情報の記録を開始して終了し、前記第２の数値制御情報の記録の終了後、前記逐次変化する第１の数値制御情報が前記第１判定条件を満たさない状態から前記第１判定条件を満たす状態に至ったとき、前記第２の数値制御情報の記録を再び開始する、ロギング処理部と、
を備えることを特徴とする数値制御装置。
【請求項２】
前記条件生成部は、前記基準値を用いて予め設定された第２の演算処理を行うことによって第２判定条件を生成し、
前記ロギング処理部は、前記逐次変化する第１の数値制御情報が前記第２判定条件を満たさない状態から前記第２判定条件を満たす状態に至ったとき、前記第２の数値制御情報の記録を終了する、
ことを特徴とする請求項１に記載の数値制御装置。
【請求項３】
前記第１または第２の演算処理は、予め設定されたオフセット値を前記基準値からオフセットすることによってしきい値を演算する処理を含み、
前記ロギング処理部は、前記逐次変化する第１の数値制御情報と前記しきい値との比較に基づいて前記第２の数値制御情報の記録の開始または終了のタイミングを判定する、
ことを特徴とする請求項２に記載の数値制御装置。
【請求項４】
前記第１の数値制御情報は、アラーム番号、加工プログラムを構成する複数のブロックのうちの実行中のブロックの番号、前記加工プログラムを実行開始してからの経過時間、数値制御対象の移動距離、使用工具番号、指令速度、指令主軸回転数、モータの回転数検出値、位置検出値、速度検出値、またはトルク検出値である、
ことを特徴とする請求項１から請求項３の何れか一項に記載の数値制御装置。
【請求項５】
前記第２の数値制御情報は、加工プログラムを構成する複数のブロックのうちの実行中のブロックの番号、前記加工プログラムを実行開始してからの経過時間、数値制御対象の移動距離、使用工具番号、指令速度、指令主軸回転数、モータの回転数検出値、位置検出値、速度検出値、またはトルク検出値である、
ことを特徴とする請求項１から請求項３の何れか一項に記載の数値制御装置。
【請求項６】
数値制御装置の診断のために逐次変化する数値制御情報を記録するロギング方法であって、
前記数値制御装置が予め設定された事象の発生を検知したとき、条件生成部が、前記事象の発生が検知されたタイミングにおける第１の数値制御情報を基準値として取得して、前記基準値を用いて予め設定された第１の演算処理を行うことによって第１判定条件を生成する第１生成ステップと、
前記条件生成部が前記第１判定条件を生成した後、ロギング処理部が、逐次変化する第２の数値制御情報の記録を開始して終了する記録ステップと、
前記第２の数値制御情報の記録の終了後、前記ロギング処理部が、前記逐次変化する第１の数値制御情報が前記第１判定条件を満たさない状態から前記第１判定条件を満たす状態に至ったとき、前記第２の数値制御情報の記録を再び開始する、記録再開ステップと、
を備えることを特徴とするロギング方法。
【請求項７】
前記条件生成部が、前記基準値を用いて予め設定された第２の演算処理を行うことによって第２判定条件を生成する第２生成ステップと、
前記ロギング処理部が、前記逐次変化する第１の数値制御情報が前記第２判定条件を満たさない状態から前記第２判定条件を満たす状態に至ったとき、前記第２の数値制御情報の記録を終了する、終了ステップと、
をさらに備えることを特徴とする請求項６に記載のロギング方法。
【請求項８】
前記第１または第２の演算処理は、予め設定されたオフセット値を前記基準値からオフセットすることによってしきい値を演算する処理を含み、
前記記録再開ステップおよび前記終了ステップは、前記ロギング処理部が、前記逐次変化する第１の数値制御情報と前記しきい値との比較に基づいて前記第２の数値制御情報の記録の開始または終了のタイミングを判定するステップを含む、
ことを特徴とする請求項７に記載のロギング方法。
【請求項９】
前記第１の数値制御情報は、アラーム番号、加工プログラムを構成する複数のブロックのうちの実行中のブロックの番号、前記加工プログラムを実行開始してからの経過時間、数値制御対象の移動距離、使用工具番号、指令速度、指令主軸回転数、モータの回転数検出値、位置検出値、速度検出値、またはトルク検出値である、
ことを特徴とする請求項６から請求項８の何れか一項に記載のロギング方法。
【請求項１０】
前記第２の数値制御情報は、加工プログラムを構成する複数のブロックのうちの実行中のブロックの番号、前記加工プログラムを実行開始してからの経過時間、数値制御対象の移動距離、使用工具番号、指令速度、指令主軸回転数、モータの回転数検出値、位置検出値、速度検出値、またはトルク検出値である、
ことを特徴とする請求項６から請求項８の何れか一項に記載のロギング方法。
【請求項１１】
夫々ブロック番号が付された複数のブロックを備える加工プログラムをブロック番号順に実行し、前記加工プログラムを繰り返し実行する制御部、
をさらに備え、
前記第１の数値制御情報は前記制御部が実行中のブロックのブロック番号であり、
前記第１の演算処理は、予め設定されたオフセット値を前記基準値から減算して得られる値をしきい値に設定する演算処理であり、
前記第１判定条件は、前記第１の数値制御情報が前記しきい値を越えることを条件成立とする判定条件である、
ことを特徴とする請求項１に記載の数値制御装置。
【請求項１２】
夫々ブロック番号が付された複数のブロックを備える加工プログラムをブロック番号順に実行し、前記加工プログラムを繰り返し実行する制御部、
をさらに備え、
前記第１の数値制御情報は前記制御部が実行中のブロックのブロック番号であり、
前記第２の演算処理は、予め設定されたオフセット値を前記基準値に加算して得られる値をしきい値に設定する演算処理であり、
前記第２判定条件は、前記第１の数値制御情報が前記しきい値を越えることを条件成立とする判定条件である、
ことを特徴とする請求項２に記載の数値制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、数値制御装置およびロギング方法に関する。
【背景技術】
【０００２】
数値制御装置を用いて工作機械を数値制御（Ｎｕｍｅｒｉｃａｌ  Ｃｏｎｔｒｏｌ：ＮＣ）するシステムにおいて、アラーム発生等の異常発生時に、異常発生要因を特定するための診断情報をロギングすることが一般的に行われる。異常発生要因を特定するためには、異常発生前後の診断情報が必要となることがあるためである。【０００３】
異常発生前後の診断情報を取得するための技術として、例えば特許文献１の技術によれば、数値制御装置は、異常が発生するまでは循環メモリに診断情報を順次上書きして蓄積し、異常が発生すると循環メモリとは別のロギングバッファメモリに診断情報を記憶する。【０００４】
また、例えば特許文献２には、数値制御装置に、ロギングの開始条件およびロギングの終了条件が予め設定される数値制御装置が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−２６４０号公報
【特許文献２】特開２００６−３９６４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載される技術によれば、異常発生前後の診断情報をロギングするために、異常が発生しない場合においても、診断情報のロギングを常時行う必要があった。その結果、ＣＰＵ負荷が高くなり、場合によっては性能が低下するという問題があった。特に、複数の異常発生要因を特定したい場合には、発生する異常によって取得したい情報が異なるため、いつ発生するか分からない異常に対して大量の診断情報をロギングし続ける必要があった。【０００７】
また、特許文献２に記載される技術によれば、アラーム発生など異常発生をトリガとしてその前後の診断情報を取得したい場合に、いつ、どこで発生するか分からない異常に対してロギングの開始条件およびロギングの終了条件をユーザが予想して設定するのは困難という問題があった。【０００８】
この発明は、かかる問題点を解決するためになされたものであり、異常発生要因を特定するために必要な異常発生のタイミングの付近の診断情報を効率よく取得することができる数値制御装置およびロギング方法を得ることを目的としている。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本発明は、予め設定された事象の発生を検知する検知部と、前記検知部が前記事象の発生を検知したとき、逐次変化する第１の数値制御情報を参照して前記事象の発生が検知されたタイミングにおける第１の数値制御情報を基準値として取得し、前記基準値を用いて予め設定された第１の演算処理を行うことによって第１判定条件を生成する、条件生成部と、前記条件生成部が前記第１判定条件を生成した後、逐次変化する第２の数値制御情報の記録を開始して終了し、前記第２の数値制御情報の記録の終了後、前記逐次変化する第１の数値制御情報が前記第１判定条件を満たさない状態から前記第１判定条件を満たす状態に至ったとき、前記第２の数値制御情報の記録を再び開始する、ロギング処理部と、を備えることを特徴とする。
【発明の効果】
【００１０】
本発明にかかる数値制御装置は、診断情報を常時ロギング処理することなく、かつ、ユーザがロギング処理の開始タイミングを固定的に設定する必要なく、異常発生の直前の診断情報を取得することができるので、異常発生のタイミングの付近の診断情報を効率よく取得することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施の形態１の数値制御装置の機能構成を示す図である。
【図２】図２は、実施の形態１の数値制御装置のハードウェア構成例を示す図である。
【図３】図３は、実施の形態１の数値制御装置の動作を説明するフローチャートである。
【図４】図４は、ロギング処理が開始／終了される様子を説明するタイミングチャートである。
【発明を実施するための形態】
【００１２】
以下に、本発明にかかる実施の形態の数値制御装置およびロギング方法を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１３】
実施の形態１．
図１は、本発明の実施の形態１の数値制御装置の機能構成を示す図である。数値制御装置１００は、工作機械の駆動部３００に接続されている。駆動部３００とは、例えばモータを駆動するサーボアンプを含む。数値制御装置１００は、駆動部３００に対して駆動指令２２を供給する。
【００１４】
数値制御装置１００は、外部からロギング処理にかかる設定情報２００が設定される。設定情報２００は、トリガ条件１１、開始オフセット１２、終了オフセット１３、およびログデータ情報１４を含んでいる。設定情報２００に含まれる各情報は後述する。
【００１５】
数値制御装置１００は、条件記憶部１、トリガ判定部２、条件生成部３、ロギング処理部４、ロギングバッファ５、および数値制御部６を備えている。
【００１６】
数値制御部６は、内蔵する加工プログラム（加工プログラム３６）に基づいて数値制御処理を実行する。数値制御処理は駆動部３００に供給する駆動指令２２を生成する処理である。加工プログラム３６は、指令の単位であるブロックを複数備えて構成される。各ブロックは、加工プログラム３６内でユニークなブロック番号が付されている。加工プログラム３６を構成する複数のブロックは、先頭から順番に解析されて実行される。例えば、各ブロックには、加工プログラム３６の先頭から昇順となるようにブロック番号が付されている。以降、単にブロック番号と表記する場合には、加工プログラム３６のブロック番号を示すものとする。
【００１７】
数値制御部６による数値制御処理は、１以上の処理によって構成される。例えば、数値制御処理は、加工プログラム３６からブロックを読み込んでブロックに記載された指令を解析する解析処理、解析処理による解析結果に基づいて工作機械の軌跡を補間する補間処理、補間された軌跡上を工作機械を移動させる速度を加減速する加減速処理、加減速処理によって求められた速度で工作機械を移動させるための演算周期毎の位置指令または速度指令を生成する指令生成処理などを含む。なお、各処理が出力するデータであって、駆動指令２２を除くデータを、中間データと表記する。また、数値制御処理は、異常を検出してアラーム通知を出力するアラーム出力処理を含んでいてもよい。また、数値制御処理は、工作機械またはモータの状態値（位置検出値または速度検出値）をフィードバックするフィードバック処理を含んでいてもよい。また、数値制御処理は、任意のフィルタ処理を含んでいてもよい。その他、数値制御処理は、制御の手法に応じて任意の処理を含んで構成されることが可能である。
【００１８】
トリガ判定部２は、異常として予め設定された事象の発生を検知する検知部として機能する。具体的には、トリガ判定部２は、条件記憶部１が記憶するトリガ条件１１を読み出す。そして、トリガ判定部２は、数値制御部６の監視情報１９を監視し、監視情報１９がトリガ条件１１を満たすか否かを判定する。そして、トリガ判定部２は、判定結果１５を条件生成部３に出力する。ここでは、トリガ判定部２は、監視情報１９がトリガ条件１１を満たしていない状態から監視情報１９がトリガ条件１１を満たすに至ったタイミングで、「トリガ条件成立」を意味するパルスを判定結果１５として条件生成部３に出力するものとする。
【００１９】
監視情報１９とは、異常とされる事象の発生の検知のために監視される情報である。監視情報１９としては任意の種類のデータが採用可能である。例えば、アラーム通知が監視情報１９として採用可能である。また、任意の中間データが監視情報１９として採用可能である。例えば、ブロック番号、経過時間、移動距離、使用工具番号、指令速度、指令主軸回転数などが監視情報１９として採用可能である。また、駆動部３００からの各種状態値が監視情報１９として採用されてもよい。例えば、駆動部３００がモータである場合には、モータの回転数検出値、位置検出値、速度検出値、またはトルク検出値が監視情報１９として採用可能である。
【００２０】
トリガ条件１１とは、異常とされる事象の発生を検知するための判定条件である。アラーム通知が監視情報１９として採用される場合には、トリガ条件１１として例えばアラームの種類毎に予め割り振られた識別番号（アラーム番号）、または、ブロック番号を含んで構成されてもよい。また、監視情報１９として使用工具番号が採用される場合には、異常と判定される特定の使用工具番号がトリガ条件１１として設定されてもよい。また、監視情報１９として経過時間、移動距離、指令速度、または指令主軸回転数が採用される場合には、トリガ条件１１として、トリガ判定のためのしきい値が設定される。また、例えば、トリガ条件１１にアラーム番号が含まれる場合には、所定のアラーム番号のアラーム通知が検知されたか否かがトリガ判定部２によって判定される。また、トリガ条件１１にアラーム番号が含まれる場合には、所定のブロック番号のブロックを実行中にアラーム通知が検知されたか否かがトリガ判定部２によって判定される。
【００２１】
条件生成部３は、トリガ判定部２が異常とされる事象の発生を検知したとき、条件記憶部１に格納されている開始オフセット１２および終了オフセット１３を用いて、ロギング処理の開始条件１６およびロギング処理の終了条件１７を生成する。条件生成部３は、生成した開始条件１６および終了条件１７を、条件記憶部１に格納する。
【００２２】
ここで、開始条件１６は、ロギング処理の開始タイミングを判定するための判定条件であり、終了条件１７は、ロギング処理の終了タイミングを判定するための判定条件である。開始条件１６および終了条件１７を、タイミング判定条件と表記する。タイミング判定条件は、例えばしきい値を含む。
【００２３】
実施の形態では、タイミング判定条件のしきい値は、トリガ条件成立時の状態情報２１の値に所定の演算処理を実行することによって動的に生成される。状態情報２１とは、ロギング処理の開始・終了タイミングの判定のために監視される情報（第１の数値制御情報）である。制御に応じて変化する任意の種類の情報が状態情報２１として採用可能である。例えば、例えば、ブロック番号、加工プログラム３６の実行開始からの経過時間、移動距離、使用工具番号、指令速度、または指令主軸回転数が、状態情報２１として採用可能である。また、モータの回転数検出値、位置検出値、速度検出値、またはトルク検出値が状態情報２１として採用可能である。
【００２４】
トリガ条件成立時の状態情報２１の値を基準値と表記する。ここでは、条件生成部３は、基準値に対して、予め設定された各オフセット値（開始オフセット１２、終了オフセット１３）がオフセットされることによってタイミング判定条件のしきい値を演算する。例えば、条件生成部３は、基準値から開始オフセット１２を減算することによって開始条件１６のしきい値を算出する。また、条件生成部３は、基準値に終了オフセット１３を加算することによって終了条件１７のしきい値を算出する。
【００２５】
開始条件１６を生成するために基準値に対して開始オフセット１２を加算するか減算するかは、状態情報２１の種類に応じて任意に設定可能である。同様に、終了条件１７を生成するために基準値に対して終了オフセット１３を加算するか減算するかは、状態情報２１の種類に応じて任意に設定可能である。また、しきい値を越えたときか、または、しきい値を下回ったときの何れを条件成立とするかは、状態情報２１の種類に応じて任意に設定可能である。
【００２６】
条件生成部３は、条件記憶部１からログデータ情報１４を読み出すことによって、状態情報２１として設定された数値制御情報を認識することができる。条件生成部３は、判定結果１５が「トリガ条件不成立」から「トリガ条件成立」となったとき、指定された種類の状態情報２１を数値制御部６から取得して、取得した診断情報２０を基準値とする。
【００２７】
例えば、ログデータ情報１４がブロック番号を状態情報２１として指定する場合には、開始オフセット１２および終了オフセット１３としてブロック数が設定される。条件生成部３は、トリガ条件成立時に実行中のブロックのブロック番号から開始オフセット１２に設定されたブロック数を減算して得られるブロック番号をしきい値とし、このしきい値を越えることを開始条件１６とする。また、条件生成部３は、トリガ条件成立時に実行中のブロックのブロック番号から終了オフセット１３に設定されたブロック数を加算して得られるブロック番号をしきい値とし、このしきい値を越えることを終了条件１７とする。
【００２８】
また、ログデータ情報１４が経過時間を状態情報２１として指定する場合には、開始オフセット１２および終了オフセット１３として時間が設定される。条件生成部３は、トリガ条件成立時の経過時間に開始オフセット１２に設定された時間を減算して得られる時間をしきい値とし、経過時間がこのしきい値を越えることを開始条件１６とする。また、条件生成部３は、トリガ条件成立時の経過時間に終了オフセット１３に設定された時間を加算して得られる時間をしきい値とし、経過時間がこのしきい値を越えることを終了条件１７とする。なお、経過時間とは、例えば加工プログラム３６を先頭から実行開始してからの時間である。経過時間は、例えば加工プログラム３６の実行サイクル毎にリセットされる。
【００２９】
また、ログデータ情報１４が移動距離を状態情報２１として指定する場合には、開始オフセット１２および終了オフセット１３として距離が設定される。条件生成部３は、トリガ条件成立時の移動距離に開始オフセット１２に設定された距離を減算（または加算）して得られる移動距離をしきい値とし、移動距離がこのしきい値を越えること（または下回ること）を開始条件１６とする。また、条件生成部３は、トリガ条件成立時の移動距離に終了オフセット１３に設定された距離を加算（または減算）して得られる移動距離をしきい値とし、移動距離がこのしきい値を越えること（または下回ること）を終了条件１７とする。
【００３０】
また、ログデータ情報１４が指令速度を状態情報２１として指定する場合には、開始オフセット１２および終了オフセット１３として速度が設定される。条件生成部３は、トリガ条件成立時の指令速度に開始オフセット１２に設定された速度を減算（または加算）して得られる速度をしきい値とし、指令速度がこのしきい値を越えること（または下回ること）を開始条件１６とする。また、条件生成部３は、トリガ条件成立時の指令速度に終了オフセット１３に設定された速度を加算（または減算）して得られる速度をしきい値とし、指令速度がこのしきい値を越えること（または下回ること）を終了条件１７とすることができる。
【００３１】
また、ログデータ情報１４が指令主軸回転数を状態情報２１として指定する場合には、開始オフセット１２および終了オフセット１３として主軸回転数が設定される。条件生成部３は、トリガ条件成立時の指令主軸回転数に開始オフセット１２に設定された主軸回転数を減算（または加算）して得られる主軸回転数をしきい値とし、指令主軸回転数がこのしきい値を越えること（または下回ること）を開始条件１６とする。また、条件生成部３は、トリガ条件成立時の指令主軸回転数に終了オフセット１３に設定された主軸回転数を加算（または減算）して得られる主軸回転数をしきい値とし、指令主軸回転数がこのしきい値を越えること（または下回ること）を終了条件１７とする。
【００３２】
なお、条件生成部３が各しきい値を演算する手法は、基準値をオフセットする手法だけに限定されない。例えば、基準値に所定の係数を乗算することによって各しきい値を演算するようにしてもよい。その他に、条件生成部３は、各しきい値を演算する手法として種々の演算手法が採用可能である。
【００３３】
また、開始条件１６および終了条件１７のうちの１つまたは両方は、複数の条件の組み合わせによって構成されてもよい。複数の条件の組み合わせとは、例えば、複数の条件の論理和、論理積、排他的論理和、またはこれらの演算の組み合わせによって複数の条件の関係が定義されていることをいう。
【００３４】
ロギング処理部４は、ログデータ情報１４と、条件生成部３によって生成された開始条件１６および終了条件１７と、を条件記憶部１から読み出す。そして、ロギング処理部４は、ログデータ情報１４によって指定された状態情報２１を数値制御部６から逐次取得するとともに、取得した状態情報２１を開始条件１６および終了条件１７と比較する。そして、ロギング処理部４は、診断情報２０のロギング処理を比較結果に基づくタイミングで開始したり終了したりする。
【００３５】
ここで、診断情報２０とは、異常の診断に供される数値制御情報（第２の数値制御情報）である。数値制御情報には、制御に応じて変化する任意の種類の情報が採用可能である。如何なる種類の数値制御情報を診断情報２０としてロギング対象とするかは、ログデータ情報１４によって指定される。例えば、ブロック番号、加工プログラム３６の実行開始からの経過時間、移動距離、使用工具番号、指令速度、または指令主軸回転数が、ログデータ情報１４によって指定可能である。その他に、数値制御処理を構成する任意の処理の中間データが、ログデータ情報１４によって指定可能である。また、モータの回転数検出値、位置検出値、速度検出値、またはトルク検出値が診断情報２０として採用可能である。
【００３６】
ロギング処理部４は、ロギング処理実行中においては、診断情報２０を逐次取得して、取得した診断情報２０をログデータ１８としてロギングバッファ５に蓄積記憶させる。なお、ロギング処理部４は、取得した診断情報２０を加工してログデータ１８としてロギングバッファ５に蓄積記憶させてもよい。
【００３７】
図２は、数値制御装置１００のハードウェア構成例を示す図である。数値制御装置１００は、演算装置３１、主記憶装置３２、補助記憶装置３３、およびＩ／Ｏ３４を備えている。演算装置３１、主記憶装置３２、補助記憶装置３３、およびＩ／Ｏ３４はバスで互いに接続されている。
【００３８】
演算装置３１は、実施の形態の数値制御方法を実現するためのプログラムである数値制御プログラム３５を実行する。Ｉ／Ｏ３４は、駆動部３００に接続するための接続インタフェースである。Ｉ／Ｏ３４は、ユーザに対して各種情報を視認可能に表示する表示装置が接続されてもよい。ＩＯ３４は、ユーザからの設定情報２００の入力を受け付ける入力装置が接続されてもよい。
【００３９】
主記憶装置３２は、プログラム展開領域および演算装置３１のワークエリアとして機能する。主記憶装置３２は、例えばＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）など、補助記憶装置３３よりも高速に動作することが可能なメモリによって構成される。補助記憶装置３３は、数値制御プログラム３５および加工プログラム３６を予め記憶する記録媒体として機能する。補助記憶装置３３は、例えばＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、着脱可能なメモリデバイス、またはこれらの組み合わせによって構成される。
【００４０】
数値制御プログラム３５は、補助記憶装置３３から読み出され、バスを介して主記憶装置３２へロードされる。演算装置３１は、主記憶装置３２内にロードされた数値制御プログラム３５を実行する。演算装置３１は、主記憶装置３２に展開された数値制御プログラム３５を実行することによって、トリガ判定部２、条件生成部３、ロギング処理部４、および数値制御部６として機能する。数値制御部６は、各種中間データを主記憶装置３２のワークエリアに一時記憶される。主記憶装置３２のワークエリアを介して機能構成要素（トリガ判定部２、条件生成部３、ロギング処理部４、および数値制御部６）間のデータの授受が実行される。数値制御部６が生成した駆動指令２２は、Ｉ／Ｏ３４を介して駆動部３００に出力される。
【００４１】
条件記憶部１およびロギングバッファ５は、主記憶装置３２または補助記憶装置３３に確保される。ロギングバッファ５に蓄積記憶された診断情報２０は、例えばＩ／Ｏ３４を介して外部に読み出されることが可能である。ロギングバッファ５が着脱可能なメモリデバイスに確保される場合には、ユーザは、当該メモリデバイスをコンピュータに接続することによって診断情報２０を読むことができる。数値制御装置１００が表示装置を備える場合には、ロギングバッファ５に蓄積記憶された診断情報２０を当該表示装置に表示可能に構成されてもよい。
【００４２】
なお、数値制御装置１００のハードウェア構成は、上記したハードウェア構成例に限定されない。例えば、トリガ判定部２、条件生成部３、ロギング処理部４、および数値制御部６のうちの一部または全部が、ハードウェア回路またはハードウェア回路とソフトウェアとの組み合わせによって構成されてもよい。
【００４３】
図３は、数値制御装置１００の動作を説明するフローチャートである。なお、図３に示す一連の処理は、サンプリング周期毎に実行される。サンプリング周期は制御周期と等しくてもよいし、制御周期よりも大きくてもよい。
【００４４】
まず、ロギング処理部４は、ロギング処理を実行中であるか否かを判定する（Ｓ１）。ロギング処理を実行中ではない場合、ロギング処理部４は、開始条件１６とその時点の状態情報２１とに基づき、開始条件１６が満たされているか否かを判定する（Ｓ２）。
【００４５】
開始条件１６が満たされていない場合（Ｓ２、Ｎｏ）、トリガ判定部２は、監視情報１９とトリガ条件１１とに基づき、トリガ条件１１が満たされているか否かを判定する（Ｓ３）。トリガ条件１１が満たされている場合（Ｓ３、Ｙｅｓ）、条件生成部３は、その時点の状態情報２１と各オフセット値（開始オフセット１２、終了オフセット１３）とを用いてタイミング判定条件（開始条件１６、終了条件１７）を生成する（Ｓ４）。トリガ条件１１が満たされていない場合（Ｓ３、Ｎｏ）、Ｓ１の処理が再び実行される。
【００４６】
開始条件１６が満たされていると判定された場合（Ｓ２、Ｙｅｓ）、または、Ｓ４の処理の後、ロギング処理部４は、ロギング処理を開始し（Ｓ５）、Ｓ１の処理を再び実行する。なお、ロギング処理を開始すると、ロギング処理部４は、サンプリング周期毎に診断情報２０を取得して、取得した診断情報２０をログデータ１８としてロギングバッファ５に格納する。Ｓ５の処理が実行された後から後述のＳ７の処理が実行されるまでの間、ロギング処理部４の状態は、「ロギング処理を実行中」の状態となる。
【００４７】
ロギング処理を実行中であると判定された場合（Ｓ１、Ｙｅｓ）、ロギング処理部４は、終了条件１７とその時点の状態情報２１とに基づき、終了条件１７が満たされているか否かを判定する（Ｓ６）。終了条件１７が満たされている場合（Ｓ６、Ｙｅｓ）、ロギング処理部４は、ロギング処理を終了し（Ｓ７）、Ｓ１の処理を再び実行する。終了条件１７が満たされていない場合（Ｓ６、Ｎｏ）、ロギング処理部４は、Ｓ７の処理をスキップする。
【００４８】
図４は、図３に示した一連の処理によってロギング処理が開始／終了される様子を説明するタイミングチャートである。図示するように、１回目にトリガ条件１１が満たされたとき（タイミングＴ１）、タイミングＴ１から終了オフセット１３に基づいて設定される終了条件１７が満たされるとき（タイミングＴ２）までの間、ロギング処理が実行される。２回目にトリガ条件が満たされるとき（タイミングＴ３）、タイミングＴ３の前後の診断情報２０がロギング処理される。即ち、開始オフセット１２に基づいて設定される開始条件１６が満たされるとき（タイミングＴ４）から、終了条件１７が満たされるとき（タイミングＴ５）までの間、診断情報２０がロギング処理される。タイミングＴ４は、タイミングＴ３よりも前に到来する。
【００４９】
例えば、「Ｅ０１」というアラーム番号がトリガ条件１１として設定され、ブロック番号が状態情報２１としてログデータ情報１４に設定され、開始オフセット１２として「１０」のブロック数が設定され、終了オフセット１３として「２０」のブロック数が設定され、モータの回転数検出値が診断情報２０としてログデータ情報１４に設定されている場合を考える。トリガ判定部２においては、「Ｅ０１」というアラーム番号のアラームが通知されたか否かが判定される。「Ｅ０１」というアラーム番号のアラームが通知された場合、条件生成部３においては、その時点のブロック番号「Ｎ（Ｎは整数）」を基準値として取得され、「Ｎ−１０」を開始条件１６、「Ｎ＋２０」を終了条件１７として夫々設定される。ロギング処理部４においては、ブロック番号が状態情報２１として監視され、ブロック番号が「Ｎ−１０」から「Ｎ＋２０」に至るまでの間、モータの回転数検出値のロギング処理が実行される。
【００５０】
以上述べたように、本発明の実施の形態によれば、数値制御装置１００は、異常とされる事象を検知したとき、当該事象を検知したタイミングにおける状態情報２１に所定の演算処理を実行することによってロギング処理の開始タイミングを生成するので、診断情報２０を常時ロギング処理することなく異常発生の直前の診断情報２０を取得することが可能となる。また、ユーザが開始タイミングを予想して設定することを不要とすることができる。即ち、実施の形態の数値制御装置１００は、異常発生のタイミングの付近の診断情報２０を効率よく取得することができる。
【００５１】
また、数値制御装置１００は、異常とされる事象を検知したタイミングにおける状態情報２１に所定の演算処理を実行することによってロギング処理の開始タイミングを生成するので、異常発生の直後の診断情報２０を、終了タイミングの固定的な設定の必要なく取得することができる。
【００５２】
なお、条件生成部３は、開始条件１６および終了条件１７のうちの何れか１つのみ生成するようにしてもよい。ロギング処理部４は、開始条件１６のみが生成された場合には、トリガ判定部２が異常とされる事象を検知したタイミングをロギング処理の終了タイミングとするように構成されてもよい。また、ロギング処理部４は、終了条件１７のみが生成された場合には、トリガ判定部２が異常とされる事象を検知したタイミングをロギング処理の開始タイミングとするように構成されてもよい。
【００５３】
また、異常とされる事象毎に異なるトリガ条件１１が設定されてもよい。トリガ条件１１が異常とされる事象毎に個別に設定される場合には、開始オフセット１２、終了オフセット１３、およびログデータ情報１４はトリガ条件１１毎に個別に設定され、トリガ判定部２、条件生成部３、およびロギング処理部４は、図３に示した動作を、トリガ条件１１毎に個別に実行する。
【００５４】
また、単一の事象を検知するためのトリガ条件１１が複数の条件の組み合わせによって構成されてもよい。
【符号の説明】
【００５５】
１  条件記憶部、２  トリガ判定部、３  条件生成部、４  ロギング処理部、５  ロギングバッファ、６  数値制御部、１１  トリガ条件、１２  開始オフセット、１３  終了オフセット、１４  ログデータ情報、１５  判定結果、１６  開始条件、１７  終了条件、１８  ログデータ、１９  監視情報、２０  診断情報、２１  状態情報、２２  駆動指令、３１  演算装置、３２  主記憶装置、３３  補助記憶装置、３５  数値制御プログラム、３６  加工プログラム、１００  数値制御装置、２００  設定情報、３００  駆動部。
【要約】
異常発生のタイミングの付近の診断情報を効率よく取得するために、数値制御装置は、予め設定された事象の発生を検知したとき（Ｓ３、Ｙｅｓ）、逐次変化する診断情報を参照して前記事象の発生が検知されたタイミングにおける診断情報を基準値として取得し、前記基準値を用いて予め設定された演算処理を行うことによって開始条件を生成し（Ｓ４）、逐次変化する診断情報が開始条件を満たしたとき（Ｓ２、Ｙｅｓ）、逐次変化する診断情報のロギング処理を開始する（Ｓ５）。【図１】
0005788097.tif 000002
【図２】
0005788097.tif 000003
【図３】
0005788097.tif 000004
【図４】
0005788097.tif 000005