(57)【要約】      （修正有）【課題】加工時間が最短となる多系統用加工プログラムを作成する。【解決手段】自動プログラミング装置において、加工対象物を加工するための加工工程作成手段と、加工工程毎の加工時間を計算する計算手段と、各加工工程について、実行可能な系統を入力する系統入力手段と、実行可能な加工順序を入力する加工順序入力手段と、同時に実行可能な他の加工工程が存在する場合、同時に実行可能な加工工程を入力する同時実行加工工程入力手段と、作成された加工工程、計算手段によって計算された加工時間、系統入力手段によって入力された実行可能な系統、加工順序入力手段によって入力された実行可能な加工順序、および、同時実行加工工程入力手段によって入力された同時に実行可能な加工工程に基づいて、加工時間が最短となる加工プログラムを選出する選出手段と、を備える。【選択図】図８
2011227627.tif 000002
【特許請求の範囲】
【請求項１】
複数の制御系統の各々で複数の加工工程からなる加工プログラムを実行して加工対象物の加工を行う機械の多系統プログラムを作成する自動プログラミング装置において、
加工対象物を加工するための前記加工工程を作成する加工工程作成手段と、
前記加工工程毎の加工時間を計算する計算手段と、
前記加工工程作成手段により作成された各加工工程について、実行可能な系統を入力する系統入力手段と、
前記加工工程について、実行可能な加工順序を入力する加工順序入力手段と、
前記各加工工程について、同時に実行可能な他の加工工程が存在する場合、同時に実行可能な加工工程を入力する同時実行加工工程入力手段と、
前記加工工程作成手段によって作成された加工工程、前記計算手段によって計算された加工時間、前記系統入力手段によって入力された実行可能な系統、前記加工順序入力手段によって入力された実行可能な加工順序、および、前記同時実行加工工程入力手段によって入力された同時に実行可能な加工工程に基づいて、加工時間が最短となる加工プログラムを選出する選出手段と、
を備えたことを特徴とする多系統プログラムの自動プログラミング装置。
【請求項２】
複数の制御系統の各々で複数の加工工程からなる加工プログラムを実行して加工対象物の加工を行う機械の多系統プログラムを作成する自動プログラミング方法において、
加工対象物を加工するための前記加工工程を作成する第１のステップと、
前記加工工程毎の加工時間を計算する第２のステップと、
前記加工工程作成手段により作成された各加工工程について、実行可能な系統を入力する第３のステップと、
前記加工工程について、実行可能な加工順序を入力する第４のステップと、
前記各加工工程について、同時に実行可能な他の加工工程が存在する場合、同時に実行可能な加工工程を入力する第５のステップと、
前記第１のステップによって作成された加工工程と、前記第２のステップによって計算された加工時間、前記第３のステップによって入力された実行可能な系統、前記第４のステップよって入力された実行可能な加工順序、および、前記第５のステップによって入力された同時に実行可能な加工工程に基づいて、加工時間が最短となる加工プログラムを選出する第６のステップと、
を有することを特徴とする多系統プログラムの自動プログラミング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多系統プログラムの自動プログラミング方法及びその装置に関する。
【背景技術】
【０００２】
加工時間が最短となる多系統用の加工プログラムを作成する場合は、オペレータが複雑な計算を行うことにより、加工時間が最短となる１．加工工程を実行する系統、２．加工工程を実行する順番、３．同時に加工する加工工程の３つの条件を決定する必要があった。  
特許文献１は、各系統で加工可能な工具情報、加工工程に対応するワーク情報、優先系統決定規則に基づいて、１．加工工程を実行可能な系統、２．各系統における加工工程の加工順序、３．系統間の待ち合わせの情報を自動的に作成し、多系統工作機械用プログラムを作成する技術が開示されている。  
特許文献２には、加工時間が最短となる加工順序を決定し、同時加工できない加工工程の切り込み量を自動的に調整し、同時加工できるようにする技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−８６０４０号公報
【特許文献２】特開平７−６８４４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に開示された技術では、加工時間が最短となるプログラムを作成できない。また、特許文献２に開示された技術では、加工工程の順序は、予め決められており、自動的に決定することができない問題があり、加工工程を実行する系統は、予め決められており、自動的に決定できない問題があり、さらに、加工時間が最短となる同時加工の組合せを決定するだけであり、加工工程の順番を入れ替えたり、実行系統を入れ替えたりすることはできないという問題がある。また、特許文献２に開示された技術は、加工時間をその都度計算し、並び替えの試行錯誤を行いながら、最短となる加工プログラムを探索しなければならない問題がある。
【０００５】
そこで本発明の目的は、上記従来技術の問題点に鑑み、オペレータによって入力された、加工工程を実行可能な系統、加工工程を実行可能な順番、および同時に加工可能な加工工程の３つの条件を満たす全ての加工プログラムを作成し、加工工程毎の加工時間に基づいて、加工時間が最短となる加工プログラムを選出することにより、加工時間が最短となる多系統用加工プログラムを作成することができる自動プログラミング装置を提供することである。
【課題を解決するための手段】
【０００６】
本願の請求項１に係る発明は、複数の制御系統の各々で複数の加工工程からなる加工プログラムを実行して加工対象物の加工を行う機械の多系統プログラムを作成する自動プログラミング装置において、加工対象物を加工するための前記加工工程を作成する加工工程作成手段と、前記加工工程毎の加工時間を計算する計算手段と、前記加工工程作成手段により作成された各加工工程について、実行可能な系統を入力する系統入力手段と、前記加工工程について、実行可能な加工順序を入力する加工順序入力手段と、前記各加工工程について、同時に実行可能な他の加工工程が存在する場合、同時に実行可能な加工工程を入力する同時実行加工工程入力手段と、前記加工工程作成手段によって作成された加工工程、前記計算手段によって計算された加工時間、前記系統入力手段によって入力された実行可能な系統、前記加工順序入力手段によって入力された実行可能な加工順序、および、前記同時実行加工工程入力手段によって入力された同時に実行可能な加工工程に基づいて、加工時間が最短となる加工プログラムを選出する選出手段と、を備えたことを特徴とする多系統プログラムの自動プログラミング装置である。
【０００７】
請求項２に係る発明は、複数の制御系統の各々で複数の加工工程からなる加工プログラムを実行して加工対象物の加工を行う機械の多系統プログラムを作成する自動プログラミング方法において、加工対象物を加工するための前記加工工程を作成する第１のステップと、前記加工工程毎の加工時間を計算する第２のステップと、前記加工工程作成手段により作成された各加工工程について、実行可能な系統を入力する第３のステップと、前記加工工程について、実行可能な加工順序を入力する第４のステップと、前記各加工工程について、同時に実行可能な他の加工工程が存在する場合、同時に実行可能な加工工程を入力する第５のステップと、前記第１のステップによって作成された加工工程と、前記第２のステップによって計算された加工時間、前記第３のステップによって入力された実行可能な系統、前記第４のステップによって入力された実行可能な加工順序、および、前記第５のステップによって入力された同時に実行可能な加工工程に基づいて、加工時間が最短となる加工プログラムを選出する第６のステップと、を有することを特徴とする多系統プログラムの自動プログラミング方法である。
【発明の効果】
【０００８】
本発明により、オペレータによって入力された、加工工程を実行可能な系統、加工工程を実行可能な順番、および同時に加工可能な加工工程の３つの条件を満たす全ての加工プログラムを作成し、加工工程毎の加工時間に基づいて、加工時間が最短となる加工プログラムを選出することにより、加工時間が最短となる多系統用加工プログラムを作成することができる自動プログラミング装置およびその方法を提供できる。
【図面の簡単な説明】
【０００９】
【図１】２系統旋盤（１主軸）、２系統旋盤（１主軸）ミリングヘッド付き、２系統旋盤（２主軸）を説明する図である。
【図２】２系統旋盤（２主軸）、２系統旋盤（２主軸）ミリングヘッド付きを説明する図である。
【図３】３系統旋盤（２主軸）、３系統旋盤（２主軸）ミリングヘッド付きを説明する図である。
【図４】４系統旋盤（２主軸）を説明する図である。
【図５】本発明の多系統の自動プログラミングの装置として機能する数値制御装置の概要部図である。
【図６】加工工程が加工する領域を説明する図である。
【図７】オペレータが入力する条件を説明する図である。
【図８】多系統プログラムを自動プログラミングする全体の処理のアルゴリズムを示すフローチャートである。
【図９】実行可能順番の条件を満たす実行順列の全ての組み合わせを求める処理のアルゴリズムを示すフローチャートである。
【図１０】図９に示されるフローチャートを実行する場合の処理への入力と記憶領域に生成される順列バッファと決定した実行順列を記憶する領域を説明する図である。
【図１１】加工工程を実行する系統の組み合わせを計算するアルゴリズムを示すフローチャートである。
【図１２】図１１に示されるフローチャートを実行する場合の処理への入力と記憶領域に生成される実行系統バッファと決定した実行系統を記憶する領域を説明する図である。
【図１３】前後の工程で同時加工できる場合は、同時加工とする、全ての組み合わせを計算するアルゴリズムを示すフローチャートである。
【図１４】図１３に示されるフローチャートを実行する場合の処理への入力と記憶領域に生成される同時加工バッファと、決定した同時加工工程の記憶領域を説明する図である。
【図１５】実行可能順番の条件を満たす実行順列の全ての組み合わせを求めることを説明する図である。
【図１６】加工工程を実行する系統の組み合わせを全て計算することを説明する図である。
【図１７】前後の工程で同時加工できる場合は同時加工とする全ての組み合わせを計算することを説明する図である。
【図１８】加工工程毎の加工時間を求めることを説明する図である。
【図１９】加工時間が最短となる加工プログラムを選出することを説明する図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態を図面と共に説明する。
図１〜図４は、多系統旋盤を説明する図であり、図１は、２系統旋盤（１主軸）、２系統旋盤（１主軸）ミリングヘッド付き、２系統旋盤（２主軸）を説明する図であり、図２は、２系統旋盤（２主軸）、２系統旋盤（２主軸）ミリングヘッド付きを説明する図であり、図３は、３系統旋盤（２主軸）、３系統旋盤（２主軸）ミリングヘッド付きを説明する図であり、図４は、４系統旋盤（２主軸）を説明する図である。
【００１１】
図５は、本発明の多系統の自動プログラミングの装置として機能する数値制御装置の概要部図である。数値制御装置５０は、加工プログラムに従って図１〜図４に図示した多系統旋盤を駆動制御しワークを加工することができる。  
プロセッサ５１とバス５６で接続された、ＲＯＭ、ＲＡＭ、不揮発性ＲＡＭ等のメモリ５２、液晶表示装置などで構成される表示装置５３、データや指令を入力するキーボード等で構成される入力手段５４、各多系統の可動軸を駆動するモータを制御する第１〜第ｎ系統軸制御回路５５−１〜５５−ｎを備えている。  
メモリ５２には、各系統のプログラムが格納されているとともに、プログラムの編集処理のソフトウェアが格納されており、特に、本発明に関係した多系統の自動プログラミングを実行するソフトウェアが格納されている。
【００１２】
系統軸制御部５５−１〜５５−ｎは、プロセッサ５１が各系統のプログラムを実行して分配される移動指令と、モータに設けられた位置・速度検出器からのフィードバック信号に基づいて、位置・速度のフィードバック制御を行い、さらには電流フィードバックを行って、各系統のモータを制御し、各系統の各軸を互いに協調しながら同時に同期、又は独立して移動させるものである。この数値制御装置５０による多系統の駆動制御動作は従来の多系統制御機能を有する数値制御装置と同一の動作であり変わりはない。なお、本発明に係る自動プログラミング装置を、パーソナルコンピュータなどの情報処理装置によって構成してもよい。
【００１３】
図６は、加工工程が加工する領域を説明する図である。図中（１）〜（４）の符号は、ワークを加工する順番を表している。図６は、図１や図２に示される２系統旋盤によって加工工程（１）〜加工工程（４）によって、ワークＷを加工する場合を説明している。    図６から明らかなように、オペレータは、加工工程（２）は加工工程（１）より後に実行し、加工工程（３）は加工工程（１）より後に実行し、加工工程（４）は加工工程（３）の後に実行する必要がある。また、加工工程（２）は、加工工程（３）または加工工程（４）と同時に実行可能であり、加工工程（３）は加工工程（２）と同時に実行可能であり、加工工程（４）は加工工程（２）と同時に実行可能であることを認識できる。また、オペレータは、各加工工程をどの系統で実行するかも、それぞれの加工工程の加工内容に応じて認識できる。
【００１４】
図７は、入力画面例である。オペレータは、図６について説明したように、加工工程の実行可能な順番の条件、加工工程を実行可能な系統、および同時に加工可能な加工工程に関するデータを多系統プログラムの自動プログラミング装置（図５参照）に入力することができる。多系統プログラムの自動プログラミング装置は、オペレータが入力した情報を記憶装置（図５においてはメモリ５２）に記憶する。
ＮＯ．１、ＮＯ．２、ＮＯ．３、ＮＯ．４は、加工工程の番号を表し、加工種は各加工工程の加工の種類を表す。  
加工工程の実行条件において、実行可能な順番が加工工程毎に設定される。実行可能な系統は、それぞれの加工工程に設定される。そして、同時加工可能な加工工程に関するデータが記憶される。  
【００１５】
図７に示される入力画面例では、加工工程が４つ、実行加工な系統が系統１と系統２の２つの場合であるが、加工工程は４つに限定されず、また、実行可能な系統は、系統１、系統２の二つに限定されない。  
図７は上述したように、系統１、系統２を備えた機械を用いてワークＷを４つの工程からなる加工プログラムによって加工する場合に自動プログラミング装置に入力する場合の例である。工程の数が増加したり、機械の系統が増加した場合には、それらに対応した入力表示画面が表示される。
【００１６】
図８は、多系統プログラムを自動プログラミングする全体の処理のアルゴリズムを示すフローチャートである。以下、各ステップに従って説明する。  
●［ステップＳＡ１００］全加工工程の加工工程毎の加工時間を求める。なお、可動軸の移動速度、加工距離などのデータを基に加工工程の加工時間を求める方法は従来公知の方法であるので、詳細な記載を省略する。
●［ステップＳＡ１０１］ネストカウンタと順列番号を表すｈを、ｈ＝１に初期化する。
【００１７】
●［ステップＳＡ１０２］実行可能順番の条件を満たす実行順列の全ての組み合わせを求める。具体的な求め方は、図９のフローチャートの処理によって実行順列の全ての組合せを求めることができる。  
●［ステップＳＡ１０３］Ｋ＝１とする。Ｋは実行可能順番の条件を満たす順列の番号を示す。
【００１８】
●［ステップＳＡ１０４］ネストカウンタと順列番号を表すｊを、ｊ＝１に初期化する。
●［ステップＳＡ１０５］Ｋ番目の実行順列における実行系統の組み合わせを全て計算する。具体的には、図１１のフローチャートの処理によって実行系統の組み合わせを全て計算する。  
●［ステップＳＡ１０６］Ｌ＝１とする。Ｌは、Ｋ番目の実行順列における実行系統の組合せの番号である。
【００１９】
●［ステップＳＡ１０７］ネストカウンタと順列番号を表すｓを、ｓ＝１に初期化する。
●［ステップＳＡ１０８］Ｌ番目の実行系統の組み合わせにおける同時加工可能な全ての組み合わせを計算する。具体的には、図１３のフローチャートの処理によって同時加工可能な全ての組み合わせを計算する。  
●［ステップＳＡ１０９］Ｍ＝１とする。Ｍは、Ｌ番目の実行系統の組合せにおける同時加工可能な組合せの番号である。  
●［ステップＳＡ１１０］Ｍ番目の同時加工可能な組み合わせにおけるプログラム全体の加工時間を計算する。
【００２０】
●［ステップＳＡ１１１］加工時間は最短か否か判断し、最短の場合にはステップＳＡ１１２へ移行し、最短でない場合にはステップＳＡ１１３へ移行する。  
●［ステップＳＡ１１２］最短の加工時間、および、加工時間が最短となるプログラムを記憶する。
●［ステップＳＡ１１３］Ｍに１を加算した値を新たにＭとする。  
●［ステップＳＡ１１４］ＭはＭｍａｘより大きいか否か判断し、大きい場合はステップＳＡ１１５へ移行し、大きくない場合にはステップＳＡ１１０へ移行する。
●［ステップＳＡ１１５］Ｌに１を加算した値を新たにＬとする。  
●［ステップＳＡ１１６］ＬはＬｍａｘより大きいか否か判断し、大きい場合はステップＳＡ１１７へ移行し、大きくない場合にはステップＳＡ１０７へ移行する。  
●［ステップＳＡ１１７］Ｋに１を加算した値を新たにＫとする。  
●［ステップＳＡ１１８］ＫはＫｍａｘより大きいか否か判断し、大きい場合は処理を終了し、大きくない場合にはステップＳＡ１０４へ移行し処理を継続する。
【００２１】
上述したフローチャートにおいて、Ｋｍａｘは実行可能順番の条件を満たす実行順列の数であり、Ｌｍａｘは実行順列における実行系統の組合せの数であり、Ｍｍａｘは、同時可能な組合せにおける同時加工可能な組合せの数である。  
図９は、実行可能順番の条件を満たす実行順列の全ての組み合わせを求める処理のアルゴリズムを示すフローチャートである。以下、各ステップに従って説明する。ただし、ｎは工程総数、ｈはネストカウンタおよび順列番号である。  
●［ステップＳＢ１００］ｉ＝１に初期化する。ｉは加工工程の番号を表す。  
●［ステップＳＢ１０１］ネストｈ−１用順列バッファのデータを、ネストｈ用順列バッファにコピーする。なお、ｈ＝１の場合には、コピーするデータがないのでこのステップの処理を行わない。  
●［ステップＳＢ１０２］ネストｈ用順列バッファの中に工程（ｉ）が存在するか否か判断し、存在する場合にはステップＳＢ１１０へ移行し、存在しない場合にはステップＳＢ１０３へ移行する。
【００２２】
●［ステップＳＢ１０３］工程（ｉ）は実行可能な順番か否か判断し、実行可能な場合にはステップＳＢ１０４へ移行し、実行可能でない場合にはステップＳＢ１１０へ移行する。  
●［ステップＳＢ１０４］工程（ｉ）をネストｈ用順列バッファのｈ番目に格納する。  
●［ステップＳＢ１０５］ネストｈ用順列バッファにｎ個の工程が格納されたか否か判断し、格納された場合にはステップＳＢ１０６へ移行し、格納されていない場合にはステップＳＢ１０７へ移行する。
【００２３】
●［ステップＳＢ１０６］決定した実行順列を記憶する。  
●［ステップＳＢ１０７］ｈに１を加算した値をｈとする。  
●［ステップＳＢ１０８］再帰呼出しする。  
●［ステップＳＢ１０９］ｈから１を減算した値をｈとする。  
●［ステップＳＢ１１０］ｉに１を加算した値を新たにｉとする。  
●［ステップＳＢ１１１］ｉはｎより大きいか否か判断し、ｎより大きい場合には処理を終了し、大きくない場合にはステップＳＢ１０２へ戻り、処理を継続する。
【００２４】
図１０は、図９に示されるフローチャートを実行する場合の処理への入力と記憶領域に生成される順列バッファと決定した実行順列を記憶する領域を説明する図である。図１０（ａ）の処理への入力とは、図８のフローチャートの処理から、図９のフローチャートの処理を行う際に渡されるデータである。図９のフローチャートの処理に入力されるデータは、図１０（ａ）に記載されているように、工程総数ｎ、加工工程の実行可能順番、ネストカウンタおよび順列番号を表すｈである。図１０（ｂ）は、図９のステップＳＢ１０８の再帰処理を実行する中で生成されるバッファである。図１０（ｃ）は、図９のステップＳＢ１０６で行われる決定した実行順列の記憶領域を説明する図である。
【００２５】
図１１は、加工工程を実行する系統の組み合わせを計算するアルゴリズムを示すフローチャートである。以下、各ステップに従って説明する。ただし、ｎは工程総数、ｊは順列番号である。
●［ステップＳＣ１００］ネストｊ−１用加工系統バッファのデータを、ネストｊ用加工系統バッファにコピーする。なお、ｊ＝１の時は、コピーするデータがないのでこのステップの処理を行わない。  
●［ステップＳＣ１０１］ネストｊ用加工系統バッファのｊ番目の工程は、系統１で実行可能か否か判断し、実行可能である場合にはステップＳＣ１０２へ移行し、実行可能でない場合にはステップＳＣ１０９へ移行する。  
●［ステップＳＣ１０２］ネストｊ用加工系統バッファのｊ番目の工程の実行系統に１を設定する。
【００２６】
●［ステップＳＣ１０３］ネストｊ用加工系統バッファのｎ個の工程の実行系統が決定したか否か判断し、決定した場合にはステップＳＣ１０４へ移行し、決定していない場合にはステップＳＣ１０５へ移行する。  
●［ステップＳＣ１０４］決定した実行系統を記憶し、ステップＳＣ１０８へ移行する。
●［ステップＳＣ１０５］ｊに１を加算した値をｊとする。  
●［ステップＳＣ１０６］再帰呼出しをする。  
●［ステップＳＣ１０７］ｊから１を減じた値をｊとする。  
●［ステップＳＣ１０８］ネストｊ用加工系統バッファのｊ番目の工程は、系統２で実行可能であるか否か判断し、実行可能な場合にはステップＳＣ１０９へ移行し、実行可能でない場合にはステップＳＣ１１０へ移行する。  
●［ステップＳＣ１０９］ネストｊ用加工系統バッファのｊ番目の工程の実行系統に２を設定する。
【００２７】
●［ステップＳＣ１１０］ネストｊ用加工系統バッファのｎ個の工程の実行系統が決定したか否か判断し、決定した場合にはステップＳＣ１１１へ移行し、決定していない場合にはステップＳＣ１１２へ移行する。  
●［ステップＳＣ１１１］決定した実行系統を記憶する。  
●［ステップＳＣ１１２］ｊに１を加算した値をｊとする。  
●［ステップＳＣ１１３］再帰呼出しをする。  
●［ステップＳＣ１１４］ｊから１を減じた値をｊとし、処理を終了する。
【００２８】
図１２は、図１１に示されるフローチャートを実行する場合の処理への入力と記憶領域に生成される実行系統バッファと決定した実行系統を記憶する領域を説明する図である。図１２（ａ）の処理への入力とは、図８および図９のフローチャートの処理から、図１１のフローチャートの処理を行う際に渡されるデータである。図１２（ｂ）は、図１１のステップＳＣ１０６およびステップＳＣ１１３の再帰処理を実行する中で生成されるバッファである。図１２（ｃ）は、図１１のステップＳＣ１０４およびステップＳＣ１１１で記憶される決定した実行系統の記憶領域を説明する図である。
【００２９】
図１３は、前後の工程で同時加工できる場合は、同時加工とする、全ての組み合わせを計算するアルゴリズムを示すフローチャートである。以下、各ステップに従って説明する。ただし、ｎは工程総数、ｓは順列番号である。  
●［ステップＳＤ１００］ネストｓ−１用同時加工バッファのデータを、ネストｓ用同時加工バッファにコピーする。
●［ステップＳＤ１０１］ネストｓ用同時加工バッファのｓ番目の同時加工工程番号は、既に設定済みか否か判断し、設定済みの場合はステップＳＤ１１１へ移行し、設定していない場合にはステップＳＤ１０２へ移行する。
●［ステップＳＤ１０２］ネストｓ用同時加工バッファのｓ番目の工程とｓ−１番目の工程は同時加工可能か否か判断し、可能である場合にはステップＳＤ１０３へ移行し、可能でない場合にはステップＳＤ１０４へ移行する。
【００３０】
●［ステップＳＤ１０３］ネストｓ用同時加工バッファのｓ番目の同時加工工程番号にｓ−１を設定する。
●［ステップＳＤ１０４］ネストｓ用同時加工バッファのｎ個の工程の同時加工が決定したか否か判断し、同時加工が決定した場合にはステップＳＤ１０５へ移行し、決定していない場合にはステップＳＤ１０６へ移行する。  
●［ステップＳＤ１０５］決定した同時加工の組み合わせを記憶する。
●［ステップＳＤ１０６］ｓに１を加算したものをｓとする。
●［ステップＳＤ１０７］再帰呼び出しの処理を行う。
●［ステップＳＤ１０８］ｓから１を減算したものをｓとする。
●［ステップＳＤ１０９］ネストｓ用同時加工バッファのｓ番目とｓ＋１番目の工程は同時加工可能か否か判断し、同時加工可能である場合にはステップＳＤ１１０へ移行し、同時加工可能でない場合にはステップＳＤ１１１へ移行する。
●［ステップＳＤ１１０］ネストｓ用同時加工バッファのｓ番目の同時加工工程番号にｓ＋１を設定する。
【００３１】
●［ステップＳＤ１１１］ネストｓ用同時加工バッファのｎ個の工程の同時加工が決定したか否か判断し、決定した場合にはステップＳＤ１１２へ移行し、決定していない場合にはステップＳＤ１１３へ移行する。
●［ステップＳＤ１１２］決定した同時加工の組み合わせを記憶する。
●［ステップＳＤ１１３］ｓに１を加えた値をｓとする。
●［ステップＳＤ１１４］再帰呼び出し処理を行う。
●［ステップＳＤ１１５］ｓから１を減じた値をｓとし、処理を終了する。
【００３２】
図１４は、図１３に示されるフローチャートを実行する場合の処理への入力と記憶領域に生成される同時加工バッファと決定した同時加工工程を記憶する領域を説明する図である。図１４（ａ）の処理への入力とは、図８、図９、図１１のフローチャートの処理から、図１３のフローチャートの処理を行う際に渡されるデータである。図１４（ｂ）は、図１３のステップＳＤ１０７およびステップＳＤ１１４の再帰処理を実行する中で生成されるバッファである。図１４（ｃ）は、図１３のステップＳＤ１０５およびステップＳＤ１１２で記憶される決定した同時加工工程の記憶領域を説明する図である。
【００３３】
次に、図６、図７、図１５〜図１９に示される実施例を用いて図８、図９、図１１、および図１３の処理を説明する。  
前述したように、図６は、ワークＷを加工工程（１）〜（４）によって加工することを示している。また、図７は、図６に示される加工を行う場合に、多系統の自動プログラミング装置（例えば、数値制御装置５０）に入力する条件を説明している。図７は、オペレータが入力する条件を説明する図である。オペレータは、加工工程の実行可能な順番の条件、加工工程を実行可能な系統、同時に加工可能な加工工程の条件を入力させる。
【００３４】
図１５は、実行可能順番の条件を満たす実行順列の全ての組み合わせを求めることを説明する図である。図９に示されるアルゴリズムの処理によって、図７に示される条件を満たす実行可能順番の条件を満たす実行順列は、図１５の符号１、符号３、符号４で示される３つの順列である。
【００３５】
次に、実行可能順番の条件を満たす実行順列に対して、図１１に示されるアルゴリズムの処理によって、図７に示される条件を満たす加工工程を実行する系統の組み合わせは、図１６に示される６つと計算される。図１６は、加工工程を実行する系統の組み合わせを全て計算することを説明する図である。
図１６の符号１−１、符号１−２は、図１５の符号１の順列で加工工程を実行する系統の全ての組み合わせである。符号３−１、符号３−２は、図１５の符号３の順列で加工工程を実行する系統の全ての組み合わせである。また、符号４−１、符号４−２は、図１５の符号４の順列で加工工程を実行する系統の全ての組み合わせである。  
そして、図１６に示される加工工程を実行する系統の全ての組み合わせに対して、図１３に示されるアルゴリズムの処理によって、図７に示される条件を満たす全ての組み合わせは、符号１−１−１、符号３−２−１、および符号３−２−２の３つである。
【００３６】
次に、図８に示されるアルゴリズムの処理によって、図１７の符号１−１−１、符号３−２−１、符号１−１−２で示される加工工程毎の加工時間を求め、図１８に示されるように、符号１−１−１−１、符号３−２−１−１、符号１−１−２−２に示す計算結果が得られる。そして、加工時間が最短となるのは、図１９に示される符号３−２−１−１の順列からなる加工プログラムと、符号１−１−２−２の順列からなる加工プログラムの２つである。
【符号の説明】
【００３７】
５０  数値制御装置
５１  プロセッサ
５２  メモリ
５３  表示装置
５４  入力手段
【図１】
2011227627.tif 000003
【図２】
2011227627.tif 000004
【図３】
2011227627.tif 000005
【図４】
2011227627.tif 000006
【図５】
2011227627.tif 000007
【図６】
2011227627.tif 000008
【図７】
2011227627.tif 000009
【図８】
2011227627.tif 000010
【図９】
2011227627.tif 000011
【図１０】
2011227627.tif 000012
【図１１】
2011227627.tif 000013
【図１２】
2011227627.tif 000014
【図１３】
2011227627.tif 000015
【図１４】
2011227627.tif 000016
【図１５】
2011227627.tif 000017
【図１６】
2011227627.tif 000018
【図１７】
2011227627.tif 000019
【図１８】
2011227627.tif 000020
【図１９】
2011227627.tif 000021
【手続補正書】
【提出日】平成22年11月18日(2010.11.18)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】図１５
【補正方法】変更
【補正の内容】
【図１５】
2011227627.tif 000022
【手続補正書】
【提出日】平成23年8月19日(2011.8.19)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
請求項２に係る発明は、複数の制御系統の各々で複数の加工工程からなる加工プログラムを実行して加工対象物の加工を行う機械の多系統プログラムを作成する自動プログラミング方法において、加工対象物を加工するための前記加工工程を作成する第１のステップと、前記加工工程毎の加工時間を計算する第２のステップと、前記第１のステップにより作成された各加工工程について、実行可能な系統を入力する第３のステップと、前記加工工程について、実行可能な加工順序を入力する第４のステップと、前記各加工工程について、同時に実行可能な他の加工工程が存在する場合、同時に実行可能な加工工程を入力する第５のステップと、前記第１のステップによって作成された加工工程と、前記第２のステップによって計算された加工時間、前記第３のステップによって入力された実行可能な系統、前記第４のステップによって入力された実行可能な加工順序、および、前記第５のステップによって入力された同時に実行可能な加工工程に基づいて、加工時間が最短となる加工プログラムを選出する第６のステップと、を有することを特徴とする多系統プログラムの自動プログラミング方法である。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項２
【補正方法】変更
【補正の内容】
【請求項２】
複数の制御系統の各々で複数の加工工程からなる加工プログラムを実行して加工対象物の加工を行う機械の多系統プログラムを作成する自動プログラミング方法において、
加工対象物を加工するための前記加工工程を作成する第１のステップと、
前記加工工程毎の加工時間を計算する第２のステップと、
前記第１のステップにより作成された各加工工程について、実行可能な系統を入力する第３のステップと、
前記加工工程について、実行可能な加工順序を入力する第４のステップと、
前記各加工工程について、同時に実行可能な他の加工工程が存在する場合、同時に実行可能な加工工程を入力する第５のステップと、
前記第１のステップによって作成された加工工程と、前記第２のステップによって計算された加工時間、前記第３のステップによって入力された実行可能な系統、前記第４のステップよって入力された実行可能な加工順序、および、前記第５のステップによって入力された同時に実行可能な加工工程に基づいて、加工時間が最短となる加工プログラムを選出する第６のステップと、
を有することを特徴とする多系統プログラムの自動プログラミング方法。