JPH0736529A - 数値制御装置の制御ソフトウェア実行システム - Google Patents

数値制御装置の制御ソフトウェア実行システム

Info

Publication number
JPH0736529A
JPH0736529A JP17549093A JP17549093A JPH0736529A JP H0736529 A JPH0736529 A JP H0736529A JP 17549093 A JP17549093 A JP 17549093A JP 17549093 A JP17549093 A JP 17549093A JP H0736529 A JPH0736529 A JP H0736529A
Authority
JP
Japan
Prior art keywords
control device
numerical control
operating system
numerical
thread
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.)
Granted
Application number
JP17549093A
Other languages
English (en)
Other versions
JP2820189B2 (ja
Inventor
Shigeki Namikado
茂樹 南角
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP17549093A priority Critical patent/JP2820189B2/ja
Publication of JPH0736529A publication Critical patent/JPH0736529A/ja
Application granted granted Critical
Publication of JP2820189B2 publication Critical patent/JP2820189B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Numerical Control (AREA)

Abstract

(57)【要約】 【目的】 デバッグを容易にする。低コストで効率的に
数値制御装置の制御ソフトウェアを実行する。 【構成】 ホスト計算機201は、汎用のマルチスレッ
ドオペレーティングシステム上に、本来は数値制御装置
が実行すべきタスクと同じ機能を実現するスレッドを含
むプロセスを構成する。 【効果】 汎用のマルチタスクオペレーティングシステ
ムまたはマルチスレッドオペレーティングシステム上で
数値制御装置の制御ソフトウェアを実行できるようにな
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、数値制御装置の制御
ソフトウェア実行システムに関し、さらに詳しくは、数
値制御装置の制御ソフトウェア(コントロールプログラ
ム)を効率的に実行できる数値制御装置の制御ソフトウ
ェア実行システムに関する。
【0002】
【従来の技術】図27に示す数値制御装置501のハー
ドウェア構成図を用いて従来の数値制御装置の一般的構
成を説明する。1は、各部の作動を制御したり、数値制
御に必要な演算を行なったりするメインCPUである。
2は、各部を結ぶシステムバスである。3は、数値制御
装置の主要機能を実現する制御ソフトウェアなどを格納
するROM(不揮発性の記憶装置)である。4は、一時
記憶やワークエリアなどに用いるRAM(揮発性の記憶
装置)である。5は、外部との間でシリアル通信により
データのやり取りを行なうSIOインタフェース部であ
る。6は、数値制御装置の運転状態を表示したり、数値
制御装置に与えた指令を確認したりするための表示装置
である。7は、数値制御装置に指令を与えるためのキー
ボード(入力装置)である。8は、サーボモータを制御
するための指令を演算するサーボ制御部である。このサ
ーボ制御部8は、メインCPU1とは別の専用CPUを
備えてもよい。9は、サーボ制御部8から受け取った指
令を増幅してサーボモータへ駆動信号を出力するサーボ
アンプである。10は、工作機械(図示せず)の加工部
を制御するためのサーボモータである。11は、工作機
械との間で、サーボ制御指令以外のデータをやり取りす
るためのプログラムコントローラ部である。12は、メ
インCPU1に与えられる、システムクロック(図示せ
ず)と外部割り込み信号を表している。システムクロッ
クは、数値制御装置全体を制御するためのクロック信号
である。また、外部割り込み信号は、電源異常や非常停
止などのイベント(緊急な出来事)の発生をメインCP
U1に通知するための信号である。
【0003】次に、上記の制御装置501の動作を説明
する。まず、メインCPU1は、ROM3に書き込まれ
ている制御ソフトウェアをシステムバス2を通して1命
令ずつ順に読み込んで実行する。図28に、命令読込後
の処理手順を示す。加工プログラム入力処理21では、
SIOインタフェース部5を通して外部から加工プログ
ラム20を読み込み、RAM4に格納する。そして、加
工プログラム20をブロック(所定の単位)ごとに内部
データに変換する。補正計算処理22では、ブロックご
との内部データを処理し、増分移動量を算出する。ま
た、工具径や工具長などを補正する。さらに、内部の座
標値の更新処理を行なう。設定表示処理23では、数値
制御装置の各種データを表示装置6に表示する。また、
キーボード7を用いてオペレータが入力した各種設定デ
ータをRAM4に格納する。補間処理24では、補正計
算処理22の処理結果を用いて、微小時間ごとの各軸の
移動量を算出する。サーボ処理25では、補間処理24
の処理結果を用いて、さらに小さな単位時間ごとの各軸
の移動量に変換する。更に、サーボモータ10からのフ
ィードバック制御(図示せず)を行なう。プログラムコ
ントロール処理26では、工作機械との間での入出力処
理や主軸の制御など、工作機械の周辺の制御などを行な
う。
【0004】さて、上記の数値制御装置201は、図2
7を用いて先に説明したようにメインCPU1に外部割
り込み信号12を入力して割込み処理を行なわせること
で、非常停止などの緊急事態に対処することが出来る。
メインCPU1は、外部割り込み信号12(図27)が
入力されると、予め指定された別処理を実行し、それら
別処理が終了した後に、通常の命令に復帰する。
【0005】図29は、割り込み処理の概念図である。
30〜36は、通常の命令である。37〜40は、割り
込み命令である。41は、通常の命令への復帰命令であ
る。例えば、メインCPU1が通常の命令33を実行中
に外部割り込み信号12(図27)が入力されると、メ
インCPU1は、通常の命令33の処理終了後、割り込
みを検出し、予め指定されていた割り込み命令37の実
行を開始する。そして、割り込み命令37〜40の実行
を終了した後、復帰命令41を実行して、通常の命令3
4に復帰し、通常の命令35,36を実行する。なお、
割り込み処理の処理時間が長くなると多重割り込みなど
を考慮する必要が出てくるので、割り込み処理の処理時
間をできるだけ短くすることが望ましい。
【0006】ところで、上記の数値制御装置501の制
御ソフトウェアは、以下に示すような特徴を有する。 数値制御装置の制御ソフトウェアにより実現すべき機
能の多様性のためソフトウェア量も大きくなり、多人数
で開発される。 数値制御装置の制御ソフトウェアの機能ごとに、処理
に必要な応答時間(ターンアラウンドタイム,デッドラ
イン)が異なる。例えば、サーボ処理25(図28)
は、処理結果の算出が遅れると切削が止って被加工物が
不良品になってしまうので、実時間処理でなくてはなら
ない。一方、表示装置6への表示処理などは、多少遅れ
ても不都合は生じないので、実時間処理でなくてもよ
い。 メインCPU1が実行すべき割り込み処理に、多くの
種類がある。 これらの理由により、数値制御装置501の制御ソフト
ウェアは、一般にリアルタイムオペレーティングシステ
ムの制御のもとで実行される機能ごとのタスクを実行単
位とすることが多い。
【0007】次に、リアルタイムオペレーティングシス
テムにより各タスクを制御する方法を説明する。あるタ
スクを定期的に実行させたり、あるタスクを実行する時
間を制限したりするために、通常はメインCPU1(図
27)に対してある一定周期で割り込み(図示せず)を
入れる。(これをシステムクロックと呼ぶ) リアルタイムオペレーティングシステムは、システムク
ロック割り込みがある度に各タスクの状態を調べ、実行
中のタスクを止めて別のタスクを実行させたりする。
(これをスケジューリング、またはディスパッチと呼
ぶ) また、リアルタイムオペレーティングシステムにおいて
は、各タスクに優先順位(実行の優先度)づけを行な
う。この優先順位の意味は、より低い優先順位のタスク
を実行中に、より高い優先順位のタスクを実行する準備
ができたときは、その優先順位の低いタスクの実行を中
断させて優先順位の高いタスクを実行させることをい
う。(これを横取りという)
【0008】図30は、各タスク動作の時間的関係を示
すタイムチャートである。縦軸は各処理の実行状況(実
行または停止)を表し、横軸は時間の経過を表す。な
お、図面作成の都合上、各処理としては、リアルタイム
オペレーティングシステムと,割り込み処理と,(優先
順位が高い順に)サーボ処理タスク,補正計算処理タス
ク,表示設定処理タスクを用いるものとする。P1は、
リアルタイムオペレーティングシステムが動作している
最中に割り込みが発生して制御が割り込み処理に移った
ことを示す。P2は、割り込み処理が終了した後、リア
ルタイムオペレーティングシステムのスケジューラに制
御が返る様子を示す。なお、スケジューラは、リアルタ
イムオペレーティングシステムでスケジューリングを行
なう部分である。P3は、リアルタイムオペレーティン
グシステムのスケジューラにより、次に実行するタスク
としてサーボ処理タスクが選ばれたことを示す。P4
は、サーボ処理タスクが終了した後、リアルタイムオペ
レーティングシステムに制御が返る様子を示す。P5
は、リアルタイムオペレーティングシステムのスケジュ
ーリングによって、次に実行するタスクとして補正計算
処理タスクが選ばれたことを示す。P6は、補正計算処
理タスクが終了した後、リアルタイムオぺレーティング
システムに制御が返る様子を示す。P7は、より優先順
位の高いタスクを実行する準備ができていないので、優
先順位が最も低い表示処理設定処理タスクに移ったこと
を示す。P8は、割り込みが発生したことで表示処理設
定処理タスクを中断し、割り込み処理に制御が移ったこ
とを示す。P9は、割り込み処理を終了した後、リアル
タイムオペレーティングシステムのスケジューラに制御
が返る様子を示す。(一般に、割り込み処理を終了した
後は、もとのタスクに制御は戻らず、オペレーティング
システムのスケジューラに制御が返る。) P10は、再び表示設定処理タスクに制御が移ったこと
を示す。P11は、システムクロック(図示せず)によ
ってリアルタイムオペレーティングシステムのスケジュ
ーラに制御が返ったことを示す。P12は、サーボ処理
タスクを実行する準備ができたので、サーボ処理タスク
に移ったことを示す。(これは、表示設定タスクがサー
ボ処理タスクに実行権を横取りされた例である) P13は、サーボ処理タスクはその実行を終了した後、
自主的に実行権を放棄して、リアルタイムオペレーティ
ングシステムのスケジューラに制御を返したことを示
す。P14は、再び表示設定処理タスクに制御が移った
ことを示す。以降、各タスクは同様の動作を繰り返し
て、処理を続ける。
【0009】なお、図30に示したように、システムク
ロック以外の割り込みは不定期に発生するため、数値制
御装置側ではその発生を予想できない。そこで、各タス
クの特性に応じて、処理時間の配分を行なう必要があ
る。例えば、サーボ処理タスクは、前もって所定の単位
時間のサーボモータの一回分の移動量を計算しておくた
めに、所定の単位時間以内に次の移動量を計算しておく
必要がある。つまり、少なくとも所定の単位時間以内に
は繰り返して実行する必要がある。一方、補正計算処理
タスクは、例えば1回の実行で、サーボ処理タスクを3
回だけ実行するために必要なデータを作成できるので、
単位時間3回につき1回だけ実行すれば良い。また、表
示設定処理タスクは他の処理がない時だけ実行すれば足
る。
【0010】以上で述べたように、数値制御装置501
は、リアルタイムオペレーティングシステム上で制御ソ
フトウェアを実行したときに起動される複数のタスクま
たはスレッドの共同作業によって数値制御装置としての
機能を実現する。
【0011】さて、現在、数値制御装置の制御ソフトウ
ェアの開発マシンとしては、ワークステーションが主流
である。そこで、図31に、ワークステーションを用い
た数値制御装置の制御ソフトウェア開発のシステム構成
を例示する。100は、コンパイラ,数値制御装置の制
御ソフトウェアのソースコードやオブジェクトコードな
ど、各種ファイルを格納しているハードディスクであ
る。101は、各種ファイルを一括管理したり、クライ
アントワークステーションの要求に応じてファイルを転
送したりするファイルサーバである。102は、他のネ
ットワークと通信するためのゲートウェイマシンであ
る。103は、各種I/Oデバイスを制御するためのI
/Oサーバである。104は、他のシステムに繋がって
いるネットワークである。105は、システム内を結ぶ
ローカルネットワークである。106〜108は、クラ
イアントワークステーションである。
【0012】次に、図32に示す流れ図を用いて、数値
制御装置の制御ソフトウェアを開発する手順を説明す
る。まず、ステップ111では、ファイルサーバ101
からテキストファイルの編集を行なうエディターをロー
カルネットワーク105を通じてクライアントワークス
テーション106〜108へダウンロードする。そし
て、エディターを使ってソースコードを作成する。一般
に、複数の人間がそれぞれクライアントワークステーシ
ョン106〜108(図31)を用いて、機能ごとにソ
ースコードを作成する。
【0013】ステップ112では、ファイルサーバ10
1からコンパイルを行なうコンパイラをローカルネット
ワーク105を通じてクライアントワークステーション
106〜108へダウンロードする。そして、コンパイ
ラを使ってソースコードをコンパイルして、数値制御装
置で実行可能なオブジェクトコードを作成する。なお、
一般に、数値制御装置のメインCPUとクライアントワ
ークステーション106〜108のCPUとは異なるの
で、コンパイラとしては、クロスコンパイラを用いる。
【0014】ステップ113では、コンパイルエラー
(コンパイルしたときのエラー)が発生したか否か判定
する。コンパイルエラーが発生したらステップ114に
進み、コンパイルエラーが発生しなければステップ11
5に進む。ステップ114では、ソースコードを修正し
て、ステップ112に戻る。
【0015】ステップ115では、ファイルサーバ10
1からリンクを行なうためのリンカとロケートを行なう
ためのロケータをローカルネットワーク105を通じて
クライアントワークステーション106〜108へダウ
ンロードする。そして、リンカとロケータを用いてリン
クとロケートを行ない、ロードモジュールを作成する。
リンクは、複数のオブジェクトを1つの機能にまとめ、
さらにそれらを結びつけて、モジュールを生成する作業
である。ロケートは、モジュールをロケートする数値制
御装置のメモリのアドレスを決定する作業である。ステ
ップ116では、ロードモジュールを、他の媒体へコピ
ーする。媒体としては、フロッピーディスク(数値制御
装置がフロッピーディスクドライブを備えているとき)
や、ROMがある。
【0016】ステップ118では、数値制御装置は、媒
体からロードモジュールを読み出して、メモリへロード
する。ステップ118では、数値制御装置上でロードモ
ジュールを実行し、意図した通りに動作するか否かを確
認する。意図した通りに動作すれば処理を終了し、意図
した通りに動作しなければ、ステップ114に戻る。ス
テップ118,119,114の一連の処理をデバッグ
と呼ぶ。
【0017】ここで、ワークステーションおよびワーク
ステーションのオペレーティングシステムについて説明
する。ワークステーションには、以下に示すような特徴
がある。 ワークステーションにおいては多くのユーザが同時に
使用して、その各ユーザに対して公平なオペレーティン
グシステムのサービスが要求される。つまり、ユーザに
よる優先順位のようなものも普通は存在しないし、また
緊急の割り込みというものもほとんど存在しない。 必ず決まった時間以内に処理しなくてはならない処理
は、ほどんど無い。そのため、ワークステーションのオ
ペレーティングシステムとしては、多数の利用者が端末
と対話しながら処理を行えるタイムシェアリングオペレ
ーティングシステムを用いることが多い。
【0018】タイムシェアリングオペレーティングシス
テムにおいて、あるまとまった処理の単位はプロセスと
呼ばれる。プロセスは、リアルタイムオペレーティング
システムにおけるタスクと類似している。但し、一般
に、リアルタイムオペレーティングシステムのもとでの
各タスクのアドレス空間は1つの同じものである(線形
アドレス空間と呼ぶ)のに対して、タイムシェアリング
オペレーティングシステムでは、プロセスごとに固有な
アドレス空間を持っている。具体例で示せば、リアルタ
イムオペレーティングシステムでは、CPUがアクセス
して出来るアドレス(これを論理アドレス空間と呼ぶ)
が0番地から100000番地まであったと想定する
と、リアルタイムオペレーティングシステムが0番地か
ら10000番地を占め、タスク1が10001番地か
ら20000番地を占め、タスク2が20001番地か
ら28000番地までを占める。タスク1の20000
番地もタスク2の20000番地も同じところを指し、
同じデータを示す。そこで、タスク間でアドレスをやり
取りすることで、お互いのデータなどを参照できる。一
方、タイムシェアリングオペレーティングシステムで
は、プロセスごとに固有なアドレス空間を持っているの
で、プロセス1とプロセス2がどちらもアドレス0番地
からアドレス100000番地までを持っていると想定
すると、プロセス1の20000番地とプロセス2の2
0000番地では実際のメモリ上の異なるところを指す
ので、そのデータも異なる。
【0019】次に、プロセスごとに固有なアドレス空間
の実現方法を説明する。図33は、クライアントワーク
ステーションのメモリ態様図である。130はクライア
ントワークステーション、131はCPU、132はア
ドレス変換機構、133は変換テーブル、134は主記
憶(メモリ)、135はネットワーク、136はファイ
ルサーバ、137はハードディスクである。
【0020】さて、クライアントワークステーション1
30において、CPU131で区別できるアドレス空間
(論理アドレス空間)は、一般に、主記憶につけられた
物理的な番地(物理アドレス空間)よりも大きい。そこ
で、仮想記憶の手法により、物理アドレス空間外の論理
アドレスをハードディスクなどの2次記憶装置に割り当
てることで、2次記憶装置をも主記憶とみなせるように
なる。つまり、主記憶の大きさが実装容量に制限されな
くなるので、アドレス空間の制限を気にせずにソフトウ
ェアを作成できるようになる。
【0021】次に、仮想記憶の手法をさらに詳しく説明
する。図33において、CPU131はアドレス変換機
構132に対して論理アドレスを送る。アドレス変換機
構132では、与えられた論理アドレスの一部または全
部を取り出して変換テーブル133の配列の何番目かを
示すインデックスとして用いる。変換テーブル133の
内容が主記憶134のアドレスを示していれば主記憶1
34に対して所定の動作を行なう。また、変換テーブル
133の内容がハードディスク137のブロック番号な
どを示していればファイルサーバ136に対してブロッ
ク番号に対応した内容を要求し、ネットワーク135を
介して内容を受け取る。主記憶134に未使用領域が有
れば、受け取ったデータを未使用領域に格納し、データ
を格納した領域を示すように変換テーブル133の内容
を書き換える。また、主記憶134に未使用領域が存在
しなければ、主記憶134に未使用領域が無ければ、主
記憶134の既使用領域を選び、その内容をハードディ
スク137に書き戻し、その領域を新たに使用する。な
お、主記憶134から変換テーブル133を逆にたどる
ソフトウェアの機能も備えられている。(これをコアマ
ップと呼ぶ)
【0022】さらに、プロセスごとに変換テーブルを持
つことにより、各プロセスが同じ論理アドレス空間を利
用することが出来る。この様子を図34に示す。140
はプロセス1、141はプロセス2、142はプロセス
1の変換テーブル、143はプロセス2の変換テーブ
ル、144は実メモリを示す。いま、プロセス1(14
0)とプロセス2(141)のいずれも、アドレス0番
地(論理アドレスの0番地)をアクセスする場合を想定
する。このとき、プロセス1(140)は、変換テーブ
ル142の0番地の部分を指している。また、プロセス
2(141)は、変換テーブル143の0番地の部分を
指している。ところで、変換テーブル142の0番地と
変換テーブル143の0番地は、実メモリ144上の異
なる領域を指している。つまり、各プロセスが論理アド
レス空間をフルに利用することが出来る。
【0023】各プロセスは、例えば図35に示すよう
に、論理アドレス空間をいくつかの領域に分けて使用す
る。155は、1つのプロセスのすべての論理アドレス
空間を示す。156は、そのプロセスのテキスト(プロ
グラム)領域を示す。158は、予備領域である。この
予備領域は、普段は未使用領域であるが、データ領域や
スタック領域が不足したときには、図示の矢印の方向
で、データ領域やスタック領域として用いられる。15
7は、そのプロセスが使用するデータ領域を示す。15
9は、スタック領域を示す。
【0024】図36は、タイムシェアリングオペレーテ
ィングシステムにおけるプロセスモデルを示す。210
は計算機、211はプロセス、212は実体(例えばテ
キストコード)、213は実体において現在実行中のコ
ードを示すプログラムカウンタである。各プロセスは、
アドレス空間や、そのプログラムカウンタや、スタック
や、レジスタ群などを持っている。なお複数のプロセス
間で協調して処理を行なうときには、プロセス間通信の
手段を用いて相互に連絡をとる必要がある。
【0025】上記のタイムシェアリングオペレーティン
グシステムでは、図36に示したように各プロセスが固
有のアドレス空間を持つので、プロセスごとの変換テー
ブルの書き換えなどに手間がかかり、プロセスの切り換
えに時間がかかりやすい欠点がある。また、各プロセス
内の実行を行なう実体は1個であるので、複雑な処理を
行なうアプリケーションプログラムに対応しずらくなっ
てきた。そのため、近年、1つのプロセス中に複数の実
体を置き、各実体を共通のアドレス空間のもとであたか
も別々のプロセスであるかのように動かせるマルチスレ
ッドオペレーティングシステムが提案されている。
【0026】図37に、マルチスレッドオペレーティン
グシステムのモデルを示す。210は計算機、211は
プロセス、212は実体、213はプログラムカウンタ
である。実体212aを、スレッド(またはライトウェ
イトプロセス)と呼ぶ。このスレッドは、プロセスと同
様に、固有のプログラムカウンタやスタックを備えてお
り、他のプロセスとは独立して動く。1つのプロセス内
の全てのスレッドは同じアドレス空間を持っているの
で、共通変数を共有することも容易である。つまり、図
36を用いて先に説明したタイムシェアリングオペレー
ティングシステムのプロセスモデルでは、各プロセスが
1つずつしかスレッドを持てないのに対して、マルチス
レッドオペレーティングシステムのプロセスモデルで
は、1つのプロセスが複数のスレッドを持つことができ
る。
【0027】一般的に、各プロセスが持っていなければ
ならない情報には次のようなものがある。 ・アドレス空間 ・共通変数(大域変数) ・開いているファイルの情報 ・自分が生成したプロセスの情報 ・タイマー情報 ・シグナル情報 ・セマフォーの情報 一方、スレッドが持っている情報は次のようなものがあ
る。 ・プログラムカウンタ ・スタック ・レジスタセット ・自分が生成したスレッドの情報 ・自分自身の状態
【0028】1つのプロセス中のすべてのスレッドは、
プロセスごとに持つべき上記の情報を共有している。一
方、スレッドごとに持つべき上記の情報は、各スレッド
が個々に持っている。例えば図38に示すように、1つ
のプロセスのすべての論理アドレス空間155は、テキ
スト領域156と,データ領域157と,予備領域15
8と,スレッド1のスタック領域220と,スレッド2
のスタック領域221と,スレッド3のスタック領域2
22と,スレッド「N−1」のスタック領域223と,
スレッドNのスタック領域224とに分れている。つま
り、1つのプロセス内の各スレッドが個別に持たねばな
らない領域のみを別個に割り当てることによって、1つ
のプロセス内に複数のスレッドを構成できる。
【0029】次に、マルチスレッドオペレーティングシ
ステムにおけるスケジューリングを説明する。図30を
用いて先に説明したタイムシェアリングオペレーティン
グシステムではプロセスごとにスケジューリング行なっ
たのに対して、マルチスレッドオペレーティングシステ
ムでは、スレッドごとにスケジューリングを行なう。但
し、マルチCPUのときにはCPUごとにスレッドが割
り当てられるので、割り当てられたスレッドごとのスケ
ジューリングを行なえばよい。
【0030】
【発明が解決しようとする課題】上記従来の数値制御装
置501では、制御ソフトウェアを実行するときに、次
に示すような問題点を生じる。 数値制御装置としての機能を実現するタスクは、数値
制御装置のリアルタイムオペレーティングシステムのも
とでしか走らせられない。そのため、制御ソフトウェア
開発時のデバッグでは、開発マシン(ワークステーショ
ンなど)上の制御ソフトウェアを媒体へコピーし、その
内容を数値制御装置にロードして動作を確認する作業を
いちいち繰り返さなければならず、面倒である。 ワークステーションなどに構築されたCAD/CAM
システムに、数値制御装置のシミュレータ機能を組み込
みたいときには、数値制御装置の制御ソフトウェアをワ
ークステーションなどのオペレーティングシステム上で
動くように作り直さねばならならず、手間がかかる。 数値制御装置のメインCPUとして、高性能なCPU
を使用すると、CPU性能をフルに発揮していない間の
余力が無駄となり、コスト高となる。一方、低性能なC
PUを使用すると、低コストとなる代りに、数値制御装
置としての機能に支障が出たり、処理時間が長くなった
りする。 この発明は、上記のような問題点を解決するためになさ
れたもので、数値制御装置の制御ソフトウェアのデバッ
グが容易で、数値制御装置のシミュレータ機能をCAD
/CAMシステムに組み込みやすく、低コストで効率的
に数値制御装置の制御ソフトウェアを実行できる数値制
御装置の制御ソフトウェア実行システムを得ることを目
的とする。
【0031】
【課題を解決するための手段】この発明の第1の構成の
数値制御装置の制御ソフトウェア実行システムは、リア
ルタイムオペレーティンングシステム上で制御ソフトウ
ェアを実行したときに起動される複数のタスクまたはス
レッドの共同作業によって数値制御装置としての機能を
実現する数値制御装置を具備し、汎用のマルチタスクオ
ペレーティングシステムまたはマルチスレッドオペレー
ティングシステム上で実行するタスクまたはプロセス中
のスレッドに数値制御装置本来のタスクの機能を割り当
てたものである。
【0032】この発明の第2の構成の数値制御装置の制
御ソフトウェア実行システムは、汎用のマルチタスクオ
ペレーティングシステムまたはマルチスレッドオペレー
ティングシステムを用いた計算機と、リアルタイムオペ
レーティンングシステム上で制御ソフトウェアを実行し
たときに起動される複数のタスクまたはスレッドの共同
作業によって数値制御装置としての機能を実現する数値
制御装置とを具備してなり、前記数値制御装置は前記計
算機のオペレーティングシステムと同じオペレーティン
グシステムを用い、本来は数値制御装置が実行すべきタ
スクを前記計算機で処理しうるものである。
【0033】この発明の第3の構成の数値制御装置の制
御ソフトウェア実行システムは、汎用のマルチタスクオ
ペレーティングシステムまたはマルチスレッドオペレー
ティングシステムを用いた計算機と、その計算機と通信
回線を介して接続した数値制御装置とを具備してなり、
前記計算機と前記数値制御装置との間でタスク間通信ま
たはスレッド間通信を行ない本来は前記数値制御装置が
起動すべきタスクを分散して処理するものである。
【0034】この発明の第4の構成の数値制御装置の制
御ソフトウェア実行システムは、汎用のマルチタスクオ
ペレーティングシステムまたはマルチスレッドオペレー
ティングシステムを用いた計算機と、その計算機と通信
回線を介して接続しCPUを持たない数値制御装置とを
具備してなり、前記計算機は本来は前記数値制御装置が
起動すべきタスクを処理するものである。
【0035】この発明の第5の構成の数値制御装置の制
御ソフトウェア実行システムは、汎用のマルチタスクオ
ペレーティングシステムまたはマルチスレッドオペレー
ティングシステムを用いた計算機と、その計算機と通信
回線を介して接続した数値制御装置とを具備してなり、
前記計算機は本来は前記数値制御装置が起動すべきタス
クを処理すると共に前記数値制御装置への割り込み要求
の有無を監視するものである。
【0036】この発明の第6の構成の数値制御装置の制
御ソフトウェア実行システムは、複数のCPUを有し汎
用のマルチタスクオペレーティングシステムまたはマル
チスレッドオペレーティングシステムを用いた計算機
と、その計算機と通信回線を介して接続しCPUを持た
ない数値制御装置とを具備してなり、前記計算機は本来
は前記数値制御装置が起動すべきタスクを処理するもの
である。
【0037】この発明の第7の構成の数値制御装置の制
御ソフトウェア実行システムは、汎用のマルチタスクオ
ペレーティングシステムまたはマルチスレッドオペレー
ティングシステムを用いた計算機と、その計算機と通信
回線を介して接続した数値制御装置とを具備してなり、
本来は前記数値制御装置が起動すべきタスクの中で実時
間処理が必要なタスクは前記数値制御装置に処理させ,
実時間処理が不要なタスクは前記計算機に処理させるも
のである。
【0038】この発明の第8の構成の数値制御装置の制
御ソフトウェア実行システムは、汎用のマルチタスクオ
ペレーティングシステムまたはマルチスレッドオペレー
ティングシステムを用いた計算機と、その計算機と通信
回線を介して接続した数値制御装置とを具備してなり、
前記計算機はファイルとして管理している前記数値制御
装置の制御ソフトウェアを前記数値制御装置へダウンロ
ードし、前記数値制御装置はダウンロードされた制御ソ
フトウェアを実行するものである。
【0039】
【作用】上記この発明の第1の構成の制御ソフトウェア
実行システムでは、汎用のマルチタスクオペレーティン
グシステムまたはマルチスレッドオペレーティングシス
テム上で数値制御装置の制御ソフトウェアを実行できる
ようになる。
【0040】上記この発明の第2の構成の数値制御装置
の制御ソフトウェア実行システムでは、数値制御装置は
計算機のオペレーティングシステムと同じオペレーティ
ングシステムを用いて制御ソフトウェアを実行するの
で、計算機で数値制御装置の制御ソフトウェアの動作を
検証しやすくなり、数値制御装置の制御ソフトウェアの
信頼性を向上できる。
【0041】上記この発明の第3の構成の数値制御装置
の制御ソフトウェア実行システムでは、計算機と数値制
御装置とでタスクを分散して処理するので、低コストに
して効率的に数値制御装置の制御ソフトウェアを実行す
ることが出来る。
【0042】上記この発明の第4の構成の数値制御装置
の制御ソフトウェア実行システムでは、計算機は本来は
数値制御装置が起動すべきタスクを処理することで、数
値制御装置のCPUを不要にできる。
【0043】上記この発明の第5の構成の数値制御装置
の制御ソフトウェア実行システムでは、計算機は本来は
前記数値制御装置が起動すべきタスクを処理すると共に
前記数値制御装置への割り込み要求の有無を監視するの
で、数値制御装置のCPUを不要にできると共に割り込
み要求に対処することが出来る。
【0044】上記この発明の第6の構成の数値制御装置
の制御ソフトウェア実行システムでは、計算機は複数の
CPUを有しているので、処理負荷に応じてCPUを獲
得・解放することで処理能力を調整できる。
【0045】上記この発明の第7の構成の数値制御装置
の制御ソフトウェア実行システムでは、本来は数値制御
装置が起動すべきタスクの中で実時間処理が必要なタス
クは数値制御装置に処理させ,実時間処理が不要なタス
クは計算機に処理させるので、タスクの分散が適正化さ
れ、効率的に数値制御装置の制御ソフトウェアを実行す
ることが出来る。
【0046】上記この発明の第8の構成の数値制御装置
の制御ソフトウェア実行システムでは、数値制御装置は
計算機からダウンロードされた制御ソフトウェアを実行
するので、計算機で開発された制御ソフトウェアを速や
かに実行できるようになる。また、計算機は、数値制御
装置の制御ソフトウェアをファイルとして管理するの
で、管理効率が向上する。
【0047】
【実施例】以下、図に示す実施例によりこの発明をさら
に詳しく説明する。なお、これによりこの発明が限定さ
れるものではない。
【0048】実施例1.図1は、この発明の実施例1の
数値制御装置の制御ソフトウェア実行システムの全体構
成図である。この制御ソフトウェア実行システムS1
は、数値制御装置200a1〜200anと、ホスト計
算機201と、ハードディスク202と、表示装置20
3と、キーボード204とを備える。数値制御装置20
0a1〜200anは、リアルタイムオペレーティング
システムのもとで制御ソフトウェアを実行して、数値制
御装置としての機能を実現する。この数値制御装置20
0a1〜200anのハードウェア構成は、図27を用
いて先に説明した従来の数値制御装置501と同じであ
る。ホスト計算機201は、汎用のマルチスレッドオペ
レーティングシステムのもとで数値制御装置の制御ソフ
トウェアを実行する。ハードディスク202は、ホスト
計算機201の外部記憶装置である。表示装置203
は、ユーザが必要とする各種の情報を表示する。キーボ
ード204は、ユーザからの指示などを受け付ける。外
部ネットワーク206は、ホスト計算機201を、汎用
のワークステーション(図示せず)などと結ぶ。
【0049】次に、ホスト計算機201により、数値制
御装置の制御ソフトウェアを実行する手順を説明する。
なお、説明の都合上、数値制御装置の制御ソフトウェア
は、予めハードディスク202に格納されているものと
する。まず、ユーザは、キーボード204を用いて数値
制御装置の制御ソフトウェアを実現するプロセスの起動
をホスト計算機201に指示する。ホスト計算機201
のマルチスレッドオペレーティングシステムは、数値制
御装置の制御ソフトウェアを実現するためのプロセスを
ハードディスク202から読み出し、プロセス管理テー
ブルに登録する。
【0050】プロセス管理テーブルは、概念的には、図
33と図34を用いて先に説明した変換テーブルと類似
している。具体例で説明すれば、プロセス管理テーブル
は、変換テーブル133(図33)の配列の1番目から
M番目までを、図38に示したテキスト領域156を示
すためのスロットとして確保し、変換テーブル133の
配列の「M+1」番目からN番目までを、図38に示し
たデータ領域157を示すためのスロットとして確保し
たものである。
【0051】次に、ホスト計算機201は、数値制御装
置の制御ソフトウェアの実行状況に伴って、図38に示
したプロセスの論理アドレス空間155内の各領域を順
にハードディスク202から読み出して内部メモリ(図
示せず)へローディングする。
【0052】次に、ホスト計算機201は、数値制御装
置の制御ソフトウェアを実行したときのタスクに相当す
るプロセスを生成する。図2に、プロセスを生成するた
めの流れ図を示す。まず、ステップ241では、マルチ
スレッドオペレーティングシステムに備えられているシ
ステムコールを利用して、数値制御装置としての1機能
を実現している1タスク(数値制御装置のリアルタイム
オペレーティングシステムのもとでの1タスク)と同じ
処理を行なう1スレッドを生成する。具体的には、プロ
セス管理テーブルに新たなスレッドのスタック領域用の
スロットを確保し、マルチスレッドオペレーティングシ
ステムが認識するスレッドの表の中に新たなスレッドを
追加する。
【0053】ステップ242では、ステップ241で生
成したスレッドに対応した処理を行なう。例えば、数値
制御装置のリアルタイムオペレーティングシステムに対
するシステムコールを、ホスト計算機201のマルチタ
スクオペレーティングシステムのスレッドに対するシス
テムコールに書き換える。なお、変換ライブラリを用い
てシステムコールを変換するならば、書き換え負担を軽
減できる。
【0054】ステップ243では、数値制御装置のタス
クに相当するスレッドをすべて生成したか否か判定す
る。すべてのスレッドを生成したならばステップ244
に進み、生成すべきスレッドが残っていればステップ2
41に戻る。なお、すべてのスレッドを生成した時点で
は、ホスト計算機201の内部には、図3の概念図に示
すように、マルチスレッドオペレーティングシステム2
40上に、数値制御装置のタスクと同じ機能を実現する
スレッド1(231)〜スレッド6(236)を含むプ
ロセス211が構成されることになる。
【0055】ステップ244では、スレッド間のスケー
ジューリングを行なうスケージューリング方式を決定す
る。例えば、優先順位に応じて各スレッドを走らせるス
ケジューリング機能をホスト計算機201のマルチスレ
ッドオペレーティングシステムが備えている場合には、
システムコールを用いて各スレッドの優先順位を登録す
る。又は、ホスト計算機201のマルチスレッドオペレ
ーティングシステムは、準備ができた順序でスレッドを
走らせるスケジューラを有していることもある。ここ
で、“走る”とは、そのスレッドを構成するテキスト領
域が実メモリ上に存在し、そのテキスト領域をCPUが
処理している状態のことである。
【0056】図4は、スケジューラによるスケジューリ
ングの一例を示す概念図である。211は、ホスト計算
機201が実行するプロセスである。231〜234
は、数値制御装置のタスクと同じ機能を実現するスレッ
ドである。240は、マルチスレッドオペレーティング
システムである。250は、準備が出来たスレッドの中
から1つのスレッドを選び順に走らせるスケジューラで
ある。251は、他のプロセスである。
【0057】ステップ245では、数値制御装置の制御
ソフトウェアが最初に初期化タスクを起動し、その初期
化タスクが他のタスクを起動するような方式であるとき
は、初期化タスクと同じ処理を行なうスレッドをシステ
ムコールにより起動する。具体的には、マルチスレッド
オペレーティングシステムのスケジューリング対象のス
レッドの表の中に、初期化タスクと同じ処理を行なうス
レッドを加えればよい。これらの処理により、各スレッ
ドは、予め決定された順序に応じて走ることになる。な
お、数値制御装置の制御ソフトウェアが上記のような方
式でない場合には、従来の数値制御装置の制御ソフトウ
ェアと同じ順序で該当スレッドを起動すればよい。
【0058】以上で述べたように、この発明の実施例1
の数値制御装置の制御ソフトウェア実行システムS1
は、汎用のマルチスレッドオペレーティングシステム上
で実行する1つのプロセス中のスレッドに数値制御装置
本来のタスクの機能を割り当てる方式で、数値制御装置
の制御ソフトウェアを実行するものである。
【0059】上記実施例1によれば、ホスト計算機にお
ける汎用のマルチスレッドオペレーティングシステムの
もとで数値制御装置の制御ソフトウェアを実行させるこ
とができるようになる。そのため、制御ソフトウェア開
発時のデバッグでは、ホスト計算機上で開発された制御
ソフトウェアをいちいち数値制御装置にロードして動作
を確認する必要がなくなり、開発期間を短縮できる。ま
た、ホスト計算機上に構築されたCAD/CAMシステ
ムに数値制御装置のシミュレータ機能を組み込む際に
は、数値制御装置の制御ソフトウェアを汎用のマルチス
レッドオペレーティングシステム上で動くように組み直
さなくてよいので、手間がかからない。
【0060】実施例2.この発明の実施例2の数値制御
装置の制御ソフトウェア実行システムは、実施例1とほ
ぼ同じである。但し、実施例1ではホスト計算機201
(図1)のマルチスレッドオペレーティングシステムの
機能を利用してスレッド間のスケジューリングを行なっ
たのに対して、実施例2の数値制御ソフトウェア実行シ
ステムS2は、スレッド間のスケジューリングの制御用
に1つのスレッドを生成する点が実施例1とは異なる。
つまり、実施例2では、ホスト計算機201は、数値制
御装置における各タスクをスレッドとするのに加えて、
実施例1におけるスケジューラ250(図4)と同じ働
きをするスケジューラスレッドを生成する。
【0061】図5は、ホスト計算機201により生成さ
れたスケジューラスレッドによるスケジューリングの概
念図である。これは、図4を用いて先に説明した実施例
1のスケジューリングの概念に、スケジューラスレッド
252を加えたものである。そして、スケジューラスレ
ッド252は、マルチスレッドオペレーティングシステ
ム240上のスケジューラ250から数値制御装置の制
御ソフトウェアを実行するプロセス211の実行権を獲
得し、スレッド1(231)〜スレッド4(234)の
スケジューリングをすべて行なう。
【0062】上記実施例2によれば、数値制御装置の制
御ソフトウェアのスケジューリングの制御用に1つのス
レッド(スケジューラスレッド)を生成するので、ホス
ト計算機の汎用のマルチスレッドオペレーティングシス
テムがスレッド間のスケジューリング機能を備えていな
くても、実施例1と同じ効果が得られる。また、ホスト
計算機と数値制御装置のオペレーティングシステム等の
違いを考慮したスケジューリングが不要となるので、数
値制御装置の既存のソフトウェアを短期間で移植でき
る。
【0063】実施例3.この発明の実施例3の制御ソフ
トウェア実行システムは、実施例1ではホスト計算機2
01上で動作する汎用のマルチスレッドオペレーティン
グシステムのもとで数値制御装置の制御ソフトウェアの
タスクに相当するスレッドを走らせたのに対して、数値
制御装置に汎用のマルチスレッドオペレーティングシス
テムを動作させ、そのもとで数値制御装置の制御ソフト
ウェアのタスクに相当するスレッドを走らせるものであ
る。つまり、実施例3では、数値制御装置は、実施例1
でホスト計算機201が行なったのと同様にして、マル
チスレッドオペレーティングシステム上のスレッドとし
て、数値制御装置の制御ソフトウェアを実行する。
【0064】上記実施例3によれば、数値制御装置の制
御ソフトウェアを汎用のマルチスレッドオペレーティン
グシステム上で動作するソフトウェアとして開発できる
ので、ホスト計算機で数値制御装置の制御ソフトウェア
の動作を検証しやすくなり、数値制御装置の制御ソフト
ウェアの信頼性を向上できる。
【0065】この発明の実施例4の数値制御装置のソフ
トウェア実行システムS4は、ホスト計算機201上に
構築された汎用のCAD/CAMシステムによりCAD
/CAMデータを生成し、そのCAD/CAMデータを
数値制御装置の加工プログラムに変換して、その加工プ
ログラムに基づいて加工を行なわせるものである。
【0066】図6は、制御ソフトウェア実行システムS
4の全体構成図である。この制御ソフトウェア実行シス
テムS4は、実施例1の制御ソフトウェア実行システム
S1(図1)とほぼ同じ構成である。但し、実施例1で
は数値制御装置200a1〜200anがホスト計算機
201とは孤立していたのに対して、実施例4では数値
制御装置200b1〜200bnとホスト計算機201
とを内部ネットワーク205を介して接続した点が実施
例1とは異なる。
【0067】図7は、数値制御装置200b1のハード
ウェア構成図である。なお、数値制御装置200b2〜
200bnも同じ構成である。1は、各部の作動を制御
したり、数値制御に必要な演算を行なったりするメイン
CPUである。2は、各部を結ぶシステムバスである。
3は、数値制御装置の主要機能を実現する制御ソフトウ
ェアなどを格納するROM(不揮発性の記憶装置)であ
る。4は、一時記憶やワークエリアなどに用いるRAM
(揮発性の記憶装置)である。5は、外部との間でシリ
アル通信によりデータのやり取りを行なうデータSIO
インタフェース部である。6は、数値制御装置の運転状
態を表示したり、数値制御装置に与えた指令を確認した
りするための表示装置である。7は、数値制御装置に指
令を与えるためのキーボード(入力装置)である。8
は、サーボモータを制御するための指令を演算するサー
ボ制御部である。9は、サーボ制御部8から受け取った
指令を増幅してサーボモータへ駆動信号を出力するサー
ボアンプである。10は、工作機械(図示せず)の加工
部を制御するためのサーボモータである。11は、工作
機械との間で、サーボ制御指令以外のデータをやり取り
するためのプログラムコントローラ部である。12は、
メインCPU1に与えられる、システムクロック(図示
せず)と外部割り込み信号を表している。システムクロ
ックは、数値制御装置全体を制御するためのクロック信
号である。また、外部割り込み信号は、電源異常や非常
停止などのイベント(緊急な出来事)の発生をメインC
PU1に通知するための信号である。132は、図33
を用いて先に説明した仮想記憶を実現するためのアドレ
ス変換機構である。207は、内部ネットワーク205
を通じて数値制御装置200b2〜200bnとホスト
計算機201との間で通信を行なうためのネットワーク
インタフェースである。
【0068】図8は、この制御ソフトウェア実行システ
ムS4の動作の概念図である。ホスト計算機201は、
CAD/CAMプロセス340と,データ変換プロセス
341と,数値制御装置の制御ソフトウェアを実現する
数値制御装置プロセス342とを生成して起動する。そ
して、CAD/CAMプロセス340にはデータ出力用
スレッド343を走らせておく。CAD/CAMプロセ
ス340は通常の動作によりCAD/CAMデータを作
成する。データ出力用スレッド343は、CAD/CA
Mデータをデータ変換プロセス341のスレッド344
に入力する。データ変換プロセス341では、内部のス
レッドによりCAD/CAMデータを数値制御装置の入
力データに変換し、データ出力スレッド345に渡す。
データ出力スレッド345は、数値制御装置の入力デー
タを数値制御装置プロセス342のデータ入力(設定)
スレッド346に送る。数値制御装置プロセス342
は、数値制御装置の入力データを加工プログラムに変換
して、内部ネットワーク205を通じて数値制御装置に
入力し、加工を行なわせる。
【0069】上記実施例4によれば、ホスト計算機上の
CAD/CAMシステムにより生成されたCAD/CA
Mデータから数値制御装置の加工プログラムを自動作成
できるので、加工プログラムを作成するためのユーザ負
担を軽減できる。
【0070】実施例5.この発明の実施例5の数値制御
装置の制御ソフトウェア実行システムS5は、ホスト計
算機と、1つの数値制御装置との間でスレッド間通信を
行なわせることで、数値制御装置の制御ソフトウェアを
実現するスレッドを分散して走らせるものである。
【0071】スレッドの分散の具体例を説明すれば、あ
る数値制御装置200c1(図示せず)が低性能で安価
なメインCPUを有しており、ホスト計算機201が高
性能で高価なCPUを有しているときには、簡単な処理
を行なうスレッドは数値制御装置200c1に走らせ
て、複雑な処理を行なうスレッドはホスト計算機201
に走らせるのが好適である。又、別の具体例を説明すれ
ば、図28を用いて先に説明した補間処理24やサーボ
処理25を行なうスレッドなどは数値制御装置200c
1に走らせ、加工プログラム入力処理21や補正計算処
理22を行なうスレッドはホスト計算機201に走らせ
るのが好適である。
【0072】次に、図9に示す概念図を用いて、数値制
御装置200c1とホスト計算機201との間で行なわ
れるスレッド間通信について説明する。211は、プロ
セスである。231はスレッド1、232はスレッド
2、233はスレッド3、234はスレッド4である。
260はノード1、261はノード2である。ここで、
ノードとは、ネットワークの枝の端点にあたる情報処理
機器の総称である。例えば、ノード1(260)はホス
ト計算機201、ノード2(261)は数値制御装置2
00c1である。262は、オペレーティングシステム
240aのもとでスレッド1とスレッド2との間の通信
を処理するスレッド間通信処理部である。263は、ノ
ード1とノード2とを結ぶノード間ネットワークであ
る。
【0073】いま、ノード1(260)内のスレッド1
(231)からノード2(261)内のスレッド3(2
33)にメッセージを送る場合を想定する。スレッド1
(231)はシステムコールによって相手スレッドを指
定し、メッセージを送る要求をオペレーティングシステ
ム240aに対して発行する。このシステムコールによ
って制御は、オペレーティングシステム240aに移
る。システムコールの内容を解析することで、制御はス
レッド間通信処理部262に移る。スレッド間通信処理
部262は、相手スレッドがあるノード(ノード2)を
判定し、ノード2(261)に対してノード間ネットワ
ーク263を介してメッセージを送る。そのメッセージ
は、ノード2(261)のスレッド間通信処理部262
に渡り、スレッド間通信処理部262は、指定されたス
レッド3(233)に対してメッセージを渡す。
【0074】上記の想定では、スレッド1(231)か
らスレッド3(233)に直接にメッセージを送るもの
としたが、マルチスレッドオペレーティングシステムに
よってはメールボックスを用いてメッセージを渡すこと
も出来る。図10は、ノード1(260)内のスレッド
がノード2(261)内のスレッド3(233)にメー
ルボックスを用いてメッセージを送る場合の概念図であ
る。スレッド1(231)はシステムコールによって相
手スレッドのメールボックスを指定し、メッセージを送
る要求をオペレーティングシステム240aに対して発
行する。このシステムコールによって、制御はオペレー
ティングシステム240aに移る。システムコールの内
容を解析することで、制御はスレッド間通信処理部26
2に移る。スレッド間通信処理部262は指定されたメ
ールボックスがあるノード(ノード2)を判定して、ノ
ード2(261)に対してノード間ネットワーク263
を通してメッセージを送る。そのメッセージはノード2
(261)のスレッド間通信処理部262に渡る。スレ
ッド間通信処理部262は、メールボックス264にメ
ッセージを格納する。その後、スレッド間通信処理部2
62は、スレッド3(233)からポートを指定したメ
ッセージ読み込み要求があったらメッセージを渡す。読
み込み要求の方がメッセージの到着よりも速かった場合
には、メッセージが到着するまでスレッド3(233)
を待機させる。
【0075】上記実施例5によれば、ホスト計算機と1
つの数値制御装置との間でスレッド間通信を行なうこと
で、各スレッドをホスト計算機と1つの数値制御装置と
で分散して走らせるので、低コストにして効率的に数値
制御装置の制御ソフトウェアを実行することが出来る。
【0076】変形実施例5.この発明の変形実施例5の
数値制御装置の制御ソフトウェア実行システムは、実施
例5とほぼ同じである。但し、変形実施例5の制御ソフ
トウェア実行システムS5’は、1プロセス内の別スレ
ッドを別ノードで分散して走らせることができないマル
チスレッドオペレーティングシステムへの適用例であ
る。そのときは、ホスト計算機201に数値制御装置の
制御ソフトウェアの機能を実現するプロセスを走らせ、
1つの数値制御装置200c1(図示せず)にホスト計
算機のプロセスとは独立したスレッドを走らせる。その
際、1プロセス内のスレッドでアドレス空間を共有でき
る実施例5の利点を、分散型共有メモリの機能により実
現する。
【0077】図11は、分散型共有メモリの概念図であ
る。ノード1(260)のCPU131が、ある論理ア
ドレスに対応した主記憶134の内容を読むときは、ア
ドレス変換機構132と変換テーブル133を用いて、
主記憶134の物理アドレスを算出して、内容を得る。
例えば、論理アドレスがノード1(260)の主記憶1
34に対応しているならば、ノード1(260)の変換
テーブル133は主記憶134の物理アドレスを算出す
る。また、論理アドレスがノード2(261)の主記憶
134に対応しているならば、ノード1(260)の変
換テーブル133は、ノード間ネットワーク135を介
してノード2(261)の変換テーブル133に主記憶
134の内容の読出しを要求する。
【0078】上記変形実施例5によれば、1プロセス内
の別スレッドを別ノードで分散して走らせることができ
ないマルチスレッドオペレーティングシステムを用いた
ときにも、上記実施例5と同じ効果が得られる。
【0079】実施例6.図12は、この発明の実施例6
の数値制御装置の制御ソフトウェア実行システムの概念
図である。この制御ソフトウェア実行システムS6は、
実施例5の制御ソフトウェア実行システムS5とほぼ同
じである。但し、実施例5では、ホスト計算機201と
1つの数値制御装置200c1とに分散してスレッドを
走らせたのに対して、実施例6では、ホスト計算機20
1と複数の数値制御装置200d1〜200dnとに分
散してスレッドを走らせる点が実施例5とは異なる。な
お、数値制御装置200d1〜200dnのハードウェ
ア構成は、実施例5の数値制御装置と同じである。例え
ば、実時間処理が必要な補間処理24やサーボ処理25
(図28)を行なうスレッド231は、それぞれの数値
制御装置200d1〜200dnで走らせ、実時間処理
が不要な加工プログラム入力処理21や補正計算処理2
2(図28)を行なうスレッド232は、ホスト計算機
201上で共通に走らせるのが好適である。なお、ホス
ト計算機201上のスレッド232は、数値制御装置2
00d1〜200dn対応で少なくとも1つずつ走らせ
る。
【0080】上記実施例6によれば、各スレッドを特性
に応じて、ホスト計算機と複数の数値制御装置とで分散
して走らせるので、さらに効率的に数値制御装置の制御
ソフトウェアを実行することが出来る。
【0081】実施例7.図13は、この発明の実施例7
の制御ソフトウェア実行システムの全体構成図である。
この制御ソフトウェア実行システムS7は、これまでの
制御ソフトウェア実行システムと同様の構成であるが、
キーボードと表示装置を備えていない数値制御装置20
0e1〜200enを用いた点が異なる。
【0082】図14は、数値制御装置200e1のハー
ドウェア構成図である。なお、数値制御装置200e2
〜200enも同じ構成である。数値制御装置200e
1は、実施例4の数値制御装置200b1(図7相当)
から、表示装置6とキーボード7とを取り除いた構成で
ある。
【0083】図15は、この制御ソフトウェア実行シス
テムS7の動作を示す概念図である。数値制御装置20
0e1の表示設定処理を行なうスレッド273は、他の
スレッド272から表示要求があったとき、自分では表
示処理を行わず、ホスト計算機201の表示装置を制御
するスレッド270に対して内部ネットワーク205を
介して表示要求を送る。スレッド270は表示要求を受
け取ると、表示装置203に対して表示処理を行なう。
つまり、数値制御装置200e1の表示装置に表示する
代りに、ホスト計算機201の表示装置203に表示す
る。(そのときは、ホスト計算機本来の画面を表示でき
なくなるので、表示装置203はホスト計算機本来の画
面または1つの数値制御装置のいずれかの画面を表示す
ることになる) また、ホスト計算機201のキーボード204が数値制
御装置200e1への指示を受け付けると、スレッド2
71は、その指示内容を内部ネットワーク205を介し
て数値制御装置200e1の表示設定処理を行なうスレ
ッド273へ送る。つまり、数値制御装置200e1の
キーボードを用いて入力する代りに、ホスト計算機20
1のキーボード204を用いて入力する。
【0084】上記実施例7によれば、ホスト計算機20
1の表示装置203に1つの数値制御装置の画面を表示
すると共に、ホスト計算機201のキーボード204を
用いて1つの数値制御装置への指示を入力できるように
なるので、数値制御装置の表示装置やキーボードがいら
なくなり、数値制御装置の構成を簡略化して安価にする
ことが出来る。
【0085】実施例8.図16は、この発明の実施例8
の数値制御装置の制御ソフトウェア実行システムの全体
構成図である。この制御ソフトウェア実行システムS8
は、実施例7の制御ソフトウェア実行システムS7とほ
ぼ同じ構成である。但し、実施例8では、数値制御装置
200f1〜200fnを用いた点と、ホスト計算機2
01の表示装置203aとしてビットマップディスプレ
イを用いた点が実施例7とは異なる。
【0086】図17は、この制御ソフトウェア実行シス
テムS8における表示処理の概念図である。ホスト計算
機201は、ホスト計算機本来の画面である画面1(2
80)と画面2(281)と画面3(282)に対応し
て、画面を制御するスレッド284,285,286を
生成する。数値制御装置200f1では、表示要求があ
ると、実施例7と同様にして、ホスト計算機201のス
レッド284,285,286に対して内部ネットワー
ク205を介して表示要求を送る。そこで、ホスト計算
機201は、ホスト計算機本来の画面と数値制御装置2
00f1の複数の画面を表示装置203aに表示する。
【0087】上記実施例8によれば、ホスト計算機の表
示装置にホスト計算機本来の画面と1つの数値制御装置
の複数の画面を1度に表示するので、ユーザは多彩な情
報を1度に得ることができるようになり、各種の指示を
入力する際の操作性が向上する。
【0088】実施例9.この発明の実施例9の数値制御
装置のソフトウェア実行システムS9は、実施例8とほ
ぼ同じである。但し、実施例8では、ホスト計算機20
1の表示装置203aに同時表示できるのは、ホスト計
算機本来の画面と1つの数値制御装置の複数の画面のみ
であったのに対して、実施例9では、ホスト計算機20
1の表示装置203a(図16相当)にホスト計算機本
来の画面と複数の数値制御装置200g1〜200gn
(図示せず)の画面を同時表示できる点が実施例8とは
異なる。そのためには、図17を用いて先に説明したホ
スト計算機201のスレッドを、表示対象の数値制御装
置200g1〜200gnの個数に応じてさらに増やせ
ば良い。
【0089】上記実施例9によれば、ホスト計算機の表
示装置に同時表示された画面からホスト計算機本来の情
報と複数の数値制御装置の情報を1度に得ることが出来
るため、操作性がさらに良くなる。
【0090】実施例10.図18は、この発明の実施例
10の数値制御装置の制御ソフトウェア実行システムの
全体構成図である。この制御ソフトウェア実行システム
S10は、実施例9とほぼ同じ構成である。但し、実施
例10では、マウスMなどのポインティングデバイスを
用いて任意の数値制御装置200h1〜200hnに対
して指令を与えられる点が実施例9とは異なる。
【0091】図19は、この制御ソフトウェア実行シス
テムS10における表示処理の概念図である。ホスト計
算機201は、図17を用いて先に説明した画面を制御
するスレッドに加えて、スレッド292を生成する。こ
のスレッド292は、ユーザにより操作されたマウスM
などのポインティングデバイスの動きを検知して、ポイ
ンティングデバイスカーソル291がどの画面にいるか
を判断して、それに応じて例えば画面1(280)を制
御するスレッド293に対してポインティングデバイス
カーソル291を表示するように要求を出す。そのと
き、キーボード204(図18)からの入力は、画面1
(280)への入力とみなして、入力情報を画面1(2
80)を制御するスレッド293に対して送る。スレッ
ド293は、当該数値制御装置(図示せず)(のスレッ
ド)に対して入力情報を送る。
【0092】上記実施例10によれば、ユーザは、指示
を与える数値制御装置をホスト計算機の画面上のポイン
ティングデバイスカーソルにより選択できるので、複数
の数値制御装置に指示を与える場合でもいちいち移動す
る必要がなくなる。
【0093】実施例11.この発明の実施例11の数値
制御装置のソフトウェア実行システムS11は、実施例
11は、数値制御装置200i1〜200in(図示せ
ず)に対する外部割り込み信号を処理できるようにした
ものである。
【0094】図20は、数値制御装置200i1のハー
ドウェア構成図である。なお、数値制御装置200i2
〜200inも同じ構成である。数値制御装置200i
1は、実施例4の数値制御装置200b1(図7)か
ら、メインCPU1とROM3と表示装置6とキーボー
ド7とアドレス変換機構132を取り除き、割り込み信
号処理部300を追加した構成である。この構成は、ホ
スト計算機201のCPUを数値制御装置200i1〜
200inでも使用することで、数値制御装置200の
メインCPU1およびアドレス変換機構132(図7相
当)を不要としたものである。
【0095】次に、この制御ソフトウェア実行システム
S11の動作を説明する。なお、説明の都合上、数値制
御装置200i1についての動作のみを説明するが、数
値制御装置200i2〜200inについても同様であ
る。数値制御装置200i1に対して何らかの処理を要
求する外部割り込み信号12は、数値制御装置200i
1の割り込み信号処理部300に伝えられる。このと
き、割り込み信号処理部300は、外部割り込み信号1
2をRAM4などにラッチ(一時的に記憶)しておく。
一方、ホスト計算機201は、RAM4などの内容を定
期的にチェックするスレッドを生成し、外部割り込み信
号12がラッチされていれば、数値制御装置200i1
に対して何らかの要求があったと判定して、ホスト計算
機201上の数値制御装置の制御ソフトウェアを実現す
るスレッド(群)に対してそれを知らせる。その後は、
これまでの実施例と同様に動作する。
【0096】上記実施例11によれば、数値制御装置の
CPUを無くすことが出来るので数値制御装置の構成を
簡略化できる。また、ホスト計算機が数値制御装置への
外部割り込み信号の有無を監視するので、割り込み処理
にも対処できる。
【0097】実施例12.図21は、この発明の実施例
12の数値制御装置の制御ソフトウェア実行システムの
全体構成図である。この制御ソフトウェア実行システム
S12は、ハードディスク202への読み書きを行なう
ファイルサーバ208と、CPUプール301と、外部
ネットワーク206と接続したゲートウェイ部2070
を備えている。また、数値制御装置数値制御装置200
j1〜200jnのハードウェア構成は、200i1〜
200in(図20)と同じである。
【0098】図22は、CPUプール301の内部構成
図である。CPUプール301のスロットには、複数の
CPUカード302が挿入されている。各CPUカード
302の間は、バス312により結ばれている。これら
CPUカード302は、同種のCPUに統一されていな
くてもよい。各CPUカード302のCPU311,3
13〜325は、それぞれローカルメモリ310,31
2〜326を備えている。
【0099】次に、この制御ソフトウェア実行システム
S12の動作を説明する。CPUプール301の1つの
CPUカード302に実施例11のホスト計算機201
のCPUの役目を果たさせる。これをホスト機能CPU
カードと呼ぶ。このホスト機能CPUカードが実施例1
1と同様の処理により数値制御装置200j1〜200
jnにCPUを割り当てる。例えば、図22においてC
PU311がホスト機能CPUであるとき、数値制御装
置200j1のCPUとしてCPU313を割り当て
る。このとき、数値制御装置200j1の制御ソフトウ
ェアを実行するスレッドは、ローカルメモリ310とロ
ーカルメモリ312(図22)にローディングされて、
それぞれホスト機能CPUのマルチスレッドオペレーテ
ィングシステムのもとで走る。これらの処理は、実施例
5で述べた処理と類似しているが、スレッド間通信はネ
ットワークではなくバス312を通して行なう点が実施
例5とは異なる。
【0100】なお、CPUの能力が不足するとき(例え
ばホスト機能CPUのオペレーティングシステムのもと
で走るスレッドの数がある一定量を越えたようなとき)
は、CPUプール301(図22)内のCPUカード3
02に余裕がある限り新たなCPUカード302を獲得
することで、CPUの処理能力を調整できる。具体的に
は、CPUの処理能力を多く必要とする時には複数のC
PUカード302を使用し、CPUの処理能力がそれほ
ど必要でない時には1つのCPUカード302を使用す
ればよい。
【0101】図23は、新たなCPUカード302を獲
得するときの動作を示す概念図である。320,321
は、ホスト機能CPU311上で走っているスレッドを
示している。322〜323は、数値制御装置200j
1の制御ソフトウェアを実行するCPU313上で走っ
ているスレッドである。
【0102】スレッド322は、CPU312上で走っ
ているスレッドの数を周期的に数える。スレッド320
は、スレッド322と周期的にメッセージを交換するこ
とでCPU313上で走っているスレッドの数を認識す
る。スレッドの数が所定値を越えると、スレッド320
は、数値制御装置200h1の処理を行なうCPU31
3を獲得したのと同じ手順で新たなCPUカードを獲得
する。ここでは、説明の都合上、図22におけるCPU
325を新たに獲得するものとする。まず、新たに走ら
せるべきスレッドのコードと、CPU325のオペレー
ティングシステムをハードディスク202(図21)か
ら読み出し、ローカルメモリ326にローディングす
る。初期化スレッドを走らせた後、スレッド322に対
して新たに獲得したCPU325についての情報を送
る。次に、それまでCPU313で走らせていたスレッ
ド322をCPU325に移して走らせる。
【0103】上記実施例12によれば、複数のCPUカ
ードを有するCPUプールを備えるので、数値制御装置
の制御ソフトウェアの処理負荷に応じてCPUを獲得・
解放することで処理能力を調整できる。
【0104】実施例13.この発明の実施例13の数値
制御装置の制御ソフトウェア実行システムS13は、実
施例12とほぼ同じである。但し、実施例12では1度
に1つずつの数値制御装置を制御するのに対して、実施
例13では1度に複数の数値制御装置を制御できる点が
実施例12とは異なる。
【0105】この制御ソフトウェア実行システムS13
の動作は、実施例12の制御ソフトウェア実行システム
S12の動作とほぼ同じである。但し、CPUプール3
01(図21)中のホスト機能CPUカード上のスレッ
ドが実施例12と同様の処理により数値制御装置に順に
CPUを割り当てていく。
【0106】上記実施例13によれば、CPUプールの
中のCPUを複数の数値制御装置のCPUとして割り当
てることができるので、実施例12による効果に加え
て、複数の数値制御装置の制御ソフトウェアを同時に実
行できるようになる。
【0107】実施例14.この発明の実施例14の数値
制御装置の制御ソフトウェア実行システムS14は、実
施例13とほぼ同じである。但し、実施例14では、C
PUプール301(図22)中の1つのCPUカード3
02を割り込み検査専用のCPUカードとして使用する
点が実施例13とは異なる。
【0108】この制御ソフトウェア実行システムS14
の動作は、実施例13の制御ソフトウェア実行システム
S13の動作とほぼ同じである。但し、CPUカード3
02のローカルメモリへのコードのローディングはホス
ト機能CPUのスレッドが行ない、割り込みを発見した
場合には、当該数値制御装置を制御しているCPUカー
ド302上のスレッドにメッセージを送ってそれを通知
する。また、割り込みが当該数値制御装置に対する最初
の割り込みであった場合には、それをホスト機能CPU
のスレッドに送って、これまで述べたような手順でその
数値制御装置の動作を開始させる。
【0109】上記実施例14によれば、CPUプールの
中の1つのCPUカードを割り込み検査専用のCPUと
して使うので、外部割り込み信号に迅速に対処すること
ができるようになる。
【0110】変形実施例14.図24は、この発明の変
形実施例14の数値制御装置の制御ソフトウェア実行シ
ステムの全体構成図である。この制御ソフトウェア実行
システムS14’は、実施例14とほぼ同じ構成であ
る。但し、変形実施例14では、CPUカード302の
CPUごとのローカルメモリ310,312〜326
(図22相当)に代えて、CPUカード302のCPU
で共有できる共有メモリ330を設けた点と、数値制御
装置200k1〜200knを用いた点が、実施例14
とは異なる。
【0111】図25は、数値制御装置200k1のハー
ドウェア構成図である。なお、数値制御装置200k2
〜200knは、数値制御装置200k1と同じ構成で
ある。数値制御装置200k1は、実施例11の数値制
御装置200i1(図20)からRAM4を取り除いた
構成である。
【0112】この制御ソフトウェア実行システムS1
4’の動作は、制御ソフトウェア実行システムS14の
動作とほぼ同じであるが、変形実施例5で説明したよう
な仮想的な分散型共有メモリを用いる代りに、実際に同
じ物理アドレスでスレッドを走らせることが出来る。こ
のときは、あるプロセス内のスレッドを任意のノード上
で走らせることが出来る。
【0113】上記変形実施例14によれば、CPUカー
ドのCPUごとにローカルメモリを備えなくても、実施
例14の効果を得られる。
【0114】実施例15.この発明の実施例15の数値
制御装置の制御ソフトウェア実行システムS15は、数
値制御装置200p1(図示せず)に汎用のマルチスレ
ッドオペレーティングシステム自体とデータ入力スレッ
ドだけを予め走らせておく。そして、データ入力スレッ
ドは、ホスト計算機201のデータ出力スレッドから、
ホスト計算機201のハードディスク202内にファイ
ルとして管理されている数値制御装置の制御ソフトウェ
アのコード部分を通信で受け取って、そのコードを数値
制御装置200p1のRAM4に順に格納していく。
【0115】上記実施例15によれば、数値制御装置は
ホスト計算機からダウンロードされた制御ソフトウェア
を実行できるので、ホスト計算機上で開発された制御ソ
フトウェアを速やかに実行できるようになる。また、ホ
スト計算機は、数値制御装置の制御ソフトウェアをファ
イルとして管理するので、管理効率が向上する。
【0116】実施例16.この発明の実施例16の数値
制御装置の制御ソフトウェア実行システムS16は、実
施例15とほぼ同じである。但し、実施例15ではダウ
ンロード対象の数値制御装置が1台であったのに対し
て、実施例16ではダウンロード対象の数値制御装置を
複数台としたものである。なお、ホスト計算機201が
ダウンロード対象の数値制御装置に応じた制御ソフトウ
ェアのコードをファイルとして管理することで、複数の
種類の数値制御装置に対応できる。
【0117】上記実施例16によれば、実施例15の効
果に加えて、複数の種類の数値制御装置の制御ソフトウ
ェアをファイルとして一括して管理するため、管理効率
がさらに向上する。
【0118】実施例17.この発明の実施例17の数値
制御装置の制御ソフトウェア実行システムS17は、実
施例15とほぼ同じである。但し、数値制御装置200
p1〜200pnに代えて、数値制御装置200q1〜
200qn(図示せず)を用いる点が実施例15とは異
なる。
【0119】図26は、数値制御装置200q1のハー
ドウェア構成図である。なお、数値制御装置200q2
〜200qnも同じ構成である。数値制御装置200q
1は、実施例4の数値制御装置200b1(図7)に、
フラッシュROM1133を追加した構成である。
【0120】次に、数値制御装置200q1に制御ソフ
トウェアをダウンロードするときの動作を説明する。数
値制御装置200q1には、汎用のマルチスレッドオペ
レーティングシステム自体と,データ入力スレッドと,
フラッシュROM書き込みスレッドだけを予め走らせて
おく。そして、データ入力スレッドは、ホスト計算機2
01のデータ出力スレッドから、ホスト計算機201の
ハードディスク202内にファイルとして管理されてい
る数値制御装置の制御ソフトウェアのコード部分を通信
で受け取って、そのコードを順にフラッシュROM書き
込みスレッドに渡す。フラッシュROM書き込みスレッ
ドは、与えられたコードをフラッシュROM1133に
書き込んでいく。
【0121】上記実施例17によれば、数値制御装置の
制御ソフトウェアをフラッシュROMに保持しておける
ため、数値制御装置を立ち上げる度に制御ソフトウェア
をダウンロードしなくてよい。また、フラッシュROM
に書き込まれた内容は1度にまとめて消去できるので、
制御ソフトウェアの書き換え時間を短縮できる。
【0122】なお、上記実施例1〜実施例17では、ホ
スト計算機201のオペレーティングシステムとして、
汎用のマルチスレッドオペレーティングシステムを用い
たが、汎用のマルチタスクオペレーティングシステムを
用いてもよい。
【0123】
【発明の効果】この発明の数値制御装置の制御ソフトウ
ェア実行システムによれば、汎用のマルチタスクオペレ
ーティングシステムまたはマルチスレッドオペレーティ
ングシステム上で数値制御装置の制御ソフトウェアを実
行できるようになるので、制御ソフトウェアの動作の検
証が容易となり、制御ソフトウェアの開発期間を短縮で
きる。また、計算機と数値制御装置との間でタスク間通
信を行なうことでタスクを分散して処理するので、低コ
ストにして効率的に数値制御装置の制御ソフトウェアを
実行することが出来る。
【図面の簡単な説明】
【図1】この発明の実施例1の制御ソフトウェア実行シ
ステムの全体構成図である。
【図2】プロセスを生成するための流れ図である。
【図3】ホスト計算機の内部に構成されたプロセスの概
念図である。
【図4】スケジューラによるスケジューリングの概念図
である。
【図5】スケジューラスレッドによるスケジューリング
の概念図である。
【図6】この発明の実施例4の制御ソフトウェア実行シ
ステムの全体構成図である。
【図7】数値制御装置200b1のハードウェア構成図
である。
【図8】この発明の実施例4の制御ソフトウェア実行シ
ステムの動作を示す概念図である。
【図9】数値制御装置とホスト計算機の間で行なわれる
スレッド間通信の概念図である。
【図10】メールボックスを介したスレッド間通信の概
念図である。
【図11】分散型共有メモリの概念図である。
【図12】この発明の実施例6の制御ソフトウェア実行
システムの概念図である。
【図13】この発明の実施例7の制御ソフトウェア実行
システムの全体構成図である。
【図14】数値制御装置200e1のハードウェア構成
図である。
【図15】この発明の実施例7の制御ソフトウェア実行
システムの動作を示す概念図である。
【図16】この発明の実施例8の制御ソフトウェア実行
システムの全体構成図である。
【図17】この発明の実施例8の制御ソフトウェア実行
システムにおける表示処理の概念図である。
【図18】この発明の実施例10における制御ソフトウ
ェア実行システムの全体構成図である。
【図19】この発明の実施例10の制御ソフトウェア実
行システムにおける表示処理の概念図である。
【図20】数値制御装置200i1のハードウェア構成
図である。
【図21】この発明の実施例12における制御ソフトウ
ェア実行システムの全体構成図である。
【図22】CPUプールの内部構成図である。
【図23】新たなCPUカードを獲得するときの動作の
概念図である。
【図24】この発明の変形実施例14の制御ソフトウェ
ア実行システムの全体構成図である。
【図25】数値制御装置200k1のハードウェア構成
図である。
【図26】数値制御装置200q1のハードウェア構成
図である。
【図27】従来の数値制御装置のハードウェア構成図で
ある。
【図28】従来の数値制御装置の処理手順を示す説明図
である。
【図29】割り込み処理の概念図である。
【図30】各タスク動作の時間的関係を示すタイムチャ
ートである。
【図31】ワークステーションを利用した制御ソフトウ
ェア開発システムの構成図である。
【図32】制御ソフトウェアの開発手順を示す流れ図で
ある。
【図33】クライアントワークステーションのメモリ態
様図である。
【図34】各プロセスが同じ論理アドレス空間を利用で
きることを示す原理図である。
【図35】1つのプロセスの論理アドレス空間内の領域
図である。
【図36】タイムシェアリングオペレーティングシステ
ムにおけるプロセスモデルの例示図である。
【図37】マルチスレッドオペレーティングシステムに
おけるモデルの例示図である。
【図38】1つのプロセスの論理アドレス空間内の別の
領域図である。
【符号の説明】
1 メインCPU 2 システムバス 3 ROM 4 RAM 5 SIOインタフェース部 6 表示装置 7 キーボード 8 サーボ制御部 9 サーボアンプ 10 サーボモータ 11 プログラムコントローラ部 12 外部割り込み信号 132 アドレス変換機構 1133 フラッシュROM S1〜S14 制御ソフトウェア実行システム 200a1,…200q1 数値制御装置 200kn,…200qn 数値制御装置 201 ホスト計算機 202 ハードディスク 203,203a 表示装置 204 キーボード 207 ネットワークインタフェース 205,208 内部ネットワーク 206 外部ネットワーク 207 ネットワークインタフェース 301 CPUプール 302 CPUカード 2070 ゲートウェイ部 M マウス

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 リアルタイムオペレーティンングシステ
    ム上で制御ソフトウェアを実行したときに起動される複
    数のタスクまたはスレッドの共同作業によって数値制御
    装置としての機能を実現する数値制御装置を具備し、汎
    用のマルチタスクオペレーティングシステムまたはマル
    チスレッドオペレーティングシステム上で実行するタス
    クまたはプロセス中のスレッドに数値制御装置本来のタ
    スクの機能を割り当てたことを特徴とする数値制御装置
    の制御ソフトウェア実行システム。
  2. 【請求項2】 汎用のマルチタスクオペレーティングシ
    ステムまたはマルチスレッドオペレーティングシステム
    を用いた計算機と、リアルタイムオペレーティンングシ
    ステム上で制御ソフトウェアを実行したときに起動され
    る複数のタスクまたはスレッドの共同作業によって数値
    制御装置としての機能を実現する数値制御装置とを具備
    してなり、前記数値制御装置は前記計算機のオペレーテ
    ィングシステムと同じオペレーティングシステムを用
    い、本来は数値制御装置が実行すべきタスクを前記計算
    機で処理しうることを特徴とする数値制御装置の制御ソ
    フトウェア実行システム。
  3. 【請求項3】 汎用のマルチタスクオペレーティングシ
    ステムまたはマルチスレッドオペレーティングシステム
    を用いた計算機と、その計算機と通信回線を介して接続
    した数値制御装置とを具備してなり、前記計算機と前記
    数値制御装置との間でタスク間通信またはスレッド間通
    信を行ない本来は前記数値制御装置が起動すべきタスク
    を分散して処理することを特徴とする数値制御装置の制
    御ソフトウェア実行システム。
  4. 【請求項4】 汎用のマルチタスクオペレーティングシ
    ステムまたはマルチスレッドオペレーティングシステム
    を用いた計算機と、その計算機と通信回線を介して接続
    しCPUを持たない数値制御装置とを具備してなり、前
    記計算機は本来は前記数値制御装置が起動すべきタスク
    を処理することを特徴とする数値制御装置の制御ソフト
    ウェア実行システム。
  5. 【請求項5】 汎用のマルチタスクオペレーティングシ
    ステムまたはマルチスレッドオペレーティングシステム
    を用いた計算機と、その計算機と通信回線を介して接続
    した数値制御装置とを具備してなり、前記計算機は本来
    は前記数値制御装置が起動すべきタスクを処理すると共
    に前記数値制御装置への割り込み要求の有無を監視する
    ことを特徴とする数値制御装置の制御ソフトウェア実行
    システム。
  6. 【請求項6】 複数のCPUを有し汎用のマルチタスク
    オペレーティングシステムまたはマルチスレッドオペレ
    ーティングシステムを用いた計算機と、その計算機と通
    信回線を介して接続しCPUを持たない数値制御装置と
    を具備してなり、前記計算機は本来は前記数値制御装置
    が起動すべきタスクを処理することを特徴とする数値制
    御装置の制御ソフトウェア実行システム。
  7. 【請求項7】 汎用のマルチタスクオペレーティングシ
    ステムまたはマルチスレッドオペレーティングシステム
    を用いた計算機と、その計算機と通信回線を介して接続
    した数値制御装置とを具備してなり、本来は前記数値制
    御装置が起動すべきタスクの中で実時間処理が必要なタ
    スクは前記数値制御装置に処理させ,実時間処理が不要
    なタスクは前記計算機に処理させることを特徴とする数
    値制御装置の制御ソフトウェア実行システム。
  8. 【請求項8】 汎用のマルチタスクオペレーティングシ
    ステムまたはマルチスレッドオペレーティングシステム
    を用いた計算機と、その計算機と通信回線を介して接続
    した数値制御装置とを具備してなり、前記計算機はファ
    イルとして管理している前記数値制御装置の制御ソフト
    ウェアを前記数値制御装置へダウンロードし、前記数値
    制御装置はダウンロードされた制御ソフトウェアを実行
    することを特徴とする数値制御装置の制御ソフトウェア
    実行システム。
JP17549093A 1993-07-15 1993-07-15 数値制御装置の制御ソフトウェア実行システム Expired - Fee Related JP2820189B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP17549093A JP2820189B2 (ja) 1993-07-15 1993-07-15 数値制御装置の制御ソフトウェア実行システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17549093A JP2820189B2 (ja) 1993-07-15 1993-07-15 数値制御装置の制御ソフトウェア実行システム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP10165303A Division JP3053797B2 (ja) 1998-06-12 1998-06-12 制御装置の制御ソフトウエア実行システム

Publications (2)

Publication Number Publication Date
JPH0736529A true JPH0736529A (ja) 1995-02-07
JP2820189B2 JP2820189B2 (ja) 1998-11-05

Family

ID=15996961

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17549093A Expired - Fee Related JP2820189B2 (ja) 1993-07-15 1993-07-15 数値制御装置の制御ソフトウェア実行システム

Country Status (1)

Country Link
JP (1) JP2820189B2 (ja)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000075907A (ja) * 1998-09-01 2000-03-14 Yokogawa Electric Corp 生産システム
JP2001518660A (ja) * 1997-09-30 2001-10-16 タンデム コンピューターズ インコーポレイテッド 多重ノードクラスタにおける多重プロセッサノードの逐次及び確実な始動及び/又は再ロード方法
JP2006350406A (ja) * 2005-06-13 2006-12-28 Seiko Epson Corp マルチcpu装置およびcpu間通信方法
JP2009540540A (ja) * 2006-06-02 2009-11-19 サイマー インコーポレイテッド ハイパワーレーザフラットパネル加工物処理システムコントローラ
JP2010503067A (ja) * 2006-09-05 2010-01-28 サンネン プロダクツ カンパニー ゲージシステムの機械制御への完全統合による機械加工パラメータの自動制御のためのコントローラ
CN102540973A (zh) * 2010-12-09 2012-07-04 中国科学院沈阳计算技术研究所有限公司 一种用于数控系统的命令多发机制的实现方法
JP2016071407A (ja) * 2014-09-26 2016-05-09 ファナック株式会社 ホストコンピュータ上の制御用ソフトウェアを使用した数値制御装置
JP2016133911A (ja) * 2015-01-16 2016-07-25 ファナック株式会社 加工プログラムに応じて数値制御装置のコントロールソフトウェアを最適化する機能を備えた制御システム
JP2017520061A (ja) * 2014-09-26 2017-07-20 華中科技大学 仮想化技術に基づく数値制御システムおよびその制御方法
JP2020061015A (ja) * 2018-10-11 2020-04-16 ファナック株式会社 数値制御装置
JPWO2022050090A1 (ja) * 2020-09-07 2022-03-10

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001518660A (ja) * 1997-09-30 2001-10-16 タンデム コンピューターズ インコーポレイテッド 多重ノードクラスタにおける多重プロセッサノードの逐次及び確実な始動及び/又は再ロード方法
JP2000075907A (ja) * 1998-09-01 2000-03-14 Yokogawa Electric Corp 生産システム
JP2006350406A (ja) * 2005-06-13 2006-12-28 Seiko Epson Corp マルチcpu装置およびcpu間通信方法
JP2009540540A (ja) * 2006-06-02 2009-11-19 サイマー インコーポレイテッド ハイパワーレーザフラットパネル加工物処理システムコントローラ
JP2010503067A (ja) * 2006-09-05 2010-01-28 サンネン プロダクツ カンパニー ゲージシステムの機械制御への完全統合による機械加工パラメータの自動制御のためのコントローラ
CN102540973A (zh) * 2010-12-09 2012-07-04 中国科学院沈阳计算技术研究所有限公司 一种用于数控系统的命令多发机制的实现方法
JP2016071407A (ja) * 2014-09-26 2016-05-09 ファナック株式会社 ホストコンピュータ上の制御用ソフトウェアを使用した数値制御装置
JP2017520061A (ja) * 2014-09-26 2017-07-20 華中科技大学 仮想化技術に基づく数値制御システムおよびその制御方法
JP2016133911A (ja) * 2015-01-16 2016-07-25 ファナック株式会社 加工プログラムに応じて数値制御装置のコントロールソフトウェアを最適化する機能を備えた制御システム
US10088834B2 (en) 2015-01-16 2018-10-02 Fanuc Corporation Control system having function for optimizing control software of numerical controller in accordance with machining program
JP2020061015A (ja) * 2018-10-11 2020-04-16 ファナック株式会社 数値制御装置
US11287797B2 (en) 2018-10-11 2022-03-29 Fanuc Corporation Numerical control device
JPWO2022050090A1 (ja) * 2020-09-07 2022-03-10
WO2022050090A1 (ja) * 2020-09-07 2022-03-10 株式会社日立産機システム コントロールシステム

Also Published As

Publication number Publication date
JP2820189B2 (ja) 1998-11-05

Similar Documents

Publication Publication Date Title
CN100570565C (zh) 在管理程序中提供基于策略的操作系统服务的方法和系统
CN101233489B (zh) 自适应进程分派的方法和系统
US4660144A (en) Adjunct machine
CN101894045A (zh) 一种实时Linux操作系统
JPH0223894B2 (ja)
US20010014958A1 (en) Information processing apparatus, defect analysis program, defect analysis method, and application program development assistance system
US8108852B2 (en) Online modification of CIL code programs for industrial automation
Merzky et al. Design and performance characterization of radical-pilot on leadership-class platforms
US6691118B1 (en) Context management system for modular software architecture
JPH0736529A (ja) 数値制御装置の制御ソフトウェア実行システム
CN102331961B (zh) 并行模拟多个处理器的方法及系统、调度器
JP3053797B2 (ja) 制御装置の制御ソフトウエア実行システム
JPH09114693A (ja) プログラム開発支援装置及びプログラム実行装置
Golatowski et al. Framework for validation, test and analysis of real-time scheduling algorithms and scheduler implementations
JPH06348664A (ja) 異なる命令特性を持つ複数のcpuによって構成される計算機システムの制御装置
Zhang et al. Implementation of Real-Time Scheduling Algorithm on Multi-Core Platform
US5812846A (en) Method and apparatus for passing control from a first process to a second process
CN116775038B (zh) 支持iec和c++任务同时或独立运行的运行时系统
Himstedt et al. D6. 2 Collection of Success Stories
JPH0744401A (ja) 論理集積回路およびそのデータ処理システム
Smith A directly coupled multiprocessing system
JPH04299734A (ja) ソフトウェア開発方法
JP2000330775A (ja) 組み込みシステム開発方法
Krikor et al. Design of a real-time co-operating system for multiprocessor workstations
Hölscher Nested Preemption Fixed-Priority Scheduler for EV3OSEK

Legal Events

Date Code Title Description
FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20070828

Year of fee payment: 9

FPAY Renewal fee payment (prs date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080828

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees