JP3053797B2 - 制御装置の制御ソフトウエア実行システム - Google Patents

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

Info

Publication number
JP3053797B2
JP3053797B2 JP10165303A JP16530398A JP3053797B2 JP 3053797 B2 JP3053797 B2 JP 3053797B2 JP 10165303 A JP10165303 A JP 10165303A JP 16530398 A JP16530398 A JP 16530398A JP 3053797 B2 JP3053797 B2 JP 3053797B2
Authority
JP
Japan
Prior art keywords
thread
task
operating system
processing
control
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.)
Expired - Fee Related
Application number
JP10165303A
Other languages
English (en)
Other versions
JPH1173216A (ja
Inventor
茂樹 南角
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 JP10165303A priority Critical patent/JP3053797B2/ja
Publication of JPH1173216A publication Critical patent/JPH1173216A/ja
Application granted granted Critical
Publication of JP3053797B2 publication Critical patent/JP3053797B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、制御装置の制御
ソフトウェア実行システムに関し、さらに詳しくは、制
御装置の制御ソフトウェア(コントロールプログラム)
を効率的に実行できる制御装置の制御ソフトウェア実行
システムに関する。
【0002】
【従来の技術】図11に示す数値制御装置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命令
ずつ順に読み込んで実行する。図12に、命令読込後の
処理手順を示す。加工プログラム入力処理21では、S
IOインタフェース部5を通して外部から加工プログラ
ム20を読み込み、RAM4に格納する。そして、加工
プログラム20をブロック(所定の単位)ごとに内部デ
ータに変換する。補正計算処理22では、ブロックごと
の内部データを処理し、増分移動量を算出する。また、
工具径や工具長などを補正する。さらに、内部の座標値
の更新処理を行なう。設定表示処理23では、数値制御
装置の各種データを表示装置6に表示する。また、キー
ボード7を用いてオペレータが入力した各種設定データ
をRAM4に格納する。補間処理24では、補正計算処
理22の処理結果を用いて、微小時間ごとの各軸の移動
量を算出する。サーボ処理25では、補間処理24の処
理結果を用いて、さらに小さな単位時間ごとの各軸の移
動量に変換する。更に、サーボモータ10からのフィー
ドバック制御(図示せず)を行なう。プログラムコント
ロール処理26では、工作機械との間での入出力処理や
主軸の制御など、工作機械の周辺の制御などを行なう。
【0004】さて、上記の数値制御装置501は、先に
説明したようにメインCPU1に外部割り込み信号12
を入力して割込み処理を行なわせることで、非常停止な
どの緊急事態に対処することが出来る。メインCPU1
は、外部割り込み信号12が入力されると、予め指定さ
れた別処理を実行し、それら別処理が終了した後に、通
常の命令に復帰する。
【0005】図13は、割り込み処理の概念図である。
30〜36は、通常の命令である。37〜40は、割り
込み命令である。41は、通常の命令への復帰命令であ
る。例えば、メインCPU1が通常の命令33を実行中
に外部割り込み信号12が入力されると、メインCPU
1は、通常の命令33の処理終了後、割り込みを検出
し、予め指定されていた割り込み命令37の実行を開始
する。そして、割り込み命令37〜40の実行を終了し
た後、復帰命令41を実行して、通常の命令34に復帰
し、通常の命令35,36を実行する。なお、割り込み
処理の処理時間が長くなると多重割り込みなどを考慮す
る必要が出てくるので、割り込み処理の処理時間をでき
るだけ短くすることが望ましい。
【0006】ところで、上記の数値制御装置501の制
御ソフトウェアは、以下に示すような特徴を有する。
数値制御装置の制御ソフトウェアの機能ごとに、処理に
必要な応答時間(ターンアラウンドタイム,デッドライ
ン)が異なる。例えば、サーボ処理25(図12)は、
処理結果の算出が遅れると切削が止って被加工物が不良
品になってしまうので、実時間処理でなくてはならな
い。一方、表示装置6への表示処理などは、多少遅れて
も不都合は生じないので、実時間処理でなくてもよい。
メインCPU1が実行すべき割り込み処理に、多くの
種類がある。これらの理由により、数値制御装置501
の制御ソフトウェアは、一般にリアルタイムオペレーテ
ィングシステムの制御のもとで実行される機能ごとのタ
スクを実行単位とすることが多い。
【0007】次に、リアルタイムオペレーティングシス
テムにより各タスクを制御する方法を説明する。あるタ
スクを定期的に実行させたり、あるタスクを実行する時
間を制限したりするために、通常はメインCPU1に対
してある一定周期で内部割り込みを入れる。(これをシ
ステムクロックと呼ぶ) リアルタイムオペレーティングシステムは、システムク
ロック割り込みがある度に各タスクの状態を調べ、実行
中のタスクを止めて別のタスクを実行させたりする。
(これをスケジューリング、またはディスパッチと呼
ぶ) また、リアルタイムオペレーティングシステムにおいて
は、各タスクに優先順位(実行の優先度)づけを行な
う。この優先順位の意味は、より低い優先順位のタスク
を実行中に、より高い優先順位のタスクを実行する準備
ができたときは、その優先順位の低いタスクの実行を中
断させて優先順位の高いタスクを実行させることをい
う。(これを横取りという)
【0008】図14は、各タスク動作の時間的関係を示
すタイムチャートである。縦軸は各処理の実行状況(実
行または停止)を表し、横軸は時間の経過を表す。な
お、図面作成の都合上、各処理としては、リアルタイム
オペレーティングシステムと,割り込み処理と,(優先
順位が高い順に)サーボ処理タスク,補正計算処理タス
ク,表示設定処理タスクを用いるものとする。P1は、
リアルタイムオペレーティングシステムが動作している
最中に割り込みが発生して制御が割り込み処理に移った
ことを示す。P2は、割り込み処理が終了した後、リア
ルタイムオペレーティングシステムのスケジューラに制
御が返る様子を示す。なお、スケジューラは、リアルタ
イムオペレーティングシステムでスケジューリングを行
なう部分である。P3は、リアルタイムオペレーティン
グシステムのスケジューラにより、次に実行するタスク
としてサーボ処理タスクが選ばれたことを示す。P4
は、サーボ処理タスクが終了した後、リアルタイムオペ
レーティングシステムに制御が返る様子を示す。P5
は、リアルタイムオペレーティングシステムのスケジュ
ーリングによって、次に実行するタスクとして補正計算
処理タスクが選ばれたことを示す。P6は、補正計算処
理タスクが終了した後、リアルタイムオぺレーティング
システムに制御が返る様子を示す。P7は、より優先順
位の高いタスクを実行する準備ができていないので、優
先順位が最も低い表示処理設定処理タスクに移ったこと
を示す。P8は、割り込みが発生したことで表示処理設
定処理タスクを中断し、割り込み処理に制御が移ったこ
とを示す。P9は、割り込み処理を終了した後、リアル
タイムオペレーティングシステムのスケジューラに制御
が返る様子を示す。(一般に、割り込み処理を終了した
後は、もとのタスクに制御は戻らず、オペレーティング
システムのスケジューラに制御が返る。) P10は、再び表示設定処理タスクに制御が移ったこと
を示す。P11は、システムクロック(図示せず)によ
ってリアルタイムオペレーティングシステムのスケジュ
ーラに制御が返ったことを示す。P12は、サーボ処理
タスクを実行する準備ができたので、サーボ処理タスク
に移ったことを示す。(これは、表示設定タスクがサー
ボ処理タスクに実行権を横取りされた例である) P13は、サーボ処理タスクはその実行を終了した後、
自主的に実行権を放棄して、リアルタイムオペレーティ
ングシステムのスケジューラに制御を返したことを示
す。P14は、再び表示設定処理タスクに制御が移った
ことを示す。以降、各タスクは同様の動作を繰り返し
て、処理を続ける。
【0009】なお、図14に示したように、システムク
ロック以外の割り込みは不定期に発生するため、数値制
御装置側ではその発生を予想できない。そこで、各タス
クの特性に応じて、処理時間の配分を行なう必要があ
る。例えば、サーボ処理タスクは、前もって所定の単位
時間のサーボモータの一回分の移動量を計算しておくた
めに、所定の単位時間以内に次の移動量を計算しておく
必要がある。つまり、少なくとも所定の単位時間以内に
は繰り返して実行する必要がある。一方、補正計算処理
タスクは、例えば1回の実行で、サーボ処理タスクを3
回だけ実行するために必要なデータを作成できるので、
単位時間3回につき1回だけ実行すれば良い。また、表
示設定処理タスクは他の処理がない時だけ実行すれば足
る。
【0010】以上で述べたように、数値制御装置501
は、リアルタイムオペレーティングシステム上で制御ソ
フトウェアを実行したときに起動される複数のタスクの
共同作業によって数値制御装置としての機能を実現す
る。
【0011】さて、現在、数値制御装置の制御ソフトウ
ェアの開発マシンとしては、ワークステーションが主流
である。そこで、図15に、ワークステーションを用い
た数値制御装置の制御ソフトウェア開発のシステム構成
を例示する。100は、コンパイラ,数値制御装置の制
御ソフトウェアのソースコードやオブジェクトコードな
ど、各種ファイルを格納しているハードディスクであ
る。101は、各種ファイルを一括管理したり、クライ
アントワークステーションの要求に応じてファイルを転
送したりするファイルサーバである。102は、他のネ
ットワークと通信するためのゲートウェイマシンであ
る。103は、各種I/Oデバイスを制御するためのI
/Oサーバである。104は、他のシステムに繋がって
いるネットワークである。105は、システム内を結ぶ
ローカルネットワークである。106〜108は、クラ
イアントワークステーションである。
【0012】ワークステーションおよびワークステーシ
ョンのオペレーティングシステムについて説明する。ワ
ークステーションには、以下に示すような特徴がある。 ワークステーションにおいては多くのユーザが同時に
使用して、その各ユーザに対して公平なオペレーティン
グシステムのサービスが要求される。つまり、ユーザに
よる優先順位のようなものも普通は存在しないし、また
緊急の割り込みというものもほとんど存在しない。 必ず決まった時間以内に処理しなくてはならない処理
は、ほどんど無い。そのため、ワークステーションのオ
ペレーティングシステムとしては、多数の利用者が端末
と対話しながら処理を行えるタイムシェアリングオペレ
ーティングシステムを用いることが多い。
【0013】タイムシェアリングオペレーティングシス
テムにおいて、あるまとまった処理の単位はプロセスと
呼ばれる。プロセスは、リアルタイムオペレーティング
システムにおけるタスクと類似している。但し、一般
に、リアルタイムオペレーティングシステムのもとでの
各タスクのアドレス空間は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番地では実際のメモリ上の異なるところを指す
ので、そのデータも異なる。
【0014】次に、プロセスごとに固有なアドレス空間
の実現方法を説明する。図16は、クライアントワーク
ステーションのメモリ態様図である。130はクライア
ントワークステーション、131はCPU、132はア
ドレス変換機構、133は変換テーブル、134は主記
憶(メモリ)、135はネットワーク、136はファイ
ルサーバ、137はハードディスクである。
【0015】さて、クライアントワークステーション1
30において、CPU131で区別できるアドレス空間
(論理アドレス空間)は、一般に、主記憶につけられた
物理的な番地(物理アドレス空間)よりも大きい。そこ
で、仮想記憶の手法により、物理アドレス空間外の論理
アドレスをハードディスクなどの2次記憶装置に割り当
てることで、2次記憶装置をも主記憶とみなせるように
なる。つまり、主記憶の大きさが実装容量に制限されな
くなるので、アドレス空間の制限を気にせずにソフトウ
ェアを作成できるようになる。
【0016】次に、仮想記憶の手法をさらに詳しく説明
する。図16において、CPU131はアドレス変換機
構132に対して論理アドレスを送る。アドレス変換機
構132では、与えられた論理アドレスの一部または全
部を取り出して変換テーブル133の配列の何番目かを
示すインデックスとして用いる。変換テーブル133の
内容が主記憶134のアドレスを示していれば主記憶1
34に対して所定の動作を行なう。また、変換テーブル
133の内容がハードディスク137のブロック番号な
どを示していればファイルサーバ136に対してブロッ
ク番号に対応した内容を要求し、ネットワーク135を
介して内容を受け取る。主記憶134に未使用領域が有
れば、受け取ったデータを未使用領域に格納し、データ
を格納した領域を示すように変換テーブル133の内容
を書き換える。また、主記憶134に未使用領域が存在
しなければ、主記憶134に未使用領域が無ければ、主
記憶134の既使用領域を選び、その内容をハードディ
スク137に書き戻し、その領域を新たに使用する。な
お、主記憶134から変換テーブル133を逆にたどる
ソフトウェアの機能も備えられている。(これをコアマ
ップと呼ぶ)
【0017】さらに、プロセスごとに変換テーブルを持
つことにより、各プロセスが同じ論理アドレス空間を利
用することが出来る。この様子を図17に示す。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上の異
なる領域を指している。つまり、各プロセスが論理アド
レス空間をフルに利用することが出来る。
【0018】各プロセスは、例えば図18に示すよう
に、論理アドレス空間をいくつかの領域に分けて使用す
る。155は、1つのプロセスのすべての論理アドレス
空間を示す。156は、そのプロセスのテキスト(プロ
グラム)領域を示す。158は、予備領域である。この
予備領域は、普段は未使用領域であるが、データ領域や
スタック領域が不足したときには、図示の矢印の方向
で、データ領域やスタック領域として用いられる。15
7は、そのプロセスが使用するデータ領域を示す。15
9は、スタック領域を示す。
【0019】図19は、タイムシェアリングオペレーテ
ィングシステムにおけるプロセスモデルを示す。210
は計算機、211はプロセス、212は実体(例えばテ
キストコード)、213は実体において現在実行中のコ
ードを示すプログラムカウンタである。各プロセスは、
アドレス空間や、そのプログラムカウンタや、スタック
や、レジスタ群などを持っている。なお複数のプロセス
間で協調して処理を行なうときには、プロセス間通信の
手段を用いて相互に連絡をとる必要がある。
【0020】上記のタイムシェアリングオペレーティン
グシステムでは、各プロセスが固有のアドレス空間を持
つので、プロセスごとの変換テーブルの書き換えなどに
手間がかかり、プロセスの切り換えに時間がかかりやす
い欠点がある。また、各プロセス内の実行を行なう実体
は1個であるので、複雑な処理を行なうアプリケーショ
ンプログラムに対応しずらくなってきた。そのため、近
年、1つのプロセス中に複数の実体を置き、各実体を共
通のアドレス空間のもとであたかも別々のプロセスであ
るかのように動かせるマルチスレッドオペレーティング
システムが提案されている。
【0021】図20に、マルチスレッドオペレーティン
グシステムのモデルを示す。210は計算機、211は
プロセス、212は実体、213はプログラムカウンタ
である。実体212aを、スレッド(またはライトウェ
イトプロセス)と呼ぶ。このスレッドは、プロセスと同
様に、固有のプログラムカウンタやスタックを備えてお
り、他のプロセスとは独立して動く。1つのプロセス内
の全てのスレッドは同じアドレス空間を持っているの
で、共通変数を共有することも容易である。つまり、先
に説明したタイムシェアリングオペレーティングシステ
ムのプロセスモデルでは、各プロセスが1つずつしかス
レッドを持てないのに対して、マルチスレッドオペレー
ティングシステムのプロセスモデルでは、1つのプロセ
スが複数のスレッドを持つことができる。
【0022】一般的に、各プロセスが持っていなければ
ならない情報には次のようなものがある。 ・アドレス空間 ・共通変数(大域変数) ・開いているファイルの情報 ・自分が生成したプロセスの情報 ・タイマー情報 ・シグナル情報 ・セマフォーの情報 一方、スレッド毎に持つべき情報には次のようなものが
ある。 ・プログラムカウンタ ・スタック ・レジスタセット ・自分が生成したスレッドの情報 ・自分自身の状態
【0023】1つのプロセス中のすべてのスレッドは、
プロセスごとに持つべき上記の情報を共有している。一
方、スレッドごとに持つべき上記の情報は、各スレッド
が個々に持っている。例えば図21に示すように、1つ
のプロセスのすべての論理アドレス空間155は、テキ
スト領域156と,データ領域157と,予備領域15
8と,スレッド1のスタック領域220と,スレッド2
のスタック領域221と,スレッド3のスタック領域2
22と,スレッド「N−1」のスタック領域223と,
スレッドNのスタック領域224とに分れている。つま
り、1つのプロセス内の各スレッドが個別に持たねばな
らない領域のみを別個に割り当てることによって、1つ
のプロセス内に複数のスレッドを構成できる。
【0024】次に、マルチスレッドオペレーティングシ
ステムにおけるスケジューリングを説明する。図14を
用いて先に説明したリアルタイムオペレーティングシス
テムではタスクごとにスケジューリング行なったのに対
して、マルチスレッドオペレーティングシステムでは、
スレッドごとにスケジューリングを行なう。但し、マル
チCPUのときにはCPUごとにスレッドが割り当てら
れるので、割り当てられたスレッドごとのスケジューリ
ングを行なえばよい。
【0025】
【発明が解決しようとする課題】上記従来の数値制御装
置501では、数値制御装置のメインCPUとして、高
性能なCPUを使用すると、CPU性能をフルに発揮し
ていない間の余力が無駄となり、コスト高となる。一
方、低性能なCPUを使用すると、低コストとなる代り
に、数値制御装置としての機能に支障が出たり、処理時
間が長くなったりする。この発明は、上記のような問題
点を解決するためになされたもので、低コストで効率的
に制御装置の制御ソフトウェアを実行できる制御装置の
制御ソフトウェア実行システムを得ることを目的とす
る。
【0026】
【課題を解決するための手段】この発明は、スケジュー
リング機能を有するオペレーティングシステムを用いた
計算機とその計算機に通信回線を介して接続された制
装置との間に分散型共有メモリの機能を持たせ、リアル
タイムオペレーティンングシステム上で制御ソフトウェ
アを実行したときに起動される複数のタスクの共同作業
によって制御装置としての機能を実現する制御装置のタ
スクの機能を、前記オペレーティングシステムのスケジ
ューリング機能および前記分散型共有メモリの機能を利
用して、前記計算機と前記制御装置とで分散して処理す
ることを特徴とする制御装置の制御ソフトウェア実行シ
ステムを提供する。上記制御装置の制御ソフトウェア実
行システムでは、計算機と制御装置との間でタスクを分
散して処理するので、制御装置には低性能のCPUを使
用でき、低コストにして効率的に制御装置の制御ソフト
ウェアを実行することが出来る。また、オペレーティン
グシステムのスケジューリング機能を利用するので、ス
ケジューラスレッドを生成する必要がない。さらに、分
散型共有メモリの機能を利用するため、1プロセス内の
別スレッドを別ノードで分散して走らせることができな
いマルチスレッドオペレーティングシステムを用いたと
きにも、計算機と制御装置との間でタスクを分散して処
理することが出来る。
【0027】
【発明の実施の形態】図1は、この発明の一実施形態の
数値制御装置の制御ソフトウェア実行システムの全体構
成図である。この制御ソフトウェア実行システムS3
は、数値制御装置200b1〜200bnと、ホスト計
算機201と、ハードディスク202と、表示装置20
3と、キーボード204とを備える。数値制御装置20
0b1〜200bnとホスト計算機201とは、内部ネ
ットワーク205を介して接続されている。数値制御装
置200b1〜200bnは、リアルタイムオペレーテ
ィングシステムのもとで制御ソフトウェアを実行して、
数値制御装置としての機能を実現する。ホスト計算機2
01は、汎用のマルチスレッドオペレーティングシステ
ムのもとで数値制御装置の制御ソフトウェアを実行す
る。ハードディスク202は、ホスト計算機201の外
部記憶装置である。表示装置203は、ユーザが必要と
する各種の情報を表示する。キーボード204は、ユー
ザからの指示などを受け付ける。外部ネットワーク20
6は、ホスト計算機201を、汎用のワークステーショ
ン(図示せず)などと結ぶ。
【0028】図2は、数値制御装置200b1のハード
ウェア構成図である。なお、数値制御装置200b2〜
200bnも同じ構成である。1は、各部の作動を制御
したり、数値制御に必要な演算を行なったりするメイン
CPUである。2は、各部を結ぶシステムバスである。
3は、数値制御装置の主要機能を実現する制御ソフトウ
ェアなどを格納するROM(不揮発性の記憶装置)であ
る。4は、一時記憶やワークエリアなどに用いるRAM
(揮発性の記憶装置)である。5は、外部との間でシリ
アル通信によりデータのやり取りを行なうデータSIO
インタフェース部である。6は、数値制御装置の運転状
態を表示したり、数値制御装置に与えた指令を確認した
りするための表示装置である。7は、数値制御装置に指
令を与えるためのキーボード(入力装置)である。8
は、サーボモータを制御するための指令を演算するサー
ボ制御部である。9は、サーボ制御部8から受け取った
指令を増幅してサーボモータへ駆動信号を出力するサー
ボアンプである。10は、工作機械(図示せず)の加工
部を制御するためのサーボモータである。11は、工作
機械との間で、サーボ制御指令以外のデータをやり取り
するためのプログラムコントローラ部である。12は、
メインCPU1に与えられる、システムクロック(図示
せず)と外部割り込み信号を表している。システムクロ
ックは、数値制御装置全体を制御するためのクロック信
号である。また、外部割り込み信号は、電源異常や非常
停止などのイベント(緊急な出来事)の発生をメインC
PU1に通知するための信号である。132は、図16
を用いて先に説明した仮想記憶を実現するためのアドレ
ス変換機構である。207は、内部ネットワーク205
を通じてホスト計算機201や他の数値制御装置200
b2〜200bnとの間で通信を行なうためのネットワ
ークインタフェースである。
【0029】次に、ホスト計算機201により、数値制
御装置の制御ソフトウェアを実行する手順を説明する。
なお、説明の都合上、数値制御装置の制御ソフトウェア
は、予めハードディスク202に格納されているものと
する。まず、ユーザは、キーボード204を用いて数値
制御装置の制御ソフトウェアを実現するプロセスの起動
をホスト計算機201に指示する。ホスト計算機201
のマルチスレッドオペレーティングシステムは、数値制
御装置の制御ソフトウェアを実現するためのプロセスを
ハードディスク202から読み出し、プロセス管理テー
ブルに登録する。
【0030】プロセス管理テーブルは、概念的には、図
16と図17を用いて先に説明した変換テーブル133
と類似している。具体例で説明すれば、プロセス管理テ
ーブルは、変換テーブル133の配列の1番目からM番
目までを図21に示したテキスト領域156を示すため
のスロットとして確保し、変換テーブル133の配列の
「M+1」番目からN番目までを図21に示したデータ
領域157を示すためのスロットとして確保したもので
ある。
【0031】次に、ホスト計算機201は、数値制御装
置の制御ソフトウェアの実行状況に伴って、図21に示
したプロセスの論理アドレス空間155内の各領域を順
にハードディスク202から読み出して内部メモリ(図
示せず)へローディングする。
【0032】次に、ホスト計算機201は、数値制御装
置の制御ソフトウェアを実行したときのタスクに相当す
るプロセスを生成する。図3に、プロセスを生成するた
めの流れ図を示す。まず、ステップ241では、マルチ
スレッドオペレーティングシステムに備えられているシ
ステムコールを利用して、数値制御装置としての1機能
を実現している1タスク(数値制御装置のリアルタイム
オペレーティングシステムのもとでの1タスク)と同じ
処理を行なう1スレッドを生成する。具体的には、プロ
セス管理テーブルに新たなスレッドのスタック領域用の
スロットを確保し、マルチスレッドオペレーティングシ
ステムが認識するスレッドの表の中に新たなスレッドを
追加する。
【0033】ステップ242では、ステップ241で生
成したスレッドに対応した処理を行なう。例えば、数値
制御装置のリアルタイムオペレーティングシステムに対
するシステムコールを、ホスト計算機201のマルチタ
スクオペレーティングシステムのスレッドに対するシス
テムコールに書き換える。なお、変換ライブラリを用い
てシステムコールを変換するならば、書き換え負担を軽
減できる。
【0034】ステップ243では、数値制御装置のタス
クに相当するスレッドをすべて生成したか否か判定す
る。すべてのスレッドを生成したならばステップ244
に進み、生成すべきスレッドが残っていればステップ2
41に戻る。なお、すべてのスレッドを生成した時点で
は、ホスト計算機201の内部には、図4の概念図に示
すように、マルチスレッドオペレーティングシステム2
40上に、数値制御装置のタスクと同じ機能を実現する
スレッド1(231)〜スレッド6(236)を含むプ
ロセス211が構成されることになる。
【0035】ステップ244では、スレッド間のスケー
ジューリングを行なうスケージューリング方式を決定す
る。例えば、優先順位に応じて各スレッドを走らせるス
ケジューリング機能をホスト計算機201のマルチスレ
ッドオペレーティングシステムが備えている場合には、
システムコールを用いて各スレッドの優先順位を登録す
る。又は、ホスト計算機201のマルチスレッドオペレ
ーティングシステムは、準備ができた順序でスレッドを
走らせるスケジューラを有していることもある。ここ
で、“走る”とは、そのスレッドを構成するテキスト領
域が実メモリ上に存在し、そのテキスト領域をCPUが
処理している状態のことである。
【0036】図5は、スケジューラによるスケジューリ
ングの一例を示す概念図である。211は、ホスト計算
機201が実行するプロセスである。231〜234
は、数値制御装置のタスクと同じ機能を実現するスレッ
ドである。240は、マルチスレッドオペレーティング
システムである。250は、準備が出来たスレッドの中
から1つのスレッドを選び順に走らせるスケジューラで
ある。251は、他のプロセスである。
【0037】ステップ245では、数値制御装置の制御
ソフトウェアが最初に初期化タスクを起動し、その初期
化タスクが他のタスクを起動するような方式であるとき
は、初期化タスクと同じ処理を行なうスレッドをシステ
ムコールにより起動する。具体的には、マルチスレッド
オペレーティングシステムのスケジューリング対象のス
レッドの表の中に、初期化タスクと同じ処理を行なうス
レッドを加えればよい。これらの処理により、各スレッ
ドは、予め決定された順序に応じて走ることになる。な
お、数値制御装置の制御ソフトウェアが上記のような方
式でない場合には、従来の数値制御装置の制御ソフトウ
ェアと同じ順序で該当スレッドを起動すればよい。
【0038】上記のようにホスト計算機201のマルチ
スレッドオペレーティングシステムのスケジューリング
機能を利用してスレッド間のスケジューリングを行な
ので、スレッド間のスケジューリングの制御用に1つの
スレッドを生成する必要がない。つまり、ホスト計算機
201は、数値制御装置における各タスクをスレッドと
するだけでよく、スケジューラ250と同じ働きをする
スケジューラスレッドを生成する必要がない。
【0039】なお、比較のために、図6を参照して、ホ
スト計算機201のマルチスレッドオペレーティングシ
ステムのスケジューリング機能を利用せずにスケジュー
ラスレッドを生成する場合を説明する。図6は、ホスト
計算機201により生成されたスケジューラスレッドに
よるスケジューリングの概念図である。これは、図5を
用いて先に説明したスケジューリングの概念に、スケジ
ューラスレッド252を加えたものである。そして、ス
ケジューラスレッド252は、マルチスレッドオペレー
ティングシステム240上のスケジューラ250から数
値制御装置の制御ソフトウェアを実行するプロセス21
1の実行権を獲得し、スレッド1(231)〜スレッド
4(234)のスケジューリングをすべて行なう。
【0040】数値制御装置の制御ソフトウェアのタスク
に相当するスレッドは、ホスト計算機201と数値制御
装置200b1との間でスレッド間通信を行なうこと
で、分散して処理される。スレッドの分散の具体例を説
明すれば、ある数値制御装置200b1が低性能で安価
なメインCPUを有しており、ホスト計算機201が高
性能で高価なCPUを有しているときには、簡単な処理
を行なうスレッドは数値制御装置200b1に走らせ
て、複雑な処理を行なうスレッドはホスト計算機201
に走らせるのが好適である。又、別の具体例を説明すれ
ば、図12を用いて先に説明した補間処理24やサーボ
処理25を行なうスレッドなどは数値制御装置200b
1に走らせ、加工プログラム入力処理21や補正計算処
理22を行なうスレッドはホスト計算機201に走らせ
るのが好適である。
【0041】図7に示す概念図を用いて、ホスト計算機
201と数値制御装置200b1との間で行なわれるス
レッド間通信について説明する。211は、プロセスで
ある。231はスレッド1、232はスレッド2、23
3はスレッド3、234はスレッド4である。260は
ノード1、261はノード2である。ここで、ノードと
は、ネットワークの枝の端点にあたる情報処理機器の総
称である。例えば、ノード1(260)はホスト計算機
201、ノード2(261)は数値制御装置200b1
である。262は、オペレーティングシステム240a
のもとでスレッド1とスレッド2との間の通信を処理す
るスレッド間通信処理部である。263は、ノード1と
ノード2とを結ぶノード間ネットワークである。
【0042】いま、ノード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)に対してメッセージを渡す。
【0043】上記の想定では、スレッド1(231)か
らスレッド3(233)に直接にメッセージを送るもの
としたが、マルチスレッドオペレーティングシステムに
よってはメールボックスを用いてメッセージを渡すこと
も出来る。図8は、ノード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)
を待機させる。
【0044】1プロセス内の別スレッドを別ノードで分
散して走らせることができないマルチスレッドオペレー
ティングシステムでは、分散型共有メモリの機能を利用
して、計算機201と数値制御装置200b1とで分散
して処理する。すなわち、ホスト計算機201に数値制
御装置の制御ソフトウェアの機能を実現するプロセスを
走らせ、1つの数値制御装置200b1にホスト計算機
201のプロセスとは独立したスレッドを走らせる。そ
の際、1プロセス内のスレッドでのアドレス空間の共有
を、分散型共有メモリの機能により実現する。
【0045】図9は、分散型共有メモリの概念図であ
る。ノード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の内容の読出しを要求する。
【0046】上記では、ホスト計算機201と1つの数
値制御装置200b1とに分散してスレッドを走らせた
のに対して、図10に示すように、ホスト計算機201
と複数の数値制御装置200b1〜200bnとに分散
してスレッドを走らせてもよい。例えば、実時間処理が
必要な補間処理24やサーボ処理25(図12)を行な
うスレッド231は、それぞれの数値制御装置200b
1〜200bnで走らせ、実時間処理が不要な加工プロ
グラム入力処理21や補正計算処理22(図12)を行
なうスレッド232は、ホスト計算機201上で共通に
走らせるのが好適である。なお、ホスト計算機201上
のスレッド232は、数値制御装置200b1〜200
bn対応で少なくとも1つずつ走らせる。
【0047】以上の数値制御装置の制御ソフトウェア実
行システムS3によれば、1プロセス内の別スレッドを
別ノードで分散して走らせることができないマルチスレ
ッドオペレーティングシステムを用いたときにも、計算
機201と数値制御装置200bとの間でタスクを分散
して処理するので、低コストにして効率的に数値制御装
置の制御ソフトウェアを実行することが出来る。
【0048】
【発明の効果】この発明の制御装置の制御ソフトウェア
実行システムによれば、計算機と制御装置との間でタス
クを分散して処理するので、制御装置には低性能のCP
Uを使用でき、低コストにして効率的に制御装置の制御
ソフトウェアを実行することが出来る。また、オペレー
ティングシステムのスケジューリング機能を利用するの
で、スケジューラスレッドを生成する必要がない。さら
に、分散型共有メモリの機能を利用するため、1プロセ
ス内の別スレッドを別ノードで分散して走らせることが
できないマルチスレッドオペレーティングシステムを用
いたときにも、計算機と制御装置との間でタスクを分散
して処理することが出来る。
【図面の簡単な説明】
【図1】この発明の一実施形態の数値制御装置の制御ソ
フトウェア実行システムを示す全体構成図である。
【図2】数値制御装置のハードウェア構成図である。
【図3】プロセスを生成するための流れ図である。
【図4】ホスト計算機の内部に構成されたプロセスの概
念図である。
【図5】スケジューラによるスケジューリングの概念図
である。
【図6】スケジューラスレッドによるスケジューリング
の概念図である。
【図7】数値制御装置とホスト計算機の間で行なわれる
スレッド間通信の概念図である。
【図8】メールボックスを介したスレッド間通信の概念
図である。
【図9】分散型共有メモリの概念図である。
【図10】ホスト計算機と複数の数値制御装置とに分散
してスレッドを走らせる説明図である。
【図11】従来の数値制御装置のハードウェア構成図で
ある。
【図12】従来の数値制御装置の処理手順を示す説明図
である。
【図13】割り込み処理の概念図である。
【図14】各タスク動作の時間的関係を示すタイムチャ
ートである。
【図15】ワークステーションを利用した制御ソフトウ
ェア開発システムの構成図である。
【図16】クライアントワークステーションのメモリ態
様図である。
【図17】各プロセスが同じ論理アドレス空間を利用で
きることを示す原理図である。
【図18】1つのプロセスの論理アドレス空間内の領域
図である。
【図19】タイムシェアリングオペレーティングシステ
ムにおけるプロセスモデルの例示図である。
【図20】マルチスレッドオペレーティングシステムに
おけるモデルの例示図である。
【図21】1つのプロセスの論理アドレス空間内の別の
領域図である。
【符号の説明】
1 メインCPU 2 システムバス 3 ROM 4 RAM 5 SIOインタフェース部 6 表示装置 7 キーボード 8 サーボ制御部 9 サーボアンプ 10 サーボモータ 11 プログラムコントローラ部 12 外部割り込み信号 132 アドレス変換機構 S3 制御ソフトウェア実行システム 200b1,…,200bn 数値制御装置 201 ホスト計算機 202 ハードディスク 203 表示装置 204 キーボード 205 内部ネットワーク 206 外部ネットワーク 207 ネットワークインタフェース

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 スケジューリング機能を有するオペレー
    ティングシステムを用いた計算機とその計算機に通信回
    線を介して接続された制御装置との間に分散型共有メモ
    リの機能を持たせ、リアルタイムオペレーティンングシ
    ステム上で制御ソフトウェアを実行したときに起動され
    る複数のタスクの共同作業によって制御装置としての機
    能を実現する制御装置のタスクの機能を、前記オペレー
    ティングシステムのスケジューリング機能および前記分
    散型共有メモリの機能を利用して、前記計算機と前記制
    御装置とで分散して処理することを特徴とする制御装置
    の制御ソフトウェア実行システム。
JP10165303A 1998-06-12 1998-06-12 制御装置の制御ソフトウエア実行システム Expired - Fee Related JP3053797B2 (ja)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Related Parent Applications (1)

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

Publications (2)

Publication Number Publication Date
JPH1173216A JPH1173216A (ja) 1999-03-16
JP3053797B2 true JP3053797B2 (ja) 2000-06-19

Family

ID=15809778

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JP3053797B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100376721B1 (ko) * 2000-12-27 2003-03-17 현대자동차주식회사 수치 제어장치에서 외부장치 프로그램의 다이나믹 로딩방법
JP3889726B2 (ja) 2003-06-27 2007-03-07 株式会社東芝 スケジューリング方法および情報処理システム
JP4028444B2 (ja) 2003-06-27 2007-12-26 株式会社東芝 スケジューリング方法およびリアルタイム処理システム
JP2008133735A (ja) * 2006-11-27 2008-06-12 Kokusan Denki Co Ltd 電子式制御ユニット
JP5102090B2 (ja) * 2008-04-11 2012-12-19 株式会社エヌエステイー 制御装置及び制御装置の制御方法
EP3370125A1 (en) * 2017-03-01 2018-09-05 PLETHORA IIoT, S.L. Device and system including multiple devices for supervision and control of machines in industrial installation
JP6542838B2 (ja) * 2017-06-06 2019-07-10 ファナック株式会社 産業機械システムおよび産業機械システムの制御方法

Also Published As

Publication number Publication date
JPH1173216A (ja) 1999-03-16

Similar Documents

Publication Publication Date Title
US6823517B1 (en) Multi-tasking-real-time operating system for microprocessors with limited memory that constrains context switching to occur only at task level
EP2316091B1 (en) Protected mode scheduling of operations
US8108852B2 (en) Online modification of CIL code programs for industrial automation
US20070168082A1 (en) Task-based robot control system for multi-tasking
WO2017177695A1 (zh) 一种数控系统中应用的开发与集成方法及系统
JP2820189B2 (ja) 数値制御装置の制御ソフトウェア実行システム
JP3053797B2 (ja) 制御装置の制御ソフトウエア実行システム
Bollella et al. Programming with non-heap memory in the real time specification for Java
US20080141213A1 (en) Flexible interconnection system
CN113534744A (zh) 用于构成数控系统的软件架构和硬件架构
US20020082737A1 (en) Integration method for automation components
JP2005108082A (ja) デバイスドライバのインターフェース方法
JPWO2008114415A1 (ja) マルチプロセッシングシステム
CN100533389C (zh) 任务执行系统和方法
US5812846A (en) Method and apparatus for passing control from a first process to a second process
Zhang et al. Implementation of Real-Time Scheduling Algorithm on Multi-Core Platform
Mumolo et al. A hard real-time kernel for motorola microcontrollers
Kim et al. Scenario-based multitasking for real-time object-oriented models
Cooling et al. Task scheduler co-processor for hard real-time systems
RU75483U1 (ru) Программно-аппаратный комплекс для управления прецизионным оборудованием
KR100258893B1 (ko) 단일 중앙처리부를 이용한 수치제어장치의 구현방법
JP3547011B2 (ja) ウィンドウシステム環境において時間的に厳しいプロセスを実行する方法および装置
Smith A directly coupled multiprocessing system
JP2931327B2 (ja) コンピュータシステムにおける表示処理の実行方法
JP3039918B2 (ja) プロセッサシステム

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees