(57)【特許請求の範囲】
【請求項１】
ワークの加工のために生産設備を制御する制御装置に実行させるプログラムを基に、該ワークを該生産設備が加工するうえで要すると予測される時間をサイクルタイムとして算出するための方法であって、
前記プログラムを構成するブロック中から、工具（ツール）を交換する指令を抽出することにより、前記プログラムブロックを１つ以上の、同一のツールを用いて前記ワークを加工するための前記ツール工程に対応したブロック群に分割し、
該ブロック群毎に、前記ツールによる前記ワークへの加工を中断する指令を抽出することにより、該ブロック群を更に１つ以上の基本加工工程に対応したブロック群に分割し、
該基本加工工程に対応したブロック群を単位として、加工工程の加工を行うのに要すると予測される時間をサイクルタイムとして算出する、
ことを特徴とするサイクルタイム算出方法。
【請求項２】
前記基本加工工程に対応したブロック群のサイクルタイムは、前記生産設備の仕様を決めるために設定されたパラメータを用いて算出する、
ことを特徴とする請求項１記載のサイクルタイム算出方法。
【請求項３】
前記サイクルタイムを積算して、前記生産設備が前記ワークの加工に要すると予測される時間を該生産設備全体のサイクルタイムとして算出する、
ことを特徴とする請求項１、または２記載のサイクルタイム算出方法。
【請求項４】
前記ツールによる前記ワークへの加工を中断する指令は、前記ツールが切削用ツールであった場合に、該切削用ツールに切削のための動力の伝達を一時的に停止させる指令である、
ことを特徴とする請求項１記載のサイクルタイム算出方法。
【請求項５】
前記基本加工工程に対応したブロック群を単位として、該基本加工工程の加工を行ううえでの加工条件を前記ブロック群から抽出する、
ことを特徴とする請求項１〜４の何れか１項に記載のサイクルタイム算出方法。
【請求項６】
ワークの加工のために生産設備を制御する制御装置に実行させるプログラムを基に、該ワークを該生産設備が加工するうえで要すると予測される時間をサイクルタイムとして算出する装置であって、
前記プログラムを構成するブロック中から、工具（ツール）を交換する指令を抽出することにより、前記プログラムを１つ以上の、同一のツールを用いて前記ワークを加工するための前記ツール工程に対応したブロック群に分割する手段と、
該分割された各ブロック群毎に、前記ツールによる前記ワークへの加工を中断する指令を抽出することにより、該ブロック群を更に１つ以上の前記基本加工工程に対応したブロック群に分割する手段と、
該基本加工工程に対応した各ブロック群を単位として、加工工程の加工を行うのに要すると予測される時間をサイクルタイムとして算出する手段と、
を具備することを特徴とするサイクルタイム算出装置。
【請求項７】
ワークの加工のために生産設備を制御する制御装置に実行させる加工用プログラムを基に、該ワークを該生産設備が加工するうえで要すると予測される時間をサイクルタイムとして算出する装置として用いるコンピュータに、
前記加工用プログラムを構成するブロック中から、工具（ツール）を交換する指令を抽出することにより、前記加工用プログラムを１つ以上の、同一のツールを用いて前記ワークを加工するための前記ツール工程に対応したブロック群に分割するステップと、
該分割されたブロック群毎に、前記ツールによる前記ワークへの加工を中断する指令を抽出することにより、該ブロック群を更に１つ以上の基本加工工程に対応したブロック群に分割するステップと、
該基本加工工程に対応したブロック群を単位として、加工工程の加工を行うのに要すると予測される時間をサイクルタイムとして算出するステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ワークの加工のために生産設備を制御する制御装置が実行するプログラムから、そのワークを生産設備が加工するうえで要すると予測される時間（サイクルタイム）を求めるための技術に関する。
【０００２】
【従来の技術および発明が解決しようとする課題】
近年、人々の価値観は多様化し、その変化も速くなっている。それにより、製品生産のための生産設備は、多品種の生産に使用される傾向にある。生産コストの低減の面からは、自動化（無人化）が求められている。これらのことから、生産設備の多くは、プログラムを実行する制御装置の制御下で工作機械を動作させる構成となっている。その制御装置としては、プログラムロジックコントローラ（以下、ＰＬＣ）やＮＣ（Numerical Control ）装置（数値制御装置）、モーションコントローラ（以下、ＭＣ）などがある。なお、現在では、ＮＣ装置の多くはＣＮＣ（Computerized Numerical Control ）装置となっているが、特に断らない限り、以降ＮＣ装置とはＣＮＣ装置を含む意味で用いる。
【０００３】
生産ラインは、複数の生産設備を有機的に結合させることにより構築される。加工には、変形加工（鍛造、粉末加工、プラスチック成形加工など）や除去加工（切削加工、砥粒加工、或いは光学的加工など）、接合加工（溶接加工、接着加工、結合加工、組立加工など）、及び処理加工（表面処理、熱処理など）といった様々なものがある。生産ラインを構成させる生産設備は、ワーク（加工物）の種類やそれに対して行うべき加工内容に応じて決定される。
【０００４】
ＮＣ装置が実行するプログラム（ＮＣプログラム）は、作業者が自動プログラミング装置を用いて対話形式で作成（ここでは変更を含む）するのが普通である。ワークの設計は、ＣＡＤ／ＣＡＭ（Computer Aided Design and Manufacturing ）システムを用いて行われるのが殆どである。このことから、自動プログラミング装置は、ＮＣ装置と接続される操作盤に搭載されるだけでなく、ＣＡＤ（Computer Aided Design ）システムにも標準的に搭載されている。
【０００５】
そのＣＡＤシステムには、作成、或いは変更したＮＣプログラムをＮＣ装置に実行させた場合のシミュレーションを行う機能も標準的に搭載されている。それにより、作成、或いは変更したＮＣプログラムをＮＣ装置に実際に実行させた場合に、ワークの加工に要すると予測される時間をサイクルタイムとして作業者が確認できるようにさせている。
【０００６】
従来のシミュレーションでは、ＮＣプログラムを模擬的に実行し、その実行にかかる時間を計時することでサイクルタイムを求めていた。しかし、そのようにして求められたサイクルタイムでは、生産設備全体でワークの加工に要する時間しか確認することはできない。
【０００７】
生産設備にワークの複数箇所の加工を行わせることは多い。その場合、加工に要する実際の時間は、通常、加工を行わせる順序によって変動する。このため、その場合には、従来のシミュレーションで算出されたサイクルタイムから、その加工を行わせる順序が適切であるか否かを確認するのは非常に困難である。現在では、工程計画や設備計画などの生産活動に求められる精度は非常に高くなってきている。このようなことから、その順序が適切であるか否かを作業者が容易に確認できるようにすることが重要であると考えられる。
【０００８】
本発明は、プログラムを制御装置が実行することで生産設備がワークに対して行う加工の順序が適切か否か作業者が容易に確認できるようにするための技術を提供することを目的とする。
【０００９】
【課題を解決するための手段】
本発明の第１の態様のサイクルタイム方法は、ワークの加工のために生産設備を制御する制御装置に実行させるプログラムを基に、該ワークを該生産設備が加工するうえで要すると予測される時間をサイクルタイムとして算出するための方法であって、前記プログラムを構成するブロック中から、工具（ツール）を交換する指令を抽出することにより、前記プログラムブロックを１つ以上の、同一のツールを用いて前記ワークを加工するための前記ツール工程に対応したブロック群に分割し、該ブロック群毎に、前記ツールによる前記ワークへの加工を中断する指令を抽出することにより、該ブロック群を更に１つ以上の基本加工工程に対応したブロック群に分割し、該基本加工工程に対応したブロック群を単位として、加工工程の加工を行うのに要すると予測される時間をサイクルタイムとして算出する。
【００１０】
本発明の第２の態様のサイクルタイム算出方法は、ワークの加工のために生産設備を制御する制御装置に実行させるプログラムを基に、該ワークを該生産設備が加工するうえで要すると予測される時間をサイクルタイムとして算出するための方法であって、ツール交換指令の命令文に着目して、プログラムを１つ以上の第１の命令文群に分割し、ツールによるワークへの加工の中断を指令する命令文に着目して、該第１の命令文群毎に、該第１の命令文群を更に１つ以上の第２の命令文群に分割し、該第２の命令文群毎に、該第２の命令文群が示す加工工程の加工を行うのに要すると予測される時間をサイクルタイムとして算出する。
【００１１】
上記サイクルタイムは、生産設備の仕様を決めるために設定されたパラメータを用いて算出する、ことが望ましい。また、算出したサイクルタイムを積算して、生産設備がワークの加工に要すると予測される時間を該生産設備全体のサイクルタイムとして算出する、ことが望ましい。
【００１２】
上記中断する動作は、ツールが切削用ツールであった場合に、該切削用ツールに切削のための動力の伝達を一時的に停止させる動作である、ことが望ましい。また、分割した加工工程を単位として、該加工工程の加工を行ううえでの加工条件をプログラムから抽出する、ことが望ましい。
【００１３】
本発明のサイクルタイム算出装置は、ワークの加工のために生産設備を制御する制御装置に実行させるプログラムを基に、該ワークを該生産設備が加工するうえで要すると予測される時間をサイクルタイムとして算出することを前提とし、前記プログラムを構成するブロック中から、工具（ツール）を交換する指令を抽出することにより、前記プログラムを１つ以上の、同一のツールを用いて前記ワークを加工するための前記ツール工程に対応したブロック群に分割する手段と、該分割された各ブロック群毎に、前記ツールによる前記ワークへの加工を中断する指令を抽出することにより、該ブロック群を更に１つ以上の前記基本加工工程に対応したブロック群に分割する手段と、該基本加工工程に対応した各ブロック群を単位として、加工工程の加工を行うのに要すると予測される時間をサイクルタイムとして算出する手段と、を具備する。
【００１４】
本発明のプログラムは、ワークの加工のために生産設備を制御する制御装置に実行させる加工用プログラムを基に、該ワークを該生産設備が加工するうえで要すると予測される時間をサイクルタイムとして算出する装置として用いるコンピュータに、前記加工用プログラムを構成するブロック中から、工具（ツール）を交換する指令を抽出することにより、前記加工用プログラムを１つ以上の、同一のツールを用いて前記ワークを加工するための前記ツール工程に対応したブロック群に分割するステップと、該分割されたブロック群毎に、前記ツールによる前記ワークへの加工を中断する指令を抽出することにより、該ブロック群を更に１つ以上の基本加工工程に対応したブロック群に分割するステップと、該基本加工工程に対応したブロック群を単位として、加工工程の加工を行うのに要すると予測される時間をサイクルタイムとして算出するステップと、を実行させる。
【００１５】
本発明では、プログラムを構成する１つ以上の命令を制御装置が実行した場合に生産設備に行わせる所定の動作に着目して、その生産設備がワークを加工する加工工程を分割し、分割した加工工程を単位として、その加工工程の加工を行うのに要すると予測される時間をサイクルタイムとしてプログラムを参照して算出する。
【００１６】
生産設備がワークを加工する加工工程を分割することにより、加工工程全体が細分化される。細分化した加工工程は、それぞれ、それを行わせる順序や加工条件などを検討する対象とすることができる。細分化した加工工程単位で算出したサイクルタイムは、その検討を行ううえでの貴重な情報となる。これらのことから、少なくとも、ワークに対して行わせる加工の順序が適切か否か作業者が容易に確認することが可能となる。
【００１７】
上記サイクルタイムを、生産設備の仕様を決めるために設定されたパラメータを用いて算出するようにした場合には、そのサイクルタイムをより高精度に算出することが可能となる。この結果、ワークに対して行わせる加工の順序が適切か否かの確認は、より容易、且つ正確に行えるようになる。
【００１８】
細分化した加工工程を単位として、その加工工程の加工を行ううえでの加工条件をプログラムから抽出するようにした場合には、作業者はその加工条件から、問題のある加工工程を特定したり、その対策を立てるようなことが更に容易、且つ正確に行えるようになる。
【００１９】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。
図１は、本実施の形態によるサイクルタイム算出装置が適用されたネットワークシステムの構成を示す図である。
【００２０】
そのネットワークシステムは、例えば製品の製造を行う工場を所有する企業に構築されたクライアント／サーバ型のシステムである。図１に示すように、構内ＬＡＮ１０１と工場ローカルＬＡＮ１０２をルータ１０３により結んでいる。構内ＬＡＮ１０１には、例えばパーソナルコンピュータである端末装置１０４が接続され、その端末装置１０４のユーザが業務を行うのを支援するサーバとして、工具情報システムが構築されたアプリケーションサーバ１０５、シミュレーションシステムが構築されたアプリケーションサーバ１０６、及びデータベース（ＤＢ）サーバ１０７が接続されている。
【００２１】
一方の工場ローカルＬＡＮ（以降、ローカルＬＡＮと略記）１０２には、ラインサーバ１０８や複数のアクセスポイント（以降、ＡＰ）１０９が接続されている。各ＡＰ１０９は、その子機に当たるＡＰ１１０と通信を行う。
【００２２】
そのローカルＬＡＮ１０２は、生産ライン１２０、１３０が設置された工場に敷設されている。生産ライン１２０、１３０は、それぞれ９台、２２台の生産設備から構成されている。
【００２３】
それらの生産設備は、ＮＣ制御装置、ＰＬＣ、或いはＭＣの制御下でワークを加工するか、或いはそれを搬送するものである。例えばマシンニングセンタ、打ち抜き装置、バリ取り装置、或いは洗浄装置などを備えたものである。その構成は、周知のものであることから、特に詳細な説明は省略するが、例えば以下のようになっている。
【００２４】
生産ライン１２０を構成する１台の生産設備１２１は、例えばＰＬＣ内蔵のＮＣ制御装置の制御下でワークの加工を行うものである。そのＮＣ制御装置に、操作盤１２２、及びＡＰ１２３が接続されている。そのＡＰ１２３によって、ＮＣ制御装置はローカルＬＡＮ１０２と接続させている。作業員は、操作盤１２２を操作してＮＣ制御装置が実行するＮＣプログラムやパラメータ（仕様を決めるために設定されたデータ）を変更することができる。
【００２５】
生産ライン１３０を構成する１台の生産設備１３１は、例えばＮＣ制御装置の制御下でワークの加工を行う部分（以降、部分設備と記す）１３１ａと、ＰＬＣ内蔵のＮＣ制御装置の制御下でワークの加工を行う部分設備１３１ｂと、から構成されている。それらの制御装置は接続され、部分設備１３１ｂのＮＣ制御装置はハブ１３２と接続されている。そのハブ１３２には、他に、操作盤１３３、及びＡＰ１３４が接続されている。そのＡＰ１３４によって、各部分設備１３１ａ、１３１ｂのＮＣ制御装置はローカルＬＡＮ１０２と接続させている。作業員は、操作盤１３３を操作して各ＮＣ制御装置が実行するＮＣプログラムやパラメータを変更することができる。
【００２６】
上記ラインサーバ１０８は、各生産設備の制御装置から所定のデータを収集することにより、各生産設備の動作状態の監視を行う。また、各生産設備の制御装置が実行するプログラムやパラメータを自動的に収集し、例えば端末装置１０４のユーザからの要求に応じて、生産設備がワークの加工に要すると予測される時間をサイクルタイムとして算出するシミュレーションを行う。それにより、本実施の形態によるサイクルタイム算出装置は、ラインサーバ１０８に搭載させた形で適用されている。
【００２７】
生産設備を制御する制御装置が実行するプログラムは、その制御装置の種類によって普通は異なる。同じ種類の制御装置にも複種類のプログラム言語が開発されている。このことから、混乱を避けて理解を容易とするために、以降、図２に示すプログラムを例にとって、本実施の形態におけるサイクルタイムの算出方法について詳細に説明することとする。また、サイクルタイムについては、特に断らない限り、算出の対象である予測されるサイクルタイムを指すこととし、説明はそのサイクルタイムを算出することを前提として行うことにする。
【００２８】
図２に示すプログラム例は、ＮＣ制御装置が実行するＮＣプログラムである。図２中の各ブロックは、ＮＣプログラムを構成する１命令文に当たる。ＮＣプログラムは、基本的に、そのブロックを実行順に並べた形で構成されている。
【００２９】
１ブロックは、シンボル“Ｎ”に続く数値で表されたシーケンス番号を先頭に、機能の種類を表すシンボル、及びそれに続くコード化された数値からなるデータ（コード）が１つ以上、続く構成となっている。シーケンス番号は、ＮＣプログラムの先頭に近づくほど小さな値となる昇順で記述される。以降、プログラムはＰＧと略記することにする。
【００３０】
図２中の“Ｇ”“Ｍ”“Ｓ”及び“Ｔ”は、それぞれ異なる機能の種類を表すシンボルであり、それに続くコード化された数値が機能の命令（指令）を表すようになっている。
【００３１】
シンボル“Ｇ”は準備機能を表し、補間の種類や座標系の選択、固定サイクル、ねじ切り、準備機能、或いはその他のことは、それに続く数値（Ｇコード）で指定する。シンボル“Ｘ”、“Ｙ”は、それに続く数値で座標位置などを指定するために用いられる。
【００３２】
シンボル“Ｍ”は補助機能を表し、主軸の回転や停止、その回転方向、工具交換などは、それに続く数値（Ｍコード）で指定することができる。シンボル“Ｓ”は主軸機能を表し、主軸の回転速度は、それに続く数値（Ｓコード）で指定することができる。シンボル“Ｔ”は工具機能を表し、それに続く数値（Ｔコード）で使用する工具（ツール）を指定することができる。
【００３３】
上述したような機能が用意されていることから明らかなように、生産設備でのワークへの加工は、随時、ツールを交換しながら、そのツールを用いてワークの複数の箇所を加工することがある。このことから、本実施の形態では、加工に使用するツールの種類、及びそのツールでワークを加工する動作を一時的に中断するときの動作に着目してプログラムの解析を行うことにより、プログラムを実行する制御装置の制御下で生産設備がワークを加工する加工工程を基本的な加工工程に分割し、そのサイクルタイムを算出するようにしている。例えば同じツールを用いてワークに穴を空ける加工を複数、行わせるようなＰＧの場合には、そのツールに動力を伝える主軸を一時的に回転停止させる動作に着目して、加工工程を分割する。これは、ツールを単に移動させるときには主軸の回転を停止させるのが普通であるためである。それにより、各穴はそれぞれ１加工工程の加工によって空けられるものと見なし、１個の穴を空けるのに要する時間をサイクルタイムとして算出するようにしている。
【００３４】
ツールの位置を随時、移動させつつ、ワークの加工を複数回、行うような場合、その加工に要する全体の加工時間は、その加工を行っている間にツールを移動させる距離によって変化してくる。その距離は、加工を行う位置の順序によって変化するのが普通である。当然のことながら、その距離を短くするほど、全体の時間が短くなる。生産設備がワークを加工する加工工程を基本的な加工工程に分割してサイクルタイムを算出するのは、このためである。各加工工程での加工条件（ここではツールの種類や加工位置、加工方法（ツールの使い方やその移動方向など）など）もＰＧから抽出して作業者に提示できるようにさせている。
【００３５】
そのように分割した加工工程の順序を変化させると、それに伴い、各加工工程のサイクルタイム、更には全体の加工時間が変化する。このため、そのサイクルタイムを提示することにより、作業者（端末装置１０４のユーザ）は、問題のある加工工程を正確に把握できるようになる。それにより、ツールの調整や加工工程の見直しも容易に行えるようになる。この結果、加工工程の最適化、例えば全体の加工時間を最も短くさせるか、或いは目標とする時間と一致させるといったことも容易となる。
【００３６】
サイクルタイムと合わせて、加工工程の加工条件を提示するようにした場合には、サイクルタイムの変化に影響を及ぼす要因の特定が更に容易となる。このため、加工工程の最適化も更に容易に行えるようになる。加工条件からツールの寿命を容易、且つ正確に把握できるようにもなる。
【００３７】
図３は、加工工程の分割方法を説明する図である。主軸を回転させてワークを加工する生産設備を例にとって、その制御を行う制御装置が実行するプログラムから、その生産設備がワークを加工する加工工程を基本的な加工工程に分割する方法を説明するものである。
【００３８】
図３に示すように、先ず、ツール（工具）交換を指令するブロックを検出し、そのブロックでＰＧを分ける。それにより、同一のツールで加工を行わせるためのブロック群を特定する。以降、基本的な加工工程と区別するために、同一のツールを用いて行われる加工工程全体を指してツール工程と呼び、それを分割して得られる基本的な加工工程は基本加工工程と呼ぶことにする。そのツール工程は、１つ以上の基本加工工程から構成される。
【００３９】
図２に示すようなＰＧでは、工具交換指令は１個、或いは２個のブロックで行われる。図３中の「ケース１」「ケース３」は、共に１ブロック（命令文）で工具交換指令を実現させたケースである。「ケース３」はマクロとして用意されたサブＰＧを呼び出すことで工具交換指令を実現させていることが「ケース１」とは異なっている。「ケース２」は、工具の準備を指令するブロック、及び準備を指令した工具への交換を指令するブロックの２個のブロックで工具交換指令を実現させたケースである。何れのケースでも、実際に工具を交換させることになる指令のブロックでＰＧを分けている。
【００４０】
工具（ツール）交換に着目してＰＧを１つ以上のブロック群に分割すると、次にブロック群（ツール）毎に、そのブロック群を、主軸停止を指令するブロックに着目して更に分割する。より具体的には、そのブロックとして、ここでは一時的に主軸停止を指令することになるブロック、即ち主軸の回転を指令するブロックが後に配置されている主軸停止を指令するブロックに着目している。そのブロックとして、一時的に主軸停止を指令することになるブロックに着目したのは、主軸を回転させてワークを加工する生産設備では、主軸を停止させたままワークを加工することはありえないためである。それにより、１ツールで１回の加工を行う場合には、そのツールのツール工程は分割せず、ツール工程は１基本加工工程から構成されているとしている。
【００４１】
そのようにして各加工工程毎にＰＧを更に細かく分割すると、次に各ブロック群毎に、加工条件（ここでは切削条件）を抽出する。ここで抽出している切削条件とは、主にサイクルタイムを算出するうえで必要な条件であり、本実施の形態では、その切削条件として、Ｆ、Ｅ、Ｓ、Ｄ値を状況に応じて抽出している。それらの値は、何れもブロック（図２参照）に機能のコードとして記述することが可能な値である。Ｆ値（Ｆコード）は、主軸の移動速度を表現し、Ｅ値（Ｅコード）は主軸、１回転当たりの移動量を表現し、Ｄ値（Ｄコード）はツールの周速を表現している。
【００４２】
主軸は、ツールで加工を行わない場合、パラメータで設定された速度で移動させる。予め定められた原点に主軸を戻すのが早戻しであり、それ以外の移動が早送りである。ワークに穴を空ける場合、Ｚ軸上の位置を減少させることで行われる。ワークにツールを接触させた状態で主軸をＸＹ平面上に移動させると、ワークに溝を形成させたり、その表面を削ることができる。これらのことから、本実施の形態では、図４に示すように、切削、早送り、及び早戻しの識別を行うようにしている。図４中のＧコード「Ｇ０１」は直線補間、Ｇコード「Ｇ００」は位置決めを表している。
【００４３】
図５は、加工工程の分割例を説明する図である。上述したようにして実際のＰＧを解析することで加工工程毎にＰＧをブロック群に分け、各ブロック群から切削条件を抽出する様子を示したものである。その図５に示すＰＧでは、Ｔコードを持つブロックを実行することで呼び出されるサブＰＧはマクロとして用意されている。図中の「工程１」「工程２」は、それぞれツール工程を表している。
【００４４】
図６は、１生産設備により加工されたワークを示す図である。
そのワークには、図６に示すように、形状が異なる４種類の穴＃１〜４が空けられている。それらの穴＃１〜４は、それぞれ異なるツールを用いて空けられている。形状が同じ穴＃２は２個、空けられている。穴＃３は、円形ではなく、細長い形状に空けられている。
【００４５】
そのような穴＃１〜４を空ける加工を行わせるためのＰＧでは、それを４つのツール工程のブロック群に分けることになる。図中の工程１〜４は、ブロック群に分けられたツール工程、それに付された番号は、そのツール工程が行われる順序を表している。穴＃２は２個あることから、工程２に対応するブロック群は更に２つのブロック群に分けられる。
【００４６】
穴＃３は、他とは異なり、ワークの表面の形状が細長くなっている。そのような形状の穴＃３は、例えばツール（例えばドリル）でＺ軸に沿った穴を空けた後、そのツール（主軸）をＸＹ平面上に移動させることで形成される。それにより、図３を参照して説明の加工条件（ここでは切削条件）が変化する。穴＃３を空けるのに要するサイクルタイムを算出する場合、Ｚ軸に沿った穴を空けるのに要する時間と、ツールをＸＹ平面上に移動させた時間とは、別々に計算しなければならない。このことから、そのような加工条件を抽出するようにしている。
【００４７】
図７は、サイクルタイムの定義と計算方法を説明する図である。図８は、そのサイクルタイム計算用データの取得方法を説明する図である。次に、図７、及び図８を参照して、計算の対象とするサイクルタイム、その計算方法、及びその計算に用いるデータの取得方法について詳細に説明する。それら図７、及び図８は、切削加工を行う生産設備を例にとった場合のものである。
【００４８】
図７において、「Ｔ工程サイクル１」「Ｔ工程サイクルＮ」は、それぞれ、同じツールを用いてワークを加工する基本加工工程に対応する。図６に示すワークでは、２つの穴＃２を空けるためのそれぞれの加工工程に対応する。そのサイクルタイムＴRKは、その基本加工工程の加工を行うために生産設備を稼働させている稼働時間である。
【００４９】
「ツールサイクル」は、上記ツール工程に対応し、そのツール工程で行われる全基本加工工程から構成される。従って、そのサイクルタイムＴj は、図７に示すように、各基本加工工程のサイクルタイムＴRKを積算して計算される時間となる。「設備サイクル」は、生産設備でワークを加工する工程全体に対応し、全ツール工程はその一部として行われる。このため、そのサイクルタイムＴは、各ツール工程のサイクルタイムＴR を積算して計算される時間に、生産設備固有のワークの加工に必要な時間を加算して得られる時間となる。加工するワークを作業員がセットして安全用の扉を閉め、その扉を開けて加工が終わったワークを取り出すのであれば、図７に示すように、固有の時間として、ワークをセットして扉を閉めるのに要する時間ＴBS、及び扉を開けてワークを取り出すのに要する時間ＴBEを加算することになる。
【００５０】
「ラインサイクル」は、１生産ラインでワークを加工する工程全体に対応し、全設備サイクル（工程）はその一部として行われる。このため、そのサイクルタイムＴＬは、各設備サイクルのサイクルタイムＴを積算して計算される時間に、生産ライン固有のワークの加工に必要な時間を加算して得られる時間となる。生産設備間でのワークの受け渡しを作業員が運搬して行うのであれば、固有の時間として、生産設備間の運搬時間をそれぞれ加算することになる。
【００５１】
基本加工工程のサイクルタイムＴRKは、図７に示すように、その添字で示す基本加工工程ＲＫにおける早送り時間（主軸を早送りするのに要する時間）Ｔqf＿RK 、位置決め時間Ｔld＿RK 、ＡＴＣ時間（ツールの自動交換に要する時間）Ｔatc＿RK、テーブル割出時間（ワークをセットするテーブルの割出角度を変化させるために要する時間）Ｔtac＿RK、ドウエル時間Ｔd＿RK、主軸加速度タップロス時間（主軸の回転速度が目標値に達するまでに要する時間）Ｔal＿RK 、総切削（加工）時間Ｔts＿RK 、早戻し時間（主軸を原点に向けて早戻しするのに要する時間）Ｔqr＿RK 、及び工具検知時間Ｔtcc＿RKを加算することで計算される。
【００５２】
上記総切削（加工）時間Ｔts＿RK は、上述したように、ＰＧ中から抽出した加工条件別に加工に要する時間を算出し、算出した時間を積算することで求められる時間である。例えば図６に示すような穴＃３では、Ｚ軸に沿って穴を空けるのに要する時間と、主軸をＸＹ平面上に移動させるのに要する時間と、を加算した時間となる。
【００５３】
上記各時間では、上述したようにツール工程を基本加工工程に分割することから、切削加工では、早送り時間Ｔqf＿RK 、位置決め時間Ｔld＿RK 、主軸加速度タップロス時間Ｔal＿RK 、及び総切削時間Ｔts＿RK 以外の時間は０であることがあり得る。例えばＡＴＣ時間Ｔatc＿RKは、最初の基本加工工程以外では０となり、早戻し時間Ｔqr＿RK は最後の基本加工工程以外では０となる。工具検知時間Ｔtcc＿RKは、生産設備によっては主軸に別の動きを行わせている間に工具の検知を行うようにしていることから、０ということもある。このことから、工具検知時間Ｔtcc＿RKは、ファイルに保存した固定値を使用するようにしている。それ以外には、位置決め時間Ｔld＿RK 、ＡＴＣ時間Ｔatc＿RK、更には時間ＴBS、ＴBEもファイルに保存した固定値を使用するようにしている（図８参照）。以降、そのファイルについては、サイクルタイム算出用に用意したものであることから、算出用ファイルと呼ぶことにする。
【００５４】
上記早送り時間Ｔqf＿RK 及び早戻し時間Ｔqr＿RK は、主軸の移動上の制約を考慮して算出される。例えば主軸を同時には１軸上にしか移動できなければ、各軸毎の移動距離の積算値が主軸の移動距離となる。その移動距離の移動にかかる時間は、各軸毎に、その移動距離をその軸の早送り速度で割って得られる時間を積算したものとなる。複数軸上に移動できるのであれば、各軸上の移動距離をその軸の早送り速度で割って得られる時間の最大時間が移動にかかる時間となる。このことから、主軸の移動上の制約を考慮して時間を算出している。各軸上を含め、移動距離は、ＰＧから取得し、早送り速度は、各軸毎に、生産設備の制御装置から収集したパラメータ中から取得している。
【００５５】
テーブル割出時間Ｔtac＿RKを算出するための割出角度θは、ＰＧ中から取得する。その算出は、９０度のテーブル回転に要する基準時間αに、割出角度θを９０で割った値を掛けることで行っている。基準時間αは、上記算出用ファイル内に用意するか、或いはサイクルタイム算出用にラインサーバ１０８が実行するプログラム内で定義されている。
【００５６】
ドウエル時間Ｔd＿RKは、ＰＧ中から取得する。それが複数、存在していれば、その累計値が時間Ｔd＿RKとなる。主軸加速度タップロス時間Ｔal＿RK は、Ｓコードで指令される回転速度に主軸が達するのに要する時間である。その時間は、例えば算出用ファイルにテーブル形式、或いはそれを算出するための方程式の形で格納されている。図８に示す例は、Ｓコードで指令される回転速度が１５００ｒｐｍまでは固定値ａ、その回転速度が１５００〜３０００ｒｐｍの間は固定値ｂ、その回転速度が３０００ｒｐｍ以上であれば固定値ｃを時間Ｔal＿RK とすることを表している。
【００５７】
加工では、同じ、或いは同じと見なせる加工を繰り返し行うことがある。例えばフライス加工では、フライス面を加工するのにツールを複数回、場所や方向を変えつつ、移動させることがある。ここでは、ツールを１回、移動させる加工を１パスと呼んでいる。それにより、総切削時間Ｔts＿RK は、１パス当たりの切削（加工）時間に、パス数ＰＮ＿ＲＫを掛けて算出している。１パス当たりの切削時間は、そのパスでの切削距離を送り速度で割ることで求めている。切削距離、送り速度、及びパス数ＰＮ＿ＲＫは、共にＰＧから取得している。
【００５８】
このようにして、本実施の形態では、生産設備の制御装置から収集したパラメータを必要に応じて使用して、基本加工工程のサイクルタイムＴRKを算出している。このため、実際のサイクルタイムと高精度に一致するサイクルタイムＴRKを算出することができる。他のサイクルタイムＴR 、Ｔ、及びＴＬにおいても同様である。それにより、作業者にとっては、算出されたサイクルタイムを検討するだけで、加工工程の最適化を高精度に行えるようになる。
【００５９】
図９は、１ラインのサイクルタイム算出処理のフローチャートである。上述した各種サイクルタイムを算出するために、ラインサーバ１０８が実行する処理の流れを示したものである。次に、図９を参照して、各種サイクルタイムを算出するためのラインサーバ１０８が実行する処理について詳細に説明する。
【００６０】
その図９に示す算出処理は、例えば端末装置１０４のユーザからの要求を受け付けて実行される。それは、ラインサーバ１０８に搭載されたＣＰＵが、例えばハードディスクに格納されたサイクルタイム算出用のアプリケーションプログラムを実行することで実現される。サイクルタイムを算出する対象とするＰＧ、その実行の際に参照されるパラメータは、特に詳細な説明は省略するが、例えば生産ライン１２０、或いは１３０を構成する各生産設備の制御装置から自動的に収集するか、或いはその要求を受け付けて収集している。
【００６１】
先ず、ステップＳ１では、１生産ラインを構成する生産設備の制御装置が実行するＰＧ（プログラム）、及びその実行に必要なパラメータ等を取得する。続くステップＳ２では、取得したＰＧ、パラメータ等の中から１組のＰＧ、パラメータ等を選択する。その後に移行するステップＳ３では、ステップＳ２で選択したＰＧの言語の種類やそれを実行する制御装置の種類、その制御装置が制御する生産設備の仕様などに応じて、基本加工工程のサイクルタイムを算出するためのサイクルタイム算出処理を実行する。その実行後はステップＳ４に移行する。
【００６２】
ステップＳ４では、全対象ＰＧを対象にサイクルタイムを算出したか否か判定する。ステップＳ１で取得したＰＧのなかにサイクルタイムを算出していないものが残っていた場合、判定はＮＯとなって上記ステップＳ２に戻り、残ったＰＧ、パラメータ等のなかから１組のＰＧ、パラメータ等を選択し、それ以降のステップの処理を同様に実行する。そうでない場合には、判定はＹＥＳとなり、ステップＳ５に移行して、ＰＧ単位で算出したサイクルタイムを用いて１ラインのサイクルタイムＴＬを算出した後、一連の処理を終了する。
【００６３】
図１０は、主軸を回転させて切削加工を行う生産設備を対象にしたサイクルタイム算出処理のフローチャートである。それは、上記ステップＳ３として実行されるサイクルタイム算出処理のサブルーチン処理として、必要に応じて実行される。次に図１０を参照して、主軸を回転させて切削加工を行う生産設備を制御する制御装置のＰＧを対象に、上記ステップＳ３で実行されるサブルーチン処理について詳細に説明する。
【００６４】
先ず、ステップＳ１１では、ＰＧファイルの先頭から、工具（ツール）交換指令が記述されたブロック（図３、及び図５参照）を検索する。そのブロックとは、上述したように、それを実行することで実際に工具が交換されるブロックである（図３参照）。次のステップＳ１２では、その検索の結果、その指令が記述されたブロックが抽出できたか否か判定する。そのブロックを抽出できた場合、判定はＹＥＳとなってステップＳ１３に移行する。そうでない場合には、判定はＮＯとなってステップＳ１９に移行する。
【００６５】
ステップＳ１３では、次の工具交換指令が記述されたブロック、或いはＰＧの最後までの間に、主軸停止指令が記述されたブロック、及びその主軸の再正転指令が記述されたブロックがその順序で配置されているか否か確認するための検索を行う。その後に移行するステップＳ１４では、その検索の結果、そのような配置で２つのブロックが見つかったか否か判定する。そのような配置で２つのブロックが１組以上、存在していた場合、判定はＹＥＳとなり、ステップＳ１５に移行して、次の工具交換指令が記述されたブロック、或いはＰＧの最後までの間を、主軸停止指定が記述されたブロックで分割した後、ステップＳ１７に移行する。そうでない場合には、判定はＮＯとなり、ステップＳ１６に移行して、次の工具交換指令が記述されたブロック、或いはＰＧの最後までの間を１工程（基本加工工程）のブロック群とさせた後、そのステップＳ１７に移行する。
【００６６】
ステップＳ１７では、上述したようにして基本加工工程でＰＧを分割して得たブロック群毎に、座標位置、Ｆ、Ｅ、Ｓ、Ｄの各値、ドウエル時間、テーブル割出角度、パス数などをサイクルタイム算出用の加工条件として抽出し、パラメータを必要に応じて用いつつ、その基本加工工程のサイクルタイムＴRKを算出して、それらを格納する。それら以外には、ツール工程のサイクルタイムＴR を算出し、それをサイクルタイムＤＢに格納する。そのようなことも行った後にステップＳ１８に移行する。
【００６７】
抽出した加工条件や算出した各種サイクルタイムＴRK、ＴR は、例えば予め用意したファイル、或いはデータベースに保存する形で格納する。加工条件とサイクルタイムＴRKとはリンクさせ、ツール工程別、生産設備（制御装置）別に格納する。ここでは、便宜的に、それらの格納場所をサイクルタイムＤＢとする。
【００６８】
ステップＳ１８では、ＰＧの全ブロックを対象にした検索が完了したか否か判定する。上記２つのブロックの検索を行っている間にＰＧの最後まで検索が進まなかった場合、判定はＮＯとなって上記ステップＳ１３に戻り、着目するツールを変更して、それ以降の処理を同様に実行する。反対にそうでない場合には、即ちＰＧの最後まで検索が終了した場合には、判定はＹＥＳとなり、設備サイクルのサイクルタイムＴを算出し、それをサイクルタイムＤＢに格納した後、一連の処理を終了する。
【００６９】
図５に示すメインＰＧを図９のステップＳ２で選択した場合、シーケンス番号３５（図中では「Ｎ３５」と表記）を検索することでステップＳ１２の判定がＹＥＳとなり、ステップＳ１３に移行する。その後は、ステップＳ１３〜Ｓ１８で形成される処理ループを、ステップＳ１８の判定がＹＥＳとなるまで繰り返し実行することになる。それにより、１基本加工工程からなるツール工程として、「工程１」及び「工程２」が順次、特定され、そのサイクルタイムＴR （＝ＴRK）が算出されることになる。
【００７０】
ステップＳ１９では、ＰＧの検索が全て完了したか否か判定する。次の工具交換指令が記述されたブロックの検索を行っている間にＰＧの最後まで検索が進んだ場合、判定はＹＥＳとなってステップＳ２０に移行する。そうでない場合には、判定はＮＯとなって上記ステップＳ１１に戻り、検索が終了しているブロックから先に検索を進める。
【００７１】
図９のステップＳ２で選択したＰＧに工具交換指令が記述されたブロックが存在していない場合、ステップＳ１１、Ｓ１２、及びＳ１９で形成される処理ループはステップＳ１９の判定がＹＥＳとなるまで繰り返し実行されることになる。それにより、ステップＳ２０以降では、ＰＧに工具交換指令が記述されたブロックが存在していないことを前提にした処理が行われる。
【００７２】
先ず、ステップＳ２０では、検索を開始する位置をＰＧファイルの先頭に戻し、番号でツールの種類を表現するＴコードを「Ｔ００」とする。次のステップＳ２１では、上記２つのブロックを対象にした検索を行う。その後に移行するステップＳ２２では、検索の結果、その２つのブロックが見つかったか否か判定する。その２つのブロックが１組以上、存在していた場合、判定はＹＥＳとなり、ステップＳ２３に移行して、ＰＧの最後までの間を、主軸停止指定が記述されたブロックで分割した後、ステップＳ２５に移行する。そうでない場合には、判定はＮＯとなり、ステップＳ２４に移行して、ＰＧの最後までの間を１工程（基本加工工程）のブロック群とさせた後、そのステップＳ２５に移行する。
【００７３】
ステップＳ２５では、上述したようにして基本加工工程でＰＧを分割して得たブロック群毎に、座標位置、Ｆ、Ｅ、Ｓ、Ｄの各値、ドウエル時間、テーブル割出角度、パス数などをサイクルタイム算出用の加工条件として抽出し、パラメータを必要に応じて用いつつ、その基本加工工程のサイクルタイムＴRKを算出して、それらを格納する。それら以外には、ツール工程のサイクルタイムＴR を算出し、それをサイクルタイムＤＢに格納する。そのようなことも行った後にステップＳ２６に移行する。
【００７４】
ステップＳ２６では、ＰＧの全ブロックを対象にした検索が完了したか否か判定する。ＰＧの最後まで検索が進んでいない場合、判定はＮＯとなって上記ステップＳ２１に戻り、それ以降の処理を同様に実行する。反対にそうでない場合には、即ちＰＧの最後まで検索が終了した場合には、判定はＹＥＳとなり、設備サイクル（設備工程）のサイクルタイムＴを算出し、それをサイクルタイムＤＢに格納した後、一連の処理を終了する。
【００７５】
図９のステップＳ３として実行されるサイクルタイム算出処理では、上述したようなサイクルタイム算出処理が、制御装置が実行するプログラムの言語毎に、複種類、実行できるようになっている。それにより、プログラムの言語だけでなく、制御装置が制御する生産設備で行われる加工の内容にも対応できるようにしている。
【００７６】
なお、本実施の形態では、混乱を避けるために、ＮＣ制御装置が実行するＮＣプログラムを例にとって説明を行ったが、他の制御装置が実行するプログラムでもサイクルタイム算出の対象とすることができる。加工工程の分割については、本実施の形態では、ツールを交換する動作（１ブロック（命令）の実行で実現）、及び主軸を一時的に回転停止させる動作（２ブロック（命令）の実行で実現）に着目して行っているが、着目する動作は、生産設備がワークに対して行う加工の内容に応じて適宜、選択することが望ましい。
【００７７】
ＮＣプログラムは、生産設備のＮＣ制御装置から収集するようにしているが、それはＣＡＤシステムなどに搭載された自動プログラミング装置から収集しても良い。そのようにした場合には、サイクルタイム算出装置を工程計画や設備計画などの立案用に利用できるようになる。
【００７８】
上述したようなサイクルタイム算出装置、或いはその変形例の動作を実現させるようなプログラムは、ＣＤ−ＲＯＭ、ＤＶＤ、或いは光磁気ディスク等の記録媒体に記録させて配布しても良い。或いは、公衆網等で用いられる伝送媒体を介して、そのプログラムの一部、若しくは全部を配信するようにしても良い。そのようにした場合には、ユーザはプログラムを取得してコンピュータなどのデータ処理装置にロードすることにより、その処理装置に本発明によるサイクルタイム算出装置を搭載させることができる。このことから、記録媒体は、プログラムを配信する装置がアクセスできるものであっても良い。
【００７９】
【発明の効果】
以上、説明したように本発明は、プログラムを構成する１つ以上の命令を制御装置が実行した場合に生産設備に行わせる所定の動作に着目して、その生産設備がワークを加工する加工工程を分割し、分割した加工工程を単位として、その加工工程の加工を行うのに要すると予測される時間をサイクルタイムとしてプログラムを参照して算出する。
【００８０】
生産設備がワークを加工する加工工程を分割することにより、加工工程全体が細分化される。細分化した加工工程は、それぞれ、それを行わせる順序や加工条件などを検討する対象とすることができる。細分化した加工工程単位で算出したサイクルタイムは、その検討を行ううえでの貴重な情報となる。これらのことから、少なくとも、作業者は、ワークに対して行わせる加工の順序が適切か否か容易に確認することができる。
【００８１】
上記サイクルタイムを、生産設備の仕様を決めるために設定されたパラメータを用いて算出するようにした場合には、そのサイクルタイムをより高精度に算出することができる。このため、作業者は、ワークに対して行わせる加工の順序が適切か否かの確認をより容易、且つ正確に行えるようになる。
【００８２】
細分化した加工工程を単位として、その加工工程の加工を行ううえでの加工条件をプログラムから抽出するようにした場合には、作業者はその加工条件から、問題のある加工工程を特定したり、その対策を立てるようなことが更に容易、且つ正確に行えるようになる。
【図面の簡単な説明】
【図１】本実施の形態によるサイクルタイム算出装置が適用されたネットワークシステムの構成を示す図である。
【図２】プログラムの構成を説明する図である。
【図３】加工工程の分割方法を説明する図である。
【図４】切削、早送り、早戻しの識別方法を説明する図である。
【図５】加工工程の分割例を説明する図である。
【図６】１生産設備により加工されたワークを示す図である。
【図７】サイクルタイムの定義と計算方法を説明する図である。
【図８】サイクルタイム計算用データの取得方法を説明する図である。
【図９】１ラインのサイクルタイム算出処理のフローチャートである。
【図１０】主軸を回転させて切削加工を行う生産設備を対象にしたサイクルタイム算出処理のフローチャートである。
【符号の説明】
１０１    構内ＬＡＮ
１０２    工場ローカルＬＡＮ
１０４    端末装置
１０８    ラインサーバ
１０９、１１０、１２３、１３４    アクセスポイント
１２０、１３０    生産ライン
１２１、１３１    生産設備
１２２、１３３    操作盤
【図１】
0004253463.tif 000002
【図２】
0004253463.tif 000003
【図３】
0004253463.tif 000004
【図４】
0004253463.tif 000005
【図５】
0004253463.tif 000006
【図６】
0004253463.tif 000007
【図７】
0004253463.tif 000008
【図８】
0004253463.tif 000009
【図９】
0004253463.tif 000010
【図１０】
0004253463.tif 000011