JP2581481B2 - 制御装置 - Google Patents

制御装置

Info

Publication number
JP2581481B2
JP2581481B2 JP7185262A JP18526295A JP2581481B2 JP 2581481 B2 JP2581481 B2 JP 2581481B2 JP 7185262 A JP7185262 A JP 7185262A JP 18526295 A JP18526295 A JP 18526295A JP 2581481 B2 JP2581481 B2 JP 2581481B2
Authority
JP
Japan
Prior art keywords
instruction
job
processing
control
statement
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
JP7185262A
Other languages
English (en)
Other versions
JPH0883110A (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP7185262A priority Critical patent/JP2581481B2/ja
Publication of JPH0883110A publication Critical patent/JPH0883110A/ja
Application granted granted Critical
Publication of JP2581481B2 publication Critical patent/JP2581481B2/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]

Landscapes

  • General Factory Administration (AREA)
  • Manipulator (AREA)
  • Control By Computers (AREA)
  • Programmable Controllers (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、高機能を要求する機械
の制御装置に係り、特に適応制御型ロボット等における
高機能な制御を必要とする制御対象に好適な汎用の制御
装置に関する。
【0002】
【従来の技術】従来、産業用ロボット等における制御装
置においては、例えば文献「トキコレビューVOL.2
8,No.1,pp20〜26,(1984)」の「新形
ロボット制御盤の開発(モデル4)」にみられるロボッ
ト制御装置が知られている。このロボット制御装置はマ
スタプロセッサとして働く1台のメインCPUと、その
周辺ユニットと、サーボユニットとを備えて構成され
る。これらの周辺ユニットは各種のI/Oユニットを含
み、メインCPU内のローカルバスにそれぞれのインタ
ーフェース回路を介して接続され、このローカルバスは
1台のマイクロプロセッサに接続される。オプションと
して、高速演算ユニットとハードディスクユニットを、
外部拡張バスに接続することができる。
【0003】
【発明が解決しようとする課題】この種の制御装置は、
ロボット等の制御対象を明確にした上で、その専用制御
装置として提供する場合が多く、制御対象の台数も一台
に限定するのが一般的であった。
【0004】このように、制御装置を制御対象ごとに限
定して専用的に使用することを前提としたアーキテクチ
ュアを持つ制御装置は、制御対象が1つに限られ、しか
も実現すべき機能及びスペックが明確な場合、高い価格
性能比を示すと考えられるが、機能の向上や他の制御対
象への流用または制御対象自体の機能変更に伴う制御装
置側の対応、さらには、複数の制御対象への対応や複数
制御要素の協調制御、センサ情報に応じた適応制御等の
問題は本質的な制御装置の改造や再開発もしくは買い替
えを必要とする。また、制御の高速、高精度化の要求に
伴って、制御演算等の高速化といったスペック向上の必
要性が生じた場合にも一部分の変更では済まず、制御装
そのものを買い替えるのが一般的であった。
【0005】また、従来汎用の制御装置としてミニコン
やスーパーミニコン等が広く使用されているが、制御対
象の増加に伴ってプロセッサの負荷が増大し、処理能力
がオーバーフローしたり、リアルタイム処理性等に問点
があった。
【0006】
【0007】上記事情に鑑み、本発明の目的は、リアル
タイム処理性に優れた制御装置を提供することにある。
【0008】
【課題を解決するための手段】本発明の制御装置は、プ
ログラムステップに対応する命令ステートメントで記述
され、コンカレントプロセスであることを宣言された命
令ステートメントと、前記命令ステートメントのうち同
期をとるべき命令ステートメントを指定する同期用命令
ステートメントとを含むジョブプログラムを実行する機
能を備えたホストプロセッサと、命令ステートメントに
対応してマクロ命令化された機能を有し、ホストプロセ
ッサから指示されたマクロ命令の処理を実行してその処
理が終了したことをホストプロセッサに知らせる機能を
備えたスレーブモジュールとを有し、前記ホストプロセ
ッサは、コンカレントプロセス宣言した命令ステートメ
ントをフェッチしてその処理をスレーブモジュールに指
示した後、その処理の終了を待たずに次の命令ステート
メントに移行する機能と、同期用命令ステートメントを
フェッチしたときに、この同期用命令ステートメントで
指定された命令ステートメントに対応する処理が全て終
了するまで、次の命令ステートメントへの移行を停止す
る機能とを備えることを特徴とする。
【0009】
【作用】本発明の制御装置は、各制御要素対応の制御機
能をプロセッサを内蔵しインテリジェント化を図ったコ
ントロール・モジュールに分担させ、ハードウエア及び
ソフトウエア両面でのモジュール化を行う。これによっ
て、ハードウエア及びソフトウエアをすべて統一した思
想のもとで運用でき、制御対象の変更に対しても拡張性
と柔軟性に富んだ制御装置を提供できる。
【0010】また、並列処理可能な命令ステートメント
はコンカレントプロセスであることを宣言するととも
に、これらの命令ステートメントのうち同期をとるべき
命令ステートメントを同期用命令ステートメントで指定
する。ホストプロセッサは、この命令ステートメントの
処理をスレーブモジュールに指示した後、この処理の終
了を待つことなく次の命令ステートメントに移行する。
そして、同期用命令ステートメントをフェッチしたとき
は、この同期用命令ステートメントで指定された処理が
全て終了するまで、次の命令ステートメントへの移行を
停止する。これによって、1つのジョブプログラム内に
プログラムステップに対応して記述された命令ステート
メントの並列処理が可能となり、リアルタイム処理性の
高い制御装置を提供することができる。
【0011】
【実施例】以下、本発明の実施例を図面を参照して説明
する。
【0012】図1は本発明の制御装置の一実施例の構成
を示すもので、この制御装置による制御対象は一例とし
てロボットアームとしている。1はホストプロセッサ
(HP)で、このホストプロセッサ1はシステム全体を
管理するオペレーティング・システムが駐留し、その上
で制御プログラムの開発を支援する高級言語と、それに
より記述されオブジェクト化された制御プログラムが走
る。さらにこのホストプロセッサ1はシステム全体の制
御や管理だけでなく、システムの状態をユーザーに知ら
せたり、ユーザーの制御プログラム作成作業を援助した
りするマン・マシン・インターフェースの役割も兼ねて
いる。ホストプロセッサ1は下位にスレーブ・モジュー
ル群を接続するために、バス・バッファ機能とスレーブ
・モジュール19〜22とのハードウエア割込機能とを
有するバス・バッファ・アンド・インターラプト・コン
トロール・インターフェイス(BBIC I.F.)2
と、そこから拡張された8つ(個数的な制約は特に無
い。主にホストプロセッサの処理能力を考慮して最大拡
張個数を決定する)のエクステンディド・データ・スペ
ース・ジェネレータ(EDSG)3〜10を持ち、ホス
トプロセッサ1のI/Oアドレス空間にアドレスを発生
するためのアドレスレジスタデータの入出力を行うデー
タレジスタをテーブル化して持つことによって、新たに
8つのデータアドレス空間を生成し、ホストプロセッサ
1個有の物理アドレス空間と切りはなして扱えるように
している。これによってスレーブ・モジュール19〜2
2とホストプロセッサ1との間はすべて同等のアドレス
空間及びデータ入出力構造を持つことになり、任意のエ
クステンディッド・データ・スペース・ジョネレータ
(EDSG)3〜10に任意のスレーブ・モジュール1
9〜22を接続できるばかりか、同一のスレーブ・モジ
ュールを複数台接続でき、高い統一性及び拡張性が得ら
れる。また、その他に、十分なバスタイミングを得てホ
ストプロセッサ1とスレーブ・モジュール19〜22と
に十分な距離を保障する効果、すなわちホストプロセッ
サ1の個有アドレス空間を侵害しないためハードウエア
的な制約が少なく汎用のオペレーティング・システムを
ホストプロセッサ1上で走らせることができる等他シス
テムとのコンパチビリティの保証が容易である等の利点
を持つ。本実施例においては、さらにエクステンディッ
ド・データ・スペース・ジェネレータ(EDSG)3〜
10とスレーブ・モジュール19〜22との間にデュア
ル・ポート・RAM(DPR)11〜18の中間記憶メ
モリを設けデータロケーションに関する標準化を図って
いる。
【0013】次に、エクステンディッド・データ・スペ
ース・ジェネレータ(EDSG)3〜10及びデュアル
・ポートRAM(DPR)11〜18を介してホストプ
ロセッサ1の下位に接続されたスレーブ・モジュール1
9〜22について説明する。本実施例においては、2台
の6関節型ロボットアームをセンサフィードバック、視
覚フィードバックにより位置補正型適応制御及びアーム
の協調制御を行うことを想定している。スレーブ・モジ
ュール19及び20はロボット・アーム、コントロール
・モジュール(RACM)を構成し、ロボットアームの
サーボ制御、軌跡演算等の運転制御演算及びテーチ点等
の必要演算定数の記憶を行う。24はロボット・アーム
・コントロール・モジュール(RACM)19の総合管
理及びサーボオペレーションを行うマスタ・プロセッサ
・ユニットであり、ロボット・アーム・コントロール・
モジュール(RACM)19内部での基本動作命令であ
るマクロ命令の管理やホストプロセッサ1との通信も行
っている。符号26に代表される円形は、マスタ・プロ
セッサ・ユニット24のローカルI/Oである。符号2
5に代表される3つの四角形は、運動制御演算を高速、
高精度で行うための並列演算プロセッサであり、共通バ
ス34によってマスタ・プロセッサ・ユニット24と接
続している。共通バス34はさらに外部へ拡張されたイ
ンテリジェント・ローカル・センサ・コントロール・モ
ジュール(ILSCM)23のマスタ・プロセッサ27
と接続している。このインテリジェント・ローカル・セ
ンタ・コントロール・モジュール(ILSCM)23は
高速サンプルを必要とするロボット・アーム・コントロ
ール・モジュール(RACM)19個有のインテリジェ
ント化されたセンサ・コントロール・モジュールであ
り、適応型の高精度制御に用いる。ロボット・アーム・
コントロール・モジュール(RACM)についてのハー
ドウエア詳細は後述する。ロボット・アーム・コントロ
ール・モジュール(RACM)は20はロボット・アー
ム・コントロール・モジュール(RACM)19と同様
のロボット・アーム・コントローラであり、ロボット・
アーム・コントロール・モジュール(RACM19)が
制御するロボット・アームと協調動作するもう一つのロ
ボットアームの制御を担当する。21は視覚により下界
の状況を認識してロボット・アームを制御するための画
像認識処理装置(VPM)である。この画像認識処理装
置21はスレーブ・モジュール19,20と同様マスタ
・プロセッサ28と31に代表される画像処理を並列演
算により高速に行うための並列演算プロセッサとから成
る。また29は、並列演算の為のステータスをやりとり
する共有メモリ、符号30に代表される円形は処理すべ
き画像をストアするための3つの共有メモリフレームを
示している。画像認識処理装置(VPM)21で処理さ
れた結果である認識データは、ホストプロセッサ1を通
じてロボット・アーム・コントロール・モジュール(R
ACM)19,20に送られロボットアームの軌跡を補
正するのに使用される。22はモジュール群共通のイン
テリジェント化されたセンサ・コントロール・モジュー
ル(ICSCM)であり、ロボット・アーム・コントロ
ール・モジュール19,20、画像認識処理21あるい
はセンサ・コントロール・モジュール23と同様にマス
タ・プロセッサ32が存在し、符号33に代表される円
形で示すセンサ用I/O及びそれに接続される符号35
に代表される三角形で示すセンサとから成っている。こ
こで処理されたセンサ情報はホスト・プロセッサ1を通
じてロボット・アーム・コントロール・モジュール(R
ACM)19,20及び画像認識処理装置(VPM)2
1等に送られ、補正データとして利用される。
【0014】以上のように、すべてのモジュールはマス
タ・プロセツサを持ちインテリジェント化されている。
基本制御動作はマクロ命令セットとして各モジュールが
それぞれ持ち、ホストプロセッサ1の指示によって同期
をとりながら各制御要素の制御を行う。これにより、ハ
ードウエア及びソフトウエアの両面におけるモジュール
化を図って統一性、拡張性、適応性の各特性を得てい
る。
【0015】図2はスレーブ・モジュール側からホスト
プロセッサ1ヘの割込みサービスを要求するためのエク
ステンデイツド・データ・スペース・ジェネレータ(E
DSG)内のスレーブ用割込みレジスタ(SIR)37
とホストプロセッサ側から見える割込みベクトル型式に
修正されたバス・バッファ・アンド・インターラプト・
コントロール・インターフェイス(BBIC I.
F.)内のホスト用割込みベクトルレジスタ(HIV
R)36を示している。スレーブ・モジュール19〜2
2は、ホストプロセッサ1にマクロ命令の終了を伝える
マクロ命令終了サービスやデータの転送等を行う一般の
サービスジョブを要求する場合、レジスタ(SIR)3
7の8ビット目(ビット7)に示される割込み可能又は
不可能の情報を示す割込み受付けフラグ38を参照し、
割込み受付け可能ならば、レジスタ(SIR)37にサ
ービス番号(7ビット)を書き込む。レジスタ(SI
R)37のサービス番号が書き込まれると、バス・バッ
ファ・インターラプト・コントロール・インターフェイ
ス(BBIC I.F.)2内でレジスタ(SIR)3
7の内容を左に1ビットシフトし、ビット番号0にゼロ
が書き込まれ、さらに、エクステンデイツド・データ・
スペース・ジェネレータ(EDSG)3〜10によって
決定されるスレーブ・モジュール番号がビット番号8,
9,10に、ホストプロセッサ1によって決定される割
込みサービスルーチンの先頭番地テーブル(これを単に
割込みベクトルテーブルと称す)のロケーションを決定
する情報をビット番号11〜15に付け加わえた割込み
ベクトルテーブルを参照するための情報を作成しレジス
タ(HIVR)36上に現われる。それと同時にホスト
プロセッサ1にハードウエア割込みがかかり、ホストプ
ロセッサ1がそれを受け付けると、まずレジスタ(HI
VR)36を参照し、引き続いて、その情報から対応す
る割込ベクトルテーブルを参照して割込みサービスルー
チンの先頭にジャンプする。スレーブ・モジュールは複
数存在するため、レジスタ(SIR)37もそれに対応
して複数存在する。レジスタ(SIR)37を利用した
これら複数のスレーブ・モジュールからホストプロセッ
サ1ヘの割込みは、バス・バッファ・アンド・インター
ラプト・コントロール・インターフェイス(BBIC
I.F.)2内でハードウエア的に自動ポーリングさ
れ、1つに選択されてホストプロセッサ1に示されるた
め、各スレーブ・モジュールに対するホストプロセッサ
1のサービスはほぼ平等に行われることになる。直ち
に、受け付けられなかったサービス要求は一時的に保留
され、優先順位が1位になったとき処理される。
【0016】図3はホストプロセッサ1からスレーブ・
モジュールに対して、強制的にサービスを要求する際の
ホスト用割込みレジスタ(HIR)39と、デュアル・
ポート・RAM(DPR)11〜18内で変換されたス
レーブ・モジュールから見える割込みベクトルレジスタ
(SIVR)40を示している。この方式は前述したレ
ジスタ(SIR)37およびレジスタ(HIVR)36
と同様であるが、上位バイトの付加情報はスレーブ・モ
ジュールがレジスタ(SIVR)40上の情報を受け取
った後、マスタ・プロセッサ内で生成され付加される。
スレーブ・モジュールから見た場合ホストプロセッサは
1台であるため、レジスタ(HIVR)36におけるス
レーブ・モジュール番号及び自動ポーリング機能は必要
ない。尚、レジスタ(SIR)37及びレジスタ(HI
R)39のビット7に示される割込み受付フラグ38及
び41は、レジスタ(SIR)37及びレジスタ(HI
R)39に値が書き込まれてハードウエア割込みが受け
付けられると自動的に割込み受付け不可の状態にセット
され、矛盾なく次のサービス割込みを受け付けられる適
当な時期に、割込み受付フラグ38はホストプロセッサ
1によって、フラグ41はスレーブ・モジュールのマス
タ・プロセッサによってソフトウエアにより割込み受付
可の状態に戻される。
【0017】ホストプロセッサとスレーブ・モジュール
との情報のやりとりは大別して4つに分けることができ
る。以下にそれらの各フォーマットについて述べる。
【0018】第1はホストプロセッサからスレーブ・モ
ジュールへの命令伝達である。図4はデュアル・ポート
・RAM(DPR)11〜16上に構成されるその命令
伝達フォーマットを示している。命令とはホストプロセ
ッサからスレーブ・モジュールへのマクロ命令の発動を
言い、マクロ命令の発動は1つのスレーブ・モジュール
において常にシーケンシャルに行われる。つまり、ある
マクロ命令を実行中のスレーブ・モジュールに、その命
令が終了しないうちに次のマクロ命令を指示することは
できない。したがって、マクロ命令を指示する命令レジ
スタはデュアル・ポート・RAM(DPR)11〜18
上に設け、ハードウエア割込みは使用しない。フォーマ
ットは以下の4つのフィールドから成る。まず、命令処
理が終了したいとき、ホストプロセッサ1に命令終了サ
ービスを要求する際、呼び出したジョブプログラム番号
を終了ステータスとしてレジスタ(SIR)37に書き
込みエコーバックするために、ホストプロセッサ1から
指示された終了ステータスフィールド42、次に、必要
なデータのデュアル・ポート・RAM(DPR)11〜
18上のロケーションアドレスを指示したデータロケー
ションアドレスフィールド43、その次に伝達すべきデ
ータ数を指示したデータ数フィールド44、最後に命令
コードを指示した命令コードフィールド45(これを単
に命令レジスタと言う)の4フィールドである。ホスト
プロセッサ1は一般に、必要なデータをデュアル・ポー
ト・RAM(DPR)11〜18にロケーションした
後、この4つのフィールドに情報を書き込む。スレーブ
・モジュールは命令コードレジスタを見ており、命令が
ロケーションされると、その命令を解析し、必要なデー
タをデータロケーションアドレスとデータ数をもとにし
て入手し、マクロ命令の処理を行う。尚、命令によって
は命令コード以外の各フィールドデータは省略できる場
合もある。またアジレス型式として、データ数が少量の
場合、データロケーションフィールドとデータ数フィー
ルドに直接データをロケーションするイミデイエイトデ
ータ型式46を採る命令もある。
【0019】第2はホストプロセッサからスレーブモジ
ュールへのサービス割込み要求である。図5はその要求
フォーマットを示している。フィールド型式としては、
命令レジスタのかわりにレジスタ(HIR)39上にサ
ービス処理番号を要求コードとして書き込むこと以外は
第1の場合と同様である。サービス割込み要求の場合、
ハードウエア割込みがスレーブ・モジュール側にかかる
ため、マクロ命令処理中も、他の割込みサービスを実行
中でなければ並行して受け付け可能である。ホストプロ
セッサ1は必要なデータをデュアル・ポート・RAM
(DPR)11〜18上にロケーションした後、レジス
タ(HIR)39の割込み受付けフラグ41を知らべ、
サービス割込みが受け付け可能であればサービス番号を
レジスタ(HIR)39に書き込む。これにより、スレ
ーブ・モジュールにハードウエア割込みがかかり、スレ
ーブ・モジュールのサービス処理を受けることができ
る。この情報を伝達方法ではおもにスレーブ・モジュー
ル間あるいはホストプロセッサとスレーブ・モジュール
間でのデータ転送がサポートされる。
【0020】第3は第1の方法に対応してマクロ命令処
理の終了処理をホストプロセッサ1に要求するスレーブ
・モジュールからホストプロセッサ1への命令終了処理
サービス要求である。図6はその要求フォーマットを示
している。アドレッシングの要領は第1あるいは第2の
方法と同様であり、処理結果のデータロケーション番地
を示す処理データロケーションアドレスフィールドとそ
のデータ数を示すデータ数フィールドから成る。スレー
ブ・モジュールは、マクロ命令処理が終了し、返すべき
処理結果があるか、あるいは終了ステータスをエコーバ
ックする必要がある場合には、自身のデュアル・ポート
・RAM(DPR)に処理結果をロケーションした後、
アドレッシングフィールドを指示して、図4の命令レジ
スタにゼロを書き込む(命令ゼロはノーオペレーション
を示す)ことにより、命令レジスタをクリアし、続いて
レジスタ(SIR)37の割込み受け受けフラグ38を
知らべ、サービス割込みをホストプロセッサ1が受け付
け可能ならばレジスタ(SIR)37に第1の方法によ
り指示された終了ステータス、すなわちホストプロセッ
サ1上で走っているジョブプログラムのうち、マクロ命
令の発動を行ったジョブ番号を書き込む。レジスタ(S
IR)37に要求コードが書き込まれると、ホストプロ
セッサ1にサービス割込みが発生し、対応するジョブプ
ログラムのプログラムステップの更新あるいは、命令ス
テートメントルーチン中で次のマクロ命令の発動がなさ
れる。これらのホストプロセッサ1による後処理につい
ては後で詳しく述べる。
【0021】第4はスレーブ・モジュールからホストプ
ロセッサへの一般的なサービス割込要求である。図7は
その要求フォーマットを示している。この情報伝達方式
は大きく見ればホストプロセッサ側では、第3の場合と
同等の処理手続きを採る。ホストプロセッサ1上で起動
されるルーチンが、ジョブプログラム関係のタスクでは
なく、単なるサービスジョブルーチンであるという違い
があるだけである。スレーブ・モジュール側の処理とし
ては、必要なデータを自身のデュアル・ポート・RAM
(DPR)にロケーションし、そのロケーションアドレ
スとデータ数を設定した後、終了ステータスではなく、
サービスジョブの番号を要求コードとしてレジスタ(S
IR)37にロードするだけであり、命令レジスタのク
リアは必要ない。この情報伝達方式では、第2の方法と
対応して、おもにスレーブ・モジュール間あるいはホス
トプロセッサとスレーブ・モジュール間でのデータ転送
がサポートされる。
【0022】以上の4つの情報伝達フォーマットによ
り、統一的にホストプロセッサとスレーブ・モジュール
間で情報の伝達がなされる。尚、アドレッシングのバリ
エーションは命令コード、又は要求コードの違いにより
サポートする。
【0023】以下に、上述した4つの情報伝達方式を利
用したホストプロセッサ1上のオペレーティング・シス
テムの種々の動作方式及び機能について述べる。
【0024】まず上述した図4,図6に示すホストプロ
セッサ1からスレーブ・モジュールへの命令伝達方式を
使用して必要な制御動作をプログラムしたジョブプログ
ラムのホストプロセッサ1内での処理シーケンスを以下
に述べる。
【0025】図12は、ジョブプログラムの内部構成を
示している。ジョブプログラム77は、内部的には行番
号によって管理されているプログラムステップの集合体
であり、分岐及びサブルーチン呼出し関係の命令を除い
て原則として行番号の若い方から順に処理される。各プ
ログラムステップには命令ステートメントと呼ぶ単位の
命令語79が書かれており、命令ステートメントBはさ
らにホストプロセッサ1あるいはスレーブ・モジュール
の各モジュールでサポートされるマクロ命令A’B’
C’D’により構成され、モジュール群のマクロ命令処
理ルーチン80によって処理される。
【0026】図8はジョブプログラムを処理するための
各種テーブルと命令、サービス要求及びデータ伝達用の
各種レジスタフィールドを使用したホストプロセッサ1
上のジョブプログラムとスレーブ・モジュール間での命
令、サービス要求及びデータ交換の様子を示している。
本発明においては、複数のジョブプログラムが並行して
走るが、ここではジョブプログラムi(ジョブi)54
に注目して流れを追ってみることにする。各ジョブに
は、ジョブコントローラが存在し、中間コードで記述さ
れたジョブプログラムを解読しジョブプログラムの管理
とコントロールを行っており、いわばインタープリンタ
の役割を果している。ジョブi54には符号47で示す
ブヨブコントローラi(Jobi)が存在する。ジョブ
コントローラ(Jobi)47は、新たなプログラムス
テップの実行のためジョブi54のサービスが要求され
ると、初期動作として、ジョブ番号レジスタ(Jb n
oi)48にジョブ番号iを書き込みジョブi54のサ
ービス中であることを示し、ジョブプログラムi54の
処理すべきプログラムステップに記述された中間の命令
ステートメントコードである命令ステートメント番号n
によって命令ステートメントルーチン開始番地テーブル
49を参照してそこに指示された番地Nより実際の命令
処理を行う命令ステートメントルーチン群50の目的と
する命令ステートメントルーチンnへ処理を移す。命令
ステートメントルーチンでは、ジョブ番号レジスタ48
を参照してそこに書かれたジョブ番号iに対応するジョ
ブiスタックを符号51で示すジョブスタック群より作
業領域(ワークエリア)として確保する。ジョブコント
ローラi(Jobi)47は中間コードを入手する際、
その命令を実行するのに必要なデータであるオペランド
データをジョブiスタックに取り込んでいる。オペラン
ドデータは、ジョブコントローラi(Jobi)47が
命令の内容を知らなくても動作できるように、命令ステ
ートメントに記述されたオペランドデータ部をそのまま
ジョブiスタック51に格納する。実行中の命令ステー
トメントルーチンnは、ジョブiスタック51で必要な
初期データを入手した後、命令ステートメントnの指示
している処理を行うためマクロ命令を起動する。マクロ
命令はホストプロセッサ1のサポートするものと、スレ
ーブ・モジュール19〜22のサポートするものとがあ
り、スレーブ・モジュールとのデータ転送及びデータ交
換も含めて、ホストプロセッサ1が主体となって動作す
るマクロ命令に関しては、命令ステートメントルーチン
n内で連続的に処理がなされ、スレーブ・モジュール1
9〜22のいずれか、あるいは複数のスレーブ・モジュ
ールに処理を依頼するものに関しては原則的な手続きと
して命令レジスタ45がクリアされておりスレーブ・モ
ジュールがノーオペレーションで次のマクロ命令を受け
付け可能であるなら、依頼先のスレーブ・モジュールの
デュアル・ポートRAM(DPR)にデータをロケーシ
ョンした後、データレジスタA(DTRGA)53(4
3,44の総称)にデータの設定情報を、終了ステータ
スレジスタ42(ENDST)に終了ステータスiをそ
れぞれセットし、最後に命令レジスタ45に起動すべき
マクロ命令mをセットしてマクロ命令処理を起動する。
ホストプロセッサ1はスレーブ・モジュールにマクロ命
令の実行を指示し、現在の状態をジョブスタック51に
格納した後、サービス割込み要求がはいるまでの空時間
を有効に利用するため、おもにマン・マシン・インター
フェイスソフトウエアの動作するバックグラウンドオペ
レーションに処理を戻す。マクロ命令処理が完了する
と、スレーブ・モジュールは原則的な手続きとしてホス
トプロセッサへの割込みが許可されれば、処理結果を自
身のデュアル・ポート・RAM(DPR)にロケーショ
ンし、そのデータ設定情報をデータレジスタB(DTR
GB)52にセットした後、終了ステータスiをレジス
タ(SIR)37に書き込み、命令終了処理サービス割
込み要求をホストプロセッサ1に対して行うとともに次
のマクロ命令の処理が可能であることを示すため命令レ
ジスタをクリアする。この要求をホストプロセッサ1が
受け付けると、バックグラウンドオペレーションより復
帰し、まずジョブコントローラi47が終了ステータス
のSIRレジスタ37からのエコーバック情報iによ
り、サービス割込みルーチンの先頭番地テーブル55を
参照してその情報から直ちにジョブコントローラi47
に制御が移される。ジョブコントローラi47は、ジョ
ブiスタック51の命令実行情況を示すフラグを参照
し、そのときまだ命令ステートメントnの実行が完了し
ていなければジョブ番号レジスタ48にジョブiのサー
ビスを実行中であることを示すジョブ番号iを再度セッ
トし、実行中のプログラムステップの命令ステートメン
トnの中間命令ステートメントコードnより命令ステー
トメントルーチン開始番地テーブル49を参照して命令
ステートメントルーチンnに再び処理を移す。この時は
オペランドデータのジョブiスタックへの移動処理は必
要ないので行わない。これにより、命令ステートメント
ルーチンnは、ジョブiスタックより状態を復帰し、ス
レーブ・モジュールにより処理された処理結果の後処理
を行う。以上の処理を原則として必要なマクロ命令の処
理がすべて完了するまで続ける。命令ステートメントル
ーチンnはその命令ステートメントnが指示している必
要な処理をすべて完了とすると、ジョブiスタック内の
命令実行情況を示すフラグに命令ステートメントnが処
理を完了したことを示し、同スタック内の実行すべきプ
ログラムステップ番号を保持しているプログラムステッ
プ番号レジスタの値lを次に実行すべきジョブステップ
番号に更新した後、ジョブコントローラi47に処理を
移す。ジョブコントローラi47はプログラムステップ
lが更新されたことをジョブiスタックより知り次の命
令ステートメントを処理するための初期動作にはいる。
以上のシーケンスでジョブプログラムiはスレーブ・モ
ジュールからの終了処理サービス割込みによって自動的
にマクロ命令処理あるいは命令ステートメント処理の更
新がなされるため、ホストプロセッサ1はスレーブ・モ
ジュールがマクロ命令を実行中の大半を時間をバックグ
ラウンドオペレーションに割り当てることができる。
【0027】本発明では、以上の説明から判かるよう
に、ハードウエア割込みを利用したスレーブ・モジュー
ル主導型の自律型システム制御を特徴としている。尚、
ジョブの処理中は特別な場合を除き、原則としてホスト
プロセッサ1へのハードウエア割込みは禁止されてお
り、ホストプロセッサ1がスレーブ・モジュールにマク
ロ命令処理を依頼している間のバックグラウンドオペレ
ーション実行中に原則としてホストプロセッサ1へのハ
ードウエア割込みを許可している。この期間に他のジョ
ブプログラムの起動が可能となるため、複数のジョブが
自動的に並行動作することができる。これをマルチ・ジ
ョブ機能と呼んでいる。ホストプロセッサ1がスレーブ
・モジュールにマクロ命令処理を依頼中であり、どのジ
ョブプログラムのサービスも行っていない場合は、バッ
クグラウンドオペレーションが連続して実行される。バ
ックグラウンドオペレーションとしては前述した様に、
一般的にはシステム状態をユーザに表示したり、ユーザ
からの指示を受け付け制御動作に反映したり、新しいジ
ョブプログラムのエデイト・コンパイル処理を行ったり
する、いわゆるマン・マシン・インターフェイス処理を
行う。この方式によれば、処理時間の大半を占めると思
われる、スレーブ・モジュールがマクロ命令の処理を行
っている間のホストプロセッサ1の空き時間を有効に利
用できるばかりか、スレーブ・モジュールの処理速度に
同期してジョブが動作するため無駄がなくホストプロセ
ッサにかかるソフトウエアオーバーヘッドを減少させる
ことができ、処理負荷等も軽減できる。また、並列に動
作するジョブプログラム数や、新しい命令ステートメン
トの増設が容易に可能である等、拡張性、柔軟性のある
マルチ・ジョブ機能がサポートできる。
【0028】次に図9を参照しながら、図5および図6
に示したサービス割込要求方式を利用してホストプロセ
ッサ1とスレーブ・モジュール間で情報の伝達がなされ
るとシーケンスと、スレーブ・モジュール内でのマクロ
命令処理シーケンスについて述べる。
【0029】サービス割込要求は、レジスタ(SIR)
37及びレジスタ(HIR)39によりホストプロセッ
サ、スレーブ・モジュールともハードウエア割込みを利
用してサポートされる。スレーブ・モジュール内のマク
ロ命令処理は、命令レジスタ45をスレーブ・モジュー
ルのマスタ・プロセットが監視しており、ホストプロセ
ッサ1によって有効なマクロ命令番号がそこに書き込ま
れると、起動される。これに引き続いてスリーブ・モジ
ュールのマスク・プロセッサはそれ自身のデュアル・ポ
ート・RAM(DPR)上の必要なデータの存在場所を
データレジスタA(DTRGA)53のアドレッシング
情報を参照しながらマクロ命令ルーチン群で使用可能な
様に標準化し、次に命令レジスタ45上のマクロ命令番
号を示す命令コードmよりマクロ命令ルーチンの先頭番
地テーブル57を参照して必要なマクロ命令ルーチンm
に処理を移す操作を61で実行する。マクロ命令処理の
実行を完了すると前述した様に割込み受付けフラグ41
によってホストプロセッサ1のサービス割込み受付けが
許可されたら必要な処理結果を自身のデュアル・ポート
・RAM(DPR)上にロケーションし、ロケーション
データのアドレス情報をデータレジスタB(DTRG
B)52にセットし、起動したジョブプログラムのジョ
ブ番号を示す終了ステータス情報をレジスタ(SIR)
37に書き込みホストプロセッサ1にエコーバックす
る。この時、次のマクロ命令の受け付けが可能になった
ことを他のジョブに知らせるため命令レジスタ45をク
リアする。サービス割込み要求は、レジスタ(HIR)
39を利用したハードウエア割込みによるため、上記の
マクロ命令処理とは並行して別のテーブルすなわちサー
ビスルーチン先頭番地テーブル59を参照することによ
り必要なサービスルーチンへの処理の移行を行う。ホス
トプロセッサ1はスレーブ・モジュール19〜22のサ
ービスを必要とする場合、割込み受付けフラグ41によ
りスレーブ・モジュールのサービス割込み受付けが許可
されたら送受すべきデータがある場合には目的とするス
レーブ・モジュールのデュアル・ポート・RAM(DP
R)に必要なデータのロケーションを行い、データレジ
スタC(DTRGC)56にアドレッシング情報をセッ
トした後、レジスタ(HIR)39にサービス番号を示
す要求コートn(SDMNDn)を書き込み目的とする
スレーブ・モジュールのマスタ・プロセッサへサービス
割込みをかける。そのスレーブ・モジュールのマスタ・
プロセッサは、サービス割込み要求を受け付けると62
によってデータレジスタC(DTRGC)56より標準
化したアドレッシング情報を作り出し、続いて、要求コ
ードに対応するサービスルーチン先頭番号テーブルを参
照して実際のサービスを行うサービスルーチン群60の
必要なサービスルーチンnへ処理を移す。この際、もし
必要なら命令伝達の場合と同様にホストプロセッサ1か
ら終了ステータス付でサービス要求を行い、レジスタ
(SIR)37を利用した終了処理要求をスレーブ・モ
ジュールから終了ステータスをエコーバックすることに
よって行うことができる。この場合エコーバックされる
終了ステータスはジョブプログラム番号に限らず一般の
サービス番号でも良く、起動されるジョブは要求コード
に応じて符号47に代表されるジョブコントローラi
(Jobi)か又は符号64に代表されるサービスジョ
ブt(sJobt)である。サービスジョブが終了した
ら割込み受付けフラグ41をサービス割込み許可の状態
にする。スレーブ・モジュールからホストプロセッサへ
のサービス要求の処理シーケンスは、上述した終了処理
要求も含め原則的な手順として、まず、ホストプロセッ
サ側の割込み受付けフラグ38によってホストプロセッ
サ1のサービス割込みの受付けが許可されたら必要なデ
ータを自身のデュアル・ポート・RAM(DPR)上に
ロケーションし、データレジスタB(DTRGB)52
にアドレッシング情報をセットした後、サービス要求番
号を示す要求コードiもしくはtをレジスタ(SIR)
37に書き込みサービス割込み要求をホストプロセッサ
1に対して行う。ホストプロセッサ1はその要求を受け
付けると、サービスジョブの先頭番地を示すサービス割
込みルーチンの先頭番地テーブル55を参照し、目的と
するサービスジョブに処理を移す。ここでサービスジョ
ブ先頭番地テーブルはスレーブ・ジョブモジュール各々
に対応して1セットずつ存在する。どのスレーブ・モジ
ュールのテーブルを使用するかは、レジスタ(HIV
R)36に示されるスレーブ・モジュール番号に従う。
もしサポートするジョブプログラム番号の最大値n以下
の値であるiがレジスタ(SIR)にセットされていれ
ばホストプロセッサ1はサービスジョブとして符号47
で示されるジョブコントローラi(Jobi)47を起
動し、nより大きな値tがセットされていれば、スレー
ブ・モジュールそれぞれに対応する一般のサービスジョ
ブ(sJob)64が起動される。以上よりわかる様
に、原則としてサービス割込みルーチンの先頭番地テー
ブル55の0からnまではどのスレーブ・モジュールの
サービスジョブ先頭番地も同等の値、すなわちジョブプ
ログラム番号に対応したジョブコントローラの先頭番地
が指示されている必要がある。67及び68はジョブプ
ログラムの処理(単にジョブ処理)65と一般のサービ
ス処理66からスレーブ・モジュールへの情報伝達をサ
ポートする各種レジスタ45,53,42,39,56
への原則的なアクセスの可能性を示している。
【0030】以上のように、本発明の情報伝達手法は、
統一性、拡張性、柔軟性にすぐれ、汎用性も十分考慮し
ている。
【0031】本実施例において、バックグラウンドオペ
レーションはシステム全体を監視する機能と、システム
の状態をCRTやプリンタ等の出力装置に出力したり、
その情報から人為的な非常処理をキーボードやライトペ
ン等の入力装置によって行い、システムの制御に影響を
与えたり、ジョブプログラムの作成、エデイト、デバッ
ク及びコンパイル処理を行ったり等のユーザとシステム
の間のインターフェースを司さどる、いわゆる、マン・
マシン・インターフェースの機能とを有する。原則とし
てバックグラウンドオペレーションと、制御を司さどる
各種の制御用ジョブ処理とは切りはなされているが、上
述したように、例えば、非常処理や異常処理等に人為的
な操作が必要な場合はユーザから直接システムに指示を
与えることができなければならない。
【0032】図10はシステムのメインとして走る制御
用ジョブやバックグラウンドオペレーションとして動作
するエディター・コンパイラ(EDTR・CMPLR)
69を管理し、バックグラウンドでそれらとユーザとの
仲介的な役割を果たすシステム・モニタ(SYSTEM
・MNTR)78のシステム管理の様子と、ジョブプロ
グラムのエデイト、コンパイル処理をシステム・モニタ
78を通じてユーザと共に行うエディタ・コンパイラ6
9の動作の様子及びメインで動作する各種の制御用ジョ
ブとバックグラウンドオペレーションとの関係を示して
いる。
【0033】システム・モニタ78はシステムが矛盾し
た動作を行わないように、ジョブコントローラ47がジ
ョブプログラム実行用テーブル49,50等とサービス
ジョブ(SJOB)64と、情報伝達用レジスタ群71
を介して72に代表される各スレーブ・モジュール(S
M)内でサポートするマクロ命令とを利用して必要な制
御用プログラムであるオブジェクトジョブプログラム
(OJJPRG)77の処理を矛盾なく実行しているか
どうかを各種制御用パラメータを監視することによって
チェックしている。また、スレーブ・モジュール側から
の非常処理要求の監視も合わせて行い、システム状態の
管理に必要なパラメータ及び表示フラグをグラフィック
等を利用してCRT上に表示することによってユーザ
(USER)70にシステム状態を通知する役割も果た
している。ユーザ70は人為的な非常処理が必要な場
合、システム・モニタ78の管理下で変更を許可される
パラメータの変更や非常処理命令の発動が可能であり、
非常処理、異常処理等に万全の体制をとることが可能と
なっている。
【0034】エディタ・コンパイラ(EDTR・CMP
LR)69は、システム・モニタ78の管理下でユーザ
70と連絡をとりながらジョブ・プログラムを作成す
る。ユーザ70からキーボードにより入力された命令ス
テートメントを表わす文字列シンボルは、行単位で入力
されると同時に命令ニーモニックシンボルテーブルに照
らし合わせ、相当する命令ニーモニックシンボルnとマ
ッチングをとり、命令ステートメント番号nに相当する
命令中間コードnを見つけ出し、さらに対応する命令ニ
ーモニック処理ルーチンによってオペランドデータ部を
分離して数値化し、命令中間コードと合わせて定められ
たフォーマットのオブジェクトコードを作り出す操作
を、ユーザ70が命令ステートメントに相当する文字列
シンボルを入力するたびに繰り返し、オブジェクト・ジ
ョブプログラム77を作成していく。ジョブプログラム
をユーザ70に示すときはこれと逆の操作をたどり、オ
ブジェクト・ジョブプログラム77に記述された各プロ
グラムステップの命令中間コードから、命令ニーモニッ
ク処理ルーチン先頭番地テーブル73と命令ニーモニッ
クシンボル先頭番地テーブル74を参照して、当てはま
る命令ステートメントとオペランドデータ部の文字列の
シンボル化を命令ニーモニック処理ルーチン群75と命
令ニーモニックシンボルテーブルとによって行い、リス
トとしてCRTに表示する。ユーザ70はエディター・
コンパイラ69及びシステムモニタ78の管理下で、C
RTに出力されたリストに対し、スクリーンエディトに
よって変更、追加、削除等のデバッグ作業を行うことが
できる。一方、符号64及び47に代表される制御用の
各種ジョブは、情報伝達用レジスタ群71を通してスレ
ーブ・モジュール群72のサービスジョブ又はマクロ命
令処理と交信し、ホストプロセッサ1の内部ではジョブ
コントローラ47が符号50,49に代表されるジョブ
プログラム実行分テーブルを利用しながらオブジェクト
ジョブプログラム77を1ステップずつ実行していく。
【0035】以上のように、命令実行処理も含めてすべ
てテーブルによって管理されているので、命令ステート
メントの追加、削除、マクロ命令の増加等が容易に行え
るため、ソフトウエア的な機能向上を図りやすい。さら
に、命令ニーモニック・シンボルの定義が容易に行える
ため、高級ロボット言語等の様々な制御用高級プログラ
ミング言語のサポートが比較的容易に行える。
【0036】次に、本発明の実施例をサポートするとこ
ろの並行に動作可能なプロセス間でデータのやりとりや
同期をとりながら、それらのプロセスを協調して並列処
理する機能について述べる。
【0037】本実施例においては、n個のジョブ・プロ
グラムを登録でき、並行動作させることができる。その
他、各スレーブ・モジュール及びホストプロセッサは、
各動作の先行関係に制約がなければ、それらによるマク
ロ命令処理は原則として互いに並列処理できる。すなわ
ち、モジュール各々はそれぞれプロセッサを有し、自律
的に動作できるため、原則として並列動作が可能な訳で
ある。本実施例においても、複数のジョブプログラムの
協調型並列動作及び並行処理可能なマクロ命令の並列処
理をサポートする機能を、並行プロセス同期用の命令ス
テートメントと、並行動作するジョブプログラム間でデ
ータやステータスのやりとりを行うための共有パラメー
タとを持つことにより実現している。
【0038】図11はジョブプログラム間の同期と、パ
ラメータの共有及び共通サブルーチンプログラムの共有
の様子を、協調して動作し制御を行う2つのジョブプロ
グラムの並行動作を例にとって示している。81はジョ
ブプログラム(1)として動作する制御用ジョブの例、
83はジョブプログラム(2)としと動作する制御用ジ
ョブの例を示しており、いずれも上位から下位にかけて
処理が進行し、最下位のプログラムステップで先頭へジ
ャンプしてループを構成している。尚、各プログラムス
テップの左端の数字は、プログラムステップ番号を示し
ている。処理の先行関係に制約があり、ジョブ間で同期
をとる必要が生じた場合同期化命令Synch nを双
方の適当なプログラムステップに挿入すれば良い。ジョ
ブプログラム(1)79のプログラムステップ2とジョ
ブプログラム(2)80のプログラムステップ3とで同
期をとり協調する必要がある場合、例えば同期化命令S
ynch 0を双方に挿入する。同期化命令Synch
nのオペランドnが一致する同期化命令を持ったプロ
グラムステップで、同期化を指示されたジョブプログラ
ムは自動的に同期化される。同期化が行われると、同期
化の対象となってすべてのジョブプログラムは、同期化
命令の次のプログラムステップの処理を同時に開始する
ことになる。処理開始の時期は、同期化の対象となった
ジョブプログラム中、最も処理進行の遅れているジョブ
が、最後に同期化命令の処理を実行した直後である。
【0039】同期化命令Synch nのステートメン
トによる同期化処理は、内部的に次のシーケンスによっ
て行われる。ジョブコントローラが同期化命令Sync
hnのステートメントをフェッチし、それに対応する命
令ステートメントルーチンに処理を移すと、そこでは、
まずSynch nの同期化処理が、同期すべき他のジ
ョブで開始されているかどうかを示すSynch nの
同期化開始フラグを見て、クリアされていれば自分が最
初に同期化処理を開始した事を知り、そのフラグをセッ
トする。次に、クリアされているSynch n用の同
期化レジスタを1つのインクリメントし、Synch
nによって同期すべきジョブ数と同期化レジスタを比較
して等しくなければ、ハードウエア割込みを許可し、同
期化レジスタが他のジョブによってクリアされゼロが書
き込まれるのをチェックするチェックループの処理に移
行する。通常、ジョブコントローラ及び命令ステートメ
ントルーチンにおいてはハードウエア割込みを禁止して
いるが、ホストプロセッサ単独で処理を行う命令ステー
トメントの処理のうち待ちループ等による処理待ち状態
が生じたり、処理に長時間要する場合にはハードウエア
割込みを適当な時期に許可してから必要な処理を実行す
る。この方法によれば、他のジョブのジョブコントロー
ラ動作やサービスジョブの処理がその間可能となるた
め、他の並行に動作するジョブの進行を妨げる恐れがな
い。同期化命令Synch nのステートメントにおい
ても同様の考えに基づく。この後、同期化命令Sync
h nのプログラムステップに到達したジョブから順に
同様の処理を行う。最後に同期化命令Synch nを
実行したジョブは、必然的にSynch n用の同期化
レジスタが同期すべきジョブ数と一致したことを知り、
同期化レジスタにゼロを書き込んでクリアし、同期化命
令Synch nの処理を終了して次のプログラムステ
ップへ移行し、適当な時期にリターンする。そのとき、
システムスタック内のリターン時にCPUのステータス
レジスタに復帰されるべき割込み許可にセットされてい
るはずの割込みフラグをハードウエア割込み不許可の状
態にセットしておく。そして今度は、Synch n用
同期化レジスタをインクリメントしていったジョブ順と
は逆に同期の対象となるジョブのチェックループへリタ
ーンして行き、同期化命令Syuch nの処理を終了
していく。この際、最後にチェックを行うジョブを除
き、システムスタック内のリターン時にCPUのステー
タスレジスタに復帰されるべき割込みフラグをハードウ
エア割込み不許可の状態にセットしておく操作をチェッ
クループをぬけた後で実行しておき、同期化処理が他の
割込み処理に妨げられず連続的に実行される様に配慮し
ておく。以上の様なシーケンスに従えば、最後にチェッ
クを実行するジョブは、最初に同期化処理を開始したジ
ョブである。このジョブはチェックループをぬけた後、
同期化開始フラグをクリアして同期化命令Syuch
nの処理を終了し、割込みフラグの操作は行わない。同
期化命令Syuch nのオペランドnを変えることに
より、複数の同期化機能を利用することができる。
【0040】83は共有パラメータ(CP)のファイル
を示している。共有パラメータ83はそれを必要とする
各ジョブプログラム内で定義し、宣言することで使用可
能になる。また、共有パラメータ群を宣言し、群単位で
その使用権がどのジョブに属するかを明確化するLoc
k(M)命令ステートメントによりLockを解除する
まで指定したパラメータ群を占有することもできる。L
ock(M)命令ステートメントを使用すれば、他のジ
ョブに侵害されず、共有パラメータ群の内容変更あるい
は内容読み出し処理が可能となる。
【0041】84は並列動作する複数のジョブから呼び
出し可能な共通サブルーチン・プログラムを示してい
る。ジョブプログラムは、前述したように、並行動作す
るそれぞれのジョブプログラムiに対応してジョブコン
トローラiとジョブiスタックが存在するが、共通サブ
ルーチンプログラムには専用のジョブコントローラ及び
ジョブスタックは存在せず、ジョブプログラムiから呼
び出された場合は、ジョブコントローラiの管理下で、
ジョブiスタックを使用して処理され、ジョブプログラ
ムjから呼び出された場合はジョブコントローラjの管
理下で、ジョブjスタックを使用して処理される。これ
より、プログラムステップの節約及びプログラムのライ
ブラリー化が可能となる。
【0042】以上の機能を総称してマルチ・ジョブ機能
と呼び、これによって、例えば、複数のロボットの群制
御や協調制御等、複雑な制御機能をサポートできる。ま
た、並列処理を行うことになるので、処理効率や処理能
力の向上につながる。
【0043】図13は、1つのジョブプログラム内で、
複数のスレーブ・モジュールを対象にプログラムする際
の並行プロセスの記述の仕方と、それに対応する実際の
処理の様子を示している。85は通常の処理を示してお
り、符号88に示すように、命令ステートメントA,
B,Cは、プログラムステップ番号n,n+1,n+2
に従って順に直列に処理されていく。ここで、命令ステ
ートメントA,B,Cはそれぞれ別のスレーブ・モジュ
ールで処理され、並列に処理可能な並行プロセスである
場合、コンカレント・プロセス・プレフィクス(CPn
−)により並行プロセス宣言を行っておく。そして1つ
のジョブ内での並行プロセスの同期をとるためのWTn
命令ステートメントにより、WT1,2,3として並行
プロセスCP1−A,CP2−B,CP3−Cの同期を
とるようにプログラムしている。このときの動作の様子
は、符号89で示すごとくA,B,Cの処理が同時に開
始され、処理終了時刻の1番遅いCの処理に同期してい
る。87は並行プロセスとしてCP1−A,CP2−B
を同時にスタートさせ、次のステップでWT1によりC
P1−Aを待ち、Aの処理が終了したら並行プロセスと
してCP3−Cをスタートさせ、最後にWT2,3でC
P2−B,CP3−Cを待ち、B,Cの同期をとって命
令ステートメントA,B,Cの処理を完了している。そ
の動作の様子を符号90に示す。
【0044】以上からわかるように、WTl,m,nという
同期用命令ステートメントは、コンカレントプロセスl
(CPl−Xl),m(CPm−Xm),n(CPn−Xn
…がすべて終了するまで待つ命令である。
【0045】コンカレントプロセス処理及びWTl,m,n
命令ステートメントの内部処理は、まず、コンカレント
・プロセス宣言された並行プロセスは、命令ステートメ
ントルーチンでスレーブ・モジュールにマクロ命令の指
示を行う際、処了ステータスとしてジョブプログラム番
号を与えるのではなく、コンカレント・プロセス処理サ
ービスジョブのサービスジョブ番号を与え、マクロ命令
処理の終了の確認せず次のプログラムステップへ移行す
る。コンカレント・プロセス宣言された命令ステートメ
ントルーチンの指示したマクロ命令処理は、スレーブ・
モジュールがその処理を終了した時に、レジスタ(SI
R)37にコンカレント・プロセス処理サービスジョブ
のサービスジョブ番号を返すため、ジョブコントローラ
が動作するのではなく、コンカレント・プロセス処理サ
ービスジョブが動作する。そこでは、指示された並列プ
ロセスが終了した事を示す並行プロセス終了フラグをセ
ットする。ジョブコントローラがWTl,m,n命令ステー
トメントをフェッチし、その命令ステートメントルーチ
ン処理にはいると、l,m,nで示されたコンカレント
プロセスの処理がすべて終了したことを確認するため
l,m,nに対応する並行プロセス終了フラグを調べ、
それらがすべてセットされるまでチェックを続ける。こ
の時、他のジョブが動作可能な様に、ハードウエア割込
みを許可しておく。WT命令ステートメントによって指
示された並行プロセスの同期チェックが完了すると、次
のプログラムステップへ移行する。尚、並行プロセス終
了フラグは、そのチェックを完了した際にクリアしてお
く。以上のようにして、1つのジョブ内での並行プロセ
スの並列処理が可能となり、これによって処理能力の向
上が期待できる。
【0046】最後に、制御対象を、主として機能の違い
によりいくつかの制御要素に分解し、制御機能を分散し
て担当する各制御要素対応のスレーブ・モジュール・コ
ントローラ(単にスレーブ・モジュールと称してきた)
の内部ハードウエア構成について詳述する。
【0047】本発明実施例の制御対象は、複数のロボッ
トアームを主とする作業用ロボットとそれらを作業対象
の特性や特徴さらには様々な作業環境に応じてロボット
アームを適応制御するための種々のセンサ群であり、1
つのシステム化されたものを想定している。それに必要
なスレーブ・モジュールとして、図1に示したように、
ロボットアームを制御するロボット・アーム・コントロ
ール・モジュール(RACM)19,20、視覚を制御
し物体を認識して作業対象の特徴を把握するビジュアル
・プロセッシング・モジュール(VPM)21、システ
ムの作業環境を認識し、システム全体の制御に反映する
インテリジェント・コモン・センサ・コントロール・モ
ジュール(ICSCM)22、ロボットアーム個有のセ
ンサ情報を高速に提供するインテリジェント・ローカル
・センサ・コントロール・モジュール(ILSCM)2
3等のスレーブ・モジュールを例として挙げている。前
述したように、これらのスレーブ・モジュールはそれぞ
れマスタ・プロセッサを内蔵してインテリジェント化さ
れており、ホストプロセッサから指示されるマクロ命令
処理やサービス要求処理を可能な限り独立して自律的に
実行する。
【0048】図14はロボット・アーム・コントロール
・モジュール(RACM)19を例にとってスレーブ・
モジュール内のハードウエア構成を示したものである。
【0049】91はマスタ・プロセッサ・ユニット24
を含むメインのコントローラ部を示す。91は単独でス
タンドアローン型の安価な制御装置としてクローズする
構成になっており、単一制御ユニットと称している。マ
スタ・プロセッサ・ユニット(MST・PU)24の内
部は、CPUとメモリ(M)およびそれらを機能的に補
助するCPUの周辺チップを含む内部入出力デバイス
(IN I/O)から成り、内部ローカルバス109を
バスインターフェース(BI.F)107を通してマス
タ・ローカルバス(MST LOCAL BUS)10
0として外部に提供している。98はマスタ・ローカル
・バス100上の外部I/Oデバイス用インターフェー
ス群であり、符号99で示すように、外部にいくつかの
必要なI/Oデバイスを直接接続することを可能にする
機能を提供する。94は高速デジタルサーボ系を構成す
るためのデータ・シグナル・プロセッサ(DSP)であ
り、デュアル・ポート・RAM(DPR)94を介して
マスタ・ローカル・バス100と接続している。96は
デュアル・ポート・RAM(DSP)94用のメモリ
(M)、101はデュアル・ポート・RAM(DSP)
のバスを示している。97は制御対象93内のサーボア
ンプ105及び多関節ロボットアーム(ROBOY A
RM)106を制御するためのサーボユニット(SV
U)を示し、多関節ロボットアームの各軸に対応して設
けられており、エンコーダカウンタ等を内蔵してデジタ
ル・サーボ処理におけるデュアル・ポート・RAM(D
SP)94とのインターフェース的役割を果たしてい
る。サーボユニット(SVU)を、デュアル・ポート・
RAM(DSP)のバス101上に増設していくことに
より、ロボットアームの軸数拡張に対応することができ
る。ホスト・プロセッサとは、マスタ・プロセッサ・ユ
ニット24の内部バスからバスインターフェース(B
I.F.)102を通し、さらにデュアル・ポート・R
AM(DPR)11を介して接続されている。さらに特
徴的なのは、マスタ・プロセッサ・ユニット24の内部
バスからバスインターフェース(BI.F.)108を
通して共通バス34への接続を可能にしており、制御対
象の複雑化に伴う制御演算の増大や高速、高精度制御へ
の対応ができる様に並列演算ユニット92を拡張接続で
きる方式を採っている。並列演算ユニットは、一般的に
符号25に代表される複数の拡張プロセッサ(EXT.
PU)と共有メモリ(CM)103及び共有I/O(C
I/O)104とから成り、演算負荷に応じて拡張プロ
セッサを増設できるようになっている。本発明の実施例
においては、ロボットアームの運動制御をサポートする
高速サンプルの関節角制御演算やトルク、ダイナミック
ス計算等の運動制御演算を加減乗除算のレベルまで分解
し並列化して実行するマルチ・インストラクション・ス
トリーム・マルチ・データ・ストリーム(Multi−
Instruction stream Multi−
Data stream)(MIMD)型の完全並列処
理によって絶対的に高速化し、リアルタイム処理性能の
向上を図っている。なお、並列演算ユニットへの命令及
びデータの指示もマスタ・プロセッサ・ユニット24が
行い、情報の交換は共有メモリ(CM)103上で行わ
れる。また、共通バス34上には、ロボットアーム・制
御個有に必要なセンサコントローラであるインテリジェ
ント・ローカル・センサ・コントロール・モジュール
(ILSCM)23を接続でき、高速サンプルの必要な
センサ処理及びコントロールを行う。このように、共通
バス34は様々な用途のプロセッサ・ユニットが接続可
能なため、ロボット・アーム・コントロール・モジュー
ル19のシステムバスと考えられ、そこにインテリジェ
ント・ローカル・センサ・コントロール・モジュール
(ILSCM)23に代表されるスレーブ・モジュール
を接続していくことによって、ロボット・アーム・コン
トロール・モジュール(RACM)19をホストとした
階層化構造に拡張していくことができる。
【0050】以上述べた本発明の制御装置の実施例の特
徴及び利点について以下にまとめてみる。
【0051】本発明、はホストプロセッサを中心とし
て、プロセッサを内蔵することによりインテリジェント
化及びモジュール化を図った、制御対象の各制御要素対
応の制御機能を分担して持つスレーブ・モジュールを、
その管理下に双方向の高速通信機構によって複数台接続
していく機能分散、階層化アーキテクチュアを特徴とす
る。ホストプロセッサとスレーブ・モジュール間の通信
は、ハードウエア及びソフトウエア両面で統一化されて
おり、必要な制御動作は、ホストプロセッサ及びスレー
ブ・モジュールの持つ機能をマクロ命令化し命令セット
として各モジュール内に持ち、ホストプロセッサ上の制
御用プログラムすら必要なマクロ命令の実行を指示する
ことによって行うことができる。以上の特徴より、ロボ
ットの群制御や適応制御等、制御の複雑化に伴うハード
ウエア及びソフトウエアの拡張が、スレーブ・モジュー
ルの増設やマクロ命令の増設によって容易に行え、通信
のフォーマット化やマクロ命令セットによる制御機能の
サポートによりシステム制御を統一的に行える等、高い
拡張性と統一性を提供できる。また、ホストプロセッサ
とスレーブ・モジュール間では、ハードウエア割込みに
よるサービス要求をお互い指示し合うことができ、スレ
ーブ・モジュールからホストプロセッサへあるいはホス
トプロセッサからスレーブモジュールへサービスジョブ
を依頼し、おもにモジュール間のデータ転送やデータ交
換時の情報伝達をサポートできる。マクロ命令の終了処
理もスレーブ・モジュールからホストプロセッサへのハ
ードウエア割込みによる処理終了サービス要求により行
われ、この情報をもとにホストプロセッサは対応するジ
ョブプログラムの進行制御を行う。すなわち、スレーブ
・モジュールからの割込み制御によりスレーブ・モジュ
ールの処理速度に同期して、対応するジョブプログラム
の実行がなされるため、複数のジョブプログラムの実行
制御が自動的に行われ、これにより複数のジョブを並行
動作させて複数の制御対象を制御することができるマル
チ・ジョブ機能を提供している。またこの方式のシステ
ム制御を採ることによって、スレーブ・モジュールがマ
クロ命令を実行中のホストプロセッサの空き時間を、シ
ステムの状態を管理し、システムが矛盾なく動作してい
るかどうかをチェックして、矛盾がある場合に非常処理
や異常処理を行ったり、ユーザーとシステムとのインタ
ーフェースを司さどるバックグラウンドオペレーション
に利用できる等、すべてのプロセッサを効率良く動作さ
せることができる。これらのシステム制御に関する特徴
により、複数台のロボットの群制御や協調制御、センサ
モジュールをベースにした適応制御等の並行協調動作を
行う複数制御要素から成る制御対象の総合制御等、高度
な機能をサポートできる。また、異常処理に対するサポ
ートもユーザーと対話しながらホストプロセッサ上で柔
軟に実施することができる。システムの必要な制御動作
をプログラムしたジョブプログラムは、各プログラムス
テップを構成する命令ステートメントの単位ですべてテ
ーブルによりホストプロセッサ上で管理され、ユーザー
は制御用プログラムを命令ステートメントそれぞれに対
応する命令ニーモニックシンボルにより定義された高級
プログラミング言語で記述できる。これらのテーブル化
による命令処理及び高級プログラミング言語のサポート
は、命令ステートメントの増設や他の高級プログラミン
グ言語への移行を容易にするため、ユーザ側からみた使
い勝手の高機能化、拡張性及び柔軟性を提供する。最後
の特徴として、各制御用スレーブ・モジュールは、必要
なら、リアルタイム処理性能を向上させるため、並列演
算用プロセッサを増設して制御演算を完全並列に処理
し、高速、高精度制御のニーズに応える外部プロセッサ
拡張機能を持つ。これにより、制御対象の制御処理負荷
に応じて並列演算用外部プロセッサの増設ができ、制御
対象の複雑化による処理能力ネックを防止している。
【0052】以上の特徴、利点によって、本発明の制御
装置の実施例は、ハードウエアならびにソフトウエアに
おける拡張性、システム制御の統一性、様々なニーズに
対応できる柔軟性、汎用性及び適応性等の各特性にすぐ
れ、高速、高精度制御にも対応できるユーザーのニーズ
に応じた高機能化が実現可能であり、将来に渡るトータ
ルな意味での高い価格性能比を有した、マイクロ・プロ
セッサベースの汎用制御装置を提供することができる。
【0053】
【発明の効果】本発明によれば、1つのジョブプログラ
ム内にプログラムステップに対応して記述された命令ス
テートメントの並列処理が可能となり、リアルタイム処
理性の高い制御装置を提供することができる。
【図面の簡単な説明】
【図1】図1は本発明の装置の一実施例の構成図であ
る。
【図2】図2は情報伝達用レジスタの構成図である。
【図3】図3は情報伝達用レジスタの構成図である。
【図4】図4は情報伝達フォーマットを示す図である。
【図5】図5は情報伝達フォーマットを示す図である。
【図6】図6は情報伝達フォーマットを示す図である。
【図7】図7は情報伝達フォーマットを示す図である。
【図8】図8はホストプロセッサとスレーブ・モジュー
ル内のジョブ処理用テーブルと内部におけるジョブ処理
方式を示す図である。
【図9】図9はホストプロセッサとスレーブ・モジュー
ル内のジョブ処理用テーブルと内部におけるジョブ処理
方式を示す図である。
【図10】図10はバックグラウンドオペレーションと
メインの制御用ジョブとの関係を示す図である。
【図11】図11はマルチ・ジョブを説明する図であ
る。
【図12】図12はジョブプログラムの構成を示す図で
ある。
【図13】図13は並行プロセスの記述と実際の処理の
流れを示す図である。
【図14】図14はロボット・アーム・コントロール・
モジュールのハードウエア構成を示す図である。
【符号の説明】
1…ホストプロセッサ、11〜13…デュアル・ポート
・RAM(DPR)、19〜22…スレーブ・モジュー
ル、37…スレーブ・モジュール・インタープラト・レ
ジスタ(SIR)、40…ホスト・プロセッサ・インタ
ーラプト・レジスタ(HIR)、42…終了ステータス
・レジスタ、45…命令レジスタ、47…ジョブコント
ローラi、50…命令ステートメントルーチン群、51
…ジョブスタック群、55…サービスルーチン先頭番地
テーブル、58…マクロ命令ルーチン群、64…サービ
スジョブt、75…命令ニーモニツクルーチン群、76
…命令ニーモニツクシンボルテーブル、77…オブジェ
クト・ジョブ、プログラム、78…システムモニタ、6
9…エデイター・コンパイラ、70…ユーザー、79…
命令ステートメント、81…ジョブプログラム(1)、
82…ジョブプログラム(2)、83…共有パラメー
タ、84…共通サブルーチン・プログラム、24…マス
タ・プロセッサ・ユニット、25…拡張プロセッサ・ユ
ニット、91…単一制御ユニット、92…並列演算ユニ
ット、93…制御対象。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 花田 武 千葉県習志野市東習志野七丁目1番1号 株式会社 日立製作所 習志野工場内 (56)参考文献 特開 昭57−155603(JP,A) 特開 昭57−17401(JP,A) 特開 昭58−168105(JP,A)

Claims (3)

    (57)【特許請求の範囲】
  1. 【請求項1】プログラムステップに対応する命令ステー
    トメントで記述され、コンカレントプロセスであること
    を宣言された命令ステートメントと、前記命令ステート
    メントのうち同期をとるべき命令ステートメントを指定
    する同期用命令ステートメントとを含むジョブプログラ
    ムを実行する機能を備えたホストプロセッサと、 命令ステートメントに対応してマクロ命令化された機能
    を有し、ホストプロセッサから指示されたマクロ命令の
    処理を実行してその処理が終了したことをホストプロセ
    ッサに知らせる機能を備えたスレーブモジュールとを有
    し、 前記ホストプロセッサは、コンカレントプロセス宣言し
    た命令ステートメントをフェッチしてその処理をスレー
    ブモジュールに指示した後、その処理の終了を待たずに
    次の命令ステートメントに移行する機能と、同期用命令
    ステートメントをフェッチしたときに、この同期用命令
    ステートメントで指定された命令ステートメントに対応
    する処理が全て終了するまで、次の命令ステートメント
    への移行を停止する機能とを備えることを特徴とする制
    御装置。
  2. 【請求項2】請求項1に記載の制御装置において、前記
    同期用命令ステートメントをジョブプログラム中の同期
    処理を必要とする処理ステップの前に挿入することで、
    同期処理を行うタイミングを指示することを特徴とする
    制御装置。
  3. 【請求項3】請求項1に記載の制御装置において、1つ
    のジョブプログラムの中にコンカレントプロセス宣言さ
    れた命令ステートメントが複数存在し、かつ、それらの
    命令ステートメントが並列に実行される場合、前記各命
    令ステートメントに対応する各マクロ命令はそれぞれ異
    なるスレーブモジュールによって処理されることを特徴
    とする制御装置。
JP7185262A 1995-07-21 1995-07-21 制御装置 Expired - Fee Related JP2581481B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7185262A JP2581481B2 (ja) 1995-07-21 1995-07-21 制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7185262A JP2581481B2 (ja) 1995-07-21 1995-07-21 制御装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP60097701A Division JP2528813B2 (ja) 1985-05-10 1985-05-10 制御装置

Publications (2)

Publication Number Publication Date
JPH0883110A JPH0883110A (ja) 1996-03-26
JP2581481B2 true JP2581481B2 (ja) 1997-02-12

Family

ID=16167753

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7185262A Expired - Fee Related JP2581481B2 (ja) 1995-07-21 1995-07-21 制御装置

Country Status (1)

Country Link
JP (1) JP2581481B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012160655A1 (ja) * 2011-05-24 2012-11-29 富士通株式会社 データ処理方法及びデータ処理システム
CA3055445A1 (en) * 2017-01-20 2018-07-26 Follow Inspiration, S.A. Autonomous robotic system

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5617401A (en) * 1979-07-23 1981-02-19 Omron Tateisi Electronics Co Sequence controller
JPS57155603A (en) * 1981-03-23 1982-09-25 Hino Motors Ltd Electronic controller of car
JPS58168105A (ja) * 1982-03-30 1983-10-04 Yamazaki Mazak Corp 4軸数値制御旋盤用数値制御装置

Also Published As

Publication number Publication date
JPH0883110A (ja) 1996-03-26

Similar Documents

Publication Publication Date Title
JP2528813B2 (ja) 制御装置
JP2692609B2 (ja) マルチタスクのプログラムデバッグ方法とその装置
JP2644780B2 (ja) 処理依頼機能を持つ並列計算機
Lloyd et al. Extending the RCCL programming environment to multiple robots and processors
KR19990077248A (ko) 자동화 장치
JPH06266683A (ja) 並列処理装置
CN101730881A (zh) 包括多个处理器的系统以及操作该系统的方法
Eles et al. Synthesis of VHDL concurrent processes
Lloyd et al. Multi-rccl user’s guide
JP2581481B2 (ja) 制御装置
JP2820189B2 (ja) 数値制御装置の制御ソフトウェア実行システム
EP0480657B1 (en) Information processing apparatus
Butler An integrated architecture for modular control systems
CN114690702B (zh) 一种软plc和运动控制相结合的机器人控制系统
CN1446334A (zh) 用于一个源程序的自动和指令指导并行化的多入口线程化方法和装置
JPH04227547A (ja) 情報処理装置
JP2003233403A (ja) 制御装置およびプログラミング装置
US20040019618A1 (en) Interface method and device having interface for circuit comprising logical operation element
JPS6398704A (ja) プログラマブルコントロ−ラ
Laliotis Implementation aspects of the symbol hardware compiler
KR100301102B1 (ko) 실시간 시스템에서 태스크들 사이의 공유 메모리의 동기화를 최적화하는 방법
JP2513846B2 (ja) ベクトル命令生成方式
JP2003140891A (ja) アプリケーション開発装置、その方法およびそのコンピュータ・プログラム
JPH11237972A (ja) 機能メモリ、機能メモリを利用したデータ処理装置およびデータ処理装置のコンパイラを記録した記録媒体
JPH10260865A (ja) シミュレーションシステム

Legal Events

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