(57)【要約】【課題】複雑なオプション機能が必要となる場合においてもメモリを効率良く利用してプロセスを実行することができる制御装置を提供すること。【解決手段】本発明の制御装置１は、ＮＣプログラム２００から先読みされたブロック及び機械の機械構成に基づいて、ＮＣプログラム２００のブロックにおいて必要となるプロセスの判定を行う制御指令内容判定部１２０と、制御指令内容判定部１２０における判定に基づき、必要となるプロセスの取得及びメモリ上への展開と、不要となるプロセスのメモリからの解放の計画を決定する活用計画決定部１３０と、活用計画決定部１３０が決定した計画に基づいて、必要となるプロセス取得するプロセス取得部１４０と、活用計画決定部１３０が決定した計画に基づいて、プロセスのメモリへ展開と、不要となるプロセスのメモリからの解放を実行するメモリ管理部１５０と、を備える。【選択図】図２
2020184169.tif 000002
【特許請求の範囲】
【請求項１】
機械を制御するためのＮＣプログラムのブロックによる指令を解析及び実行をする複数のプロセスを管理する制御装置において、
前記ＮＣプログラムから先読みされたブロック及び前記機械の機械構成に基づいて、前記ＮＣプログラムのブロックにおいて必要となるプロセスの判定を行う制御指令内容判定部と、
前記制御指令内容判定部における前記判定に基づき、必要となるプロセスの取得及びメモリ上への展開と、不要となるプロセスのメモリからの解放の計画を決定する活用計画決定部と、
前記活用計画決定部が決定した計画に基づいて、必要となるプロセスを取得するプロセス取得部と、
前記活用計画決定部が決定した計画に基づいて、前記プロセス取得部が取得したプロセスのメモリへの展開と、不要となるプロセスのメモリからの解放を実行するメモリ管理部と、
を備えた制御装置。
【請求項２】
前記活用計画決定部は、あるブロックが必要とするプロセスを、あるブロックの予め定めた余裕ブロック数前の他のブロックが実行されるタイミングで、取得及びメモリ上への展開をするように計画する、
請求項１に記載の制御装置。
【請求項３】
前記活用計画決定部は、メモリに展開されている所定のプロセスが予め定めた経過ブロック数だけ呼び出されない場合に、該プロセスを不要となるプロセスとしてメモリから解放するように計画する、
請求項１に記載の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置に関し、特に効率よくメモリを活用できる制御装置に関する。
【背景技術】
【０００２】
従来、旋盤、研削盤、マシニングセンタなどの多種の工作機械において、多様化する用途、目的に応じて、さまざまな機能を実現するためのプロセスが開発され、個々の工作機械に拡張的に搭載されてきた。本発明においてプロセスとは、制御システムを構成する上位サーバや制御装置において、ＮＣプログラムの解析や実行、システムの管理、ユーザの作業支援を行うために実行されるシステム・プログラムの実行単位のことを意味する。プロセスの例としては、事前にＮＣプログラムから実行形式データを生成する前処理プロセスや、加工に関する基本的な情報を表示するための基本画面プロセス、工作機械に取り付けられている工具を管理するための工具管理プロセス等が挙げられる。
【０００３】
汎用的な工作機械に、こうした様々なプロセスを追加的に搭載することにより、これらプロセスを展開するための大容量メモリと、これらプロセスを実行するための高性能ＣＰＵを搭載する必要があり、工作機械のコストが上がる原因となっていた。また、複数の工作機械を用いて加工を行う際に、たとえ同一の設定をする場合であっても作業者はそれぞれの工作機械の画面を見ながら入力装置を操作して設定をする必要があるため、これが作業効率低下の原因の一つとなっていた。
【０００４】
一方で、近年ではネットワーク技術の発展により、工場の工作機械をホストコンピュータやセルコントローラといった上位サーバに接続し、サーバからの加工指示や、制御命令に従って稼動するシステムが増えている。また、クラウドシステムのように、サーバ上でプロセスを実行し、その結果を工作機械で利用する形態もある。
【０００５】
こうした中、特許文献１により、複数の工作機械の運転に必要とされるプロセスを、上位サーバと工作機械とのどちらで実行するのがシステム全体として効率がよいのかを決定するプロセス実行環境決定機構を上位サーバ上に設け、該プロセス実行環境決定機構が生産計画装置などから入力された情報に基づいて、各プロセスの最適な実行環境を決定する技術が提供された。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１９−０３６０２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
工作機械の運転に必要とされる各々のプロセスの実行環境が決定され、各々の工作機械の運転を開始する場合、工作機械を実行環境とするプロセスについては、自動運転が開始される前に上位サーバから工作機械に取得する。しかしながら、例えばある工作機械において多くの複雑なオプション機能が必要となる加工を行う場合には、そのオプション機能を提供するために必要とされるプロセスを全て予め取得しておく必要がある。この様な場合、当該工作機械には高性能ＣＰＵや大容量メモリが必要となる。このように、工作機械で行われる加工内容によっては、プロセス単位で実行環境を決定することによる効果が見込めない場合がある。
そこで、複雑なオプション機能が必要となる場合においてもメモリを効率良く利用してプロセスを実行することができる制御装置が望まれている。
【課題を解決するための手段】
【０００８】
本発明の一態様による制御装置は、自動運転中に、必要なプロセスの取得と不要になったプロセスの解放を動的に行い、小容量のメモリを効率的に使用できるような運用方法を決定することで、上記課題を解決する。
【０００９】
そして、本発明の一態様は、機械を制御するためのＮＣプログラムのブロックによる指令を解析及び実行をする複数のプロセスを管理する制御装置において、前記ＮＣプログラムから先読みされたブロック及び前記機械の機械構成に基づいて、前記ＮＣプログラムのブロックにおいて必要となるプロセスの判定を行う制御指令内容判定部と、前記制御指令内容判定部における前記判定に基づき、必要となるプロセスの取得及びメモリ上への展開と、不要となるプロセスのメモリからの解放の計画を決定する活用計画決定部と、前記活用計画決定部が決定した計画に基づいて、必要となるプロセスを取得するプロセス取得部と、前記活用計画決定部が決定した計画に基づいて、前記プロセス取得部が取得したプロセスのメモリへの展開と、不要となるプロセスのメモリからの解放を実行するメモリ管理部と、を備えた制御装置である。
【発明の効果】
【００１０】
本発明の一態様によれば、多くの複雑なオプション機能が必要となる加工を行う場合においても、小容量のメモリを効率的に使用して、多くのプロセスを実行することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】一実施形態による制御装置の要部を示すハードウェア構成図である。
【図２】一実施形態による制御装置の概略的な機能ブロック図である。
【図３】必要となるプロセスの判定に用いるテーブルを例示する図である。
【図４】活用計画決定部により決定される活用計画の例を示す図である。
【図５】プロセス取得先設定テーブルの例を示す図である。
【図６】プロセス取得優先テーブルの例を示す図である。
【図７】プロセス解放優先テーブルの例を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態を図面と共に説明する。
図１は本発明の一実施形態による制御装置の要部を示す概略的なハードウェア構成図である。本発明の制御装置１は、例えばＮＣプログラムに基づいて工作機械等の産業機械を制御する制御装置として実装することができる。
【００１３】
本実施形態による制御装置１が備えるＣＰＵ１１は、制御装置１を全体的に制御するプロセッサである。ＣＰＵ１１は、ＲＯＭ１２に格納されたシステム・プログラムや、ネットワークを介して上位サーバ等のプロセス保管場所から取得したシステム・プログラムをバス２０を介して読み出し、該システム・プログラムに従って制御装置１全体を制御する。ＲＡＭ１３には一時的な計算データや表示データ、及び外部から入力された各データ等が一時的に格納される。
【００１４】
不揮発性メモリ１４は、例えば図示しないバッテリでバックアップされたメモリやＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等で構成され、制御装置１の電源がオフされても記憶状態が保持される。不揮発性メモリ１４には、インタフェース１５を介して外部機器７２から読み込まれたＮＣプログラムやラダープログラム、表示器／ＭＤＩユニット７０を介して入力されたＮＣプログラムやラダープログラム等が記憶される。不揮発性メモリ１４に記憶された各プログラムや各データは、実行時／利用時にはＲＡＭ１３に展開されても良い。また、ＮＣプログラム等の実行やシステムの管理、作業者の支援のために必要とされるプロセスは、主としてＲＡＭ１３上に展開される。
【００１５】
インタフェース１５は、制御装置１のＣＰＵ１１とＵＳＢ装置等の外部機器７２と接続するためのインタフェースである。外部機器７２側からは工作機械の制御に用いられるＮＣプログラムやラダープログラムや各パラメータ等が読み込まれる。また、制御装置１内で編集したＮＣプログラムやラダープログラムや各パラメータ等は、外部機器７２を介して外部記憶手段に記憶させることができる。ＰＭＣ（プログラマブル・マシン・コントローラ）１６は、ラダープログラムを実行して工作機械及び該工作機械の周辺装置（例えば、工具交換装置や、ロボット等のアクチュエータ、工作機械に取付けられているセンサ等）にＩ／Ｏユニット１７を介して信号を出力し制御する。また、工作機械の本体に配備された操作盤の各種スイッチや周辺装置等の信号を受け、必要な信号処理をした後、ＣＰＵ１１に渡す。
【００１６】
表示器／ＭＤＩユニット７０はタッチパネルとしての機能を備えたディスプレイやキーボード等を備えた手動データ入力装置であり、インタフェース１８は表示器／ＭＤＩユニット７０のキーボードやタッチパネルからの入力を受けてＣＰＵ１１に渡す。インタフェース１９は各軸を手動で駆動させる際に用いる手動パルス発生器等を備えた操作盤７１に接続されている。
【００１７】
制御装置１は、インタフェース２１を介して有線／無線のネットワーク７と接続されている。ネットワーク７には、少なくとも１つの上位サーバ５が接続され、制御装置１との間で相互にデータのやり取りを行っている。
【００１８】
工作機械が備える軸を制御するための軸制御回路３０はＣＰＵ１１からの軸の移動指令量を受けて、軸の指令をサーボアンプ４０に出力する。サーボアンプ４０はこの指令を受けて、工作機械が備える軸を移動させるサーボモータ５０を駆動する。軸のサーボモータ５０は位置・速度検出器を内蔵し、この位置・速度検出器からの位置・速度フィードバック信号を軸制御回路３０にフィードバックし、位置・速度のフィードバック制御を行う。なお、図１のハードウェア構成図では軸制御回路３０、サーボアンプ４０、サーボモータ５０は１つずつしか示されていないが、実際には制御対象となる工作機械に備えられた軸の数だけ用意される。
【００１９】
スピンドル制御回路６０は、主軸回転指令を受け、スピンドルアンプ６１にスピンドル速度信号を出力する。スピンドルアンプ６１はこのスピンドル速度信号を受けて、工作機械のスピンドルモータ６２を指令された回転速度で回転させ、工具を駆動する。スピンドルモータ６２にはポジションコーダ６３が結合され、ポジションコーダ６３が主軸の回転に同期して帰還パルスを出力し、その帰還パルスはＣＰＵ１１によって読み取られる。
【００２０】
図２は、本発明の第１実施形態による制御装置１の概略的な機能ブロック図である。図２に示した各機能ブロックは、図１に示した制御装置１が備えるＣＰＵ１１がシステム・プログラムを実行し、制御装置１の各部の動作を制御することにより実現される。
【００２１】
本実施形態の制御装置１は、先読み部１００、制御部１１０、制御指令内容判定部１２０、活用計画決定部１３０、プロセス取得部１４０、メモリ管理部１５０を備える。制御装置１の不揮発性メモリ１４上には、工作機械２を制御するための数値制御指令が含まれるＮＣプログラム２００が予め記憶されている。
【００２２】
先読み部１００は、図１に示した制御装置１が備えるＣＰＵ１１がＲＯＭ１２から読み出したシステム・プログラムを実行し、主としてＣＰＵ１１によるＲＡＭ１３、不揮発性メモリ１４を用いた演算処理が行われることで実現される。先読み部１００は、ＮＣプログラム２００のブロックを先読みする機能手段である。先読み部が先読みしたブロックに係る情報は、制御部１１０による工作機械２の制御に用いられると共に、制御指令内容判定部１２０による制御指令の内容の判定に用いられる。
【００２３】
制御部１１０は、図１に示した制御装置１が備えるＣＰＵ１１がＲＯＭ１２から読み出したシステム・プログラムを実行し、主としてＣＰＵ１１によるＲＡＭ１３、不揮発性メモリ１４を用いた演算処理と、軸制御回路、スピンドル制御回路、ＰＭＣを用いた工作機械の各部の制御処理、インタフェース１８，１９を介した入出力処理が行われることで実現される。制御部１１０は、先読み部１００が先読みしたＮＣプログラム２００のブロックを解析し、その解析結果に基づいて工作機械２の各部を制御する機能手段である。制御部１１０は、ＲＡＭ１３上に配置されるプロセスを呼び出すことで、先読みされたブロックの解析及び解析された指令の実行を行う。制御部１１０は、例えば先読みされたブロックを解析するためにＲＡＭ１３上に展開された前処理プロセスを呼び出し、該プロセスによるブロックの解析を実行する。制御部１１０は、例えば先読みされたブロックが工作機械２の各軸を駆動させるように指令している場合には、ＲＡＭ１３上に展開された基本軸制御プロセスを呼び出し、制御周期毎に軸角度の変化量としての指令データを生成してサーボモータ５０やスピンドルモータ６２に対して出力する。また、制御部１１０は、例えば先読みされたブロックが工作機械２の取り付けられた周辺装置を動作させるように指令している場合には、ＲＡＭ１３上に展開された該周辺装置に係るプロセスを呼び出し、該周辺装置を動作させる所定の信号を生成してＰＭＣ１６に出力する。この様に、制御部１１０は、工作機械２の各部を動作させるために必要とされる機能を、ＲＡＭ１３上に展開されたプロセスを呼び出すことにより実行する。制御部１１０は、先読みされたブロックによる指令を行うために必要とされるプロセスがＲＡＭ１３上に展開されていない場合には、該プロセスが展開されるまで先読みされたブロックによる指令の実行を待ち、プロセスが展開された時点で該指令の実行を開始する。この時、制御部１１０は、予め定めた所定時間だけ待った段階で必要とされるプロセスがＲＡＭ１３上に展開されない場合には、アラートを出力するようにしても良い。
【００２４】
制御指令内容判定部１２０は、図１に示した制御装置１が備えるＣＰＵ１１がＲＯＭ１２から読み出したシステム・プログラムを実行し、主としてＣＰＵ１１によるＲＡＭ１３、不揮発性メモリ１４を用いた演算処理が行われることで実現される。制御指令内容判定部１２０は、先読み部１００により先読みされたＮＣプログラムのブロックや、制御対象となる工作機械２の機械構成等の情報に基づいて、先読みされた各ブロックで必要になるプロセスの判定を行う機能手段である。制御指令内容判定部１２０は、ＮＣプログラム２００から先読みされたブロックによる移動指令の種類や動作モードの種類、工作機械の機械構成に基づいて、ＮＣプログラム２００の各ブロックにおいていずれの機能が必要とされるのかを判定する。制御装置１の不揮発性メモリ１４の設定領域には、例えば図３に例示されるように、工作機械の機械構成や数値制御指令の種類に関連付けて、必要となるプロセスが設定されている。制御指令内容判定部１２０は、この様な設定と、工作機械の機械構成、及び先読みされたＮＣプログラムの各ブロックを突き合わせて、いずれのブロックにおいてどの様なプロセスが必要であるのかを判定するようにしても良い。
【００２５】
活用計画決定部１３０は、図１に示した制御装置１が備えるＣＰＵ１１がＲＯＭ１２から読み出したシステム・プログラムを実行し、主としてＣＰＵ１１によるＲＡＭ１３、不揮発性メモリ１４を用いた演算処理が行われることで実現される。活用計画決定部１３０は、制御指令内容判定部１２０による判定に基づいて、ＮＣプログラム２００の実行中のどのタイミングで必要となるプロセスの取得を行い、どのタイミングで不要となったプロセスの解放をするのかを示す活用計画を決定する機能手段である。活用計画決定部１３０は、ＮＣプログラム２００内のブロックにおいて、所定のプロセスが必要となる指令が最初に現れたブロックが実行される前に、該プロセスを取得してＲＡＭ１３上に展開するように活用計画を決定する。また、活用計画決定部１３０は、ＮＣプログラム２００内のブロックにおいて、所定のプロセスが必要となる指令があるブロック以降に出現しない場合、該プロセスを必要とする指令が最後に現れた次のブロックが実行された後に、該プロセスをＲＡＭ１３上から解放する様に活用計画を決定する。
【００２６】
活用計画決定部１３０が決定する活用計画は、所定のプロセスが必要となるブロックが実行されるタイミングにおいて、該プロセスがＲＡＭ１３上に展開されているように決定されることが望ましい。この様な目的のために、活用計画決定部１３０は、ブロックが先読みされて、該ブロックについて制御指令内容判定部１２０が必要となるプロセスを判定したタイミングにおいて、ＲＡＭ１３のメモリ領域が十分に空いている場合には、該プロセスを即取得してＲＡＭ１３上に展開するように活用計画を決定するようにしても良い。また、活用計画決定部１３０は、先読みされたブロックにおいて活用計画決定部１３０は、所定のプロセスが必要となるブロックの、予め定めた余裕ブロック数前のブロックが実行されるタイミングで、該プロセスを取得してＲＡＭ１３上に展開するように活用計画を決定するようにしても良い。
【００２７】
活用計画決定部１３０が決定する活用計画は、ＮＣプログラムの実行に利用されない所定のプロセスが効率よくＲＡＭ１３上から解放されるように決定されることが望ましい。この様な目的のために、活用計画決定部１３０は、ＮＣプログラム２００内のブロックにおいて、所定のプロセスが必要となる指令が予め定めた所定の経過ブロック数出現しない場合に、該プロセスをＲＡＭ１３上から解放する様に活用計画を決定するようにしても良い。
【００２８】
図４は、活用計画決定部１３０が決定する活用計画の例を示す図である。なお、図４では、説明を簡単にするために、活用計画決定部１３０が、前処理プロセス、基本軸制御プロセス、同時５軸制御プロセス、穴あけサイクルプロセスについて、その取得と解放のタイミングを決定する例を説明する。図４に示されたＮＣプログラムには、Ｎ１４００ブロックにおいて同時５軸制御プロセスを必要とする指令が現れ、Ｎ２１００ブロック以降においては同時５軸制御プロセスを必要とする指令が出現しないものとする。また、Ｎ２６５０ブロック以降のブロックには、穴あけサイクルを指令するブロックが含まれている。この様なＮＣプログラムを実行する場合、活用計画決定部１３０は、ＮＣプログラムの実行が開始されると、先読みされたブロックに対する制御指令内容判定部１２０の判定に基づいて、全ての指令の処理に必要とされる前処理プロセスと、Ｎ０００１ブロック以降での送り指令の実行に必要とされる基本軸制御プロセスとを取得してＲＡＭ１３上に展開するように計画する。また、活用計画決定部１３０は、Ｎ１４００ブロック以降に現れる同時５軸制御に係る指令により必要とされる同時５軸制御プロセスを、Ｎ１４００ブロックが実行されるまでに取得してＲＡＭ１３上に展開するように活用計画を決定する。その後、活用計画決定部１３０は、Ｎ２１１０ブロック以降において同時５軸制御プロセスを必要とする指令が現れないと判定した時点で、同時５軸制御プロセスをＲＡＭ１３上から解放するように活用計画を決定する。最後に、活用計画決定部１３０は、Ｎ２６５０ブロック以降に現れる穴あけサイクル指令により必要とされる穴あけサイクルプロセスを、Ｎ２６５０ブロックが実行されるまでに取得してＲＡＭ１３上に展開するように活用計画を決定する。
【００２９】
プロセス取得部１４０は、図１に示した制御装置１が備えるＣＰＵ１１がＲＯＭ１２から読み出したシステム・プログラムを実行し、主としてＣＰＵ１１によるＲＯＭ１２、ＲＡＭ１３、不揮発性メモリ１４を用いた演算処理、インタフェース１５を介した入力処理、インタフェース２１を介した通信処理等が行われることで実現される。プロセス取得部１４０は、ＮＣプログラム２００のブロックによる指令の実行に必要とされるプロセスを取得する機能手段である。プロセス取得部１４０は、活用計画決定部１３０が決定した活用計画に従って、ネットワーク７を介して上位サーバ５等のプロセス保管場所からプロセスを取得する。プロセス取得部１４０は、必要なプロセスをＲＯＭ１２や不揮発性メモリ１４から読み出して取得するようにしても良い。また、プロセス取得部１４０は、必要なプロセスを外部機器７２から読み出して取得するようにしても良い。制御装置１の不揮発性メモリの設定領域には、例えば図５に例示されるように、それぞれのプロセスの取得先を設定するプロセス取得先設定テーブルが予め記憶されており、プロセス取得部１４０は、このプロセス取得先設定テーブルを参照して、各プロセスの取得先を決定するようにすれば良い。
【００３０】
メモリ管理部１５０は、図１に示した制御装置１が備えるＣＰＵ１１がＲＯＭ１２から読み出したシステム・プログラムを実行し、主としてＣＰＵ１１によるＲＡＭ１３、不揮発性メモリ１４を用いた演算処理が行われることで実現される。メモリ管理部１５０は、ＲＡＭ１３上に展開されるプロセスを管理する機能手段である。メモリ管理部１５０は、プロセス取得部１４０が取得したプロセスをＲＡＭ１３上へ展開する。また、メモリ管理部１５０は、活用計画決定部１３０が決定した活用計画に従って、ＲＡＭ１３上に展開されているプロセスを解放する。
【００３１】
上記構成を備えた制御装置１では、ＮＣプログラム２００の自動運転中に、先読みしたブロックを解析して、工作機械の制御等に必要とされるプロセスを必要なタイミングでメモリ上へと展開し、不要なプロセスは適宜メモリ上から解放する。そのため、制御装置１では、工作機械の自動運転中に、ＮＣプログラム２００のブロックによる指令や工作機械の機械構成等に基づいて、必要となるプロセスの動的な取得／解放のタイミングを行うことができる。ユーザは、ＮＣプログラム２００内に、プロセスの取得／解放の指令を明記しなくとも、自動的に必要となるプロセスの取得／解放が行われる。
【００３２】
本実施形態による制御装置１の一変形例として、活用計画決定部１３０は、プロセスを取得してＲＡＭ１３上に展開する優先順位を登録するためのプロセス取得優先テーブルを用いて活用計画を決定するようにしても良い。
【００３３】
図６は、プロセス取得優先テーブルの例を示す図である。プロセス取得優先テーブルは、例えば取得対象となるプロセスと、該プロセスの取得の優先順位とを関連付けたテーブルとして定義できる。プロセス取得優先テーブルは、ＮＣプログラム２００の実行開始時には空のテーブルとして用意される。ＮＣプログラム２００が実行されて、先読み部１００によるブロックの先読みが行われ、制御指令内容判定部１２０による必要なプロセスの判定が行われると、活用計画決定部１３０は、先読みされたブロックの順番で優先順位を付けてプロセス取得優先テーブルに登録する。プロセス取得部１４０は、プロセス取得優先テーブルに取得対象プロセスが登録されると、優先順位の高い順にプロセスの取得を実行し、取得したプロセスがＲＡＭ１３上に展開されると、該プロセスをプロセス取得優先テーブルから削除し、他のプロセスの優先順位を繰り上げる。プロセス取得部１４０及びメモリ管理部１５０は、現在のＲＡＭ１３に空きがある限りプロセスの取得及びＲＡＭ１３上への展開を行う。そして、ＲＡＭ１３に空きが無い場合は、取得優先テーブルを保持したまま、ＲＡＭ１３に空きができるまでプロセスの取得及び展開を保留する。本実施例のプロセス取得優先テーブルは、通信速度が遅い環境等で上位サーバからプロセスの取得が即時に行えない場合や、次に取得するべきプロセスを展開するための十分な空き容量が一時的にＲＡＭ１３に無い場合等に用いると有効である。
【００３４】
本実施形態による制御装置１の他の変形例として、活用計画決定部１３０は、プロセスをＲＡＭ１３上から解放する優先順位を登録するためのプロセス解放優先テーブルを用いて活用計画を決定するようにしても良い。
【００３５】
図７は、プロセス解放優先テーブルの例を示す図である。プロセス解放優先テーブルは、例えば解放対象となるプロセスと、該プロセスが最後に呼び出されたブロックに係る情報とを関連付けたテーブルとして定義できる。プロセス解放優先テーブルは、ＮＣプログラム２００の実行開始時には空のテーブルとして用意される。ＮＣプログラム２００が実行されて、プロセス取得部１４０によりプロセスの取得が行われ、メモリ管理部１５０によりプロセスのＲＡＭ１３上への展開が行われると、該プロセスに係る情報がプロセス解放優先テーブルに登録される。プロセス解放優先テーブルに登録されたプロセスが制御部１１０により呼び出されるたびに、プロセス解放優先テーブルの最後に呼び出されたブロックに係る情報は０ブロック前に更新される。また、ＮＣプログラム２００の実行が進むたびに、プロセス解放優先テーブルに登録されている各プロセスの最後に呼び出されたブロックに係る情報を１増加させる。この最後に呼び出されたブロックに係る情報は、当該プロセスを解放する際の逆の優先度として機能する。そして、プロセス取得優先テーブルに取得対象プロセスが登録されている場合であって、ＲＡＭ１３に取得対象プロセスを展開する十分な空きがない場合、メモリ管理部１５０は、プロセス解放優先テーブルにおいて、最後に呼び出されたブロックが最も過去のものである解放対象プロセスをメモリから解放する。メモリ管理部１５０は、解放したプロセスをプロセス解放優先テーブルから削除する。プロセス解放優先テーブルには、それぞれのプロセスが専有するメモリ量を関連付けて登録するようにしても良い。この様に構成した場合、例えば取得対象プロセスに必要となるメモリ量と最後に呼び出されたブロックに係る情報の双方を判断材料として、解放対象とするプロセスを決定することが出来る。なお、一部のＮＣプログラム２００の実行に必須となるプロセスについては、プロセス解放優先テーブルに登録しないようにしても良い。
【００３６】
なお、プロセス取得優先テーブルと、プロセス解放優先テーブルは併用することも可能である。プロセス取得優先テーブルと、プロセス解放優先テーブルを併用する際には、それぞれのテーブルに登録されているプロセスに応じて、プロセスの取得や解放、プロセスの優先順位の付与を制御するようにしても良い。
例えば、活用計画決定部１３０がプロセス取得優先テーブルに対して新たにプロセスを登録する際に、登録に先立ってプロセス解放優先テーブルを参照し、これから登録しようとするプロセスと同一のプロセスがプロセス解放優先テーブルに登録されている場合、即ち該プロセスが既にＲＡＭ１３上に展開されている場合、該プロセスをプロセス取得優先テーブルに登録する代わりに、プロセス解放優先テーブルにおける該プロセスの最後に呼び出されたブロックに係る情報を０ブロック前（最も優先度の低い値）へと更新するようにしても良い。また、これとは逆に、メモリ管理部１５０がプロセスをＲＡＭ１３から解放する際に、該プロセスを解放するに先立ってプロセス登録優先テーブルを参照し、これから解放しようとするプロセスと同一のプロセスがプロセス登録優先テーブルに所定の優先順位以上で登録されている場合、該プロセスをＲＡＭ１３から解放せずに、プロセス解放優先テーブルにおける該プロセスの最後に呼び出されたブロックに係る情報を０ブロック前（最も優先度の低い値）へと更新するようにしても良い。このような制御をすることで、ＮＣプログラム２００から先読みされたブロックの解析結果から、近いタイミングで使用されることが判明しているプロセスを不用意に解放してしまうことを防止することができる。
【００３７】
本実施形態による制御装置１の一変形例として、活用計画決定部１３０は、ＮＣプログラム２００の実行開始時において、ＮＣプログラム２００のブロックを全て先読みし、プロセスの取得及び展開並びに解放の活用計画をＮＣプログラム２００の実行開始時に決定するようにしても良い。この様に構成した場合、プロセスの必要なタイミング及び不要となるタイミングが予め把握できるため、不要となったプロセスを積極的にＲＡＭ１３上から解放したり、一時的に不要となったプロセスをＲＡＭ１３上から積極的に解放し、再度必要となった場合に改めて該プロセスの取得及び展開を行うようにしたりする等、メモリをより効率よく利用することができる。
【００３８】
以上、本発明の実施の形態について説明したが、本発明は上記した実施の形態の例にのみ限定されるものでなく、適宜の変更を加えることにより様々な態様で実施することができる。
例えば、上記した実施形態では、１つの系統を制御する（１つの制御部１１０で制御される）制御装置を例として説明しているが、例えば、複数の系統を制御する場合においても本願発明の技術は活用可能である。このような場合、それぞれの系統を制御するためのＮＣプログラム２００のブロックで必要とされるプロセスは各系統の制御において共有される。そのため、活用計画決定部１３０は、複数のＮＣプログラム２００のそれぞれのブロックにおいて必要とされるプロセスを考慮して、プロセスの取得及び展開並びに解放のタイミングを計画する。これにより、複数の系統を制御する制御装置において、より効率的にプロセスによるメモリの利用を管理することができるようになる。
【符号の説明】
【００３９】
１  制御装置
２  工作機械
５  上位サーバ
７  ネットワーク
１１  ＣＰＵ
１２  ＲＯＭ
１３  ＲＡＭ
１４  不揮発性メモリ
１５，１８，１９，２１  インタフェース
１６  ＰＭＣ
１７  Ｉ／Ｏユニット
２０  バス
３０  軸制御回路
４０  サーボアンプ
５０  サーボモータ
６０  スピンドル制御回路
６１  スピンドルアンプ
６２  スピンドルモータ
６３  ポジションコーダ
７０  表示器／ＭＤＩユニット
７１  操作盤
７２  外部機器
１００  先読み部
１１０  制御部
１２０  制御指令内容判定部
１３０  活用計画決定部
１４０  プロセス取得部
１５０  メモリ管理部
２００  ＮＣプログラム
【図１】
2020184169.tif 000003
【図２】
2020184169.tif 000004
【図３】
2020184169.tif 000005
【図４】
2020184169.tif 000006
【図５】
2020184169.tif 000007
【図６】
2020184169.tif 000008
【図７】
2020184169.tif 000009