(57)【要約】【課題】構成の簡素化を計り、精度の高い制御を可能とする制御装置、工作機械、及び制御方法を提供することにある。【解決手段】プログラムを構成する命令を順次実行し、該命令に基づく物体の移動を、オープンループ制御及び／又はフィードバック制御により制御する制御部を備える制御装置に、前記制御部にオープンループ制御を行わせる情報が前記命令に含まれているか否かを判定する判定部と、前記制御部にオープンループ制御を行わせる情報が前記命令に含まれていると前記判定部が判定した場合、前記命令に基づく移動により前記物体の進入を禁じた所定の禁止範囲に前記物体が進入するか否かを判定する進入判定部と、前記物体の前記禁止範囲への進入が否と前記進入判定部が判定した場合、前記命令に基づく前記制御部による制御を許可する制御許可部とを備える。【選択図】図９
2014164713.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを構成する命令を順次実行し、該命令に基づく物体の移動を、オープンループ制御及び／又はフィードバック制御により制御する制御部を備える制御装置において、
前記制御部にオープンループ制御を行わせる情報が前記命令に含まれているか否かを判定する判定部と、
前記制御部にオープンループ制御を行わせる情報が前記命令に含まれていると、前記判定部が判定した場合、前記命令に基づく移動により、前記物体の進入を禁じた所定の禁止範囲に前記物体が進入するか否かを判定する進入判定部と、
前記物体の前記禁止範囲への進入が否と前記進入判定部が判定した場合、前記命令に基づく前記制御部による制御を許可する制御許可部とを備えること
を特徴とする制御装置。
【請求項２】
前記進入判定部は、
前記命令に基づく、前記物体の移動の始点及び終点間に前記禁止範囲が含まれるか否かにより、前記物体が該禁止範囲に進入するか否かを判定するようにしてあること
を特徴とする請求項１に記載の制御装置。
【請求項３】
前記物体が前記禁止範囲に進入すると前記進入判定部が判定した場合、外部に報知する報知部を備えること
を特徴とする請求項１又は２に記載の制御装置。
【請求項４】
前記制御部は、
複数の物体の移動を制御するようにしてあり、
一部の物体の移動をオープンループ制御により制御する第１副制御部と、
その他の物体の移動をフィードバック制御により制御する第２副制御部とを備えること
を特徴とする請求項１乃至３のいずれか一つに記載の制御装置。
【請求項５】
前記第１副制御部は、
前記一部の物体の回転移動を制御するようにしてあること
を特徴とする請求項４に記載の制御装置。
【請求項６】
前記進入判定部は、
前記一部の物体が前記命令に基づく移動により前記禁止範囲に進入するか否かを判定する第１副進入判定部と、
前記その他の物体が前記命令に基づく移動により前記禁止範囲に進入するか否かを判定する第２副進入判定部とを備え、
前記制御許可部は、
前記第１副進入判定部又は第２副進入判定部が前記禁止範囲への進入が否と判定した場合、前記命令に基づく前記制御部による制御を許可するようにしてあること
を特徴とする請求項４又は５に記載の制御装置。
【請求項７】
請求項４乃至６のいずれか一つに記載の制御装置と、
工具を取り付けてワークを加工する主軸ヘッドと、
ワークを支持する支持部とを備え、
前記制御装置は、
主軸ヘッド又は支持部の一方の移動を前記第１副制御部により制御し、他方の移動を前記第２副制御部により制御するようにしてあること
を特徴とする工作機械。
【請求項８】
プログラムを構成する命令を順次実行し、前記命令に基づく物体の移動を、オープンループ制御及び／又はフィードバック制御により制御する制御方法であって、
オープンループ制御を行わせる情報が前記命令に含まれているか否かを判定し、
前記オープンループ制御を行わせる情報が前記命令に含まれていると判定した場合、前記命令に基づく移動により、前記物体の進入を禁じた所定の禁止範囲に前記物体が進入するか否かを判定し、
前記物体の前記禁止範囲への進入が否と判定した場合、前記命令に基づく制御を許可すること
を特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物体の移動を制御する制御部を備える制御装置、この装置を備えた工作機械、及び物体の移動に係る制御方法に関する。
【背景技術】
【０００２】
一般に工作機械は、工具を装着する主軸ヘッド及びワークを支持する支持部の移動を行う制御装置を備える。例えば、主軸ヘッド及び支持部の移動に係る制御を行う前に、その移動についてシミュレーションを行い、移動させる物体が他と干渉を起こすか否かを判定する。干渉が起こらないと判定された場合、実際に移動制御を行う。
【０００３】
特許文献１に開示されている制御装置は、ユーザにより入力された加工前後のワークの形状に係る情報並びに制御装置に記憶されている工作機械の仕様及び工具の仕様に係る情報から、シミュレーションにて工具及びワークの干渉を予測する。
また、特許文献２に開示されている制御装置は、工作機械の動作中に干渉する可能性のある部位を直方体にて定義し、２つの直方体について、一方の頂点が他方に進入するか否かを所定の条件にて判定する。一方の頂点が他方に進入していると制御装置が判定した場合、干渉していると判定し、工作機械の処理を停止する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−８４７９４号公報
【特許文献２】特開２００５−１２８６８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来の工作機械が備える制御装置は、フィードバック制御によって物体の移動制御を行うことが多い。フィードバック制御によれば、フィードバック信号により物体が移動している際の地点を制御装置は把握することができるため、移動制御の精度が高い。しかし、フィードバック信号を制御装置に送信するためのエンコーダをモータに設けること、フィードバック信号から物体の位置を把握するために制御装置の回路が複雑になること等、フィードバック制御を行うための構成が複雑化する欠点がある。
【０００６】
本発明は斯かる事情に鑑みてなされたものであり、構成の簡素化を計り、精度の高い制御を可能とする制御装置、工作機械、及び制御方法を提供することにある。
【課題を解決するための手段】
【０００７】
本発明に係る制御装置は、プログラムを構成する命令を順次実行し、該命令に基づく物体の移動を、オープンループ制御及び／又はフィードバック制御により制御する制御部を備える制御装置において、前記制御部にオープンループ制御を行わせる情報が前記命令に含まれているか否かを判定する判定部と、前記制御部にオープンループ制御を行わせる情報が前記命令に含まれていると前記判定部が判定した場合、前記命令に基づく移動により前記物体の進入を禁じた所定の禁止範囲に前記物体が進入するか否かを判定する進入判定部と、前記物体の前記禁止範囲への進入が否と前記進入判定部が判定した場合、前記命令に基づく前記制御部による制御を許可する制御許可部とを備えることを特徴とする。
【０００８】
本発明にあっては、プログラムを構成する命令を順次実行し、実行した命令に基づき、オープンループ制御及び／又はフィードバック制御により、制御部は物体の移動を制御する。プログラムを構成する命令に、オープンループ制御による制御を制御部に行わせる情報が含まれるか否かを、判定部が判定する。次いで、オープンループ制御による制御を制御部に行わせる情報が命令に含まれると判定部が判定した場合、その命令により禁止範囲に物体が進入するか否かを進入判定部が判定する。物体が禁止範囲に進入しないと進入判定部が判定した場合、オープンループ制御による制御を制御部に行わせる情報を含む命令に基づく制御を、制御許可部は許可する。
従って、オープンループ制御を行う情報がプログラムの命令に含まれる場合であっても、進入を禁止された範囲への進入を避けた制御を行うことができる。また、オープンループ制御は、フィードバック制御を行うための構成よりも簡素である。そのため、簡易な構成であっても、精度の高い制御が可能である。
【０００９】
本発明に係る制御装置は、前記進入判定部は、前記命令に基づく、前記物体の移動の始点及び終点間に前記禁止範囲が含まれるか否かにより、前記物体が該禁止範囲に進入するか否かを判定するようにしてあることを特徴とする。
【００１０】
本発明にあっては、物体の移動の始点及び終点間に禁止範囲が含まれているか否かにより、進入判定部は物体が禁止範囲に進入するか否かを判定する。
【００１１】
本発明に係る制御装置は、前記物体が前記禁止範囲に進入すると前記進入判定部が判定した場合、外部に報知する報知部を備えることを特徴とする。
【００１２】
本発明にあっては、物体が禁止範囲に進入すると進入判定部が判定した場合、報知部は外部に報知する。従って、制御装置を利用するユーザは、物体が禁止範囲に進入する命令を制御装置が実行する前に、禁止範囲に進入するか否かを知ることができ、例えばプログラムの修正箇所を容易に知ることができる。
【００１３】
本発明に係る制御装置は、前記制御部は、複数の物体の移動を制御するようにしてあり、一部の物体の移動をオープンループ制御により制御する第１副制御部と、その他の物体の移動をフィードバック制御により制御する第２副制御部とを備えることを特徴とする。
【００１４】
本発明にあっては、制御部は複数の物体の移動を制御する。一部の物体の移動は第１副制御部によりオープンループ制御され、その他の物体の移動は第２副制御部によりフィードバック制御が行われる。従って、複数の物体について、オープンループ制御又はフィードバック制御による移動制御を選択した制御が可能となる。
【００１５】
本発明に係る制御装置は、前記第１副制御部は、前記一部の物体の回転移動を制御するようにしてあることを特徴とする。
【００１６】
本発明にあっては、第１副制御部は複数ある物体の一部における回転移動を制御する。
【００１７】
本発明に係る制御装置は、前記進入判定部は、前記一部の物体が前記命令に基づく移動により前記禁止範囲に進入するか否かを判定する第１副進入判定部と、前記その他の物体が前記命令に基づく移動により前記禁止範囲に進入するか否かを判定する第２副進入判定部とを備え、前記制御許可部は、前記第１副進入判定部又は第２副進入判定部が前記禁止範囲への進入が否と判定した場合、前記命令に基づく前記制御部による制御を許可するようにしてあることを特徴とする。
【００１８】
本発明にあっては、進入判定部は、一部の物体が命令に基づく移動により禁止範囲に進入するか否かを判定する第１副進入判定部と、その他の物体が命令に基づく移動により禁止範囲に進入するか否かを判定する第２副進入判定部とを備える。制御許可部は、第１副進入判定部又は第２副進入判定部が禁止範囲への進入が否と判定した場合、命令に基づく制御を許可する。従って、移動制御を行う物体の一部でも禁止範囲に進入しないと判定された場合、移動制御を行うことが可能となる。
【００１９】
本発明に係る工作機械は、上述したいずれか一つに記載の制御装置と、工具を取り付けてワークを加工する主軸ヘッドと、ワークを支持する支持部とを備え、前記制御装置は、主軸ヘッド又は支持部の一方の移動を前記第１副制御部により制御し、他方の移動を前記第２副制御部により制御するようにしてあることを特徴とする。
【００２０】
本発明にあっては、工作機械の主軸及び支持部の移動に係る制御について、一方がオープンループ制御、他方がフィードバック制御により移動する。オープンループ制御を行う情報が含まれる命令を実行する前に禁止範囲に進入するか否かを判定することにより、工作機械のオープンループ制御に係る部分は簡易な構成で実現でき、かつ精度の高い制御を可能とする。
【００２１】
本発明に係る制御方法は、プログラムを構成する命令を順次実行し、前記命令に基づく物体の移動を、オープンループ制御及び／又はフィードバック制御により制御する制御方法であって、オープンループ制御を行わせる情報が前記命令に含まれているか否かを判定し、前記オープンループ制御を行わせる情報が前記命令に含まれていると判定した場合、前記命令に基づく移動により、前記物体の進入を禁じた所定の禁止範囲に前記物体が進入するか否かを判定し、前記物体の前記禁止範囲への進入が否と判定した場合、前記命令に基づく制御を許可することを特徴とする。
【００２２】
本発明にあっては、オープンループ制御を行わせる情報がプログラムの命令に含まれるか否かを判定し、含まれると判定した場合、その命令に基づく物体の移動により、物体の進入を禁じられた所定の範囲に物体が進入するか否かを判定する。進入を禁じられた所定の範囲に物体が進入しないと判定した場合、判定された命令に基づく物体の移動を許可する。
【発明の効果】
【００２３】
本発明によれば、オープンループ制御を行う情報を含む命令を実行する前に干渉が生ずるか否かを判定することにより、簡易な構成であっても、精度の高い制御を可能とする制御装置、工作機械、及び制御方法を提供することができる。
【図面の簡単な説明】
【００２４】
【図１】工作機械の側面図である。
【図２】カバー及び数値制御装置を省略した機械本体の斜視図である。
【図３】カバー、数値制御装置、及びガイドレールを覆うカバー等を省略した機械本体の斜視図である。
【図４】ワーク支持装置の正面側斜視図である。
【図５】ワーク支持装置の背面側斜視図である。
【図６】本実施の形態に係る数値制御装置及び加工部の電気的構成を示すブロック図である。
【図７】加工プログラムの例を示した説明図である。
【図８】加工プログラムを入力部で選択した後、起動キーを作業者が押したときに制御部により実行される手順を示したフローチャートである。
【図９】制御部が行うオープンループ制御を含む移動処理の処理手順を示したフローチャートである。
【図１０】ＣＰＵが禁止範囲に進入しない判定を行う一例を示した説明図である。
【図１１】ＣＰＵが禁止範囲に進入する判定を行う一例を示した説明図である。
【図１２】制御部が行うフィードバック制御による移動処理の処理手順を示したフローチャートである。
【図１３】フィードバック制御による移動処理のサブルーチンを示したフローチャートである。
【図１４】制御部が行うオープンループ制御を含む移動処理の処理手順を示したフローチャートである。
【図１５】オープンループ制御を含む移動処理のサブルーチンを示したフローチャートである。
【発明を実施するための形態】
【００２５】
以下、本発明をその実施の形態を示す図面に基づいて詳述する。以下の説明では図において矢印で示す上下、左右及び前後を使用する。
【００２６】
（実施の形態１）
図１は工作機械１の側面図であり、図２はカバー３及び数値制御装置（制御装置）４を省略した機械本体１００の斜視図であり、図３はカバー３、数値制御装置４、及びガイドレールを覆うカバー等を省略した機械本体１００の斜視図である。
【００２７】
工作機械１は、機械本体１００と機械本体１００を覆うカバー３とを備える。機械本体１００は基台２と、基台２の上部に設けられ、工具５８を用いてワークを加工する加工部５と、カバー３の後方に設けられ、加工部５の制御を行う数値制御装置４とを備える。
【００２８】
カバー３は略直方体の箱状をなし、カバー３の正面には、図示しないスライド式の開閉扉が設けられている。この開閉扉を開くことにより、支持部に相当するワーク支持装置６０に対してワークの着脱を行うことができる。また、カバー３の側面には、開口部が設けられ、該開口部に点検ハッチ３１，３２が夫々着脱可能に設けられている。点検ハッチ３１，３２を取り外して前記開口部を開放することで、加工部５の保守点検等を行うことができる。
【００２９】
数値制御装置４は、略直方体状の筐体内に、後述の加工部５の主軸ヘッド５７及びワーク支持装置６０の移動、主軸ヘッド５７に装着された工具５８の動作等を制御する各制御部等が収納されている。数値制御装置４は、筐体の背面がカバー３の背面に取り付けられ、基台２の後側の斜め上方に延設された２本の支持部材１１に筐体の底面が支持されている。
【００３０】
基台２は、工作機械１の前後方向に長い略直方体状に形成されている。基台２の芯部は、軽量化、高強度化及び低コスト化のため、肉抜き成形されている。基台２の下部の四隅には高さ調節が可能な脚部２１が夫々設けられ、これら４本の脚部２１が工場等の床面に設置される。
【００３１】
加工部５は、主軸基台５１、ワーク基台５２、Ｙ軸方向移動装置５３、Ｘ軸方向移動装置５４、コラム５５、Ｚ軸方向移動装置５６、主軸ヘッド５７、ワーク支持装置６０等を備える。加工部５は、ワーク支持装置６０によりワークを支持し、主軸ヘッド５７に装着された工具５８によりワークを加工する。工具５８は、主軸ヘッド５７の下端部に着脱可能に装着されている。
【００３２】
主軸基台５１は前後方向に長い略直方体状をなし、基台２の上部後方に配してある。主軸基台５１は前後方向に長い、互いに平行な２条の支持台５１ａを上部に有し、後述するガイドレール５３ａを支持する。ワーク基台５２は、基台２の上部前方の左右に配してある。ワーク基台５２は夫々前方側の支持台５２ａ及び後方側の支持台５２ｂを備える。各支持台５２ａ，５２ｂは柱状をなし、上面にワーク支持装置６０を着座させて固定する。
【００３３】
Ｙ軸方向移動装置５３は互いに平行な１対のガイドレール５３ａ、複数のブロック５３ｂ、Ｙ軸方向移動台５３ｃ、及び後述のＹ軸モータ部７２（図６参照）を備える。ガイドレール５３ａは主軸基台５１の支持台５１ａの上面に前後方向に延設してある。ブロック５３ｂはガイドレール５３ａの夫々に前後方向に移動可能に嵌合している。Ｙ軸方向移動台５３ｃはブロック５３ｂ上に固定してある。Ｙ軸モータ部７２の駆動によって、Ｙ軸方向移動台５３ｃは前後方向に移動する。
【００３４】
Ｘ軸方向移動装置５４は互いに平行な１対のガイドレール５４ａ、複数のブロック５４ｂ、コラム台５４ｃ、及び後述のＸ軸モータ部７１（図６参照）を備える。ガイドレール５４ａは前後方向に適当な間隔を空けてＹ軸方向移動台５３ｃの上面に左右方向に延設してある。ブロック５４ｂはガイドレール５４ａの夫々に左右方向に移動可能に嵌合している。コラム台５４ｃはブロック５４ｂ上に固定してある。Ｘ軸モータ部７１の駆動によって、コラム台５４ｃを左右方向に移動する。
【００３５】
コラム５５は柱状をなし、コラム台５４ｃ上に固定してある。なお、コラム５５とコラム台５４ｃは一体に形成している。コラム５５はＹ軸方向移動装置５３及びＸ軸方向移動装置５４によって前後方向及び左右方向に移動する。
【００３６】
Ｚ軸方向移動装置５６は互いに平行な１対のガイドレール５６ａ、複数のブロック５６ｂ、主軸ヘッド台５６ｃ及び後述のＺ軸モータ部７３（図６参照）を備える。ガイドレール５６ａは左右方向に適当な間隔を空けてコラム５５の前面に上下方向に延設してある。ブロック５６ｂはガイドレール５６ａの夫々に上下方向に移動可能に嵌合している。主軸ヘッド台５６ｃはブロック５６ｂの前面側に固定してある。Ｚ軸モータ部７３の駆動によって、主軸ヘッド台５６ｃは上下方向に移動する。
【００３７】
主軸ヘッド５７は主軸ヘッド台５６ｃに固定してある。Ｘ軸モータ部７１、Ｙ軸モータ部７２、及びＺ軸モータ部７３を駆動制御することで、主軸ヘッド５７は前後、左右及び上下に移動する。
【００３８】
主軸ヘッド５７は前方側の内部に、図示しない上下方向に延びる主軸を回転可能に保持している。主軸は下端部に工具５８を脱着可能に保持する。主軸は、主軸ヘッド５７の上端に設けられた後述の主軸モータ部７４（図６参照）に接続されている。主軸モータ部７４は主軸を軸心回りに回転させ、主軸の下端に装着した工具５８を回転し、ワーク支持装置６０に固定されたワークに対して切削加工を行うことができる。
【００３９】
図４はワーク支持装置６０の正面側斜視図であり、図５はワーク支持装置６０の背面側斜視図である。ワーク支持装置６０は、ギヤ箱６１、軸受箱６２、Ａ軸モータ７５、揺動体６３、回転台６４、Ｃ軸モータ７６等を備える。
【００４０】
ギヤ箱６１は、揺動体６３の右側の軸部６３ａを収容し、揺動体６３をＸ軸回りに回転可能に支持する。以下の説明では軸部６３ａの中心軸をＡ軸と表記することにする。なお、Ａ軸はＸ軸に平行な軸であり、ワーク支持装置６０における揺動軸を意味する。また、ギヤ箱６１は図示しないローラギヤカム、ローラギヤカムのカムに噛み合ったカムフォロワ、玉軸受等を収容する。ローラギヤカムは軸端がＡ軸モータ７５のロータに連結してあり、Ａ軸モータ７５が駆動することによりＹ軸回りに回転し、カムフォロワに回転力が伝達され、Ａ軸回りに軸部６３ａが回転する。ギヤ箱６１は下部四隅に取付座６１ａを有し、螺子等により右側のワーク基台５２に固定される。
【００４１】
軸受箱６２は揺動体６３の左側の軸部６３ａを収容し、軸部６３ａをＡ軸回りに回転可能に支持する。軸受箱６２は下部前後に取付座６２ａを有し、螺子等により左側のワーク基台５２に固定される。
【００４２】
揺動体６３は左右の軸部６３ａ、回転部６３ｂを備える。左右の軸部６３ａ夫々は円筒状をなし、右側の軸部６３ａがギヤ箱６１にＡ軸回りに回転可能に支持され、左側の軸部６３ａが軸受箱６２にＡ軸回りに回転可能に支持されている。軸部６３ａは互いに同軸となるように配してある。回転部６３ｂは、軸部６３ａの端部から軸線方向に離隔して配してある。また、回転部６３ｂは図示しない連結部により軸部６３ａ夫々と連結している。更に回転部６３ｂは、上方に回転台６４、下方にＣ軸モータ７６が配してある。Ｃ軸モータ７６のロータは、軸部６３ａの軸線と直交する方向に備えられ、Ｃ軸モータ７６の回転によりロータはＣ軸に回転する。ここで、Ｃ軸は軸部６３ａの軸線と直交する方向を意味する。なお、一般にＣ軸はＺ軸に平行な軸を意味するが、本発明においては揺動体６３が揺動するため、Ｃ軸方向は揺動により変化するものとして扱っている。回転台６４はＣ軸モータ７６のロータに固定されており、Ｃ軸モータ７６が駆動することで、回転台６４はＣ軸回りに回転する。
【００４３】
ワークはワーク支持装置６０の回転台６４に支持され、ワーク支持装置６０のＡ軸方向又はＣ軸方向の回転に伴い、ワークも回転する。
【００４４】
図６は、本実施の形態に係る数値制御装置４及び加工部５の電気的構成を示すブロック図であり、図７は、加工プログラム９の例を示した説明図である。数値制御装置４は、制御部４１を備える。制御部４１は、ＣＰＵ４１ａを備え、ＣＰＵ４１ａは、例えば一又は複数のＣＰＵ、マルチコアＣＰＵ等により構成される。またＣＰＵ４１ａには、バスを介して、ＲＯＭ４１ｂ、ＲＡＭ４１ｃ、Ｉ／Ｏ部４１ｄ、第１入出力Ｉ／Ｆ４１ｅ、第２入出力Ｉ／Ｆ４１ｆ、記憶部４１ｇが接続されている。ＣＰＵ４１ａは後述のＲＯＭ４１ｂに記憶されている制御プログラム８を読み出し、各部を制御する。
【００４５】
ＲＯＭ４１ｂは、ＥＥＰＲＯＭ（Electrically Erasable Programmable ROM）、フラッシュメモリ等の不揮発性メモリであり、加工部５の制御をする制御プログラム８が記憶されている。記憶部４１ｇにはワークの加工に関する制御を行う加工プログラム９が記憶されている。加工プログラム９は複数の命令から構成されており、例えば、ＮＣプログラムとして構成される。該ＮＣプログラムは一つ又は複数の命令で構成されるブロックを有する。ＮＣプログラムは、主軸の回転方向に係る制御、クーラントに係る制御を行う等の工作機械１が加工を行う補助機能の命令であるＭコードや、主軸ヘッド５７及びワーク支持装置６０の位置決め、補間等の工作機械１が加工を行うための準備機能の命令であるＧコードにより構成されている。図７に示す各行は１ブロックを表す。図７のｈ行目はＭコードであり、Ｍ３は主軸を正転させる命令である。ｉ行目、ｊ行目、及びｋ行目はＧコードであり、Ｇ０は位置決めに係る命令である。移動させる方向、距離等はＧ０以降の軸の種別と数値により決定される。ＣＰＵ４１ａがＲＯＭ４１ｂからＮＣプログラムを読み出す場合、Ｍコード、Ｇコード等の命令毎に読み出す。
また、記憶部４１ｇには、主軸ヘッド５７及びワーク支持装置６０の移動により干渉が起きる可能性のある、主軸ヘッド５７及びワーク支持装置６０の移動を禁じる禁止範囲に係る座標の情報が複数記憶されている。各禁止範囲には番号が付されている。禁止範囲は主軸ヘッド５７の移動を禁じるＸ軸、Ｙ軸、Ｚ軸夫々における座標の上限及び下限の値と、ワーク支持装置６０の移動を禁じるＡ軸及びＣ軸夫々における角度の上限及び下限の値とで設定される。なお、禁止範囲の設定値である、Ａ軸及びＣ軸夫々における角度の値はＸ、Ｙ、Ｚ軸からなる直交座標系に対応し、その角度の上限及び下限の値によって禁止範囲の座標とすることができる。
【００４６】
ＲＡＭ４１ｃは、ＳＲＡＭ（Static RAM）、ＤＲＡＭ（Dynamic RAM）等のメモリである。ＣＰＵ４１ａが行う主軸ヘッド５７及びワーク支持装置６０の移動並びにワークの加工に係る制御を行う際に生ずる各種データを一時記憶する。
【００４７】
Ｉ／Ｏ部４１ｄには、入力部９１、表示部９２が接続されている。工作機械１は、例えば入力部９１及び表示部９２からなる操作パネルを備え、入力部９１にて、制御プログラム８、工具情報、ワーク情報、各種パラメータ等を入力することができる。表示部９２は、入力部９１にて入力するための入力画面、操作画面、工作機械１によるワークの加工に係る情報等を表示する。
【００４８】
第１入出力Ｉ／Ｆ４１ｅには、第２副制御部に相当するＸ軸制御部４２、Ｙ軸制御部４３、Ｚ軸制御部４４、及び主軸制御部４５が接続されている。ＣＰＵ４１ａは第１入出力Ｉ／Ｆ４１ｅを通じ、Ｘ軸、Ｙ軸、Ｚ軸、又は主軸を制御するための情報を各軸の制御部へ出力する。
【００４９】
Ｘ軸制御部４２は、ＣＰＵ４２ａを備え、ＣＰＵ４２ａは、例えば一又は複数のＣＰＵ、マルチコアＣＰＵ等により構成される。またＣＰＵ４２ａには、バスを介して、ＲＯＭ４２ｂ、ＲＡＭ４２ｃ、入出力Ｉ／Ｆ４２ｄが接続されている。ＣＰＵ４２ａは後述のＲＯＭ４２ｂに記憶されている主軸ヘッド５７のＸ軸方向への移動を制御するための制御プログラム８を読み出し、各部を制御する。
【００５０】
ＲＯＭ４２ｂは、ＥＥＰＲＯＭ、フラッシュメモリ等の不揮発性メモリであり、主軸ヘッド５７のＸ軸方向への移動を制御するための制御プログラム８が記憶されている。
【００５１】
ＲＡＭ４２ｃは、ＳＲＡＭ、ＤＲＡＭ等のメモリである。ＣＰＵ４２ａが行う主軸ヘッド５７のＸ軸方向への移動を制御するときに生ずる各種データを一時記憶する。例えば、後述のＸ軸モータ７１ａの駆動による、主軸ヘッド５７のＸ軸方向の位置を記憶している。
【００５２】
入出力Ｉ／Ｆ４２ｄには、Ｘ軸モータ部７１が接続されている。Ｘ軸モータ部７１は、Ｘ軸モータ７１ａ及びエンコーダ７１ｂを備え、例えば、サーボモータで構成される。Ｘ軸モータ７１ａは、ＣＰＵ４２ａから入出力Ｉ／Ｆ４２ｄを通じて出力されたパルス信号に基づき駆動をする。エンコーダ７１ｂは、ホール素子、受光素子等により構成され、Ｘ軸モータ７１ａの回転角、回転速度、回転方向等を検出する。エンコーダ７１ｂは検出した情報に基づき、フィードバック信号をＸ軸制御部４２へ出力する。入出力Ｉ／Ｆ４２ｄを通じて出力されたフィードバック信号に基づき、ＣＰＵ４２ａはフィードバック制御を行い、主軸ヘッド５７のＸ軸方向における現在位置及び移動速度を検出することができる。検出した現在位置及び移動速度は、ＲＡＭ４２ｃに記憶される。
なお、本実施の形態ではＸ軸モータ部７１をサーボモータとして構成することを示したが、これ以外の構成であってもよい。例えばエンコーダを備えたステッピングモータにより構成してもよい。
また、入出力Ｉ／Ｆ４２ｄには制御部４１が接続されており、制御部４１のＣＰＵ４１ａの指示により、Ｘ軸制御部４２は、ＲＯＭ４２ｂに記憶されている主軸ヘッド５７のＸ軸方向における現在位置及び移動速度を出力する。
【００５３】
ここで、制御部４１の第１入出力Ｉ／Ｆ４１ｅに接続されているＹ軸制御部４３は、主軸ヘッド５７のＹ軸方向の移動に係る制御を行う。Ｚ軸制御部４４は、主軸ヘッド５７のＺ軸方向の移動に係る制御を行う。主軸制御部４５は、主軸が備える工具５８に係る制御を行い、例えば工具５８の回転に係る制御を行う。それ以外の構成については、上述のＸ軸制御部４２と同様の構成であるため、詳細な説明を省略する。Ｙ軸モータ部７２、Ｚ軸モータ部７３、及び主軸モータ部７４についても同様に、Ｘ軸モータ部７１と同様の構成であるため、同様の符号を付し、その詳細な説明及び作用効果の説明を省略する。
【００５４】
第２入出力Ｉ／Ｆ４１ｆには、第１副制御部に相当するＡ軸制御部４６及びＣ軸制御部４７が接続されている。ＣＰＵ４１ａは、第２入出力Ｉ／Ｆ４１ｆを通じ、Ａ軸又はＣ軸を制御するための情報を各軸の制御部へ出力する。
【００５５】
Ａ軸制御部４６は、ワーク支持装置６０のＡ軸を回転軸とする回転移動に係る制御を行う。Ａ軸制御部４６には、Ａ軸モータ７５が接続されている。Ａ軸モータ７５は、ステッピングモータ等のパルスモータにて構成される。Ａ軸モータ７５は、出力されたパルスに応じて回転する角度が予め決められており、Ａ軸制御部４６から出力されるパルスに従い回転駆動を行う。換言すれば、Ａ軸制御部４６はオープンループ制御を行う。なお、Ａ軸制御部４６のその他の構成については、Ｘ軸制御部４２と同様の構成であるため、詳細な説明を省略する。
また、Ｃ軸制御部４７は、ワーク支持装置６０のＣ軸を回転軸とする回転移動に係る制御を行う。その他の構成については、Ａ軸制御部４６と同様の構成であるため、詳細な説明を省略する。
【００５６】
図８は、加工プログラム９を入力部９１で選択した後、起動キー（図示略）を作業者が押したときに制御部４１により実行される手順を示したフローチャートである。制御部４１のＣＰＵ４１ａは加工プログラム９から、１ブロックを読み出す（ステップＳ１１）。次いで、ＣＰＵ４１ａは、ステップＳ１１にて読み出したブロックの命令が加工プログラム９の終了命令か否かを判定する（ステップＳ１２）。加工プログラム９の終了命令と判定した場合（Ｓ１２：ＹＥＳ）、ＣＰＵ４１ａは処理を終了する。加工プログラム９の終了命令でないと判定した場合（Ｓ１２：ＮＯ）、ＣＰＵ４１ａは読み出したブロックの命令が移動に係る命令であるか否かを判定する（ステップＳ１３）。移動に係る命令ではないと判定した場合（Ｓ１３：ＮＯ）、ＣＰＵ４１ａは読み出したブロックの命令を実行し（ステップＳ１４）、処理をステップＳ１１へ戻す。図７の例ではｈ行目に相当し、ｈ行目は主軸を正転させる命令のため、ステップＳ１４にてＣＰＵ４１ａは主軸を正転させる制御を行う。
【００５７】
移動に係る命令と判定した場合（Ｓ１３：ＹＥＳ）、ＣＰＵ４１ａはその命令にＡ軸方向又はＣ軸方向への移動に係る情報を含むか否かを判定する（ステップＳ１５）。Ａ軸方向又はＣ軸方向への移動に係る情報を含まないと判定した場合（Ｓ１５：ＮＯ，図７のｉ行目参照）、ＣＰＵ４１ａは、主軸ヘッド５７の移動について後述のフィードバック制御による移動処理を行う（ステップＳ１７）。図７の例では、ｉ行目はＺ軸について位置決めを行う制御に係る命令のため、ステップＳ１７にてＣＰＵ４１ａはフィードバック制御による移動処理を行う。読み出したブロックの命令にＡ軸方向又はＣ軸方向への移動に係る情報が含まれると判定した場合（Ｓ１５：ＹＥＳ，図７のｊ行目及びｋ行目参照）、ＣＰＵ４１ａは後述するオープンループ制御を含む移動処理を行う（ステップＳ１６）。ステップＳ１６又はステップＳ１７の処理後、ＣＰＵ４１ａは警報が作動したか否かを判定する（ステップＳ１８）。警報が作動したと判定した場合（Ｓ１８：ＹＥＳ）、ＣＰＵ４１ａは処理を終える。警報が作動していないと判定した場合（Ｓ１８：ＮＯ）、ＣＰＵ４１ａは処理をステップＳ１１に戻す。なお、ステップＳ１４を実行するＣＰＵ４１ａは本発明における判定部として機能する。
【００５８】
図９は、制御部４１が行うオープンループ制御を含む移動処理の処理手順を示したフローチャートである。図９は、図８に示すステップＳ１６の処理の詳細な説明に対応する。ＣＰＵ４１ａは工具５８の始点及び終点の座標を取得する（ステップＳ２１）。具体的には、ＣＰＵ４１ａは工具５８の現在地点を始点として取得し、図８のステップＳ１１で読み出したブロックから工具５８の終点を取得する。ＣＰＵ４１ａはワークの開始角度及び終了角度を取得する（ステップＳ２２）。具体的には、ワークがワーク支持装置６０により現在傾いている角度を開始角度とし、Ａ軸方向及びＣ軸方向夫々について取得する。また、図８のステップＳ１１で読み出したブロックからＡ軸方向及びＣ軸方向夫々の終了角度を取得する。
【００５９】
次いで、ＣＰＵ４１ａは複数の禁止範囲を数え上げるためのカウンタｉの値を１とし、ＲＡＭ４１ｃに記憶する（ステップＳ２３）。ＣＰＵ４１ａは、ステップＳ２２にて取得した開始角度及び終了角度がＡ軸方向について禁止範囲に進入するか否かを判定する（ステップＳ２４）。ここで、禁止範囲とは、カウンタｉの値に応じて記憶部４１ｇから一つ選択されたものである。Ａ軸方向について禁止範囲に進入しないと判定した場合（Ｓ２４：ＮＯ）、ＣＰＵ４１ａは処理をステップＳ３０へ進める。
【００６０】
Ａ軸方向について禁止範囲に進入すると判定した場合（Ｓ２４：ＹＥＳ）、ＣＰＵ４１ａはステップＳ２２にて取得した開始角度及び終了角度がＣ軸方向について禁止範囲に進入するか否かを判定する（ステップＳ２５）。Ｃ軸方向について禁止範囲に進入しないと判定した場合（Ｓ２５：ＮＯ）、処理をステップＳ３０へ進める。
【００６１】
Ｃ軸方向について禁止範囲に進入すると判定した場合（Ｓ２５：ＹＥＳ）、ＣＰＵ４１ａは、ステップＳ２１にて取得した工具５８の始点及び終点の座標が、Ｘ軸方向について禁止範囲に進入するか否かを判定する（ステップＳ２６）。Ｘ軸方向について禁止範囲に進入しないと判定した場合（Ｓ２６：ＮＯ）、ＣＰＵ４１ａは処理をステップＳ３０へ進める。
【００６２】
Ｘ軸方向について禁止範囲に進入すると判定した場合（Ｓ２６：ＹＥＳ）、ＣＰＵ４１ａは、ステップＳ２１にて取得した始点及び終点の座標がＹ軸方向について禁止範囲に進入するか否かを判定する（ステップＳ２７）。Ｙ軸方向について禁止範囲に進入しないと判定した場合（Ｓ２７：ＮＯ）、ＣＰＵ４１ａは処理をステップＳ３０へ進める。
【００６３】
Ｙ軸方向について禁止範囲に進入すると判定した場合（Ｓ２７：ＹＥＳ）、ＣＰＵ４１ａは、ステップＳ２１にて取得した始点及び終点の座標がＺ軸方向について禁止範囲に進入するか否かを判定する（ステップＳ２８）。Ｚ軸方向について禁止範囲に進入すると判定した場合（Ｓ２８：ＹＥＳ）、ＣＰＵ４１ａは表示部９２に警告を表示する等の警報を作動し（ステップＳ２９）、処理を図８のステップＳ１８へ戻す。
なお、ステップＳ２４〜ステップＳ２８における判定処理の詳細は図１０と共に後述する。また、ステップＳ２４〜ステップＳ２８における判定処理を実行するＣＰＵ４１ａが進入判定部として機能する。更に、ステップＳ２９における警報の作動処理を実行するＣＰＵ４１ａが報知部として機能する。
【００６４】
一方、Ｚ軸方向について禁止範囲に進入しないと判定した場合（Ｓ２８：ＮＯ）、ＣＰＵ４１ａはカウンタｉの値を１増加させ（ステップＳ３０）、カウンタｉの値がＮ未満か否かを判定する（ステップＳ３１）。ここで、Ｎは記憶部４１ｇに記憶された禁止範囲の個数を示す。カウンタｉの値がＮ以上と判定した場合（Ｓ３１：ＮＯ）、ＣＰＵ４１ａは処理をステップＳ２４に戻す。カウンタｉの値がＮ未満と判定した場合（Ｓ３１：ＹＥＳ）、ＣＰＵ４１ａはステップＳ１１で読み出したブロックによる移動処理を実行する（ステップＳ３２）。なお、ステップＳ３２における移動処理は、Ｘ、Ｙ、Ｚ軸については前述したフィードバック制御により実行し、Ａ、Ｃ軸についてはオープンループ制御により実行する。
【００６５】
次いで、ＣＰＵ４１ａは各軸の制御部による移動処理が終了したか否かを判定する（ステップＳ３３）。移動処理が終了したと判定した場合（Ｓ３３：ＹＥＳ）、ＣＰＵ４１ａは処理を図８のステップＳ１８へ戻し、移動が終了していないと判定した場合（Ｓ３３：ＮＯ）、ＣＰＵ４１ａは処理をステップＳ３２へ戻す。各軸について移動処理が終了すると、Ｘ軸制御部４２、Ｙ軸制御部４３、Ｚ軸制御部４４は第１入出力Ｉ／Ｆ４１ｅを介してＣＰＵ４１ａに通知する。同様に、Ａ軸制御部４６、Ｃ軸制御部４７は第２入出力Ｉ／Ｆ４１ｆを介してＣＰＵ４１ａに通知する。
【００６６】
なお、ステップＳ３２を実行するＣＰＵ４１ａが制御許可部として機能する。また、ステップＳ３２における命令の実行処理において、主軸ヘッド５７の移動による現在地点の変更は、Ｘ軸制御部４２、Ｙ軸制御部４３、及びＺ軸制御部４４の夫々のＲＡＭに順次記憶される。また、ステップＳ２４〜ステップＳ２８までの処理はこの順に行われる必要はなく、順番は何れでもよい。
【００６７】
図１０は、ＣＰＵ４１ａが禁止範囲に進入しない判定を行う一例を示した説明図であり、図１１は、ＣＰＵ４１ａが禁止範囲に進入する判定を行う一例を示した説明図である。ステップＳ２１にて取得した始点をｓとし、Ｘ軸及びＹ軸によりなるＸＹ平面上の座標を（ｓ１，ｓ２）とする。また、ステップＳ２１にて取得した終点をｔとし、ＸＹ平面上の座標を（ｔ１，ｔ２）とする。更に、ＸＹ平面上の座標が（ｘ１，ｙ１）、（ｘ２，ｙ１）、（ｘ１，ｙ２）、（ｘ２，ｙ２）となる範囲を、ＲＯＭ４１ｂに記憶されている禁止範囲とする。ステップＳ２６において、以下の不等式（１）又は（２）のいずれかを満たした場合、ＣＰＵ４１ａはＸ軸方向について禁止範囲に進入しないと判定する。
【００６８】
ｓ１＜ｘ１かつｔ１＜ｘ１…（１）
ｓ１＞ｘ２かつｔ１＞ｘ２…（２）
【００６９】
図１０の例において、ステップＳ２１にて取得した始点及び終点は、禁止範囲との関係において、ｓ１＜ｘ１かつｔ１＞ｘ１（又はｓ１＞ｘ１かつｔ１＜ｘ１）となり、不等式（１）の条件を満たさない。また、ステップＳ２１にて取得した始点及び終点は、禁止範囲との関係において、ｓ１＜ｘ２かつｔ１＞ｘ１（又はｓ１＞ｘ２かつｔ１＜ｘ２）となり、不等式（２）の条件を満たさない。よって、ステップＳ２１にて取得した始点及び終点は禁止範囲に進入するとＣＰＵ４１ａは判定する（Ｓ２６：ＹＥＳ）。
【００７０】
また、上述のステップＳ２６における判定手順と同様に、ステップＳ２７において、以下の不等式（３）又は（４）のいずれかを満たした場合、ＣＰＵ４１ａはＹ軸方向について禁止範囲に進入しないと判定する。
【００７１】
ｓ２＜ｙ１かつｔ２＜ｙ１…（３）
ｓ２＞ｙ２かつｔ２＞ｙ２…（４）
【００７２】
図９の例において、ステップＳ２１にて取得した始点及び終点は、禁止範囲との関係において、ｓ２＞ｙ２かつｔ２＞ｙ２となり、不等式（４）の条件を満たす。よって、ステップＳ２１にて取得した始点及び終点は禁止範囲に進入しないとＣＰＵ４１ａは判定する（Ｓ２７：ＮＯ）。
【００７３】
従って、図１０の例ではＹ軸について禁止範囲に進入しないため、図８に示すステップＳ１１にて読み出したブロックを実行した場合であっても、工具５８及びワークの移動により干渉は生じないとＣＰＵ４１ａは判定する。なお、ステップＳ２８におけるＺ軸方向についての判定処理は、ステップＳ２６におけるＸ軸方向についての判定処理と同様であるため詳細な説明を省略する。また、ステップＳ２４におけるＡ軸方向、ステップＳ２５におけるＣ軸方向についての判定処理もステップＳ２６におけるＸ軸方向についての判定処理と同様であるため詳細な説明を省略する。ただし、ステップＳ２４及びステップＳ２５の判定処理については、座標を角度に置き換えて適用する。
【００７４】
一方、図１１では上述の不等式（１）〜（４）における条件の何れも満たさない。始点ｓから終点ｔへのＺ軸方向の移動についても同様であった場合、ＣＰＵ４１ａは図１０の例において、工具５８及びワークの移動による干渉が生ずると判定される。
ここで、始点ｓから終点ｔまでの移動が直線移動であった場合（破線矢印参照）、始点ｓ及び終点ｔが禁止範囲に進入しない。しかし、この移動が最高速度で行われる場合、始点ｓから終点ｔへの移動は禁止範囲に進入することがある。Ｘ軸モータ７１ａ及びＹ軸モータ７２ａの仕様によっては、Ｘ軸方向及びＹ軸方向の最高速度が等しいとは限らない。そのため、図１１の実線矢印で示すように、点ｕを中継した軌跡となることがある。この場合、始点ｓから終点ｔへの移動は禁止範囲に進入することとなる。以上より、本実施の形態に示した条件に基づき、禁止範囲へ進入するか否かの判定処理を行っている。
【００７５】
図１２は、制御部４１が行うフィードバック制御による移動処理の処理手順を示したフローチャートである。ＣＰＵ４１ａは工具５８の始点及び終点の座標を取得する（ステップＳ４１）。ステップＳ４１の処理は図９に示すステップＳ２１と同様であるため詳細な説明は省略する。ＣＰＵ４１ａは後述する移動実行処理を行う（ステップＳ４２）。その後、ＣＰＵ４１ａは移動実行処理で警報が作動したか否かを判定する（ステップＳ４３）。警報が作動したと判定した場合（Ｓ４３：ＹＥＳ）図８に示すステップＳ１８に処理を戻す。警報が作動していないと判定した場合（Ｓ４３：ＮＯ）、ＣＰＵ４１ａは移動処理が終了したか否かを判定する（ステップＳ４４）。移動処理が終了したと判定した場合（Ｓ４４：ＹＥＳ）、ＣＰＵ４１ａは図８に示すステップＳ１８に処理を戻す。移動処理が終了していないと判定した場合（Ｓ４４：ＮＯ）、ＣＰＵ４１ａは処理をステップＳ４２へ戻す。
【００７６】
図１３は、フィードバック制御による移動処理のサブルーチンを示したフローチャートである。ステップＳ５１は図９に示すステップＳ２３と同様であり、ステップＳ５２〜５８は、図９に示すステップＳ２６〜ステップＳ３２と同様であるが、以下に説明する部分が異なる。ＣＰＵ４１ａは、図８に示すステップＳ１１で読み出したブロックに基づいて所定周期（例えば０．１秒）で工具５８が移動する量（移動量）を各軸について算出する。ＣＰＵ４１ａは現在の座標値を移動開始点とし、算出した移動量を現在の座標値に加算した座標を移動目標点とする。ここで、移動開始点及び移動目標点は、図１２に示すステップＳ４１にて取得された始点及び終点と必ずしも同一ではない。例えば、ステップＳ４１にて取得された始点及び終点間における二地点を示し、移動開始点及び移動目標点の座標は始点から終点まで工具５８が移動する経路上の座標となる。ＣＰＵ４１ａは、その移動開始点及び移動目標点が各軸について禁止範囲に進入するか否かをステップＳ５２〜ステップＳ５４にて判定処理を行う。ＣＰＵ４１ａは、ステップＳ５７にてカウンタｊの値が禁止範囲の個数Ｎ以上であると判定した場合（Ｓ５７：ＮＯ）、移動開始点から移動目標点までの移動処理を実行する（ステップＳ５８）。具体的には、ＣＰＵ４１ａは算出した移動量を各軸制御部４２〜４４に出力し、工具５８を移動させる。その後、ＣＰＵ４１ａは図８に示すステップＳ１８に処理を戻す。
【００７７】
以上の構成、処理手順、及び禁止範囲への進入の判定を行うことにより、ワーク支持装置６０についてオープンループ制御により移動制御が行われる場合であっても、工作機械１の工具５８及びワークの移動による干渉を生ずることを抑制することができる。従って、数値制御装置４及び加工部５におけるワーク支持装置６０の構成を、フィードバック制御のみを行う構成と比べ簡単にし、かつオープンループ制御のみを行う構成に比べ移動の精度を高めることができる。
【００７８】
（実施の形態２）
本実施の形態においては、オープンループ制御を含む移動処理について、オープンループ制御による移動及びフィードバック制御による移動夫々で禁止範囲に進入するか否かを判定し、一方でも禁止範囲に進入しない場合に移動処理を実行する例を説明する。なお、その他の構成及び作用は上述の実施の形態１と同様であるため、同様の構成については同様の符号を付し、その詳細な説明及び作用効果を省略する。
【００７９】
図１４は、制御部４１が行うオープンループ制御を含む移動処理の処理手順を示したフローチャートである。図１４は、図８に示すステップＳ１６の処理の詳細な説明に対応する。ＣＰＵ４１ａは移動命令により移動する工具５８の始点及び終点の座標を取得する（ステップＳ６１）。ＣＰＵ４１ａはワークの開始角度及び終了角度を取得する（ステップＳ６２）。なお、ステップＳ６１及びステップＳ６２は図９に示すステップＳ２１及びステップＳ２２と同様であるため、詳細な説明を省略する。
【００８０】
ＣＰＵ４１ａは、カウンタｉの値を１としてＲＡＭ４１ｃに記憶する（ステップＳ６３）。その後ＣＰＵ４１ａは、ステップＳ６２にて取得したワークの開始角度及び終了角度がＡ軸方向について禁止範囲に進入するか否かを判定する（ステップＳ６４）。Ａ軸方向について禁止範囲に進入しないと判定した場合（Ｓ６４：ＮＯ）、ＣＰＵ４１ａは処理をステップＳ６７へ進める。
【００８１】
Ａ軸方向について禁止範囲に進入する判定した場合（Ｓ６４：ＹＥＳ）、ＣＰＵ４１ａは、ステップＳ６２にて取得したワークの開始角度及び終了角度がＣ軸方向について禁止範囲に進入するか否かを判定する（ステップＳ６５）。Ｃ軸方向について禁止範囲に進入しないと判定した場合（Ｓ６５：ＮＯ）、ＣＰＵ４１ａは処理をステップＳ６７へ進める。
【００８２】
Ｃ軸方向について禁止範囲に進入すると判定した場合（Ｓ６５：ＹＥＳ）、カウンタｉの値をＲＡＭ４１ｃに記憶する（ステップＳ６６）。その後、カウンタｉの値を１増加させ（ステップＳ６７）、カウンタｉの値がＮ未満か否かを判定する（ステップＳ６８）。ここで、Ｎは禁止範囲の個数を示す。カウンタｉの値がＮ未満と判定した場合（Ｓ６８：ＹＥＳ）、ＣＰＵ４１ａは処理をステップＳ６４に戻す。
【００８３】
カウンタｉの値がＮ以上と判定した場合（Ｓ６８：ＮＯ）、ＣＰＵ４１ａは後述の移動実行処理を行う（ステップＳ６９）。移動実行処理終了後、ＣＰＵ４１ａは移動実行処理で警報が作動したか否かを判定する（ステップＳ７０）。警報が作動したと判定した場合（Ｓ７０：ＹＥＳ）、ＣＰＵ４１ａは図８に示すステップＳ１８に処理を戻す。警報を作動していないと判定した場合（Ｓ７０：ＮＯ）、ＣＰＵ４１ａは移動処理が終了したか否かを判定する（ステップＳ７１）。移動処理が終了したと判定した場合（Ｓ７１：ＹＥＳ）、ＣＰＵ４１ａは図８に示すステップＳ１８に処理を戻す。移動が終了していないと判定した場合（Ｓ７１：ＮＯ）、ＣＰＵ４１ａは処理をステップＳ６９へ戻す。なお、ステップＳ６４〜ステップＳ６５における判定処理を実行するＣＰＵ４１ａが第１副進入判定部として機能する。また、ステップＳ６３〜ステップＳ６８の判定処理は、Ａ軸及びＣ軸方向についての移動が禁止範囲を侵入するか否かを検出するものであり、Ａ軸及びＣ軸方向についての移動の禁止は行っていない。
【００８４】
図１５は、オープンループ制御を含む移動処理のサブルーチンを示したフローチャートである。図１５は、図１４に示すステップＳ６９の移動実行処理の詳細な説明に対応する。ステップＳ８１〜ステップＳ８４は、図１３に示すステップＳ５１〜ステップＳ５４と同様であり、ステップＳ８６〜ステップＳ８９は、図１３に示すステップＳ５５〜ステップＳ５８と同様であり、その詳細な説明は省略する。ただし、ＣＰＵ４１ａは工具５８のみならず、ワークについても各軸の移動量を算出する。また、ステップＳ８９では算出した移動量を各軸制御部４６及び４７にも出力し、工具５８だけでなくワークについても移動させる。
【００８５】
ＣＰＵ４１ａは、図１４に示すステップＳ６６でＲＡＭ４１ｃに記憶されたカウンタｉの値の中にｊの値が存在するか否かを判定する（ステップＳ８５）。ｊの値が存在しないと判定した場合（Ｓ８５：ＮＯ）、ＣＰＵ４１ａはステップＳ８７へ処理を進め、ｊの値が存在すると判定した場合（Ｓ８５：ＹＥＳ）、ＣＰＵ４１ａはステップＳ８６へ処理を進める。なお、ステップＳ８２〜ステップＳ８４の判定処理を実行するＣＰＵ４１ａが第２副進入判定部として機能する。
【００８６】
ここで、ステップＳ８２〜ステップＳ８４ではＣＰＵ４１ａは、カウンタｊに応じて選択された禁止範囲に工具５８が進入するか否かを判定し、Ｘ、Ｙ、Ｚ軸全てにおいて禁止範囲に進入すると判定された場合（Ｓ８４：ＹＥＳ）、ステップＳ８５に処理を進める。Ｘ、Ｙ、Ｚ軸全てにおいて禁止範囲に進入するとは、工具５８がカウンタｊの値に応じた禁止範囲に進入する可能性があることを意味する。ステップＳ８５にてそのカウンタｊの値に応じた禁止範囲にワークが進入する可能性があるか否かを判定することによって、警報を作動するか否かを判定する。従って、オープンループ制御による移動（ワークの移動）及びフィードバック制御による移動（工具５８の移動）夫々で禁止範囲に進入するか否かを判定し、一方でも禁止範囲に進入しない場合に移動処理を実行する。
なお、本実施の形態の移動実行処理においては、記憶部４１ｇに記憶されている禁止範囲全てについて、ステップＳ８２〜ステップＳ８４の判定処理を行ったが、それ以外の手順であってもよい。例えば、図１４に示すステップＳ６６でＲＡＭ４１ｃに記憶されたカウンタｉに対応する禁止範囲についてのみステップＳ８２〜ステップＳ８４の判定処理を行うようにしてもよい。その場合、ステップＳ８５の判定処理は不要となる。
【００８７】
以上の構成及び処理手順によって、オープンループ制御の情報を含む命令に基づく移動について、制御部４１は所定の周期毎に禁止範囲に進入するか否かを繰り返し判定する。そのため、オープンループ制御の情報を含む命令を実行する場合であっても、禁止範囲に進入する直前まで工具５８及びワークが移動することができる。
【００８８】
なお、上述の実施の形態１及び２においては、ワーク支持装置６０は、Ａ軸及びＣ軸を回転軸とする回転移動を行うことを示したが、この記載に限定されない。例えば、Ｙ軸と平行な軸をＢ軸とし、Ｂ軸を回転軸とする回転移動についても制御するようにしてもよい。また、オープンループ制御を実施する軸をＡ軸とＣ軸として説明したが、Ａ軸のみでもよい。その場合、Ｃ軸についてはフィードバック制御を行い、処理はＸ軸と同様の処理を行う。
【００８９】
なお、上述の実施の形態１及び２においては、工作機械１の主軸ヘッド５７について互いに直交する３軸についての移動を行い、ワーク支持装置６０について互いに直交する３軸を回転軸とする回転移動を行うことを示したが、その記載に限定されない。例えば、工作機械１の主軸ヘッド５７について、互いに直交する３軸を回転軸とする回転移動を行ってもよい。
【００９０】
なお、上述の実施の形態１及び２においては、工作機械１の主軸ヘッド５７及びワーク支持装置６０の移動の制御について示したが、その記載に限定されない。工作機械１に係る物以外の物体の移動について制御を行う構成としてもよい。
【符号の説明】
【００９１】
１  工作機械
４  数値制御装置
４１  制御部
４１ａ  ＣＰＵ（判定部、進入判定部、制御許可部）
４２  Ｘ軸制御部（第２副制御部）
４３  Ｙ軸制御部（第２副制御部）
４４  Ｚ軸制御部（第２副制御部）
４５  主軸制御部（第２副制御部）
４６  Ａ軸制御部（第１副制御部）
４７  Ｃ軸制御部（第１副制御部）
５７  主軸ヘッド
６０  ワーク支持装置（支持部）
【図１】
2014164713.tif 000003
【図２】
2014164713.tif 000004
【図３】
2014164713.tif 000005
【図４】
2014164713.tif 000006
【図５】
2014164713.tif 000007
【図６】
2014164713.tif 000008
【図７】
2014164713.tif 000009
【図８】
2014164713.tif 000010
【図９】
2014164713.tif 000011
【図１０】
2014164713.tif 000012
【図１１】
2014164713.tif 000013
【図１２】
2014164713.tif 000014
【図１３】
2014164713.tif 000015
【図１４】
2014164713.tif 000016
【図１５】
2014164713.tif 000017