一般的に産業用ロボットは移動させたい位置を記憶(教示)させて、その位置へどのようにして移動するか指示(制御プログラム)するティーチングプレイバック方式で動作させます。制御プログラムはロボットの種類やメーカ、業界ごとに詳細は異なりますが、大別すると次のパターンに分ける事ができます。
1.位置データと命令データが独立しており、移動命令や入出力の処理、繰り返しや条件分岐などの命令を組み合わせプログラムを記述する方法。各メーカで少しづつ記述方法は違いますが、Basic言語やC言語と同じような記述方法が主流です。
2.ティーチングを行いながらその場所にどのように動作するかを指定する方法。移動する位置にロボットを移動させ、その場所に移動する速度や入出力の条件などを設定して記憶させます。
タイムチャート(タイミングチャートとも言う)とは横軸に時間、縦軸に動作または信号のオン/オフを記述した図を言います。
停止もしくはオフしている状態と動作もしくはオンしている状態を線で表現したものです。機械のシリンダやモータなどの動作を時間に沿って表現する場合、加減速時間があり、それを考慮して斜めの線を記述することがあります。
ロボットプログラムは一般的にロボットの動きに沿った記述が行われます。
「Aの位置へ移動する」→「掴む」→「Bの位置へ移動する」→「離す」→「元の位置へ戻る」といった動作の順番に記号を記述します。
このような実際の動きの順番やプログラムの動作順序などを記号を使用し視覚的に分かりやすくした図で表現します。これをフローチャート図といいます。フローチャート図は動作や分岐判断を表す図記号とそれらの動作の流れを表す矢印で記述されます。
フローチャート図はロボットや装置の動作の順番を記述する際だけでなく情報処理の分野や事務などの作業フローを記述する際にも使用されます。
記号については「JIS X 0121:1986情報処理流れ図・プログラム網図・システム資源図記号」で規定されています。
ロボットは使用目的に応じて様々な処理を行います。
ピック&プレース
特定の場所からワークを取り、指定された場所に移載し置く一連の動作。
外部入力による処理
センサやPLCからの信号をロボットは入力信号として受け取り、プログラムにてその信号のオンかオフで動作を変化させます。
出力信号による外部制御
モータやPLCなどをロボットの外部出力信号に接続し、ロボットのプログラムからその出力信号のオン/オフを制御することで外部の機器を動作させます。
変数による演算
ロボットのプログラム中で四則演算や論理演算を行いその答えからロボットの動作回数や動作ポジションを変更することが可能です。入出力信号などと連携し、外部の状況に応じロボットの動作を変化させることが可能です。
外部機器からのデータ処理
外部機器からの入力信号をロボットプログラムが数字や文字のデータとして受け取り演算することができます。そのデータをロボットの座標データとして処理をしたり、位置の補正値とすることが可能です。
ロボットのプログラムを新規で作成したり、既存のプログラムを編集するには二通りの方法があります。
1.ティーチングボックスから入力、編集を行う
入力方法はメーカにより大きく違う場合があります。キーにより1文字ずつ入力する場合と画面に表示されるコマンドを選択する方法があります。
2.パソコンのソフトウェアを使用しプログロムの作成や編集を行う
最近で は同じソフトウェアでシミュレーションもできるようになっており、ロボットがなくてもプログラムの作成と動作確認が可能です。編集ソフトウェアはロボットメーカがそれぞれ独自の物を出しています。ロボットのコントローラとUSBやイーサネットで接続し、プログラムや位置データのダウンロード(パソコンかロボットのコントローラに送る)したりアップロード(ロボットのコントローラからパソコンに送ること)を行います。
ロボットのコントローラでは複数のプログラムを同時に実行することが可能です。同時に同じ関節のモータを複数のプログラムで制御することはできないが、モータを動作させるプログラムとセンサを常に監視するプログラム、ロボットの動作とセンサを監視し、その状況に合わせて外部の機器を動作させるプログラムなど、複数のプログラムで別々の処理をさせ、効率的に周辺機器とロボットを動作させるプログラムを作ることが可能です。
ロボットのプログラムの命令には次のようなものがあります。
移動命令
指定した位置へ移動させる命令。直線補間や円弧補間で移動します。
速度命令
移動する速度を指定します。実際の速度(mm/分)や指定の速度のパーセンテージ(%)で指定します。また、加減速を指定する命令も用意されています。加減速を調整することでタクトや停止位置精度に影響をおよぼします。
入出力命令
外部と信号やデータの受け渡しを行う命令。信 号 のオン/オフや RS-232C、イーサネットなどでのデータ通信を行う命令などもあります。
繰り返し処理命令
同じ処理を指定した回数、または無限に繰り返す命令。
分岐、ジャンプ命令
指定した条件の結果を元に、次の動作を選択し実行します。検査後不良品を捨てるなどの処理を行います。
演算命令
四則演算や三角関数などの演算以外に位置データを演算する命令など、ロボット特有の演算命令も用意されています。
その他専用命令
溶接ロボットやパレタイズングロボットなどある作業を専門とするロボットには、その作業に特化した命令が用意されています。
各ロボットメーカでロボットを動作させるプログラム言語が異なっています。そこでロボット工業会が中心になって標準言 語が作成されました。これを「SLIM(Standard Language for Industrial Manipulators)言語といいます。
1992年にJISに制定されましたが、各ロボットメーカが新たに開発する機能に追従できず、依然としてそれぞれのメーカ独自のプログラム言語が使用されています。SLIM言語はBASIC言語に似た記述方法であり、SLIM言語をベースに独自の命令を追加しているメーカもあります。
現在、ほとんどの産業用ロボットは位置データやプログラムデータをバッテリーで記憶させています。バッテリーでの保持期間は1年間としているメーカが多く、バッテリーがなくなってしまった場合データが消える、もしくは部分的に消えてしまう場合があります。その際は全ての調整を再度やり直す必要があります。バッテリーの交換はこまめに行うことを推奨します。