(57)【要約】【課題】センサや高機能な演算装置を不要とすることで、工作機械の稼働停止期間を短時間とし、稼働時間や熱変位が変更された場合であっても、最適な補正を行い、常に高い工作精度を保つことを可能とする熱変位補正手段を備えた工作機械及び制御方法を提供することにある。【解決手段】  マシニングセンタ１の熱変位補正方法は、マシニングセンタ１の稼働時に生じる熱変位の時間に対する変化を予め測定してデータテーブル２５を作成する第１のステップと、このデータテーブル２５をＰＬＣ演算部２４に記憶する第２のステップと、マシニングセンタ１の稼働時間とデータテーブル２５とに基づいて現在の熱変位を導き出す第３のステップと、現在の熱変位に基づいて加工制御の補正値を演算する第４のステップと、を実行することにある。【選択図】図１
2012071404.tif 000002
【特許請求の範囲】
【請求項１】
加工制御を行うＮＣ装置を備えた工作機械において熱変位を補正する方法であって、
工作機械の稼働時に生じる熱変位の時間に対する変化を予め測定してデータテーブルを作成する第１のステップと、
前記データテーブルを記憶手段に記憶する第２のステップと、
前記工作機械の稼働時間と前記データテーブルとに基づいて現在の熱変位を導き出す第３のステップと、
前記現在の熱変位に基づいて加工制御の補正値を演算する第４のステップと、
を実行することを特徴とする工作機械の熱変位補正方法。
【請求項２】
前記第１ステップでは、工作機械の稼働停止後に生じる熱変位の時間に対する変化を予め測定して放熱時のデータテーブルを作成し、前記第２ステップで当該データテーブルを前記記憶手段に記憶するようにして、
前記工作機械の稼働を停止した際の最終熱変位と終了時間とを前記記憶手段に記憶する第５ステップと、
所定時間の経過後に稼働を再開する場合、前記最終熱変位を放熱開始時の熱変位として対応する放熱開始時間を前記放熱時のデータテーブルから導き出すと共に、前記放熱開始時間に前記所定時間を加えた時間から前記放熱時のデータテーブルに基づいて稼働再開時の熱変位を導き出す第６のステップと、
をさらに実行することを特徴とする請求項１に記載の工作機械の熱変位補正方法。
【請求項３】
前記第１ステップにおいて、前記データテーブルは、前記熱変位を最大熱変位に対する割合とし、前記時間を最大測定時間に対する割合としてそれぞれ作成されて、前記最大熱変位と最大測定時間との数値の選択によって変更可能であることを特徴とする請求項１又は２に記載の工作機械の熱変位補正方法。
【請求項４】
加工制御を行うＮＣ装置を備えた工作機械であって、
前記ＮＣ装置に、工作機械の稼働時に生じる熱変位の時間に対する変化を予め測定して作成したデータテーブルを保存する一方、
前記ＮＣ装置に、前記工作機械の稼働時に稼働時間と前記データテーブルとに基づいて現在の熱変位を導き出す熱変位抽出手段と、
前記熱変位抽出手段から得られた前記現在の熱変位に基づいて加工制御の補正値を演算する補正値演算手段と、
を設けたことを特徴とする工作機械。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、工作機械の稼働により発生する熱変位の補正を行う工作機械の熱変位補正方法及び工作機械に関する。
【背景技術】
【０００２】
従来から工作機械の稼働では、装置内部のボールネジや工具等に摩擦熱が発生することから、工作機械に熱変位が起こり、加工精度に誤差が生じてしまうため、予め熱変位に対し、その都度センサにより変位量を測定し、補正を行う方法が知られている。
【０００３】
これに対し、センサによって変位量を稼動時毎に測定する場合、センサが故障すると補正ができないため、新たにセンサを準備する必要があることから、予めセンサにより変位量を測定した後は、センサを不要とする熱変位全体を近似式にして補正を行う演算装置が知られている（特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平１０−１４３２１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、既存の工作機械に高機能な演算装置を設ける場合、センサを不要とすることから、センサの故障を考慮する必要はないが、装置の取り付け作業や、工作機械毎に熱変位の測定を行う必要があるため、準備に長期間を要し、その間は工作機械の稼働を停止させなければならなかった。
【０００６】
そこで、本発明は、センサや高機能な演算装置を不要とすることで、工作機械の稼働停止期間を短時間とし、稼働時間や熱変位が変更された場合であっても、最適な補正を行い、常に高い工作精度を保つことを可能とする熱変位補正手段を備えた工作機械及び制御方法を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、請求項１に記載の発明は、加工制御を行うＮＣ装置を備えた工作機械において熱変位を補正する方法であって、
工作機械の稼働時に生じる熱変位の時間に対する変化を予め測定してデータテーブルを作成する第１のステップと、
前記データテーブルを記憶手段に記憶する第２のステップと、
前記工作機械の稼働時間と前記データテーブルとに基づいて現在の熱変位を導き出す第３のステップと、
前記現在の熱変位に基づいて加工制御の補正値を演算する第４のステップと、
を実行することにある。
【０００８】
請求項２に記載の発明は、請求項１に記載の発明に加え、前記第１ステップでは、工作機械の稼働停止後に生じる熱変位の時間に対する変化を予め測定して放熱時のデータテーブルを作成し、前記第２ステップで当該データテーブルを前記記憶手段に記憶するようにして、
前記工作機械の稼働を停止した際の最終熱変位と終了時間とを前記記憶手段に記憶する第５ステップと、
所定時間の経過後に稼働を再開する場合、前記最終熱変位を放熱開始時の熱変位として対応する放熱開始時間を前記放熱時のデータテーブルから導き出すと共に、前記放熱開始時間に前記所定時間を加えた時間から前記放熱時のデータテーブルに基づいて稼働再開時の熱変位を導き出す第６のステップと、
をさらに実行することにある。
【０００９】
請求項３に記載の発明は、請求項１又は２に記載の発明に加え、前記第１ステップにおいて、前記データテーブルは、前記熱変位を最大熱変位に対する割合とし、前記時間を最大測定時間に対する割合としてそれぞれ作成されて、前記最大熱変位と最大測定時間との数値の選択によって変更可能であることにある。
【００１０】
請求項４に記載の発明は、加工制御を行うＮＣ装置を備えた工作機械であって、
前記ＮＣ装置に、工作機械の稼働時に生じる熱変位の時間に対する変化を予め測定して作成したデータテーブルを保存する一方、
前記ＮＣ装置に、前記工作機械の稼働時に稼働時間と前記データテーブルとに基づいて現在の熱変位を導き出す熱変位抽出手段と、
前記熱変位抽出手段から得られた前記現在の熱変位に基づいて加工制御の補正値を演算する補正値演算手段と、
を設けたことにある。
【発明の効果】
【００１１】
請求項１及び請求項４に記載の発明によれば、予めセンサにより熱変位を測定した後は、データテーブルを用いることから、新たな熱変位の測定が不要である。また、ＮＣ装置にデータテーブルの記憶を行うだけで、新たに高機能な演算装置を準備する必要がないことから、工作機械の稼働停止期間を短時間とし、最適な補正を行い、常に高い工作精度を保つことが可能である。
【００１２】
請求項２に記載の発明によれば、所定時間の経過後に工作機械を稼働を再開する場合であっても、最適な補正を行い、常に高い工作精度を保つことが可能である。
【００１３】
請求項３に記載の発明によれば、最大熱変位や最大測定時間が変更された場合であっても、最適な補正を行い、常に高い工作精度を保つことが可能である。
【図面の簡単な説明】
【００１４】
【図１】工作機械の全体構成を示す説明図である。
【図２】変位センサによる測定位置関係を示す説明図である。
【図３】稼働時間又は停止時間と、熱変位との関係を示すグラフである。
【図４】工作機械のＮＣ演算部にある補正機能部を示す説明図である。
【図５】工作機械の稼働時間又は停止時間と、熱変位の補正との関係を示すフロー図である。
【発明を実施するための形態】
【００１５】
以下、本発明の実施の形態を図面に基づいて説明する。
【００１６】
まず初めに、本発明のマシニングセンタ１は、図１に示すように、ベッド７と、被加工物を載置する加工テーブル６と、加工情報の制御を行うＮＣ装置１６（図４に示す）を備えたコラム２と、被加工物に加工を行うスピンドルヘッド３と、で構成される。このマシニングセンタ１が、本発明の工作機械である。
【００１７】
このうち、スピンドルヘッド３には、その先端に切削工具を取り付けるスピンドル４が設けられている。加工テーブル６には、その上に被加工物であるワーク５が載置されている。
【００１８】
また、マシニングセンタ１では、ＮＣ装置１６で加工の制御を行うことに加え、予め熱変位の時間に対する変化を測定し、データテーブルとしてＮＣ装置１６に記憶させるようになっている。
以下、このデータテーブルの作成手順について説明する。
まず始めに、ワーク５には、変位センサによる熱変位の検出方法の一例として、図２（ａ）に示すように、表面には各位置におけるＸ軸，Ｙ軸，Ｚ軸の各方向の熱変位を出力するテストバー１１ａ，１１ｂ・・が取り付けられている。また、Ｘ軸方向の熱変位を計測するギャップセンサ８ａ，８ｂと、Ｙ軸方向の熱変位を計測するギャップセンサ９ａ，９ｂと、Ｚ軸方向の熱変位を計測するギャップセンサ１０ａ，１０ｂとが、装置外部の固定部材（図示せず）に夫々取り付けられている。
【００１９】
そして、熱変位の計測は、ワーク５表面に取り付けられたテストバー１１ａ，１１ｂ・・の移動量を、各方向のギャップセンサ８，９，１０で検出することにより行う。この場合、図２（ｂ）に示すようにギャップセンサ８，９，１０で検出した信号が、データ変換コントローラ１２によって熱変位へと変換される。この変換後の熱変位データは、データロガー１３からパソコン１４へと送信した後、データテーブルとしてＮＣ装置１６に記憶される。
【００２０】
マシニングセンタ１の稼動時間に対して発生する熱変位の計測は、以下のように行われる。
まず始めに、マシニングセンタ１の稼動前の状態において、各方向のギャップセンサ８，９，１０が設置される位置にテストバー１１ａ，１１ｂ・・を夫々設置し、熱変位が発生する前のＸ，Ｙ，Ｚ方向の基準となる座標値（原点）を記憶する。
【００２１】
次に、マシニングセンタ１が稼動を開始すると、装置内部のボールネジや工具等に摩擦熱が発生する。そして、稼働時間が長くなるに従い、摩擦熱が放熱に比べて大きくなることから、マシニングセンタ１内に熱が蓄積される。この時、ワーク５は、熱の影響を受けることにより、表面に熱変位が生じることから、テストバー１１ａ，１１ｂ・・が変動した位置を、各方向に設けられたギャップセンサ８，９，１０で計測し、その値をパソコン１４に記録する。
ここで、稼動時間と熱変位との関係は、図３（ａ）に示すように、稼動時間がＴmaxへと進むに従い、熱変位もＨmaxの状態へと増加する。このＨmaxの状態は、それ以降、稼働時間が長くなっても熱変位の増加しない飽和状態である。この稼働時間であるＴmaxが、本発明の最大測定時間であり、熱変位であるＨmaxが、本発明の最大熱変位である。
【００２２】
また、図４に示すように、ＮＣ装置１６は、メモリを備えたＮＣ演算部２０とＰＬＣ演算部２４とで構成され、ＰＬＣ演算部２４内のメモリに上記データテーブル２５が記憶される。
一方、ＮＣ演算部２０内の補正機能部には、データテーブル２５を利用して、稼働時間を演算する時間演算部２１と、データテーブル２５から熱変位を導き出す熱変位抽出部２２と、この熱変位抽出部２２から得られた現在の熱変位に基づいて補正値を演算する補正値演算部２３とが備えられている。
そして、マシニングセンタ１が稼働を開始した時には、データテーブル２５に記録された稼働時間に応じて発生した熱変位を、熱変位抽出部２２で導き出した後、熱変位の補正値を補正値演算部２３で演算し、この熱変位の補正値を記憶して、当該補正値に基づいて加工が行われる。
【００２３】
このようにして、稼働時間Ｔmaxに関するＴ１，Ｔ２，Ｔ３，Ｔ４，Ｔ５の夫々の割合と、熱変位Ｈmaxに対するＨ１，Ｈ２，Ｈ３，Ｈ４，Ｈ５の夫々の割合とをデータとして蓄積する。その結果、稼働時間に対する熱変位をエリアで区分することにより、各エリア区間内を１次関数で表すことが可能となる。
また、データテーブル２５のＴmax及びＨmaxは、実際の適用地域や適用機種によって変更されるものであるため、Ｔmaxに変更がある場合は、このＴmaxに関するＴ１，Ｔ２，Ｔ３，Ｔ４，Ｔ５の夫々のエリア区分の割合を変更し、Ｈmaxに変更がある場合は、このＨmaxに対するＨ１，Ｈ２，Ｈ３，Ｈ４，Ｈ５の夫々のエリア区分の割合を夫々変更することが可能である。
【００２４】
ここで、マシニングセンタ１の稼働による加熱において、熱変位が発生した場合における１次関数と測定補正との関係について説明する。
図３（ａ）において、例えば稼働による熱変位をｌとし、稼働時間をｔとして、エリア４（熱変位がＡ３からＡ４のエリア区分内、稼働時間がＴ３からＴ４のエリア区分内）にある場合は、ｌ＝ａ４*ｔ＋Ａ３，傾きａ４＝（Ａ４−Ａ３）／（Ｔ４−Ｔ３）により、稼働時間に対応する熱変位が求められる。
従って、予め稼働時間に対し発生する熱変位として、例えば稼働時間がＴ３からＴ４のエリア区分内にある場合は、マシニングセンタ１に発生した熱変位がＨ３からＨ４のエリア区分内にあることが予測される。
【００２５】
一方、マシニングセンタ１の停止時間に対して収縮する熱変位の計測は、以下のように行われる。
まず始めに、マシニングセンタ１が稼動を停止すると、摩擦熱の発生原因が消滅するため、放熱のみが行われることとなり、マシニングセンタ１の冷却のみが行われる。そのため、図３（ｂ）に示すように、停止時間が長くなるに従い、熱変位が縮小することから、停止時間がＴmaxへと進むにつれて熱変位もＡ５の状態へと減少する。このＡ５の状態では、それ以降停止時間が経過しても熱変位が減少しない、マシニングセンタ１の初期稼動時の状態とほぼ同じ状態である。なお、Ｔmax及びＡmaxは、実際の適用地域及び適用機種によって変更されるものである。
【００２６】
ここで、停止時間に応じて収縮した熱変位は、図４に示すように、停止時の熱変位によるデータテーブル２６（以下、データテーブル２６とする）に記録される。そして、マシニングセンタ１が稼働を停止した時には、データテーブル２６に記録された停止時間に応じて収縮した熱変位を、熱変位抽出部２２によって導き出した後、熱変位の補正値を補正値演算部２３で演算し、この補正値と停止時間とを記憶する。
【００２７】
このようにして、停止時間Ｔmaxに関するＴ１，Ｔ２，Ｔ３，Ｔ４，Ｔ５の夫々の割合と、熱変位Ａmaxに対するＡ１，Ａ２，Ａ３，Ａ４，Ａ５の夫々の割合とをデータとして蓄積する。その結果、停止時間に対する熱変位をエリアで区分することにより、１次関数で表すことが可能となる。
また、Ｔmax及びＡmaxは、実際の適用地域や適用機種によって変更されるものであるため、Ｔmaxに変更がある場合は、このＴmaxに関するＴ１，Ｔ２，Ｔ３，Ｔ４，Ｔ５の夫々のエリア区分の割合を変更し、Ａmaxに変更がある場合は、このＡmaxに対するＡ１，Ａ２，Ａ３，Ａ４，Ａ５の夫々のエリア区分の割合を変更することが可能である。
【００２８】
ここで、マシニングセンタ１の停止による放熱において、熱変位が縮小した場合における１次関数と測定補正との関係について説明する。
例えば、停止による熱変位の補正量をｌとし、稼働時間をｔとして、図３（ｂ）において、エリア４（熱変位がＡ３からＡ４、稼働時間がＴ３からＴ４のエリア）にある場合は、ｌ＝ａ４*ｔ＋Ａ３，傾きａ４＝（Ａ４−Ａ３）／（Ｔ４−Ｔ３）により、停止時間に対応する熱変位値が求められる。
従って、予め停止時間に対する熱変位の減少量として、例えば停止時間がＴ３からＴ４のエリア区分内にある場合は、マシニングセンタ１の放熱による熱変位がＡ３からＡ４のエリア区分内にあることが予測される。
【００２９】
この様にして、計測した稼働時間に関する熱変位に応じて収縮したデータと停止時間に関する熱変位のデータとをデータテーブルとし、他のマシニングセンタ１に記憶させる。そして、このデータテーブルの最適化は、実際の適用地域及び適用機種によって、Ｔmax，Ｈmax，Ａmaxを変更することにより行う。
【００３０】
次に、他のマシニングセンタにデータテーブルを記憶し、そのマシニングセンタの条件にあったデータテーブルへの修正は、以下のように行う。
まず、データテーブル２５の稼働時間については、Ｔmaxを変更することで、Ｔmaxに関するＴ１，Ｔ２，Ｔ３，Ｔ４，Ｔ５の夫々のエリア区分の割合が変更される。一方、発熱による熱変位については、Ｈmaxを変更することにより、Ｈmaxに対するＨ１，Ｈ２，Ｈ３，Ｈ４，Ｈ５の夫々のエリア区分の割合が夫々変更される。
また、データテーブル２６の停止時間については、Ｔmaxを変更することで、Ｔmaxに関するＴ１，Ｔ２，Ｔ３，Ｔ４，Ｔ５の夫々のエリア区分の割合が変更される。一方、放熱による熱変位については、Ａmaxを変更することにより、Ａmaxに対するＡ１，Ａ２，Ａ３，Ａ４，Ａ５の夫々のエリア区分の割合も変更される。
【００３１】
次に、図５のフロー図は、マシニングセンタ１の稼働を停止した後、稼働を再開する場合の補正を示したものである。このフロー図では、まず始めに、マシニングセンタ１の稼働が最初の使用であるか、停止後した後の再開による使用であるのかについて選択を行う（ＳＴ１）。この時、マシニングセンタ１の稼働が最初の使用である場合は、熱変位に対する補正値を補正値演算部２３で演算する必要がないため、そのまま加工を開始する。
【００３２】
一方、ＳＴ１において、マシニングセンタ１の稼働が最初の稼働ではない場合、マシニングセンタ１の前回の稼働再開から停止するまでの稼働時間に対応する熱変位を、熱変位抽出部２２によってデータベース２６から導き出す（ＳＴ２）。そして、この熱変位に対する補正値を、補正値演算部２３で演算する（ＳＴ３）。
【００３３】
次に、ＳＴ３の補正値を、稼働を停止した時にマシニングセンタ１に生じた熱変位とする（ＳＴ４）。その結果、ＳＴ４の熱変位から放熱を開始することとなる。そして、ＳＴ４の熱変位と停止時間とから、データベース２６の停止時間に対する熱変位を、熱変位抽出部２２によって導き出し（ＳＴ５）、この熱変位に対する補正値を補正値演算部２３で演算する（ＳＴ６）。その後、ＳＴ６の補正値を、メモリに記憶することで補正を行い（ＳＴ７）、加工を開始する。
【００３４】
以上のように、本発明のマシニングセンタ１の熱変位補正方法は、マシニングセンタ１の稼働時に生じる熱変位の時間に対する変化を予め測定してデータテーブル２５を作成する第１のステップと、このデータテーブル２５をＰＬＣ演算部２４に記憶する第２のステップと、マシニングセンタ１の稼働時間とデータテーブル２５とに基づいて現在の熱変位を導き出す第３のステップと、現在の熱変位に基づいて加工制御の補正値を演算する第４のステップと、を実行することにある。
その結果、予めセンサにより熱変位を測定した後は、データテーブル２５を用いることから、新たな熱変位の測定が不要である。また、ＮＣ装置１６にデータテーブル２５の記憶を行うだけで、新たに高機能な演算装置の準備が不要であることから、マシニングセンタ１の稼働停止期間を短時間とし、最適な補正を行い、常に高い工作精度を保つことが可能である。
【００３５】
そして、第１ステップでは、マシニングセンタ１の稼働停止後に生じる熱変位の時間に対する変化を予め測定して放熱時のデータテーブル２６を作成し、第２ステップでデータテーブル２６をＰＬＣ演算部２４に記憶するようにして、マシニングセンタ１の稼働を停止した際の最終熱変位と終了時間とをマシニングセンタ１に記憶する第５ステップと、所定時間の経過後に稼働を再開する場合、最終熱変位を放熱開始時の熱変位として対応する放熱開始時間を放熱時のデータテーブル２６から導き出すと共に、放熱開始時間に所定時間を加えた時間から放熱時のデータテーブル２６に基づいて稼働再開時の熱変位を導き出す第６のステップと、をさらに実行することにある。
その結果、所定時間の経過後にマシニングセンタ１を稼働を再開する場合であっても、最適な補正を行い、常に高い工作精度を保つことが可能である。
【００３６】
また、第１ステップにおいて、データテーブル２５は、熱変位をＨmaxに対する割合とし、前記時間を最大測定時間に対する割合としてそれぞれ作成されて、ＨmaxとＴmaxとの数値の選択によって変更可能であることにある。
その結果、ＨmaxやＴmaxが変更された場合であっても、最適な補正を行い、常に高い工作精度を保つことが可能である。
【００３７】
他にも、本発明のマシニングセンタ１は、ＮＣ装置１６に、マシニングセンタ１の稼働時に生じる熱変位の時間に対する変化を予め測定して作成したデータテーブル２５，２６を保存する一方、ＮＣ装置１６に、マシニングセンタ１の稼働時に稼働時間とデータテーブル２５，２６とに基づいて現在の熱変位を導き出す熱変位抽出部２２と、この熱変位抽出部２２から得られた現在の熱変位に基づいて加工制御の補正値を演算する補正値演算部２３と、を設けたことにある。
その結果、予めセンサにより熱変位を測定した後は、データテーブル２５，２６を用いることから、新たな熱変位の測定が不要である。また、高機能な演算装置の準備も不要としたことによって、マシニングセンタ１の稼働停止期間を短時間とし、稼働時間や停止時間、熱変位が変更された場合であっても、最適な補正を行い、常に高い工作精度を保つことが可能である。
【００３８】
なお、本発明のマシニングセンタ１の熱変位補正方法及びマシニングセンタ１の構成は、上記実施形態の態様に何ら限定されるものではなく、予め稼働時間や停止時間に対する熱変位の計測を行い、この熱変位をデータテーブルとして記憶した後、他のマシニングセンタ１においてデータテーブルを変更し、最適化することにより、発生した熱変位の補正を可能とするものであれば、本発明の趣旨を逸脱しない範囲で必要に応じて適宜変更することができる。
例えば、マシニングセンタ１の稼働中において、稼働時間や経過時間から稼働終了時点での熱変位の補正値を予測しても良く、適宜変更可能である。
【００３９】
また、熱変位の計測は、テストバー１１ａ，１１ｂ・・の移動量を、各方向のギャップセンサ８，９，１０で検出することによって行うが、必ずしもギャップセンサである必要はなく、稼働時間や停止時間に対する熱変位を計測可能とするものであれば必要に応じて適宜変更可能である。
【００４０】
他にも、熱変位の検出は、ワーク５の表面にテストバー１１を取り付けて行っているが、マシニングセンタ１から発生した熱の影響を受けて生じた熱変位を検出するものであればワーク５以外の工作機械側で検出しても良い。
【符号の説明】
【００４１】
１・・マシニングセンタ、２・・コラム、３・・スピンドルヘッド、４・・スピンドル、５・・測定ワーク、６・・加工テーブル、７・・ベッド、８・・ギャップセンサ（Ｘ方向）９・・ギャップセンサ（Ｙ方向）、１０・・ギャップセンサ（Ｚ方向）、１１・テストバー、１２・・データ変換コントローラ、１３・・データロガー、１４・・パソコン、１６・・ＮＣ装置、２０・・ＮＣ演算部、２１・・時間演算部、２２・・熱変位抽出部、２３・・補正値演算部、２４・・ＰＬＣ演算部、２５・・稼働時の熱変化によるデータテーブル、２６・・停止時の熱変化によるデータテーブル。
【図１】
2012071404.tif 000003
【図２】
2012071404.tif 000004
【図３】
2012071404.tif 000005
【図４】
2012071404.tif 000006
【図５】
2012071404.tif 000007