(57)【要約】【課題】  加工プログラムのデバッグにかかるオペレータの作業負担を軽減するとともに、デバッグにおける要注意範囲の見過ごしを防止することができる加工プログラムデバッグ装置およびこれを備えた工作機械を提供する。【解決手段】  加工プログラムによって制御される工作機械１０の動作を確認するための加工プログラムデバッグ装置１であって、加工プログラムを解析し、加工動作後に工具の退避動作を開始する退避動作開始行を検出する加工プログラム解析部５１と、退避動作開始行よりも任意の事前通知設定時間だけ前方向のタイミングに基づき事前通知行を決定する事前通知行決定部５２と、加工プログラムのデバッグ中に事前通知行に到達した場合、まもなく退避動作開始行に到達する旨を通知するための事前通知処理を実行する事前通知処理部５５と、を有する。【選択図】  図１
2019012376.tif 000002
【特許請求の範囲】
【請求項１】
加工プログラムによって制御される工作機械の動作を確認するための加工プログラムデバッグ装置であって、
前記加工プログラムを解析し、加工動作後に工具の退避動作を開始する退避動作開始行を検出する加工プログラム解析部と、
前記退避動作開始行よりも任意の事前通知設定時間だけ前方向のタイミングに基づき事前通知行を決定する事前通知行決定部と、
前記加工プログラムのデバッグ中に前記事前通知行に到達した場合、まもなく前記退避動作開始行に到達する旨を通知するための事前通知処理を実行する事前通知処理部と、
を有する、加工プログラムデバッグ装置。
【請求項２】
前記加工プログラムデバッグ装置の周囲にオペレータがいるか否かを検出するオペレータ検出部を有し、
前記事前通知処理部は、前記加工プログラムデバッグ装置の周囲にオペレータが検出された場合、前記加工プログラムデバッグ装置または前記工作機械において前記事前通知処理を実行し、前記オペレータが検出されなかった場合、前記オペレータの携帯端末または前記オペレータが操作中の機器に対して前記事前通知処理を実行する、請求項１に記載の加工プログラムデバッグ装置。
【請求項３】
前記加工プログラム解析部は、前記退避動作後に実行される工具の進入動作を終了する進入動作終了行を検出し、
前記オペレータ検出部によって、前記退避動作開始行から前記進入動作終了行までの要注意範囲において、前記加工プログラムデバッグ装置の周囲にオペレータが検出されなかった場合、その旨を記録するオペレータ不在記録部を有する、請求項２に記載の加工プログラムデバッグ装置。
【請求項４】
前記事前通知行決定部は、前記退避動作開始行よりも前方向に存在する各ブロックのサイクルタイムを順次加算し、前記サイクルタイムの総和が前記事前通知設定時間以上になったときのブロックを前記事前通知行として決定する、請求項１から請求項３のいずれかに記載の加工プログラムデバッグ装置。
【請求項５】
前記事前通知行決定部は、前記退避動作開始行よりも前方向に存在する各ブロックのサイクルタイムを順次加算し、前記サイクルタイムの総和が前記事前通知設定時間以上になったときのブロックのサイクルタイムが基準時間以上であり、かつ、当該ブロックの最終区間内に前記タイミングが含まれない場合、前記サイクルタイムの総和から前記事前通知設定時間を差し引いた値を通知開始時間として記憶するとともに、前記ブロックを前記事前通知行として決定し、
前記事前通知処理部は、前記事前通知行に到達してから前記通知開始時間の経過後に前記事前通知処理を実行する、請求項１から請求項４のいずれかに記載の加工プログラムデバッグ装置。
【請求項６】
前記事前通知行決定部は、前記退避動作開始行よりも前方向に存在する各ブロックのサイクルタイムを順次加算し、前記サイクルタイムの総和が前記事前通知設定時間以上になったときのブロックのサイクルタイムが基準時間以上であり、かつ、当該ブロックの最終区間内に前記タイミングが含まれる場合、当該ブロックの次のブロックを前記事前通知行として決定する、請求項１から請求項５のいずれかに記載の加工プログラムデバッグ装置。
【請求項７】
前記加工プログラム解析部は、前記加工プログラムに含まれる複数の加工動作間の区切りを示す区切りブロックを検出し、前記区切りブロックから前方向における最初の早送り、または所定の送り速度以上に設定された最初の切削送りのいずれかを含むブロックを前記退避動作開始行として検出する、請求項１から請求項６のいずれかに記載の加工プログラムデバッグ装置。
【請求項８】
前記加工プログラム解析部は、前記退避動作後に工具の進入動作を終了する進入動作終了行を検出し、
前記加工プログラムのデバッグ中に、前記退避動作開始行から前記進入動作終了行までの要注意範囲を他の行と識別可能に表示手段に表示させる表示制御部を有する、請求項１から請求項７のいずれかに記載の加工プログラムデバッグ装置。
【請求項９】
請求項１から請求項８のいずれかに記載の加工プログラムデバッグ装置を備えてなる工作機械。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、加工プログラムによって制御される工作機械の動作を確認するための加工プログラムデバッグ装置およびこれを備えた工作機械に関するものである。
【背景技術】
【０００２】
従来、新規に作成された加工プログラムについては、当該加工プログラムによって制御される工作機械が意図した通りに動作するか否かを事前に確認し、適宜修正するデバッグ作業が行われている。このデバッグ作業に際しては、加工プログラムを１ブロックずつ実行するシングルブロック機能を利用し、オペレータが工作機械の動作を１ブロックずつ確認することが多い。
【０００３】
上記のような加工プログラムをデバッグするための技術として、例えば、特開２００７−１２８２３１号公報には、加工プログラム確認モードにおいて、シングルブロック運転によって１ブロック毎、低速度の早送りでその指令を実行し、オペレータが確認して問題がなければ早送り速度を上げて実行する数値制御工作機械が提案されている（特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−１２８２３１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、金型のように複雑な三次元形状を加工するための加工プログラムは、そのブロック数が何十万というオーダーになる。このため、そのような加工プログラムのデバッグに際し、上記のようなシングルブロック機能を用いると、膨大な時間がかかってしまうため現実的ではないという問題がある。
【０００６】
一方、上記のようなシングルブロック機能をオフにした状態では、工作機械が連続的かつ高速に加工プログラムを実行する。このため、工作機械の動作を目視で監視するオペレータにとっては、長時間に渡って緊張した状態が強いられ、作業負担が大きいという問題がある。また、オペレータが十分に注意していても、一瞬目を離した隙に修正すべきブロックを見過ごしてしまうおそれもある。
【０００７】
なお、デバッグ作業において、オペレータが特に注意すべき要注意範囲は、工具が進入動作および退避動作を行う部分である。しかしながら、上記のような要注意範囲が、加工プログラム中のどの部分に対応するかは、加工プログラムを見ただけで特定することは極めて困難である。このため、結局のところ、オペレータは加工プログラムが終了するまでの間、工作機械の動作を常に監視しているのが現状である。
【０００８】
本発明は、このような問題点を解決するためになされたものであって、加工プログラムのデバッグにかかるオペレータの作業負担を軽減するとともに、デバッグにおける要注意範囲の見過ごしを防止することができる加工プログラムデバッグ装置およびこれを備えた工作機械を提供することを目的としている。
【課題を解決するための手段】
【０００９】
本発明に係る加工プログラムデバッグ装置は、加工プログラムのデバッグにかかるオペレータの作業負担を軽減するとともに、デバッグにおける要注意範囲の見過ごしを防止するという課題を解決するために、加工プログラムによって制御される工作機械の動作を確認するための加工プログラムデバッグ装置であって、前記加工プログラムを解析し、加工動作後に工具の退避動作を開始する退避動作開始行を検出する加工プログラム解析部と、前記退避動作開始行よりも任意の事前通知設定時間だけ前方向のタイミングに基づき事前通知行を決定する事前通知行決定部と、前記加工プログラムのデバッグ中に前記事前通知行に到達した場合、まもなく前記退避動作開始行に到達する旨を通知するための事前通知処理を実行する事前通知処理部と、を有する。
【００１０】
また、本発明の一態様として、オペレータがどこにいても、まもなく要注意範囲に到達することを確実に通知するという課題を解決するために、前記加工プログラムデバッグ装置の周囲にオペレータがいるか否かを検出するオペレータ検出部を有し、前記事前通知処理部は、前記加工プログラムデバッグ装置の周囲にオペレータが検出された場合、前記加工プログラムデバッグ装置または前記工作機械において前記事前通知処理を実行し、前記オペレータが検出されなかった場合、前記オペレータの携帯端末または前記オペレータが操作中の機器に対して前記事前通知処理を実行してもよい。
【００１１】
さらに、本発明の一態様として、デバッグの精度および信頼性を向上するという課題を解決するために、前記加工プログラム解析部は、前記退避動作後に実行される工具の進入動作を終了する進入動作終了行を検出し、前記オペレータ検出部によって、前記退避動作開始行から前記進入動作終了行までの要注意範囲において、前記加工プログラムデバッグ装置の周囲にオペレータが検出されなかった場合、その旨を記録するオペレータ不在記録部を有してもよい。
【００１２】
また、本発明の一態様として、要注意範囲に到達する所定時間前のブロックを事前通知行として正確かつ自動的に決定するという課題を解決するために、前記事前通知行決定部は、前記退避動作開始行よりも前方向に存在する各ブロックのサイクルタイムを順次加算し、前記サイクルタイムの総和が前記事前通知設定時間以上になったときのブロックを前記事前通知行として決定してもよい。
【００１３】
さらに、本発明の一態様として、事前通知行の実行が開始されてから、要注意範囲に到達するまでにオペレータが長時間待たされるのを防止するという課題を解決するために、前記事前通知行決定部は、前記退避動作開始行よりも前方向に存在する各ブロックのサイクルタイムを順次加算し、前記サイクルタイムの総和が前記事前通知設定時間以上になったときのブロックのサイクルタイムが基準時間以上であり、かつ、当該ブロックの最終区間内に前記タイミングが含まれない場合、前記サイクルタイムの総和から前記事前通知設定時間を差し引いた値を通知開始時間として記憶するとともに、前記ブロックを前記事前通知行として決定し、前記事前通知処理部は、前記事前通知行に到達してから前記通知開始時間の経過後に前記事前通知処理を実行してもよい。
【００１４】
また、本発明の一態様として、事前通知行の実行が開始されてから、要注意範囲に到達するまでにオペレータが長時間待たされるのを防止するという課題を解決するために、前記事前通知行決定部は、前記退避動作開始行よりも前方向に存在する各ブロックのサイクルタイムを順次加算し、前記サイクルタイムの総和が前記事前通知設定時間以上になったときのブロックのサイクルタイムが基準時間以上であり、かつ、当該ブロックの最終区間内に前記タイミングが含まれる場合、当該ブロックの次のブロックを前記事前通知行として決定してもよい。
【００１５】
さらに、本発明の一態様として、要注意範囲の開始ブロックを簡単かつ自動的に検出するという課題を解決するために、前記加工プログラム解析部は、前記加工プログラムに含まれる複数の加工動作間の区切りを示す区切りブロックを検出し、前記区切りブロックから前方向における最初の早送り、または所定の送り速度以上に設定された最初の切削送りのいずれかを含むブロックを前記退避動作開始行として検出してもよい。
【００１６】
また、本発明の一態様として、要注意範囲をオペレータに一目で認識させるという課題を解決するために、前記加工プログラム解析部は、前記退避動作後に工具の進入動作を終了する進入動作終了行を検出し、前記加工プログラムのデバッグ中に、前記退避動作開始行から前記進入動作終了行までの要注意範囲を他の行と識別可能に表示手段に表示させる表示制御部を有してもよい。
【００１７】
さらに、本発明に係る工作機械は、加工プログラムのデバッグにかかるオペレータの作業負担を軽減するとともに、デバッグにおける要注意範囲の見過ごしを防止するという課題を解決するために、上述した各態様の加工プログラムデバッグ装置を備えてなるものである。
【発明の効果】
【００１８】
本発明によれば、加工プログラムのデバッグにかかるオペレータの作業負担を軽減するとともに、デバッグにおける要注意範囲の見過ごしを防止することができる。
【図面の簡単な説明】
【００１９】
【図１】本発明に係る加工プログラムデバッグ装置およびこれを備えた工作機械の一実施形態を示すブロック図である。
【図２】本実施形態における工作機械の主な動作を示す図である。
【図３】本実施形態における加工プログラムの一例を示す図である。
【図４】本実施形態の加工プログラムデバッグ装置が、加工プログラムを解析する際の処理を示すフローチャートである。
【図５】本実施形態の加工プログラムデバッグ装置が、事前通知行を決定する際の処理を示すフローチャートである。
【図６】本実施形態の加工プログラムデバッグ装置が、加工プログラムをデバッグする際の処理を示すフローチャートである。
【発明を実施するための形態】
【００２０】
以下、本発明に係る加工プログラムデバッグ装置およびこれを備えた工作機械の一実施形態について図面を用いて説明する。
【００２１】
本実施形態の加工プログラムデバッグ装置１は、オペレータが加工プログラムによって制御される工作機械１０の動作を事前に確認し、適宜修正するデバッグ作業を行うためのものである。以下、各構成について詳細に説明する。
【００２２】
工作機械１０は、旋盤、ボール盤、中ぐり盤、フライス盤、歯切り盤、研削盤等のように、金属、木材、石材、樹脂等のワークに対して、切断、穿孔、研削、研磨、圧延、鍛造、折り曲げ等の各種の加工を施すための機械である。本実施形態において、工作機械１０は、加工プログラムによって数値制御可能に構成されている。
【００２３】
本実施形態の加工プログラムデバッグ装置１は、工作機械１０を制御する数値制御装置等のコンピュータによって構成されており、図１に示すように、主として、各種のデータを表示・入力する表示入力手段２と、各種のデータを送受信する通信手段３と、各種のデータを記憶する記憶手段４と、各種の演算処理を実行し後述する各構成部として機能する演算処理手段５とから構成されている。以下、各構成手段について詳細に説明する。
【００２４】
表示入力手段２は、タッチパネル等で構成されており、オペレータからの入力等を受け付ける入力機能と、デバッグ処理中の加工プログラム等を表示する表示機能とを兼ね備えたものである。本実施形態において、表示入力手段２は、後述する表示制御部５６から入力された表示内容を表示するようになっている。なお、表示入力手段２の構成は上記に限定されるものではなく、表示機能のみを備えた表示手段、および入力機能のみを備えた入力手段をそれぞれ別個に有していてもよい。
【００２５】
通信手段３は、加工プログラムデバッグ装置１に通信機能を実装するためのものであり、通信モジュール等から構成されている。本実施形態において、通信手段３は、有線または無線ＬＡＮ（Local Area Network）等のネットワーク通信に対応しており、後述する事前通知処理部５５による通知をオペレータの携帯端末１１や、オペレータが操作中の機器１２に送信するようになっている。
【００２６】
記憶手段４は、各種のデータを記憶するとともに、演算処理手段５が演算処理を行う際のワーキングエリアとして機能するものである。本実施形態において、記憶手段４は、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）およびフラッシュメモリ等によって構成されており、図１に示すように、プログラム記憶部４１と、加工プログラム記憶部４２と、解析結果記憶部４３と、オペレータ不在記録部４４とを有している。以下、各構成部についてより詳細に説明する。
【００２７】
プログラム記憶部４１には、本実施形態の加工プログラムデバッグプログラム１ａがインストールされている。そして、演算処理手段５が、加工プログラムデバッグプログラム１ａを実行することにより、加工プログラムデバッグ装置１としてのコンピュータを後述する各構成部として機能させるようになっている。
【００２８】
なお、加工プログラムデバッグプログラム１ａの利用形態は、上記構成に限られるものではない。例えば、ＣＤ−ＲＯＭやＵＳＢメモリ等のように、コンピュータで読み取り可能な記録媒体に加工プログラムデバッグプログラム１ａを記憶させておき、当該記録媒体から直接読み出して実行してもよい。また、外部サーバ等からＡＳＰ（Application Service Provider）方式やクラウドコンピューティング方式で利用してもよい。
【００２９】
加工プログラム記憶部４２は、デバッグ対象となる加工プログラムを記憶するためのものである。本実施形態において、加工プログラムは、ＣＡＭ（Computer Aided Manufacturing：コンピュータ支援製造）装置によって作成され、工作機械１０を数値制御するためのＧコードやＭコード等によって構成されている。なお、工作機械１０の主な動作は、図２に示すように、工具をワークに進入させる進入動作、工具でワークを加工する加工動作、および工具をワークから退避させる退避動作の３つである。このため、加工プログラムには、図３に示すように、進入動作、加工動作および退避動作を指令する複数のブロックが繰り返し含まれている。
【００３０】
また、本実施形態において、加工プログラム記憶部４２に記憶される加工プログラムは、後述するとおり、デバッグ処理を実行する前に、加工プログラム解析部５１によって事前に解析されるとともに、デバッグ処理中は、後述するデバッグ処理部５３によって実行されるようになっている。
【００３１】
解析結果記憶部４３は、デバッグ処理を実行する前に、加工プログラムを事前に解析した結果を記憶するものである。具体的には、解析結果記憶部４３は、図１に示すように、後述する加工プログラム解析部５１によって検出された退避動作開始行および進入動作終了行と、後述する事前通知行決定部５２によって決定された事前通知行のそれぞれについて、該当する行番号を記憶するようになっている。また、解析結果記憶部４３は、後述する通知開始時間を事前通知行に対応付けて記憶するようになっている。
【００３２】
なお、デバッグ作業において、オペレータが特に注意すべき要注意範囲は、工具がワークと干渉または衝突する可能性のある、進入動作および退避動作を行う部分である。このため、本実施形態では、図３に示すように、加工動作後に工具の退避動作を開始する退避動作開始行から、退避動作後に工具の進入動作を終了する進入動作終了行までが要注意範囲として特定される。
【００３３】
オペレータ不在記録部４４は、デバッグ中にオペレータが不在であったブロックを記録するものである。本実施形態において、オペレータ不在記録部４４は、後述するオペレータ検出部５４によって、退避動作開始行から進入動作終了行までの要注意範囲において、加工プログラムデバッグ装置１の周囲にオペレータが検出されなかった場合、その旨を記録するようになっている。具体的には、不在であった行番号を記録してもよく、全ての行番号を有する行番号テーブルにおいて、不在であった行番号をチェックしてもよい。
【００３４】
演算処理手段５は、ＣＰＵ（Central Processing Unit）等によって構成されており、記憶手段４にインストールされた加工プログラムデバッグプログラム１ａを実行することにより、図１に示すように、加工プログラム解析部５１と、事前通知行決定部５２と、デバッグ処理部５３と、オペレータ検出部５４と、事前通知処理部５５と、表示制御部５６として機能するようになっている。以下、各構成部についてより詳細に説明する。
【００３５】
加工プログラム解析部５１は、加工プログラムを事前に解析するものである。加工プログラムにおいては、一般的に、進入動作および退避動作は早送りによって行われる。しかしながら、実際には加工動作においても早送りが使用される場合がある。そこで、本実施形態では、複数の加工動作間に通常挿入される区切りブロックを基準として前後方向を探索し、退避動作開始行や進入動作終了行を検出するようになっている。
【００３６】
具体的には、加工プログラム解析部５１は、加工プログラム記憶部４２内の加工プログラムを取得し、当該加工プログラムから解析対象となる解析対象行を順次選択しながら区切りブロックを検出する。そして、当該区切りブロックから前方向における最初の早送り、または所定の送り速度以上に設定された最初の切削送りのいずれかを含むブロックを退避動作開始行として検出し、その行番号を解析結果記憶部４３に記憶するようになっている。
【００３７】
なお、本実施形態では、区切りブロックとして、図３に示すＭ０１（オプショナルストップ）を使用している。しかしながら、これに限定されるものではなく、複数の加工動作間の区切りを示すものであれば、Ｍ００（プログラムストップ）や、加工プログラムの作成者によって意図的に挿入された任意の文字列等を区切りブロックとしてもよい。また、早送りを行わせる際は、一般的なＧ００（早送りによる工具の移動）の他に、Ｇ０１（切削送りによる工具の直線移動）の送り速度（Ｆ）を早くして代用することがある。このため、本実施形態では、Ｇ００および所定の送り速度以上のＧ０１のどちらでも、早送りを開始するブロックとして検出するようになっている。
【００３８】
また、本実施形態において、加工プログラム解析部５１は、検出した区切りブロック以降において最初の加工動作を行うブロックの１つ前の行を、進入動作終了行として検出し、その行番号を解析結果記憶部４３に記憶するようになっている。なお、加工動作を行うブロックとしては、各種の切削送り（Ｇ０１、Ｇ０２、Ｇ０３）等が挙げられる。
【００３９】
事前通知行決定部５２は、デバッグ処理が要注意範囲に到達する旨をオペレータに通知するタイミングを定める事前通知行を決定するものである。本実施形態において、事前通知行決定部５２は、図３に示すように、要注意範囲の最初の行にあたる退避動作開始行よりも任意の事前通知設定時間だけ前方向のタイミングに基づき事前通知行を決定する。具体的には、事前通知行決定部５２は、退避動作開始行よりも前方向に存在する各ブロックのサイクルタイムを順次加算する。そして、当該サイクルタイムの総和が事前通知設定時間以上になったときのブロックを事前通知行として決定し、その行番号を解析結果記憶部４３に記憶するようになっている。
【００４０】
なお、本実施形態において、事前通知設定時間は、ユーザによって任意の時間（１０秒等）に設定されてもよく、センサ等によって検出された各種の状況に応じて、最適な時間が自動的に設定されるようにしてもよい。また、サイクルタイムは、１ブロックを実行するのにかかる処理時間であり、その算出に際しては、各ブロックで指定されている、移動距離、送り速度とそのオーバーライド（倍率）、モータの加減速、および動作時間（Ｍ機能の場合）等が加味される。これにより、正確なサイクルタイムが算出されるため、事前通知行が自動的かつ高精度に決定される。
【００４１】
なお、上述した本実施形態において、事前通知行決定部５２によって決定された事前通知行が長時間を要するブロックであった場合、後述する事前通知処理が実行された後も長時間待たなければならない場合も考えられる。そこで、本実施形態において、事前通知行決定部５２は、前記タイミングを含むブロックのサイクルタイムが基準時間以上か否かを判断し、当該結果に応じて事前通知処理を実行するタイミングを調整するようになっている。
【００４２】
具体的には、事前通知行決定部５２は、退避動作開始行よりも前方向に存在する各ブロックのサイクルタイムを順次加算する。そして、当該サイクルタイムの総和が事前通知設定時間以上になったときのブロックのサイクルタイムが基準時間より短い場合、上記のとおり、当該ブロックを事前通知行として決定する。なお、基準時間としては、６０秒以下程度に設定することが好ましいが適宜変更しうる。
【００４３】
一方、事前通知行決定部５２は、前記サイクルタイムの総和が事前通知設定時間以上になったときのブロックのサイクルタイムが基準時間以上であり、かつ、当該ブロックの最終区間内に前記タイミングが含まれない場合、前記サイクルタイムの総和から事前通知設定時間を差し引いた値を通知開始時間として解析結果記憶部４３に記憶する。
【００４４】
なお、最終区間とは、ブロックの最後から所定時間内の区間であり、当該所定時間としては数秒程度に設定することが好ましいが、適宜変更可能である。また、最終区間内に前記タイミングが含まれるか否かは、事前通知設定時間から一つ前の総サイクルタイムを差し引いた値が、最終区間を定める所定時間以下であるか否かによって判定される。すなわち、上記値が所定時間以下であれば最終区間内であり、所定時間よりも大きければ最終区間内ではないと判定される。
【００４５】
また、事前通知行決定部５２は、前記サイクルタイムの総和が事前通知設定時間以上になったときのブロックを事前通知行として決定し、その行番号を通知開始時間とともに解析結果記憶部４３に記憶するようになっている。この場合、後述するとおり、事前通知処理部５５は、事前通知行に到達してから通知開始時間の経過後に事前通知処理を実行するようになっている。
【００４６】
また、事前通知行決定部５２は、前記サイクルタイムの総和が事前通知設定時間以上になったときのブロックのサイクルタイムが基準時間以上であり、かつ、当該ブロックの最終区間内に前記タイミングが含まれる場合、当該ブロックの次のブロックを事前通知行として決定し、その行番号を解析結果記憶部４３に記憶するようになっている。
【００４７】
デバッグ処理部５３は、加工プログラムのデバッグ処理を行うものである。本実施形態において、デバッグ処理部５３は、加工プログラム記憶部４２から加工プログラムを読み出し、当該加工プログラムを構成する各ブロックによって指定される動作を順次実行するようになっている。
【００４８】
また、本実施形態において、デバッグ処理部５３は、解析結果記憶部４３に記憶されている退避動作開始行に到達した場合、オペレータ検出部５４の検出結果を参照する。そして、オペレータが検出されなかった場合、デバッグ処理部５３は、退避動作開始行で加工プログラムの実行を停止するようになっている。また、デバッグ処理部５３は、表示入力手段２等から実行の再開を受け付けた場合、加工プログラムの実行を再開する。
【００４９】
さらに、本実施形態において、デバッグ処理部５３は、解析結果記憶部４３に記憶されている退避動作開始行から進入動作終了行までの要注意範囲を実行している間、常に、オペレータ検出部５４の検出結果を参照する。そして、オペレータが検出されなかった場合、デバッグ処理部５３は、オペレータが不在の旨をオペレータ不在記録部４４に記憶するようになっている。
【００５０】
オペレータ検出部５４は、加工プログラムデバッグ装置１の周囲にオペレータがいるか否かを検出するものである。本実施形態において、オペレータ検出部５４は、加工プログラムデバッグ装置１や工作機械１０に設けられた所定のボタン（図示せず）が押下されたか否かによって、オペレータの在否を判定するようになっている。このため、タッチパネルやメカニカルボタン等の既存の設備を用いてオペレータの検出が可能になる。
【００５１】
なお、オペレータの検出手段は、上記ボタンに限定されるものではなく、オペレータを検出しうるものであればよい。例えば、加工プログラムデバッグ装置１の周囲に設置した監視カメラ（図示せず）の映像を画像処理し、オペレータが工作機械１０を見ているか否かによってオペレータを検出してもよい。また、加工プログラムデバッグ装置１の周囲に設置したバリアセンサ（図示せず）からの出力信号に基づいて、オペレータを検出してもよく、他の人感センサ等を使用してもよい。
【００５２】
事前通知処理部５５は、まもなく退避動作開始行に到達する旨をオペレータに通知するための事前通知処理を実行するものである。本実施形態において、事前通知処理部５５は、加工プログラムのデバッグ中に事前通知行に到達した場合、オペレータ検出部５４の検出結果を参照する。そして、加工プログラムデバッグ装置１の周囲にオペレータが検出された場合、事前通知処理部５５は、加工プログラムデバッグ装置１または工作機械１０において事前通知処理を実行する。一方、加工プログラムデバッグ装置１の周囲にオペレータが検出されなかった場合、事前通知処理部５５は、オペレータの携帯端末１１またはオペレータが操作中の機器１２（他の工作機械等）に対して事前通知処理を実行するようになっている。
【００５３】
また、本実施形態において、加工プログラムデバッグ装置１の周囲にオペレータが検出された場合であって、前記タイミングを含むブロックのサイクルタイムが基準時間以上であり、かつ、前記タイミングが当該ブロックの最終区間内に含まれない場合、事前通知処理部５５は、解析結果記憶部４３から通知開始時間を読み出し、事前通知行の実行が開始されてから通知開始時間の経過後に事前通知処理を実行するようになっている。
【００５４】
なお、事前通知処理は、オペレータに通知しうる処理であれば特に限定されるものではない。具体的には、表示入力手段２にメッセージを表示させてもよく、スピーカー（図示せず）から警告音を出力してもよく、ライトを点滅・点灯させてもよい。また、本実施形態では、オペレータの携帯端末１１のメールアドレスや、オペレータが操作中の機器１２に関する情報が予め記憶手段４に設定されている。
【００５５】
表示制御部５６は、表示入力手段２に表示させる表示内容を制御するものである。本実施形態において、表示制御部５６は、加工プログラムのデバッグ中に、実行中の行と、当該行以降の複数の行を表示入力手段２に表示させる。また、表示制御部５６は、解析結果記憶部４３から退避動作開始行および進入動作終了行の行番号を参照し、退避動作開始行から進入動作終了行までの要注意範囲を他の行と識別可能に表示入力手段２に表示させる。例えば、図３に示すように、要注意範囲の背景にのみ着色することにより、オペレータは一目で要注意範囲を認識する。
【００５６】
つぎに、本実施形態の加工プログラムデバッグ装置１、およびこれを備えた工作機械１０の作用について、図４〜図６を参照しつつ説明する。
【００５７】
まず、本実施形態の加工プログラムデバッグ装置１を用いて、加工プログラムをデバッグする場合、事前に加工プログラムを解析し、退避動作開始行、進入動作開始行および事前通知行を特定するための加工プログラム解析処理を実行する。
【００５８】
具体的には、図４に示すように、まず、加工プログラム解析部５１が加工プログラムを取得するとともに（ステップＳ１）、解析対象行の行番号を示すパラメータｉを０に初期化する（ステップＳ２）。そして、パラメータｉをインクリメント（ｉ＋１）することにより、次の行を解析対象行として選択し（ステップＳ３）、当該解析対象行が加工プログラムの最終行であるか否かを判定する（ステップＳ４）。当該判定の結果、解析対象行が最終行である場合（ステップＳ４：ＹＥＳ）、加工プログラム解析処理を終了する。
【００５９】
一方、ステップＳ４における判定の結果、解析対象行が最終行でない場合（ステップＳ４：ＮＯ）、加工プログラム解析部５１は、解析対象行が区切りブロックであるか否かを判定する（ステップＳ５）。当該判定の結果、解析対象行が区切りブロックでなければ（ステップＳ５：ＮＯ）、ステップＳ３へ戻り、次の行を新たな解析対象行として選択する。
【００６０】
一方、ステップＳ５における判定の結果、解析対象行が区切りブロックであった場合（ステップＳ５：ＹＥＳ）、加工プログラム解析部５１は、退避動作開始行を探索するための探索対象行を示すパラメータｊを現在の解析対象行の行番号（ｉ）に初期化する（ステップＳ６）。これにより、退避動作開始行を探索する際の基準が区切りブロックに設定される。
【００６１】
つぎに、加工プログラム解析部５１は、パラメータｊをデクリメント（ｊ−１）することにより、１つ前の行を新たな探索対象行として選択し（ステップＳ７）、当該探索対象行が早送りを開始するブロックであるか否かを判定する（ステップＳ８）。当該判定の結果、早送り開始ブロックでなければ（ステップＳ８：ＮＯ）、ステップＳ７に戻り、１つ前の行を新たな探索対象行として選択する。これにより、区切りブロックから前方向におけるブロックが順次探索されることとなる。
【００６２】
一方、ステップＳ８における判定の結果、探索対象行が早送り開始ブロックであった場合（ステップＳ８：ＹＥＳ）、加工プログラム解析部５１は、現在の探索対象行（ｊ）を退避動作開始行として解析結果記憶部４３に記憶する（ステップＳ９）。これにより、要注意範囲の開始ブロックとなる退避動作開始行が正確かつ自動的に検出される。
【００６３】
退避動作開始行が検出されると（ステップＳ９）、事前通知行決定部５２が、当該退避動作開始行よりも任意の事前通知設定時間だけ前方のタイミングに基づいて事前通知行を決定する（ステップＳ１０）。具体的には、図５に示すように、まず、事前通知行決定部５２が、サイクルタイムを算出するための算出対象行を示すパラメータｋを退避動作開始行の行番号（ｊ）に初期化するとともに、サイクルタイムの総和を示すパラメータＴを０に初期化する（ステップＳ２１）。
【００６４】
つぎに、事前通知行決定部５２は、パラメータｋをデクリメントすることにより、１つ前の行（ｋ−１）を新たな算出対象行（ｋ）として選択する（ステップＳ２２）。そして、事前通知行決定部５２は、当該算出対象行（ｋ）のサイクルタイム（ｔｋ）を算出し、当該サイクルタイム（ｔｋ）を総サイクルタイム（Ｔ）に加算する（ステップＳ２３）。これにより、ステップＳ９で検出された退避動作開始行よりも前方向に存在する各ブロックのサイクルタイムが順次加算されることとなる。
【００６５】
総サイクルタイム（Ｔ）が更新される度に（ステップＳ２３）、事前通知行決定部５２は、事前通知設定時間と比較する（ステップＳ２４）。当該比較の結果、総サイクルタイム（Ｔ）が事前通知設定時間未満であれば（ステップＳ２４：ＮＯ）、ステップＳ２２に戻り、１つ前の行（ｋ−１）を新たな算出対象行（ｋ）として選択する。一方、ステップＳ２４における比較の結果、総サイクルタイム（Ｔ）が事前通知設定時間以上となった場合（ステップＳ２４：ＹＥＳ）、事前通知行決定部５２は、現在の算出対象行（ｋ）のサイクルタイム（ｔｋ）が、基準時間以上であるか否かを判定する（ステップＳ２５）。
【００６６】
当該判定の結果、現在の算出対象行（ｋ）のサイクルタイム（ｔｋ）が基準時間よりも短い場合（ステップＳ２５：ＮＯ）、事前通知行決定部５２は、現在の算出対象行（ｋ）を事前通知行として解析結果記憶部４３に記憶する（ステップＳ２８）。これにより、サイクルタイムがそれほど長くないブロックであれば、退避動作開始行よりも事前通知設定時間前に実行されるブロックが事前通知行として正確かつ自動的に決定される。
【００６７】
一方、ステップＳ２５における判定の結果、現在の算出対象行（ｋ）のサイクルタイム（ｔｋ）が基準時間以上である場合（ステップＳ２５：ＹＥＳ）、事前通知行決定部５２は、事前通知設定時間から一つ前の総サイクルタイム（Ｔ−ｔｋ）を差し引いた値が、最終区間を定める所定時間以下であるか否かを判定する（ステップＳ２６）。これにより、事前通知設定時間によって定められるタイミングが、サイクルタイムの長いブロックにおける最終区間に含まれるか否かが判定される。
【００６８】
ステップＳ２６における判定の結果、事前通知設定時間から一つ前の総サイクルタイム（Ｔ−ｔｋ）を差し引いた値が所定時間よりも大きい場合（ステップＳ２６：ＮＯ）、事前通知行決定部５２は、総サイクルタイム（Ｔ）から事前通知設定時間を差し引いた値を通知開始時間として記憶するとともに（ステップＳ２７）、現在の算出対象行（ｋ）を事前通知行として記憶する（ステップＳ２８）。これにより、サイクルタイムの長いブロックにおいて、通知タイミングが最後の数秒間に含まれない場合、事前通知行に到達してから事前通知処理を実行するまでの時間を定める通知開始時間が別途、算出される。
【００６９】
一方、事前通知設定時間から一つ前の総サイクルタイム（Ｔ−ｔｋ）を差し引いた値が所定時間以下の場合（ステップＳ２６：ＹＥＳ）、事前通知行決定部５２は、現在の算出対象行（ｋ）の次のブロック（ｋ＋１）を事前通知行として決定する（ステップＳ２９）。これにより、サイクルタイムの長いブロックにおいて、通知タイミングが最後の数秒間に含まれる場合には、通知開始時間が算出されることなく次のブロックが事前通知行として決定される。
【００７０】
以上の事前通知行決定処理によって事前通知行が決定されると（ステップＳ９）、図４の加工プログラム解析処理に戻り、加工プログラム解析部５１が探索対象行を示すパラメータｊを再び現在の解析対象行の行番号（ｉ）で初期化する（ステップＳ１１）。これにより、進入動作終了行を探索する際の基準が区切りブロックに設定される。
【００７１】
つぎに、加工プログラム解析部５１は、パラメータｊをインクリメント（ｊ＋１）することにより、次の行を新たな探索対象行として選択し（ステップＳ１２）、当該探索対象行が加工動作を開始するブロックであるか否かを判定する（ステップＳ１３）。当該判定の結果、加工開始ブロックでなければ（ステップＳ１３：ＮＯ）、ステップＳ１２に戻り、次の行を新たな探索対象行として選択する。これにより、区切りブロックから後方向におけるブロックが順次探索されることとなる。
【００７２】
一方、ステップＳ１３における判定の結果、探索対象行が加工開始ブロックであった場合（ステップＳ１３：ＹＥＳ）、加工プログラム解析部５１は、現在の探索対象行の１つ前の行（ｊ−１）を進入動作終了行として解析結果記憶部４３に記憶する（ステップＳ１４）。これにより、要注意範囲の終了ブロックとなる進入動作終了行が正確かつ自動的に検出される。
【００７３】
進入動作終了行が検出されると（ステップＳ１４）、加工プログラム解析部５１は、現在の解析対象行の行番号が加工プログラムの総行数を超えているか否かを比較する（ステップＳ１５）。当該比較の結果、現在の解析対象行の行番号が総行数以下の場合（ステップＳ１５：ＮＯ）、未解析のブロックが存在するため、ステップＳ３に戻り、上述した処理を繰り返す。一方、現在の解析対象行の行番号が総行数を超えた場合（ステップＳ１５：ＹＥＳ）、全てのブロックが解析されたこととなるため、加工プログラム解析処理を終了する。
【００７４】
以上のとおり、事前に加工プログラム解析処理を実行することにより、デバッグ対象の加工プログラムに含まれる、全ての退避動作開始行、進入動作終了行および事前通知行が特定される。そして、加工プログラム解析処理が実行された加工プログラムについては、本実施形態のデバッグ処理が実行可能となる。
【００７５】
具体的には、図６に示すように、まず、表示制御部５６がデバッグ対象の加工プログラムを表示入力手段２に表示する（ステップＳ３１）。これにより、デバッグ処理を実行する加工プログラムがオペレータに提示され、実行中のブロックおよびこれから実行されるブロックが目視により確認される。
【００７６】
つづいて、デバッグ処理部５３が加工プログラムの実行対象行の行番号を示すパラメータｅを０に初期化した後（ステップＳ３２）、パラメータｅをインクリメント（ｅ＋１）することにより、次の行を新たな実行対象行として選択し実行する（ステップＳ３３）。そして、デバッグ処理部５３は、当該実行対象行が事前通知行であるか否かを判定する（ステップＳ３４）。
【００７７】
当該判定の結果、実行対象行が事前通知行でなければ（ステップＳ３４：ＮＯ）、ステップＳ３３に戻り、次の行を新たな実行対象行として選択する。一方、ステップＳ３４における判定の結果、実行対象行が事前通知行であった場合（ステップＳ３４：ＹＥＳ）、オペレータ検出部５４は加工プログラムデバッグ装置１の周囲にオペレータがいるか否かを判定する（ステップＳ３５）。これにより、オペレータの在否に応じて適した事前通知処理を行うことが可能となる。
【００７８】
ステップＳ３５における判定の結果、オペレータが検出された場合（ステップＳ３５：ＹＥＳ）、事前通知処理部５５が加工プログラムデバッグ装置１または工作機械１０において事前通知処理を実行する（ステップＳ３６）。一方、オペレータが検出されなかった場合（ステップＳ３５：ＮＯ）、事前通知処理部５５がオペレータの携帯端末１１またはオペレータが操作中の機器１２に対して事前通知処理を実行する（ステップＳ３７）。
【００７９】
これにより、オペレータはどこにいても確実に、まもなく要注意範囲に到達する旨の注意が喚起される。このため、デバッグにおける要注意範囲の見過ごしが防止されるとともに、オペレータはデバッグ中の工作機械１０を常時監視する必要がなく、デバッグにかかる作業負担が軽減する。また、複数の工作機械１０を同時並行で操作することも可能となるため、作業効率が向上する。
【００８０】
また、本実施形態において、事前通知行に対応付けて上述した通知開始時間が設定されている場合、事前通知処理部５５は、事前通知行に到達してから通知開始時間の経過後に事前通知処理を実行する（ステップＳ３６）。これにより、事前通知行決定部５２によって決定された事前通知行のサイクルタイムが長い場合には、当該事前通知行の実行開始時ではなく、通知開始時間の経過後に事前通知処理が実行されるため、オペレータが長時間待たされることがない。
【００８１】
さらに、本実施形態において、退避動作開始行よりも事前通知設定時間だけ前方向のタイミングを含むブロックのサイクルタイムが長く、当該ブロックの最終区間内に前記タイミングが含まれる場合、当該ブロックの次のブロックが事前通知行として設定される。これにより、事前通知行の実行が開始されてから要注意範囲に到達するまでに長時間かかることが防止される。一方、事前通知行を次のブロックに設定しても、事前通知処理の実行タイミングはほとんど変わらないため、事前通知処理の作用効果は維持される。
【００８２】
つぎに、表示制御部５６が、表示入力手段２に表示される加工プログラムのうち、退避動作開始行から進入動作終了行までの要注意範囲を識別可能に表示する（ステップＳ３８）。これにより、オペレータは、デバッグにおける要注意範囲を一目で認識し、集中して確認できるため、デバッグの精度が向上する。
【００８３】
つづいて、デバッグ処理部５３が、パラメータｅをインクリメント（ｅ＋１）することにより、次の行を新たな実行対象行として選択し実行する（ステップＳ３９）。そして、デバッグ処理部５３は、当該実行対象行が退避動作開始行であるか否かを判定する（ステップＳ４０）。当該判定の結果、実行対象行が退避動作開始行でなければ（ステップＳ４０：ＮＯ）、ステップＳ３９に戻り、次の行を新たな実行対象行として選択する。
【００８４】
一方、ステップＳ４０における判定の結果、実行対象行が退避動作開始行であった場合（ステップＳ４０：ＹＥＳ）、オペレータ検出部５４が加工プログラムデバッグ装置１の周囲にオペレータがいるか否かを判定する（ステップＳ４１）。当該判定の結果、オペレータが不在であれば（ステップＳ４３：ＮＯ）、デバッグ処理部５３が加工プログラムの実行を停止する（ステップＳ４２）。
【００８５】
これにより、オペレータが不在の状態で、要注意範囲の実行が開始されてしまうことがなく、デバッグ作業の信頼性が向上する。また、事前通知設定時間を長めに設定することにより、オペレータは加工プログラムが停止する前に戻って来ることができ、デバッグ作業における時間のロスを低減することができる。
【００８６】
つぎに、デバッグ処理部５３は、オペレータが不在の旨をオペレータ不在記録部４４に記録する（ステップＳ４３）。これにより、要注意範囲内のブロックが実行されている間に、オペレータが不在であったブロックが記録される。このため、オペレータによって確認されなかったブロックが簡単に特定されるため、再確認作業が容易になり、デバッグの精度が向上する。また、不在の記録がなければ、要注意範囲がオペレータによって確認されたことが間接的に担保される。
【００８７】
一方、ステップＳ４１における判定の結果、オペレータが検出された場合（ステップＳ４１：ＹＥＳ）、または、加工プログラムが一旦停止した後、オペレータから実行再開の指示を受け付けた場合（ステップＳ４４：ＹＥＳ）、デバッグ処理部５３がパラメータｅをインクリメント（ｅ＋１）することにより、次の行を新たな実行対象行として選択し実行する（ステップＳ４５）。そして、デバッグ処理部５３は、当該実行対象行が加工プログラムの総行数を超えたか否かを判定し（ステップＳ４６）、超えていれば（ステップＳ４６：ＹＥＳ）、デバッグ処理を終了する。
【００８８】
一方、ステップＳ４６における判定の結果、総行数を超えていない場合（ステップＳ４６：ＮＯ）、デバッグ処理部５３は実行対象行が進入動作終了行であるか否かを判定する（ステップＳ４７）。そして、当該判定の結果、進入動作終了行でなければ（ステップＳ４７：ＮＯ）、ステップＳ４３に戻り、オペレータの存否を確認しながら次の行を選択して実行する。一方、ステップＳ４７における判定の結果、実行対象行が進入動作終了行であれば（ステップＳ４７：ＹＥＳ）、ステップＳ３３に戻り、次の行を選択して実行する。これにより、加工プログラムに含まれる全ての要注意範囲について、上述したデバッグ処理が実行されることとなる。
【００８９】
以上のような本実施形態によれば、以下のような効果を奏する。
１．加工プログラムのデバッグにかかるオペレータの作業負担を軽減するとともに、デバッグにおける要注意範囲の見過ごしを防止することができる。
２．オペレータがどこにいても、まもなく要注意範囲に到達することを確実に通知することができる。
３．オペレータの不在を記録することにより、デバッグの精度および信頼性を向上することができる。
４．要注意範囲に到達する事前通知設定時間前のタイミングに基づいて、事前通知行を正確かつ自動的に決定することができる。
５．事前通知行の実行が開始されてから、要注意範囲に到達するまでにオペレータが長時間待たされるのを防止することができる。
６．要注意範囲の開始ブロックである退避動作開始行および要注意範囲の終了ブロックである進入動作終了行を簡単かつ自動的に検出することができる。
７．要注意範囲をオペレータに一目で認識させられるため、デバッグの精度を向上することができる。
８．オペレータが不在の状態で、要注意範囲の実行が開始されることを防止し、デバッグ作業の信頼性を向上することができる。
９．オペレータが不在でも、加工プログラムデバッグ装置１に戻って来るための時間的な余裕を与えて、デバッグ処理が停止されることを極力抑制し、デバッグ作業における時間のロスを低減することができる。
１０．退避動作開始行、進入動作開始行および事前通知行を手動で指定または挿入する必要がなく、一般的な加工プログラムをそのまま解析およびデバッグすることができる。
１１．要注意範囲のうち、オペレータが不在であったブロックを事後的に確認することができる。
【００９０】
なお、本発明に係る加工プログラムデバッグ装置１は、前述した実施形態に限定されるものではなく、適宜変更することができる。例えば、上述した本実施形態では、数値制御装置の一機能として加工プログラムデバッグ装置１を機能させているが、この構成に限定されるものではない。
【００９１】
例えば、ＣＡＤ（Computer-Aided Design：コンピュータ支援設計）機能およびＣＡＭ（Computer Aided Manufacturing：コンピュータ支援製造）機能を兼ね備えたＣＡＤ／ＣＡＭ装置に本発明に係る加工プログラムデバッグプログラム１ａを実装し、加工プログラムデバッグ装置１として構成してもよい。この場合、工作機械１０を実際に動作させることなく、シミュレーションによって工作機械１０の動作を確認しデバッグすることができる。
【００９２】
また、本実施形態の加工プログラムデバッグ装置１は、オペレータ不在記録部４４およびオペレータ検出部５４を有しているが、この構成に限定されるものではない。オペレータが不在時の処理が不要であれば、オペレータ不在記録部４４およびオペレータ検出部５４を設けなくてもよい。この場合、デバッグ処理におけるステップＳ３５、ステップＳ３７およびステップＳ４１〜Ｓ４４の処理が不要となる。
【００９３】
さらに、上述した本実施形態では、要注意範囲を他の行と識別可能に表示するために、進入動作終了行を検出している。しかしながら、当該識別表示が不要であれば、加工プログラム解析部５１は、進入動作終了行を検出する必要はない。この場合、加工プログラム解析処理におけるステップＳ１１〜Ｓ１４の処理が不要となる。
【００９４】
また、上述した本実施形態では、事前通知処理の実行後にオペレータが長時間待たされるのを防止するため、事前通知行決定部５２は、事前通知行決定処理におけるステップＳ２５〜Ｓ２７，Ｓ２９を実行している。しかしながら、各ブロックのサイクルタイムがそれほど長くない場合などは、上記ステップＳ２５〜Ｓ２７，Ｓ２９の処理を省略してもよい。さらに、事前通知行決定部５２は、事前通知行決定処理において、通知開始時間を設定するステップＳ２７のみを省略してもよい。
【００９５】
さらに、本実施形態において、事前通知行決定部５２は、サイクルタイムの総和が事前通知設定時間以上になったときのブロックのサイクルタイムが基準時間以上であり、かつ、当該ブロックの最終区間内に通知タイミングが含まれる場合のみ、当該ブロックの次のブロックを事前通知行として決定している。しかしながら、事前通知行決定部５２は、ブロックのサイクルタイムに関係なく、通知タイミングがブロックの最終区間内に含まれる場合には、当該ブロックの次のブロックを事前通知行として決定してもよい。
【符号の説明】
【００９６】
１  加工プログラムデバッグ装置
１ａ  加工プログラムデバッグプログラム
２  表示入力手段
３  通信手段
４  記憶手段
５  演算処理手段
１０  工作機械
１１  携帯端末
１２  機器
４１  プログラム記憶部
４２  加工プログラム記憶部
４３  解析結果記憶部
４４  オペレータ不在記録部
５１  加工プログラム解析部
５２  事前通知行決定部
５３  デバッグ処理部
５４  オペレータ検出部
５５  事前通知処理部
５６  表示制御部
【図１】
2019012376.tif 000003
【図２】
2019012376.tif 000004
【図３】
2019012376.tif 000005
【図４】
2019012376.tif 000006
【図５】
2019012376.tif 000007
【図６】
2019012376.tif 000008