(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024093947
(43)【公開日】2024-07-09
(54)【発明の名称】制御装置、演算方法及びコンピュータプログラム
(51)【国際特許分類】
B23Q 15/18 20060101AFI20240702BHJP
G05B 19/404 20060101ALI20240702BHJP
【FI】
B23Q15/18
G05B19/404 K
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2022210612
(22)【出願日】2022-12-27
(71)【出願人】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】100114557
【弁理士】
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【弁理士】
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】下坂 京平
【テーマコード(参考)】
3C001
3C269
【Fターム(参考)】
3C001KA05
3C001KB04
3C001TA02
3C001TB02
3C001TB09
3C269AB01
3C269BB03
3C269BB05
3C269CC02
3C269EF10
3C269MN16
3C269MN27
(57)【要約】
【課題】ワークの加工精度と生産性とを両立させることができる制御装置、演算方法及びコンピュータプログラムを提供する。
【解決手段】制御装置は、主軸又はワークを支持する支持部の位置を測定し、測定した前記位置に基づいて、前記支持部の位置を補正する補正量を演算する制御装置において、前記位置を測定する第一測定処理を完了した時点からの経過時間が基準時間以上であるか否か判定する判定部と、前記判定部にて前記経過時間が前記基準時間以上であると判定した場合、前記位置の測定の実行を決定する実行決定部と、前記判定部にて前記経過時間が前記基準時間未満であると判定した場合、前記位置の測定の不実行を決定する不実行決定部とを備える。
【選択図】
図5
【特許請求の範囲】
【請求項1】
主軸又はワークを支持する支持部の位置を測定し、測定した前記位置に基づいて、前記支持部の位置を補正する補正量を演算する制御装置において、
前記位置を測定する第一測定処理を完了した時点からの経過時間が基準時間以上であるか否か判定する判定部と、
前記判定部にて前記経過時間が前記基準時間以上であると判定した場合、前記位置の測定の実行を決定する実行決定部と、
前記判定部にて前記経過時間が前記基準時間未満であると判定した場合、前記位置の測定の不実行を決定する不実行決定部と
を備える
制御装置。
【請求項2】
前記実行決定部にて前記位置の測定の実行が決定された後、前記位置を測定する第二測定処理を実行する測定実行部と、
前記第一測定処理にて測定された前記位置である第一位置と、前記第二測定処理にて測定された前記位置である第二位置とに基づいて更新時間を決定する時間決定部と、
前記時間決定部にて決定された前記更新時間に基づいて、前記基準時間を更新する更新部と
を備える請求項1に記載の制御装置。
【請求項3】
前記時間決定部は、前記経過時間に対する前記第一位置と前記第二位置との差分に基づいて、前記更新時間を演算する
請求項2に記載の制御装置。
【請求項4】
前記支持部が冷却された状態にあるか否かを判定する冷却判定部と、
前記冷却判定部にて前記支持部が冷却された状態にあると判定した場合、前記位置の測定を少なくとも二回連続実行することを決定する連続実行決定部と
を備える請求項1から3のいずれか一つに記載の制御装置。
【請求項5】
前記冷却判定部は、起動時であるか又は運転停止後、予め定めた所定時間以上経過した場合、前記支持部が冷却された状態にあると判定する
請求項4に記載の制御装置。
【請求項6】
前記補正量の演算を示す指令を読み込んだか否かを判定する指令判定部を備え、
前記指令判定部にて前記指令を読み込んだと判定した場合、前記判定部は前記経過時間が基準時間以上であるか否か判定する
請求項1から3のいずれか一つに記載の制御装置。
【請求項7】
主軸又はワークを支持する支持部の位置を測定する処理を実行し、測定した前記位置に基づいて、前記支持部の位置を補正する補正量を演算する演算方法において、
前記位置を測定する第一測定処理を完了した時点からの経過時間が基準時間以上であるか否か判定し、
前記経過時間が前記基準時間以上であると判定した場合、前記位置の測定の実行を決定し、
前記経過時間が前記基準時間未満であると判定した場合、前記位置の測定の不実行を決定する
演算方法。
【請求項8】
主軸又はワークを支持する支持部の位置を測定する処理を実行し、測定した前記位置に基づいて、前記支持部の位置を補正する補正量を演算する制御装置にて実行可能なコンピュータプログラムにおいて、
制御装置に、
前記位置を測定する第一測定処理を完了した時点からの経過時間が基準時間以上であるか否か判定し、
前記経過時間が前記基準時間以上であると判定した場合、前記位置の測定の実行を決定し、
前記経過時間が前記基準時間未満であると判定した場合、前記位置の測定の不実行を決定する
処理を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本技術は、主軸又はワークを支持する支持部の熱変位量に関する補正量を演算する制御装置、演算方法及びコンピュータプログラムに関する。
【背景技術】
【0002】
工作機械の加工精度を向上させる方法は、可動テーブルを駆動するためのボールねじ軸の熱変位量を求め、可動テーブルの送り量を補正する(特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
ワークの加工精度は熱変位量の演算頻度を多くすれば向上する。生産性は熱変位量の演算頻度を多くすれば低下する。
【0005】
本開示は斯かる事情に鑑みてなされたものであり、ワークの加工精度と生産性とを両立させることができる制御装置、演算方法及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本開示の一実施形態に係る制御装置は、主軸又はワークを支持する支持部の位置を測定し、測定した前記位置に基づいて、前記支持部の位置を補正する補正量を演算する制御装置において、前記位置を測定する第一測定処理を完了した時点からの経過時間が基準時間以上であるか否か判定する判定部と、前記判定部にて前記経過時間が前記基準時間以上であると判定した場合、前記位置の測定の実行を決定する実行決定部と、前記判定部にて前記経過時間が前記基準時間未満であると判定した場合、前記位置の測定の不実行を決定する不実行決定部とを備える。
【0007】
本開示の一実施形態においては、前記経過時間が基準時間未満であると判定した場合、第一測定処理を完了した時点からの補正量は僅かであり、加工精度への影響は小さいと考えられるので、前記位置の測定を実行しない。
【0008】
本開示の一実施形態に係る制御装置は、前記実行決定部にて前記位置の測定の実行が決定された後、前記位置を測定する第二測定処理を実行する測定実行部と、前記第一測定処理にて測定された前記位置である第一位置と、前記第二測定処理にて測定された前記位置である第二位置とに基づいて更新時間を決定する時間決定部と、前記時間決定部にて決定された前記更新時間に基づいて、前記基準時間を更新する更新部とを備える。
【0009】
本開示の一実施形態においては、例えば支持部の位置の変化量に基づいて基準時間を更新する。
【0010】
本開示の一実施形態に係る制御装置は、前記時間決定部は、前記経過時間に対する前記第一位置と前記第二位置との差分に基づいて、前記更新時間を演算する。
【0011】
本開示の一実施形態においては、経過時間に対する第一位置と第二位置との差分に基づいて、更新時間を演算する。
【0012】
本開示の一実施形態に係る制御装置は、前記支持部が冷却された状態にあるか否かを判定する冷却判定部と、前記冷却判定部にて前記支持部が冷却された状態にあると判定した場合、前記位置の測定を少なくとも二回連続実行することを決定する連続実行決定部とを備える。
【0013】
本開示の一実施形態においては、冷却された状態から加工を開始する場合、加工開始後、しばらくの間は熱変位量が大きいので、前記位置の測定を少なくとも二回連続実行し、加工精度の低下を抑制する。
【0014】
本開示の一実施形態に係る制御装置は、前記冷却判定部は、起動時であるか又は運転停止後、予め定めた所定時間以上経過した場合、前記支持部が冷却された状態にあると判定する。
【0015】
本開示の一実施形態においては、起動時又は運転停止後所定時間以上経過した場合、冷却された状態であると判定し、冷却の判定を実現する。
【0016】
本開示の一実施形態に係る制御装置は、前記補正量の演算を示す指令を読み込んだか否かを判定する指令判定部を備え、前記指令判定部にて前記指令を読み込んだと判定した場合、前記判定部は前記経過時間が基準時間以上であるか否か判定する。
【0017】
本開示の一実施形態においては、例えば加工プログラムに含まれる補正量の演算を示す指令を読み込んだ場合に、前記位置の測定の実行又は不実行を決定する。
【0018】
本開示の一実施形態に係る演算方法は、主軸又はワークを支持する支持部の位置を測定する処理を実行し、測定した前記位置に基づいて、前記支持部の位置を補正する補正量を演算する演算方法において、前記位置を測定する第一測定処理を完了した時点からの経過時間が基準時間以上であるか否か判定し、前記経過時間が前記基準時間以上であると判定した場合、前記位置の測定の実行を決定し、前記経過時間が前記基準時間未満であると判定した場合、前記位置の測定の不実行を決定する。
【0019】
本開示の一実施形態においては、前記経過時間が基準時間未満であると判定した場合、第一測定処理を完了した時点からの補正量は僅かであり、加工精度への影響は小さいと考えられるので、前記位置の測定を実行しない。
【0020】
本開示の一実施形態に係るコンピュータプログラムは、主軸又はワークを支持する支持部の位置を測定する処理を実行し、測定した前記位置に基づいて、前記支持部の位置を補正する補正量を演算する制御装置にて実行可能なコンピュータプログラムにおいて、制御装置に、前記位置を測定する第一測定処理を完了した時点からの経過時間が基準時間以上であるか否か判定し、前記経過時間が前記基準時間以上であると判定した場合、前記位置の測定の実行を決定し、前記経過時間が前記基準時間未満であると判定した場合、前記位置の測定の不実行を決定する処理を実行させる。
【0021】
本開示の一実施形態においては、前記経過時間が基準時間未満であると判定した場合、第一測定処理を完了した時点からの補正量は僅かであり、加工精度への影響は小さいと考えられるので、前記位置の測定を実行しない。
【発明の効果】
【0022】
本開示の一実施形態に係る制御装置、演算方法及びコンピュータプログラムにあっては、前記経過時間が基準時間未満であると判定した場合、第一測定処理を完了した時点からの補正量は僅かであり、加工精度への影響は小さいと考えられるので、前記位置の測定を実行しない。不要な補正量の演算を実行せず、ワークの加工精度と生産性とを両立させることができる。
【図面の簡単な説明】
【0023】
【
図3】制御装置の構成を略示するブロック図である。
【
図4】テーブルの位置測定を説明する説明図である。
【
図5】制御装置による加工プログラムの実行処理を説明するフローチャートである。
【
図6】制御部による測定要否判定処理を説明するフローチャートである。
【
図7】制御部によるtn演算処理を説明するフローチャートである。
【発明を実施するための形態】
【0024】
以下本発明を実施の形態に係る工作機械を示す図面に基づいて説明する。以下の説明では図において矢印で示す上下左右前後を使用する。なお図に示す上下左右前後は、説明容易化のために示したものに過ぎず、方向はこれに限定されない。
図1は、工作機械の略示斜視図である。
【0025】
工作機械1は基台11、立柱12、主軸ヘッド2、工具マガジン3、テーブル15、制御装置50等を備える。基台11は床面上に固定される。立柱12は基台11の後部から上側に延びる。主軸ヘッド2は立柱12の前面に設けられ、Z軸モータ33(
図3参照)の駆動によって、Z軸方向(上下方向)に昇降可能である。上下に延びた主軸2aが主軸ヘッド2内に設けてある。主軸2aの下端部は工具ホルダ5を装着する。工具ホルダ5は工具tを保持する。主軸2aには工具ホルダ5を介して工具tが装着される。主軸2aは主軸モータ84の駆動によって軸回りに回転する。
【0026】
立柱12の上部左右両側から前方に支持板18が延びる。二つの支持板18の間に主軸ヘッド2は配置される。支持板18の前端部に支持台14が設けられている。支持台14は、前側に向かうに従って下降するように傾斜した支持軸34を回転可能に支持する。
【0027】
工具マガジン3は回転円盤30と、回転円盤30の外周に取り付けられた複数の把持部(図示略)とを備える。各把持部は工具ホルダ5を保持する。回転円盤30は支持軸34に固定される。マガジンモータ85の駆動によって支持軸34は回転し、工具マガジン3は支持軸34の軸回りに回転する。
【0028】
工具tを保持する工具ホルダ5が交換位置に配置され、工具ホルダ5が装着されていない主軸ヘッド2が下降した場合、工具ホルダ5、即ち工具tは主軸2aに装着される。工具ホルダ5が装着されていない空の把持部が交換位置に配置され、工具tを保持する工具ホルダ5を装着した主軸ヘッド2が上昇した場合、工具ホルダ5、即ち工具tは空の把持部に把持される。
【0029】
基台11上部の前側に前後方向に移動するY軸方向移動機構17が設けてある。Y軸方向移動機構17は前後方向に移動する移動板16(
図2参照)を備える。移動板16の上側に左右方向に移動するX軸方向移動機構20が設けてある。Y軸方向移動機構17の駆動によって移動板16及びX軸方向移動機構20は前後方向に移動する。
【0030】
図2は、X軸方向移動機構20を略示する模式図である。左右に延びた軌道(図示略)と、X軸螺子軸22と、X軸モータ23と、右側軸受24と、左側軸受25とを備える。軌道は移動板16上面に設けてある。
図2に示す如く、X軸螺子軸22の右端部に右側軸受24を設け、X軸螺子軸22の左端部付近に左側軸受25が設けてある。右側軸受24は支持体24aを介して移動板16に固定してある。右側軸受24はX軸螺子軸22の左端部を軸回りに回転可能に支持する。左側軸受25は支持体25aを介して移動板16に固定してある。左側軸受25はX軸螺子軸22の左端部を軸回りに回転可能に支持し、且つ前記左端部の軸方向への移動を規制する。X軸モータ23は、X軸螺子軸22の左端部に連結している。
【0031】
X軸螺子軸22には転動体(図示略)を介してナット27が螺合している。左右に延びた軌道(図示略)に複数の摺動子(図示略)が摺動可能に設けてある。ナット27及び摺動子はテーブル15に連結する。X軸モータ23の回転によってX軸螺子軸22は回転し、ナット27は左右方向に移動し、テーブル15は左右方向に移動する。テーブル15にはワークが支持される。テーブル15は支持部を構成する。
【0032】
Y軸方向移動機構17は、前後に延びた軌道(図示略)と、Y軸螺子軸(図示略)と、Y軸モータ13(
図3参照)と、二つの軸受(図示略)と、ナット(図示略)とを備える。前後に延びた軌道と、Y軸螺子軸と、Y軸モータ13と、二つの軸受と、ナットとは、方向が前後方向であることを除けば、X軸方向移動機構20における左右に延びた軌道(図示略)と、X軸螺子軸22と、X軸モータ23と、右側軸受24と、左側軸受25と、ナット27と同様な構成であるので、その詳細な説明を省略する。なおY軸方向移動機構17のナットには移動板16が連結される。
【0033】
図3は制御装置50の構成を略示するブロック図である。制御装置50は、制御部51、ROM52、RAM53、不揮発性メモリ58及び入出力インタフェース54を備える。制御部51はプロセッサ(例えばCPU、MPU又はASIC)又はロジック回路(例えばFPGA)等を備え、またタイマを備える。制御装置50は、制御部51とは別にタイマを備えてもよい。作業者が操作部7を操作した場合、操作部7から入出力インタフェース54に信号が入力する。操作部7は例えばキーボード、ボタン、タッチパネル等である。入出力インタフェース54は表示部8に信号を出力する。表示部8は文字、図形、記号等を表示する。表示部8は例えば液晶ディスプレイ又は有機ELディスプレイである。後述する位置検出器2b(
図4参照)から入出力インタフェース54に検出結果が入力する。
【0034】
不揮発性メモリ58は、EPROM、EEPRPM、フラッシュメモリ等であり、書き換え可能である。不揮発性メモリ58は加工プログラム、後述する変数、補正量及び定数等を記憶する。加工プログラムの実行前に、不揮発性メモリ58は、予め加工プログラム、変数、補正量及び定数等を記憶する。例えば光ディスク又はUSBメモリ等の持ち運び可能な記録媒体59に記録された加工プログラムを不揮発性メモリ58にインストールしてもよい。制御部51は加工プログラムを不揮発性メモリ58からRAM53に読み込んで、各モータの駆動の制御又は後述する補正量演算処理等を実行する。加工プログラムは複数の指令を有し、制御部51は各指令を順に読み込んで実行する。なおROM52又はRAM53が加工プログラム、変数、補正量又は定数等を記憶してもよい。
【0035】
制御装置50は、X軸モータ23に対応したX軸制御回路55、サーボアンプ55a及び微分器23bを備える。X軸モータ23はエンコーダ23aを備える。X軸制御回路55は制御部51からの指令に基づいて、電流量を示す命令をサーボアンプ55aに出力する。サーボアンプ55aは前記命令を受け、X軸モータ23に駆動電流を出力する。
【0036】
エンコーダ23aはX軸制御回路55に位置フィードバック信号を出力する。X軸制御回路55は位置フィードバック信号に基づいて、位置のフィードバック制御を実行する。
【0037】
エンコーダ23aは微分器23bに位置フィードバック信号を出力し、微分器23bは位置フィードバック信号を速度フィードバック信号に変換して、X軸制御回路55に出力する。X軸制御回路55は、速度フィードバック信号に基づいて、速度のフィードバック制御を実行する。
【0038】
サーボアンプ55aが出力した駆動電流の値を電流検出器55bが検出する。電流検出器55bは駆動電流の値をX軸制御回路55にフィードバックする。X軸制御回路55は駆動電流の値に基づいて、電流制御を実行する。
【0039】
制御装置50はY軸モータ13に対応したY軸制御回路56、サーボアンプ56a、微分器13b、電流検出器56bを備え、Y軸モータ13はエンコーダ13aを備える。Y軸制御回路56、サーボアンプ56a、微分器13b、Y軸モータ13、エンコーダ13a、電流検出器56bはX軸のものと同様であり、その説明を省略する。
【0040】
制御装置50はZ軸モータ33に対応したZ軸制御回路57、サーボアンプ57a、電流検出器57b、微分器33bを備える。Z軸モータ33はエンコーダ33aを備える。Z軸制御回路57、サーボアンプ57a、微分器33b、Z軸モータ33、エンコーダ33a、電流検出器57bはX軸のものと同様であり、その説明を省略する。
【0041】
制御装置50はマガジンモータ85及び主軸モータ84に対しても、X~Z軸モータ23、13、33と同様なフィードバック制御を実行する。
【0042】
図4はテーブル15の位置測定を説明する説明図である。制御部51はテーブル15の位置測定を制御する。テーブル15上に目標15aが設けてある。主軸2aには位置検出器2bが装着してある。位置検出器2bはタッチプローブである。タッチプローブに代えて非接触式のセンサ、例えば光学式又は音波式の近接センサを使用してもよい。X軸モータ23の駆動によって、目標15aは移動し、位置検出器2bに接近する。位置検出器2bは目標15aを検出した場合、目標15aを検出したことを示す信号を制御部51に出力する。前記信号が入力された場合、制御部51はエンコーダ23aの検出結果を不揮発性メモリ58に記憶し、X軸制御回路55に停止信号を出力する。エンコーダ23aの検出結果はテーブル15の左右位置を示す。即ち、位置検出器2b、制御部51及びエンコーダ23aによって左右方向におけるテーブル15の位置が測定される。
【0043】
Y軸モータ13の駆動によって、目標15aは移動し、位置検出器2bに接近する。位置検出器2bは目標15aを検出した場合、目標15aを検出したことを示す信号を制御部51に出力する。前記信号が入力された場合、制御部51はエンコーダ13aの検出結果を不揮発性メモリ58に記憶し、Y軸制御回路56に停止信号を出力する。エンコーダ13aの検出結果はテーブル15の前後位置を示す。即ち、位置検出器2b、制御部51及びエンコーダ13aによって前後方向におけるテーブル15の位置が測定される。
【0044】
Z軸モータ33の駆動によって、位置検出器2bは移動し、目標15aに接近する。位置検出器2bは目標15aを検出した場合、目標15aを検出したことを示す信号を制御部51に出力する。前記信号が入力された場合、制御部51はエンコーダ33aの検出結果を不揮発性メモリ58に記憶し、Z軸制御回路57に停止信号を出力する。エンコーダ33aの検出結果はテーブル15の上下位置を示す。即ち、位置検出器2b、制御部51及びエンコーダ33aによって上下方向におけるテーブル15の位置が測定される。
【0045】
例えば、制御部51は、測定されたテーブル15の位置と、予め定めた基準位置との差分を演算し、前記差分に基づいて左右方向におけるテーブル15の補正量を演算する。制御部51は、加工プログラムからX、Y又はZ軸方向の所定位置への移動指令を読み込んだ場合、テーブル15の所在位置から前記所定位置までの送り量に補正量を加算するか又は前記送り量から補正量を減算する。制御部51は、補正後の送り量を使用してテーブル15を移動させる。制御部51は加工プログラムの実行中に前記補正量を演算する。
【0046】
図5は、制御装置50による加工プログラムの実行処理を説明するフローチャートである。制御部51は工作機械の起動時に変数を初期化する(S1)。変数は測定回数N、運転停止時間ts、測定間隔tm、基準時間tn等を含む。測定回数Nは、テーブル15の位置の測定を実行した回数を示す。運転停止時間tsは、工作機械の運転の停止後、運転を開始するまでの時間を示す。測定間隔tmは、テーブル15の位置の測定終了時点から測定開始時点までの間の時間を示す。基準時間tnは、テーブル15の位置の測定を行うか否かを判定するために、測定間隔tmと比較される時間を示す。なお初期状態において工作機械は停止しているが、運転停止時間tsのカウントは停止している。
【0047】
制御部51は加工プログラムの実行を開始するか否か判定する(S2)。例えば、操作部7から加工プログラムの実行開始を示す信号が入力された場合、又は、加工プログラムから実行再開指令を読み込んだ場合、制御部51は加工プログラムの実行を開始する。加工プログラムの実行を開始しないと判定した場合(S2:NO)、制御部51はステップS2に処理を戻す。
【0048】
加工プログラムの実行を開始すると判定した場合(S2:YES)、制御部51は運転停止時間tsのカウントを停止する(S3)。なお上述のように、初期状態において運転停止時間tsのカウントは停止している。制御部51は加工プログラムの指令を読み込む(S4)。
【0049】
制御部51は、読み込んだ指令が補正量演算指令であるか否か判定する(S5)。ステップS5の処理を実行する制御部51は指令判定部を構成する。読み込んだ指令が補正量演算指令である場合(S5:YES)、制御部51は、テーブル15の位置測定の要否を判定する測定要否判定処理を実行する(S6)。測定要否判定処理の詳細は後述する。
【0050】
制御部51は、測定要否判定処理にてテーブル15の位置測定が必要であると決定されたか否か判定する(S7)。テーブル15の位置測定が必要でない、即ち不要であると判定された場合(S7:NO)、制御部51はステップS4に処理を戻す。テーブル15の位置測定が必要であると判定された場合(S7:YES)、制御部51は、テーブル15の位置を測定する測定処理を実行する(S8)。ステップS8の測定処理は第一測定処理及び第二測定処理を構成する。
【0051】
制御部51は、ステップS8の測定結果に基づいて、補正量を演算し(S9)、不揮発性メモリ58に記憶されている補正量を、演算された補正量に更新する(S10)。制御部51は、基準時間tnを演算する基準時間演算処理を実行し(S11)、ステップS4に処理を戻し、加工プログラムの次の指令を読み込む。基準時間演算処理の詳細は後述する。
【0052】
ステップS5において、読み込んだ指令が補正量演算指令でない場合(S5:NO)、制御部51は、読み込んだ指令が終了指令であるか否か判定する(S12)。読み込んだ指令が終了指令である場合(S12:YES)、制御部51は加工プログラムの実行を終了し(S13)、運転停止時間tsをリセットして0に戻し、カウントを開始する(S14)。制御部51は電源がオフになった否か判定する(S15)。電源がオフになっていない場合(S15:NO)、制御部51はステップS2に処理を戻す。電源がオフになった場合(S15:YES)、制御部51は加工プログラムの実行処理を終了する。
【0053】
ステップS12において、読み込んだ指令が終了指令でない場合(S12:NO)、即ち、読み込んだ指令が補正量演算指令でも終了指令でもない場合、制御部51は読み込んだ指令を実行し(S16)、ステップS4に処理を戻す。
【0054】
制御部51は、テーブル15の位置測定が必要である場合(S7:YES)、前記位置測定を実行し(S8)、補正量の演算(S9)及び更新を行う(S10)。制御部51は更新した補正量に基づいて、テーブル15の送り量を補正することができる。一方、制御部51は、テーブル15の位置測定が必要でない場合(S7:NO)、前記位置測定を実行せず、補正量の演算及び更新も行わない。
【0055】
制御部51は加工プログラムの実行終了後(S13)、運転停止時間tsのカウントを開始し(S14)、加工プログラムの実行開始後(S2)、運転停止時間tsのカウントを停止する。
【0056】
図6は、制御部51による測定要否判定処理を説明するフローチャートである。上述のステップS5において、読み込んだ指令が補正量演算指令である場合(S5:YES)、制御部51は、運転停止時間tsが0であるか又は定数Ts以上であるか否か判定する(S21)。定数Tsは、運転停止後の経過時間であって、工作機械の温度が十分に低下したと推定される最小の時間を示す。定数Tsは任意に定めることができる。
【0057】
運転停止時間tsが0であるか又は定数Ts以上である場合(S21:YES)、制御部51は測定回数Nに0を格納し(S28)、テーブル15の位置測定が必要であると決定し(S27)、ステップS7に処理を進める。
【0058】
運転停止時間tsが0であるか又は定数Ts以上でない場合(S21:NO)、制御部51は、測定間隔tmが定数tmin以下であるか否か判定する(S22)。定数tminは、測定間隔と比較するための値であって、基準時間tnの精度を安定させるための値である。定数tminは任意に定めることができる。測定間隔tmが定数tmin以下である場合(S22:YES)、制御部51は、テーブル15の位置測定が不要であると決定し(S26)、ステップS7に処理を進める。
【0059】
測定間隔tmが定数tmin以下でない場合(S22:NO)、制御部51は、測定回数Nが2未満であるか否か判定する(S23)。測定回数Nが2未満である場合(S23:YES)、即ち測定回数Nが0又は1である場合、制御部51は、テーブル15の位置測定が必要であると決定し(S27)、ステップS7に処理を進める。
【0060】
測定回数Nが2未満でない場合(S23:NO)、即ち測定回数Nが2以上である場合、制御部51は、測定間隔tmが定数Tm以上であるか否か判定する(S24)。定数Tmは運転停止後の経過時間であって、ユーザが任意に設定する時間である。即ち、定数Tmはユーザが希望する時間である。測定間隔tmが定数Tm以上である場合(S24:YES)、制御部51は、テーブル15の位置測定が必要であると決定し(S27)、ステップS7に処理を進める。
【0061】
測定間隔tmが定数Tm以上でない場合(S24:NO)、制御部51は、測定間隔tmが基準時間tn以上であるか否か判定する(S25)。測定間隔tmが基準時間tn以上である場合(S25:YES)、制御部51は、テーブル15の位置測定が必要であると決定し(S27)、ステップS7に処理を進める。測定間隔tmが基準時間tn以上でない場合(S25:NO)、制御部51は、テーブル15の位置測定が不要であると決定し(S26)、ステップS7に処理を進める。ステップS25の処理を実行する制御部51は判定部を構成し、ステップS25及びステップS27の処理を実行する制御部51は実行決定部を構成し、ステップS25及びステップS26の処理を実行する制御部51は不実行決定部を構成する。
【0062】
制御部51は、ステップS21を実行する前に、その時点での測定間隔tmの値を変数taに格納し、即ち変数taに測定間隔tmの値を退避させて、ステップS22、S24及びS25において、変数taと、定数tmin、定数Tm及び基準時間tnとを比較してもよい。
【0063】
運転停止時間tsが0であるか又は定数Ts以上である場合(S21:YES)、例えば工作機械の起動時又は休憩終了直後であり、運転停止後、予め定めた所定時間以上経過し、工作機械の温度が十分に低下したと推定される。その場合、測定回数Nをリセットして0にし(S28)、テーブル15の位置測定が必要と決定する(S27)。ステップS21の処理を実行する制御部51は冷却判定部を構成する。また測定回数Nが2未満の場合(S23:YES)もテーブル15の位置測定が必要と決定する(S27)。即ち、制御部51はテーブル15の位置測定を連続実行する。換言すればテーブル15が冷却された状態にあると判定した場合、制御部51はテーブル15の位置測定を少なくとも二回実行する。後述するtn演算処理において、連続する二回の測定結果の差分を使用するからである(
図7参照)。ステップS28、S23及びS27の処理を実行する制御部51は連続実行決定部を構成する。
【0064】
測定間隔tmが定数tmin以下である場合(S22:YES)、測定間隔tmが短すぎて、基準時間tnを演算した際(S11)、基準時間tnの精度が不安定になるおそれがある。そのため、テーブル15の位置測定が不要であると決定し(S26)、tn演算処理を実行しない。
【0065】
測定間隔tmが、ユーザが設定する定数Tm以上である場合(S24:YES)、テーブル15の位置測定が必要であると決定するので、ユーザの希望が処理に反映される。ステップS24は省略してもよい。
【0066】
測定間隔tmが基準時間tn以上である場合(S25:YES)、テーブル15の位置測定が必要であると決定する。基準時間tnは、後述するtn演算処理において演算され、測定を行う間隔として適当と考えられる時間であるからである。
【0067】
図7は、制御部51によるtn演算処理を説明するフローチャートである。制御部51は、上述のステップS10の実行後、測定回数Nが0であるか否か判定する(S41)。測定回数Nが0でない場合(S41:NO)、制御部51は測定間隔tmのカウントを停止する(S42)。
【0068】
制御部51は、ステップS42の実行後、ステップS8にて測定したX軸方向におけるテーブル15の位置Xiと、位置Xiの測定よりも一つ前に測定されたX軸方向におけるテーブル15の位置Xi-1との差分の大きさを測定間隔tmで除算した値、換言すれば、X軸方向におけるテーブル15の位置の変化量の傾きKxiを演算する(S43)。制御部51は、許容誤差を示す定数Aを、傾きKxiと、傾きKxiの演算の一つ前に演算された傾きKxi-1とのいずれか大きい値で除算した値tnxを演算する(S44)。
【0069】
制御部51は、ステップS42の実行後、ステップS8にて測定したY軸方向におけるテーブル15の位置Yiと、位置Yiの測定よりも一つ前に測定されたY軸方向におけるテーブル15の位置Yi-1との差分の大きさを測定間隔tmで除算した値、換言すれば、Y軸方向におけるテーブル15の位置の変化量の傾きKYiを演算する(S45)。制御部51は、許容誤差を示す定数Aを、傾きKYiと、傾きKYiの演算の一つ前に演算された傾きKYi-1とのいずれか大きい値で除算した値tnyを演算する(S46)。
【0070】
制御部51は、ステップS42の実行後、ステップS8にて測定したZ軸方向におけるテーブル15の位置Ziと、位置Ziの測定よりも一つ前に測定されたZ軸方向におけるテーブル15の位置Zi-1との差分の大きさを測定間隔tmで除算した値、換言すれば、Z軸方向におけるテーブル15の位置の変化量の傾きKZiを演算する(S47)。制御部51は、許容誤差を示す定数Aを、傾きKZiと、傾きKZiの演算の一つ前に演算された傾きKZi-1とのいずれか大きい値で除算した値tnzを演算する(S48)。制御部51は、ステップS42の後、ステップS42~S48の処理を並行的に実行する。ステップS43~S48の処理を実行する制御部51は時間決定部を構成する。
【0071】
制御部51はステップS42~S48の実行後、tnx、tny及びtnzの内、最も小さい値を変数tn、即ち基準時間tnに格納する(S49)。ステップS49の処理を実行する制御部51は時間決定部及び更新部を構成する。即ち、X~Z軸方向のうち、最も位置の変化量が大きい(最も傾きが大きい)軸方向に対応する時間tnx、tny又はtnzを基準時間tnとする。最も位置の変化量が大きい軸方向に対応する時間を基準時間tnに採用することによって、熱変位量の大きい軸方向に対応させた補正が可能となり、補正の精度を向上できる。制御部51は、測定間隔tmをリセットして0にし、測定間隔tmのカウントを開始し(S52)、測定回数Nを一つ加算し(S53)、ステップS4に処理を戻す。測定回数Nが1以上である場合にステップS8の処理を実行する制御部51は測定実行部を構成する。
【0072】
ステップS41において、測定回数Nが0である場合(S41:YES)、制御部51は、傾きKxi、KYi、及びKZiに0を格納する(S50)。なお傾きKxi、KYi、及びKZiは変数である。制御部51は基準時間tnに0を格納し(S51)、ステップS52に処理を進める。測定回数Nが0である場合、前回の測定結果がないので、傾きを演算することができない。そのため、傾きKxi、KYi、及びKZi及び基準時間tnを0とする。
【0073】
ステップS44、S46及びS48において、最新の演算された傾きと、その一つ前に演算された傾きとを比較しているが、一つ前に演算された傾きを使用しなくてもよい。即ち、最新の演算された傾きのみを使用して、tnx、tny及びtnzを演算してもよい。
【0074】
ステップS43~S48において、X~Z軸方向における位置の傾きを使用してtnx、tny及びtnzを演算しているが、傾きを使用しなくてもよい。例えば、X~Z軸方向における位置の差分に補正係数を乗算するか、または補正係数で除算して、tnx、tny及びtnzを演算してもよい。またX~Z軸方向における位置の差分の大きさ又は傾きと、tnx、tny及びtnzとの関係を示すテーブルを予めROM52又は不揮発性メモリ58に記憶し、X~Z軸方向における位置の差分の大きさをテーブルに適用して、tnx、tny及びtnzを決定し、tnを求めてもよい。
【0075】
実施の形態に係る工作機械にあっては、測定間隔tm(経過時間)が基準時間tn未満であると判定した場合(S25)、測定処理(S8)を完了した時点からの熱変位量は僅かであり、加工精度への影響は小さいと考えられるので、テーブル15の位置の測定を実行しない。不要な補正量の演算を実行せず、ワークの加工精度と生産性とを両立させることができる。
【0076】
またテーブル15(支持部)の位置の変化量に基づいて基準時間を更新する。また測定間隔tmに対するテーブル15の第一位置と第二位置との差分の割合、即ち位置の傾きに基づいて、更新時間を演算する。
【0077】
また冷却された状態から加工を開始する場合、加工開始後、しばらくの間は熱変位量が大きいので、前記位置の測定を少なくとも二回連続実行し、加工精度の低下を抑制する。また起動時又は運転停止後所定時間以上経過した場合、冷却された状態であると判定し、冷却の判定を実現する。
【0078】
また加工プログラムに含まれる補正量の演算を示す指令を読み込んだ場合(S5:YES)、前記位置の測定の実行又は不実行を決定する。
【0079】
なお実施の形態における工作機械は主軸が上下方向に延びるが、主軸が水平方向に延びる横型の工作機械にも本発明は適用可能である。実施の形態における工作機械は、テーブルが前後左右方向に移動し、主軸ヘッドが上下方向に移動するが、主軸ヘッドが上下前後左右方向に移動する工作機械にも本発明は適用可能である。この場合、主軸ヘッドが主軸を支持する支持部を構成し、制御部51は前記支持部の熱変位量に関する補正量を演算し、前記支持部における位置測定の実行又は不実行を決定する。
【0080】
なお通信ネットワークを介して制御装置50がサーバに接続され、サーバが補正量演算処理を実行してもよい。この場合、サーバは制御装置として機能する。なおコンピュータプログラムは、単一のコンピュータ上で、または1つのサイトに配置されるか、若しくは複数のサイトにわたって分散され、通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように展開することができる。
熱変位量は温度変化によるボールねじの変形量、温度変化によるテーブル15の変形量、温度変化によるボールねじの変形に伴って、テーブル15が変位する量に発生するものを含む。
【0081】
今回開示した実施の形態は、全ての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、特許請求の範囲内での全ての変更及び特許請求の範囲と均等の範囲が含まれることが意図される。各実施形態に記載した事項は相互に組み合わせることが可能である。また、特許請求の範囲に記載した独立請求項及び従属請求項は、引用形式に関わらず全てのあらゆる組み合わせにおいて、相互に組み合わせることが可能である。さらに、特許請求の範囲には他の2以上のクレームを引用するクレームを記載する形式(マルチクレーム形式)を用いているが、これに限るものではない。マルチクレームを少なくとも一つ引用するマルチクレーム(マルチマルチクレーム)を記載する形式を用いて記載してもよい。
【符号の説明】
【0082】
1 工作機械
2 主軸ヘッド
2a 主軸
2b 位置検出器
15 テーブル
50 制御装置
51 制御部
52 ROM
53 RAM
58 不揮発性メモリ