(57)【特許請求の範囲】
【請求項１】
プログラム実行処理部と駆動処理部を備え、前記プログラム実行処理部はプログラムメモリに格納されたＮＣプログラム命令を逐次読み出して実行し、制御を行う数値制御装置において、実行すべきＮＣプログラム命令を前記プログラムメモリから読み出して解析する解析処理手段と、該ＮＣプログラム命令の処理をする命令処理手段と、前期解析したＮＣプログラム命令の内容によって割り込み周期を決定する割り込み周期決定手段と、前記割り込み周期決定手段で決定した割り込み周期で割り込み信号を発生し、前記命令処理手段に与える割り込み信号発生手段と、を有し、
前記命令処理手段は、前回起動したＮＣプログラム命令の処理が終了しているかを前記割り込み信号の発生時に確認する処理状況確認手段を備え、前記処理状況確認手段における確認の結果、前回起動したＮＣプログラム命令の処理が終了していない場合には該命令の処理を続行する一方、終了している場合には前記解析処理手段で解析した次のＮＣプログラム命令の処理を起動することを特徴とする数値制御装置。
【請求項２】
前記割り込み周期決定手段は、前記解析処理手段によりＮＣプログラム命令を解析した結果、該命令が軸移動を伴わない命令である場合には、軸移動を伴う命令である場合よりも割り込み周期を短い時間に決定することを特徴とする請求項１記載の数値制御装置。
【請求項３】
前記割り込み周期決定手段はＮＣプログラムの命令語と割り込み周期データとが対応して格納された割り込み周期テーブルを記憶し、前記解析処理手段による解析結果にもとづいて前記割り込み周期テーブルを参照して前記割り込み周期を決定することを特徴とする請求項１記載の数値制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はプログラムメモリに格納されたＮＣプログラム命令を逐次読み出して実行し、制御を行う数値制御装置に関する。
【０００２】
【従来の技術】
一般にＮＣプログラムに従って制御を行う数値制御装置が実行する処理は、▲１▼ＮＣプログラムの命令の内容を解析して実行するプログラム実行処理、▲２▼軸移動の軌跡を計算する補間演算及びサーボモータの速度指令演算を行う駆動処理、▲３▼外部の機器との通信を行う通信処理、に大別される。以下、この其々について説明する。
【０００３】
前記▲１▼のプログラム実行処理は一定の周期で発生する割り込み信号発生時に前回起動したＮＣプログラム命令の処理が終了しているかをチェックして、処理が終了していれば次に実行すべき命令をプログラムメモリから読み出して命令の内容を解析し、命令の処理を実行をする処理である。
【０００４】
前記ＮＣプログラムの命令は軸の移動を伴う軸移動命令と、変数データの算術演算や条件判断及びプログラム分岐などを行う論理演算命令に大別される。軸移動命令はサーボモータの回転により目標位置まで軸が移動することによって命令の処理が完了するので、通常、数ｍｓから数秒間の時間を要する。これに対し論理演算命令は数十から数百μｓで処理を完了できる。参考のため図１０にＮＣプログラムリストの例を示す。このプログラムリストにおいて、行頭に○を付したものが論理演算命令、●を付したものが軸移動命令である。
【０００５】
前記▲２▼の駆動処理はサーボモータを精度良く動作させるために必ず一定時間毎に行わなければならない処理であり、前記▲１▼のプログラム実行処理で使用する割り込み信号とは別の割り込み信号によって起動され、高い処理優先度が付与されている。
【０００６】
前記▲３▼の通信処理は外部の機器から数値制御装置の状態を読み出してモニタするための通信や、プログラマブルコントローラ等外部の制御機器との通信を行う処理である。この通信処理は前記▲１▼のプログラム実行処理や、前記▲２▼の駆動処理が行われていない時間に実行される。
【０００７】
【発明が解決しようとする課題】
近年の生産設備の高度化・複雑化に伴い、数値制御装置のＮＣプログラムにおいて、複雑な論理演算や条件判断によるプログラム分岐等の処理が頻繁に行われるようになり、先に説明した論理演算命令がより多く用いられるようになってきた。
【０００８】
また、従来より数値制御装置による設備制御の高速化が求められている。軸移動時間の短縮はサーボモータの高トルク化等により実現することができるが、ＮＣプログラムの論理演算命令の処理にかかる時間を短縮するには数値制御装置に搭載されたマイクロプロセッサ等のハードウェアの処理能力を増強しなければならず、これを行うにはコストが上がるという問題があった。
【０００９】
本発明はこのような点に鑑みてなされたものであり、数値制御装置のコスト上昇を伴うことなく、従来と同じハードウェアを使用しながらでもＮＣプログラムを高速に処理することができる数値制御装置を提供することを目的とする。
【００１０】
【課題を解決するための手段】
この目的を達成するために、請求項１記載の発明では、プログラム実行処理部において、実行すべきＮＣプログラム命令の内容によって割り込み信号が発生する周期を決定し、前記決定した割り込み発生周期で発生させた
割り込み信号の発生時に前回起動したＮＣプログラム命令の処理が終了しているかを確認し、終了している場合には次に実行すべきＮＣプログラム命令の処理を起動することとした。これにより、前回起動したＮＣプログラム命令の処理終了をＮＣプログラム命令の内容に応じた周期で確認し、命令の処理終了後、早期に次のＮＣプログラム命令処理を起動するようにする。
【００１２】
請求項２記載の発明ではＮＣプログラムの命令を解析した結果、該命令が軸移動を伴わない命令である場合には、軸移動を伴う命令である場合よりも前記割り込み信号が発生する周期を短くすることとした。これにより、比較的短時間で処理できる軸移動を伴わない命令の場合にはプログラム実行処理割り込み周期を短く設定することにより、次に実行すべき命令の起動をより早いタイミングで行う。
【００１３】
請求項３記載の発明ではＮＣプログラムの命令語と設定すべき割り込み周期データとが対応して格納された割り込み周期テーブルを記憶し、ＮＣプログラムの命令を解析した結果にもとづいて前記割り込み周期テーブルを参照し、前記割り込み信号が発生する周期を設定することとした。これにより、各命令語に適した割り込み信号発生周期を設定する。
【００１４】
次に、出願人が本発明を成すに到った経緯を説明する。出願人はまず従来技術の項で説明した▲１▼プログラム実行処理、▲２▼駆動処理及び▲３▼通信処理の其々の処理について、実際にどのようなタイミングで処理が行われているかを調査し、図１１に示するような結果を得た。この結果から論理演算命令については比較的短時間で処理が終了するものの、次の割り込みが発生してプログラム実行処理が起動されるまではＮＣプログラムの実行が先に進まないために、ＮＣプログラム実行時間が必要以上に長くなっていることが分かり、この点を改善すればＮＣプログラムの実行を高速化できるとの知見を得た。
【００１５】
しかし、単に前記割り込み信号が発生する周期を短く設定し、ＮＣプログラム命令の処理終了確認を高い頻度で実行するようにすれば、この処理の為にマイコンの処理能力の多くを占有し、他の処理実行の妨げになるという問題が発生してしまう。そこで、本発明の数値制御装置では、前記プログラム実行処理において、前回起動した命令処理の終了確認並びに次に行うべき命令処理を起動する処理を行うトリガとなる割り込み信号を発生させる周期をＮＣプログラム命令の内容に応じて随時変更することとしたのである。
【００１６】
【発明の実施の形態】
以下、本発明の第一の実施の形態を図面を参照しながら説明する。図１は本発明の数値制御装置１及びこれと接続された装置からなる設備制御システムの構成図である。
【００１７】
数値制御装置１は、モニタ装置２やプログラマブルコントローラ３との通信を行いながら、ユーザーが作成したＮＣプログラムに従って設備５の制御をすべく、サーボアンプ４に指令を送るものである。モニタ装置２は数値制御装置１の状態を通信により読み出し、ディスプレイに表示するものである。プログラマブルコントローラ３は数値制御装置１や、制御対象である設備５に組みつけられたリミットスイッチ５１やソレノイドバルブ５２等とのデータ交換を行いながら設備制御全体を統括する設備制御の中核コントローラである。サーボアンプ４は数値制御装置１の指令に基づき、設備５に組みつけられたサーボモータ５３を駆動するものである。一台の数値制御装置１に接続されるサーボアンプは一つのみの場合もあり、複数の場合もある。
【００１８】
図２は本発明の数値制御装置１の機能を示すブロック図である。この図はソフトウェアの処理過程を１つのブロックで表現したものである。数値制御装置が行う処理は▲１▼プログラム実行処理、▲２▼駆動処理、▲３▼通信処理に大別される。本発明の数値制御装置１は、▲１▼プログラム実行処理に係る構成要素として、割り込み信号発生部１０、処理状況確認部１１、プログラムメモリ１２、解析処理部１３、割り込み周期設定処理部１４、及び、命令処理部１５を備え、割り込み周期設定処理部１４はＮＣプログラムの命令語と割り込み周期データとを関連付ける割り込み周期テーブルを記憶している。▲２▼駆動処理に係るものとして駆動処理部１６及び駆動処理用割り込み信号発生部１７を備える。▲３▼通信処理に係るものとして通信処理部１８を備える。また、プログラマブルコントローラ３とデータ交換を行うＩ／Ｏデータやレジスタデータ、及び、数値制御装置１の内部処理で使用する変数データ等を記憶するデータメモリ１９を備える。
【００１９】
次に、▲１▼プログラム実行処理、▲２▼駆動処理、▲３▼通信処理のそれぞれについて、動作内容及び作用を説明する。
【００２０】
▲１▼プログラム実行処理について、図３から図５に示すフローチャートを用いて説明する。図３のフローチャートは割り込み信号発生部１０及び処理状況確認部１１の動作手順を示す。割り込み信号発生部１０は設定された割り込み周期Ｔ１で割り込み信号Ｉ１を出力するものであり、この割り込み周期は随時変更することができる。この割り込み信号Ｉ１により、処理状況確認部１１の処理を起動する。処理状況確認部１１は前回起動したＮＣプログラム命令の処理が終了しているかを確認し（ステップ１０）、終了していれば解析処理部１３に起動指示を行う（ステップ１１）。
【００２１】
図４のフローチャートは解析処理部１３、割り込み周期設定処理部１４、及び命令処理部１５の動作手順を示す。解析処理部１３はステップ１１の起動指示がされているかをチェックし（ステップ２０）、該起動指示がされていればユーザーが作成したＮＣプログラムを記憶するプログラムメモリ１２から１ブロック分のデータを読出し（ステップ２１）、その内容を解析する（ステップ２２）。解析した結果は割り込み周期決定部１４へ送られる。
【００２２】
割り込み周期決定部１４は、前記解析結果に基づいて割り込み周期テーブルを参照し、割り込み周期Ｔ１を決定する（ステップ２３）。
【００２３】
ここで、ステップ２３での割り込み周期Ｔ１を決定する手順を詳細に説明する。割り込み周期テーブルは図６に示すように、命令語を配列変数Ｃ（）に、これに対応する割り込み周期を配列変数Ｄ（）に記憶している。この割り込み周期は命令語毎の処理時間を考慮して、短時間で処理可能な命令については、処理に長時間を要する命令よりも比較的短い割り込み周期が設定されている。軸移動を伴わない命令は一般に軸移動を伴う命令よりも命令処理に掛かる時間が短いので、比較的短い割り込み周期が設定されている。なお、図６のｎ＝１，２，３，１０１，１０２，１０３の各命令語は図１０のプログラムリストの命令、（１），（２），（３），（１０１），（１０２），（１０３）に其々該当する。
【００２４】
割り込み周期Ｔ１を決定する手順について、図５のフローチャートにより説明する。変数Ｃ（０）に前記解析結果から抽出した命令語を代入し（ステップ３０）、整数ｎを１に初期化する（ステップ３１）。Ｃ（ｎ）で示される命令語がＣ（０）に一致するかを判定し（ステップ３２）、一致していなければｎをインクリメントする（ステップ３３）。一致していればそのときのｎにより示される割り込み周期Ｄ（ｎ）を割り込み周期Ｔ１として決定する（ステップ３４）。決定した割り込み周期Ｔ１は命令処理部１５へ送られる。
【００２５】
なお、図５に示すフローチャートは実際に装置に組み込む際に必要なエラー処理等は含まれていない。装置に組み込む際には、解析結果から抽出した命令語に一致する命令語が割り込み周期テーブル内に無かった場合にエラー情報を出力したり、適当な割り込み周期を設定する等の処理が必要である。また、Ｃ（０）及びＣ（ｎ）に代入される命令語のデータは、命令語そのものの文字データをキャラクターコードで示すものでも良いし、コマンドコードによるものでもよい。
【００２６】
命令処理部１５は前記ステップ２３で決定した割り込み周期Ｔ１を割り込み信号発生部１０に設定し（ステップ２４）、前記解析したブロックの命令の処理を実行する（ステップ２５）。ここで処理される命令は、軸の移動を伴う軸移動命令と、変数データの算術演算や条件判断及びプログラム分岐などを行う論理演算命令に大別される。軸移動を伴うものであれば駆動処理部１６に軸移動の指示をする。これらの処理が終了したら次の起動指示があるまで待機する（ステップ２０）。以上が▲１▼プログラム実行処理の動作手順である。
【００２７】
次に▲２▼駆動処理について説明する。命令処理部１５による駆動処理部１６への軸移動指示は、位置決め座標や速度、移動時間などの指定を伴って行われる。駆動処理部１６はこの指示内容に従ってサーボアンプ４に指令を送り、サーボモータ５３の動作を制御するものである。
【００２８】
駆動処理部１６での処理は駆動処理用割り込み信号発生部１７からの割り込み信号Ｉ２が発生する度に起動する。駆動処理部１６での処理はサーボモータを精度よく制御するために一定周期で行わなければならない処理であり、最も高い優先度が与えられているので、他の処理の実行中でもこれに割り込んで処理を行う。
【００２９】
▲３▼通信処理は通信処理部１８によって行われる。通信処理部１８はモニタ装置２からの通信によるデータ読み出し／書き込みコマンドを受信してこれに対するレスポンスを送信する処理や、プログラマブルコントローラ３とのデータ交換を行うものである。これらの処理は上記▲１▼のプログラム実行処理や、▲２▼の駆動処理が行われていない時間に実行される。
【００３０】
以上説明した動作手順により、プログラム実行処理部において、割り込み周期テーブルにおいて命令語毎に定義された割り込み周期で割り込み信号を発生し、この割り込み信号の発生時に前回起動したＮＣプログラム命令の処理が終了しているかをチェックし、終了していれば次に実行すべきＮＣプログラム命令の処理を起動する。割り込み周期テーブルに定義された割り込み周期は命令語毎の処理時間を考慮して適当な値が定義されているので、命令の処理終了後、次の命令が起動されるまでのアイドル時間を短くすることが可能となり、この結果ＮＣプログラムの処理時間を短縮できる。
【００３１】
また、この手順を実施するにあたり、電子部品の追加等は伴わないので、数値制御装置のコスト上昇を伴うことなく、従来と同じハードウェアを使用しながらでもＮＣプログラムを高速に処理することができる。
【００３２】
図７に本発明を実施した場合の駆動処理及びプログラム実行処理のタイミング図を示す。この例では論理演算命令を実行する場合の割り込み時間Ｔ１を従来の四分の一から三分の一程度に短くしている。この結果、一回の命令処理に実質的に掛かる時間（図７の斜線網掛け部分の長さに相当）は変わっていないにも拘わらず、命令の処理が終了してから次の命令が起動されるまでのアイドル時間が大幅に短くなることにより、同じ時間内により多くの命令の処理をすることが可能となる。このことは従来の処理方法によるタイミング図である図１１と比較すれば一目瞭然である。
【００３３】
次に第二の実施の形態について説明する。第二の実施の形態は、論理演算命令と軸移動命令では命令処理に掛かる時間に大きな開きがあることに着目して、論理演算命令を処理する場合には、軸移動命令を処理する場合よりも割り込み周期を短く設定することとしたものであり、これ以外の部分については第一の実施の形態と同様である。
【００３４】
第二の実施の形態における割り込み周期決定部１４は、第一の実施の形態における割り込み周期テーブルに変えて、各命令語が軸移動命令，論理演算命令の何れに属するかを判定するための命令判定テーブルを記憶する。この命令判定テーブルは図８に示すようなものである。
【００３５】
第二の実施の形態では、図４ステップ２４の割り込み周期Ｔ１決定手順の詳細が図９のフローチャートに示すようになる。ステップ４０では解析処理部１３の解析結果から抽出した命令語が図８の命令判定テーブルに定義された軸移動命令のいずれかに該当するか否かによって該命令語が軸移動命令かを判断する。軸移動命令である場合はステップ４１にて割り込み周期を４ｍｓに決定する。一方、軸移動命令でない場合はステップ４２にて該命令語が命令判定テーブルに定義された論理演算命令のいずれかに該当するか否かによって該命令語が論理演算命令であるかを判断する。論理演算命令である場合はステップ４３にて割り込み周期を２００μｓに決定する。軸移動命令，論理演算命令の何れにも該当しなかった場合は必要なエラー処理を行う。なお、ステップ４１またはステップ４３において決定する割り込周期Ｔ１の値（４ｍｓ又は２００μｓ）は装置の処理能力に合わせて適当な値にすべきことはいうまでもない。
【００３６】
以上説明した第二の実施の形態によれば、より簡単な手順によって割り込み時間Ｔ１を決定することができるとともに、第一の実施の形態と同様の効果がある。
【００３７】
なお、解析処理部１３で行うＮＣプログラム命令の読み出し・解析処理、及び、割り込み周期決定部１４で行う割り込み周期Ｔ１を決定する処理は、処理状況確認部１１において前回起動したＮＣプログラム命令の処理が終了していることが確認された時に行うものでも良いし、予めＮＣプログラム命令の処理と並行して行っておくものでもよい。予めこれらの処理を行っておく場合は決定した割り込み周期Ｔ１を一時記憶し、次の命令の処理開始時に割り込み信号発生部１０に該記憶した割り込み周期Ｔ１を設定する処理などが必要である。
【００３８】
【発明の効果】
以上述べたように、本発明によれば、プログラム実行処理部において、実行すべきＮＣプログラム命令の内容に応じた周期で発生する割り込み信号によりＮＣプログラム命令の処理を行うこととしたので、ＮＣプログラム命令処理を行うタイミングを最適化できる。このため、数値制御装置のコスト上昇を伴うことなく、従来と同じハードウェアを使用しながらでもＮＣプログラムを高速に処理できる。
【００３９】
【図面の簡単な説明】
【図１】本発明の実施の形態における制御システムの構成図である。
【図２】本発明の実施の形態における数値制御装置の機能を示すブロック図である。
【図３】本発明の実施の形態における解析処理を起動するためのフローチャートである。
【図４】本発明の実施の形態における命令処理のためのフローチャートである。
【図５】本発明の第一の実施の形態における割り込み周期を決定するためのフローチャートである。
【図６】本発明の第一の実施の形態における割り込み周期テーブルの説明図である。
【図７】本発明を実施した場合の処理タイムチャートである。
【図８】本発明の第二の実施の形態における命令判定テーブルの説明図である。
【図９】本発明の第二の実施の形態における割り込み周期を決定するためのフローチャートである。
【図１０】ＮＣプログラムリストの一例を示す説明図である。
【図１１】従来の技術における処理タイムチャートである。
【符号の説明】
１    数値制御装置
２    モニタ装置
３    プログラマブルコントローラ
４    サーボアンプ
５    制御対象設備
１０  割り込み信号発生部
１１  処理状況確認部
１２  プログラムメモリ
１３  処理解析部
１４  割り込み周期設定処理部
１５  命令処理部
１６  駆動処理部
１７  駆動処理用割り込み信号発生部
１８  通信処理部
１９  データメモリ
【図１】
0003743335.tif 000002
【図２】
0003743335.tif 000003
【図３】
0003743335.tif 000004
【図４】
0003743335.tif 000005
【図５】
0003743335.tif 000006
【図６】
0003743335.tif 000007
【図７】
0003743335.tif 000008
【図８】
0003743335.tif 000009
【図９】
0003743335.tif 000010
【図１０】
0003743335.tif 000011
【図１１】
0003743335.tif 000012