JP2012048471A - 数値制御装置およびマクロプログラム実行方法 - Google Patents
数値制御装置およびマクロプログラム実行方法 Download PDFInfo
- Publication number
- JP2012048471A JP2012048471A JP2010189581A JP2010189581A JP2012048471A JP 2012048471 A JP2012048471 A JP 2012048471A JP 2010189581 A JP2010189581 A JP 2010189581A JP 2010189581 A JP2010189581 A JP 2010189581A JP 2012048471 A JP2012048471 A JP 2012048471A
- Authority
- JP
- Japan
- Prior art keywords
- program
- macro
- execution
- macro program
- analysis
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Numerical Control (AREA)
Abstract
【課題】軸移動がマクロプログラムの実行に影響を受けることをなくすとともに、マクロプログラム実行による数値演算処理が加工時間を増大させないようにする。
【解決手段】マクロプログラムの解析・実行をバックグラウンド処理の中で行うタスクの一つとして登録し、加工プログラムの実行による各軸の軸移動を行うための割り込み処理と並行して、前記マクロプログラムの解析・実行を前記バックグラウンド処理の中で行う。
【選択図】図1
【解決手段】マクロプログラムの解析・実行をバックグラウンド処理の中で行うタスクの一つとして登録し、加工プログラムの実行による各軸の軸移動を行うための割り込み処理と並行して、前記マクロプログラムの解析・実行を前記バックグラウンド処理の中で行う。
【選択図】図1
Description
本発明は、数値制御装置およびマクロプログラム実行方法に係り、特に、バックグラウンド処理を利用して、数値計算処理するマクロプログラムの解析・実行を行うようにした数値制御装置およびマクロプログラム実行方法に関する。
数値制御装置を制御する加工プログラムでは、メインプログラムの他にマクロプログラムと呼ばれるプログラムが使用されており、このマクロプログラムによってメインプログラムに融通性と汎用性を付加している。マクロプログラムは、NC工作機械をどのように動かすかについての軸移動に無関係な記述指令を主体にしているプログラムで、軸移動に必要な座標計算や工具長の補正に必要な計算など、様々な数値演算が行われ、その結果をマクロ変数を介してメインプログラムに受け渡している。このようなマクロプログラムは、共通して使われる数値演算処理をあらかじめマクロプログラムとして登録しておくことで、いつでも呼び出して使用することができるので、加工プログラム作成を効率化することができる。
従来、マクロプログラムは、メインプログラムの中に記述してメインプログラムで実行されるか、メインプログラムの中でサブプログラム呼び出しにより実行されている。マクロプログラムの実行中は、メインプログラムの実行が中断されているため、数値計算にかかる時間が多大であると、その間、工作機械のプログラム運転が待機状態になって全体として加工時間が長くなってしまう。
従来、マクロプログラムは、メインプログラムの中に記述してメインプログラムで実行されるか、メインプログラムの中でサブプログラム呼び出しにより実行されている。マクロプログラムの実行中は、メインプログラムの実行が中断されているため、数値計算にかかる時間が多大であると、その間、工作機械のプログラム運転が待機状態になって全体として加工時間が長くなってしまう。
また、メインプログラムの中断の影響を受けて軸移動の定時処理が円滑に行われなくなり、軸の移動が滑らかに行われずワークに痕跡が残り、加工面精度が低下するという問題があった。
このようなマクロプログラム実行に伴う不都合に対しては、例えば、特許文献1では、加工プログラムを最初に実行する過程で、マクロプログラムを実行したときの演算結果を記憶しておき、再度、加工プログラムを実行するときには、マクロプログラムの記憶した演算結果を用いて数値制御装置内部のNCデータを更新することを提案している。
他方、軸移動等に必要な数値計算をマクロプログラムによって実行する替わりに、プログラマブル・ロジック・コントローラ(以下、PLCという)にて数値計算処理を行うことも従来から行われている。このPLCで数値計算をする場合には、PLC専用の言語であるラダーシーケンスを駆使しなければならず、ラダーシーケンスについての高度な専門知識が必要とされる。このため、誰でも比較的容易に作成できるマクロプログラムとは異なって、数値計算処理のシーケンスを作成することは容易ではなかった。
本発明は、前記従来技術の有する問題点に鑑みなされたものであり、その目的は、メインプログラムを中断することなくマクロプログラムで軸移動などに必要な数値演算処理をバックグラウンドで実行することにより、軸移動がマクロプログラムの実行に影響を受けることをなくすとともに、マクロプログラムによる数値演算処理が加工時間を増大させないようにし、さらに、PLCを用いた数値演算処理の省力化と簡素化を実現できるようにした数値制御装置およびマクロプログラム実行方法を提供することにある。
前記の目的を達成するために、本発明は、工作機械の各軸の移動を加工プログラムの実行により制御する数値制御装置におけるマクロプログラムの実行方法であって、前記マクロプログラムの解析・実行をバックグラウンド処理の中で行うタスクの一つとして登録し、 前記加工プログラムの実行による各軸の軸移動を行うための割り込み処理と並行して、前記マクロプログラムの解析・実行を前記バックグラウンド処理の中で行うことを特徴とするものである。
また、本発明は、工作機械の各軸の移動を加工プログラムの実行により制御する数値制御装置において、前記加工プログラムを解析する解析部と、前記加工プログラムの解析に基づいて工作機械の各軸の軸移動を割り込み処理して行う実行部と、数値計算を行うマクロプログラムの解析および実行をするマクロプログラム解析・実行部と、前記マクロプログラムの解析・実行をバックグラウンド処理の中で行うタスクの一つとして登録する手段と、前記バックグラウンド処理として登録されたタスク実行のタスク管理を行う手段と、
を具備したことを特徴とするものである。
を具備したことを特徴とするものである。
本発明によれば、軸移動がマクロプログラムの実行に影響を受けることがなく、しかも、マクロプログラムによる数値演算処理は工時間を増大させることがない。さらに、PLCを用いた数値演算処理の省力化と簡素化を実現することができる。
以下、本発明による数値制御装置およびマクロプログラムの実行方法の一実施形態について、添付の図面を参照しながら説明する。
第1実施形態
図1は、本発明の第1実施形態による数値制御装置におけるプログラム解析処理のブロック図である。
第1実施形態
図1は、本発明の第1実施形態による数値制御装置におけるプログラム解析処理のブロック図である。
図1において、参照番号10は、加工プログラムを示す。参照番号12はマクロプログラムを示す。加工プログラム10、マクロプログラム12は、プログラム入力部14を介して記憶装置のプログラム記憶域16に格納されている。このプログラム記憶域16には、個別のプログラム内容が実際に格納されている個別プログラム記憶域と、プログラム名称、プログラムサイズや個別プログラム記憶域に格納されている各プログラムの格納アドレス等の管理情報が記憶されているプログラム管理域と、がある。
数値制御装置は、加工プログラム10を処理するために、加工プログラム解析部18、実行データ作成部20、各軸移動量指令部22を備えている。加工プログラム解析部18は、加工プログラム10を1ブロックずつ読み出して、そのブロックのコード内容を解析するとともに、実行データ作成部20で処理可能なデータを作成し、そのデータを図示しない解析済みバッファに転送する。
実行データ作成部20は、解析済みバッファから取り出したデータからCPUの基本サンプリング時間あたりの各軸の移動量を計算し、各軸移動量指令部22に与える。各軸移動量指令部22は、この各軸移動量から各軸の移動目標位置を更新し、この移動目標位置のデータをサーボ制御部24に送り、サーボ制御部24は、各軸のサーボモータM1、M2、…に取り付けた図示しない位置検出器から位置をフィードバックしながらモータサーボモータM1、M2、…に指令を与え、フィードバック位置制御を行うことになる。
次に、マクロプログラム12の解析処理について説明する。
本発明で扱うマクロプログラム12は、加工プログラム10とは異なって工作機械の主軸やテーブルを動かす各軸の軸移動を指令するのではなく、純然たる数値計算を目的としているプログラムである。マクロプログラム12の解析処理は、マクロプログラム解析・実行部26で行われる。マクロプログラム12で使用される、ローカル変数、ゼネラル変数、ラベル変数、システム変数等の各種マクロ変数は、マクロ変数記憶領域28に格納されている。マクロプログラム解析・実行部26は、マクロプログラム12を1ブロックずつ読み出して解析し、マクロ変数を使って数値演算を実行する。演算結果は、加工プログラム解析部18に渡されて、加工プログラムの解析・実行で利用される。なお、参照番号34は、プログラマブルロジックコントローラ(PLC)である。図1では、PLC34は数値制御装置の中に含まれる構成になっているが、数値制御装置とは別の装置として構成してもよい。参照番号30は、PLC34からあるいはそれ以外から書き込まれるシステム変数(PLC34側から見ると信号)の変化を監視するマクロ変数監視部である。また、参照番号32はオペレーションシステム部で、後述するタスク管理のところで説明する。
本発明で扱うマクロプログラム12は、加工プログラム10とは異なって工作機械の主軸やテーブルを動かす各軸の軸移動を指令するのではなく、純然たる数値計算を目的としているプログラムである。マクロプログラム12の解析処理は、マクロプログラム解析・実行部26で行われる。マクロプログラム12で使用される、ローカル変数、ゼネラル変数、ラベル変数、システム変数等の各種マクロ変数は、マクロ変数記憶領域28に格納されている。マクロプログラム解析・実行部26は、マクロプログラム12を1ブロックずつ読み出して解析し、マクロ変数を使って数値演算を実行する。演算結果は、加工プログラム解析部18に渡されて、加工プログラムの解析・実行で利用される。なお、参照番号34は、プログラマブルロジックコントローラ(PLC)である。図1では、PLC34は数値制御装置の中に含まれる構成になっているが、数値制御装置とは別の装置として構成してもよい。参照番号30は、PLC34からあるいはそれ以外から書き込まれるシステム変数(PLC34側から見ると信号)の変化を監視するマクロ変数監視部である。また、参照番号32はオペレーションシステム部で、後述するタスク管理のところで説明する。
次に、図2に加工プログラムのメインプログラムから抜き出したそのごく一部の例を示す。図3にはメインプログラム中から指令して実行させるマクロプログラムの例を示す。
図2に示す加工プログラムを構成する各ブロックのうち、ブロックaは、基本サンプリング時間毎に発生する割り込み処理とは別に、バックグラウンドでマクロプログラムを実行させるためのマクロ指令を含むブロックである。G172というGコードがバックグラウンドマクロ指令である。「$MAC1」は、図3に示したマクロプログラムの名前である。
図2に示す加工プログラムを構成する各ブロックのうち、ブロックaは、基本サンプリング時間毎に発生する割り込み処理とは別に、バックグラウンドでマクロプログラムを実行させるためのマクロ指令を含むブロックである。G172というGコードがバックグラウンドマクロ指令である。「$MAC1」は、図3に示したマクロプログラムの名前である。
ブロックb以下は、主軸を移動させてワークを実際に加工するための軸移動の指令を含むブロックである。この軸移動を指令するブロックはブロックbからブロックcの直前まで続いている。ブロックcは、バックグラウンドでのマクロプログラム「$MAC1」の実行が完了したことを確認するためのブロックである。ブロックdは、図3のマクロプログラム「$MAC1」で数値計算した結果を使って軸移動を指令するブロックである。
マクロプログラム「$MAC1」では、ローカル変数V10、V11でV1を数値計算し、ローカル変数V20、V21でV2を数値演算し、それぞれ得られたV1、V2からそれぞれゼネラル変数V31、V32を計算するという数値計算を記述している。このマクロプログラムを実行して得られた計算結果は、図2の加工プログラムのブロックdのゼネラル変数V31、V32で軸移動の距離を表している。
図4は、図2の加工プログラムと図3のマクロプログラムの解析処理の流れを示すフローチャートである。
以下、図1乃至図4を参照しながら、加工プログラムとマクロプログラムの解析処理の流れについて説明する。
図4において、左側のステップS10からステップS17までが加工プログラムを解析する処理を表し、右側のステップS18からステップS20までがバックグラウンドでのマクロプログラムの解析処理を表している。
以下、図1乃至図4を参照しながら、加工プログラムとマクロプログラムの解析処理の流れについて説明する。
図4において、左側のステップS10からステップS17までが加工プログラムを解析する処理を表し、右側のステップS18からステップS20までがバックグラウンドでのマクロプログラムの解析処理を表している。
図1のブロック図において、プログラム記憶域16に格納されている加工プログラムの中からプログラムが選択されて、図2の加工プログラムが開かれる(ステップS10)。続くステップS11では、加工プログラムの先頭から1ブロックずつ読み出されてそのブロックの解析が実行される。
解析したブロックにバックグラウンドマクロ指令が含まれていない場合(ステップS12のNo)、つまり、ワークを加工するときの軸移動等を指令するコードからブロックが構成されている場合には、ステップS14に進む。このステップS14は、後述するバックグラウンドでのマクロプログラムの実行が終了したかどうかを確認する処理である。今は確認する必要はないので、ステップ16に進み、実行データ作成部20で処理できる形式のデータを作成する(ステップS16)。そして、ステップS17のNoからステップ11に戻って、読み出したブロックが軸指令のブロックであれば、以上説明した処理が繰り返されることになる。
以上のようにして、1ブロックずつ加工プログラムの解析を続けていくと、やがて図2の加工プログラムにおいて、ブロックaをステップS11で解析することになる。
このブロックaでは、バックグラウンドマクロ指令のGコードが含まれているので、ステップS12で判別された結果(ステップS12のYes)、ステップS13に進む。このステップS13では、指定されている「$MAC1」のマクロプログラムを解析するタスクを新規バックグラウンドタスクとしてタスク登録テーブルに次のようにして登録する。
このブロックaでは、バックグラウンドマクロ指令のGコードが含まれているので、ステップS12で判別された結果(ステップS12のYes)、ステップS13に進む。このステップS13では、指定されている「$MAC1」のマクロプログラムを解析するタスクを新規バックグラウンドタスクとしてタスク登録テーブルに次のようにして登録する。
ここで、図5は、バックグラウンドタスクのタスク登録テーブルの一例を示す。タスクA〜Cは、既に登録されているバックグラウンド・サービスタスクである。例えば、タスクAには、モニタに情報を表示する処理、タスクBには、工作機械と数値制御装置との間でやり取りされる各種信号を監視する処理、タスクCには、アラーム監視処理がというように登録されている。
タスクXとして新規に登録されたのが、ステップS13で登録された「$MAC1」のマクロプログラムを解析するバックグラウンド・サービスタスクである。
タスクXとして新規に登録されたのが、ステップS13で登録された「$MAC1」のマクロプログラムを解析するバックグラウンド・サービスタスクである。
タスク登録テーブルでは、各タスクについてタスク実行アドレスと、サービス待ち時間が設定されている。タスクAは実行開始アドレスが1,0000Hでサービス待ち時間(サービス周期)が200msec、タスクBは実行開始アドレスが1,1000Hでサービス待ち時間が300msec、タスクCは実行開始アドレスが1,2000Hでサービス待ち時間が200msec、タスクXは実行開始アドレスが2,0000Hでサービス待ち時間が100msecというように登録されている。
オペレーティングシステム部32は、タスク登録テーブルに登録されたタスクA、B、C、Xを順番に設定されたサービス待ち時間毎に順番にバックグラウンドで実行させてゆく。
なお、タスクXのように、マクロプログラムを解析するタスクは、一度限りの実行で済むタスクであるので、タスクの処理が終了すると、タスク登録テーブルから削除されるようになっている。
そこで、タスクXとして登録されたマクロプログラム解析のバックグラウンドでの処理について説明する。
図4のフローチャートで、右側に示すステップS18からステップS20がマクロプログラムの解析および実行のステップである。ステップS18では、タスク登録テーブルにマクロプログラムを解析するバックグラウンド・サービスタスクが登録されていれば(ステップS18のYes)、ステップS19に進んで、この場合であればタスクXのマクロプログラムの解析・実行をバックグラウンドで処理していく。そして、計算結果がゼネラル変数V31、V32に格納されてマクロプログラムの解析・実行が終了する(ステップS20)。
この間、数値制御装置での割り込み処理と、バックグラウンドでのマクロプログラムの解析・実行との関係は、次のようになっている。
図6は、割り込み処理とバックグラウンド処理の関係を示すタイミングチャートである。基本サンプリング時間を一周期にして、CPUに割り込み信号が入ると、割り込み処理、加工プログラムの解析処理、バックグラウンド処理の順で進んでいく。
割り込み処理では、最初に、軸移動に関係するサーボ制御処理、各軸の移動量を分配する分配処理、実行部へのデータ転送処理の順に行われる。サーボ制御処理を最優先にしているのは、割り込み信号が入ったときに必ず軸移動を実行させるようにして、滑らかな軸移動を確保するためである。
図4のフローチャートにおいて、ステップS11〜ステップS17の加工プログラムを解析し実行形式のデータを作成する解析処理は割り込み処理の次の優先順位で行われる。そして、ステップS18〜ステップS20のマクロプログラムの解析・実行処理は、バックグラウンド処理として、加工プログラムの解析・実行処理とあたかも並行しているかのようにして行われる。このことは、言い換えれば、マクロプログラムの解析・実行の終了を待たずに、加工プログラムを解析しながら軸移動が行われていることになる
このようにして、図2に示した加工プログラムの実行がブロックcまで進行すると、このブロックcを読み出すと(ステップS11)、このブロックcにはマクロプログラム「$MAC1」の実行完了を確認するG173というコードが含まれているため、次のような処理が行われる。
このようにして、図2に示した加工プログラムの実行がブロックcまで進行すると、このブロックcを読み出すと(ステップS11)、このブロックcにはマクロプログラム「$MAC1」の実行完了を確認するG173というコードが含まれているため、次のような処理が行われる。
すなわち、ステップS12のNoからステップS14に進むと、G173というコードがあるので、ステップS15に進んで、マクロプログラムの実行の完了を確認する。もし、マクロプログラムの実行が完了してなければ、コードPで指定された時間(5秒間)だけ待つ。コードPで指定された時間内にマクロプログラムの実行が完了していなければ異常とみなしてマクロプログラムの実行を止めることになる。
完了していれば、ステップS16、ステップS17を経てステップS11に進み、次のブロックであるブロックdを読み込み解析を行う。次いで、ステップS12のNo、ステップS14のNoを経て、ステップS16で実行形式のデータを作成する。この時点では、バックグラウンドで処理の完了した数値計算の最新結果のゼネラル変数V31、V32を利用して軸移動の実行データを作成することができる。
完了していれば、ステップS16、ステップS17を経てステップS11に進み、次のブロックであるブロックdを読み込み解析を行う。次いで、ステップS12のNo、ステップS14のNoを経て、ステップS16で実行形式のデータを作成する。この時点では、バックグラウンドで処理の完了した数値計算の最新結果のゼネラル変数V31、V32を利用して軸移動の実行データを作成することができる。
以上のように数値計算をするマクロプログラムの解析・実行をバックグラウンドで行っているため、マクロプログラムの実行を加工プログラムの解析・実行と実質的に並行して行うことができる。
上述した例は、短い加工プログラムであるが、実際の加工プログラムには長大なものがあり、その中では数多くのマクロプログラムが利用されている。マクロプログラムの解析・実行の完了を待つ間、加工プログラムが中断される場合には、その停止時間を積み重ねると相当な時間ロスが生じる。しかし、本実施形態のように、加工プログラムによる運転がマクロプログラムの解析・実行に影響を受けない場合には、時間ロスがなくなり、加工時間の短縮を図ることができる。しかも、円滑な軸移動を確保できるので、高い加工精度を確保することができる。
第2実施形態
上述した第1実施形態は、加工プログラムの中からマクロプログラムを呼び出してその解析・実行をバックグラウンドで行うようにした実施形態であるが、この第2実施形態は、PLC34から指令してマクロプログラムのバックグラウンド処理を行うようにした実施の形態である。
上述した第1実施形態は、加工プログラムの中からマクロプログラムを呼び出してその解析・実行をバックグラウンドで行うようにした実施形態であるが、この第2実施形態は、PLC34から指令してマクロプログラムのバックグラウンド処理を行うようにした実施の形態である。
以下、図7を参照しながら、加工プログラムとマクロプログラムの解析処理の流れについて説明する。
図7において、左側のステップS30からステップS35までが加工プログラムを解析する処理を表し、右側のステップS50からステップS52までがバックグラウンドでのマクロプログラムの解析処理を表している。
図7において、左側のステップS30からステップS35までが加工プログラムを解析する処理を表し、右側のステップS50からステップS52までがバックグラウンドでのマクロプログラムの解析処理を表している。
図1のブロック図において、プログラム記憶域16に格納されている加工プログラムの中からプログラムを選択して、図8の加工プログラムを開く(ステップS30)。この図8の加工プログラムが図2の加工プログラムの違うのは、図2のブロックaが必要ないことである。続くステップS31では、加工プログラムの先頭から1ブロックずつ読み出してそのブロックの解析を実行する。
この第2実施形態では、PLC34からバックグラウンド指令をするため、図4のフローチャートとの大きな違いは、図4のフローチャートのステップS12とステップS13がないことにある。
ここでは、まず、読み出したブロックがワークを加工するときの軸移動等を指令するコードから構成されている場合について説明する。この場合は、ステップS32のNoを経てステップ34に進み、実行データ作成部20で処理できる形式のデータを作成する。そして、ステップS35のNoからステップ31に戻って、読み出したブロックが軸指令のブロックであれば、以上の処理が繰り返されることになる。
以上のようにして、加工プログラムを1ブロックずつ解析を続けていくと、その間にPLC34からバックグラウンドマクロ登録指令が与えられる場合がある。
この場合は、解析処理とは別のバックグラウンド処理において、PLC34と数値制御装置との間で信号をやりとりして、図3に示した「$MAC1」のマクロプログラムを解析するタスクを、バックグラウンドで処理する新規バックグラウンドタスクとして図5のタスク登録テーブルに登録する処理を行う。
ここで、図9は、PLC34からマクロプログラム名と、バックグラウンドマクロ登録指令を数値制御装置に渡す手順を表すタイミングチャートである。図10は、図1のブロック図におけるマクロ変数監視部30での処理であって、指定されたマクロプログラムをバックグラウンドタスクとして登録する際に、PLC34と数値制御装置の間で信号をやりとりする手順を詳細に示すフローチャートである。
図10では、左側にPLC34側の処理のフローを、右側に数値制御装置側の処理のフローを表している。
まず、PLC34側では、マクロプログラム名である$MAC1をセットしたマクロプログラム名信号EDを立ち上げるとともに、バックグラウンドマクロ起動信号ESTBをHレベルにして数値制御装置に送信する(ステップS41)。数制御装置側では、バックグラウンドマクロ起動信号ESTBをHレベルで受信していることが確認されてから(ステップS42のYes)、マクロプログラム「$MAC1」の読み込みが行われ、マクロプログラムの読取完了信号ERENDがHレベルに立ち上がってPLC34側に返信される(ステップS44)。
まず、PLC34側では、マクロプログラム名である$MAC1をセットしたマクロプログラム名信号EDを立ち上げるとともに、バックグラウンドマクロ起動信号ESTBをHレベルにして数値制御装置に送信する(ステップS41)。数制御装置側では、バックグラウンドマクロ起動信号ESTBをHレベルで受信していることが確認されてから(ステップS42のYes)、マクロプログラム「$MAC1」の読み込みが行われ、マクロプログラムの読取完了信号ERENDがHレベルに立ち上がってPLC34側に返信される(ステップS44)。
PLC34側では、マクロプログラムの読取完了信号ERENDがHレベルになってマクロプログラム「$MAC1」が読み込まれたことが確認され(ステップS43のYes)、バックグラウンドマクロ起動信号ESTBをLレベルにして数値制御装置側に返す(ステップS45)。数値制御装置側では、Lレベルのバックグラウンドマクロ起動信号ESTBを確認してから、読取完了信号ERENDをLレベルにして、マクロプログラムの読み取り処理が完了したことをPLC34側に通知する(ステップS48)。その後、図5に示したタスク登録テーブルには「$MAC1」のマクロプログラムを解析するタスクがバックグラウンドで処理するタスクXとして登録される(ステップS49)。他方、PLC34側では、読取完了の通知をLレベルの読取完了信号ERENDで受けると処理は終了する(ステップS47のYes)。
次に、図7のフローチャートに戻ると、右側に示すステップS50からステップS52がバックグラウンドタスクとして登録されたマクロプログラムの解析および実行のステップである。ステップS50では、タスク登録テーブルにマクロプログラム「$MAC1」を解析するバックグラウンド・サービスタスクが登録されていれば(ステップS50のYes)、ステップS51に進んで、バックグラウンドでマクロプログラム「$MAC1」の解析・実行するタスクXを処理していく。そして、計算結果がゼネラル変数V31、V32に格納されてマクロプログラムの解析・実行が終了する(ステップS52のYes)。
他方、マクロプログラムの解析・実行に並行して加工プログラムの解析・実行も行われている。図8に示した加工プログラムの実行がブロックcまで進行すると、このブロックcを読み出すと(ステップS31)、マクロプログラムの実行完了を確認するG173というコードが含まれているため、次のような処理が行われる。
すなわち、ステップS32のYesからステップS33に進むと、G173というコードがあるので、マクロプログラムの実行の完了を確認する。もし、マクロプログラムの実行が完了していなければ、コードPで指定された時間(5秒間)だけ待つ。コードPで指定された時間内にマクロプログラムの実行が完了していなければ異常とみなしてマクロプログラムの実行を止めることになる。
完了していれば、ステップS34、ステップS35を経てステップS31に進み、次のブロックであるブロックdを読み込み解析を行う。この時点では、バックグラウンドで処理していたマクロプログラム「$MAC1」による数値計算の最新結果のゼネラル変数V31、V32を利用して軸移動の実行データを作成することができる。
完了していれば、ステップS34、ステップS35を経てステップS31に進み、次のブロックであるブロックdを読み込み解析を行う。この時点では、バックグラウンドで処理していたマクロプログラム「$MAC1」による数値計算の最新結果のゼネラル変数V31、V32を利用して軸移動の実行データを作成することができる。
以上のようにして数値計算をするマクロプログラムの解析・実行をバックグラウンドで行っているため、マクロプログラムの解析・実行を加工プログラムの解析・実行と並行して行うことができる。
このように第2の実施形態によれば、バックグラウンドでマクロプログラムの解析、実行を行っており、第1実施形態と同様の効果があることに加えて、PLC34からプログラム名を指定して指令することにより、使いやすいマクロで記述した数値計算処理をPLC34から行えるので、従来のように、PLCの複雑なラダーシーケンスを駆使する必要がなくなるため、PLCによる数値計算処理を格段に簡素化することができる。
なお、以上説明した第2の実施形態では、図8の加工プログラム例にブロックcとしてバックグラウンドでマクロプログラムが完了しているかどうかを確認するブロックが挿入されているが、このブロックは必ずしも必要があるわけではなく、マクロプログラムが加工プログラムと無関係な指令だけであれば不要である。
10…加工プログラム、12…マクロプログラム、14…プログラム入力部、16…プログラム記憶域、18…加工プログラム解析部、20…実行データ作成部、22…各軸移動量指令部、24…サーボ制御部、26…マクロプログラム解析・実行部、32…オペレーションシステム部、34…プログラマブルロジックコントローラ
Claims (7)
- 工作機械の各軸の移動を加工プログラムの実行により制御する数値制御装置におけるマクロプログラムの実行方法であって、
前記マクロプログラムの解析・実行をバックグラウンド処理の中で行うタスクの一つとして登録し、
前記加工プログラムの実行による各軸の軸移動を行うための割り込み処理と並行して、前記マクロプログラムの解析・実行を前記バックグラウンド処理の中で行うことを特徴とする数値制御装置におけるマクロプログラムの実行方法。 - 前記マクロプログラムは、前記工作機械の軸移動を伴わない数値計算のマクロ演算のみを行うマクロプログラムであることを特徴とする請求項1に記載の数値制御装置におけるマクロプログラムの実行方法。
- 前記加工プログラムの中に組み入れたマクロ指令の実行により前記マクロプログラムをバックグラウンド処理のタスクとして登録することを特徴とする請求項1に記載の数値制御装置におけるマクロプログラムの実行方法。
- プログラマブルロジックコントローラから前記数値制御装置に送られるマクロ起動信号によって、前記マクロプログラムをバックグラウンド処理のタスクとして登録することを特徴とする請求項1に記載の数値制御装置におけるマクロプログラムの実行方法。
- 前記マクロプログラムの解析・実行処理の完了を確認してから、該マクロプログラムによる数値計算の結果を利用する加工プログラムのブロックを実行することを特徴とする請求項1乃至4のいずれかの項に記載の数値制御装置におけるマクロプログラムの実行方法。
- 工作機械の各軸の移動を加工プログラムの実行により制御する数値制御装置において、
前記加工プログラムを解析する解析部と、
前記加工プログラムの解析に基づいて工作機械の各軸の軸移動を割り込み処理して行う実行部と、
数値計算を行うマクロプログラムの解析および実行をするマクロプログラム解析・実行部と、
前記マクロプログラムの解析・実行をバックグラウンド処理の中で行うタスクの一つとして登録する手段と、
前記バックグラウンド処理として登録されたタスク実行のタスク管理を行う手段と、
を具備したことを特徴とする数値制御装置。 - 前記マクロプログラムをバックグラウンド処理のタスクとして登録するマクロ起動信号を前記数値制御装置に送るプログラマブルロジックコントローラを備えたことを特徴とする請求項6に記載の数値制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010189581A JP2012048471A (ja) | 2010-08-26 | 2010-08-26 | 数値制御装置およびマクロプログラム実行方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010189581A JP2012048471A (ja) | 2010-08-26 | 2010-08-26 | 数値制御装置およびマクロプログラム実行方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012048471A true JP2012048471A (ja) | 2012-03-08 |
Family
ID=45903267
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010189581A Withdrawn JP2012048471A (ja) | 2010-08-26 | 2010-08-26 | 数値制御装置およびマクロプログラム実行方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012048471A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102789208A (zh) * | 2011-05-18 | 2012-11-21 | 大连光洋科技工程有限公司 | 记录及利用操作信息的数控系统及其操作方法 |
CN109557890A (zh) * | 2017-09-26 | 2019-04-02 | 欧姆龙株式会社 | 控制装置 |
-
2010
- 2010-08-26 JP JP2010189581A patent/JP2012048471A/ja not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102789208A (zh) * | 2011-05-18 | 2012-11-21 | 大连光洋科技工程有限公司 | 记录及利用操作信息的数控系统及其操作方法 |
CN109557890A (zh) * | 2017-09-26 | 2019-04-02 | 欧姆龙株式会社 | 控制装置 |
CN109557890B (zh) * | 2017-09-26 | 2021-06-18 | 欧姆龙株式会社 | 控制装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5414948B1 (ja) | 数値制御装置 | |
KR101558832B1 (ko) | 시퀀스 프로그램 디버그 지원 장치 | |
EP1189123B1 (en) | Automatic programming and simulation apparatus | |
JP4329248B2 (ja) | Nc加工シミュレーション装置 | |
JP2012146109A (ja) | 工作機械の制御装置 | |
US11079735B2 (en) | Control system and method for operating a control system with real control and virtual control | |
JP6542710B2 (ja) | アラーム解決のためのプログラム修正支援機能を備えた数値制御装置 | |
JP2017102766A (ja) | 数値制御装置 | |
JP2008142788A (ja) | 動作プログラム作成支援方法および動作プログラム作成装置。 | |
JP2006031311A (ja) | ロボット制御装置及びロボットシステム | |
JP2012048471A (ja) | 数値制御装置およびマクロプログラム実行方法 | |
JP2010026920A (ja) | 加工プログラムの付加情報を表示する数値制御装置 | |
JP2020015143A (ja) | 工具管理システム、工具管理装置及び工具管理方法 | |
JP2023181497A (ja) | 情報処理方法、プログラム、記録媒体、情報処理装置、製造システム、および物品の製造方法 | |
JP5555422B2 (ja) | 数値制御装置及び数値制御方法 | |
JP6611227B2 (ja) | Nc機械制御システム | |
US11320800B2 (en) | Optimization device | |
US20170269574A1 (en) | Robot control device that controls robot to perform machining operation, and robot program generator | |
US10048678B2 (en) | Numerical controller | |
JP2010179388A (ja) | ロボット教示システム | |
JP3660038B2 (ja) | 数値制御装置 | |
JP2019075005A (ja) | 数値制御装置および工具経路決定方法 | |
KR20130110746A (ko) | 툴링 볼 위치보정 방법 | |
JP2013114425A (ja) | 数値制御装置 | |
EP3633471B1 (en) | Program development support device, program development support system, program development support method, and program development support program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20131105 |