robo産業ロボットⅡマニュアル関数pos...

26
Robo 産業ロボットⅡマニュアル

Upload: others

Post on 25-Dec-2019

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Robo産業ロボットⅡマニュアル関数Pos は前回の2軸ロボットで使用したものと全く同じです。 またこのPos 関数を使ってPos X、Pos Y, Pos Z も同様に簡単に作成することができます。

Robo 産業ロボットⅡマニュアル

Page 2: Robo産業ロボットⅡマニュアル関数Pos は前回の2軸ロボットで使用したものと全く同じです。 またこのPos 関数を使ってPos X、Pos Y, Pos Z も同様に簡単に作成することができます。

- 1 -

第 1 章はじめに ■どのように組み立てるか このキットでは 3 種類の産業ロボットを組み立てることができます。 組み立てる前に次の事項を確認のうえ取り組むことをお勧めします。 すなわち

① マニュアルをよく読む このマニュアルの外、組立マニュアルおよび Ropro のプログラミングガイドも よく読みましょう。

②内容を理解する 組立の順序、どの点を注意すべきかを理解すること

③組み立てる 組み立てるときに手で組立て、他の力や道具を使わないこと

もし動かなかったら最初から組み立てなおすこと ④動かす前にチェック 「インターフェイステスト」を使ってモーターやセンサーの動きを プログラムを動かす前にチェックしましょう。 ⑤動きを吟味する

プログラムの想定している通りに動いているか 部品に緩みが出ていないか などロボットの組立て状況や動きをチェックしましょう。 ■産業ロボットとは

① ロボットは人と同じ様な動きをする機械である ② 人と同じ様に腕と関節を持っているが片手だけである ③ ロボットは自動車工場などで部品の取付けに使用されている ④ ロボットは人間にとって危険な作業や繰り返し行なう作業に向いている

■産業ロボットは何をするか 産業ロボットは工場内で主に ①溶接 ②組立 ③塗装 ④搬送などに 使われています。

Page 3: Robo産業ロボットⅡマニュアル関数Pos は前回の2軸ロボットで使用したものと全く同じです。 またこのPos 関数を使ってPos X、Pos Y, Pos Z も同様に簡単に作成することができます。

- 2 -

■まずパーツの確認を 組み立てる前に組立マニュアルのパーツリストをみて 部品がすべてそろっているか確認してください。 もし不足部品があれば発売元までご連絡下さい。 対応いたします。

このキットには付属しておりませんが部品を保管するには 品番 PA-20 ボックス500税込 2520 円(整理箱 2 個と組立台)を ご利用されることをお勧めします。 組立マニュアルの後にボックスの下に入れて部品を保管するための 部品配列表がついていますのでこれを切り取ってお使い下さい。 ■ソフトウエア「Robopro」の新バージョンをダウンロードしよう。 Robopro ソフトに添付されている CD には産業ロボットⅡの サンプルプログラムが入っておりませんので 次の方法でフィッシャーテクニックのホームページからダウンロード

してください。 すなわち Robopro version1.1.2.40 以上にバージョンアップする必要があります。

■ Robopro の Help メニューから download the new version を選択して 新バージョンをダウンロードするか ■次のフィッシャーテクニックのホームページからダウンロードしてください。

http://www.fischertechnik.de/robopro/update.html 新バージョンにはサンプルプログラムおよびティーチインソフトが 入っておりますのでこのプログラムを使用します。

■万一うまくインストールできないときは C:¥Programs¥ROBOPro¥ReleaseNotest.txt.

を一旦削除した後再度インストールするとうまく行きます。 ■Robo インターフェイスで事前チェック すべての接続が完了したときは常に Robopro のインターフェイステストを使って すべての入出力が正常に働いているか事前にチェックするようにしてください。

Page 4: Robo産業ロボットⅡマニュアル関数Pos は前回の2軸ロボットで使用したものと全く同じです。 またこのPos 関数を使ってPos X、Pos Y, Pos Z も同様に簡単に作成することができます。

- 3 -

第 2 章 1軸溶接ロボット

■ロボットの組立て 組立マニュアルを見てロボットを組み立ててください。

モーターおよびパルスカウンターおよびリミットスイッチは次の通りです。 I1 リミットスイッチ I2 パルスカウンター M1 回転軸駆動用モーター M4 溶接用スポットライト ■ロボットの動作 スタートすると 1ホームポジションに戻り、2秒停止後 2第 1 溶接位置へ 52 パルス分移動し溶接 3つぎに第 2 溶接位置へ更に 40 パルス分移動し溶接 4つぎに第 3 溶接位置へ 52 パルス分移動し溶接 5またホームポジションに帰って作業を繰り返す。

Page 5: Robo産業ロボットⅡマニュアル関数Pos は前回の2軸ロボットで使用したものと全く同じです。 またこのPos 関数を使ってPos X、Pos Y, Pos Z も同様に簡単に作成することができます。

- 4 -

■プログラムの手順

サブプログラム Home は次のようになります。 リミットスイッチ I1 がオンになっていなければモーターM1 は CCW し、オンになれば停止するというプログラムです。 これで回転軸はホームポジションに戻ります。

溶接作業のサブプログラム Flashing は次のように 0.05 秒間隔で点滅を 10 回繰り返します。

Page 6: Robo産業ロボットⅡマニュアル関数Pos は前回の2軸ロボットで使用したものと全く同じです。 またこのPos 関数を使ってPos X、Pos Y, Pos Z も同様に簡単に作成することができます。

- 5 -

このプログラムはそれぞれの関数ブロックの使い方が分かれば 簡単に作成できますしフローチャートも理解できると思いますので 説明の必要がないかと思います。

Page 7: Robo産業ロボットⅡマニュアル関数Pos は前回の2軸ロボットで使用したものと全く同じです。 またこのPos 関数を使ってPos X、Pos Y, Pos Z も同様に簡単に作成することができます。

- 6 -

第 3 章 2軸溶接ロボット

■ロボットの組立て 2 軸ロボットでは回転軸の他に溶接軸も前後に移動します。 1軸ロボットをどのように改良すればこの2軸ロボットになるのか 組み立てる前に考えて見ましょう。

2軸になることで溶接ロボットの移動範囲が広くなりました。 実際にどの範囲で溶接点は移動できるのか、 回転主軸(X 軸)の動きえる範囲および溶接軸(Y 軸)の前後動しえる範囲を 調べ図示してください。

モーターおよびパルスカウンターおよびリミットスイッチは次の通りです。 I1 主軸(X 軸)リミットスイッチ I2 主軸パルスカウンター I3 溶接軸(Y 軸)リミットスイッチ I4 溶接軸パルスカウンター M1 主軸回転駆動用モーター M2 溶接軸前後移動用モーター M4 溶接用フラッシュランプ ■ロボットの動作 スタートすると 1ホームポジションに戻り、1 秒停止後 2第 1 溶接位置(X,Y=50,150)に移動し溶接 3つぎに位置 Y=140 に戻った後、第 2 溶接位置(X,Y=51,146)に移動し溶接 4位置 Y-140 に戻った後、第 3 溶接位置(X,Y=52,146)に移動し溶接 5位置 Y-140 に戻った後、第 4 位置(X,Y=53,150)に移動し溶接 6またホームポジションに帰って作業を繰り返す。

Page 8: Robo産業ロボットⅡマニュアル関数Pos は前回の2軸ロボットで使用したものと全く同じです。 またこのPos 関数を使ってPos X、Pos Y, Pos Z も同様に簡単に作成することができます。

- 7 -

■プログラムの手順

サブプログラム Pos X、Pos Y, welding を使ってメインプログラムを表記すると 上のようになります。 数値は目標位置で定数ブロックを使って表しています。 この内容に付いては説明の必要はないでしょう。

Page 9: Robo産業ロボットⅡマニュアル関数Pos は前回の2軸ロボットで使用したものと全く同じです。 またこのPos 関数を使ってPos X、Pos Y, Pos Z も同様に簡単に作成することができます。

- 8 -

つぎにサブプログラム Pos を見てみましょう。 この Pos サブプログラムは入出力に関係なく位置決め作業の本質を まとめたもので Robopro が C 言語のような構造化プログラミング言語 であることを示しています。いままでの LLWin と関数ブロックを使うことは同じですが プログラミングの仕方がかなり進歩しました。 したがって作成したサブプログラム(制御文)は保管しておくと何時でもどのプログラム

ででも利用することができます

さて位置決めの作業の流れは ●ホームポジションにいるかいないか

① いるなら (ア) リミットスイッチが入っていれば変数 lst に0を代入 (イ) スイッチが入っていなければモーターを動かしてスイッチをいれ

変数 lst に0を代入してサブプログラムから抜け出す ②ホームポジションにいないなら 設定目標位置 Soll(値 A)と現在位置 lst(値 B)と比較して

Page 10: Robo産業ロボットⅡマニュアル関数Pos は前回の2軸ロボットで使用したものと全く同じです。 またこのPos 関数を使ってPos X、Pos Y, Pos Z も同様に簡単に作成することができます。

- 9 -

A>B なら CW 回転しパルス入力毎に変数 lst を加算しフィードバック B=A ならモーター停止しサブプログラムから脱出 B<A なら CCW 回転しパルス入力毎に変数 lst を減算しフィードバック つぎにこの関数 Pos を使って X 軸、Y 軸の位置決めに使用します。 Y 軸で見てみるとサブプログラム名を PosY としてその入出力を具体的に 次のように決めてプログラムが完成します。

入力としては I3 はリミットスイッチ I4 はパルスカウンター 目標値 Y(入力定数)

出力としては M2 はモーターです 位置表示変数を「PosY」としその初期値を0に設定 プログラムが実行されると現在値が表示される

X 軸についても同様にして次のようになります。

Page 11: Robo産業ロボットⅡマニュアル関数Pos は前回の2軸ロボットで使用したものと全く同じです。 またこのPos 関数を使ってPos X、Pos Y, Pos Z も同様に簡単に作成することができます。

- 10 -

<プログラムの演習> 次のような円筒の点を溶接すうようにプログラムを作ってください。

Page 12: Robo産業ロボットⅡマニュアル関数Pos は前回の2軸ロボットで使用したものと全く同じです。 またこのPos 関数を使ってPos X、Pos Y, Pos Z も同様に簡単に作成することができます。

- 11 -

第 4 章 3軸ロボット

■ロボットの組立て この 3 軸ロボットの動きは 主軸の回転、上下動、前後動 の他にグリップの開閉があります。 これによって 3 軸ロボットの移動範囲は平面から立体に移動しえるように なりました。 実際にどの範囲でロボットは作業し得るのか 回転軸(X 軸)、前後動軸(Y 軸)および上下動軸(Z 軸)の移動しえる範囲を 調べ図示してください。

モーターおよびパルスカウンターおよびリミットスイッチは次の通りです。 I1 X 軸リミットスイッチ I2 X 軸パルスカウンター I3 Y 軸リミットスイッチ I4 Y 軸パルスカウンター I5 Z 軸リミットスイッチ I6 Z 軸パルスカウンター I7 グリップリミットスイッチ I8 グリップ開閉パルスカウンター M1 X 軸駆動用モーター M2 Y 軸移動用モーター M3 Z 軸移動用モーター M4 グリップ開閉用モーター

Page 13: Robo産業ロボットⅡマニュアル関数Pos は前回の2軸ロボットで使用したものと全く同じです。 またこのPos 関数を使ってPos X、Pos Y, Pos Z も同様に簡単に作成することができます。

- 12 -

■ロボットの動作 スタートすると 1グリップを開きワークを置いた後、ホームポジションにもどり、2 秒停止後 2第 1 地点(X=50,Y=60,Z=170)に移動し、グリップを閉じワークをつかむ 3高さ(Z=30)に移動した後、第 2 地点(X=100,Y=90,Z=170)に移動し グリップを開けてワークを置き、またグリップを閉じてワークをつかみ 4高さ(Z=30)に移動した後、第1地点に戻る 5この動作の繰り返し ■プログラムの手順

サブプログラムを使ってメインプログラムを記述すると 上のようになる。 「オープングリップ」を最後に入れてもよい。

Page 14: Robo産業ロボットⅡマニュアル関数Pos は前回の2軸ロボットで使用したものと全く同じです。 またこのPos 関数を使ってPos X、Pos Y, Pos Z も同様に簡単に作成することができます。

- 13 -

関数 Pos は前回の2軸ロボットで使用したものと全く同じです。

またこの Pos 関数を使って Pos X、Pos Y, Pos Z も同様に簡単に作成することができます。 グリップの開閉もこの Pos 関数を使います。すべて入出力が異なるだけです。

Page 15: Robo産業ロボットⅡマニュアル関数Pos は前回の2軸ロボットで使用したものと全く同じです。 またこのPos 関数を使ってPos X、Pos Y, Pos Z も同様に簡単に作成することができます。

- 14 -

つぎに X,Y,Z を同時に位置決めするためのサブプログラムとして PosXYZ を作成しますがその内容は次の通りです。 「待機ブロック」を使って X,Y,Z のすべての位置決めが終了すれば 次のステップへ進むようになっています。 「変数代入ブロック」で1を代入し Y は(>0)で次へ進行

こうしてみると複雑に見えるプログラムも簡単に作成できることが お分かりいただけると思います。

Page 16: Robo産業ロボットⅡマニュアル関数Pos は前回の2軸ロボットで使用したものと全く同じです。 またこのPos 関数を使ってPos X、Pos Y, Pos Z も同様に簡単に作成することができます。

- 15 -

第 5 章 ティーチインソフトを使う このキットのサンプルプログラムには TeachIn.rpp というティーチインソフトが入っております。 ティーチインソフトを使うことで実際にロボットを動かしながら 位置データーを保管していくことで希望の動きをプログラムできます。 実際の産業ロボットの動きも同様に実際に作業させながら プログラムをしていくのが普通です。 ■「ティーチイン」ソフト TeachIn.rpp とは

■ TeachIn.rpp を実行する(スタートアイコンをクリックする) ■ Mainprogram で「Panel パネル」を選択しクリックする ■ 下のような画面が表れます。 ■ この画面を使ってボタンを操作してロボットを希望する場所へ

動かしていくと、Position 欄の中にパルス数が表示されていきます。 ■ その場所が移動先として適切であれば Enter を押すことによりその位置は

プログラムに位置データーとして記録されます。 ■ この動作を繰り返すことで移動先がプログラムされていきます。

Page 17: Robo産業ロボットⅡマニュアル関数Pos は前回の2軸ロボットで使用したものと全く同じです。 またこのPos 関数を使ってPos X、Pos Y, Pos Z も同様に簡単に作成することができます。

- 16 -

■コンソール画面の説明

② ③ ④

⑤ ⑥ ⑦ ⑧ ⑨

①ロボット動作ボタン ボタン Up Down, Open Close, Backward Forward, right left で

ロボットの動きを指定 ②Home ボタン ロボットはホームポジションに帰る ③Enter ボタン このボタンでロボットの現在位置をプログラムに保管 ④Ovwewrite ,Delete ボタン 指定位置の変更 ⑤矢印ボタン 前の位置あるいは次の位置へジャンプ ⑥Play ボタン ティーチインプログラムの実行 ⑦Endless ボタン プログラムの繰り返し実行 ⑧Stop ボタン プログラム停止 ⑨Pause ボタン プログラム一時停止

Page 18: Robo産業ロボットⅡマニュアル関数Pos は前回の2軸ロボットで使用したものと全く同じです。 またこのPos 関数を使ってPos X、Pos Y, Pos Z も同様に簡単に作成することができます。

- 17 -

■動作内容の保管 覚えさせた動作位置の内容はティーチインソフトをとじる前に CSV ファイルの形で保管しておく必要があります。 保管をしないとソフトを閉じたときにすべてが消去されます。 File の中の「Store list .csv memory」をクリックして名前をつけて 保存します。

また保存した CSV ファイルを開くには同じく File の中の 「Load list .csv memory」をクリックして該当ファイルを開きます。 CSV ファイルの中身はワードパッドなどで見ることができます。 まず適当にロボットを動かしティーチインソフトの使い方に なれてください。

Page 19: Robo産業ロボットⅡマニュアル関数Pos は前回の2軸ロボットで使用したものと全く同じです。 またこのPos 関数を使ってPos X、Pos Y, Pos Z も同様に簡単に作成することができます。

- 18 -

第 6 章ハノイの塔 ■ハノイの塔とは

『ハノイの塔』は1883年にフランスのパズル研究家E.リュカが考えたゲームです。

台の上に3本の棒が固定されており、そのうちの一本に何枚かの円盤がはまっています。

円盤は下へいくほど半径が大きくなっています。

一番左の棒をA、真ん中の棒をB、一番右の棒をCとし、最初にAに何枚かの円盤がはま

っているとしましょう。

棒Bを利用して全ての円盤をAからCに移してくださいというゲームです。

そしてハノイの塔のルールは次の通りです。

• 一回に一枚の円盤しか動かしてはいけない。

• 移動の途中で円盤の大小を逆に積んではいけない。常に大きい方の円盤が下になる

ようにする。

• 棒以外のところに円盤を置いてはいけない。

■簡易ルールでトライしてみよう。 ハノイの塔のゲームを少し簡単にして 3 軸ロボットを使ってシリンダーの並べ替えを 行なってみましょう。 ルールは積み重ねたシリンダーが番号表示で 3 個であること以外は 通常のルールで行ないます。 どのように移動させれば動かすことが出来るか考えてみてください。

* インターネットで「ハノイの塔」を調べるとゲームのシュミレーションが できるようになっていますので参考にしてください。

*円盤の段数とそれを動かすステップ数の関係はよく知られているように n段のときステップ数は(2n-1)です。 3 段なら 7 ステップですが 20 段なら 1048575 ステップになります。

Page 20: Robo産業ロボットⅡマニュアル関数Pos は前回の2軸ロボットで使用したものと全く同じです。 またこのPos 関数を使ってPos X、Pos Y, Pos Z も同様に簡単に作成することができます。

- 19 -

■プログラムの作成 左図のように A(移動元)から C(移動先)へ円筒を動かすには どうすればいいのでしょうか。 それはどのようにプログラムすれば いいのでしょうか。 このハノイの塔の問題は「再帰的アルゴリズ

ム」の見本としてよく C 言語の参考書に 紹介されていますが新しいソフト Robopro で

も同じ様に再帰的アルゴリズムを使って プログラムを作成してみましょう。

このパズルを解くということは円筒の移動手順をプログラム化することです。 次のように考えます。 1移動する円筒が 1 個の場合は移動元(from)から移動先(to)へ直接移動 2円筒が N 個(N>=2)の場合は ●移動先(to)を中間作業場として使って、(N-1)個の円筒を

移動元(from)から作業用(work)へ移動 ●移動元(from)の一番下の円筒を移動先(to)へ移動

●移動元(from)を中間作業場として使って、(N-1)個の円筒を 作業用(work)から移動先(to)へ移動

上の図で言えば「2、3」を 1 つのグループと考えこれを作業用 work へまず移動させます。 とはいっても一度に動かせないのでまずこの 2 個の移動を考えます。 そして to を中間作業場として使って 「3」を from から to へ 「2」を from から work へ 「3」を to から work へ これで「2,3」の work への移動が完了 一番下の円筒「1」を from から to へ移動 つぎに作業用 work にある「2,3」を移動先 to へ移動させるのですがこれも 一度に動かせないので今度は from を中間作業場として使って 「3」を work から from へ 「2」を work から to へ 「3」を from から to へ

Page 21: Robo産業ロボットⅡマニュアル関数Pos は前回の2軸ロボットで使用したものと全く同じです。 またこのPos 関数を使ってPos X、Pos Y, Pos Z も同様に簡単に作成することができます。

- 20 -

これで to への移転が完了。 これをサブプログラム hanoi で表すと次のようになります。

少しくどくなりますが 再帰的アルゴリズムとしての hanoi のデーター変化は次の表を見ていただければ お分かりいただけると思います。

Page 22: Robo産業ロボットⅡマニュアル関数Pos は前回の2軸ロボットで使用したものと全く同じです。 またこのPos 関数を使ってPos X、Pos Y, Pos Z も同様に簡単に作成することができます。

- 21 -

Page 23: Robo産業ロボットⅡマニュアル関数Pos は前回の2軸ロボットで使用したものと全く同じです。 またこのPos 関数を使ってPos X、Pos Y, Pos Z も同様に簡単に作成することができます。

- 22 -

A から C へと移し変え,C から A へと並べたものを戻すのであれば メインプログラムは次のようになります。

つぎにアームの移動先は次の PosXY で決めることが出来ますが 位置データーはデーター列を表す List に記載されています。 指定されたインデックス番号にあるデーターが読み込まれて指定位置へ グリッパーが移動します。

Page 24: Robo産業ロボットⅡマニュアル関数Pos は前回の2軸ロボットで使用したものと全く同じです。 またこのPos 関数を使ってPos X、Pos Y, Pos Z も同様に簡単に作成することができます。

- 23 -

移動地点はリストのデーターを見れば分かるように A 地点(移動元) (x、y)=(75,82) B 地点(作業用) (x、y)=(100,37) C 地点(移動先) (x、y)=(128,52)

つぎにアームの上下動およ

びグリッパーの開閉は左の サブプログラム「Zug」で 制御しますがグリッパーの 開閉は簡単ですが 移動先とグリッパーの高さ

の関係を把握しておく必要

があります。 上下動は リミット Z=0 上段③ Z=96 中段② Z=132 下段① Z=168 高さの初期リストデーター

は 96,204,204 まずT1=0でリストの最初の

デ ー タ ー が 読 み 出 さ れ

Z=96、 つぎにリミットに 当たるまで戻るので

Z=0、 96に 36が加算されて 132が

代入され、 データーは 132、204、204に

T2=2でリストの3番目のデーターが読み込まれるが36減算されて168になり Z=168に、

またリミットに当たるまで戻るので Z=0 これで第 1 段階終了。

Page 25: Robo産業ロボットⅡマニュアル関数Pos は前回の2軸ロボットで使用したものと全く同じです。 またこのPos 関数を使ってPos X、Pos Y, Pos Z も同様に簡単に作成することができます。

- 24 -

以下 PosZ の値は次のように変わっていきます。

円筒を 4 個あるいは 5 個にした場合はこの Zug で位置データーをどのように変えればいい

のでしょうか。トライしてみてください。 以上で Robo 産業ロボットⅡのプログラムの説明は終了しますが 不十分なところもありますので、まずプログラミングガイドをよく読んでいただき、 Robopro の使い方およびプログラム作成方法を学習してください。 またその際他のキットのサンプルプログラムも参照してください。 参考サイト: フィッシャーのファンクラブを主宰しソフト開発で尽力されている Mueller 氏の 次のサイトは参考になりますのでご覧下さい。 http://www.ftcomputing.de/roboproe.htm Robopro.ZIP にいろいろなソースプログラムが収録されています。

Page 26: Robo産業ロボットⅡマニュアル関数Pos は前回の2軸ロボットで使用したものと全く同じです。 またこのPos 関数を使ってPos X、Pos Y, Pos Z も同様に簡単に作成することができます。

- 25 -

Robo 産業ロボットⅡマニュアル この度は産業ロボットⅡをお買い求めいただき厚く御礼申し上げます。 万一部品の不足や不良部品等がありましたら発売元までご連絡下さい。 またプログラム等で分からないことがありましたらメール等で発売元まで ご連絡いただきましたら対応いたします。 製造元:Fischertechnik GmbH Weinhalde 14-18 D-72178 Waldachtal Germany

輸入発売元:株式会社のもと 〒531-0077 大阪市北区大淀北1-1-11

電話 06-6458-6831 email: [email protected] http://www.kknomoto.co.jp