JP2829928B2 - 自動機の制御装置 - Google Patents

自動機の制御装置

Info

Publication number
JP2829928B2
JP2829928B2 JP62196490A JP19649087A JP2829928B2 JP 2829928 B2 JP2829928 B2 JP 2829928B2 JP 62196490 A JP62196490 A JP 62196490A JP 19649087 A JP19649087 A JP 19649087A JP 2829928 B2 JP2829928 B2 JP 2829928B2
Authority
JP
Japan
Prior art keywords
task
input
control
tasks
robot
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 - Lifetime
Application number
JP62196490A
Other languages
English (en)
Other versions
JPS6441902A (en
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP62196490A priority Critical patent/JP2829928B2/ja
Priority to US07/227,551 priority patent/US5032975A/en
Publication of JPS6441902A publication Critical patent/JPS6441902A/ja
Application granted granted Critical
Publication of JP2829928B2 publication Critical patent/JP2829928B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Automatic Assembly (AREA)
  • Programmable Controllers (AREA)

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明は、例えば自動組立ロボット等の自動機を制御
する制御装置に関し、特に、この自動機の動作を例えば
教示する入出力装置を含んだところの制御装置に関す
る。 [従来の技術] 従来の所謂「ライン方式」の自動組立装置において
は、組立ロボットは単能的であり、従つて、組立てに必
要な部品補給も単純なものであるから、組立装置とその
制御装置は一対一に対応していた。即ち、組立装置が1
台であれば、その制御装置も1台必要になるわけであ
る。 ところが、組立工程が複雑化し、特に「非ライン」方
式の自動組立装置においては、組み付け部品点数が多く
なり、従つて、ロボット側への部品補給も複雑化する。
即ち、組立のみならず、その部品補給においても、精緻
な制御、特に、ロボット側の動作と同期がとれた制御が
必要となるわけである。このような場合、従来では、単
に複数の所謂ロボットコントローラを複数台接続するこ
とにより対処していた。なぜなら、従来の制御装置にお
いては1つの制御装置で制御可能な軸数や入出力等の数
に制限が有つたために、その軸数や入出力点数を制限を
越えた場合、コントローラを複数必要とするからであ
る。 [発明が解決しようとしている問題点] ところが、上述したように、制御規模が拡大しようと
する場合、即ち、自動組立に要する例えば組立、組立に
必要な部品の供給、更にこの部品供給部に対する部品の
補給等の機能が増えようとする場合、単一のコントロー
ラで制御できる量は限界があるから、複数のコントロー
ラが必要になる。しかし、単に複数のコントローラを増
加したのでは、そのコスト、消費電力、占有面積等の面
で不利である。 そして、更に、上記の各機能は、夫々独立した動作を
行なうから、この機能単位毎にテイーチングが必要であ
る。そのために、夫々の操作部と表示部が必要となり、
無駄が多い。即ち、従来の例えば、ティーチングペンダ
ント(=テイーチング情報の入力卓)を使つて、夫々の
コントローラ毎に移動して、入力する手間がかかつてし
まう。 一方、例えば特開昭50−150166号公報には、ティーチ
ングペンダントと動作軸との接続を保持する手段を設
け、動作軸を選択する選択回路を設けることが開示され
ている。この先行技術のチイーチングペンダントによれ
ば、各動作軸の位置に移動する手間が省ける。しかしな
がら、このような動作軸等は常に増減若しくは変更する
ものであるが、動作軸が増減若しくは変更する度に、そ
の変更に対応してティーチングペンダントのセッテイン
グの修正を強いられることになり、その手間が大変であ
る。 そこで本発明は上記従来技術の問題点に鑑みてなされ
たものでその目的は、例えばテイーチングを行なうため
の情報を入力する等の入出力装置が例え1つであつて
も、制御対象である動作単位を容易に増設・変更できる
ようにし、増設・変更などがあった場合にも対応できる
ようにした自動機の制御装置を提供するところにある。 [問題点を解決するための手段及び作用] 上記課題を達成するためのの本発明の構成は それぞれが複数の被駆動素子を有し、互いに独立した
異なる動作を行う複数の動作部からなる自動機の制御装
置であって、 前記複数の動作部における動作を教示するためにの指
示を入出力する入出力部と、 前記互いに独立した異なる動作をそれぞれ制御するた
めの複数の動作制御タスクと、前記入出力部と前記動作
制御タスクとの間でデータのハンドリングを行うハンド
ラタスクとを有し、前記複数の動作制御タスクを並列的
に切り換えて実行することを可能とする上位制御部と、 この上位制御部に統括される制御部であって、前記複
数の動作制御タスクの1つに基づきこの1つの動作制御
タスクに対応した動作部の前記複数の被駆動素子を駆動
するための複数の下位制御部と、 前記上位制御部と前記複数の下位制御部のそれぞれと
間に設けられ、前記上位制御部に備えられた前記動作制
御タスクと前記下位制御部との間でデータ転送を可能と
するデータ転送手段と、 前記ハンドラタスクに設定された複数の入出力ポート
にそれぞれ対応して設けられた割付レジスタを有し、こ
の割付レジスタの前記入出力部が前記複数の動作制御タ
スクのいずれに専有されているかを示すデータを保持す
る保持手段とを備え、 前記ハンドラタスクは、前記入出力部を介して、前記
ハンドラタスクに設けられた複数の入出力ポートが各動
作タスクのいずれに占有されているかを示すデータ前記
割付レジスタに書き込み可能としていることを特徴とす
る。 [実施例] 以下に、この発明に係わる制御装置を、所謂ロボッ
ト,ストッカ,エレベータ,バッファからなる自動組立
/部品供給装置に適用した実施例の構成を添付図面を参
照して、詳細に説明する。 〈実施例の構成〉 この自動組立/部品供給装置10は、 (日):複数の部品から所定の製品を自動的に組立るた
めのXY型の自動組立装置(以下、単にロボットと呼
ぶ。)12と、 (月):このロボット12に部品を供給するストッカ24で
あつて、複数個の部品を平面上に収容したパレツトpの
複数個を棚状に積層収納し、その複数個のパレツトpの
なかから組立工程に合致した部品を収容するパレツトp
を前記ロボット12の指示により選択し、この選択された
パレツトpをパレツトpの引き出し位置154に引き出す
ためのストッカ24と、 (火):このストッカ24に収納されているパレツトpの
部品がなくなる場合に備えて、部品を満載したパレツト
pを台52上に複数個積層して貯蔵するバッファ22であつ
て、ロボット12から要求されたパレツトpを、分離部材
66,68により積層されたパレツトpから1つだけ分離す
るバッファ22と、 (水):バッファ22で分離されたパレツトpを受けて、
空になつたパレツトp′のストッカ24内の棚位置まで上
下動をすることにより移動し、そこで、空パレツトp′
と新たなパレツトpとを入れ替えるエレベータ26と、 (木):入れ替えられた空パレツトp′を積載して搬出
する搬出機構76と、 (金):バッファ22に外部から新たは新たなパレツトp
を補充する無人車20と、 (土):上記ロボット12,ストッカ24等の動作プログラ
ムを入力したり、テイーチングボイントを教示するため
の入出力装置18等からなる。 なお、ロボット12のフインガー220は、引き出し部154
上に引き出されたパレツトpから部品を1つずつ取り出
して、組立台224上で、部品を1つずつ組上げて、製品
に仕上げる。 〈制御ユニットの構成〉 上記制御対象となる各機能要素を制御する制御装置16
は、第2図に示すように、6枚のマイクロプロセサボー
ドから構成される。ボート702は、ロボット用のサーボ
関係の制御を行なうサーボブロックのボードであり、ボ
ード703はストッカ用のそれ、ボード704はエレベータ用
のそれ、ボード705はバッファ用のそれである。I/Oブロ
ックボード706、ロボット,ストッカ,エレベータ,バ
ッファ内で使用される種々のセンサ及びソレノイドに対
して入出力を行なうためのボードであり、この一枚で、
上記4つの機能単位のI/O制御をまとめて行なう。もち
ろん、ロボットの追加を予定しており、その場合でも、
4つ以上の機能単位に対処できるように、I/Oブロック
ボード内はモジユール化されている。 メインブロックボード701は、マルチタスクオペレー
テイングシステム(以下、OSと略す)下でロボット言語
の解釈及び入出力装置18とのインターフェースを行なう
マイクロプロセサボードである。これらの6枚のマイク
ロプロセサボードは、周知のシステムバス700により結
合される。このシステムバス700には、例えばマルチバ
ス(米国インテル社),Zバス(米国ザイログ社)等が適
用可能である。 第3図は、メインブロックボードを中心にした接続関
係を示した図である。先ず、メインブロック701は、あ
る通信規約に従つて入出力装置18と通信を行なうRS232C
インターフェース802と、メインブロックボード701の主
記憶であるローカルメモリー803と、メインブロックの
制御を行なうCPU805等によつて構成される。 各サーボブロック702〜705は、メインブロック701か
らの動作指令によつて、例えばモーター808a,808b及び
エンコーダ809a,809bの動作制御を行なつている。I/Oブ
ロック706は、やはりメインブロック701の動作指令によ
りソレノイドバブルSV811及びセンサS812等の制御を行
なつている。各ブロックを制御しているメインブロック
701は、共有バス700上の共有メモリ806を介してサーボ
ブロック702等またはI/Oブロック706に動作指令を行な
う。上記サーボブロックやI/Oブロックは、サーボモー
タ等の被駆動素子の単純化した動作を制御するのに特化
したことが、後述するように、本実施例の大きな特徴と
なる。 入出力装置18からキー入力された各機能ブロックのブ
ログラムは、RS232Cインターフェース802を介して、ロ
ーカルメモリ803の所定領域に格納される。第3図等に
示すように、入力出力装置18は各機能ブロック間で共有
される点に本実施例の他の大きな特徴がある。 〈メインブロックのメモリマツプ〉 第4図は、メインブロック701のCPU805の論理アドレ
ス空間を示すメモリマツプである。820はマルチタスクO
S、821は入出力装置18とデータのハンドリングを行なう
ハンドラプログラムである。また、822は入出力装置18
がどのタスクに割り付けられているかを記憶する割付レ
ジスタである。また、823〜826は夫々、ロボット等のモ
ードを処理するモード処理プログラムであり、827は各
タスク用のワークエリア、828はタスク間で共通に使わ
れる変数を格納するタスク共通変数エリアである。ま
た、829〜832は各アプリケーシヨンプログラムを格納す
るエリアであり、833〜836はロボット等のための各テイ
ーチングポイントを格納するエリアである。 更に、837はメインブロック701が各サーボブロック及
びI/Oブロック706との間で通信を行なうのに使われるコ
マンド通信用共有メモリであり、前述したように、この
コマンド通信用のデータは第3図の共有メモリ806に格
納される。即ち、前述の820〜836は、ローカルメモリ80
3に格納され、コマンド通信用データは共有メモリ806に
格納される。 〈マルチタスクOS〉 第5図は、第4図に示した各プログラム間を階層的に
示したものである。即ち、ハンドラタスク821,ロボット
タスク823〜バッファタスク826は、マルチタスクOS820
の下で管理を受ける。このOSは事象(イベント)駆動方
式のマルチタスクであり、タスク登録時にタスクコント
ロールボックスを作成し、そのとき、当該タスクのコー
ドのスタートアドレス、タスク固有のデータ領域(タス
ク用ワークエリア827)、そして、各タスク間で共通に
使われるデータ領域(共通変数エリア828)を指定す
る。 また、このマルチタスクOSは、フラグセツト/リセツ
ト用、メール(タスク間通信)用、RS232Cインターフェ
ースの入出力用、サーボブロック用等のためのシステム
コール(システム用制御コマンド)を用意している。そ
して、タスクの実行/停止は、後述の「中断フラグ」と
いうフラグのセツト状態によつて左右される。例えば、
WAIT−FLAGというシステムコールが発せられたときに既
に、他のタスクからSET−FLAGというシステムコールが
他のタスクから発行されていれば、そのまま、中断フラ
グはセツトされず、従つて、WAITはされないでタスクの
実行は継続する。しかし、他のタスクからSET−FLAGと
いうシステムコールが発行されていなければ、そのタス
クの中断フラグはセツトされ、そのタスクはCPU805の使
用権は放棄したことになり、待ち状態となる。即ち、他
のタスクのうち中断フラグがセツトされていないものの
みが、CPU805を占有する。一方中断フラグがセツトして
いる状態で、他のタスクからSET−FLAGのシステムコー
ルがあると、中断フラグはリセツトされその待ち状態の
フラグは実行可能状態になる。 ロボット,ストッカ,…等のアプリケーシヨンプログ
ラムとして書かれる所謂ロボット言語は、マルチタスク
OS820内のインタプリタによつて構造チエック,解釈,
実行と行なわれる。その実行ルーチンのなかで、上記シ
ステムコールを使用することで、各タスク間のメールに
よるデータ授受、そして前記フラグによる各タスク間の
実行の調停を行なわせることが可能となり、かくして、
マルチタスク対応のロボット言語を提供できることにな
る。 タスク共通変数としては、例えば、工程を示す変数
G、工程Gで使われる部品を収容するパレツトが収納さ
れているストッカ24内の棚位置を示す変数S[G]、工
程Gに使われる部品のパレツト内の残個数を示す変数Z
[G]、そして、ストッカー24内で残個数Z[G]が
“0"になり、その残“0"のパレツトをエレベータ26を介
してバッファ22から、補給して入れ替えるべきことを示
すフラグI[G]等がある。 一般に、タスク内で使用するワーク領域は、各タスク
間で固有で閉鎖的であるが、各タスク共通に使用可能な
共通変数領域828を設けることにより、どのタスクから
でも、これらの変数にアクセスすることが可能になる。
このように、このタスク間で共通の領域にアプリケーシ
ヨンプログラム記述言語であるロボット言語としてのタ
スク共通変数を構築することによつて、どのタスクから
でも、数値または文字の操作を可能としている。そし
て、タスク間の同期は、実行ルーチンの中で、OS用のシ
ステムコールを発行することを特徴とするマルチタスク
対応のロボット言語とタスク共通変数により実現されて
いる。 このように、マルチタスクによる各機能ブロックのア
プリケーシヨンプログラムレベルの並列的実行は、各タ
スクの間でのデータのやり取りがメモリを介して行なわ
れるために、複雑な配線等が不要になり、また煩雑な通
信用のプログラムも不要となり、その結果高速になる。
しかも、後述するように、ロボット,ストッカー等がも
つその動作の独自性は、このマルチタスク下におけるタ
スクの相違というものに全て吸収されてしまうことも留
意しておくべきである。 第6図に入出力ハンドラ821と各タスクの間に設けら
れた論理的データパスを示す。即ち、入出力ハンドラ82
1には、入出力ポートが3つ(PT1〜PT3)用意されてい
る。一方、前述したように、823〜823の各タスクには、
入出力装置18とのデータやり取り専用のメイルボックス
(MB1〜MB4)が用意されている。入出力ハンドラ821の
入出力ポートが3つであり、メイルボックスが4つであ
るために、各入出力ポートが現在どのタスク(どのメイ
ルボックス)に割ち付けられているか保持するデータが
必要であり、そのデータが割り付けレジスタ822のデー
タである。この割り付けデータは前述したように、ロー
カルメモリ803の領域822に確保され、各ポートに対して
1ワード用意されている。 〈割付レジスタ〉 第7図に割付レジスタの構成を示す。上述したよう
に、この割付レジスタは各ポート/チャネルに対して、
1つ用意されており、その値が“0"であることは、当該
ポート/チャネルが開放状態であることを意味する。ま
た、その値が“1"であるときは、ロボットタスクに占有
されていることを“2"であるときはストッカータスクに
占有されていることを、“3"であるときは、‥‥‥。こ
の割付ビツトをリセツト(開放)するのは、入出力装置
18から“D0"のコマンドが入力されたとき、ロボットタ
スクに割り付けられるときは入出力装置18から“D1"の
コマンドが入力されたとき、‥‥である。 〈タスクコントロールボックス〉 第8図はタスクコントロールボックスの構成を示す。
このタスクコントロールボックスはマルチタスクOS820
により、その初期化時に作成されるものである。このタ
スクコントロールボックスに登録され得るタスクは、本
実施例に特に関連するもののみを上げると、第8図に示
すように、入出力装置ハンドラタスク821(以下、RSハ
ンドラタスクと略す)、ロボットタスク823、ストッカ
ータスク824エレベータタスク825、バッファタスク82
6、そして、OS820によつて起動されユーザには使用でき
ないスタートアツプタスクがある。このスタートアツプ
タスクは、その性質故、第4図には示していない。 タスクコントロールボックスに格納されているデータ
を説明すると、そのタスクの開始命令アドレスを示す
「スタートアドレス」、システムに登録されたか否かを
示す「登録フラグ」、そのタスクが起動されたかを示す
「起動フラグ」、起動されはしたが現在中断中であるこ
を示す「中断フラグ」、そして、RSハンドラに割り付け
されたか否かを示す「割り付けフラグ」、そして、対応
するメイルボックス内にデータ入力があることを示すフ
ラグ「メイルボックスフラグ」等である。上記中断フラ
グは、当該タスクのためのデータがメイルボックスに入
力されることの待状態にあることを示す「メイルボック
ス入力待フラグ」、サーボボードからのI/O完了割込み
待であることを示す「I/O完了待フラグ」、RSハンドラ
によつて当該タスクがいずれかのチャネルに割り付けら
れることの待であることを示す「割り付け待フラグ」
の、いずれかのビツトがセツトされれば、中断状態にな
る。さて、タスク間のスケジユーリング、切替えは、所
謂ラウンドロビン方式に従つて、登録され、起動された
タスクについて、順番に「中断フラグ」をサーチして、
「中断フラグ」が“0"であるタスクはそのアプリケーシ
ヨンプログラムの実行を行ない、“1"であるタスクは実
行を中断して次のタスクの「中断フラグ」をサーチする
ものである。 上記「メイルボックスフラグ」は、システム820によ
りセツトされる。 また、RSハンドラタスクのタスクコントロールボック
スは、本実施例では3チャネル分用意されている。全タ
スク分のチャネルを用意しても良いが、全タスクが同時
にRSハンドラと通信状態に入ることは、この自動組立/
補給装置では少ないから、プログラム規模の、システム
の複雑化を防ぐ意味からでも、チャネル数をすくなくし
ている。従つて、この実施例装置の動作が複雑化すれ
ば、当該チャネル数を増やす必要はあるのであり、その
場合にも、システムのアルゴリズムを変更することな
く、増設可能であることは以下の説明から容易に了解さ
れる。 尚、以下説明する制御プログラムでは、説明の便宜
上、ポート/チャネルを1チャネルとして説明する。 〈入出力装置18のタスクへの割り付け〉 本実施例の自動組立/補給装置における制御モードに
は、7つのモードが設定されている。それらのモードと
は、ロボットプログラムを解釈し、各ブロックに動作を
指令するモード(自動モード)、ロボットプログラムを
作成記憶するモード(プログラムモード)、入出力装置
18または各センサからの入力を監視するモード(入力モ
ード)、出力を開閉するモード(出力モード)、ロボッ
トに動作位置を教示するモード(テイーチングモー
ド)、ロボットの動作位置を入力し記憶するモード(デ
ータモード)、各ブロックの動作に対する定数を変更す
るモード(パラメータモード)の7つである。 これらのモードに出入りするための指令は、外部の入
出力装置18から行なう。即ち、タスクがプログラムに従
つて動作するのは、入出力装置18からの起動があるから
であり、そのためには、タスクは入出力装置18にいずれ
かのポート/チャネルを介して割り付けられる必要があ
る。第9A図,第9B図は、この割り付けのための制御プロ
グラムである。第9A図はマルチタスクOS820による各タ
スクの起動までを、第9B図にRSハンドラ821と各タスク
が割り付けられるまでを示す。尚、第9B図においては、
紙面の都合上、RSハンドラ821とロボットタスク823との
関係のみを示す。 先ず、制御ユニット16に電源が投入されると、ステッ
プS10でマルタスクOS820のワークエリア等が初期化され
る。そして、OS820により、スタートアツプタスクの起
動がなされる。即ち、タスクコントロールボックス(第
8図)の「登録フラグ」と「起動フラグ」とが“1"とマ
ークされ、スタートアツプタスクが起動される。 スタートアツプタスクのステツプS20,ステップS22
で、チャネル1〜3の各チャネルに対応したRSハンドラ
タスク,ロボットタスク〜バッファタスク等の[登録フ
ラグ」,「起動フラグ」を“1"とマークする。そして、
ステップS24で、スタートアツプタスクの「起動フラ
グ」を“0"に、「中断フラグ」を“1"にマークして、こ
のタスクを休止させる。 以後は前述したように、ラウンドロビン方式に従つ
て、RSハンドラタスクからバッファタスクまでの間でタ
スクのスケジユーリング、切り替えが行なわれる。 第9B図に従つて説明する。RSハンドラ側は、スタート
アツプタスクにより「起動フラグ」を“1"とされると、
ステップS30で、システムコールによりRS232Cインター
フェース402を介した入出力装置18からの入力を調べ
る。入力がなければ、ステップS32で、「中断フラグ」
と「入力待フラグ」を“1"とマークして、自らはCPU405
の使用権を放棄する。 もし入出力装置18からの入力がなく、RSハンドラタス
クが中断したら、タスクスケジユーリングによつて、ロ
ボットタスクに切り替えられる。ロボットタスクは既に
スタートアツプタスクによつて登録及び起動済みとマー
クされているから、ステップS70から実行され、前述の
各モードで使用される変数等を初期化する。そして、ス
テップS72で、タスクコントロールボックスのスタート
アドレスを変更する。これは、再度RSハンドラタスクか
らロボットタスクへ切り替えられたときに、再度ステッ
プS70の初期化を行なわないようにするためである。従
つて、変更されるべきスタートアドレスはステップS74
を指す。ステップS74では、ロボット用のメイルボック
スにハンドラ821から入力がないかを調べる。この入力
がなければ、このロボットタスクの「中断フラグ」,
「入力待フラグ」を“1"とマークして、他のタスク(第
9B図の場合は、RSハンドラタスク)の実行に切り替わ
る。入力があればステップS78に進むが、今の場合は、
未だRSハンドラから入力していないので、「メイルボッ
クスフラグ」はリセツトされているままであるから、RS
ハンドラタスクの実行に切り替わる。 RSハンドラタスク側では、ステップS32での入力待で
中断している。もし、これ以前にインターフェース402
を介して入出力装置18からの入力があれば、マルチタス
クOS820により、「中断フラグ」と「入力待フラグ」は
リセツトされているから、ステップS34に進む。そし
て、ステップS34で、ポートから1バイトの入力を行な
い。ステップS36で、このコマンドの解釈を行ない、そ
のコマンドによつて、ステップS40、ステップS48、ステ
ップS60のいずれかに進む、 ステップS40は、入力されたコマンドが割付コマンド
である場合である。この割付コマンドは、このコマンド
が入力されたポート/チャネルを、コマンドが示すタス
クに割り付けようとする。その指定されたタスクを入出
力装置18に対して割り付ける。以後、入出力装置18は割
り付けられたチャネルを通してそのタスクと通信を行な
う。もし、コマンドが、ロボットタスクに割付けようと
しているならば、そのコマンドは前述したように、例え
ば“D1"である。そこで、ステップS40で、このコマンド
が入力されたポート/チャネル以外のポート/チャネル
の割付レジスタを調べる。即ち、他のポート/チャネル
と当該タスクが既に結合されているかも知れないからで
ある。既に結合されている場合は、RSハンドラタスクに
対して、エラーメツセージを返す。これは、1つのタス
クに2つ以上の論理パスを設けることは、制御を複雑に
するから禁止しているからに他ならないが、もしRSハン
ドラタスクからの入力とRSハンドラタスクへの出力を1
つのタスクについて、別々に行なうことを認めれるので
あれば、ステップS42,ステップS44は不要である。 ステップS42での判断がOKであれば、ステップS46で、
割り付けようとするタスクのメイルボックス番号を、割
付レジスタに格納する。かくして、RSハンドラタスクと
ポート/チャネルと特定のタスクとの間がメイルボック
スを介して連結されたことになる。 RSハンドラタスクは、上述の論理パス設定後、ステッ
プS30に戻つて、再度ポート/チャネルから入力がある
のを待つ。ステップS30で、入出力装置18からの入力が
なくて、ロボットタスクに制御が切り替わつても、ロボ
ットタスクは現在、ステップS76で、メイルボックスデ
ータ待であるから、再度、RSハンドラタスク側に制御が
切り替わる。ステップS30で入出力装置18からの入力が
あると検出されたら、ステップS34→ステップS36→ステ
ップS38と進む。この入力が、割り付けコマンドでも、
割り付け開放コマンドでもない場合は、ステップS60に
進む。ステップS60では、このポート/チャネルとこの
コマンドによつて指定されたタスクとが既に連結されて
いることを念のために調べるために、割付レジスタを調
べる。割り付けされていなければ、ステップS64にエラ
ーメツセージを当該ポート/チャネルを介してRSハンド
ラタスクに返す。割り付けOKであれば、割付けレジスタ
に示された番号のメイルボックスに格納して、ステップ
S30に戻る。このとき、マルチタスクOSは、タスクコト
ロールボックスの「メイルボックスフラグ」を“1"とマ
ークするとともに、「中断フラグ」をリセツトする。 ステップS30で入力がなくて、ロボットタスクに制御
が移つても、「メイルボックスフラグ」はセツトされて
いるから、ロボットタスクは実行可能であるから、ステ
ップS78で、当該メイルボックス内のデータを取り出
す。そして、この取り出されたコマンドに従つて、前述
した7つのモードのいずれかに、このタスクは移行す
る。 このようにして、入出力装置18からの入力データは、
1つのポート/チャネルと、タスクとが論理的に連結さ
れた状態でコマンドの授受が行なわれる。 尚、ロボットタスクは、各モードからモード脱出コマ
ンドの入力により脱出して、ステップS70に戻る。 ここで、割り付け開放コマンドの入出力装置18から入
力した場合について説明する。このときは、ステップS3
0→ステップS34→ステップS36→ステップS38→ステップ
S48へと進む。このステップS48で、割付レジスタの当該
チャネル、“0"とマークし、タスクコントロールボック
スの割り付け状態ビツトを“0"にする。この割り付け開
放コマンドは、ポート/チャネルが3つに対して、この
ポート/チャネルを使うタスクが4つあるので、どうし
ても開放コマンドが必要になるからである。割り付けの
開放は、入出力装置18内のプログラムにより、ラウンド
ロビン方式でスケジユーリングすればよい。 第10図を用いて、各タスクからRSハンドラタスクを介
して入出力装置18へ出力する場合の制御を説明する。こ
の場合も紙面の都合上、タスクはロボットタスクのみで
説明する。ロボットタスクのアプリケーシヨンプログラ
ム実行中に、ステップS120で、入出力装置18への出力デ
ータが発生したとする。このとき、システムコールによ
り、ステップS122でタスクコントロールボックス内の自
分のタスクの割り付けフラグのセツト状態を調べる。そ
して、割り付けされていないならば、入出力装置18から
の割り付けコマンドによる割り付けを待つ。即ち、タス
クコントロールボックスの「割り付け待フラグ」と「中
断フラグ」を“1"とマークする。 一方、RSハンドラタスク側では、前述したアルゴリズ
ムにより、ステップS100〜ステップS106で、ポート/チ
ャネルの当該タスクへの割り付けを行なうから、ステッ
プS106で、マルチタスクOSが、このタスクの「割り付け
待フラグ」と「中断フラグ」を“0"にすると共に、メイ
ルボックス番号をそのチャネルの割付レジスタに格納す
る。やがて、RSハンドラタスクは待ち状態に入つて、制
御はロボットタスク側に切り替わるから、その時点で、
ロボットタスクの制御はステップS126から再開する。ス
テップS126で、割付けレジスタの内容を順に調べ、自分
のタスクが使用しているメイルボックスの番号に一致す
るチャネルを探す。そして、このポート/チャネルから
ステップS130で、直接出力する。このように、いついか
なるときに、タスク側で、RSハンドラタスク向けの出力
データが発生しても、論理パスを確定してから出力さ
れ、出力データがうしなわれることはない。 上述したように、1つのポート/チャネルが1つのタ
スクと、割り付けコマンドで接続され、割り付け開放コ
マンドで開放されるということは、複数のタスク間で、
1つの入出力装置18の共有化が達成できることを意味す
る。即ち、従来技術の項で述べたように、プログラム制
御による自動組立/供給装置では、テイーチング,シス
テムの初期設定等の種々の制御が必要であり、この実施
例のように,ロボット,ストッカー,……等が独立して
動作するような場合は、各ブロック毎にテイーチング等
が必要であり、そのために、テイーチング等のための入
出力装置が複数台必要であつたが、この実施例では、少
なくとも1台の入出力装置18で間に合うことになる、こ
うして、1つの入出力装置18が、特にロボット,ストッ
カ等の自動組立装置における各機能ブロック要素との間
で共有化が図られる。しかも、更に、例えばロボット等
を増設するときでも、それに必要な制御ブロックボード
(第2図参照)等は新たに必要になるとは言え、従来の
ように、テイーチングのための教示装置を追加する必要
はない。また、それぞれの負荷に対するデータ入力の際
に、その負荷に対応する入出力装置18の所で移動するわ
ずらわしさが省けるわけである。 〈メインブロックとサーボブロック〉 各タスク間は上述したように、マルチタスクOS化で、
システムコールによるフラグ管理及び共通変数による管
理により、各制御モージユールが同期して動作される。
これらのタスクは、マルチタスクOSの物理層レベルの制
御を通して、システム700により、各サーボブロックボ
ード(702〜705)と、I/Oブロックボード706とに接続さ
れている。ここで、これらのサーボブロック等と上記各
タスクを含むメインブロックとのインターフェースを説
明する前に、前述の自動モードにおける制御について第
11図を用いて説明する。 ステップS150で、この自動モードをコールしたタスク
のメイルボックスにデータが入力されているかを調べ
る。データが入力されていなければ、他のタスクへの切
り替えを行なつて、データ入力を待つ。メイルボックス
にデータ入力があると、ステップS152で、そのデータを
取り出し、ステップS154で、その分析を行なつて、どの
ような動作指令かを判断する。本実施例では、6通りの
動作指令を示す。第1はステップS156のプログラムの解
釈/実行である。このときは、プログラムの最終まで実
行して、終了した時点(ステップS160)で、入出力装置
18に終了したポインタ行を中心にして、5行分を出力す
る。第2の例は、ステップS162における、プログラム1
行の解釈/実行である。このときは、その1行毎の解釈
/実行でステップS164で、入出力装置18に対して、1行
進んだポインタ行より3行後のプログラムを1行分出力
する。第3の例は、ステップS166において、プログラム
番号を変更するものである。このときは、ステップ168
で、入出力装置18に対して、変更後のプログラム番号の
プログラムの先頭5行分を送出する。第4の例はステッ
プS170におけるポインタ行の変更である。このときは、
ステップS172で、変更後のポインタ行を中心に5行分を
送出する。第5図の例は、ステップS174の、ポインタ行
を1つ進めることである。このときは、ステップS176で
変更後のポインタ行の3行後の1行を送出する。第6の
例はステップS178におけるポインタ行を1つ戻すことで
ある。この場合は、ステップS180で、変更後のポインタ
行の3行前の1行を送出する。尚、これらのデータ送出
は前述の第10図に示した制御を用いる。 次に、第12図,第13図を用いて、メインブロック701
と各下位の制御ブロック702〜706とのインターフェース
を説明する。第12図は、各下位ボードとの通信につかわ
れるデータのフオーマツトである。この通信データは共
有メモリ806の領域837(第4図)に格納される。動作指
示コードとは、例えば、サーボモータの回転により例え
ばロボットアームを移動させるときの1バイトとコード
である。このときのパラメータは、移動位置がセツトさ
れる。転送バイト数は上記指示コードとパラメータの併
せたバイト数である。転送バイト数が必要なもの、パラ
メータが可変長であるからである。第12図にも示してあ
るように、ロボットのサーボボードには、1デバイス/
ワードであるならば、256個分のサーボモータ等のデバ
イスを駆動するに足りる通信エリアが確保されている。 第13図により制御を説明する。アプリケーシヨンプロ
グラムが例えば、“MOVE"等の命令を実行すると、イン
タプリタが解釈してOSに対してシステムコールを発生
し、マルチタスクOSが動作指示コードとパラメータを準
備して、割り込みを各サーボボードに対して送出する。
そこで、タスク側では、ステップS200で、それらのコー
ドとパラメータとを、共有メモリ806内の所定の位置に
格納する。そして、ステップS202で、その下位ボードに
対して、システムバス700を介して割込みをかける。ス
テップS204で、システムコールを行ない、タスクコント
ロールボックスの(I/O完待フラグ」,「中断フラグ」
を“1"にマークして、待状態に入る。ステップS212で、
割込みを受けた下位ブロック側は、ステップS214で、共
有メモリ806から動作指示コード、パラメータを取り出
して、ステップS216で、その動作を実行する。そして、
ステップS220で、メインブロック701に対して、動作終
了の割込みをかける。この割込みを受けたメインブロッ
ク側では、マルチタスクOSが、このI/O完了割込みの原
因になつたタスクのタスクコントロールボックスの「完
了フラグ」及び「中断フラグ」を“0"にする。こうし
て、当該タスクは再び実行可能状態におかれる。 また、I/Oブロックに対しても、第12図に示されたの
と同じ領域が共有メモリ806内に確保されており、例え
ばロボットタスクで、あるソレノイドを付勢するような
命令が実行されると、その被駆動素子がソレノイドであ
り、その制御はI/Oブロック内にて行なわれるべきこと
をインタプリタが解釈して、第12図に示した動作支持コ
ード等を共有メモリ806内に準備して、OS820に対してシ
ステムコールを発し、すると、OS820はこのI/Oブロック
に対して割り込みをかける。その他の動作はサーボブロ
ックの場合と同じである。ストッカ、エレベータ、バツ
ファ等のソレノイド等に対しても、同じI/Oブロックボ
ードが使われる。 以上説明したように、このメインブロックとその下位
の制御ブロックとの間は、1つは第12図に示した毎き単
純化されたコマンドセツトによりインターフェースされ
る。しかも、各下位ブロックにおけるサーボモータ等の
デバイスはその動作をコマンドとして極めて単純化でき
る。このことは次の重要な特徴を引き出す。即ち、ロボ
ット,ストッカー等は、夫々が独自の機能を有し、その
動作は異なつている、これを従来のように、異なる機能
毎に異なる制御装置がその機能に対応した制御プログラ
ムをもつて制御していたのでは、機能が増える毎に、異
なる制御装置が必要となる。ところが、上記実施例で
は、先ず、ロボットとストッカーとでは、機能が異なつ
ていても、それは制御のアルゴリズムが異なつているだ
けであり、そのアルゴリズムの違いをタスクの違いに吸
収させる。タスクの相違はプログラムの相違に過ぎな
い。そして、例えばロボットとストッカーでは、アルゴ
リズムの相違を捨象すれば、サーボモータ,ソレノイド
等といつたデバイスの集合に過ぎないのであり、これら
のデバイスは上述したように単純な命令セツトでその動
作を表現できるから、下位制御ボードは、例えロボット
とストッカー間でもほとんど差異がないことになる。ま
たメインブロックは、サーボモータ等の被駆動素子の独
自性には影響を受けないから、プログラムが違うのみで
よく、これは単にメモリ容量の差に過ぎなくなる。即
ち、メインブロックでは、機能の増設をメモリ容量を増
やすのみで対応でき、下位の制御ブロックでは、機能が
増えても同じ制御ボードを使用できるのであるから、大
変なコストダウンになるのである。 〈変形例〉 尚、上記実施例において、入出力装置18のポートは3
つを設定したが、1つでも、また4つ以上でも同じであ
る。また、入出力装置18の数も1つには限られず、例え
ば制御対象が10台ある場合は、効率を考えれば、2台以
上の入出力装置18を設置可能である。 また、上記実施例においては、制御対象が、1つのブ
ロックとなり、それが1つのタスク、1つのボードに対
応しているが、1つのボード上にスペース的余裕があれ
ば、複数の制御ブロックを搭載することも可能である。 更にまた、第13図の制御では、割込みを用いていた
が、割込みによらず、共有メモリの一部を使つたポーリ
ング方式によつても可能である。逆に、第13図の制御
で、共有メモリを使わずに、割込み発生と同時に、シス
テムバス700上に、動作指示コードとパラメータをメイ
ンブロックのCPU805が載せてやり、それを下位の制御ブ
ロックのマイクロプロセサが拾うという形式でも可能で
ある。 [発明の効果] 以上説明したように、本発明の複数の制御対象からな
る自動機の制御装置は、複数の動作部(例えば、サーボ
モータや、ソレノイド等のアクチュエータ並びにセンサ
等)における動作を教示するための指示を入出力する入
出力部と、例えばメインブロックボードなどの上位制御
部に接続され、この上位制御部は、互いに独立した異な
る動作をそれぞれ制御するための複数の動作制御タスク
と、前記入出力部および動作制御タスクとの接続を可能
とするハンドラタスクとを有し、前記複数の動作制御タ
スクを並列的に切り換えて実行する。そして、前記入出
力部が、前記複数の動作部のどの制御動作タスクに占有
されているかを保持するようにしている。従って、これ
ら動作部と入出力部との接続は制御動作タスクを介して
行なわれることになり、動作部が増減・変更されても、
入出力部と動作部との対応を再設定する手間が省ける。
【図面の簡単な説明】 第1図は、本発明を実施した自動組立/供給装置の構成
図、 第2図は、第1図実施例装置における制御部内のボード
構成を示す図、 第3図は、入出力装置、メインブロック、下位制御ブロ
ック間の接続を示す図、 第4図は、メインブロックのCPU805のメモリ空間を示す
メモリマツプ図、 第5図は、マルチタスクにおけるプログラム階層図、 第6図は、各ブロック間における情報の論理パスの接続
を示す図、 第7図は割り付けレジスタの構成を示す図、 第8図はタスクコントロールボックスの構成を示す図、 第9A図,第9B図は入出力装置18を各タスク間で共有する
ための動作制御プログラムのフローチャート、 第10図は、タスクからRSハンドラタスクへのデータ出力
制御のフローチャート、 第11図,第13図は実施例の制御に係るプログラムのフロ
ーチャート、 第12図はメインブロックと下位制御ブロックとのインタ
ーフエースデータのフオーマツトを示す図である。 図中、12……ロボット、18……入出力装置、16……制御
ユニット、22……バッファ、24……ストッカ、26……エ
レベータ、20……無人車、220……フインガー、66,68…
…分離部材、76……搬出機構、154……引き出し部、224
……組立台、700……システムバス、701……メインブロ
ックボード、702〜705……サーボブロックボード、706
……I/Oブロックボード、802……インターフェース、80
3……ローカルメモリ、805……CPU、806……共有メモ
リ、808a,808b……サーボモータ、809a,809b……エンコ
ーダ、811……ソレノイドバルブ、812……センサ、823
……ロボット用タスク、824……ストッカ用タスク、825
……エレベータ用タスク、826……バッファ用タスク、8
21……入出力装置用ハンドラタスク、820……マルチタ
スクOSである。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 安原 正輝 東京都大田区下丸子3丁目30番2号 キ ヤノン株式会社内 (72)発明者 谷田 武雄 東京都大田区下丸子3丁目30番2号 キ ヤノン株式会社内 (72)発明者 笠井 省三 東京都大田区下丸子3丁目30番2号 キ ヤノン株式会社内 (56)参考文献 特開 昭61−256406(JP,A) 特開 昭59−214910(JP,A) 特開 昭50−150166(JP,A) 特開 昭58−31411(JP,A) 特公 昭57−13003(JP,B2)

Claims (1)

  1. (57)【特許請求の範囲】 1.それぞれが複数の被駆動素子を有し、互いに独立し
    た異なる動作を行う複数の動作部からなる自動機の制御
    装置であって、 前記複数の動作部における動作を教示するための指示を
    入出力する入出力部と、 前記互いに独立した異なる動作をそれぞれ制御するため
    の複数の動作制御タスクと、前記入出力部と前記動作制
    御タスクとの間でデータのハンドリングを行うハンドラ
    タスクとを有し、前記複数の動作制御タスクを並列的に
    切り換えて実行することを可能とする上位制御部と、 この上位制御部に統括される制御部であって、前記複数
    の動作制御タスクの1つに基づきこの1つの動作制御タ
    スクに対応した動作部の前記複数の被駆動素子を駆動す
    るための複数を下位制御部と、 前記上位制御部と前記複数の下位制御部のそれぞれとの
    間に設けられ、前記上位制御部に備えられた前記動作制
    御タスクと前記下位制御部との間でデータ転送を可能と
    するデータ転送手段と、 前記ハンドラタスクに設定された複数の入出力ポートに
    それぞれ対応して設けられた割付レジスタを有し、この
    割付レジスタに前記入出力部が前記複数の動作制御タス
    クにいずれに専有されているかを示すデータを保持する
    保持手段とを備え、 前記ハンドラタスクは、前記入出力部を介して、前記ハ
    ンドラタスクに設けられた複数の入出力ポートが各動作
    にタスクのいずれに占有されているかを示すデータを前
    記割付レジスタに書き込み可能としていることを特徴と
    する自動機の制御装置。
JP62196490A 1987-08-07 1987-08-07 自動機の制御装置 Expired - Lifetime JP2829928B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP62196490A JP2829928B2 (ja) 1987-08-07 1987-08-07 自動機の制御装置
US07/227,551 US5032975A (en) 1987-08-07 1988-08-03 Controller for automatic assembling apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62196490A JP2829928B2 (ja) 1987-08-07 1987-08-07 自動機の制御装置

Publications (2)

Publication Number Publication Date
JPS6441902A JPS6441902A (en) 1989-02-14
JP2829928B2 true JP2829928B2 (ja) 1998-12-02

Family

ID=16358644

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62196490A Expired - Lifetime JP2829928B2 (ja) 1987-08-07 1987-08-07 自動機の制御装置

Country Status (1)

Country Link
JP (1) JP2829928B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2547903B2 (ja) * 1991-07-16 1996-10-30 株式会社東芝 並列制御システム
JP5218421B2 (ja) 2007-11-16 2013-06-26 富士通株式会社 制御システム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS50150166A (ja) * 1974-05-28 1975-12-02
JPS5713003A (en) * 1980-06-23 1982-01-23 Shin Meiwa Ind Co Ltd Shifter for container
JPS5831411A (ja) * 1981-08-19 1983-02-24 Nissan Motor Co Ltd 工業用ロボツトおよびその付帯装置の制御方式
JPS59214910A (ja) * 1983-05-20 1984-12-04 Hitachi Ltd フレキシブル複合加工セルの運転制御方式
JP2528813B2 (ja) * 1985-05-10 1996-08-28 株式会社日立製作所 制御装置

Also Published As

Publication number Publication date
JPS6441902A (en) 1989-02-14

Similar Documents

Publication Publication Date Title
US5032975A (en) Controller for automatic assembling apparatus
US7561929B2 (en) Industrial controller based on distributed technology objects
CN109388107B (zh) 控制装置
KR100300776B1 (ko) 자동화 장치
JP6950415B2 (ja) 制御装置
US6031973A (en) Robot and its controller method
US5204942A (en) Robot control system for controlling a set of industrial robots for cooperative operation
CN109507980B (zh) 控制装置及控制方法
US6813523B2 (en) Distributed process control
JP5149258B2 (ja) ロボットコンポーネント管理装置
JPH03125202A (ja) 自動装置の制御装置
CN111427310A (zh) 一种工业机器人控制器运行系统
US7734360B2 (en) Industrial controller based on distributable technology objects
US6779048B2 (en) Programmable controller including intelligent module
JP2829928B2 (ja) 自動機の制御装置
JPH11165285A (ja) ロボットを備える部品分配用の制御システム
Pritschow Automation technology—on the way to an open system architecture
US5239476A (en) Multi-level state language controller for multi-threaded machine control
EP3457239B1 (en) Control device and control method
JP2817842B2 (ja) 自動機の制御装置
US10921783B2 (en) Numerical control device
EP0377939A1 (en) Robot control system for controlling a set of industrial robots
Hace et al. Control system for the waterjet cutting machine
Yu et al. Design of controller system for industrial robot based on RTOS Xenomai
EP0649077A1 (en) Multiple-task controller

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term