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

自動機の制御装置

Info

Publication number
JP2817842B2
JP2817842B2 JP62196489A JP19648987A JP2817842B2 JP 2817842 B2 JP2817842 B2 JP 2817842B2 JP 62196489 A JP62196489 A JP 62196489A JP 19648987 A JP19648987 A JP 19648987A JP 2817842 B2 JP2817842 B2 JP 2817842B2
Authority
JP
Japan
Prior art keywords
task
control
input
control unit
flag
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
JP62196489A
Other languages
English (en)
Other versions
JPS6441901A (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 JP62196489A priority Critical patent/JP2817842B2/ja
Priority to US07/227,551 priority patent/US5032975A/en
Publication of JPS6441901A publication Critical patent/JPS6441901A/ja
Application granted granted Critical
Publication of JP2817842B2 publication Critical patent/JP2817842B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Description

【発明の詳細な説明】 [産業上の利用分野] 本発明は、例えば自動組立ロボツト等の自動機を制御
する制御装置に関し、特に、この自動機の制御の簡略化
の改良に関する。 [従来の技術] 従来の所謂「ライン方式」の自動組立装置において
は、組立ロボツトは単能的であり、従つて、組立てに必
要な部品補給も単純なものであるから、組立装置とその
制御装置は一対一に対応していた。即ち、組立装置が1
台であれば、その制御装置も1台必要になるわけであ
る。 ところが、組立工程が複雑化し、特に「非ライン」方
式の自動組立装置においては、組み付け部品点数が多く
なり、従つて、ロボツト側への部品補給も複雑化する。
即ち、組立のみならず、その部品補給においても、精緻
な制御、特に、ロボツト側の動作と同期がとれた制御が
必要となるわけである。このような場合、従来では、単
に複数の所謂ロボツトコントローラを複数台接続するこ
とにより対処していた。なぜなら、従来の制御装置にお
いては1つの制御装置で制御可能な軸数や入出力等の数
に制限が有つたために、その軸数や入出力点数を制限を
越えた場合、コントローラを複数必要とするからであ
る。 [発明が解決しようとしている問題点] ところが、上述したように、制御規模が拡大しようと
する場合、即ち、自動組立に要する例えば組立、組立て
に必要な部品の供給、更にこの部品供給部に対する部品
の補給等の機能が増えようとする場合、単一のコントロ
ーラで制御できる量は限界があるから、複数のコントロ
ーラが必要になる。しかし、単に複数のコントローラを
増加したのでは、そのコスト、消費電力、占有面積等の
面で不利である。 そして、更に、上記の各機能は、夫々独立した動作を
行なうから、この機能単位毎にテイーテングが必要であ
る。そのために、夫々の操作部と表示部が必要となり、
無駄が多い。即ち、従来の例えば、テイーチングペンダ
ント(=テイーチング情報の入力卓)を使つて、夫々の
コントローラ毎に移動して、入力する手間がかかつてし
まう。 そこで本発明は上記従来技術の問題点に鑑みてなされ
たものでその目的は、従来のようにコントローラを増設
することなく、制御対象である動作単位を容易に増設で
きると共に、増設された動作単位を効率的に制御するこ
とのできる自動機の制御装置を提案するところにある。 [問題点を解決するための手段] 上記課題を達成するための本発明の構成は、 各々が所定の単純動作のみを行う複数の被駆動素子を
それぞれ有し、互いに独立した異なる動作を行うところ
の複数の動作部を具備する自動機の制御装置であつて、 前記互いに独立した異なる動作にそれぞれ対応した複
数の動作制御タスクを並列的に切り換えるとともに、前
記動作制御タスクに伴う動作シーケンスプログラムを解
釈する上位制御部と、 少なくとも前記複数の動作部に対応した数だけ設けら
れた複数の下位制御部であつて、各々が、その下位制御
部が受け持つ被駆動素子を制御してその被駆動素子に所
定の単純動作を実行させる複数の下位制御部と、 前記上位制御部から発せられた動作命令実行のために
必要な情報を記憶する共有メモリと、 前記上位制御部と、前記複数の下位制御部とを相互に
通信可能に前記共有メモリに接続するバスとを有し、 前記上位制御部は、前記動作シーケンスプログラムを
解釈した際に、該当する動作部が有する被駆動素子の単
純化された動作実行のために必要な情報を前記共有メモ
リに記憶させ、その後、実行する動作制御タスクを切り
換え、切り換えられた動作制御タスクに対応する動作部
が有する被駆動素子が動作中であると判断される際に
は、さらに、実行する動作制御タスクを切り換え、 前記下位制御部は、前記上位制御部から動作実行を指
示された際に、前記メモリから前記情報を入力して動作
実行を可能とすることを特徴とする。 [作用] かかる構成においては、動作部の被駆動素子は各々の
所定の単純動作(例えばセンサのような素子に対しては
「入力動作」、アクチュエータのような素子に対しては
「出力動作」)のみを実行する。このような単純動作
は、多く場合、被駆動素子間で共通とすることができ
る。下位制御部は、そのような被駆動素子に対応する単
純動作のみを実行させるように制御するので、下位制御
部による被駆動素子の制御は単純化されたコマンドによ
る動作命令が可能になる。そして、上位制御部において
は、被駆動素子の夫々の動作に対応した複数の動作制御
タスクを並列的に切り換え可能に構成されているので、
下位制御部による制御対象を単純動作のみを行う被駆動
素子の制御に限定しても、本自動機は全体としては複雑
な動作を行うことができる。 一方、個々の被駆動素子は所定の単純動作を行うのみ
なので、対応する下位制御部による制御も簡略化でき、
したがつて、被駆動素子の増減、ひいては動作部の増
減、下位制御部の増減が、上記制御部に対する大幅な変
更の必要とすることはないので、動作単位を容易に増減
することができる。また、単純動作は複数の非駆動素子
間で動作の共通化を図れるので、単純動作の共通化の度
合いが大きいような自動機では、動作単位の増減の容易
性が更に向上する。 上記の上位制御部は、動作シーケンスプログラムを解
釈した際に、その動作シーケンスプログラムに対応する
動作部の被駆動素子に単純動作させるのに必要な情報を
共有メモリに記憶させ、その後、実行する動作制御タス
クを切り換える。この切換により、上位制御部は当該動
作タスクから解放される。このとき、下位制御部は、共
有メモリに記憶された情報により、その被駆動素子の制
御が可能となる。即ち、上位制御部のタスクからの解放
は、被駆動素子に単純動作のみが定義されていることと
共有メモリを用いることとにより、効率化される。 一方、上位制御部は、切り換えられた動作制御タスク
に対応する動作部の被駆動素子が動作中であると判断さ
れる際には、さらに、実行すべき動作制御タスクを切り
換える。これにより、動作中のタスク、即ち上位制御部
によるサービスが不要なタスクは速やかにサービスを必
要とするタスクに切り替えられるので、上位制御部によ
る動作制御タスクへのサービスの効率化が図れる。 [実施例] 以下に、この発明に係わる制御装置を、所謂ロボツ
ト,ストツカ,エレベータ,バツフアからなる自動組立
/部品供給装置に適用した実施例の構成を添付図面を参
照して、詳細に説明する。 〈実施例の構成〉 この自動組立/部品供給装置10は、 :複数の部品から所定の製品を自動的に組立るための
XY型の自動組立装置(以下、単にロボツトと呼ぶ。)12
と、 :このロボツト12に部品を供給するストツカ24であつ
て、複数個の部品を平面上に収容したパレツトpの複数
個を棚状に積層収納し、その複数個のパレツトpのなか
から組立工程に合致した部品を収容するパレツトpを前
記ロボツト12の指示により選択し、この選択されたパレ
ツトpをパレツトpの引き出し位置154に引き出すため
のストツカ24と、 :このストツカ24に収納されているパレツトpの部品
がなくなる場合に備えて、部品を満載したパレツトpを
台52上に複数個積層して貯蔵するバツファ22であつて、
ロボツト12から要求されたパレツトpを、分離部材66,6
8により積層されたパレツト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は入出力装置1
8がどのタスクに割り付けられているかを記憶する割付
レジスタである。また、823〜826は夫々、ロボツト等の
モードを処理するモード処理プログラムであり、827は
各タスク用のワークエリア、828はタスク間で共通に使
われる変数を格納するタスク共通変数エリアである。ま
た、829〜832は、動作シーケンスプログラムとしてのア
プリケーションプログラムを格納するエリアであり、83
3〜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〜826の各タスクには、
入出力装置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"とマークする。そして、
ステツプS2で、スタートアツプタスクの「起動フラグ」
を“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であれば、割付レジスタに
示された番号のメイルボツクスに格納して、ステツプS3
0に戻る。このとき、マルチタスク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において、プ
ログラム番号を変更するものである。このときは、ステ
ツプS168で、入出力装置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……バツフア用タスク、821
……入出力装置用ハンドラタスク、820……マルチタス
クOSである。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 安原 正輝 東京都大田区下丸子3丁目30番2号 キ ヤノン株式会社内 (72)発明者 谷田 武雄 東京都大田区下丸子3丁目30番2号 キ ヤノン株式会社内 (72)発明者 笠井 省三 東京都大田区下丸子3丁目30番2号 キ ヤノン株式会社内 (56)参考文献 特開 昭61−256406(JP,A) 特開 昭59−214910(JP,A) 特開 昭61−74399(JP,A) 特開 昭60−151775(JP,A) 特開 昭52−35017(JP,A) 特公 昭57−13003(JP,B2)

Claims (1)

  1. (57)【特許請求の範囲】 1.各々が所定の単純動作のみを行う複数の被駆動素子
    をそれぞれ有し、互いに独立した異なる動作を行うとこ
    ろの複数の動作部を具備する自動機の制御装置であつ
    て、 前記互いに独立した異なる動作にそれぞれ対応した複数
    の動作制御タスクを並列的に切り換えるとともに、前記
    動作制御タスクに伴う動作シーケンスプログラムを解釈
    する上位制御部と、 少なくとも前記複数の動作部に対応した数だけ設けられ
    た複数の下位制御部であつて、各々が、その下位制御部
    が受け持つ被駆動素子を制御してその被駆動素子に所定
    の単純動作を実行させる複数の下位制御部と、 前記上位制御部から発せられた動作命令実行のために必
    要な情報を記憶する共有メモリと、 前記上位制御部と、前記複数の下位制御部とを相互に通
    信可能に前記共有メモリに接続するバスとを有し、 前記上位制御部は、前記動作シーケンスプログラムを解
    釈した際に、該当する動作部が有する被駆動素子の単純
    化された動作実行のために必要な情報を前記共有メモリ
    に記憶させ、その後、実行する動作制御タスクを切り換
    え、切り換えられた動作制御タスクに対応する動作部が
    有する被駆動素子が動作中であると判断される際には、
    さらに、実行する動作制御タスクを切り換え、 前記下位制御部は、前記上位制御部から動作実行を指示
    された際に、前記共有メモリから前記情報を入力して動
    作実行を可能とすることを特徴とする自動機の制御装
    置。 2.前記被駆動素子は、モータ,センサ,ソレノイドで
    ある事を特徴とする特許請求の範囲第1項に記載の自動
    機の制御装置。
JP62196489A 1987-08-07 1987-08-07 自動機の制御装置 Expired - Lifetime JP2817842B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP62196489A JP2817842B2 (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
JP62196489A JP2817842B2 (ja) 1987-08-07 1987-08-07 自動機の制御装置

Publications (2)

Publication Number Publication Date
JPS6441901A JPS6441901A (en) 1989-02-14
JP2817842B2 true JP2817842B2 (ja) 1998-10-30

Family

ID=16358629

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JP2817842B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103264279B (zh) * 2013-05-30 2015-06-03 江苏泰昌电子有限公司 自动组装机

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5713003A (en) * 1980-06-23 1982-01-23 Shin Meiwa Ind Co Ltd Shifter for container
JPS59214910A (ja) * 1983-05-20 1984-12-04 Hitachi Ltd フレキシブル複合加工セルの運転制御方式
JPS6174399A (ja) * 1984-09-20 1986-04-16 株式会社東芝 組立ロボツトによる電子部品自動組立てシステム
JP2528813B2 (ja) * 1985-05-10 1996-08-28 株式会社日立製作所 制御装置

Also Published As

Publication number Publication date
JPS6441901A (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
US5204942A (en) Robot control system for controlling a set of industrial robots for cooperative operation
US9588511B2 (en) Virtual machine manager
CN109388107B (zh) 控制装置
JP6950415B2 (ja) 制御装置
US20100274385A1 (en) Control system for controlling an industrial robot
JP5149258B2 (ja) ロボットコンポーネント管理装置
US7734360B2 (en) Industrial controller based on distributable technology objects
US6779048B2 (en) Programmable controller including intelligent module
Smith A formal design and development methodology for shop floor control in computer-integrated manufacturing
JP2817842B2 (ja) 自動機の制御装置
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
EP0377939A1 (en) Robot control system for controlling a set of industrial robots
JP4186383B2 (ja) プログラマブルコントローラシステム
JP2001325010A (ja) プログラマブルコントローラシステム
JP2834921B2 (ja) 数値制御装置
EP0316251B1 (en) Direct control facility for multiprocessor network
Erol et al. Modular tools for motion control and process control system design
JPS5941214B2 (ja) 状態監視方式
JP3020776B2 (ja) プロセス計装システム

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term