JPH06301412A - ロボットセル用制御装置 - Google Patents
ロボットセル用制御装置Info
- Publication number
- JPH06301412A JPH06301412A JP5087197A JP8719793A JPH06301412A JP H06301412 A JPH06301412 A JP H06301412A JP 5087197 A JP5087197 A JP 5087197A JP 8719793 A JP8719793 A JP 8719793A JP H06301412 A JPH06301412 A JP H06301412A
- Authority
- JP
- Japan
- Prior art keywords
- robot
- control
- user program
- see
- management
- 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.)
- Pending
Links
Landscapes
- Numerical Control (AREA)
- Manipulator (AREA)
Abstract
トセル用制御装置の改良で、特に、ユーザプログラムの
デバグをし易く、ロボットセルシステムの立上げを早く
することを可能ならしめることを目的とする。 【構成】 主制御装置24とマンマシンインターフェー
ス手段36とロボット本体制御手段26と周辺制御手段
28とで構成される。主制御装置24は第1の通信手段
40と第2の通信手段108とロボット管理手段512
と周辺管理手段514とユーザプログラム510とユー
ザプログラム実行制御手段520とデバグ制御手段52
2とを具備し、デバグ制御手段522はマンマシンイン
ターフェース手段36の入力手段1004より入力され
る命令を解釈し、ロボット管理手段512か周辺管理手
段514かユーザプログラム実行制御手段520のいづ
れかに命令を伝達し、状態を取得し、マンマシンインタ
ーフェース手段36に取得した状態を伝達するように構
成されている。
Description
立・加工を行うロボットセル用制御装置の改良に関す
る。特に、ロボットセルのシステムの立ち上げを早くす
ることが可能であり、システムの保守性を良くした改良
に関する。
や生産の柔軟性の向上や製品品質の向上等を目的とし
て、生産ラインのロボット化が進んでいる。産業用ロボ
ットを生産ラインに設置する場合、産業用ロボットとこ
れと密接な関係にある周辺装置群とを一つのまとまり
(セル)として構成することが広く行われている。この
一つのまとまりをロボットセルと云う。
として行われる。従来技術に係るロボットセル用制御装
置を使用した一例として図19に示すロボットセルシス
テムがある。
はロボット本体1214に取り付けられるハンドであ
り、ハンド1216は図示していないワークを操作す
る。ロボット本体1214とハンド1216とは共にロ
ボットコントローラ1202によって駆動される。12
10はコンベアであり、ロボット本体1214へのワー
クの移送やロボット本体1214からの完成品の移送等
を行う。1212は供給装置であり、ロボット本体12
14への部品の供給等を行う。コンベア1210や供給
装置1212や図示していないセンサ等はセルコントロ
ーラ1200によって駆動される。1218はビデオカ
メラ等よりなる視覚センサであり、ハンド1216と図
示していないワークとの相対位置の監視とかハンド12
16が操作した結果の確認とかを行う。視覚センサ12
18によって取り込まれた画像はビジョンコントローラ
1204によって画像処理される。
示していないセンサ等と視覚センサ1218とは、ロボ
ット本体1214やハンド1216と一体となってロボ
ットセルを形成しており、ロボット本体1214の周辺
装置群としての機能を果たしている。
ト言語にて記述されたユーザプログラムに基づいてロボ
ット本体1214の動作を制御するとともに、ハンド1
216の開閉動作等ロボット周辺装置の一部の動作と、
ロボット本体1214の動作との協調を取りながら制御
を行う。
210や供給装置1212等からなる、セルに含まれる
ロボット周辺装置群に動作命令を与えたり、また、これ
らの周辺装置群の状態を取得したりして、セルに含まれ
るロボット周辺装置群の協調制御を行う。さらに、セル
コントローラ1200は、ロボットコントローラ120
2と通信回線1270を使用して通信を行い、ロボット
本体1214やハンド1216の動作と、セルに含まれ
るロボット周辺装置群との協調制御を行う。一般的にセ
ルコントローラ1200は、シーケンサと呼ばれるデジ
タル入出力信号処理を中心機能にもつコントローラであ
り、セルコントローラ1200のユーザプログラムはラ
ダー言語で記述されることが多い。
ンサ1218より得られる視覚情報をビジョン言語によ
って記述されたユーザプログラムに基づいて処理し、ロ
ボットコントローラ1202と通信回線1272を使用
して通信を行って、ワークの位置や大きさ等の情報を伝
える。ロボットコントローラ1202は受け取った情報
によりロボット動作の制御を行う。
は、セルコントローラ1200とロボットコントローラ
1202とビジョンコントローラ1204とのそれぞれ
にユーザプログラムを作成しなければならない。セルコ
ントローラ1200に対してはラダー言語にてプログラ
ムするプログラミング装置1250を使用し、ロボット
コントローラ1202に対してはロボット言語にてプロ
グラムするプログラミング装置1252を使用し、ビジ
ョンコントローラ1204に対してはビジョン言語にて
プログラムするプログラミング装置1254を使用す
る。そして、これらのセルコントローラ1200とセル
プログラミング装置1250とロボットコントローラ1
202とロボットプログラミング装置1252とビジョ
ンコントローラ1204とビジョンプログラミング装置
1254とによりロボットセル用制御装置が構成されて
いる。
バグ環境の善し悪しにより、プログラム開発効率は大き
く異なってくる。プログラムをデバグする負荷はプログ
ラムの大きさに比例して大きくなる位では済まされず、
指数関数的に増大するものである。なぜなら人間の記憶
力や認識力には限界があり、プログラムの各部分の挙動
を同時に想起することができなくなるからである。した
がって、プログラムの一部の動作を実行したり停止させ
たりしながら、セルの各部分の動作が詳しく判る(忘れ
てもすぐに見直すことができる)ことが重要である。
係るロボットセル用制御装置においては、主要な三つの
機能であるセルコントロール機能とロボットコントロー
ル機能とビジョンコントロール機能とが分離され、さら
に、この三つの機能が結合されている。このため、ユー
ザプログラムをデバグする時、それぞれの機能毎のプロ
グラミング装置を使用してデバグすることになるので、
ある機能のユーザプログラムをデバグする時に他のユー
ザプログラムが関係する時は、一つのプログラミング装
置を操作し監視するだけではデバグすることができず、
それぞれの機能のユーザプログラムの開発者がそれぞれ
のプログラミング装置の操作・監視をすることが不可欠
になる。このため、異常現象の詳細な状態等を把握する
ことが困難となり、解決に多大の時間を要していた。
にあり、ユーザプログラムをデバグする時、デバグが効
率良く行えて、ロボットセルシステムの立上げを早く
し、システムの保守性を良くしたロボットセル用制御装
置を提供することにある。
うに、主制御装置(24)とマンマシンインターフェー
ス手段(36)とロボット本体制御手段(26)と周辺
制御手段(28)とにより構成される。
(40)と、第2の通信手段(108)と、この第2の
通信手段(108)と接続されるロボット管理手段(5
12)と、前記の第2の通信手段(108)と接続され
る周辺管理手段(514)と、前記のロボット管理手段
(512)ならびに前記の周辺管理手段(514)と相
互に情報を伝達するユーザプログラム実行手段(51
0)と、このユーザプログラム実行手段(510)の実
行の制御とこのユーザプログラム実行手段(510)の
状態の入手とを行うユーザプログラム実行制御手段(5
20)と、前記のロボット管理手段(512)ならびに
前記の周辺管理手段(514)よりロボット・周辺機器
の状態を受け必要な状態を前記の第1の通信手段(4
0)に伝達し、前記のユーザプログラム実行制御手段
(520)を経由して前記のユーザプログラム実行手段
(510)の状態を受け必要な状態を前記の第1の通信
手段(40)に伝達し、前記の第1の通信手段(40)
より受けた命令を前記のロボット管理手段(512)ま
たは前記の周辺管理手段(514)または前記のユーザ
プログラム実行制御手段(520)のいづれに伝達する
かを判断して、この選択されたロボット管理手段(51
2)または周辺管理手段(514)または前記のユーザ
プログラム実行制御手段(520)のいづれかに前記の
命令を伝達するデバグ制御手段(522)とを備える。
は、前記の第1の通信手段(40)と接続される第3の
通信手段(1012)と、この第3の通信手段(101
2)と接続されるマンマシンインターフェース管理手段
(1010)と、このマンマシンインターフェース管理
手段(1010)と接続される入力管理手段(100
8)と、この入力管理手段(1008)と接続される入
力手段(1004)と、前記のマンマシンインターフェ
ース管理手段(1010)と接続される表示管理手段
(1006)と、この表示管理手段(1006)と接続
される表示手段(1002)とを備える。
手段(28)とは共に、前記の第2の通信手段(10
8)と接続される。
ス手段(36)は、前記の表示手段(1002)に、前
記のユーザプログラム実行手段(510)の状態とロボ
ットの状態と周辺機器の状態と前記の入力手段(100
4)より入力した内容との中より選択されたものを同時
に表示するようにしている。
したように構成されているので、ロボットセルシステム
の立上げ時や保守時にユーザプログラムをデバグする際
に下記のように機能する。
ンターフェース手段36からのコマンドを解釈し、ユー
ザプログラム実行制御手段520を介してユーザプログ
ラム実行手段510の制御または状態取得が行ない、マ
ンマシンインターフェース手段36に必要な状態を伝達
できるので、ユーザプログラム実行手段510の要素で
あるユーザタスクの起動・停止やユーザタスクの1行実
行やユーザタスク中のグローバル変数の表示や変更を行
うことができる。
ンターフェース手段36からのコマンドを解釈し、ロボ
ット管理手段512を介してロボット本体の操作・位置
の表示を行ない、マンマシンインターフェース手段36
に必要な状態を伝達できる。
ンターフェース手段36からのコマンドを解釈し、周辺
管理手段514を介してビジョンの操作・状態の表示や
デジタルIOの表示・変更を行ない、マンマシンインタ
ーフェース手段36に必要な状態を伝達できる。
は表示手段1002に、ユーザプログラム実行手段51
0の状態とロボットの状態と周辺機器の状態と入力手段
1004より入力した内容との中より選択されたものを
同時に表示するようにしているので、関連のある項目が
連動して変化しているかどうか、または、関連のない項
目が静止しているかどうかが、一目で見えるので、誤り
のない状況判断を素早く行うことができる。
御プログラム間のデータの授受の確認と、ロボット本体
や周辺装置の動作を任意のプログラムステップでの一時
停止と起動とが、一つのマンマシンインターフェース手
段36を通してできる。
ての制御プログラム間の同期の確認が一つのマンマシン
インターフェース手段36を通してできる。
ット本体と周辺装置との手動操作を両者の位置関係に注
意しながら行うことができる。
握と必要改善策の立案と改善策の確認とができるので、
早期にデバグを完了させることができる。
係るロボットセル用制御装置について、 1.ハードウェア全体の構成と機能の概略 2.ハードウェアの詳細 3.コントローラソフトウェアの概要 4.ホストパソコンソフトウェアの概要 5.組立セルの概要 6.デバグの概要 7.ユーザプログラム全体のデバグ と順を追って詳細に説明する。
ウェア構成図である。図2に示すように、本ハードウェ
アはVMEバックプレーン22とメインボード24A
(図1の主制御装置24のハードウェアである。)と、
ロボット制御ボード26A(図1のロボット本体制御手
段26のハードウェアである。)と、周辺制御ボード
(ビジョンボード28A、デジタルIOボード28B、
シリアル通信ボード28C、拡張軸制御ボード28D
(あわせて、図1の周辺制御手段28のハードウェアで
ある。))と、パーソナルコンピュータ36A(図1の
マンマシンインターフェース手段36のハードウェアで
ある。)と、ティーチペンダント36B(図1のマンマ
シンインターフェース手段36のハードウェアであ
る。)とから構成される。
規格(IEEE 1014)に基づいた電気的伝送路を
提供するものである。
として動作し、VMEバックプレーン22を介して、ロ
ボット制御ボード26A、周辺制御ボード(28A、2
8B、28C、28D)の制御と状態の取得を行いなが
ら、本ロボットセル用制御装置全体の制御を行う。
ル通信コントローラ(さらに具体的には、RS232C
コントローラであり、図1の第1の通信手段40のハー
ドウェアである。)であり、シリアル通信コントローラ
A40Aとシリアル通信コントローラB40Bとを持っ
ており、シリアル通信コントローラA40Aはパーソナ
ルコンピュータ36Aに、シリアル通信コントローラB
40Bはティーチペンダント36Bに接続されている。
コントローラA40Aを通じて、パーソナルコンピュー
タ36Aへのデータ出力と、パーソナルコンピュータ3
6Aから送られるコマンドの解釈と実行を行う。
40Bを通じて、ティーチペンダント36Bの画面10
02B(図1の表示手段1002に相当する。)の制御
と、ティーチペンダント36Bから送られて来るコマン
ドの解釈と実行を行う。
ド24Aからのコマンドを受けて、ロボット本体44
(以下ロボットアームと呼ぶこともある。)を駆動し、
またロボット本体44の先端の現在位置などの必要な情
報をメインボード24Aに送る。
4Aからのコマンドを受けて、カメラにより、対象ワー
クを撮像し、得られた画像を処理して、対象ワークの重
心位置などの処理結果をメインボード24Aに送る。
ド24Aからのコマンドを受けて、デジタル出力ポート
54にデータを出力し、メインボード24Aからのコマ
ンドに従って、デジタル入力ポート52からのデータを
メインボード24Aに送る。
ド24Aからのコマンドを受けて、シリアル入出力ポー
ト56にデータを出力し、シリアル入出力ポート56か
らのデータをメインボード24Aに送る。
24Aからのコマンドを受けて、拡張軸(ロボット本体
以外の軸)を駆動し、メインボード24Aからのコマン
ドに従って、拡張軸の現在位置などの必要なデータをメ
インボード24Aに送る。
ディスプレー装置1002A(図1の表示手段1002
に相当する。)と、キーボード1004A(図1の入力
手段1004に相当する。)を備えており、作業者は、
この表示装置1002Aに表示される、ユーザプログラ
ム及びロボット本体44及び周辺機器の状態を見なが
ら、キーボード1004Aにより、コマンドを入力し、
ユーザプログラム、ロボット本体44及び周辺制御ボー
ドの制御を行う。
002Bと、キー入力装置1004B(図1の入力手段
1004に相当する。)を備えており、作業者は、この
表示装置1002Bに表示される、ユーザプログラム、
ロボット本体44、周辺機器の状態を見ながら、キー入
力装置1004Bにより、コマンドを入力し、ユーザプ
ログラム、ロボット本体44及び周辺制御装置の制御を
行う。
ータのやりとりと云う観点から、やや詳しく説明する。
(モートローラ社製、以下CPUと記す。)102を中
心として、ROM104とRAM106とシリアル通信
コントローラA40Aとシリアル通信コントローラB4
0BとVMEバスインターフェース108等とからな
る。
それぞれコントロール/データレジスタを持っており、
それぞれのコントロール/データレジスタは、CPU1
02から見ると、固有のアドレスに割り付けられている
(図4参照)。CPU102はこのレジスタに対してV
MEバックプレーン22(図2参照)を介して、読み書
き動作を行うことができる。
制御ボードに対してコマンドを発行したい場合は、コマ
ンドに付随するパラメータをデータレジスタに書き込
み、コントロールレジスタにコマンドを表現するデータ
を書き込む。
辺制御ボードからの応答は、データレジスタに格納さ
れ、CPU102が適宜読みに行くか、または、割り込
み処理によって処理する。
CPU102に対して通知したい事象が存在する場合、
VMEバックプレーンを通して割り込み信号を発生さ
せ、CPU102がこれを受け付けると、割り込みハン
ドラが起動され、CPU102はデータレジスタを読み
出す。
しく説明する。
0C25(302、テキサスインスツルメント社製。以
下TMSと記す。)を中心として、ROM306、RA
M308、VMEバスインターフェース304、PWM
信号発生器310、ポジションカウンタ312、電流セ
ンサ等314からなる。
動するモータの軸に固定されたエンコーダ320からの
信号はポジションカウンタ312で関節角データに変換
され、モータコイル318に流れる電流は前記電流セン
サ314によって検出され、TMS302は、これら信
号の経歴と、望ましい現在位置、速度、トルクの情報か
ら、モータコイル318に印加すべき電圧を所定のアル
ゴリズムに基づいて算出し、PWM信号発生器310
が、この電圧に相当するPWM信号を発生させ、パワー
ドライブ部316を介して、モータコイル318に印加
される。
タレジスタを定期的に読み出して、CPU102(図3
参照)からのコマンドが到着していないかを検査し、コ
マンドが到着していれば、これを解釈し、実行する。
る。
25(330、テキサスインスツルメント社製。以下T
MS2と記す。)を中心として、ROM332、RAM
334、VMEバスインターフェース336、ビデオイ
ンターフェース338、画像メモリ340等からなる。
ール/データレジスタを読み出して、CPU102(図
3参照)からのコマンドが到着していないかを検査し、
コマンドが到着していれば、これを解釈して実行する。
て、カメラ342からの画像を、ビデオインターフェー
ス338を介して、画像メモリ340に取り込み、これ
を処理し、処理結果をデータレジスタに書き込み、処理
の終了を知らせる割り込み信号を、VMEバックプレー
ン22(図2参照)を介してCPU102(図3参照)
に送る。
ら、コントロール/データレジスタの読み書きに関する
部分以外の詳しい説明は省略する。
続されており、CPU102(図3参照)は、VMEバ
ックプレーンを介して、コントロールレジスタにデータ
を書き込むことにより、任意の出力ポートに任意のデー
タを出力することができる。
続されており、CPU102(図3参照)は、VMEバ
ックプレーンを介して、データレジスタを読み出すこと
により、任意の入力ポートのデータを取り込むことがで
きる。
ら、コントロール/データレジスタの読み書きに関する
部分以外の詳しい説明は省略する。
ーフェースと、シリアル通信コントローラ(例えばザイ
ログ社製 Z85C30等)等からなる。
クプレーン22(図2参照)を介して、シリアル通信コ
ントローラのコントロール/データレジスタにアクセス
することができる。
タを書き出すことで、シリアル通信コントローラに出力
データを渡し、シリアル通信コントローラは、RS23
2Cの規格に従って、外部に出力する。
タが入力された場合、シリアル通信コントローラは、V
MEバックプレーンを介して、CPU102に割り込み
信号を発生させ、CPU102が読み込むべきデータの
存在を知らせる。
タレジスタによって指定されたパルス数だけ、モータを
駆動することのできる制御ボードのことであり、一般的
には、パルスモータコントロールモジュール等という名
称で広く市販されているものであり、極めて一般的な装
置であるから、コントロール/データレジスタの読み書
きに関する部分以外の詳しい説明は省略する。
クプレーン22(図2参照)を介して、拡張軸制御ボー
ドのコントロール/データレジスタにアクセスすること
ができる。
ジスタに、データを書き出すことで、モータの回転角、
角速度、角加速度を指定し、モータの回転を開始させる
ことができる。また、CPU102は、データレジスタ
を読み出すことでモータの状態(回転角、励磁状態、エ
ラーの種類等)を知ることができる。
れを図7を用いて説明する。
り、ハードウェア502(つまりサーボボード及び周辺
制御ボードのコントロール/データレジスタ。)と直接
データのやり取りを行う部分である。物理層504は、
後で述べるカーネル層506と通信しており、カーネル
層506からのコマンドに従って、コントロール/デー
タレジスタにデータを出力する。また、コントロール/
データレジスタから得られたデータはカーネル層506
に通知される。
おり、上位層の要求に従って、タスクのスケジューリン
グを行う層である。つまり、カーネル層506は上位層
に対して、マルチタスク環境を提供する。
て、ハードウェア502とデータのやり取りをする手段
を、システムコールとして提供する。
8と名付けられており、さらにこの層は複数のブロック
に分割されている。この実施例では、ロボット制御ボー
ドを管理するロボット制御管理ブロック512Aとビジ
ョンボードを管理するビジョン管理ブロック514Aと
デジタルIOボードを管理するデジタルIO管理ブロッ
ク514Bと、シリアル通信ボードを管理するシリアル
IO管理ブロック514Cと、拡張軸制御ボードを管理
する拡張軸管理ブロック514Dとユーザプログラムの
実行を制御するユーザプログラム実行制御ブロック52
0Aとデバグ操作を制御するデバグ制御ブロック522
Aとがある。
のロボット管理手段512に対応するソフトウェアであ
る。ビジョン管理ブロック514AとデジタルIO管理
ブロック514Bと、シリアルIO管理ブロック514
Cと拡張軸管理ブロック514Dとは、図1の周辺管理
手段514に対応するソフトウェアである。ユーザプロ
グラム実行制御ブロック520Aとデバグ制御ブロック
522Aとは、それぞれ、図1のユーザプログラム実行
制御手段520とデバグ制御手段522とに対応するソ
フトウェアである。
Aと名付けられており、本実施例によるロボットセル用
制御装置を使用するユーザによって作成されたユーザプ
ログラムからなっている。このユーザプログラムは通常
ロボットセルの殆どすべての動作を記述している。ユー
ザプログラムは、後述するように、ユーザタスク(53
0、532、534、536)と名付けられた部分プロ
グラムの集合体である。
536)の集合体であるユーザプログラムは、図1のユ
ーザプログラム実行手段514に対応するソフトウェア
である。
ック522A及び、ユーザプログラムに対して、ロボッ
ト本体の制御と状態の取得を行う関数を提供する。ロボ
ット制御管理ブロック512Aはまた、カーネル層50
6に対してシステムコールを発行するか、または物理層
504に対して直接コマンドを発行するかして、ロボッ
ト制御ボードと通信する。
制御ブロック522A及び、ユーザプログラムに対し
て、ビジョンボードの制御と状態の取得を行う関数を提
供する。ビジョン管理ブロック514Aはまた、カーネ
ル層506に対してシステムコールを発行するか、また
は物理層504に対して直接コマンドを発行するかし
て、ビジョンボードと通信する。
バグ制御ブロック522A及び、ユーザプログラムに対
して、デジタルIOボードの制御と状態の取得を行う関
数を提供する。デジタルIO管理ブロック514Bはま
た、カーネル層506に対してシステムコールを発行す
るか、または物理層504に対して直接コマンドを発行
するかして、デジタルIOボードと通信する。
ードを管理しており、動作モードが仮想モードのときに
は、実際の(ハード的な)IOに全く影響を与えず、仮
想的な動作を行い、動作モードがリアルモードの時に
は、実際のIOが動作する様になっている。
バグ制御ブロック522A及び、ユーザプログラムに対
して、シリアルIOボードの制御と状態の取得を行う関
数を提供する。シリアルIO管理ブロック514Cはま
た、カーネル層506に対してシステムコールを発行す
るか、または物理層504に対して直接コマンドを発行
するかして、シリアルIOボードと通信する。
御ブロック522A及び、ユーザプログラムに対して、
拡張軸制御ボードの制御と状態の取得を行う関数を提供
する。拡張軸管理ブロック514Dはまた、カーネル層
506に対してシステムコールを発行するか、または物
理層504に対して直接コマンドを発行するかして、拡
張軸制御ボードと通信する。
534、536)の集合体であり、ロボットセル全体の
制御アルゴリズムが記述されている。
するマルチタスク環境下で、ユーザプログラム実行制御
ブロックからの制御を受けながら、並列に実行される。
ーザタスクに固有のローカル変数(540、542、5
44、546)と、ユーザタスクが共有する、グローバ
ル変数548とに分かれる。
ク512A及び周辺管理ブロック(514A、514
B、514C、514D)の提供する関数をコールする
ことで、ロボット本体44(図2参照)及び周辺装置の
制御及び状態の取得を行う。
プログラムの各ユーザタスクを各タスク毎に制御するブ
ロックであり、デバグ制御ブロック522A及び、ユー
ザプログラムに対して、ユーザタスクの起動、中断、一
時停止、再起動及び、ローカル変数とグローバル変数5
48の読み出しと書き込みを行わせる関数を提供する。
6B(図2参照)または、パーソナルコンピュータ36
A(図2参照)と通信を行い、ティーチペンダント36
Bまたはパーソナルコンピュータ36Aからのコマンド
を解釈し、そのコマンドがユーザタスクの制御または状
態取得命令であれば、ユーザプログラム実行制御ブロッ
ク520Aの提供する関数を用いて、ユーザタスクの制
御または状態取得を行い、応答をティーチペンダント3
6Bまたは、パーソナルコンピュータ36Aに返す。あ
るいは、そのコマンドがロボットまたは周辺装置の制御
または状態取得命令であれば、ロボット制御管理ブロッ
ク512Aはまたは周辺管理ブロック(514A、51
4B、514C、514D)の提供する関数を用いて、
ロボットまたは周辺装置の制御または状態取得を行っ
て、応答を、ティーチペンダント36Bまたはパーソナ
ルコンピュータ36Aに返す。
要に応じて定期的に、ユーザタスクとロボット本体と、
周辺装置との状態を、ユーザプログラム実行制御ブロッ
ク520Aと、ロボット制御管理ブロック512Aと周
辺管理ブロック(514A、514B、514C、51
4D)との提供する関数を用いて調べ、ティーチペンダ
ント36Bまたはパーソナルコンピュータ36Aに通知
する。
1002A(図2参照)はCRTディスプレイであり、
これに表示される画面は、複数のページを有しており、
キーボード1004A(図2参照)からのキー操作たと
えばファンクションキーを押すことによって切り換え
る。更に各々のページは、一個または複数のウィンドウ
に分割されており、一部のウィンドウは重なっている。
これらのウィンドウを図8、図9を用いて説明する。
用制御装置のロボット制御管理ブロックから必要に応じ
て送られて来る、ロボットコントーラの状態を表すメッ
セージを表示する。
ーボード1004Aからのキー入力されたコマンドをエ
コーバックし、必要に応じて、そのコマンドに対する応
答を表示する。
ラムのソースコードの表示、現在実行行の表示、ブレー
クポイントの表示を行う。
ル変数548(図7参照)やローカル変数(540、5
42、544、546)(図7参照)の表示を行う。
状態、CPU占有率、実行行番号の表示を行う。
ラムファイル名の表示と選択、カレントデータファイル
名の表示と選択、ロボットの現在位置の表示と制御、コ
ンプライアンスユニットの状態の表示と制御、画像処理
装置の状態の表示と制御を行うためのウィンドウであ
る。
状態の表示と制御を行うためのウィンドウである。
しい機能構成を図10を用いて説明する。
ディスプレー装置1002Aと、CRTディスプレー装
置上に表示される複数ウィンドウを制御する表示管理ブ
ロック1006Aと、表示管理ブロック1006Aに対
して各ウィンドウに表示すべきデータを送出するマンマ
シンインターフェース管理ブロック1010Aと、キー
ボード1004Aと、キーボード1004Aから送られ
るデータを処理しマンマシンインターフェース管理ブロ
ック1010Aに送る入力管理ブロック1008Aと、
マンマシンインターフェース管理ブロック1010Aと
メインボード24A(図2参照)との間のデータの送受
信を行うシリアル通信コントローラ1012Aとからな
る。
管理手段1006に対応するソフトウェアであり、入力
管理ブロック1008Aは図1の入力管理手段1008
に対応するソフトウェアであり、マンマシンインターフ
ェース管理ブロック1010Aは図1のマンマシンイン
ターフェース管理手段1010に対応するソフトウェア
である。シリアル通信コントローラ1012Aは図1の
第3の通信手段1012に対応するハードウェアであ
る。
ボード1004A、シリアル通信コントローラ1012
Aに関しては、極めて一般的な装置であるから、これ以
上の説明を省略する。
ーボード1004Aからの割り込みを処理する割り込み
ハンドラである。
ーソナルコンピュータのオペレーティングシステム(M
S−DOS等)に包含または付随するウィンドウシステ
ム(MS−Windows等)であるかまたは、それと
類似のウィンドウ制御を行うソフトウェアである。
ック マンマシンインターフェース管理ブロック1010Aを
さらに詳しく、図11を用いて説明する。
Aから送られて来るデータを受け、それがメインボード
24A(図2参照)へのコマンドであれば、後述するユ
ーザメッセージウィンドウ管理ブロック1104にその
コマンドをエコーバックし、一方でそのコマンドをシリ
アル通信コントローラ1012Aを介して、メインボー
ド24A(図2参照)に送る。
らのデータが、ウィンドウの切り替えコマンドであれ
ば、後述するウィンドウ切り替えブロック1116へウ
ィンドウの切り替えコマンドを送る。
ル通信コントローラ1012Aを介してメインボードか
ら送られて来るデータを解析し、そのデータがいずれの
ウィンドウに表示されるべきものであるかを判定し、適
当なウィンドウ管理ブロックにデータを送出する。
610(図8参照)には、ロボット本体の現在位置(図
8の610には、ワールド座標という項目の下に、直交
座標系で表した、ロボット本体の先端のX、Y、Z、R
座標が表示されている。)が表示されているが、これを
データの流れと云う観点から説明すると、まず、デバグ
制御ブロック522A(図7参照)は、定期的に(例え
ば1秒毎に)ロボット制御管理ブロック512A(図7
参照)の提供する関数をコールして、ロボット本体の先
端の現在位置を得る。そしてこのデータを、カーネル層
506(図7参照)の提供するシステムコールを用い
て、カーネル層506に渡し、カーネル層506は、こ
のデータを、物理層504(図7参照)を介して、シリ
アル通信コントローラA40A(図2・図3参照)に渡
す。さらに、このデータは、パーソナルコンピュータの
シリアル通信コントローラ1012Aを経て、コマンド
解析部1118へと到達する。コマンド解析部1118
は、送られてきたデータを調べ、それがロボット本体の
先端の現在位置であることを知り、状態ウィンドウ管理
ブロック1110にデータが渡される。状態ウィンドウ
管理ブロック1110は、データを状態ウィンドウ61
0(図8参照)のどの位置に表示すべきかを決定し、表
示管理ブロック1006A(図10参照)に表示命令を
出す。表示管理ブロック1006A(図10参照)は、
この表示命令に従って、CRTディスプレイ1002A
(図10参照)上の状態ウィンドウ610(図8参照)
の指定された位置に、ロボット本体の先端の現在位置を
表示すると云うわけである。他のウィンドウの表示に関
するデータの流れもこれと同様である。
ク1102は、コマンド解析部1118からデータを渡
され、このデータのバッファリングや形式変換(例え
ば、m単位のデータをmm単位に直す等)を必要に応じ
て行い、さらにこのデータをシステムメッセージウィン
ドウ602(図8参照)上のどの位置に表示するかを決
定して、表示管理ブロックにこのデータを適当な位置に
表示するよう表示命令を出す。
1104は、コマンド解析部1118からデータを渡さ
れ、このデータのバッファリングや形式変換(例えば、
m単位のデータをmm単位に直す等)を必要に応じて行
い、さらにこのデータをユーザメッセージウィンドウ6
04(図8参照)上のどの位置に表示するかを決定し
て、表示管理ブロックにこのデータを適当な位置に表示
するよう表示命令を出す。
は、コマンド解析部1118からデータを渡され、この
データのバッファリングや形式変換(例えば、m単位の
データをmm単位に直す等)を必要に応じて行い、さら
にこのデータをデバグウィンドウ702(図9参照)上
のどの位置に表示するかを決定して、表示管理ブロック
にこのデータを適当な位置に表示するよう表示命令を出
す。
コマンド解析部1118からデータを渡され、このデー
タのバッファリングや形式変換(例えば、m単位のデー
タをmm単位に直す等)を必要に応じて行い、さらにこ
のデータを監視ウィンドウ606(図9参照)上のどの
位置に表示するかを決定して、表示管理ブロックにこの
データを適当な位置に表示するよう表示命令を出す。
コマンド解析部1118からデータを渡され、このデー
タのバッファリングや形式変換(例えば、m単位のデー
タをmm単位に直す等)を必要に応じて行い、さらにこ
のデータを状態ウィンドウ610(図8参照)上のどの
位置に表示するかを決定して、表示管理ブロックにこの
データを適当な位置に表示するよう表示命令を出す。
2は、コマンド解析部1118からデータを渡され、こ
のデータのバッファリングや形式変換(例えば、m単位
のデータをmm単位に直す等)を必要に応じて行い、さ
らにこのデータを変数モニタウィンドウ704(図9参
照)上のどの位置に表示するかを決定して、表示管理ブ
ロックにこのデータを適当な位置に表示するよう表示命
令を出す。
コマンド解析部1118からデータを渡され、このデー
タのバッファリングや形式変換(例えば、16進数のデ
ータを2進数に直す等)を必要に応じて行い、さらにこ
のデータをIOウィンドウ608(図9参照)上のどの
位置に表示するかを決定して、表示管理ブロックにこの
データを適当な位置に表示するよう表示命令を出す。
重なったウィンドウ部分の管理を行っており、コマンド
解析部からの指令に基づいて、指定されたウィンドウの
表示と消去を、表示管理ブロックに行わせる。
ボット組立セルの概要とユーザプログラムの概要につい
て説明する。
と組立内容を図12を用いて説明する。
04とカセット下ハーフよりなる下ワーク806を組合
わせ、ネジ802を用いて、ネジ止めをするものであ
る。下ワーク806は、キャリア808に載せられ、ガ
イドピン810により位置決めされて、本組立セルに供
給される。上ワーク804には上ワークA804Aと上
ワークB804Bとあり、上ワーク804はこの両者の
総称である。
づいて説明する。
ボット本体44(以後ロボットアームと記す。)と、前
記拡張軸制御ボードに接続された一軸ロボットによるト
レイチェンジャーA910、トレイチェンジャーB93
2と、ロボットアーム44の先端に取り付けられたコン
プライアンスユニット(図示せず。)と、ハンドチェン
ジャー916と、デジタルIOによって制御されるゲー
トA914、ゲートB920、ゲートC918と、デジ
タルIOによって制御される供給コンベア924と排出
コンベア922と、デジタルIOによって制御されるネ
ジ供給ユニット930と、ビジョンボードによって制御
されるカメラ934とカメラモニタ(図示せず。)とオ
ペレータが操作する操作ユニット928とから成る。
類のロボットハンドを設置しており、本実施例において
は、ロボットハンドとしてワークチャックハンド94
0、ネジ締めハンド942およびキャリアチャックハン
ド944を用意している。ロボットアーム44は、これ
らロボットハンドを、必要に応じて、ロボットアーム4
4の先端に取り付けられたコンプライアンスユニットの
先に装着、または、交換する。
で止められたキャリア808は、IDリーダ912によ
って、IDナンバ812(図12参照)が読み込まれ、
そのキャリア808に載っている下ワークがAであるか
Bであるかが判定される。 第2工程:ゲートB920で止められたキャリア808
は、ワークセンサ950によりゲートB920に到着し
たことを検出されキャリアチャックハンド944をつけ
たロボットアーム44によって、作業テーブル938へ
と移載され、固定される。 第3工程:ロボットアーム44は、ロボットハンドをワ
ークチャックハンド940に交換する。 第4工程:第1工程で検出されたIDナンバに従って、
トレイA906上の上ワークA804Aか、または、ト
レイB946上の上ワークB804Bかのいづれかをピ
ックアップする。 第5工程:コンプライアンスユニットを力制御状態にし
て、上ワーク804をキャリア808上の下ワーク80
6に組み付け、指定された力で加圧して、組付けが成功
したかどうか調べるため、上ワーク804の高さを計測
する。 第6−A工程:組付けが失敗した場合、ロボットアーム
44は、ロボットハンドをキャリアチャックハンド94
4に交換し、作業テーブル938上のキャリア808
を、排出コンベア922に移載する。 第6−B工程:組付けがOKの場合は、ロボットアーム
44は、ロボットハンドをネジ締めハンド942と交換
する。 第7工程:ネジ供給ユニット930からネジを取り上
げ、上ワーク上の所定の位置へネジを運び、ネジ締めす
る。 第8工程:ロボットアーム44に取り付けられたカメラ
934を用いて、ネジ締めを終えたワークの外観検査を
行い、組付けの状態が正常であるか否か、ネジが所定の
場所に固定されているか否かを調べる。 第9−A工程:第8工程における組み付けがOKの場合
は、ロボットアーム44は、ロボットハンドをキャリア
チャックハンド944に交換し、作業テーブル938に
あるキャリア808をキャリア供給コンベア924に移
載し、次工程に送る。 第9−B工程:第8工程における組み付けが不良の場合
は、ロボットアーム44は、ロボットハンドをキャリア
チャックハンド944に交換し、作業テーブル938に
あるキャリア808を排出コンベア922に移載する。
装置のユーザプログラムとして記述される。
ボットコントロール部、IOコントロール部、ビジョン
コントロール部、IDリーダコントロール部からなる。
ール部とIOコントロール部とビジョンコントロール部
とIDリーダコントロール部とのそれぞれの起動・停止
・再起動を行う。
トの制御とデータ教示作業の制御と非特権ユーザタスク
の制御とエラー処理等を行う。
作の制御と、ハンドチェンジャーの制御、コンプライア
ンスユニットの制御を行う。
ートB920に止められているキャリア808を供給コ
ンベア924から作業テーブル938に移し、IDリー
ダコントロール部から送られるIDナンバに従って、ト
レイA906またはトレイB946から上ワーク804
を取り出し、作業テーブル938の下ワーク806に組
付け、ネジ締めをし、ビジョンコントロール部に信号を
送って、組み付けが正常に行われたか否かの検査をし、
コンベアに戻すという仕事を行う。
する。
数)がオンであるかを調べ、オン(後述する図16のス
テップ6参照)であれば、ステップ2へ行く。オフであ
れば、再びキャリア到着フラグを調べる。
ャリア808を把持するために、ロボットハンドをキャ
リアチャックハンド944に取り替える。
ャリア808を供給コンベア924から作業テーブル9
38に移し、キャリア到着フラグをオフにする。
に、ワークチャックハンド940に交換する。
部によって設定されるIDナンバデータ(グローバル変
数)がAならば、ステップ6へ行き、Bならばステップ
7へ行く。
ークA804Aを取り出し、ステップ8へ行く。
ークB804Bを取り出し、ステップ8へ行く。
トを力制御状態にし、垂直方向に1kgfの力で押し付
ける。
ーク804の高さを計測する。上ワークと下ワーク80
6が正しく組合わさった状態の上ワーク804の高さ
は、予め計測され、記憶されており、ここで得られた上
ワーク804の高さとその既定値とが一定値以上離れて
いれば、組み付けが失敗したと判断し、ステップ16へ
行く。
ーク806をネジ止めするため、ロボットハンドをネジ
締めハンド942に交換する。
動かして、ロボットアーム44に固定されたカメラ93
4が、ネジの頭部を捉えるようにし、ビジョンコントロ
ール部に対して、良否判定の処理を開始させるために、
画像判定開始フラグ(グローバル変数)をオンにする。
部によって設定される良否判定フラグ(後述の図17の
ステップ4またはステップ5参照)を調べて、良であれ
ばステップ14へ行く。不良であれば、ステップ16へ
行く。
リアチャックハンド944に交換する。
に組立が完了したことを知らせるために、排出フラグを
オンにする。そして、作業テーブル938にあるキャリ
ア808を供給コンベア924に移載し、ステップ1に
戻る。
リアチャックハンド944に交換する。
あるキャリア808を排出コンベア922に移載し、ス
テップ1へ戻る。
ゲートB920、ゲートC918の制御、供給コンベア
924、排出コンベア922の制御、ネジ供給ユニット
930の制御を行う。IOコントロール部は、さらにい
くつかの部分、つまり、ゲートA制御部、ゲートB制御
部、ゲートC制御部、その他の制御部に分かれる。
する。
を制御して供給コンベア924の上流から流れてきたキ
ャリア808を停止させ、ロボットアーム44がゲート
B920にあるキャリア808を作業テーブル938に
移載するのを待ち、ロボットアーム44によって作業テ
ーブル938から搬出されたキャリア808について
は、これを供給コンベア924の下流に流すと云うもの
である。
変化したか、つまりオンからオフへ変化したか、また
は、オフからオンに変化したかを調べ、変化していれ
ば、次のステップへ行く。
ンであるか、オフであるかを調べ、オンであればステッ
プ3へ、オフであれば、ステップ1へと行く。
変数)を調べ、排出フラグがオンであれば(図15のス
テップ15参照)ステップ4へ、排出フラグがオフであ
ればステップ6へ行く。
ゲートB920を下げ、キャリア808を排出し(コン
ベアの下流に流す)、ステップ5へ行く。
ゲートB920を上げ、排出フラグをオフにしてステッ
プ1へ戻る。
へキャリア808がゲートB920に到着したことを知
らせるために、キャリア到着フラグ(グローバル変数)
をオンにし、ステップ1へ戻る。
を制御して、上ワーク804と下ワーク806を固定す
るネジの頭部の存在と位置を確認し、組み付けの良否の
判定を行う。
判定開始フラグ(図15のステップ12)を調べ、これ
がオンになるのを待ち、オンになれば、ステップ2へ行
く。
フし、カメラ934から画像を取り込み、ネジの頭部を
認識し、その位置を計測して、正しくネジ締めが行われ
た場合のネジの頭部の位置と比較し、ある値以上離れて
いるか、あるいはネジの頭部が発見出来ない場合、ネジ
締めが失敗したものと判定する。
ジ締めが成功したと判定された場合は、ステップ4へ、
失敗と判定された場合にはステップ5へ行く。
にネジ締めが完了したことを知らせるために、判定フラ
グを良にセットし、ステップ1へ戻る。
にネジ締めが失敗したことを知らせるために、判定フラ
グを不良にセットし、ステップ1へ戻る。
912を制御して、ワークの種類を判別する。
と、デバグする手順を説明する。
ト言語で記述する。各周辺制御装置の制御アルゴリズム
を、一種類の言語で記述できるため、従来のように、制
御装置毎に異なる言語を使用する必要が無い。また、ロ
ボット本体や各制御装置の制御プログラムは、一つのユ
ーザタスクとして、他のユーザタスクと独立に記述する
ことができるため、ユーザタスク間の、通信規約を決め
ておけば、別々のプログラマが、別々のユーザタスクを
設計、コーディングすることも容易である。
ル用制御装置にダウンロードし、実際にプログラムを動
作させながらデバグするわけであるが、作業を効率的に
行うために、通常、各周辺装置の制御を行うユーザタス
クの単独のデバグを最初に行う。
クと同期して動作すべき1個のユーザタスクを、他のユ
ーザタスクの存在なしに、デバグしたいわけであるか
ら、なんらかの方法で、他のユーザタスクや、周辺機器
の動作を、必要な範囲内で模倣する操作が必要となる。
ルコンピュータ上の各ウィンドウを作業者が適宜操作す
ることによって、デバグ制御ブロックに対するコマンド
が発行され、これに応じて、デバグ制御ブロックが、サ
ーボ管理ブロック、周辺管理ブロック、ユーザプログラ
ム実行制御ブロックに必要な動作をさせることにより、
達成されるのである。
を、ゲートB制御部(図16参照)を例にとって、図1
8を基に、説明する。
パーソナルコンピュータ36A(図2参照)から、シリ
アル通信コントローラA40A(図2参照)を介して、
メインボードのRAM106(図3参照)にダウンロー
ドする。
テップ実行モードにする。
ーソナルコンピュータ36A(図2参照)のキーボード
1004A(図2参照)を用いて、プログラムの実行モ
ードをステップ実行モードにするコマンドを入力する。
このキー入力のエコーバックは、ユーザメッセージウィ
ンドウ604(図8参照)に表示される。このコマンド
は、シリアル通信コントローラA40A(図2参照)を
介して、メインボード24A(図2参照)に受信され、
物理層504(図7参照)、カーネル層506(図7参
照)を経て、デバグ制御ブロック522A(図7参照)
に到達し、デバグ制御ブロック522A(図7参照)
は、現在のプログラム実行モードが、ステップ実行モー
ドであることを記憶する。
仮想モードにする。
IOの動作モードを仮想モードにするコマンドは、手順
2と同様の経路を経て、デバグ制御ブロック522A
(図7参照)に到達し、デバグ制御ブロック522A
(図7参照)は、デジタルIO管理ブロック514B
(図7参照)に対して、仮想モードにするよう指示す
る。デジタルIO管理ブロック514B(図7参照)は
この指示を受けて、デジタルIOの動作モードを仮想モ
ードにする。
する。
コマンドは、手順2と同様の経路を経て、デバグ制御ブ
ロック522A(図7参照)に到達し、デバグ制御ブロ
ック522A(図7参照)は、ユーザプログラム実行制
御ブロック520A(図7参照)に対して、一行の実行
を指令する。ユーザプログラムはユーザプログラム実行
制御ブロック520Aの指令に従って実行する。
の処理内容に応じて便利なものを選んで操作する。
制御部(図16参照)のステップ1では、ワークセンサ
950(図13参照)がオンするまで、プログラムがス
テップ2に進まないため、ワークセンサ950(図13
参照)の接続されているデジタルIOの入力をオンさせ
なければならないが、デバグの途中では、システムの要
素がすべてそろっているとは限らないため、実際にワー
クセンサ950(図13参照)をオンすることが不可能
な場合がある。ところが、この実施例では、手順3にお
いてデジタルIOを仮想モードにしているため、手順6
Bによって、ワークセンサ950(図13参照)の接続
されているデジタルIOの入力を、デジタルIO操作コ
マンドによって仮想的にオンさせることができる。
36A(図2参照)のIOウィンドウ608(図8参
照)に表示されるデジタル入力の、ワークセンサに接続
されているビットにカーソルを動かして、1をキー入力
することによって、発行され、手順2と同様の経路を通
って、デバグ制御ブロック522A(図7参照)に到達
し、デバグ制御ブロック522A(図7参照)は、この
コマンドに従って、デジタルIO管理ブロック514B
(図7参照)に、デジタルIOの指定された入力をオン
するように指令する。
参照)は、定期的に、デジタルIO管理ブロック514
B(図7参照)の提供する関数を用いてデジタルIOの
状態を取得し、カーネル層506(図7参照)、物理層
504(図7参照)、シリアル通信コントローラA40
A(図2参照)を介して、パーソナルコンピュータ36
A(図2参照)に送り、パーソナルコンピュータ36A
(図2参照)は、この情報を、IOウィンドウ608
(図8参照)に表示する。この場合は、仮想IOの状態
が表示される。
ば、ゲートB制御部のステップ1が正しく動作している
か否かが確認できるというわけである。
ートB制御部(図16参照)のステップ3では、グロー
バル変数の一つである排出フラグがオンであるかオフで
あるかによってステップ4に進むかステップ6に進むか
に分かれるのであるが、現在はゲートB制御部の単独デ
バグ中のため、排出フラグをオンにするロボットコント
ロール部が存在しないため、ステップ3の動作が確認で
きない。ところがこの実施例では、グローバル変数操作
コマンドによって、排出フラグのオンオフを行うことが
できるため、あたかも、ロボットコントロール部が存在
するかのようにデバグを進めることができる。
って、デバグ制御ブロック522A(図7参照)に到達
し、デバグ制御ブロック522A(図7参照)は、この
コマンドに従って、ユーザプログラム実行制御ブロック
520A(図7参照)に、指定されたグローバル変数を
指定された値に書き換えるよう指令する。
参照)は、必要に応じて、定期的に、ユーザプログラム
実行制御ブロック520A(図7参照)の提供する関数
を用いてグローバル変数の値を取得し、カーネル層50
6、物理層504、シリアル通信コントローラA40A
(図2参照)を介して、パーソナルコンピュータ36A
(図2参照)に送り、パーソナルコンピュータ36A
(図2参照)は、この情報を、変数モニタウィンドウ7
04(図9参照)に表示する。
ば、ゲートB制御部のステップ3が正しく動作している
か否かが確認できるというわけである。
特徴をまとめて云うならば、パーソナルコンピュータの
画面上のデバグウィンドウには、ユーザタスクのソース
プログラムが表示され、同時にIOウィンドウにそのユ
ーザタスクの参照するデジタルIOが表示され、さらに
このデジタルIOを作業者が操作し、さらに変数モニタ
ウィンドウにそのユーザタスクの参照する変数が表示さ
れ、さらにこの変数の値を作業者が書換えながら、ユー
ザタスクを一行一行実行してゆくことにより、ユーザタ
スクの正しい動作を確かめることができ、従って、ユー
ザタスクのデバグが極めて容易に行われるということで
ある。
全体のユーザプログラムのデバグへと進むわけである
が、全体を動作させ始めてから初めて発見される不具合
点は極めて多く、この部分がデバグ作業の大部分を占め
ると云ってもよい。
あたって作業者は、次のような点の確認を行わなければ
ならない。 (1)セルを動作開始させるときの手順は正確である
か。 (2)各ユーザタスク間の同期は正確であるか。 (3)各ユーザタスク間のデータの授受は正確である
か。 (4)ロボットや周辺機器の動作は正常であるか。 (5)エラーが生じたときの処理は正確であるか。
業者が行わなければならない操作が、如何に効率的で、
簡便なものであるか否かが、デバグの効率を決定するわ
けである。
の各ウィンドウ上にリアルタイムで表示されるロボット
本体、各周辺機器及びユーザプログラムの状態を観察し
ながら、作業者が各ウィンドウに対して、適当な操作を
行うことによって、デバグ制御ブロック522Aに対す
るコマンドが発行され、これに応じて、デバグ制御ブロ
ック522Aが、ロボット制御管理ブロック512A、
周辺管理ブロック514A〜514D、ユーザプログラ
ム実行制御ブロック520Aに必要な動作をさせること
により、デバグ作業が実行される。
タのウィンドウ上での操作を行うことのみで全体のユー
ザプログラムのデバグを行うことができ、従来のように
複数の制御装置にまたがった操作をする必要がないた
め、デバグ作業は極めて能率的である。
る。
ュータ36Aから、シリアル通信コントローラA40A
を介して、メインボードのRAM106(図3参照)に
ダウンロードする。
わけであるが、ここまでのデバグでは、ユーザタスクの
単独デバグが行われているだけであるから、全体を動作
させたときに、いかなる不具合が生じるか予測できず、
ときにはロボット本体等のメカニズムが突然動作し、事
故を引き起こす場合もあるため、ユーザタスクを一斉に
動作させずに、段階的に(ソースプログラムの一行毎、
あるいはひとつの動作単位毎に)動作させることが望ま
しい。手順2以降の手続きは、このような事情を考慮し
たものである。
行を制御する目的で、図14のステップ1に相当するソ
ース行にブレークポイントをかける。
パーソナルコンピュータ36Aのキーボード1004A
を用いて、ステップ1に相当するソース行にブレークポ
イントをかけるコマンドを入力する。前述したように、
このキー入力のエコーバックは、ユーザメッセージウィ
ンドウ604(図8参照)に表示される。このコマンド
は、シリアル通信コントローラA40Aを介して、メイ
ンボード24Aに受信され、物理層504、カーネル層
506を経て、デバグ制御ブロック522Aに到達す
る。デバグ制御ブロック522Aは、ユーザプログラム
実行制御ブロック520Aの用意した関数をコールする
ことによって、指定されたユーザタスクの指定された行
にブレークポイントをかけるように指令する。ユーザプ
ログラム実行制御ブロック520Aは、このコマンドを
受けて、指定されたユーザタスクの指定された行にブレ
ークポイントをかける。
適宜、ユーザプログラム実行制御ブロック520Aの用
意した関数をコールすることによって、どのユーザタス
クのどの行にブレークポイントがかけられているか調
べ、この情報を、カーネル層506、物理層504、シ
リアル通信コントローラA40A、パーソナルコンピュ
ータ36Aのシリアル通信コントローラ1012A(図
10参照)を経て、コマンド解析部1118(図11参
照)に通知し、コマンド解析部1118(図11参照)
はこの情報をデバグウィンドウ管理ブロック1106
(図11参照)に送出する。デバグウィンドウ管理ブロ
ック1106は、デバグウィンドウ702(図9参照)
がもし開いており、ブレークポイントのかけられている
部分が、表示されていれば、該当する行にアンダーライ
ンを表示するよう、表示管理ブロック1006(図10
参照)に指令する。
ているロボットコントロール部を起動する。このコマン
ドは、手順2と同様の経路を通って、ユーザプログラム
実行制御ブロックに到達し、ロボットコントロール部の
実行が開始されるが、手順2においてブレークポイント
が設定されているため、図14のステップ1で、プログ
ラムが停止する。これにより、もしキャリア到達フラグ
の設定が間違ってオンになったいたとしても、プログラ
ムがステップ2に進み、ロボット本体が不意に動き出す
ことは避けられる。
ているゲートB制御部のステップ2にあたる部分のソー
ス行にブレークポイントをかけ、手順2と同様に起動す
る。するとプログラムは、ワークセンサの変化を図16
のステップ1で待ち続ける。
リアを流して(ゲートAは、すでに制御されているもの
とする。)、ゲートBに到達させ、ワークセンサをオン
させる。すると、ゲートB制御部のプログラムは、ステ
ップ1を抜け、ステップ2において、ブレークポイント
によって一時停止する。このとき、ワークセンサの接続
されているデジタル入力の値は、IOウィンドウ608
(図9参照)にリアルタイムで表示されているため、キ
ャリアの有無に応じて、デジタルIOが正常に動作する
様子を確認することができ、一方、IOウィンドウと同
時に表示されているデバグウィンドウ702(図9参
照)において、デジタルIOに応じてプログラムが正し
く進行する様子をも、同時に確認することができる。
し、ステップ2、ステップ3、ステップ6(排出フラグ
はオフとする。)まで進ませ、キャリア到達フラグをオ
ンさせる。
テップ1部分(手順3によって一時停止している。)を
デバグウィンドウ702上に表示させ、一行実行させる
と、プログラムキャリア到着フラグを正しく処理し、ス
テップ2へと進むことが確認できる。もしこの部分に疑
いがあれば、変数モニタウィンドウ704にグローバル
変数であるキャリア到着フラグを表示させることによ
り、データが正しく受け渡されているか否かを確認する
ことができる。
デバグの説明で示した一行実行コマンドと同じ)によっ
て、ロボットコントロール部のステップ2を実行させ
る。ステップ2は、複数のソース行によって構成されて
おり、この一行一行を実行させるとロボット本体が次々
と姿勢を変化させ、ロボットハンドをキャリアチャック
ハンドに交換する。この部分の正当性は、デバグウィン
ドウ702(図9参照)において、ソース行の進展を観
察するとともに、状態ウィンドウ610(図8参照)に
おいてロボット本体の先端の座標を観察することにより
確認することができる(ロボット本体の先端の座標の表
示については前述した。)。
ル部とゲートB制御部間の同期とデータ授受の確認、及
びワークセンサの動作とロボット本体の動作の確認が、
パーソナルコンピュータ36Aのみを操作することによ
り行われたわけである。
コントロール部の同期等についても同様に行うことがで
きることは明らかであるから、詳しい説明を省略する。
6として、パーソナルコンピュータ36A(図2参照)
を採用して説明したが、ティーチペンダント36B(図
2参照)を採用しても、若干の機能が縮小されるにし
ろ、基本的に同じであることは言うまでもない。
のプログラムの作成、デバグを容易にし、立ち上げ期間
を大幅に短縮することができる。
主制御装置とマンマシンインターフェース手段とロボッ
ト本体制御手段と周辺制御手段とが上記のように構成さ
れているので、ユーザプログラムとロボット本体と周辺
装置との種々の状態を表示手段に同時に表示することが
できる。また、入力手段よりロボット本体と周辺装置と
の各部の動作の実行や停止をさせることができ、さら
に、グローバル変数の変更やデジタルIOの変更等の仮
想状態を作成することもできる。そして、この監視と操
作とが一つのマンマシンインターフェース手段により行
なえるので、早期にデバグを完了することができ、素早
いシステムの立上げと良好な保守性を実現することがで
きる。
である。
ドウェア構成図である。
る。
である。
る。
る。
ある。
(続き)である。
ある。
図である。
ク 1012 第3の通信手段 1012A シリアル通信コントローラ
Claims (2)
- 【請求項1】 第1の通信手段(40)と、第2の通信
手段(108)と、該第2の通信手段(108)と接続
されるロボット管理手段(512)と、前記第2の通信
手段(108)と接続される周辺管理手段(514)
と、前記ロボット管理手段(512)ならびに前記周辺
管理手段(514)と相互に情報を伝達するユーザプロ
グラム実行手段(510)と、該ユーザプログラム実行
手段(510)の実行の制御と該ユーザプログラム実行
手段(510)の状態の入手とを行うユーザプログラム
実行制御手段(520)と、前記ロボット管理手段(5
12)ならびに前記周辺管理手段(514)よりロボッ
ト・周辺機器の状態を受け必要な状態を前記第1の通信
手段(40)に伝達し、前記ユーザプログラム実行制御
手段(520)を経由して前記ユーザプログラム実行手
段(510)の状態を受け必要な状態を前記第1の通信
手段(40)に伝達し、前記第1の通信手段(40)よ
り受けた命令を前記ロボット管理手段(512)または
前記周辺管理手段(514)または前記ユーザプログラ
ム実行制御手段(520)のいづれに伝達するかを判断
して、該選択されたロボット管理手段(512)または
周辺管理手段(514)または前記ユーザプログラム実
行制御手段(520)のいづれかに前記命令を伝達する
デバグ制御手段(522)とを有する主制御装置(2
4)と、 前記第1の通信手段(40)と接続される第3の通信手
段(1012)と、該第3の通信手段(1012)と接
続されるマンマシンインターフェース管理手段(101
0)と、該マンマシンインターフェース管理手段(10
10)と接続される入力管理手段(1008)と、該入
力管理手段(1008)と接続される入力手段(100
4)と、前記マンマシンインターフェース管理手段(1
010)と接続される表示管理手段(1006)と、該
表示管理手段(1006)と接続される表示手段(10
02)とを有するマンマシンインターフェース手段(3
6)と、 前記第2の通信手段(108)と接続されるロボット本
体制御手段(26)と、 前記第2の通信手段(108)と接続される周辺制御手
段(28)とを有することを特徴とするロボットセル用
制御装置。 - 【請求項2】 前記マンマシンインターフェース手段
(36)は、前記表示手段(1002)に、前記ユーザ
プログラム実行手段(510)の状態とロボットの状態
と周辺機器の状態と前記入力手段(1004)より入力
した内容との中より選択されたものを同時に表示するよ
うにしたことを特徴とする請求項1記載のロボットセル
用制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5087197A JPH06301412A (ja) | 1993-04-14 | 1993-04-14 | ロボットセル用制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5087197A JPH06301412A (ja) | 1993-04-14 | 1993-04-14 | ロボットセル用制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH06301412A true JPH06301412A (ja) | 1994-10-28 |
Family
ID=13908259
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5087197A Pending JPH06301412A (ja) | 1993-04-14 | 1993-04-14 | ロボットセル用制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH06301412A (ja) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011022133A (ja) * | 2009-06-19 | 2011-02-03 | Yaskawa Electric Corp | 形状検出装置及びロボットシステム |
WO2011074518A1 (ja) * | 2009-12-17 | 2011-06-23 | 株式会社安川電機 | 制御システム |
CN105128010A (zh) * | 2015-08-07 | 2015-12-09 | 深圳市微秒控制技术有限公司 | 一种scara机器人分布式控制系统及其控制方法 |
JP2016078211A (ja) * | 2014-10-22 | 2016-05-16 | セイコーエプソン株式会社 | ロボット |
CN106514655A (zh) * | 2016-11-24 | 2017-03-22 | 广州途道信息科技有限公司 | 一种便于用户实时监控机器人运行状态的机器人控制系统 |
CN106625659A (zh) * | 2016-11-24 | 2017-05-10 | 广州途道信息科技有限公司 | 一种便于用户实时监控机器人运行状态的机器人控制方法 |
WO2021193905A1 (ja) * | 2020-03-27 | 2021-09-30 | 川崎重工業株式会社 | ロボットシステムの制御方法 |
WO2021251385A1 (ja) * | 2020-06-08 | 2021-12-16 | 株式会社安川電機 | 生産システム、セルコントローラ、ロボットコントローラ及び制御方法 |
WO2022219735A1 (ja) * | 2021-04-14 | 2022-10-20 | 株式会社Fuji | ロボットコントロール装置 |
US11826913B2 (en) | 2020-07-01 | 2023-11-28 | Kabushiki Kaisha Yaskawa Denki | Control system, robot system and control method |
-
1993
- 1993-04-14 JP JP5087197A patent/JPH06301412A/ja active Pending
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011022133A (ja) * | 2009-06-19 | 2011-02-03 | Yaskawa Electric Corp | 形状検出装置及びロボットシステム |
WO2011074518A1 (ja) * | 2009-12-17 | 2011-06-23 | 株式会社安川電機 | 制御システム |
JP2016078211A (ja) * | 2014-10-22 | 2016-05-16 | セイコーエプソン株式会社 | ロボット |
CN105128010A (zh) * | 2015-08-07 | 2015-12-09 | 深圳市微秒控制技术有限公司 | 一种scara机器人分布式控制系统及其控制方法 |
CN106514655A (zh) * | 2016-11-24 | 2017-03-22 | 广州途道信息科技有限公司 | 一种便于用户实时监控机器人运行状态的机器人控制系统 |
CN106625659A (zh) * | 2016-11-24 | 2017-05-10 | 广州途道信息科技有限公司 | 一种便于用户实时监控机器人运行状态的机器人控制方法 |
WO2021193905A1 (ja) * | 2020-03-27 | 2021-09-30 | 川崎重工業株式会社 | ロボットシステムの制御方法 |
WO2021251385A1 (ja) * | 2020-06-08 | 2021-12-16 | 株式会社安川電機 | 生産システム、セルコントローラ、ロボットコントローラ及び制御方法 |
JP2021193543A (ja) * | 2020-06-08 | 2021-12-23 | 株式会社安川電機 | 生産システム、セルコントローラ、ロボットコントローラ及び制御方法 |
US11826913B2 (en) | 2020-07-01 | 2023-11-28 | Kabushiki Kaisha Yaskawa Denki | Control system, robot system and control method |
WO2022219735A1 (ja) * | 2021-04-14 | 2022-10-20 | 株式会社Fuji | ロボットコントロール装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5715388A (en) | Computer system for controlling an industrial robot subsystem which can monitor and detect abnormalities therein | |
JPH10309685A (ja) | ロボット制御装置 | |
JPH06301412A (ja) | ロボットセル用制御装置 | |
JP2005500597A (ja) | 統合ロボット・セル | |
JP4846209B2 (ja) | 工作機械シミュレータを有する数値制御装置 | |
JP3269004B2 (ja) | ロボット制御装置 | |
EP0707251B1 (en) | Control system | |
KR100335357B1 (ko) | 다기능 고속 와이어링 하네스 결선 오류 검사 시스템 및그 검사방법 | |
JPH07200019A (ja) | ロボット制御装置 | |
JP2004151976A (ja) | シミュレーション装置 | |
JPH0895624A (ja) | アクチュエータコントローラ | |
US6330485B1 (en) | High-speed multi-task system | |
Caccavale et al. | RePLiCS: An environment for open real-time control of a dual-arm industrial robotic cell based on RTAI-Linux | |
JP3591919B2 (ja) | 自動機の制御装置 | |
JPH0938876A (ja) | シミュレーション装置 | |
US4514673A (en) | Stepper motor controller | |
EP4254098A1 (en) | Controlling an automation system comprising a plurality of machines | |
JPH04130503A (ja) | ロボット制御装置 | |
JPH07299792A (ja) | 複腕ロボットシステムとその制御方法 | |
JPH0887316A (ja) | 制御装置 | |
JPS61208103A (ja) | ロボツトシステムの制御装置 | |
JP2000024970A (ja) | ロボットシミュレーション装置 | |
JPH05336208A (ja) | モニタ機能を有する入出力装置 | |
JP2001150373A (ja) | ロボットシミュレーション装置及びロボット制御装置 | |
CN116430781A (zh) | 基于可编程逻辑器件的开放式机器人控制系统的操作控制终端装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040531 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040706 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040719 |
|
R150 | Certificate of patent (=grant) or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070806 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100806 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Year of fee payment: 6 Free format text: PAYMENT UNTIL: 20100806 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130806 Year of fee payment: 9 |