(58)【調査した分野】(Int.Cl.,DB名)
前記標準コードは、支持テーブルに対してアンクランプ状態の回転テーブルのクランプ動作の開始、及び、前記回転テーブルがクランプ状態となったことの確認を行うクランプコードであり、
前記クランプコードに対応する前記同時動作コードは、前記回転テーブルのクランプ動作の開始を行うクランプ開始コードであり、
前記新コード設置部は、
前記クランプコードが前記非切削軸移動コードの前に存在する場合に、前記クランプコードを削除し且つ前記非切削軸移動コードの前に前記クランプ開始コードを挿入し、
前記非切削軸移動コードの後であり切削軸移動コードの前に前記クランプコードによる規定の動作のうち少なくとも前記クランプ開始コードによる動作以外の動作を実行するコードを挿入する、
請求項1に記載のNCプログラム作成装置。
【発明の概要】
【発明が解決しようとする課題】
【0006】
上記のとおり、非切削軸移動コードによる実行は、主軸回転数の変更動作、工具交換一連動作、回転テーブルのクランプの前後に、非同時に行われる。少なくとも一部において同時に行うことができれば、当然に加工サイクルタイムが短縮される。
【0007】
本発明は、非切削軸移動と同時動作を可能とするコードを自動的に挿入することができるNCプログラム作成装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
(請求項1)本発明に係るNCプログラム作成装置は、工作機械のNCプログラムを作成するNCプログラム作成装置であって、規定の動作を実行すると共に非切削軸移動と同時の動作を規制する標準コード、及び、前記標準コードに対応する同時動作コードであって前記標準コードによる動作の一部を実行すると共に非切削軸移動と同時の動作を許容する前記同時動作コードを記憶する記憶部と、NCプログラム中において、非切削状態での駆動軸の移動の開始及び前記駆動軸が指令位置に到達したことの確認を行う非切削軸移動コードの前後にて前記標準コードの有無を判定する判定部と、前記判定部により前記標準コードが有ると判定された場合に、前記標準コードに換えて、前記非切削軸移動コードの前に前記標準コードに対応する前記同時動作コードを配置すると共に、前記非切削軸移動コードの後に前記標準コードによる規定の動作のうち少なくとも前記同時動作コードによる動作以外の動作を実行するコードを配置する新コード設置部とを備える。
これにより、同時動作コードを自動的に配置することが可能となる。このようなNCプログラムが自動的に作成されるため、NCプログラムの作成時間の短縮が図られ、且つ、加工サイクルタイムの短縮が図られる。
【0009】
上記手段に係るNCプログラム作成装置の好適な実施態様について以下に説明する。すなわち、上記手段に係るNCプログラム作成装置は、以下の好適な態様に限定されるものではない。
【0010】
(請求項2)前記標準コードは、主軸回転数の変更動作の開始、及び、前記主軸回転数が指令値に到達したことの確認を行う主軸回転コードであり、前記主軸回転コードに対応する前記同時動作コードは、前記主軸回転数の変更動作の開始を行う主軸回転開始コードであり、前記新コード設置部は、前記主軸回転コードが前記非切削軸移動コードの前に存在する場合に、前記主軸回転コードを削除し且つ前記非切削軸移動コードの前に前記主軸回転開始コードを挿入し、前記非切削軸移動コードの後であり切削軸移動コードの前に前記主軸回転数が指令値に到達したことの確認を行うコードを挿入するようにしてもよい。
上記により、NCプログラムにおいて主軸回転コードが非切削軸移動コードの前に存在する場合に、主軸回転数の変更動作と非切削軸移動とを同時に行うNCプログラムが自動的に作成される。
【0011】
(請求項3)また、前記標準コードは、主軸回転数の変更動作の開始、及び、前記主軸回転数が指令値に到達したことの確認を行う主軸回転コードであり、前記主軸回転コードに対応する前記同時動作コードは、前記主軸回転数の変更動作の開始を行う主軸回転開始コードであり、前記新コード設置部は、前記主軸回転コードが前記非切削軸移動コードの後であり切削軸移動コードの前に前記主軸回転コードが存在する場合に、前記非切削軸移動コードの前に前記主軸回転開始コードを挿入するようにしてもよい。
上記により、NCプログラムにおいて主軸回転コードが非切削軸移動コードの後に存在する場合に、主軸回転数の変更動作と非切削軸移動とを同時に行うNCプログラムが自動的に作成される。
【0012】
(請求項4)また、前記標準コードは、シャッター開、工具交換及びシャッター閉の順に動作するATCコードであり、前記ATCコードに対応する前記同時動作コードは、前記シャッター開を行うシャッター開コードであり、前記新コード設置部は、前記ATCコードが前記非切削軸移動コードの後に存在する場合に、前記非切削軸移動コードの前に前記シャッター開コードを挿入するようにしてもよい。
上記により、工具交換一連動作のうちシャッター開の動作と非切削軸移動とを同時に行うNCプログラムが自動的に作成される。
【0013】
(請求項5)また、前記標準コードは、支持テーブルに対してアンクランプ状態の回転テーブルのクランプ動作の開始、及び、前記回転テーブルがクランプ状態となったことの確認を行うクランプコードであり、前記クランプコードに対応する前記同時動作コードは、前記回転テーブルのクランプ動作の開始を行うクランプ開始コードであり、前記新コード設置部は、前記クランプコードが前記非切削軸移動コードの前に存在する場合に、前記クランプコードを削除し且つ前記非切削軸移動コードの前に前記クランプ開始コードを挿入し、前記非切削軸移動コードの後であり切削軸移動コードの前に前記クランプコードによる規定の動作のうち少なくとも前記クランプ開始コードによる動作以外の動作を実行するコードを挿入するようにしてもよい。
上記により、回転テーブルの位相割出一連動作のうちクランプ動作と非切削軸移動とを同時に行うNCプログラムが自動的に作成される。
【0014】
(請求項6)また、前記新コード設置部は、対話型プログラミングにより前記コードの配置又は挿入が選択された場合に、前記コードを配置又は挿入するようにしてもよい。作業者が、対話型プログラミングにより、コードの配置又は挿入を選択することが可能となる。コードの配置又は挿入が選択された場合には、自動的に当該コードが配置又は挿入される。従って、作業者の意志を考慮しながら、所望のNCプログラムが作成される。
【発明を実施するための形態】
【0016】
(1.NCプログラム作成装置の構成)
本発明の第一実施形態のNCプログラム作成装置10について説明する。NCプログラム作成装置10は、工作機械のNCプログラムを作成する装置である。NCプログラム作成装置10は、
図1に示すように、予め生成されたNCプログラム100を入力し、当該NCプログラム100を編集する装置である。NCプログラム作成装置10は、記憶部11と、判定部12と、新コード設置部13とを備える。
【0017】
記憶部11は、
図1に示すように、複数の標準コードと、各標準コードに対応する複数の同時動作コードとを記憶する。標準コードは、規定の動作を実行すると共に、非切削軸移動と同時の動作を規制するコードである。標準コードは、M03、M06、M10を例に挙げる。
【0018】
M03は、主軸回転数の変更動作の開始、及び、主軸回転数が指令値に到達したことの確認を行う主軸回転コードである。M06は、シャッター開、工具交換及びシャッター閉の順に動作するATCコードである。M10は、支持テーブルに対してアンクランプ状態の回転テーブルのクランプ動作の開始、及び、回転テーブルがクランプ状態となったことの確認を行うクランプコードである。
【0019】
同時動作コードは、対応する標準コードによる動作の一部を実行すると共に、非切削軸移動と同時の動作を許容するコードである。標準コードM03,M06,M10に対応する同時標準コードは、M103、M805、M110である。
【0020】
M103は、主軸回転コードに対応し、主軸回転数の変更動作の開始を行う主軸回転開始コードである。M805は、ATCコードに対応し、シャッター開を行うシャッター開コードである。M110は、クランプコードに対応し、回転テーブルのクランプ動作の開始を行うクランプ開始コードである。
【0021】
なお、切削軸移動コードは、切削状態での駆動軸の移動の開始、及び、駆動軸が指令位置に到達したことの確認を行うコードである。切削軸移動コードは、G01、G02、G03などである。また、非切削軸移動コードは、非切削状態での駆動軸の移動の開始、及び、駆動軸が指令位置に到達したことの確認を行うコードである。非切削軸移動コードは、G00、G30などである。
【0022】
判定部12は、入力されるNCプログラム100中において、非切削軸移動コードの前後にて標準コードの有無を判定する。ここで、非切削軸移動コードの前後は、非切削軸移動コードのブロックの1又は複数のブロック前、又は、非切削軸移動コードのブロックの1又は複数のブロック後を意味する。
【0023】
新コード設置部13は、判定部12により標準コードが有ると判定された場合に、標準コードに換えて、非切削軸移動コードの前に標準コードに対応する同時動作コードを配置すると共に、非切削軸移動コードの後に前記標準コードを配置する。
【0024】
(2.M03に対する第一処理の説明)
次に、標準コードM03の場合に関して、判定部12及び新コード設置部13の第一処理について、
図2〜
図6を参照して説明する。
図2に示すように、判定部12がNCプログラム100を入力する(S1)。続いて、判定部12が、NCプログラム100中において、主軸回転コードM03の位置を検出する(S2)。続いて、判定部12が、M03の位置が非切削軸移動コードG00,G30の前に存在するか否かを判定する(S3)。
【0025】
続いて、判定部12によってM03がG00又はG30の前に存在すると判定された場合に(S3:Yes)、新コード設置部13が、M03を削除し、M03の存在していた位置に主軸回転開始コードM103を挿入する(S4)。すなわち、新コード設置部13は、M03をM103に置換する。続いて、新コード設置部13は、G00又はG30と切削軸移動コードG01の間に、主軸回転数が指令値に到達したことの確認を行うコードを挿入し(S6)、処理を終了する。ここで、主軸回転数が指令値に到達したことの確認を行うコードは、主軸回転コードM03を用いることもできるし、M03以外の専用コードを用いることもできる。本実施形態においては、当該コードには、M03が適用される。
【0026】
一方、判定部12によってM03がG00又はG30の前に存在しないと判定された場合に(S3:No)、新コード設置部13が、G00又はG30の前にM103を挿入し(S5)、処理を終了する。つまり、新コード設置部13は、M03を初期の位置に配置したままとする。従って、ここでのM03は、主軸回転数が指令値に到達したことの確認を行うコードとして機能する。この他に、新コード設置部13は、G00又はG30の後に存在するM03を、主軸回転数が指令値に到達したことの確認を行う専用のコードに置換してもよい。
【0027】
判定部12が
図3に示すNCプログラム101を入力する場合に、
図2に示す処理を実行することにより、
図4に示すNCプログラム201が作成される。この場合は、
図2のS4、S6が実行される。また、判定部12が
図5に示すNCプログラム102を入力する場合にも、
図4に示すNCプログラム201が作成される。この場合は、
図2のS5が実行される。
【0028】
図3に示すように、第一の編集前のNCプログラム101は、主軸回転コードM03による主軸回転数の変更動作を開始し、且つ、主軸回転数が指令値に到達したことの確認を行った後に(
図3のA参照)、非切削軸移動コードG00による非切削状態での駆動軸の移動を開始する。さらに、第一の編集前のNCプログラム101は、非切削軸移動コードG00により、駆動軸が指令位置に到達したことの確認を行う。その後に、第一の編集前のNCプログラム101は、切削軸移動コードG01による切削状態での駆動軸の移動を開始する。
【0029】
図5に示すように、第二の編集前のNCプログラム102は、非切削軸移動コードG00による非切削状態での駆動軸の移動を開始し、且つ、駆動軸が指令位置に到達したことの確認を行った後に、主軸回転コードM03による主軸回転数の変更動作を開始する(
図5のA参照)。さらに、第二の編集前のNCプログラム102は、主軸回転コードM03により、主軸回転数が指令値に到達したことの確認を行う。その後に、第二の編集前のNCプログラム102は、切削軸移動コードG01による切削状態での駆動軸の移動を開始する。
【0030】
一方、
図4に示すように、編集後のNCプログラム201は、主軸回転開始コードM103による主軸回転数の変更動作を開始すると同時に(
図4のA1参照)、非切削軸移動コードG00による非切削状態での駆動軸の移動を開始する。つまり、主軸回転数の変更動作と、非切削状態での駆動軸の移動とが、同時に行われる。続いて、両者の動作のうち遅い方が終了すると、主軸回転コードM03が実行される(
図4のA2参照)。ここでの主軸回転コードM03は、主軸回転コードM03による動作のうち主軸回転開始コードM103による動作以外の動作を行うコードとして機能する。つまり、ここでの主軸回転コードM03は、主軸回転数が指令値に到達したことの確認を行うコードとして機能する。その後に、編集後のNCプログラム201は、切削軸移動コードG01による切削状態での駆動軸の移動を開始する。
【0031】
編集前後のNCプログラム101,102,201の実行時間を比較すると、
図6に示すように、編集後のNCプログラム201との実行時間は、編集前のNCプログラム101,102の実行時間より短くなる。これは、編集後のNCプログラム201がM103とG00とを同時に実行するためである。以上より、同時動作コードを自動的に配置することが可能となる。従って、加工サイクルタイムの短縮を図ることができるNCプログラム201が自動的に作成される。そのため、NCプログラム201の作成時間の短縮が図られ、且つ、加工サイクルタイムの短縮が図られる。
【0032】
(3.M06に対する第二処理の説明)
次に、標準コードM06の場合に関して、判定部12及び新コード設置部13の第二処理について、
図7〜
図9を参照して説明する。
図7に示すように、判定部12がNCプログラム100を入力する(S11)。続いて、判定部12が、NCプログラム100中において、ATCコードM06の位置を検出する(S12)。続いて、判定部12が、M06の位置が非切削軸移動コードG00,G30の後に存在するか否かを判定する(S13)。
【0033】
続いて、判定部12によってM06がG00,G30の後に存在すると判定された場合に(S13:Yes)、新コード設置部13が、G00,G30の前にシャッター開コードM805を挿入し(S14)、処理を終了する。つまり、新コード設置部13は、M06を初期の位置に配置したままとする。ここでのM06は、M06による動作のうちM805による動作以外の動作を行うコードとして機能する。すなわち、ここでのM06は、工具交換及びシャッター閉の順に動作するコードとして機能する。この他に、新コード設置部13は、M06を、工具交換及びシャッター閉の順に動作する専用のコードに置換してもよい。一方、判定部12によってM06がG00,G30の後に存在しないと判定された場合に(S13:No)、新コード設置部13は何の処理をすることなく処理を終了する。
【0034】
判定部12が
図3に示すNCプログラム101を入力する場合に、
図7に示す処理を実行することにより、
図8に示すNCプログラム202が作成される。ここで、
図3に示すように、第一の編集前のNCプログラム101は、非切削軸移動コードG30による非切削状態での駆動軸の移動を開始し、駆動軸が工具交換位置(指令原点)に到達したことの確認を行う。続いて、第一の編集前のNCプログラム101は、ATCコードM06によるシャッター開、工具交換及びシャッター閉の動作を順に行う(
図3のB参照)。
【0035】
一方、
図8に示す編集後のNCプログラム202は、シャッター開コードM805によるシャッター開の動作を開始すると同時に(
図8のB1参照)、非切削軸移動コードG30による駆動軸の移動を開始する。つまり、工具交換一連動作のうちシャッター開の動作と、非切削状態での駆動軸の移動とが、同時に行われる。続いて、両者の動作の遅い方が終了すると、ATCコードM06が実行される(
図8のB2参照)。ここで、シャッター開の動作は既に実行されるため、ここでのATCコードM06は、M06による動作のうちシャッター開の動作以外の動作、すなわち工具交換及びシャッター閉の動作を行うコードとして機能する。
【0036】
編集前後のNCプログラム101,202の実行時間を比較すると、
図9に示すように、編集後のNCプログラム202との実行時間は、編集前のNCプログラム101の実行時間より短くなる。これは、編集後のNCプログラム202がM805(M06の一部の動作)とG30とを同時に実行するためである。以上より、同時動作コードを自動的に配置することが可能となる。従って、加工サイクルタイムの短縮を図ることができるNCプログラム202が自動的に作成される。そのため、NCプログラム202の作成時間の短縮が図られ、且つ、加工サイクルタイムの短縮が図られる。
【0037】
(4.M10に対する第三処理の説明)
次に、標準コードM10の場合に関して、判定部12及び新コード設置部13の第三処理について、
図10〜
図13を参照して説明する。
図10に示すように、判定部12がNCプログラム100を入力する(S21)。続いて、判定部12が、NCプログラム100中において、回転テーブルのクランプコードM10の位置を検出する(S22)。続いて、判定部12が、M10の位置が直動軸に関する非切削軸移動コードG00,G30の前に存在するか否かを判定する(S23)。直動軸に関する非切削軸移動コードG00,G30は、位相割出を行うための回転テーブルの非切削軸移動コードG00を含まない。
【0038】
続いて、判定部12によってM10がG00又はG30の前に存在すると判定された場合に(S23:Yes)、新コード設置部13が、M10を削除し、M10の存在していた位置にクランプ開始コードM110を挿入する(S24)。すなわち、新コード設置部13は、M10をM110に置換する。続いて、新コード設置部13は、G00又はG30と切削軸移動コードG01の間に、クランプコードM10による動作のうち少なくともクランプ開始コードM110による動作以外の動作を実行するコードを挿入し(S25)、処理を終了する。
【0039】
ここで、クランプコードM10による規定の動作のうち少なくともクランプ開始コードM110による動作以外の動作を実行するコードは、M10を用いることもできるし、M10以外の専用コードを用いることもできる。本実施形態においては、当該コードには、M10が適用される。
一方、判定部12によってM10がG00又はG30の前に存在しないと判定された場合には(S23:No)、処理を終了する。
【0040】
図11に示すように、編集前のNCプログラム103は、アンクランプコードM11による回転テーブルのアンクランプ動作を実行し、続いて非切削軸移動コードG00による回転テーブルの位相割出を実行する。編集前のNCプログラム103は、位相割出を完了した後に、クランプコードM10による回転テーブルのクランプ動作を実行し、続いて非切削軸移動コードG00により非切削状態での駆動軸の移動を開始する。続いて、編集前のNCプログラム103は、非切削軸移動コードG00により駆動軸が指令位置に到達したことの確認を行った後に、切削軸移動コードG01による切削状態での駆動軸の移動を開始する。
【0041】
一方、
図12に示すように、編集後のNCプログラム203は、位相割出を完了した後に、クランプ開始コードM110によるクランプ動作を開始すると同時に(
図12のC1参照)、非切削軸移動コードG00による非切削状態での駆動軸の移動を開始する。つまり、回転テーブルの位相割出一連動作のうちクランプ動作と、非切削状態での駆動軸の移動とが、同時に行われる。続いて、両者の動作のうち遅い方が終了すると、クランプコードM10が実行される(
図12のC2参照)。ここでのクランプコードM10は、クランプコードM10による動作のうちクランプ開始コードM110による動作以外の動作を行うコードとして機能する。つまり、ここでのクランプコードM10は、回転テーブルがクランプ状態になったことの確認を行うコードとして機能する。その後に、編集後のNCプログラム203は、切削軸移動コードG01による切削状態での駆動軸の移動を開始する。
【0042】
編集前後のNCプログラム103,203の実行時間を比較すると、
図13に示すように、編集後のNCプログラム203との実行時間は、編集前のNCプログラム103の実行時間より短くなる。これは、編集後のNCプログラム203がM110とG00とを同時に実行するためである。以上より、同時動作コードを自動的に配置することが可能となる。従って、加工サイクルタイムの短縮を図ることができるNCプログラム203が自動的に作成される。そのため、NCプログラム203の作成時間の短縮が図られ、且つ、加工サイクルタイムの短縮が図られる。
【0043】
上記第一の処理から第三の処理は、それぞれ別々に実行したが、全ての処理が複合的に実行されるようにしてもよい。この場合、例えば、判定部12及び新コード設置部13が、編集前のNCプログラム101(
図3に示す)に対して第一の処理と第三の処理とを実行すると、編集後のNCプログラムは、主軸回転開始コードM103及びシャッター開コードM805が適宜の位置に挿入される。
【0044】
(その他)上記実施形態においては、非切削軸移動と同時動作を可能とするコードを自動的に挿入した。このようにコードを自動的に挿入することを対話型プログラミングにより選択可能としてもよい。画面に表示されるメニュー及び項目に対して、作業者が入力することで、作業者によるプログラム修正が無くなり、容易にNCプログラムが作成可能となる。つまり、作業者の意志を考慮しながら、所望のNCプログラムが作成される。