周辺機器設定 ============= .. toctree:: :maxdepth: 5 グリッパー周辺機器設定 ------------------------------ グリッパープログラムティーチング手順 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ **Step1**:「初期設定」->「周辺機器」->「末端ツール」メニューで、「適応デバイス」をクリックし、末端周辺機器設定画面に入ります。デバイスタイプで「グリッパーデバイス」を選択します。グリッパーの設定情報は、グリッパーメーカー、グリッパータイプ、ソフトウェアバージョン、マウント位置に分かれています。ユーザーは実際の生産ニーズに応じて、対応するグリッパー情報を設定できます。設定を変更する必要がある場合は、対応するグリッパー番号を選択し、「クリア」ボタンをクリックして対応するボタンをクリアし、再度ニーズに応じて設定します。 .. figure:: robot_peripherals/001.png :align: center :width: 4in .. centered:: 図表 8.1‑1 グリッパー設定 .. important:: 設定クリアをクリックする前に、対応するグリッパーは未アクティブ状態である必要があります。 **Step2**:グリッパー設定が完了したら、ユーザーはページ下部のグリッパー情報表で対応するグリッパー情報を確認できます。設定ミスを発見した場合は、「クリア」ボタンをクリックしてグリッパーを再設定できます。 .. figure:: robot_peripherals/002.png :align: center :width: 4in .. centered:: 図表 8.1‑2 グリッパー設定情報 **Step3**:設定が完了したグリッパーを選択し、「リセット」ボタンをクリックします。ページにコマンド送信成功が表示されたら、「アクティブ化」ボタンをクリックします。グリッパー情報表のアクティブ状態を確認し、アクティブ化が成功したか判断します。 .. important:: グリッパーをアクティブ化する際、グリッパーに把持物があってはなりません。 **Step4**:プログラムティーチングコマンド画面で「Gripper」コマンドを選択します。グリッパーコマンド画面では、ユーザーは制御したいグリッパー番号(設定が完了しアクティブ化されたグリッパー)を選択し、対応する開閉状態、開閉速度、開閉トルク、およびグリッパー動作待機の最大時間を設定できます。設定完了後、「追加」をクリックして適用します。また、グリッパーのアクティブ化とリセットコマンドを追加して、プログラム実行時にグリッパーをアクティブ化/リセットすることもできます。 .. figure:: robot_peripherals/003.png :align: center :width: 6in .. centered:: 図表 8.1‑3 グリッパーコマンド編集 グリッパープログラムティーチング ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. list-table:: :widths: 15 40 100 :header-rows: 1 * - 番号 - コマンド形式 - コメント * - 1 - PTP(template2,100,-1,0) - #グリップ待機点 * - 2 - PTP(template1,100,-1,0) - #グリップ点 * - 3 - MoveGripper(1,255,255,0,1000,0) - #グリッパー閉じる * - 4 - PTP(template2,100,-1,0) - / * - 5 - PTP(template3,100,-1,0) - #リリース待機点 * - 6 - PTP(template3,100,-1,0) - #リリース点 * - 7 - MoveGripper(1,0,255,0,1000,0) - #グリッパー開く Lua末端オープンプロトコル設定 ------------------------------------- 概要 ~~~~~~~~ Luaオープンプロトコルは、フォーストルクセンサー、単一グリッパー、複数グリッパー、フォーストルクセンサーとグリッパーの併用などをサポートします。 操作手順 ~~~~~~~~~~~ **Step1**:ツールアプリケーション->システムアップグレード画面に移動し、末端ファームウェア .bin ファイルを選択し、末端ファームウェアをアップグレードします。 .. important:: まず、末端ファームウェアバージョン FV2.010.06 以降のソフトウェアバージョンが適合しているか確認する必要があります。バージョンが適合しない場合は、対応するソフトウェアファームウェアをアップグレードします。適合する場合はファームウェアアップグレードは不要です。 末端ファームウェアアップグレードパッケージをアップロードする前に、bootモードに入る必要があります。 .. figure:: robot_peripherals/004.png :align: center :width: 6in .. centered:: 図表 8.2‑1 末端ファームウェアのアップグレード **Step2**:周辺機器->末端ツール->オープンプロトコル->末端通信プロトコル画面に移動し、Lua末端オープンプロトコルをアップロードします。アップロードするLua末端オープンプロトコルを選択し、アップロード操作を実行します。 .. important:: 末端プロトコルをアップロードする前に、bootモードに入る必要があります。同時に、ファイル名は `AXLE_LUA_` で始まる必要があります。 .. figure:: robot_peripherals/005.png :align: center :width: 6in .. centered:: 図表 8.2‑2 Lua末端オープンプロトコルのアップロード **Step3**:末端通信パラメータを設定します。通信パラメータには、ボーレート、データビット、ストップビットなどが含まれます。設定完了後、「設定」ボタンをクリックします。 .. figure:: robot_peripherals/006.png :align: center :width: 6in .. centered:: 図表 8.2‑3 末端通信パラメータの設定 末端通信の詳細パラメータは以下の通りです。 - **ボーレート**:1-9600、2-14400、3-19200、4-38400、5-56000、6-67600、7-115200、8-128000 をサポート。末端 Rs485 ドライバーチップは低速485のため、ボーレートは 200k 以下である必要があります。 - **データビット**:データビットは (8,9) をサポート。現在一般的に使用されるのは 8 です。 - **ストップビット**:1-1、2-0.5、3-2、4-1.5。現在一般的に使用されるのは 1 です。 - **パリティ**:0-None、1-Odd、2-Even。現在一般的に使用されるのは 0 です。 - **タイムアウト時間**:1~1000ms。この値は周辺機器に合わせて適切な時間パラメータを設定する必要があります。 - **タイムアウト回数**:1~10。主にタイムアウト再送信を行い、偶発的な異常を減らしてユーザー体験を向上させます。 - **周期コマンド時間間隔**:1~1000ms。主に周期コマンドの毎回の送信間隔に使用されます。 **Step4**:末端Luaを有効にし、「開始」ボタンをクリックします。 .. figure:: robot_peripherals/007.png :align: center :width: 4in .. centered:: 図表 8.2‑4 末端Lua有効化 Luaファイルに異常が発生した場合、「末端Luaファイル異常」という警告が表示され、「復旧しない/復旧する」処理が可能です。Lua有効化ボタンをオフにすると、警告表示は閉じます。 .. figure:: robot_peripherals/008.png :align: center :width: 6in .. centered:: 図表 8.2‑5 Luaファイル異常 グリッパーデバイスタイプを選択します。 **「状態モニタリング」を開く**:右側のグリッパーステータスバーに、グリッパーの運転速度、トルク、位置などの状態情報がリアルタイム表示されます。 **「状態モニタリング」を閉じる**:右側のグリッパーデータステータスバーは閉じます。 .. figure:: robot_peripherals/009.png :align: center :width: 6in .. centered:: 図表 8.2‑6 状態モニタリング 末端周辺機器設定 ------------------------- 力センサー ~~~~~~~~~~~~~~~~ デバイスタイプで力センサーを選択し、力センサーを有効にします。設定済みデバイスに力センサーが表示されます。FT画面をクリックして、力センサーデータを照会します。 .. figure:: robot_peripherals/010.png :align: center :width: 6in .. centered:: 図表 8.3‑1 力センサーの有効化 グリッパー ~~~~~~~~~~~ **Step1**:デバイスタイプでグリッパーを選択し、グリッパーを有効にします。グリッパーIDを選択し、グリッパーに適合するファンクションコードをチェックし、「設定」をクリックします。設定済みデバイスにグリッパーのIDとファンクションコードが表示されます。 .. figure:: robot_peripherals/011.png :align: center :width: 4in .. centered:: 図表 8.3‑2 グリッパーの設定 .. note:: 末端オープン機能は現在、グリッパーデバイスアドレスの範囲を 1~8 までサポートしています。使用前に、グリッパーメーカーの上位機でグリッパーデバイスアドレスを調整してください。 ファンクションコードのチェックは、グリッパーメーカー提供の製品説明書でグリッパーに適合する機能を確認し、末端Luaファンクションコードと対応させる必要があります。詳細は『末端Lua適応グリッパー説明マニュアル』を参照してください。 **Step2**:グリッパーIDを選択し、リセット -> アクティブ化 の順に実行します。グリッパーが初期化されます。具体的な初期化状況はグリッパーメーカー提供の製品説明書を参照してください。 .. figure:: robot_peripherals/012.png :align: center :width: 4in .. centered:: 図表 8.3‑3 グリッパーのアクティブ化 **Step3**:ティーチングプログラム -> プログラム作成 に移動し、グリッパー運動コマンドを追加します。 .. figure:: robot_peripherals/013.png :align: center :width: 6in .. centered:: 図表 8.3‑4 グリッパー運動コマンドの追加 .. figure:: robot_peripherals/014.png :align: center :width: 6in .. centered:: 図表 8.3‑5 グリッパー運動コマンド例 複数のグリッパー ~~~~~~~~~~~~~~~~~~~~~~~ アクティブ化と運動制御はグリッパーの手順を参照してください。 .. figure:: robot_peripherals/015.png :align: center :width: 4in .. centered:: 図表 8.3‑6 複数グリッパーの設定 .. note:: 末端オープン機能は現在、グリッパーデバイスアドレスの範囲を 1~8 までサポートしています。使用前に、グリッパーメーカーの上位機でグリッパーデバイスアドレスを調整してください。 力センサー及びグリッパー ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 設定と有効化は力センサーとグリッパーの手順を参照してください。 .. figure:: robot_peripherals/016.png :align: center :width: 4in .. centered:: 図表 8.3‑7 力センサー及びグリッパーの設定 回転グリッパー ~~~~~~~~~~~~~~~~~~~ **Step1**:デバイスタイプでグリッパーを選択し、グリッパーを有効にします。グリッパーIDを選択し、グリッパーに適合するファンクションコードをチェックし、「設定」をクリックします。設定済みデバイスにグリッパーのIDとファンクションコードが表示されます。 .. figure:: robot_peripherals/207.png :align: center :width: 4in .. centered:: 図表 8.3‑8 グリッパーとファンクションコードの設定 .. note:: ファンクションコードのチェックは、グリッパーメーカー提供の製品説明書でグリッパーに適合する機能を確認し、末端Luaファンクションコードと対応させる必要があります。詳細は『FR05-末端全周辺機器プロトコル-V2.5-20241101.xlsx』を参照してください。 **Step2**:グリッパーIDを選択し、リセット -> アクティブ化 の順に実行します。グリッパーが初期化されます。具体的な初期化状況はグリッパーメーカー提供の製品説明書を参照してください。 .. figure:: robot_peripherals/208.png :align: center :width: 4in .. centered:: 図表 8.3‑9 グリッパーのアクティブ化 **Step3**:ティーチングプログラム -> プログラム作成 に移動し、グリッパー運動コマンドを追加します。 .. figure:: robot_peripherals/209.png :align: center :width: 6in .. centered:: 図表 8.3‑10 回転グリッパー運動コマンドの追加 .. figure:: robot_peripherals/210.png :align: center :width: 6in .. centered:: 図表 8.3‑11 回転グリッパー運動コマンド例 .. note:: 回転数は絶対回転数です。正転の最大回転数は90回、逆転の最大回転数は90回です。回転後はリセット処理が必要です。 スプレーガン周辺機器設定 -------------------------- スプレーガン周辺機器設定手順 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ **Step1**:「初期設定」->「周辺機器」メニューで、「スプレーガン」をクリックし、スプレーガン設定画面に入ります。 ユーザーは「スプレー機能」のワンクリック設定ボタンを使用して、スプレーに必要なDOを迅速に設定できます(デフォルト設定では DO10 がスプレー開始/停止、DO11 がスプレーガン清掃です)。 ユーザーは自身のニーズに応じて、「初期設定」->「基本」->「I/O設定」でDOをカスタマイズ設定することもできます。 .. important:: スプレー機能を使用する前に、まず対応するツール座標系を確立し、プログラムティーチング時に確立したツール座標系を適用する必要があります。 **Step2**:設定が完了したら、「スプレー開始」、「スプレー停止」、「ガン清掃開始」、「ガン清掃停止」の4つのボタンをクリックし、スプレーガンのデバッグを行います。 .. figure:: robot_peripherals/017.png :align: center :width: 4in .. centered:: 図表 8.4‑1 スプレーガン設定 **Step3**:プログラム作成コマンド画面で「spray」コマンドを選択します。具体的なプログラムティーチングのニーズに応じて、適切な場所に「スプレー開始」、「スプレー停止」、「ガン清掃開始」、「ガン清掃停止」の4つのコマンドを追加適用します。 .. figure:: robot_peripherals/018.png :align: center :width: 6in .. centered:: 図表 8.4‑2 スプレーガンコマンド編集 スプレーガンプログラムティーチング ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. list-table:: :widths: 15 40 100 :header-rows: 1 * - 番号 - コマンド形式 - コメント * - 1 - Lin(template1,100,-1,0,0) - #スプレー開始点 * - 2 - SprayStart() - #スプレー開始 * - 3 - Lin(template2,100,-1,0,0) - #スプレー経路 * - 4 - Lin(template3,100,-1,0,0) - #スプレー停止点 * - 5 - SprayStop() - #スプレー停止 * - 6 - Lin(template4,100,-1,0,0) - #ガン清掃点 * - 7 - PowerCleanStart() - #ガン清掃開始 * - 8 - WaitTime(5000) - #ガン清掃時間 ms * - 9 - PowerCleanStop() - #ガン清掃停止 溶接機周辺機器設定 -------------------------- 協働ロボットに溶接トーチを搭載して溶接作業を行うことで、溶接効率と溶接品質を大幅に向上させることができます。FAIRINO協働ロボットは、「コントローラーIO」または「デジタル通信プロトコル」の2つの方法で溶接制御を行うことができます。 **コントローラーIO**:ロボットは制御箱のアナログ出力(0-10V)を設定して溶接電流と溶接電圧の大きさを制御し、制御箱のデジタル出力で溶接アーク開始、ワイヤ送給、ガス供給を制御し、制御箱のデジタル入力で溶接機準備完了、アーク開始成功などの信号入力を受け取ります。 **デジタル通信プロトコル**:ロボットはUDPでPLCと通信し、PLCはさらにCANOpenバスなどのプロトコルで溶接機と通信し、溶接電圧、電流、および溶接機のアーク開始、ワイヤ送給、ガス供給などの操作を制御します(ロボットUDP通信プロトコルの内容は付属書Iを参照)。 協働ロボットによる溶接制御には、主に以下の手順が含まれます。①溶接トーチの取り付けと信号配線、②溶接機パラメータ設定、③溶接制御プログラムの作成。 溶接トーチ取り付け ~~~~~~~~~~~~~~~~~~~~~ 図1のように、溶接トーチはアダプタプレートを介してロボットの末端に取り付けられ、溶接トーチケーブルはマニピュレータアームに固定する必要があります。 .. figure:: robot_peripherals/019.png :align: center :width: 3in .. centered:: 図表 8.5‑1 溶接トーチのロボット末端への取り付け 溶接トーチの取り付けが完了したら、六点法で溶接トーチのツール座標系をキャリブレーションし、現在のツール座標系として適用します(図2)。溶接トーチのツール座標系のキャリブレーション精度は、実際の溶接精度に影響します。 .. figure:: robot_peripherals/020.png :align: center :width: 4in .. centered:: 図表 8.5-2 ロボットツール座標系のキャリブレーションと適用 溶接機パラメータ設定 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 協働ロボットは、「コントローラーIO」信号または「デジタル通信プロトコル」を介して溶接プロセスを制御できます。2つの方式の設定操作には、主に以下の2つの違いがあります。 ①「コントローラーIO」を使用する場合、実際の制御溶接電流・電圧と制御箱のアナログ出力値との間の対応関係を設定する必要があります。 ②「デジタル通信プロトコル」を使用する場合、通信パラメータを設定する必要があります。 「コントローラーIO」溶接制御設定 +++++++++++++++++++++++++++++++++++ 「初期設定」->「周辺機器」メニューで、「溶接機」をクリックし、溶接機設定画面に入ります。下図に示します。 .. figure:: robot_peripherals/021.png :align: center :width: 4in .. centered:: 図表 8.5-3 溶接機設定を開く 下図に示すように、制御タイプとして「制御箱I/O」を選択します。 .. figure:: robot_peripherals/022.png :align: center :width: 4in .. centered:: 図表 8.5-4 制御タイプの選択 溶接IO信号設定 **************************** 下図に示すように、溶接機状態信号のDI入力ポートと溶接機制御信号のDO出力ポートを選択し、「設定」ボタンをクリックします。各信号の意味は以下の通りです。 .. figure:: robot_peripherals/023.png :align: center :width: 4in .. centered:: 図表 8.5-5 溶接機信号ポートの設定 **溶接機準備完了**:溶接機が溶接作業を開始できる準備が整ったとき、溶接機はこの信号をロボットに出力します。 溶接機の故障などにより準備が整っていない場合、溶接機はこの信号をロボットに入力しません。その場合、ロボットのWebApp右上隅に「溶接機が準備できていません」と表示されます。お使いの溶接機に溶接機準備完了信号がない場合は、この項目を「なし」に設定できます。 .. figure:: robot_peripherals/024.png :align: center :width: 3in .. centered:: 図表 8.5-6 溶接機未準備エラー .. figure:: robot_peripherals/025.png :align: center :width: 4in .. centered:: 図表 8.5-7 溶接機準備を「なし」に設定 **アーク開始成功**:溶接機のアークが正常に開始されました。ロボットが溶接機にアーク開始信号を出力した後、溶接機からのアーク開始成功信号を待ちます。設定されたタイムアウト時間内にロボットが溶接機のアーク開始成功信号を検出しない場合、ロボットは「アーク開始タイムアウト」エラーを報告します。 ロボットの溶接機能を使用する際にアーク開始成功信号を設定しなくても溶接は可能ですが、ロボットは「アーク開始成功DIが設定されていません」という警告を報告します。お使いの溶接機にアーク開始成功信号の出力がある場合は、より安全な溶接のためにこの信号を設定することをお勧めします。 .. figure:: robot_peripherals/026.png :align: center :width: 3in .. centered:: 図表 8.5-8 アーク開始タイムアウトエラー .. figure:: robot_peripherals/027.png :align: center :width: 3in .. centered:: 図表 8.5-9 アーク開始成功DI未設定警告 **溶接中断復旧**:ロボットの溶接中にアークが予期せず中断した場合、またはオペレーターが能動的に溶接を一時停止した場合に溶接中断がトリガーされます。溶接中断後、外部からロボットへのこの信号が無効から有効に変わると、ロボットは元の中断位置から自動的に溶接を復旧します。 **溶接中断終了**:ロボットの溶接中にアークが予期せず中断した場合、またはオペレーターが能動的に溶接を一時停止した場合に溶接中断がトリガーされます。溶接中断後、外部からロボットへのこの信号が無効から有効に変わると、ロボットは溶接を終了します。溶接終了後は溶接を復旧できません。 **溶接機アーク開始**:ロボットが溶接機のアーク開始を制御するDO出力ポートです。ロボットプログラムがアーク開始コマンドを実行すると、溶接機アーク開始に対応するDO出力ポートが自動的に有効になります。 **ガス検出**:ロボットが溶接機のガス供給を制御するDO出力ポートです。ロボットが溶接ガス供給コマンドを実行すると、ガス供給に対応するDO出力ポートが自動的に有効になります。 **正送給**:ロボットが溶接機の正送給を制御するDO出力ポートです。ロボットが正送給コマンドを実行すると、正送給に対応するDO出力ポートが自動的に有効になります。 **逆送給**:ロボットが溶接機の逆送給を制御するDO出力ポートです。ロボットが逆送給コマンドを実行すると、逆送給に対応するDO出力ポートが自動的に有効になります。 溶接プロセスパラメータ設定 **************************** 下図に示すように、溶接設定ページで「溶接プロセスパラメータ」欄を見つけます。協働ロボットは0~99の合計100組の溶接プロセスパラメータを提供します。プロセス番号0は溶接プロセスカーブを使用しないことを示し、プロセス番号1-99は溶接プロセスカーブを使用します。 .. figure:: robot_peripherals/028.png :align: center :width: 4in .. centered:: 図表 8.5-10 溶接プロセスパラメータ設定 溶接プロセスカーブを使用する場合、例として溶接プロセス番号1を選択し、アーク開始電流からアーク終了時間までのパラメータを図8のように順に入力し、「設定」ボタンをクリックします。このプロセスパラメータが表す実際の溶接プロセスは以下の通りです。 ①溶接電流200A、電圧23Vを設定します。 ②アーク開始を実行し、アーク開始成功を待ちます。 ③アーク開始成功後、アークを500ms間保持します(アーク開始時間、ロボットは運動しません)。 ④溶接電流150A、溶接電圧21Vを設定し、ロボットが運動を開始して溶接を行います。 ⑤溶接終点に達したら、溶接電流を100A、溶接電圧を19Vに設定します(アーク終了電流、アーク終了電圧)。 ⑥アーク終了電流、電圧の設定完了後、500ms間アークを燃焼させ(ロボットは運動しません)、最後にアークを消します。 溶接プロセスカーブを使用しない場合、すなわち溶接プロセスパラメータ番号0を選択した場合、図11のように、溶接プロセスは以下の通りです。 ①溶接電流と溶接電圧を設定します。 ②ロボットが溶接機のアーク開始を制御し、アーク開始成功を待ちます。 ③アーク開始成功後、ロボットは運動を開始して溶接を行います。 ④ロボットが溶接終点に達したら、直ちにアークを消します。 .. figure:: robot_peripherals/029.png :align: center :width: 4in .. centered:: 図表 8.5-11 溶接プロセスカーブを使用しない 溶接電流・電圧とアナログ出力関係図の設定 ********************************************** 協働ロボットの溶接制御タイプとして「コントローラーIO」を選択した場合、制御箱のアナログ出力の大きさで溶接電流と溶接電圧の値を制御します(制御箱のアナログ出力電圧範囲は0~10Vです)。このとき、制御箱のアナログ出力値と実際の溶接電流・電圧値の線形対応関係を設定する必要があります。 図12のように、溶接機設定ページで「アナログ電流電圧関係図」を見つけます。ここで「A-V」は溶接電流と制御箱出力アナログ電圧との対応関係を示し、「V-V」は溶接電圧と制御箱出力アナログ電圧との対応関係を示します。 「A-V」を選択し、溶接電流範囲0-1000A、アナログ出力電圧0-10V、出力AOを「Ctrl-AO0」(溶接電流制御アナログ出力ポートをAO0)と入力し、「設定」ボタンをクリックします。このパラメータでは、制御箱がアナログ電圧1.5Vを出力するとき、対応する溶接電流は150Aです。 .. figure:: robot_peripherals/030.png :align: center :width: 4in .. centered:: 図表 8.5-12 溶接電流と出力アナログの対応関係設定 図13のように、「V-V」をクリックして溶接電圧と制御箱アナログ出力電圧との対応関係を設定します。溶接電圧範囲0-60V、アナログ出力電圧値0-10V、出力AOを「Ctrl-AO1」(溶接電圧制御アナログ出力ポートをAO1)と入力し、「設定」ボタンをクリックします。このとき、制御箱のAO1アナログ出力が3.5Vの場合、実際の制御溶接電圧は21Vになります。 .. figure:: robot_peripherals/031.png :align: center :width: 4in .. centered:: 図表 8.5-13 溶接電圧と出力アナログの対応関係設定 溶接機デバッグ ****************** 図14のように、溶接機設定ページで「溶接機デバッグ」を見つけ、プロセス番号1を選択し、タイムアウト時間を1000msと入力し、「ガス供給」をクリックすると、ロボットは溶接機に保護ガスの供給を開始するよう制御します。「ガス停止」ボタンをクリックすると、ロボットは溶接機に保護ガスの供給を停止するよう制御します。その他のボタン(「アーク開始」、「正送給」、「逆送給」など)の操作方法も同様ですので、説明は省略します。 .. figure:: robot_peripherals/032.png :align: center :width: 4in .. centered:: 図表 8.5-14 溶接機デバッグ 「デジタル通信プロトコル」溶接制御設定 +++++++++++++++++++++++++++++++++++++++++++++++++ ロボットが「デジタル通信プロトコル」を介して溶接制御を行うことは、本質的にはロボットとPLCがUDP通信を行うことです。ロボットはUDP通信を介して、アーク開始、ワイヤ送給、ガス供給、電流、電圧などの制御データをPLCに送信し、PLC側はさらにCANOpenバス(または他の方法)を介して溶接機を制御します。同時に、PLC側は実際の溶接電流・電圧、アーク開始成功信号を収集してロボットにフィードバックします(ロボットUDP通信プロトコルの内容は付属書Iを参照)。 「初期設定」->「周辺機器」メニューで、「溶接機」をクリックし、溶接機設定画面に入ります。下図に示します。 .. figure:: robot_peripherals/021.png :align: center :width: 4in .. centered:: 図表 8.5-15 溶接機設定を開く 図16のように、制御タイプとして「数字通信协议」を選択します。ロボットとPLCはUDP通信を行うため、UDP通信パラメータを設定する必要があります。各パラメータの意味は以下の通りです。 **IPアドレス**:UDP通信するPLC側のIPアドレス。 **ポート番号**:PLC側のUDP通信ポート番号。 **通信周期**:ロボットとPLCがUDP通信を行う周期。デフォルトは2ms。 **パケットロス検出周期、パケットロス回数**:パケットロス検出周期内のパケットロス数が設定値を超えると、ロボットは「UDP通信パケットロス異常」エラーを報告し、同時に通信を自動切断します。 **通信中断確認時間**:ロボットはこの時間内に完全な1フレームのPLCフィードバックデータパケットを受信しない場合、「UDP通信中断」エラーアラームを報告し、同時にUDP通信を切断します。 **電源断再起動時の自動再接続**:ロボットが電源断再起動を検出した後、自動的に再接続を復旧するかどうか。 **通信中断時の自動再接続**:ロボットがUDP通信中断を検出した後、自動的に再接続を復旧するかどうか。 **再接続周期、再接続回数**:UDP通信中断時の自動再接続を有効にし、UDP通信中断を検出した後、ロボットは設定された周期で再接続を試みます。再接続回数が最大設定値に達しても接続に成功しない場合、ロボットは「UDP通信中断」エラーアラームを報告し、同時にUDP通信を切断します。 上記パラメータの設定が完了したら、「設定」ボタンと「読み込み」ボタンを順にクリックします。 .. figure:: robot_peripherals/033.png :align: center :width: 4in .. centered:: 図表 8.5-16 制御タイプの選択 溶接IO信号設定 **************************** 図17のように、溶接機状態信号のDI入力ポートと溶接機制御信号のDO出力ポートを選択し、「設定」ボタンをクリックします。各信号の意味は以下の通りです。 .. figure:: robot_peripherals/034.png :align: center :width: 4in .. centered:: 図表 8.5-17 溶接機信号ポートの設定 **溶接機準備完了**:溶接機が溶接作業を開始できる準備が整ったとき、溶接機はこの信号をロボットに出力します。 溶接機の故障などにより準備が整っていない場合、溶接機はこの信号をロボットに入力しません。その場合、ロボットのWebApp右上隅に「溶接機が準備できていません」と表示されます(図18)。お使いの溶接機に溶接機準備完了信号がない場合は、この項目を「なし」に設定できます(図19)。 .. figure:: robot_peripherals/024.png :align: center :width: 3in .. centered:: 図表 8.5-18 溶接機未準備エラー .. figure:: robot_peripherals/025.png :align: center :width: 4in .. centered:: 図表 8.5-19 溶接機準備を「なし」に設定 **アーク開始成功**:溶接機のアークが正常に開始されました。ロボットが溶接機にアーク開始信号を出力した後、溶接機からのアーク開始成功信号を待ちます。設定されたタイムアウト時間内にロボットが溶接機のアーク開始成功信号を検出しない場合、ロボットは「アーク開始タイムアウト」エラーを報告します(図20)。 ロボットの溶接機能を使用する際にアーク開始成功信号を設定しなくても溶接は可能ですが、ロボットは「アーク開始成功DIが設定されていません」という警告を報告します(図21)。お使いの溶接機にアーク開始成功信号の出力がある場合は、より安全な溶接のためにこの信号を設定することをお勧めします。 .. figure:: robot_peripherals/026.png :align: center :width: 3in .. centered:: 図表 8.5-20 アーク開始タイムアウトエラー .. figure:: robot_peripherals/027.png :align: center :width: 3in .. centered:: 図表 8.5-21 アーク開始成功DI未設定エラー **溶接中断復旧**:ロボットの溶接中にアークが予期せず中断した場合、またはオペレーターが能動的に溶接を一時停止した場合に溶接中断がトリガーされます。溶接中断後、外部からロボットへのこの信号が無効から有効に変わると、ロボットは元の中断位置から自動的に溶接を復旧します。 **溶接中断終了**:ロボットの溶接中にアークが予期せず中断した場合、またはオペレーターが能動的に溶接を一時停止した場合に溶接中断がトリガーされます。溶接中断後、外部からロボットへのこの信号が無効から有効に変わると、ロボットは溶接を終了します。溶接終了後は溶接を復旧できません。 **溶接機アーク開始**:ロボットが溶接機のアーク開始を制御するDO出力ポートです。ロボットプログラムがアーク開始コマンドを実行すると、溶接機アーク開始に対応するDO出力ポートが自動的に有効になります。 **ガス検出**:ロボットが溶接機のガス供給を制御するDO出力ポートです。ロボットが溶接ガス供給コマンドを実行すると、ガス供給に対応するDO出力ポートが自動的に有効になります。 **正送給**:ロボットが溶接機の正送給を制御するDO出力ポートです。ロボットが正送給コマンドを実行すると、正送給に対応するDO出力ポートが自動的に有効になります。 **逆送給**:ロボットが溶接機の逆送給を制御するDO出力ポートです。ロボットが逆送給コマンドを実行すると、逆送給に対応するDO出力ポートが自動的に有効になります。 溶接プロセスパラメータ設定 **************************** 図22のように、溶接設定ページで「溶接プロセスパラメータ」欄を見つけます。協働ロボットは0~99の合計100組の溶接プロセスパラメータを提供します。プロセス番号0は溶接プロセスカーブを使用しないことを示し、プロセス番号1-99は溶接プロセスカーブを使用します。 .. figure:: robot_peripherals/035.png :align: center :width: 4in .. centered:: 図表 8.5-22 溶接プロセスパラメータ設定 溶接プロセスカーブを使用する場合、例として溶接プロセス番号1を選択し、アーク開始電流からアーク終了時間までのパラメータを図8のように順に入力し、「設定」ボタンをクリックします。このプロセスパラメータが表す実際の溶接プロセスは以下の通りです。 ①溶接電流200A、電圧23Vを設定します。 ②アーク開始を実行し、アーク開始成功を待ちます。 ③アーク開始成功後、アークを500ms間保持します(アーク開始時間、ロボットは運動しません)。 ④溶接電流150A、溶接電圧21Vを設定し、ロボットが運動を開始して溶接を行います。 ⑤溶接終点に達したら、溶接電流を100A、溶接電圧を19Vに設定します(アーク終了電流、アーク終了電圧)。 ⑥アーク終了電流、電圧の設定完了後、500ms間アークを燃焼させ(ロボットは運動しません)、最後にアークを消します。 図23のように、溶接プロセスパラメータを使用しない場合、すなわち溶接プロセスパラメータ番号0を選択した場合、溶接プロセスは以下の通りです。 ①電圧、電流インターフェースを介して対応する溶接電流と溶接電圧を設定します。 ②ロボットが溶接機のアーク開始を制御し、アーク開始成功を待ちます。 ③アーク開始成功後、ロボットは運動を開始して溶接を行います。 ④ロボットが溶接終点に達したら、直ちにアークを消します。 .. figure:: robot_peripherals/029.png :align: center :width: 4in .. centered:: 図表 8.5-23 溶接プロセスカーブを使用しない 溶接機デバッグ ****************** 図24のように、溶接機設定ページで「溶接機デバッグ」を見つけ、プロセス番号1を選択し、タイムアウト時間を1000msと入力し、「ガス供給」をクリックすると、ロボットは溶接機に保護ガスの供給を開始するよう制御します。「ガス停止」ボタンをクリックすると、ロボットは溶接機に保護ガスの供給を停止するよう制御します。その他のボタン(「アーク開始」、「正送給」、「逆送給」など)の操作方法も同様ですので、説明は省略します。 .. figure:: robot_peripherals/032.png :align: center :width: 4in .. centered:: 図表 8.5-24 溶接機デバッグ 溶接プログラムの作成 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 溶接プロセスカーブを使用するプログラム作成 ++++++++++++++++++++++++++++++++++++++++++++++++++ 溶接プロセスカーブを使用する場合(すなわち溶接プロセスパラメータ番号1~99を選択)、溶接中の電圧・電流制御は、あるプロセスパラメータ番号で設定されたカーブパラメータに従うため、溶接電圧と電流を設定するコマンドを別途追加する必要はありません。図25のように、「示教程」->「プログラム作成」をクリックし、新しいユーザープログラム「testWeld.lua」を作成します。 .. figure:: robot_peripherals/036.png :align: center :width: 6in .. centered:: 図表 8.5-25 「testWeld.lua」プログラムの作成 図26のように、「溶接指令」を選択します。 .. figure:: robot_peripherals/037.png :align: center :width: 6in .. centered:: 図表 8.5-26 「溶接指令」の選択 図27のように、「溶接」をクリックし、溶接指令追加ページを開きます。 .. figure:: robot_peripherals/038.png :align: center :width: 6in .. centered:: 図表 8.5-27 「溶接」をクリック 図28のように、開いた溶接指令追加ページで制御タイプとして「控制器I/O」(実際に設定した溶接制御方式に応じて選択)を選択し、溶接プロセス番号として1を選択し(プロセス番号0は溶接プロセスカーブを使用しない、プロセス番号1-99は溶接プロセスカーブを使用する)、最大待機時間を10000msとし、「アーク開始」ボタンと「アーク終了」ボタンを順にクリックし、最後に「適用」をクリックします。 .. figure:: robot_peripherals/039.png :align: center :width: 6in .. centered:: 図表 8.5-28 溶接指令の追加 図29のように、この時点で「testWeld.lua」プログラムには溶接アーク開始コマンドと溶接アーク終了コマンドが追加されています。溶接アーク開始・終了は溶接プロセスカーブ番号1を使用するように選択しているため、溶接中の電圧・電流制御はプロセス番号1で設定されたカーブパラメータに従い、溶接電圧と電流を設定するコマンドを別途追加する必要はありません。 .. figure:: robot_peripherals/040.png :align: center :width: 6in .. centered:: 図表 8.5-29 アーク開始・終了プログラム 図30のように、2つの直線運動コマンドを追加し、コマンドの順序を調整して、ロボットが先に「P1」点に運動し、アーク開始を実行し、次に「P2」点に運動し、アーク終了を実行するようにします。これにより、ロボットが「P1」点から「P2」点まで溶接するようになります。 .. figure:: robot_peripherals/041.png :align: center :width: 6in .. centered:: 図表 8.5-30 ロボットのP1点からP2点への溶接 溶接プロセスカーブを使用しないプログラム作成 ++++++++++++++++++++++++++++++++++++++++++++++++++ 溶接プロセスカーブを使用しない場合(すなわち溶接プロセスパラメータ番号0を選択)、溶接プログラムには溶接電圧・電流を設定するコマンドを追加し、実際の溶接パラメータを制御する必要があります。図31のように、「示教模拟」、「プログラム示教」をクリックし、新しいユーザープログラム「testWeld.lua」を作成します。 .. figure:: robot_peripherals/036.png :align: center :width: 6in .. centered:: 図表 8.5-31 「testWeld.lua」プログラムの作成 図32のように、「溶接指令」を選択します。 .. figure:: robot_peripherals/037.png :align: center :width: 6in .. centered:: 図表 8.5-32 「溶接指令」の選択 図33のように、「溶接」をクリックし、溶接指令追加ページを開きます。 .. figure:: robot_peripherals/038.png :align: center :width: 6in .. centered:: 図表 8.5-33 「溶接」をクリック 図34のように、開いた溶接指令追加ページで制御タイプとして「控制器I/O」(実際に設定した溶接制御方式に応じて選択)を選択し、溶接プロセス番号として0を選択し(プロセス番号0は溶接プロセスカーブを使用しない、プロセス番号1-99は溶接プロセスカーブを使用する)、溶接電流制御AOを「Ctrl-AO0」、溶接電流を150Aとし、「追加」ボタンをクリックします。溶接電圧制御AOを「Ctrl-AO1」、溶接電圧を21Vとし、「追加」ボタンをクリックします。最大待機時間を10000msとし、「アーク開始」ボタンと「アーク終了」ボタンを順にクリックし、最後に「適用」をクリックします。 .. figure:: robot_peripherals/042.png :align: center :width: 6in .. centered:: 図表 8.5-34 溶接指令の追加 図35のように、この時点で「testWeld.lua」プログラムには溶接アーク開始コマンドと溶接アーク終了コマンドが追加されています。溶接アーク開始・終了コマンドは溶接プロセス番号0を選択しているため、プログラムが溶接電圧・電流設定コマンドを実行すると、ロボットは設定された溶接電圧・電流の数値と、溶接機設定ページで設定された「溶接電圧・電流と出力アナログの対応関係」に基づいて、対応する制御箱アナログ量を自動的に出力します。 .. figure:: robot_peripherals/043.png :align: center :width: 6in .. centered:: 図表 8.5-35 溶接電圧、電流、アーク開始、アーク終了プログラムの設定 図36のように、2つの直線運動コマンドを追加し、コマンドの順序を調整して、ロボットが先に「P1」点に運動し、アーク開始を実行し、次に「P2」点に運動し、アーク終了を実行するようにします。これにより、ロボットが「P1」点から「P2」点まで溶接するようになります。 .. figure:: robot_peripherals/044.png :align: center :width: 6in .. centered:: 図表 8.5-36 ロボットのP1点からP2点への溶接 上記プログラムを実行すると、直線P1~P2の溶接が実現されます。プログラム実行前に以下を確認してください。 ①溶接トーチが正しく取り付けられているか、溶接トーチのツール座標系がキャリブレーション完了し、現在のツール座標系として適用されているか。 ②溶接電源、ガス回路、ワイヤ経路が正常に動作しているか。 ③ロボットと溶接機間の各信号線の接続が正常か。 溶接中断と復旧 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ ロボットの溶接中、以下の状況で中断が発生する可能性があります。 ①オペレーターが能動的に溶接を一時停止し、実際の溶接状況を観察したり、ノズルを清掃したりする場合。 ②溶接アークが予期せず中断した場合。 ③ロボットが衝突し、溶接が一時停止した場合。 ロボットの溶接中に中断が発生した後、オペレーターはロボットを手動モードに切り替え、ロボットを安全な位置までドラッグし、中断発生原因を処理することができます。 問題処理が完了した後、協働ロボットは現在位置から溶接中断が発生した位置まで自動的に移動し、再びアークを開始して溶接を復旧できます。具体的な操作手順は以下の通りです。 ①溶接中断復旧パラメータの設定。 ②溶接プログラムを実行し、溶接中に一時停止して溶接を中断させます。 ③ロボットを手動モードに切り替え、関連する問題を処理します。処理完了後、ロボットを再び自動モードに切り替えます。 ④「溶接復旧」ボタンをクリックすると、ロボットは自動的に溶接を復旧します。 溶接中断復旧パラメータ設定 +++++++++++++++++++++++++++++ 図37のように、「初期設定」->「周辺機器」メニューで、「溶接機」をクリックし、溶接機設定画面に入ります。「アーク中断検出パラメータ設定」欄を見つけ、「有効」をオンにし、「確認時間」を20msと入力し、「設定」ボタンをクリックします。これにより、溶接中にアーク開始成功信号が20ms以上無効になった場合、ロボットは「溶接アーク中断」エラーを報告します。「溶接中断再復旧パラメータ設定」欄を見つけ、「有効」をオンにし、「オーバーラップ距離」を5mm、「速度」を10%、「運動方式」を「PTP」と入力し、「設定」ボタンをクリックします。上記3つのパラメータの説明は以下の通りです。 **オーバーラップ距離**:溶接復旧時に、復旧後の溶接ビームと中断前の溶接ビームの連続性を確保するために、溶接復旧のアーク開始点と元の溶接ビームにはある程度のオーバーラップ距離が必要です。 **速度**:溶接中断後、多くの場合、ロボットを安全な位置に移動させ、溶接ビームを処理する必要があります。処理完了後に溶接復旧を実行すると、ロボットは現在位置から溶接再アーク開始点まで移動します。この「速度」は、ロボットが再アーク開始点まで移動する速度を示します。 **運動方式**:溶接中断後、多くの場合、ロボットを安全な位置に移動させ、溶接ビームを処理する必要があります。処理完了後に溶接復旧を実行すると、ロボットは現在位置から溶接再アーク開始点まで移動します。この「運動方式」は、ロボットが再アーク開始点まで移動する運動方式を示し、「LIN」と「PTP」の2つの方式から選択できます。 .. figure:: robot_peripherals/045.png :align: center :width: 4in .. centered:: 図表 8.5-37 溶接中断復旧パラメータ設定 溶接中断復旧適用 +++++++++++++++++++++++++++++ 図38のプログラムを例に、ロボットを自動モードに切り替え、開始ボタンをクリックすると、ロボットは溶接作業を開始します。溶接中に一時停止ボタンをクリックすると、溶接が中断し、WebAppの右上隅に溶接中断復旧確認ボックスが表示されます(図39)。「溶接復旧」ボタンをクリックすると、ロボットは自動的に再アーク開始点に移動し、後続の溶接作業を実行します。 .. figure:: robot_peripherals/046.png :align: center :width: 6in .. centered:: 図表 8.5-38 溶接プログラムの実行 .. figure:: robot_peripherals/047.png :align: center :width: 6in .. centered:: 図表 8.5-39 溶接復旧 .. warning:: 協働ロボットの溶接中断復旧機能は、直線溶接ビームまたは円弧溶接ビームにのみ使用できます。while(1)ループ溶接を使用する場合、ネストされた複数層のwhileループはサポートされず、ローカル変数を含む条件判定文を含めることはできません。断続溶接機能を使用する場合は、フィードバック断続溶接情報インターフェースを追加する必要があります。 付属書一:ロボットUDP通信プロトコル ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. warning:: 1)CRC チェック方式:modbus 16 チェックを使用しますが、チェック時には下位8ビットのみを取得します。チェックデータ領域は D100-D176、D200-D273 です。 2)アークトラッキング:実際の電流フィードバックは、PLCが取得した溶接機の実際の電流を0-4095のアナログ量に変換し、UDPデータプロトコルのアナログチャンネル0、すなわち D168 に送信します。 3)速度換算ロジック:ロボット送信速度(単位 mm/s)V ÷ リード × 60 = V'。 PLCはロボット送信速度を変換し、V' × エンコーダー分解能 ÷ 60 = V" 単位(パルス/s)。 ロボットコントローラー -> PLC ++++++++++++++++++++++++++++++++++++ .. list-table:: :widths: 10 10 10 10 20 :header-rows: 1 :align: center * - 番号 - レジスタアドレス - データ型 - データ値 - 変数名 * - 1 - D199 - INT - 0x5A5A - フレームヘッダ * - 2 - D200 - INT - - 1#モーター制御ワード * - 3 - D201 - DINT - - 1#目標位置入力 * - 4 - D202 - DINT - - 1#目標位置入力 * - 5 - D203 - INT - - 1#原点復帰制御ワード * - 6 - D204 - DINT - - 1#原点復帰高速入力 * - 7 - D205 - DINT - - 1#原点復帰高速入力 * - 8 - D206 - DINT - - 1#原点復帰低速入力 * - 9 - D207 - DINT - - 1#原点復帰低速入力 * - 10 - D208 - DINT - - 1#位置オフセット(予約) * - 11 - D209 - DINT - - 1#位置オフセット(予約) * - 12 - D210 - DINT - - 1#速度オフセット(予約) * - 13 - D211 - DINT - - 1#速度オフセット(予約) * - 14 - D212 - DINT - - 1#トルクオフセット(予約) * - 15 - D213 - DINT - - 1#トルクオフセット(予約) * - 16 - D214 - INT - - 2#モーター制御ワード * - 17 - D215 - DINT - - 2#目標位置入力 * - 18 - D216 - DINT - - 2#目標位置入力 * - 19 - D217 - INT - - 2#原点復帰制御ワード * - 20 - D218 - DINT - - 2#原点復帰高速入力 * - 21 - D219 - DINT - - 2#原点復帰高速入力 * - 22 - D220 - DINT - - 2#原点復帰低速入力 * - 23 - D221 - DINT - - 2#原点復帰低速入力 * - 24 - D222 - DINT - - 2#位置オフセット(予約) * - 25 - D223 - DINT - - 2#位置オフセット(予約) * - 26 - D224 - DINT - - 2#速度オフセット(予約) * - 27 - D225 - DINT - - 2#速度オフセット(予約) * - 28 - D226 - DINT - - 2#トルクオフセット(予約) * - 29 - D227 - DINT - - 2#トルクオフセット(予約) * - 30 - D228 - INT - - 3#モーター制御ワード * - 31 - D229 - DINT - - 3#目標位置入力 * - 32 - D230 - DINT - - 3#目標位置入力 * - 33 - D231 - INT - - 3#原点復帰制御ワード * - 34 - D232 - DINT - - 3#原点復帰高速入力 * - 35 - D233 - DINT - - 3#原点復帰高速入力 * - 36 - D234 - DINT - - 3#原点復帰低速入力 * - 37 - D235 - DINT - - 3#原点復帰低速入力 * - 38 - D236 - DINT - - 3#位置オフセット(予約) * - 39 - D237 - DINT - - 3#位置オフセット(予約) * - 40 - D238 - DINT - - 3#速度オフセット(予約) * - 41 - D239 - DINT - - 3#速度オフセット(予約) * - 42 - D240 - DINT - - 3#トルクオフセット(予約) * - 43 - D241 - DINT - - 3#トルクオフセット(予約) * - 44 - D242 - INT - - 4#モーター制御ワード * - 45 - D243 - DINT - - 4#目標位置入力 * - 46 - D244 - DINT - - 4#目標位置入力 * - 47 - D245 - INT - - 4#原点復帰制御ワード * - 48 - D246 - DINT - - 4#原点復帰高速入力 * - 49 - D247 - DINT - - 4#原点復帰高速入力 * - 50 - D248 - DINT - - 4#原点復帰低速入力 * - 51 - D249 - DINT - - 4#原点復帰低速入力 * - 52 - D250 - DINT - - 4#位置オフセット(予約) * - 53 - D251 - DINT - - 4#位置オフセット(予約) * - 54 - D252 - DINT - - 4#速度オフセット(予約) * - 55 - D253 - DINT - - 4#速度オフセット(予約) * - 56 - D254 - INT - - 予約 * - 57 - D255 - INT - - 溶接モード設定(0-直流一元、1-パルス一元、2-JOBモード、3-近接制御モード、4-個別モード、5-CC/CV、6-TIG、7-CMTモード) * - 58 - D256 - INT - - 通常出力DO(0-15) * - 59 - D257 - INT - - 通常出力DO(16-31) * - 60 - D258 - INT - - 通常出力DO(32-47) * - 61 - D259 - INT - - 通常出力DO(48-63) * - 62 - D260 - INT - - 通常出力DO(64-79) * - 63 - D261 - INT - - 通常出力DO(80-95) * - 64 - D262 - INT - - 高速出力DO(96-111) * - 65 - D263 - INT - - 高速出力DO(112-127) * - 66 - D264 - INT - - アナログ出力AO0 * - 67 - D265 - INT - - アナログ出力AO1 * - 68 - D266 - INT - - アナログ出力AO2 * - 69 - D267 - INT - - アナログ出力AO3 * - 70 - D268 - REAL - - 送信溶接電圧 * - 71 - D269 - REAL - - 送信溶接電圧 * - 72 - D270 - REAL - - 送信溶接電流 * - 73 - D271 - REAL - - 送信溶接電流 * - 74 - D272 - REAL - - パケットロス検出周期 * - 75 - D273 - INT - - パケットロス数 * - 76 - D274 - INT - - フレームカウント(0-255) * - 77 - D275 - INT - - CRCチェックコード PLC -> ロボットコントローラー +++++++++++++++++++++++++++++++++++++ .. list-table:: :widths: 10 10 10 10 20 :header-rows: 1 :align: center * - シリアルナンバー - アドレスを登録する - データ型 - データ値 - 変数名 * - 1 - D99 - INT - 0x5A5A - フレームヘッダー * - 2 - D100 - INT - - 1# モーターステータスワード * - 3 - D101 - DINT - - 1# 現在の場所 * - 4 - D102 - DINT - - 1# 現在の場所 * - 5 - D103 - INT - - 1# ゼロに戻るステータスワード * - 6 - D104 - DINT - - 1# ゼロ復帰高速フィードバック * - 7 - D105 - DINT - - 1# ゼロ復帰高速フィードバック * - 8 - D106 - DINT - - 1# ゼロリターン低速フィードバック * - 9 - D107 - DINT - - 1# ゼロリターン低速フィードバック * - 10 - D108 - INT - - 1# 故障コード * - 11 - D109 - DINT - - 1# 追従偏差 (予約) * - 12 - D110 - DINT - - 1# 追従偏差 (予約) * - 13 - D111 - DINT - - 1# 速度フィードバック (予約) * - 14 - D112 - DINT - - 1# 速度フィードバック (予約) * - 15 - D113 - DINT - - 1# リアルタイムトルク (予約) * - 16 - D114 - DINT - - 1# リアルタイムトルク (予約) * - 17 - D115 - INT - - 2# モーターステータスワード * - 18 - D116 - DINT - - 2# 現在の場所 * - 19 - D117 - DINT - - 2# 現在の場所 * - 20 - D118 - INT - - 2# ゼロに戻るステータスワード * - 21 - D119 - DINT - - 2# ゼロ復帰高速フィードバック * - 22 - D120 - DINT - - 2# ゼロ復帰高速フィードバック * - 23 - D121 - DINT - - 2#ゼロリターン低速フィードバック * - 24 - D122 - DINT - - 2#ゼロリターン低速フィードバック * - 25 - D123 - INT - - 2# 障害コード * - 26 - D124 - DINT - - 2# 追従偏差 (予約) * - 27 - D125 - DINT - - 2# 追従偏差 (予約) * - 28 - D126 - DINT - - 2# 速度フィードバック (予約済み) * - 29 - D127 - DINT - - 2# 速度フィードバック (予約済み) * - 30 - D128 - DINT - - 2# リアルタイムトルク (予約) * - 31 - D129 - DINT - - 2# リアルタイムトルク (予約) * - 32 - D130 - INT - - 3# モーターステータスワード * - 33 - D131 - DINT - - 3# 現在の場所 * - 34 - D132 - DINT - - 3# 現在の場所 * - 35 - D133 - INT - - 3# ゼロに戻るステータスワード * - 36 - D134 - DINT - - 3# ゼロへの高速フィードバック * - 37 - D135 - DINT - - 3# ゼロへの高速フィードバック * - 38 - D136 - DINT - - 3# ゼロ復帰低速フィードバック * - 39 - D137 - DINT - - 3# ゼロ復帰低速フィードバック * - 40 - D138 - DINT - - 3# 故障コード * - 41 - D139 - DINT - - 3# 追従偏差 (予約) * - 42 - D140 - DINT - - 3# 追従偏差 (予約) * - 43 - D141 - DINT - - 3# 速度フィードバック (予約済み) * - 44 - D142 - DINT - - 3# 速度フィードバック (予約済み) * - 45 - D143 - DINT - - 3# リアルタイムトルク (予約) * - 46 - D144 - DINT - - 3# リアルタイムトルク (予約) * - 47 - D145 - INT - - 4# モーターステータスワード * - 48 - D146 - DINT - - 4# 現在の場所 * - 49 - D147 - DINT - - 4# 現在の場所 * - 50 - D148 - INT - - 4# ゼロに戻るステータスワード * - 51 - D149 - DINT - - 4# ゼロへの高速フィードバック * - 52 - D150 - DINT - - 4# リターントゥゼロ高速フィードバック * - 53 - D151 - DINT - - 4# ゼロリターン低速フィードバック * - 54 - D152 - DINT - - 4# ゼロリターン低速フィードバック * - 55 - D153 - DINT - - 4# 故障コード * - 56 - D154 - DINT - - 4# 追従偏差(予約) * - 57 - D155 - DINT - - 4# 追従偏差(予約) * - 58 - D156 - DINT - - 4#スピードフィードバック(予約済み) * - 59 - D157 - DINT - - 4#スピードフィードバック(予約済み) * - 60 - D158 - DINT - - リアルタイムトルク(予約) * - 61 - D159 - DINT - - リアルタイムトルク(予約) * - 62 - D160 - INT - - 通常入力DI(0-15) * - 63 - D161 - INT - - 通常入力DI(16-31) * - 64 - D162 - INT - - 通常入力DI(32-47) * - 65 - D163 - INT - - 通常入力DI(48-63) * - 66 - D164 - INT - - 通常入力DI(64-79) * - 67 - D165 - INT - - 通常入力DI(80-95) * - 68 - D166 - INT - - 高速入力DI(96-111) * - 69 - D167 - INT - - 高速入力DI(112-127) * - 70 - D168 - INT - - アナログAI0 * - 71 - D169 - INT - - アナログAI1 * - 72 - D170 - INT - - アナログAI2 * - 73 - D171 - INT - - アナログAI3 * - 74 - D172 - 本物 - - 実際の電流フィードバック * - 75 - D173 - 本物 - - 実際の電流フィードバック * - 76 - D174 - 本物 - - 実際の電圧フィードバック * - 77 - D175 - 本物 - - 実際の電圧フィードバック * - 78 - D176 - INT - - 障害コード 0 - 障害なし、1 - データ パケット損失 * - 79 - D177 - INT - - フレーム数 * - 80 - D178 - INT - - CRCチェックコード センサ周辺装置配置 --------------------- FAIRINO協働ロボットがレーザーセンサーと組み合わせ使用し、センサーで溶接線などの特徴位置を識別することでプログラミングを簡単化にし、生産性を向上できます。協働ロボットには睿牛、創想及び全視三社製レーザーセンサーに対応するが、他のセンサーに切り替えると、対応した通信プロトコルを取り込むだけであります。 ハードウェア配線 ~~~~~~~~~~~~~~~~~~ レーザーセンサーを使用する前に、レーザーセンサーを適切な位置に取り付け、レーザーセンサーのネットワークケーブルを直接、またはスイッチを介してロボット制御箱のいずれかのRJ45インターフェースに接続する必要があります。 传感器配置 ~~~~~~~~~~~~~ レーザーセンサーと溶接トーチがロボットの末端に固定されて取り付けられ、レーザーセンサーがロボット制御ボックスとネットワークケーブルで接続され、かつレーザーセンサーとロボット制御ボックスのIPアドレスが同一ネットワークセグメントにあることを確認し、ロボットとセンサーの電源を入れてください。図1は睿牛レーザーセンサーの取り付けを示しています。 .. figure:: robot_peripherals/048.png :align: center :width: 4in .. centered:: 図表 8.6‑1 レーザーセンサー取り付け 図2に示すように、ロボットのWebAppを開き、「初期設定」->「周辺機器」->「トラッキング」の「センサートラッキング」をクリックし、通信設定欄にセンサーのIPアドレス、ポート番号を入力し、「設定」ボタンをクリックします。サンプリング周期はデフォルトで25、座標系は「レーザー平面座標系」を選択し、お使いのセンサーモデルに応じて対応する通信プロトコルを選択し、「ロード」ボタンをクリックします。 .. figure:: robot_peripherals/049.png :align: center :width: 4in .. centered:: 図表 8.6‑2 レーザーセンサー設定 図3に示すように、「センサートラッキング」ページで「トラッキングセンサーテスト」欄を見つけ、「センサーを開く」と「センサーを閉じる」を順にクリックし、センサーのレーザーがオン/オフするかを観察します。レーザーが正常にオン/オフすれば、ロボットとセンサーが正常に通信を確立していることを示します。そうでない場合は、IPアドレスやポート番号などのパラメータが正しいか、およびセンサーとロボットのネットワーク接続が正しいかを確認してください。 .. figure:: robot_peripherals/050.png :align: center :width: 4in .. centered:: 図表 8.6‑3 レーザーセンサー通信テスト センサーキャリブレーション ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ レーザーセンサーを使用する前に、まずレーザーセンサーのキャリブレーションを行う必要があります。キャリブレーション精度はレーザーセンサーのトラッキング精度に直接影響します。レーザーセンサーのキャリブレーション方法には、5点法、6点法、8点法があります。溶接アプリケーションシーンで最も一般的に使用される5点法を例にとると、そのキャリブレーション原理は、まずツール(トーチ)で固定キャリブレーションポイントを指し(図4)、次にレーザーセンサーで4つの異なる姿勢からそのポイントを照射して認識します。 .. note:: このキャリブレーションポイントはレーザーセンサーで正確に認識できる必要があります。そうでないと正確にキャリブレーションできません。 これによりセンサーの座標位置・姿勢を計算します。以下にそのキャリブレーション手順を詳しく説明します。 .. figure:: robot_peripherals/051.png :align: center :width: 4in .. centered:: 図表 8.6‑4 レーザーセンサーキャリブレーションポイント **step1**:ロボットのWebAppを開き、「初期設定」->「基本」->「座標」を順にクリックし、「ツール」をクリックしてツール座標系画面に入ります。未使用のツール座標系を選択し、その名前を「溶接トーチ」に変更し、ツールタイプを「ツール」、取り付け位置を「末端」に設定します(図5、6)。 .. figure:: robot_peripherals/052.png :align: center :width: 4in .. centered:: 図表 8.6‑5 「溶接トーチ座標系」の設定 .. figure:: robot_peripherals/053.png :align: center :width: 4in .. centered:: 図表 8.6‑6 「溶接トーチ」座標系の設定 図7に示すように、再度未使用の座標系を選択し、その名前を「レーザーセンサー」に変更し、ツールタイプとして「センサー」を選択し、取り付け位置を「末端」に設定します。 .. figure:: robot_peripherals/054.png :align: center :width: 4in .. centered:: 図表 8.6‑7 「レーザーセンサー」座標系の設定 **step2**:6点法で溶接トーチのツール座標系をキャリブレーションします。「溶接トーチ」座標系を選択し、修正ボタンをクリックし(図8、9)、6点法を使用して溶接トーチのツール座標系をキャリブレーションします(具体的なキャリブレーション方法はFAIRINOのドキュメントを参照してください。ここでは詳しく説明しません)。 .. figure:: robot_peripherals/055.png :align: center :width: 4in .. centered:: 図表 8.6‑8 「溶接トーチ」座標系キャリブレーション1 .. figure:: robot_peripherals/056.png :align: center :width: 4in .. centered:: 図表 8.6‑9 「溶接トーチ」座標系キャリブレーション2 **step3**:図10に示すように、「ツール座標系設定」で0番座標系(ベース座標系)を選択し(デフォルト名は「toolcoord0」)、「適用」をクリックして、現在の座標系をベース座標系に切り替えます。 .. figure:: robot_peripherals/057.png :align: center :width: 4in .. centered:: 図表 8.6‑10 センサーキャリブレーション手順1 **step4**:図11に示すように、再度先ほど設定した「レーザーセンサー」座標系を選択し(「適用」はクリックしません)、「修正」ボタンをクリックし、ツールタイプとして「センサー」を選択し、センサーが「ロボット末端」に固定されていることを確認し、修正ウィザードで「5点法」を選択します。 .. figure:: robot_peripherals/058.png :align: center :width: 4in .. centered:: 図表 8.6‑11 センサーキャリブレーション手順2 **step5**:ロボットを手動操作し、トーチの先端をキャリブレーションポイントに合わせます(図12)。「溶接トーチ」座標系を選択し、「適用」をクリックし、「点1を設定」をクリックします(図13)。 .. figure:: robot_peripherals/059.png :align: center :width: 4in .. centered:: 図表 8.6‑12 センサーキャリブレーション手順3 .. figure:: robot_peripherals/060.png :align: center :width: 4in .. centered:: 図表 8.6‑13 センサーキャリブレーション手順4 **step6**:再度0番座標系(「toolcoord0」)を選択し、「適用」をクリックします(図14)。その後、「センサー」座標系を選択し(「適用」はクリックしません)、「修正」をクリックすると(図15)、キャリブレーションを続行できます。 .. figure:: robot_peripherals/061.png :align: center :width: 4in .. centered:: 図表 8.6‑14 センサーキャリブレーション手順5 .. figure:: robot_peripherals/062.png :align: center :width: 4in .. centered:: 図表 8.6‑15 センサーキャリブレーション手順6 **step7**:レーザーセンサーの位置を移動し、レーザーがちょうどキャリブレーションポイントをスキャンするようにして(図16)、「点2を設定」をクリックします。このとき、左側のセンサー出力値の対応するシーケンス番号位置に現在のセンサーデータが表示されます(図18)。データが正常であれば、現在のキャリブレーションポイントは成功です。そうでなければ再キャリブレーションが必要です。 .. figure:: robot_peripherals/063.png :align: center :width: 4in .. centered:: 図表 8.6‑16 センサーキャリブレーション手順7 .. figure:: robot_peripherals/064.png :align: center :width: 4in .. centered:: 図表 8.6‑17 センサーキャリブレーション手順8 .. figure:: robot_peripherals/065.png :align: center :width: 4in .. centered:: 図表 8.6‑18 センサーキャリブレーション手順9 **step8**:次に、レーザーをさらに3つの異なる姿勢からキャリブレーションポイントに照射し、「点3を設定」、「点4を設定」、「点5を設定」をそれぞれクリックします。最後に、各点のデータが正常であることを確認した上で、「計算」ボタンをクリックします(図19)。 .. figure:: robot_peripherals/066.png :align: center :width: 4in .. centered:: 図表 8.6‑19 センサーキャリブレーション手順10 **step9**:このとき、WebAppにセンサーのキャリブレーション結果とキャリブレーション精度が表示されます。「適用」ボタンをクリックすると(図20)、レーザーセンサーのキャリブレーションが完了します。キャリブレーション精度が極端に悪い場合は、「キャンセル」ボタンを選択し、再度キャリブレーションをやり直すことができます。 .. figure:: robot_peripherals/067.png :align: center :width: 4in .. centered:: 図表 8.6‑20 センサーキャリブレーション精度 レーザーセンサーの応用 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ レーザーセンサーを使用する前に、「溶接トーチ」ツール座標系を現在のツール座標系に適用します(図21)。 .. figure:: robot_peripherals/068.png :align: center :width: 4in .. centered:: 図表 8.6‑21 溶接トーチ座標系の適用 レーザーセンサーのティーチングポイント ++++++++++++++++++++++++++++++++++++++++++++++++++ 図22に示すように、ロボットを手動操作し、レーザーセンサーの光線をティーチングしたい溶接シームポイントに向けます。図23に示すように、WebAppでセンサーとして「レーザーセンサー」を選択し、センサーポイント名として「laserPt」を入力し、「追加」ボタンをクリックします。新しいユーザープログラム「testLaser.lua」を作成し、運動コマンドPTPを作成し、目標点として「laserPt」を選択し、このコマンドをステップ実行すると、溶接トーチは以前にレーザーセンサーが指していたポイントに移動します(図24)。 .. figure:: robot_peripherals/069.png :align: center :width: 4in .. centered:: 図表 8.6‑22 レーザーセンシング溶接シームポイント .. figure:: robot_peripherals/070.png :align: center :width: 6in .. centered:: 図表 8.6‑23 センサーポイントのティーチング .. figure:: robot_peripherals/071.png :align: center :width: 4in .. centered:: 図表 8.6‑24 溶接シームポイントを指す溶接トーチ レーザー位置探知 + トラッキング ++++++++++++++++++++++++++++++++++++ 協働ロボットとレーザーセンサーが連携してレーザー位置探知 + レーザートラッキング機能を実現するには、以下の手順が必要です。 (1) ロボットが溶接シーム外部のある点に移動する。 (2) レーザー位置探知を開始し、ロボットがレーザーセンサーを搭載して溶接シーム位置に向かって移動する。 (3) レーザーセンサーが溶接シームを認識し、ロボットが溶接トーチを溶接シーム認識点まで移動させる。 (4) レーザートラッキングを開始し、同時にロボットが溶接シーム終点に向かって移動し、レーザーセンサーは移動中にリアルタイムで位置を記録する。 (5) 溶接トーチがレーザーセンサーが記録した位置に沿って運動し、トラッキング効果を実現する。 位置探知・トラッキングのデバッグ前に、センサーが正しく取り付けられていること、「溶接トーチ」ツール座標系が正しくキャリブレーションされていること、レーザーセンサーも正しくキャリブレーションされていることを確認してください。図25に示すように、図中の緑色の直線が溶接予定のシームであると仮定し、ロボットが自動で溶接開始点A点を探知し、自動でB点まで溶接するには、以下のコマンドを作成する必要があります。 .. figure:: robot_peripherals/072.png :align: center :width: 4in .. centered:: 図表 8.6‑25 センサー取り付け 位置探知コマンドの作成 ************************** 図26に示すように、新しいユーザープログラム「laserTrack.lua」を作成し、「溶接コマンド」を選択します。 .. figure:: robot_peripherals/073.png :align: center :width: 6in .. centered:: 図表 8.6‑26 位置探知コマンドの追加 図27に示すように、「レーザートラッキング」をクリックすると、レーザートラッキングコマンド追加ページがポップアップ表示されます。 .. figure:: robot_peripherals/074.png :align: center :width: 6in .. centered:: 図表 8.6‑27 レーザートラッキングコマンド 図28に示すように、「位置探知コマンド」を見つけ、座標系名として「レーザーセンサー」を選択し、方向として「+x」を選択すると、ロボットがレーザーセンサーを搭載して現在位置から「溶接トーチ」座標系の「+x」方向に沿って移動しながらシームを探知することを意味します。「速度」はレーザーセンサーの位置探知移動速度、「長さ」はレーザーセンサーの最大位置探知長さです。ロボットの位置探知距離がこの長さを超えても溶接シームが見つからない場合、ロボットはエラーを報告します。最大位置探知時間も長さと同様で、この時間を超えても溶接シームが見つからない場合、ロボットはエラーを報告します。実際のシーンに応じて上記の関連パラメータを正しく入力してください。「位置探知開始」と「位置探知終了」のコマンドを順にクリックし、「適用」ボタンをクリックします。 .. figure:: robot_peripherals/075.png :align: center :width: 6in .. centered:: 図表 8.6‑28 位置探知コマンドの追加 これで「laserTrack.lua」に対応するレーザー位置探知開始と終了のコマンドが追加されます(図29)。 .. figure:: robot_peripherals/076.png :align: center :width: 6in .. centered:: 図表 8.6‑29 位置探知プログラム 位置探知点への運動コマンドの作成 ********************************** ポイントツーポイント運動コマンドLINを追加します。図のように、目標点は「seamPos」、つまりレーザーセンサーの位置探知点です。 .. note:: 「seamPos」点は、ロボットシステム内部でレーザーセンサー位置探知専用のポイント名です。この点をティーチングする必要はなく、レーザーセンサーが位置探知後、自動的に位置探知点の情報を「seamPos」点に保存します。 位置探知点にはオフセットを設定できます。オフセットタイプは「ベース座標系オフセット」、「ツール座標系オフセット」、「レーザー生データオフセット」から選択できます(図30)。 .. figure:: robot_peripherals/077.png :align: center :width: 6in .. centered:: 図表 8.6‑30 位置探知オフセットオプション 図31に示すように、位置探知オフセット機能を有効にする場合、オフセットパラメータを設定できます。「dx」は選択した座標系のx方向のオフセット距離、「drx」は選択した座標系のx軸回りの回転角度を示します。「追加」ボタンをクリックし、「適用」ボタンをクリックします。 .. figure:: robot_peripherals/078.png :align: center :width: 6in .. centered:: 図表 8.6‑31 位置探知オフセットパラメータ設定 これで「testTrack.lua」に位置探知点への運動コマンドが追加されます(図32)。 .. figure:: robot_peripherals/079.png :align: center :width: 6in .. centered:: 図表 8.6‑32 位置探知オフセットプログラム レーザートラッキングコマンドの作成 ******************************************** 再度「レーザートラッキング」コマンド追加ページを開きます(図33)。 .. figure:: robot_peripherals/080.png :align: center :width: 6in .. centered:: 図表 8.6‑33 レーザートラッキング 図34に示すように、「レーザートラッキング」コマンド追加ページで「トラッキング開始」と「トラッキング停止」ボタンを順にクリックし、最後にページ最下部の「適用」ボタンをクリックします。 .. figure:: robot_peripherals/081.png :align: center :width: 6in .. centered:: 図表 8.6‑34 レーザートラッキング開始と停止 この時点でのユーザープログラム「testTrack.lua」は図35のようになります。 .. figure:: robot_peripherals/082.png :align: center :width: 6in .. centered:: 図表 8.6‑35 レーザートラッキングプログラム 位置探知開始点とトラッキング終点のコマンド作成 ******************************************************* レーザー位置探知を開始する前に、まず位置探知開始点を指定する必要があります。ロボットはまず位置探知開始点に移動し、その後一定の方向と速度で位置探知を行います。図36に示すように、レーザーセンサーの光線を溶接シーム開始点A点の近くに近づけて位置探知開始点「seamStartPt」をティーチングします。位置探知開始点と位置探知方向のマッチングに注意し、ロボットが設定された距離と最大位置探知時間内に溶接シーム位置を見つけられるようにします。 .. figure:: robot_peripherals/083.png :align: center :width: 4in .. centered:: 図表 8.6‑36 位置探知開始点 図37に示すように、溶接シーム末端でトラッキング終了点「trackEndPt」をティーチングします。 .. figure:: robot_peripherals/084.png :align: center :width: 4in .. centered:: 図表 8.6‑37 位置探知終了点 上記の2点を「testTrack.lua」ユーザープログラムに追加します。最終的なユーザープログラムは以下の通りです(図38)。 .. figure:: robot_peripherals/085.png :align: center :width: 6in .. centered:: 図表 8.6‑38 位置探知トラッキングプログラム 溶接関連コマンドの作成 ****************************** 最後に、溶接位置探知点「seampos」と「trackEndPt」の間に溶接コマンドを追加します。最終的なプログラムは以下の通りです(図39)。 .. figure:: robot_peripherals/086.png :align: center :width: 6in .. centered:: 図表 8.6‑39 位置探知トラッキング溶接プログラム 上記のプログラムを実行すると、ロボットはレーザーセンサーを搭載して位置探知開始点から位置探知運動を開始し、溶接シームを見つけると、ロボットはすぐに溶接開始点に移動し、アークスタート操作を実行します。アークスタートに成功すると、ロボットは溶接終了点に向かって移動し、移動中に溶接シームの軌跡をトラッキングします。ロボットが溶接終了点に到達すると溶接を停止します。 レーザー軌跡記録 + 軌跡再現 ++++++++++++++++++++++++++++++++++ レーザー軌跡記録 + 軌跡再現のワークフローは以下の通りです。 (1) ロボットがレーザーセンサーを搭載して溶接シームに沿って軌跡を移動し、レーザーセンサーは移動中にリアルタイムで溶接シーム位置の軌跡データを記録します。 (2) 軌跡記録が完了した後、ロボットは軌跡記録の開始点まで移動します。 (3) ロボットはレーザーセンサーが記録した軌跡に沿って軌跡再現運動を行います。 ロボット軌跡記録コマンドの作成 ************************************ 新しいユーザープログラム「testRecord.lua」を作成し、「レーザー記録」をクリックしてレーザー記録コマンド追加ページを開き、「シームデータ記録」を見つけます。図40に示すように、「記録開始」を選択し、「追加」ボタンをクリックし、「記録停止」を選択し、「追加」ボタンを再度クリックします。最後に「適用」ボタンをクリックします(図41)。 .. figure:: robot_peripherals/087.png :align: center :width: 6in .. centered:: 図表 8.6‑40 レーザー記録 .. figure:: robot_peripherals/088.png :align: center :width: 6in .. centered:: 図表 8.6‑41 記録開始と記録停止 このとき、ページに軌跡記録の開始と停止のコマンドが表示されます(図42)。 .. figure:: robot_peripherals/089.png :align: center :width: 6in .. centered:: 図表 8.6‑42 軌跡記録プログラム 図43に示すように、図中の緑色の線分ABが溶接シームであると仮定し、レーザーをそれぞれ溶接シーム開始点Aと溶接シーム中断点Bに照射し、軌跡記録の開始点「recordStartPt」と終了点「recordEndPt」をティーチングします。 .. figure:: robot_peripherals/090.png :align: center :width: 4in .. figure:: robot_peripherals/091.png :align: center :width: 4in .. centered:: 図表 8.6‑43 軌跡記録の開始点と終了点 「testRecord.lua」に2つの直線(LIN)運動コマンドを追加します。それぞれ軌跡記録開始点「recordStartPt」と終了点「recordEndPt」への運動です。コマンドの位置を調整し、ロボットに次の操作を行わせます。まず「recordStartPt」点に移動し、軌跡記録を開始し、ロボットが「recordEndPt」点に移動したら、軌跡記録を停止します(図44)。 .. figure:: robot_peripherals/092.png :align: center :width: 6in .. centered:: 図表 8.6‑44 軌跡記録プログラム ロボットの軌跡記録開始点への運動コマンドの作成 **************************************************** 図45に示すように、「レーザー記録」をクリックしてレーザー記録コマンド追加ページを開き、「溶接点まで運動」欄を見つけ、運動方式としてPTPを選択し、適切な運動速度を入力し、「始点まで運動」をクリックし、「適用」ボタンをクリックします。 .. figure:: robot_peripherals/093.png :align: center :width: 6in .. centered:: 図表 8.6‑45 軌跡開始点まで運動 このときの「testRecord.lua」ユーザープログラムは以下の通りです(図46)。 .. figure:: robot_peripherals/094.png :align: center :width: 6in .. centered:: 図表 8.6‑46 軌跡開始点までの運動プログラム レーザーセンサー軌跡再現コマンドの作成 ****************************************** 「レーザー記録」をクリックしてレーザー記録コマンド追加ページを開き、「シームデータ記録」を見つけ、図のように「軌跡再現」を選択し、「追加」ボタンをクリックし、「レーザートラッキング再現」ボタンをクリックし、最後に「適用」ボタンをクリックします(図47)。 .. figure:: robot_peripherals/095.png :align: center :width: 6in .. centered:: 図表 8.6‑47 軌跡再現 追加完了後のプログラムは以下の通りです(図48)。 .. figure:: robot_peripherals/096.png :align: center :width: 6in .. centered:: 図表 8.6‑48 軌跡再現プログラム 溶接関連コマンドの作成 ********************************** 最後に、軌跡再現の開始前と終了後に溶接開始と溶接終了のコマンドを追加します(図49)。 .. figure:: robot_peripherals/097.png :align: center :width: 6in .. centered:: 図表 8.6‑49 軌跡記録再現溶接プログラム 上記のプログラムを実行すると、ロボットはレーザーセンサーを搭載してまず溶接シーム軌跡に沿って運動し、軌跡全体を記録します。その後、ロボットは軌跡記録の開始点に移動し、ロボットはアークを開始し、レーザーセンサーが記録した軌跡に沿って溶接を開始します。ロボットの軌跡再現が完了すると、溶接アークが消え、溶接が完了します。 レーザーセンサー適用コントローラ周辺機器開放プロトコル(Linuxシステムのみ使用可能) **************************************************************************************** **Step1**:「開放プロトコル接続」と「レーザーセンサー制御」を採用する必要がある場合、センサートラッキング設定で、「プロトコルタイプ」オプションで「コントローラ開放プロトコル」を選択します。元の方式を採用する場合は「適用済みレーザー機器」を選択し、トラッキングセンサーインターフェースでレーザー周辺機器のロードを設定します。 .. figure:: robot_peripherals/241.png :align: center :width: 6in .. centered:: 図表 8.6‑50 「開放プロトコル接続」と「レーザーセンサー制御」設定インターフェース **Step2**:その後、「初期設定」->「周辺機器」->「制御ボックス」->「周辺機器開放プロトコル」で、対応するレーザーセンサーの周辺機器開放プロトコルをアップロードします。アップロード成功後、プロトコル番号とアップロードしたファイル名を選択し、「設定」をクリックします。そして、「デバイス操作及び状態」で、アップロードしたレーザーセンサーを実行すると、対応するレーザーセンサーと接続を確立できます。 .. figure:: robot_peripherals/242.png :align: center :width: 6in .. centered:: 図表 8.6‑51 レーザーセンサー接続確立 レーザー位置決め運動機能 ----------------------------- 溶接プロセスにおいて、レーザー位置決め運動は姿勢を設定でき、ロボットが位置ポイントに到達する際に期待される姿勢を実現できます。隅肉溶接や開先溶接などの特殊なシーンに容易に対応できます。 レーザー位置決め運動機能の操作フロー ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ **Step1**:レーザーセンサーを使用する前に、まず「溶接トーチ」ツール座標系を現在のツール座標系に適用します。ティーチングページを開き、「初期設定」、「基本」、「座標系」、「ツール」を順にクリックし、座標系名として「溶接トーチ」を選択して適用します。システムページの左上にツール座標系がTool1として表示されます。 .. figure:: robot_peripherals/068.png :align: center :width: 4in .. centered:: 図表 8.7‑1 溶接トーチ座標系の適用 **Step2**:レーザー位置決め運動のLuaプログラムを作成します。「ティーチングプログラム」->「プログラム作成」->「新規作成ボタン」を順にクリックし、新しいユーザープログラム「testPointRecord.lua」を作成します。 .. figure:: robot_peripherals/176.png :align: center :width: 3in .. centered:: 図表 8.7‑2 新しいレーザー位置決め運動プログラムの作成 **Step3**:参考姿勢ティーチングポイントを設定します(オプション)。手動モードでロボットを目的の溶接姿勢まで手動操作します。ティーチングページで「ティーチングポイント記録」、「ポイント命名記録」の順にクリックし、姿勢ティーチングポイント「referencePoint」を保存します。 .. figure:: robot_peripherals/177.png :align: center :width: 4in .. centered:: 図表 8.7‑3 姿勢参考ティーチングポイントの保存 **Step4**:レーザー位置決め運動プログラムを生成します。「ティーチングプログラム」->「プログラム作成」->「溶接コマンド」、「レーザートラッキング」の順にクリックし、内容をセンサー位置決め運動の下までスクロールし、希望する「運動方式」、「デバッグ速度」、および姿勢参考点を選択すると、対応するレーザー位置決めLUAプログラムが生成されます。 姿勢参考点を選択しない場合、デフォルトで位置決め時の姿勢を維持して運動します。姿勢参考点を選択した場合は、参考姿勢でレーザー位置決め点まで運動します。 .. figure:: robot_peripherals/178.png :align: center :width: 6in .. centered:: 図表 8.7‑4 姿勢参考ティーチングポイントの選択 レーザー位置決め運動を実行します。ロボットを手動操作し、レーザーセンサーの光線をティーチングしたい溶接シームポイントに向けます。レーザーセンサーは溶接シーム位置を取得し、位置決めを行います。レーザー位置決め運動を実行した後、溶接トーチは参考姿勢でレーザーセンサーがスキャンした指示点まで移動します。 .. figure:: robot_peripherals/179.png :align: center :width: 4in .. centered:: 図表 8.7‑5 レーザーによる溶接シーム位置の取得 .. figure:: robot_peripherals/180.png :align: center :width: 4in .. centered:: 図表 8.7‑6 参考姿勢で溶接シーム位置を指す溶接トーチ 位置探知の3点と4点による交点座標の求め方 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 隅肉溶接の位置を直接ティーチングすることが難しい場合、協働ロボットは手動ティーチングまたは隅肉溶接の両側の板材平面位置の位置探知を通じて、2つの平面上の収集点の交点を計算して隅肉溶接の位置を生成することができます。 直角溶接の場合、3点位置探知による交点座標の方法を選択できます。非直角溶接の場合は、4点位置探知による交点座標の方法を採用します。 交点座標を取得し位置探知運動を行うためのコマンドとluaスクリプトの2つの方法を提供します。同時に参考姿勢を設定でき、ロボットは溶接トーチを搭載して参考ティーチングポイントの姿勢で交点まで運動できます。 コマンドによる交点計算 ++++++++++++++++++++++++++ 3点による交点座標計算 ********************* **Step1**:3つの平面接触点を収集しティーチングポイントとして保存し、参考ティーチングポイントを設定します。 .. figure:: robot_peripherals/098.png :align: center :width: 4in .. centered:: 図表 8.7‑7 3つの位置探知点の選択 収集する接触点は3点を含み、そのうち2点は同一平面にあり、もう1点は垂直平面にあります。 .. note:: 姿勢参考点を選択しない場合、デフォルトで生成される交点の姿勢はP3点と同じになります。姿勢参考点を選択した場合は、参考ティーチングポイントの姿勢と同じになります。 **Step2**:ティーチングページで、「初期設定」、「周辺機器」、「トラッキング」、「センサー」を順にクリックし、3点と4点の交点座標計算機能モジュールを見つけます。 .. figure:: robot_peripherals/099.png :align: center :width: 4in .. centered:: 図表 8.7‑8 交点座標計算のための位置探知点の選択 **Step3**:ドロップダウンボックスで3点位置探知を選択し、収集した3つの接触点を順に選択し、「計算」をクリックして、3Dモデルで生成された交点の表示に誤りがないか確認し、交点に名前を付けて保存します。 .. figure:: robot_peripherals/100.png :align: center :width: 6in .. centered:: 図表 8.7‑9 交点座標の計算と保存 **Step4**:ティーチングポイントを保存し、ティーチング運動を行うことができます。 .. figure:: robot_peripherals/101.png :align: center :width: 6in .. centered:: 図表 8.7‑10 交点座標をティーチングポイントとして保存 4点による交点座標計算 ********************* **Step1**:4つの平面接触点を収集しティーチングポイントとして保存し、参考ティーチングポイントを設定します。 .. figure:: robot_peripherals/102.png :align: center :width: 4in .. centered:: 図表 8.7‑11 4つの位置探知点の選択 収集する接触点は4点を含み、最初の2点は同一平面にあり、後の2点は垂直平面にあります。 .. note:: 姿勢参考点を選択しない場合、デフォルトで生成される交点の姿勢はP4点と同じになります。姿勢参考点を選択した場合は、参考ティーチングポイントの姿勢と同じになります。 **Step2**:ティーチングページで、「初期設定」、「周辺機器」、「トラッキング」、「センサー」を順にクリックし、3点と4点の交点座標計算機能モジュールを見つけます。 .. figure:: robot_peripherals/103.png :align: center :width: 4in .. centered:: 図表 8.7‑12 交点座標計算のための位置探知点と参考点の選択 **Step3**:ドロップダウンボックスで4点位置探知を選択し、収集した4つの接触点を順に選択し、「計算」をクリックして、3Dモデルで生成された交点の表示に誤りがないか確認し、交点に名前を付けて保存します。 .. figure:: robot_peripherals/104.png :align: center :width: 6in .. centered:: 図表 8.7‑13 交点座標の計算と保存 **Step4**:ティーチングポイントを保存し、ティーチング運動を行うことができます。 .. figure:: robot_peripherals/105.png :align: center :width: 6in .. centered:: 図表 8.7‑14 交点座標をティーチングポイントとして保存 Luaスクリプトによる交点計算と位置探知運動 ++++++++++++++++++++++++++++++++++++++++++++++++ 3点による交点座標計算 ********************* **Step1**:3つの平面接触点を収集しティーチングポイントとして保存し、参考ティーチングポイントを設定します。 .. figure:: robot_peripherals/098.png :align: center :width: 4in .. centered:: 図表 8.7‑15 3つの位置探知点の選択 収集する接触点は3点を含み、そのうち2点は同一平面にあり、もう1点は垂直平面にあります。 .. note:: 姿勢参考点を選択しない場合、デフォルトで生成される交点の姿勢はP3点と同じになります。姿勢参考点を選択した場合は、参考ティーチングポイントの姿勢と同じになります。 **Step2**:3点による交点計算と位置探知運動のLuaプログラムを作成します。「ティーチングプログラム」->「プログラム作成」->「新規作成ボタン」を順にクリックし、新しいユーザープログラム「test3point.lua」を作成します。 .. figure:: robot_peripherals/181.png :align: center :width: 6in .. centered:: 図表 8.7‑16 新しい3点交点計算位置探知運動プログラムの作成 **Step3**:3点による交点計算と位置探知運動プログラムを生成します。「ティーチングプログラム」->「プログラム作成」->「溶接コマンド」->「レーザートラッキング」の順にクリックし、内容を位置探知交点計算運動の下までスクロールし、「3点位置探知」方式を選択し、ドロップダウンボックスで収集した接触点「ポイント1」、「ポイント2」、「ポイント3」および姿勢参考点を順に選択し、希望する「運動方式」と「デバッグ速度」を選択し、「追加」、「適用」ボタンをクリックすると、対応する3点交点計算位置探知運動プログラムが生成されます。 .. figure:: robot_peripherals/182.png :align: center :width: 6in .. centered:: 図表 8.7‑17 3点交点計算位置探知運動 **Step4**:自動モードで実行ボタンをクリックすると、自動的に3点交点計算が行われ、ロボットは溶接トーチを参考姿勢で交点位置まで移動させます。 4点による交点座標計算 ********************* **Step1**:4つの平面接触点を収集しティーチングポイントとして保存し、参考ティーチングポイントを設定します。 .. figure:: robot_peripherals/102.png :align: center :width: 4in .. centered:: 図表 8.7‑18 4つの位置探知点の選択 収集する接触点は4点を含み、最初の2点は同一平面にあり、後の2点は別の平面にあります。 .. note:: 姿勢参考点を選択しない場合、デフォルトで生成される交点の姿勢はP4点と同じになります。姿勢参考点を選択した場合は、参考ティーチングポイントの姿勢と同じになります。 **Step2**:4点による交点計算と位置探知運動のLuaプログラムを作成します。「ティーチングプログラム」->「プログラム作成」->「新規作成ボタン」を順にクリックし、新しいユーザープログラム「test4point.lua」を作成します。 .. figure:: robot_peripherals/183.png :align: center :width: 6in .. centered:: 図表 8.7‑19 新しい4点交点計算位置探知運動プログラムの作成 **Step3**:4点による交点計算と位置探知運動プログラムを生成します。図2-14に示すように、「ティーチングプログラム」->「プログラム作成」->「溶接コマンド」->「レーザートラッキング」の順にクリックし、内容を位置探知交点計算運動の下までスクロールし、「4点位置探知」方式を選択し、ドロップダウンボックスで収集した接触点「ポイント1」、「ポイント2」、「ポイント3」、「ポイント4」および姿勢参考点を順に選択し、希望する「運動方式」と「デバッグ速度」を選択し、「追加」、「適用」ボタンをクリックすると、対応する4点交点計算位置探知運動プログラムが生成されます。 .. figure:: robot_peripherals/184.png :align: center :width: 6in .. centered:: 図表 8.7‑20 4点交点計算位置探知運動 **Step4**:自動モードで実行ボタンをクリックすると、自動的に4点交点計算が行われ、ロボットは溶接トーチを参考姿勢で交点位置まで移動させます。 拡張軸設定 ----------------- 「初期設定」->「周辺機器」で、「拡張軸」をクリックして拡張軸設定インターフェースに入ります。通信方式に応じて画像をクリックして対応する拡張軸周辺機器設定の組み合わせ方式を選択します。拡張軸設定の初回インターフェースは以下の通りです。 .. figure:: robot_peripherals/106.png :align: center :width: 4in .. centered:: 図表 8.8‑1 拡張軸設定の初回インターフェース 現在の組み合わせ方式は通信方式に応じて以下の2種類があります。 - コントローラ+PLC(UDP通信)。 - コントローラ+サーボドライバ(485通信)。 コントローラ+PLC(UDP通信) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 拡張軸UDP通信方式を使用する前に、まず対応する拡張軸座標系を確立し、対応する拡張軸座標系で対応する拡張軸方案を設定し、プログラムティーチング時に確立したツール座標系を適用する必要があります。拡張軸機能は主に溶接機機能やレーザートラッキングセンサー機能と連携して使用します。 .. figure:: robot_peripherals/107.png :align: center :width: 4in .. centered:: 図表 8.8‑2 拡張軸座標系の適用と現在の拡張軸方案の表示 現在の拡張軸座標系のみを変更する必要がある場合は、周辺機器の拡張軸設定インターフェースで座標系を選択して適用します。拡張軸方案を変更する必要がある場合は、「初期設定」->「基本」->「座標系」->「拡張軸」のインターフェースに入って変更します。具体的な操作はユーザーマニュアルの6.1章を参照してください。 拡張軸方案が「0-単自由度直線レール」、「1-2自由度L型ポジショナ」、「2-3自由度」、「3-4自由度」、「4-単自由度ポジショナ」の場合、UDP通信の設定が成功すると「UDP拡張軸」と「位置決め完了時間設定」の内容が表示されます。拡張軸方案が「5-2自由度台車」の場合、インターフェースには「2自由度台車テスト」の内容が表示されます。 UDP通信設定 +++++++++++++++++ .. note:: .. image:: robot_peripherals/108.png :height: 0.75in :align: left 名称:**編集ボタン** 機能:UDP通信パラメータ設定 .. note:: .. image:: robot_peripherals/109.png :height: 0.75in :align: left 名称:**ロードボタン** 機能:UDP通信ロード **Step1**:拡張軸UDP通信パラメータを設定します。IPアドレス、ポート番号、通信周期、パケットロス検出周期、パケットロス回数などのパラメータを設定します。再接続周期と再接続回数は、通信中断自動再接続スイッチをオンにした後でのみ設定可能です。 - IPアドレス:カスタムIPアドレス - ポート番号:実際の状況に応じて定義 - 通信周期:実際の状況に応じて定義、単位ms - パケットロス検出通信周期:10 ~ 1000 ms - パケットロス回数:1 ~ 100 - 通信中断確認時間:0 ~ 500 ms - 電源断再起動時自動再接続:オン/オフ - 通信中断時自動再接続:オン/オフ - 再接続周期:1 ~ 1000 ms - 再接続回数:1 ~ 100 .. figure:: robot_peripherals/110.png :align: center :width: 4in .. centered:: 図表 8.8‑3 拡張軸UDP通信パラメータ設定 .. important:: 1. 通信切断確認時間を設定した後、通信異常がその時間を超えた場合にのみ通信切断を確認しエラーを報告します。 2. UDP通信が切断された後、UDP切断エラーがトリガーされます(リセット可能)。警告情報クリアボタンをクリックすると、UDP通信が再度確立されます。 **Step2**:通信パラメータの設定が成功したら、「ロード」ボタンをクリックしてUDP通信を確立します。通信が成功すると、「UDP通信設定」の前のボタンが緑色に変わります。ロボットの各種状態の中の拡張軸状態で、拡張軸がサーボアライメントされていることを確認できます。 .. figure:: robot_peripherals/115.png :align: center :width: 4in .. centered:: 図表 8.8‑4 拡張軸UDP通信の確立 .. figure:: robot_peripherals/116.png :align: center :width: 4in .. centered:: 図表 8.8‑5 拡張軸のサーボアライメント .. important:: 1. UDP通信が接続されていない場合、UDP拡張軸番号情報の設定と表示はできません。 2. 拡張軸UDP通信のロードを行う前に、必ずシリアル番号0以外の拡張軸座標系の設定と適用を行ってください。 UDP拡張軸 +++++++++++++ .. note:: .. image:: robot_peripherals/108.png :height: 0.75in :align: left 名称:**編集ボタン** 機能:拡張軸パラメータ設定 .. note:: .. image:: robot_peripherals/117.png :height: 0.75in :align: left 名称:**イネーブルボタン** 機能:拡張軸イネーブル状態、ボタンをクリックすると拡張軸がディセーブルになります .. note:: .. image:: robot_peripherals/118.png :height: 0.75in :align: left 名称:**ディセーブルボタン** 機能:拡張軸ディセーブル状態、ボタンをクリックすると拡張軸がイネーブルになります .. note:: .. image:: robot_peripherals/119.png :height: 0.75in :align: left 名称:**ホーミングボタン** 機能:拡張軸ホーミング方式の設定 .. note:: .. image:: robot_peripherals/120.png :height: 0.75in :align: left 名称:**テストボタン** 機能:拡張軸機能テスト **Step1**:任意の拡張軸番号を選択し(現在は番号1、2、3、4のみ)、拡張軸番号の後ろにある「編集」ボタンをクリックして詳細設定インターフェースに入ります。軸タイプ、軸方向、運転速度、加速度、正方向リミット、反方向リミット、リード、エンコーダ解像度、始点オフセット、メーカー、型式、モードを設定し、「設定」をクリックすると設定が完了します。 - 軸タイプ:直線レール、回転軸、無限回転軸 - 軸方向:正/負 - 運転速度:0~2000mm/s - 加速度:0 ~ 2000 mm/s² - 正方向リミット:0 ~ 50000 - 反方向リミット:-50000 ~ 0 - リード:0~1000 - エンコーダ解像度:0 ~ 10000000 - 始点オフセット:0 ~ 10000mm - メーカー:禾川、汇川、松下 - 型式:メーカーに応じて自動的に型式リストをマッチング - モード:インクリメンタルシステムと絶対位置システム .. figure:: robot_peripherals/185.png :align: center :width: 4in .. centered:: 図表 8.8‑6 拡張軸パラメータ設定 **Step2**:拡張軸パラメータ設定が完了したら、「ディセーブル」ボタンをクリックし、対応する拡張軸番号をイネーブルにします。イネーブルが成功すると、ホーミング方式の設定と拡張軸テストが可能になります。拡張軸がイネーブルでない場合、ホーミング方式の設定と拡張軸テストはできません。 .. figure:: robot_peripherals/186.png :align: center :width: 6in .. centered:: 図表 8.8‑7 拡張軸イネーブル/ディセーブル **Step3**:拡張軸がイネーブルされていないと設定インターフェースに入れず、ボタンはグレー表示されます。拡張軸のイネーブルが成功したら、「ホーミング」ボタンをクリックしてホーミング方式設定インターフェースに入ります。ホーミング方式、ホーミング速度、ゼロ点クランプ速度を設定し、「設定」ボタンをクリックすると、拡張軸はホーミングを開始します。ホーミング状態は軸方向の下の空白部分に表示され、「ホーミング完了」の表示が出たら拡張軸のゼロ点設定が成功したことを示します。 - ホーミング方式:現在位置ホーミング、負リミットホーミング、正リミットホーミング - ホーミング速度:0~2000mm/s - ゼロ点クランプ速度:0~2000mm/s .. figure:: robot_peripherals/187.png :align: center :width: 4in .. centered:: 図表 8.8‑8 ホーミング方式の設定 **Step4**:拡張軸がイネーブルされていないと設定インターフェースに入れず、ボタンはグレー表示されます。拡張軸のイネーブルが成功し、ホーミング方式の設定が完了したら、「テスト」ボタンをクリックして拡張軸テストインターフェースに入ります。運転速度、加速度、最大距離を設定し、正転と逆転を行って拡張軸をテストします。また、回転中に「停止」ボタンをクリックして拡張軸が正常に停止できるかテストします。 .. figure:: robot_peripherals/188.png :align: center :width: 4in .. centered:: 図表 8.8‑9 拡張軸のテスト **Step5**:拡張軸は通常、レーザーセンサーと組み合わせて使用します。この場合、レーザーセンサーは通常外部取り付け方式を採用し、センサー基準点の設定には3点法によるキャリブレーションが必要であり、以前使用した6点法によるキャリブレーションではありません。ツールセンターを右側断面の底部中央点(カメラに近い側)に合わせて点1を設定し、ツール中心点をもう一方の断面、つまり左側断面の底部中央点に合わせて点2を設定し、ツール中心点をセンサー右側断面の上エッジ中央点に移動して点3を設定し、計算して保存し、「適用」をクリックして3点法によるキャリブレーションを完了します。 .. figure:: robot_peripherals/189.png :align: center :width: 4in .. centered:: 図表 8.8‑10 センサーの3点法キャリブレーション **Step6**:「ティーチングプログラム」->「プログラム作成」インターフェースで、周辺機器コマンドの「拡張軸」コマンドを選択します。具体的なプログラムティーチングの要件に応じて、適切な場所にコマンドを追加します。 .. figure:: robot_peripherals/111.png :align: center :width: 6in .. centered:: 図表 8.8‑11 拡張軸コマンド編集 拡張軸と連携したレーザートラッキング溶接ティーチングプログラム +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ .. list-table:: :widths: 50 80 80 :header-rows: 0 :align: center * - **番号** - **コマンド形式** - **コメント** * - 1 - EXT_AXIS_PTP(1,1laserstart) - #外部軸運動 レーザーセンサー開始点 * - 2 - PTP(laserstart,10,-1,0) - #ロボット運動 レーザーセンサー開始点 * - 3 - LTSearchStart(3,20,10,10000) - #位置探知開始 * - 4 - LTSearchStop() - #位置探知停止 * - 5 - EXT_AXIS_PTP(1,1,seamPos) - #外部軸運動 溶接シーム開始点 * - 6 - Lin(seamPos,20,-1,00,0) - #ロボット運動 溶接シーム開始点 * - 7 - LTTrackOn() - #レーザートラッキング * - 8 - ARCStart(0,10000) - #溶接機アークスタート * - 9 - EXT_AXIS_PTP(1,1,laserend) - #外部軸運動 溶接シーム終了点 * - 10 - Lin( laserend,10,-1,0,0) - #ロボット運動 溶接シーム終了点 * - 11 - ARCEnd(0,10000) - #溶接機アークエンド * - 12 - LTTrackOff - #レーザートラッキング停止 位置決め完了時間 ++++++++++++++++ 拡張軸でUDP通信を確立した後、時間を入力し、「設定」ボタンをクリックすると設定が完了します。この設定項目は、拡張軸の運動停止を監視する時間を設定するために使用します。 .. figure:: robot_peripherals/190.png :align: center :width: 4in .. centered:: 図表 8.8‑12 位置決め完了時間の設定 2自由度台車テスト ~~~~~~~~~~~~~~~~~~~~~~ 拡張軸座標系で拡張軸方案を「5-2自由度台車」に設定すると、UDP通信インターフェースに入った後にこの内容が表示されます。それ以外の場合は表示できません。 .. figure:: robot_peripherals/191.png :align: center :width: 4in .. centered:: 図表 8.8‑13 拡張軸方案が「5-2自由度台車」の場合のインターフェース .. important:: 2自由度台車はデフォルトで拡張軸番号1と2を適用します。UDP通信が成功した後、ロボットの各種状態の中の拡張軸状態で拡張軸1と2のサーボアライメントを確認します。 .. figure:: robot_peripherals/192.png :align: center :width: 6in .. centered:: 図表 8.8‑14 2自由度台車の拡張軸サーボアライメント .. note:: .. image:: robot_peripherals/117.png :height: 0.75in :align: left 名称:**イネーブルボタン** 機能:拡張軸イネーブル状態、ボタンをクリックすると拡張軸がディセーブルになります .. note:: .. image:: robot_peripherals/118.png :height: 0.75in :align: left 名称:**ディセーブルボタン** 機能:拡張軸ディセーブル状態、ボタンをクリックすると拡張軸がイネーブルになります .. note:: .. image:: robot_peripherals/119.png :height: 0.75in :align: left 名称:**ホーミングボタン** 機能:拡張軸の現在位置ホーミング .. note:: .. image:: robot_peripherals/120.png :height: 0.75in :align: left 名称:**テストボタン** 機能:2自由度台車の機能テスト **Step1**:UDP通信が成功したら、「ディセーブル」ボタンをクリックして、2自由度台車の対応する拡張軸をイネーブルにします。ロボットの各種状態の中の拡張軸状態で拡張軸1と2のサーボイネーブルを確認します。 .. figure:: robot_peripherals/193.png :align: center :width: 6in .. centered:: 図表 8.8‑15 2自由度台車の拡張軸イネーブル **Step2**:拡張軸のイネーブルが成功したら、「ホーミング」ボタンをクリックし、拡張軸の現在位置ホーミングを設定します。ホーミングが成功すると、テストボタンがハイライト表示され、そうでない場合はグレー表示されます。 .. figure:: robot_peripherals/194.png :align: center :width: 4in .. centered:: 図表 8.8‑16 2自由度台車の現在位置ホーミング成功 **Step3**:2自由度台車の現在位置ホーミングが成功したら、「テスト」ボタンをクリックしてインターフェースに入り、運動方式を選択し、パラメータを入力して運動テストを行います。運動中に「停止」ボタンをクリックして停止機能をテストします。 - 運動方式:直線/円弧 - 距離:-5000~5000mm(直線運動方式) - 半径:1~5000mm(直線運動方式) - 角度:-360~360°(円弧運動方式) - 速度:1~100% .. figure:: robot_peripherals/195.png :align: center :width: 4in .. figure:: robot_peripherals/196.png :align: center :width: 4in .. centered:: 図表 8.8‑17 2自由度台車のテスト コントローラ+サーボドライバ(485通信) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ハードウェア配線 ++++++++++++++++++++++++++++ RS485通信を使用してサーボ拡張軸を制御する前に、サーボドライバのRS485通信インターフェースとロボット制御ボックスのRS485通信インターフェースを接続してください。FAIRINOロボットのイージーメイク制御ボックス電気インターフェースの概略図は以下の通りです。 .. figure:: robot_peripherals/112.png :align: center :width: 6in .. centered:: 図表 8.8‑18 FAIRINOロボットのミニ制御ボックス電気インターフェース概略図 DynatectサーボドライバFD100-750Cモデルを例にとり、このドライバのパネル端子概略図とFD100-750CのX3A-IN端子定義を参照すると、ロボットがFD100-750Cサーボ拡張軸と通信する場合、制御ボックスの485-A0端子と485-B0端子をそれぞれドライバのX3A-IN端子の4番ピンと5番ピンに接続する必要があります。(注意:サーボドライバのパネルに「485」マークの配線端子がありますが、この端子はまだユーザー使用のために開放されていないため、RS485通信ケーブルをこの端子に接続しないでください。)また、複数のサーボドライバを接続し、そのドライバがリンクの最後である場合、パネル上のRS485通信終端抵抗ディップスイッチ(2番ディップスイッチ)をオンにする必要があります。 .. figure:: robot_peripherals/113.png :align: center :width: 6in .. centered:: 図表 8.8‑19 FD100-750Cドライバパネル .. figure:: robot_peripherals/114.png :align: center :width: 6in .. centered:: 図表 8.8‑20 FD100-750CのX3A-IN端子定義 通信設定 ++++++++++++++ RS485通信ケーブルが正しく接続され、ロボットとサーボ拡張軸の両方が正常に電源投入されていることを確認した後、ロボットのWebAppを開き、「初期設定」->「周辺機器」->「拡張軸」をクリックして「拡張軸設定」インターフェースに入ります。下図の通りです。 .. figure:: robot_peripherals/197.png :align: center :width: 4in .. centered:: 図表 8.8‑21 RS485拡張軸設定 「拡張軸設定」インターフェースで、組み合わせ方式が「コントローラ + サーボドライバ」の画像をクリックして詳細設定インターフェースに入ります。サーボドライバ設定で、番号として「1」を選択し(注意:複数のサーボを接続する場合、この番号は異なるサーボを区別するために使用され、後でこの番号に何度も触れます)、メーカーとして「Dynatect」を選択し、対応するサーボドライバの型式を選択します。ここでの型式は「FD00-750C」、ソフトウェアバージョンはV1.0、サーボドライバに対応する解像度を入力します(ここでは131072)、メカニカルモデルに応じて機械伝達比を入力します(ここでは15.45)、「設定」ボタンをクリックします。 .. figure:: robot_peripherals/198.png :align: center :width: 4in .. centered:: 図表 8.8‑22 サーボドライバ設定 これでロボットとサーボドライバの485通信設定が完了しました。WebAppの右側にある「サーボ状態バー」でサーボのリアルタイム状態情報を確認できます。下図の通りです。 .. figure:: robot_peripherals/199.png :align: center :width: 4in .. centered:: 図表 8.8‑23 サーボ状態バー ここで、順番に拡張軸デバイスのイネーブルとホーミング方式の設定を行った後、運動テストを行うことができます。安全を確保した上で、このマニュアルに従って以下のテスト操作を行ってください。 設定済みサーボドライバ ++++++++++++++++++++++ .. note:: .. image:: robot_peripherals/200.png :height: 0.75in :align: left 名称:**表示ボタン** 機能:クリックしてサーボドライバの設定情報を表示 .. note:: .. image:: robot_peripherals/117.png :height: 0.75in :align: left 名称:**イネーブルボタン** 機能:サーボドライバイネーブル状態、ボタンをクリックするとサーボドライバがディセーブルになります .. note:: .. image:: robot_peripherals/118.png :height: 0.75in :align: left 名称:**ディセーブルボタン** 機能:サーボドライバディセーブル状態、ボタンをクリックするとサーボドライバがイネーブルになります .. note:: .. image:: robot_peripherals/119.png :height: 0.75in :align: left 名称:**ホーミングボタン** 機能:サーボドライバのホーミング方式設定 .. note:: .. image:: robot_peripherals/120.png :height: 0.75in :align: left 名称:**テストボタン** 機能:サーボドライバのテスト .. note:: .. image:: robot_peripherals/201.png :height: 0.75in :align: left 名称:**サーボエラークリアボタン** 機能:サーボドライバがエラーを通知したときにクリックしてクリア サーボ制御モードとイネーブル ******************************** 「設定済みサーボドライバ」で、制御モードとして「位置モード」を選択し、対応するサーボ番号を選択し、「ディセーブル」ボタンをクリックします。このとき、まずサーボドライバ番号が設定され、設定成功後に制御モードが設定され、制御モードの設定が成功したらサーボドライバをイネーブルにします(注意:制御モードを切り替えた後、まずサーボドライバをディセーブルにし、その後サーボドライバをイネーブルにしないと、サーボの制御モード切り替えは有効になりません。サーボイネーブルが成功すると、制御モードの切り替えは無効になります)。 .. figure:: robot_peripherals/202.png :align: center :width: 4in .. centered:: 図表 8.8‑24 サーボ制御モードとイネーブル サーボイネーブルが成功したら、ロボットの各種状態バーの「Servo」で「サーボイネーブル」状態ランプが点灯しているのが確認できます。これはサーボドライバがイネーブルになったことを示します。「イネーブル」状態ボタンをクリックするとサーボドライバがディセーブルになり、「サーボイネーブル」状態ランプが消灯します。 .. figure:: robot_peripherals/103.png :align: center :width: 4in .. centered:: 図表 8.8‑25 サーボドライバ状態バー サーボホーミング **************** サーボドライバのイネーブルが成功すると、「ホーミング」ボタンがハイライト表示され、ボタンをクリックして設定インターフェースに入ります。ホーミングモードとして「現在位置ホーミング」を選択し、ホーミング速度を5mm/s、ゼロ点クランプ速度を1mm/sに設定し、「設定」ボタンをクリックすると、サーボの現在位置ホーミング操作が完了します。ロボットの各種状態バーの「Servo」で、現在の「サーボ位置」が0であることが確認できます。(このマニュアルを完全に読んだ後、ホーミングモードを「負リミットホーミング」または「正リミットホーミング」に選択してホーミングテストを行ってください。) .. figure:: robot_peripherals/204.png :align: center :width: 6in .. centered:: 図表 8.8‑26 サーボホーミング サーボ運動 *************** 実際にサーボモータを制御して運動させる前に、サーボモータの「位置モード」と「速度モード」を理解してください。再度注意します。 **位置モード**:適切な運動速度と目標位置パラメータを入力できます。サーボは設定された速度で目標位置まで運動し、目標位置に到達するとサーボは運動を停止します。 **速度モード**:適切な目標速度を入力できます。サーボは設定された目標速度で運動し続け、目標速度を0に設定するかサーボモータをディセーブルにするまで運動します。 制御モードを切り替えると、「現在の制御モード」表示は自動的に切り替わります(注意:制御モードを切り替えた後、まずサーボをディセーブルにし、その後サーボをイネーブルにしないと、サーボの制御モード切り替えは有効になりません)。現在サーボが「位置モード」でない場合は、サーボを位置モードに切り替えてください。「目標位置」に50mm、運転速度に5mm/sを入力し、安全を確認した上で「設定」ボタンをクリックすると、サーボモータは設定されたパラメータに従って運動します。ロボットの各種状態バーの「Servo」でサーボの位置や速度などをリアルタイムで観察できます。 .. figure:: robot_peripherals/205.png :align: center :width: 4in .. centered:: 図表 8.8‑27 サーボ運動デバッグ(位置モード) サーボの制御モードを「速度モード」に変更し、「イネーブル」状態ボタンをクリックしてサーボドライバをディセーブルにし、その後「ディセーブル」状態ボタンをクリックすると、サーボは速度モードに切り替わります(注意:サーボモータが運動を開始した後は、目標速度を0に設定することでのみサーボモータを停止できます)。目標速度として5mm/sを入力し、「設定」ボタンをクリックすると、サーボモータは5mm/sの速度で運動を続けます。同様に、ロボットの各種状態バーの「Servo」でサーボの位置や速度などをリアルタイムで観察できます。 .. figure:: robot_peripherals/206.png :align: center :width: 4in .. centered:: 図表 8.8‑28 サーボ運動デバッグ(速度モード) 高度な設定 ++++++++++++++ ロボットが衝突したり、緊急停止ボタンが押されるなどの緊急事態が発生した場合に、拡張軸が緊急停止をトリガーし、設定された緊急停止減速度に従って運動を停止できるようにし、衝突アラームが復旧した後にコマンドを継続して発行して拡張軸の運転を再開できるようにする必要があります。高度な設定で、サーボ加減速度とサーボ緊急停止加減速度を設定する必要があります。下図の通りです。 .. figure:: robot_peripherals/175.png :align: center :width: 4in .. centered:: 図表 8.8‑29 高度な設定 拡張軸プログラミング ++++++++++++++++++++++++++ 「ティーチングプログラム」->「プログラム作成」で新しいユーザープログラム「testServo.lua」を作成し、「周辺機器コマンド」を選択します。 .. figure:: robot_peripherals/121.png :align: center :width: 6in .. centered:: 図表 8.8‑30 周辺機器コマンドを開く 「拡張軸」をクリックし、拡張軸コマンド追加インターフェースを開きます。 .. figure:: robot_peripherals/122.png :align: center :width: 6in .. centered:: 図表 8.8‑31 拡張軸コマンド追加ページを開く 拡張軸コマンド追加ページで組み合わせ方式として「コントローラ + サーボドライバ(485)」を選択し、制御モードを「位置モード」に設定し、右側の「追加」ボタンをクリックします。 .. figure:: robot_peripherals/123.png :align: center :width: 6in .. centered:: 図表 8.8‑32 拡張軸の制御モード設定 拡張軸コマンド追加ページの一番下までスクロールし、「適用」ボタンをクリックします。 .. figure:: robot_peripherals/124.png :align: center :width: 6in .. centered:: 図表 8.8‑33 拡張軸コマンドの適用 これで「testServo.lua」プログラムにサーボ制御モードを切り替える一連のコマンドが表示されます。ロボットを自動モードに切り替え、このプログラムを実行できます。 .. figure:: robot_peripherals/125.png :align: center :width: 6in .. centered:: 図表 8.8‑34 サーボ制御モード設定プログラム ユーザープログラムによってサーボ運動を制御するにはどうすればよいですか?同様に拡張軸コマンド追加インターフェースを開き、下図のようにパラメータ設定欄を見つけ、位置モードを例にとり、目標位置と運転速度を入力し、「追加」ボタンをクリックします。拡張軸コマンド追加ページの一番下までスクロールし、「適用」ボタンをクリックし、拡張軸コマンド追加インターフェースを閉じます。 .. figure:: robot_peripherals/126.png :align: center :width: 6in .. centered:: 図表 8.8‑35 位置モード運動コマンドの追加 「testServo.lua」プログラムにサーボ運動コマンド「AuxServoSetTargetPos(1,50,5)」が追加されます。コマンド関数の3つのパラメータの意味はそれぞれ以下の通りです。 - 1:サーボ番号は1。 - 50:目標位置。 - 5:目標速度。 .. figure:: robot_peripherals/127.png :align: center :width: 6in .. centered:: 図表 8.8‑36 位置モードサーボ運動プログラム ロボットを自動モードに切り替え、このプログラムを実行すると、サーボは5mm/sの速度で50mmの位置に運動します。 これでRS485によるサーボ拡張軸制御の初期設定とテストが完了しました。実際の状況に応じて、ロボット運動とサーボ運動を組み合わせたプログラムを作成できます。下図はサンプルプログラムです。 拡張軸とロボットの協調運動プログラム例 **************************************** .. list-table:: :widths: 50 80 80 :header-rows: 0 :align: center * - **番号** - **コマンド形式** - **コメント** * - 1 - AuxServoSetTargetPos(1,50,5) - #拡張軸をリセット位置に運動 * - 2 - if(GetDI(8,0) == 1) then - #CI0入力が有効な場合 * - 3 - AuxServoSetTargetPos(1,50,5) - #拡張軸を50mmに運動 * - 4 - PTP(testptp1,100,-1,0) - #ロボットをtestptp1点に運動 * - 5 - elseif(GetDI(9,0) == 1) then - #CI1入力が有効な場合 * - 6 - AuxServoSetTargetPos(1,150,5) - #拡張軸を150mmに運動 * - 7 - PTP(testptp2,100,-1,0) - #ロボットをtestptp2点に運動 * - 8 - else - #CI0とCI1の入力が両方とも無効な場合 * - 9 - AuxServoSetTargetPos(1,300,5) - #拡張軸を300mmに運動 * - 10 - PTP(testptp3,100,-1,0) - #ロボットをtestptp3点に運動 * - 11 - end - #終了 まとめ +++++++++ 以上をまとめると、協働ロボットとサーボ拡張軸のRS485通信を設定する際の注意点は以下の通りです。 1. 協働ロボットとサーボドライバのRS485通信ケーブルを正しく接続すること。 2. サーボ拡張軸の制御モードを正しく選択すること。 3. 制御モードを切り替えた後は、必ず先にディセーブルし、その後サーボをイネーブルにしないと、制御モードの切り替えが有効にならないこと。 2自由度台車 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2自由度台車の設定 ++++++++++++++++++++++++++++++++++++ 協働ロボットはUDPを介してPLCと通信し、それによって2自由度台車の運動を制御します。したがって、2自由度台車の設定と制御を行う前に、ロボットとPLC間のネットワーク接続を確認し、ネットワーク接続が正常で、関連デバイスの電源が投入されていることを確認してください。2自由度台車の設定手順は以下の通りです。 ①拡張軸タイプの選択と拡張軸座標系の適用 ②UDP通信設定とロード ③2自由度台車のイネーブルとホーミング 具体的な操作は以下の通りです。 (1) ロボットティーチングペンダント画面に入り、「初期設定」、「基本」、「座標系」、「拡張軸」を順にクリックします。拡張軸座標系を選択します。 .. note:: exaxis0は選択できないことに注意してください。 .. figure:: robot_peripherals/211.png :align: center :width: 4in .. centered:: 図表 8.8‑37 拡張軸座標系の選択 (2) 「修正」をクリックし、「修正ウィザード」を見つけ、拡張軸方案として「5-2自由度台車」を選択し、「修正ウィザード」内の「適用」ボタンと「現在の拡張軸座標系」内の「適用」ボタンを順にクリックします。 .. figure:: robot_peripherals/212.png :align: center :width: 4in .. centered:: 図表 8.8‑38 拡張軸方案の選択 (3) さらに「初期設定」、「周辺機器」、「拡張軸」の順にクリックし、組み合わせ方式として「コントローラ+PLC(UDP)」を選択します。対応するUDP通信設定パラメータを入力します(デフォルトパラメータは図の通り)、「設定」と「ロード」ボタンを順にクリックし、ロボットとPLC間のUDPネットワーク接続を確立します。 .. figure:: robot_peripherals/110.png :align: center :width: 4in .. centered:: 図表 8.8‑39 UDP通信パラメータ設定 2自由度台車のイネーブルとホーミング ++++++++++++++++++++++++++++++++++++ (1) 上記の手順で「5-2自由度台車」拡張軸方案と対応する拡張軸座標系を適用しているため、ページには現在の拡張軸方案が「5-2自由度台車」と表示されます。「イネーブル」ボタンをクリックすると、2自由度台車が自動的にイネーブルになります。 .. figure:: robot_peripherals/193.png :align: center :width: 6in .. centered:: 図表 8.8‑40 台車のイネーブル (2) ティーチングページ右側のUDP拡張軸状態バーで台車のイネーブル状況を監視できます。台車の左輪と右輪はそれぞれ拡張軸1軸と2軸に対応します。 .. figure:: robot_peripherals/116.png :align: center :width: 4in .. centered:: 図表 8.8‑41 拡張軸状態の監視 (3) 台車の両輪軸がともにイネーブルになったことを確認した後、「現在位置ホーミング」アイコンボタンをクリックすると、台車の両輪軸が順に現在位置でホーミングされます。 .. figure:: robot_peripherals/194.png :align: center :width: 4in .. centered:: 図表 8.8‑42 台車のホーミング 2自由度台車の運動制御 ++++++++++++++++++++++++++++++++++++ 台車を運動させる前に、拡張軸方案「5-2自由度台車」が選択され、対応する拡張軸座標系が適用され、UDP通信の設定とロードが完了し、台車のイネーブルとホーミングが完了していることを確認してください。 (1) 2自由度台車の直線運動:ティーチング画面を開き、「初期設定」、「周辺機器」、「拡張軸」の順にクリックし、組み合わせ方式として「コントローラ+PLC(UDP)」を選択し、現在の拡張軸方案が「5-2自由度台車」であることを確認し、「拡張軸テスト」で運動方式として「直線」を選択し、運動距離と運動速度を入力し、安全を確認した後、「運動」ボタンをクリックすると、台車は設定された距離と速度で直線運動を行います。運動距離が正の値の場合は台車は前進運動を行い、負の値の場合は後退運動を行います。台車の運動中に「停止」ボタンをクリックすると、台車は即座に停止します。 .. figure:: robot_peripherals/195.png :align: center :width: 4in .. centered:: 図表 8.8‑43 台車の直線運動 (2) 2自由度台車の円弧運動:ティーチング画面を開き、「初期設定」、「周辺機器」、「拡張軸」の順にクリックし、組み合わせ方式として「コントローラ+PLC(UDP)」を選択し、現在の拡張軸方案が「5-2自由度台車」であることを確認し、「拡張軸テスト」で運動方式として「円弧」を選択し、半径、角度、速度を入力し、安全を確認した後、「運動」ボタンをクリックすると、台車は設定された半径と角度で円弧運動を行います。角度値が正の値の場合は台車は右旋回運動を行い、負の値の場合は左旋回運動を行います。台車の運動中に「停止」ボタンをクリックすると、台車は即座に停止します。 .. figure:: robot_peripherals/196.png :align: center :width: 4in .. centered:: 図表 8.8‑44 台車の円弧運動 コンベアトラッキング設定 ---------------------------- コンベアトラッキング設定手順 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ **Step1**:「初期設定」->「周辺機器」->「トラッキング」で「コンベア」メニュー項目を選択し、コンベアトラッキング設定インターフェースに入り、「コンベアI/O設定」ボタンをクリックしてコンベア機能に必要なI/Oを素早く設定します。その後、実際の使用機能状況に応じて対応するパラメータを設定します。ここではビジョンレスのトラッキング・グラスピング機能を例にとり、コンベアのエンコーダチャンネル、解像度、リードを設定し、ビジョン連携は「なし」を選択し、「設定」をクリックします。 .. figure:: robot_peripherals/128.png :align: center :width: 4in .. centered:: 図表 8.9‑1 コンベア設定 **Step2**:次に、グラスピング点の補正値を設定します。これはX、Y、Zの3方向の補正距離で、デバッグ中に実際の状況に応じて設定できます。 .. figure:: robot_peripherals/129.png :align: center :width: 4in .. centered:: 図表 8.9‑2 コンベアグラスピング点補正設定 **Step3**:コンベアを起動し、キャリブレーションした物体を定義されたA点の位置まで移動させ、コンベアを停止します。ロボットを移動させ、ロボット末端のキャリブレーションロッドの先端点をキャリブレーションした物体の先端点に合わせ、「開始点A」ボタンをクリックすると、ダイアログボックスが表示され、現在のエンコーダ値とロボットの位置姿勢が表示されます。「設定」をクリックして開始点Aのキャリブレーションを完了します。 .. figure:: robot_peripherals/130.png :align: center :width: 3in .. centered:: 図表 8.9‑3 開始点A設定 **Step4**:基準点ボタンをクリックして基準点キャリブレーションに入ります。基準点を記録する際に、ロボットのグラスピング時の高さと姿勢を記録します。トラッキングのたびに、記録された基準点の高さと姿勢でトラッキング・グラスピングを行います。AB点と同じ高さでなくても構いません。「設定」をクリックして基準点のキャリブレーションを完了します。 .. figure:: robot_peripherals/131.png :align: center :width: 3in .. centered:: 図表 8.9‑4 基準点設定 **Step5**:コンベアを起動し、キャリブレーションした物体を定義されたB点の位置まで移動させ、コンベアを停止します。ロボットを移動させ、ロボット末端のキャリブレーションロッドの先端点をキャリブレーションした物体の先端点に合わせ、「終了点B」ボタンをクリックすると、ダイアログボックスが表示され、現在のエンコーダ値とロボットの位置姿勢が表示されます。「設定」をクリックして終了点Bのキャリブレーションを完了します。 .. figure:: robot_peripherals/132.png :align: center :width: 3in .. centered:: 図表 8.9‑5 終了点B設定 コンベアトラッキングティーチングプログラム ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. list-table:: :widths: 50 80 80 :header-rows: 0 :align: center * - **番号** - **コマンド形式** - **コメント** * - 1 - PTP(conveyorstart,30,-1,0) - #ロボットグラスピング開始点 * - 2 - While(1) do - #繰り返しグラスピング * - 3 - ConveyorlODetect(10000) - #I/Oリアルタイム物体検出 * - 4 - ConveyorGetTrackData(1) - #物体位置取得 * - 5 - ConveyorTrackStart(1) - #コンベアトラッキング開始 * - 6 - Lin(cvrCatchPoint,10,-1,0,0) - #ロボットがグラスピング点に到達 * - 7 - MoveGripper(1,255,255,0,10000) - #グリッパで物体をグラスピング * - 8 - Lin(cvrRaisePoint,10,-1,0,0) - #ロボット持ち上げ * - 9 - ConveyorTrackEnd() - #コンベアトラッキング終了 * - 10 - PTP(conveyorraise,30,-1,0) - #ロボットが待機点に到達 * - 11 - PTP(conveyorend,30,-1,0) - #ロボットが配置点に到達 * - 12 - MoveGripper(1,0,255,0,10000) - #グリッパ開放 * - 13 - PTP(conveyorstart,50,-1,0) - #ロボットが再度グラスピング開始点に戻り、次のグラスピングに備える * - 14 - end - #終了 姿勢アダプティブ設定 ---------------------- 姿勢アダプティブ設定手順 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ **Step1**:「初期設定」->「周辺機器」->「トラッキング」で「トラッキング姿勢」メニュー項目を選択し、姿勢調整設定インターフェースに入ります。板材のタイプとロボットの実際の作業移動方向を選択し、ロボットの姿勢を調整し、姿勢点A、姿勢点B、姿勢点Cをそれぞれ設定します。通常、Aは平面姿勢点、Bは立ち上がりエッジ姿勢点、Cは立ち下がりエッジ姿勢点です。 .. figure:: robot_peripherals/133.png :align: center :width: 3in .. centered:: 図表 8.10‑1 姿勢調整設定 .. important:: A姿勢とB姿勢、およびA姿勢とC姿勢の間の姿勢変化は、アプリケーションの要件を満たす範囲でできるだけ小さくすることが望ましいです。姿勢アダプティブ機能は補助アプリケーション機能であり、通常はシームトラッキングと組み合わせて使用します。 **Step2**:プログラムティーチングコマンド画面で「Adjust」コマンドを選択します。具体的なプログラムティーチングの要件に応じて、適切な場所にコマンドを追加します。 .. figure:: robot_peripherals/134.png :align: center :width: 6in .. centered:: 図表 8.10‑2 姿勢調整コマンド編集 姿勢アダプティブと拡張軸およびレーザートラッキングを連携させた溶接ティーチングプログラム ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. list-table:: :widths: 50 80 80 :header-rows: 0 :align: center * - **番号** - **コマンド形式** - **コメント** * - 1 - EXT_AXIS_PTP(1,1laserstart) - #外部軸運動 レーザーセンサー開始点 * - 2 - PTP(laserstart,10,-1,0) - #ロボット運動 レーザーセンサー開始点 * - 3 - LTSearchStart(3,20,10,10000) - #位置探知開始 * - 4 - LTSearchStop() - #位置探知停止 * - 5 - EXT_AXIS_PTP(1,1,seamPos) - #外部軸運動 溶接シーム開始点 * - 6 - Lin(seamPos,20,-1,00,0) - #ロボット運動 溶接シーム開始点 * - 7 - LTTrackOn() - #レーザートラッキング * - 8 - ARCStart(0,10000) - #溶接機アークスタート * - 9 - PostureAdjustOn(0,PosA,PosC,PosB,1000) - #姿勢アダプティブ調整開始 * - 10 - EXT_AXIS_PTP(1,1,laserend) - #外部軸運動 溶接シーム終了点 * - 11 - Lin( laserend,10,-1,0,0) - #ロボット運動 溶接シーム終了点 * - 12 - ARCEnd(0,10000) - #溶接機アークエンド * - 13 - PostureAdjustOff(0) - #姿勢アダプティブ調整終了 * - 14 - LTTrackOff - #レーザートラッキング停止 力/トルクセンサー周辺機器設定 ----------------------------------- 力/トルクセンサー設定手順 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ **Step1**:「初期設定」->「周辺機器」->「末端ツール」のメニューバーで、「適用デバイス」をクリックして末端周辺機器設定インターフェースに入ります。 デバイスタイプとして「力センサーデバイス」を選択します。力センサーの設定情報は、メーカー、タイプ、ソフトウェアバージョン、マウント位置に分類されます。ユーザーは具体的な生産ニーズに応じて対応する力センサー情報を設定できます。ユーザーが設定を変更する必要がある場合は、まず対応する番号を選択し、「クリア」ボタンをクリックして対応する情報を消去し、再度ニーズに応じて設定します。 .. figure:: robot_peripherals/135.png :align: center :width: 4in .. centered:: 図表 8.11‑1 力/トルクセンサー設定 .. important:: 設定をクリアする前に、対応するセンサーは非アクティブ状態である必要があります。 **Step2**:力センサーの設定が完了すると、ユーザーはページ下部の情報テーブルで対応する力センサー情報を確認できます。設定ミスを発見した場合は、「クリア」ボタンをクリックして再設定できます。 .. figure:: robot_peripherals/136.png :align: center :width: 4in .. centered:: 図表 8.11‑2 力/トルクセンサー設定情報 **Step3**:設定が完了した力センサーの番号を選択し、「リセット」ボタンをクリックします。ページにコマンド送信成功のメッセージが表示された後、「アクティブ化」ボタンをクリックすると、力センサー情報テーブルのアクティブ状態を確認して、アクティブ化が成功したかどうかを判断できます。また、力センサーには初期値があるため、ユーザーは使用ニーズに応じて「ゼロ点補正」と「ゼロ点除去」を選択します。力センサーのゼロ点補正は、力センサーが水平垂直下向きであり、ロボットに負荷が設定されていない状態で行う必要があります。 **Step4**:力センサーの設定が完了したら、センサータイプのツール座標系を設定する必要があります。センサーと末端ツール中心の距離に応じて直接センサーツール座標系の値を入力して適用します。 力/トルクセンサー負荷同定 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 「初期設定」->「基本」->「負荷」メニューバーで、「センサー」をクリックして力/トルクセンサー負荷インターフェースに入ります。 特定姿勢での同定:末端負荷データをクリアし、力センサーを設定した後、センサー座標系を確立し、ロボットの末端姿勢を垂直下向きに調整し、「ゼロ点補正」を行った後、末端負荷を取り付けます。まず対応するセンサーツール座標系を選択し、センサーとツールが垂直下向きになるようにロボットを調整し、データを記録して質量を計算します。次に、ロボットで3つの異なる姿勢を調整し、それぞれ3組のデータを記録して重心を計算し、誤りがないことを確認した後、「適用」をクリックします。 **動的同定**:末端負荷データをクリアし、力センサーを設定した後、センサー座標系を確立し、ロボットの末端姿勢を垂直下向きに調整し、「ゼロ点補正」を行った後、末端負荷を取り付けます。「同定開始」をクリックし、ロボットを手動操作して運動させ、次に「同定終了」をクリックすると、負荷結果が自動的にロボットに適用されます。 **自動ゼロ点調整**:センサーが初期位置を記録した後、自動的にゼロ点調整が可能です。 .. figure:: robot_peripherals/137.png :align: center :width: 4in .. centered:: 図表 8.11‑3 力/トルクセンサー負荷同定 力/トルクセンサー補助ドラッグ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ センサーを設定した後、センサーを組み合わせてロボットの手動操作をより良く補助できます。初回使用時は右側の画像のデータに従って設定し、適用を完了すると、ドラッグモードに入らなくても、末端力センサーを直接ドラッグすることで、ロボットを固定姿勢で移動させることができます(下図のデータは参考基準です)。 .. figure:: robot_peripherals/138.png :align: center :width: 4in .. centered:: 図表 8.11‑4 力/トルクセンサードラッグロック .. note:: 特異点戦略は、力センサー補助ロックの下で開発された特異点通過および回避機能です。 特異点回避戦略はデフォルトの機能オプションであり、補助ドラッグを開始するとデフォルトで回避機能が有効になります。特異点回避は、ロボットが特異点構型にあるときに仮想力を加えてロボットを特異点構型から遠ざける機能です。 特異点構型: **肘特異点**:回転軸2、3、4が同一平面内にある状態。このとき肘関節が完全伸展または完全収縮状態ですが、FRロボットの機械的リミットのため、完全収縮のこのような姿勢にはロボットは到達できません。 **手首特異点**:回転軸4、6が平行な状態。このときFRロボットの機械的リミットのため、このような姿勢にはロボットは到達できません。 **肩特異点**:手首中心点が回転軸1、2によって構成される平面上にある状態。 特異点通過機能は、「特異点戦略」として「通過」を選択して適用します。ロボットが現在の位置姿勢が特異点構型にあることを検出すると、自動的に電流ループドラッグモードに切り替わります。特異点構型から抜けたことを検出すると、ドラッグモードは力センサー補助ドラッグに切り替わって運動を続けます。 **アダプティブ選択**:組み立てが必要な場合にオンにします。オンにするとドラッグが重くなります。 **慣性パラメータ**:ドラッグ中の感触を調整します。技術者の指導の下で慎重に操作してください。 **ダンピングパラメータ**: - 並進方向:推奨設定パラメータは[100-200]の間 - 回転方向:推奨設定パラメータは[3-10]の間、ただしRZ方向の設定範囲は[0.1-5] - 効果:センサーを使ってドラッグする場合、ダンピングを大きくするとドラッグが困難になり、小さくするとロボットをドラッグしすぎて軽くなります(小さすぎないことを推奨) - ダンピングパラメータの全体範囲:並進XYZ:[100-1000];回転RX、RY:[3-50], RZ:[2-10] - 最大ドラッグ力は50、最大ドラッグ速度は180 **スティッフネスパラメータ**:すべて0に設定 **ドラッグ力しきい値**:並進XYZは[5-10];回転RX、RY、RZは[0.5-5] .. important:: 並進方向XYZまたは回転方向RX、RY、RZの力しきい値を大きくすることでロックを実現します。 力/トルクセンサー衝突検出 ~~~~~~~~~~~~~~~~~~~~~~~~~ コマンド説明:「FT_Guard」コマンドは衝突検出コマンドです。対応するセンサー座標系を選択し、有効にするトルク方向検出をチェックし、現在値、衝突最大しきい値、衝突最小しきい値の3項目を設定します。衝突検出条件の通常範囲は(現在値 - 最小しきい値、現在値 + 最大しきい値)です。「開始」と「終了」のコマンドをプログラムに追加します。 .. figure:: robot_peripherals/139.png :align: center :width: 6in .. centered:: 図表 8.11‑5 FT_Guardコマンド編集 プログラム例: .. list-table:: :widths: 50 80 80 :header-rows: 0 :align: center * - **番号** - **コマンド形式** - **コメント** * - 1 - FT_Guard(1,1,1,1,1,0,0,0,5,0,0,0,0,0,10,0,0,0,0,0,5,0,0,0,0,0) - #力/トルク衝突検出開始 * - 2 - PTP(template1,100,-1,0) - #運動コマンド * - 3 - FT_Guard(0,1,1,1,1,0,0,0,5,0,0,0,0,0,10,0,0,0,0,0,5,0,0,0,0,0) - #力/トルク衝突検出終了 力/トルクセンサー力制御運動 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ コマンド説明:「FT_Control」コマンドは力制御運動コマンドで、ロボットを設定された力の近くで運動させることができ、主に研磨シーンで使用されます。対応するセンサー座標系を選択し、有効にするトルク方向検出をチェックし、検出しきい値、および各方向のPID比例係数(通常pは0.001に設定)、最大調整距離(X,Y,Zに対応)と最大調整角度(RX,RY,RZに対応)を設定し、「開始」と「終了」のコマンドをプログラムに追加します。 .. figure:: robot_peripherals/140.png :align: center :width: 6in .. centered:: 図表 8.11‑6 FT_Controlコマンド編集 プログラム例: .. list-table:: :widths: 50 80 80 :header-rows: 0 :align: center * - **番号** - **コマンド形式** - **コメント** * - 1 - FT_Control(1,11,1,0,1,0,0,0,10,0,5,0,0,0,0.001,0,0,0,0,0,0,0,0,10,5) - #力/トルク運動制御開始 * - 2 - Lin(template3,100,-1,0,0) - #運動コマンド * - 3 - FT_Control(0,11,1,0,1,0,0,0,10,0,5,0,0,0,0.001,0,0,0,0,0,0,0,10,5) - #力/トルク運動制御終了 力/トルクセンサー螺旋挿入 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ コマンド説明:「FT_Spiral」コマンドは螺旋線探索挿入で、一般に円筒軸の軸穴組立動作に使用されます。動作を実行する前に、ロボットの末端を穴のおおよその位置までドラッグし、現在のシーンに応じてコマンドのパラメータを設定し、プログラムに追加して実行すると、ロボットは螺旋状の運動で探索を行います。 .. figure:: robot_peripherals/141.png :align: center :width: 6in .. centered:: 図表 8.11‑7 FT_Spiralコマンド編集 プログラム例: .. list-table:: :widths: 50 80 80 :header-rows: 0 :align: center * - **番号** - **コマンド形式** - **コメント** * - 1 - FT_Control(1,10,0,0,1,0,0,0,0,0,5,0,0,0,0.0005,0,0,0,0,0,0,10,0) - #力/トルク運動制御開始 * - 2 - FT_SpiralSearch(0,0.7,0,60000,5) - #螺旋挿入 * - 3 - FT_Control(0,10,0,0,1,0,0,0,0,0,5,0,0,0,0.0005,0,0,0,0,0,0,10,0) - #力/トルク運動制御終了 力/トルクセンサー回転挿入 ~~~~~~~~~~~~~~~~~~~~~~~~~ コマンド説明:「FT_Rot」コマンドは回転探索挿入で、一般に螺旋挿入動作を受けて、キー軸の軸穴組立に使用されます。動作を実行する前に、ロボットの末端を螺旋探索で見つけた穴または完全に合わせたティーチング穴位置まで移動し、現在のシーンに応じてコマンドのパラメータを設定し、プログラムに追加して実行すると、ロボットは緩やかな回転で探索を行います。 .. figure:: robot_peripherals/142.png :align: center :width: 6in .. centered:: 図表 8.11‑8 FT_Rotコマンド編集 プログラム例: .. list-table:: :widths: 50 80 80 :header-rows: 0 :align: center * - **番号** - **コマンド形式** - **コメント** * - 1 - FT_Control(1,10,0,0,1,0,0,0,0,0,5,0,0,0,0.0005,0,0,0,0,0,0,10,0) - #力/トルク運動制御開始 * - 2 - FT_RotInsertion(0,3,0,5,1,0,1) - #回転挿入 * - 3 - FT_Control(0,10,0,0,1,0,0,0,0,0,5,0,0,0,0.0005,0,0,0,0,0,0,10,0) - #力/トルク運動制御終了 力/トルクセンサー直線挿入 ~~~~~~~~~~~~~~~~~~~~~~~~~ コマンド説明:「FT_Lin」コマンドは回転探索挿入で、一般に螺旋挿入動作または回転挿入動作を受けて、キー軸の軸穴組立に使用されます。動作を実行する前に、ロボットの末端を螺旋探索で見つけた穴位置、回転挿入動作終了位置、または完全に合わせたティーチング穴位置まで移動し、現在のシーンに応じてコマンドのパラメータを設定し、プログラムに追加して実行すると、ロボットは設定された方向に直線運動を行います。 .. figure:: robot_peripherals/143.png :align: center :width: 6in .. centered:: 図表 8.11‑9 FT_Linコマンド編集 プログラム例: .. list-table:: :widths: 50 80 80 :header-rows: 0 :align: center * - **番号** - **コマンド形式** - **コメント** * - 1 - FT_Control(1,10,0,0,1,0,0,0,0,0,5,0,0,0,0.0005,0,0,0,0,0,0,10,0) - #力/トルク運動制御開始 * - 2 - FT LinInsertion(0,50,1,0,100,1) - #直線挿入 * - 3 - FT_Control(0,10,0,0,1,0,0,0,0,0,5,0,0,0,0.0005,0,0,0,0,0,0,10,0) - #力/トルク運動制御終了 力/トルクセンサー表面位置決め ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ コマンド説明:「FT_FindSurface」コマンドは表面位置決めで、一般に物体の表面を探すために使用されます。現在のシーンに応じて、対応する座標系、移動方向、移動軸、探索直線速度、探索直線加速度、最大探索距離、動作終了力しきい値などのパラメータを設定し、プログラムに追加して実行すると、ロボットの末端がゆっくりと表面に向かって移動を開始します。 .. figure:: robot_peripherals/144.png :align: center :width: 6in .. centered:: 図表 8.11‑10 FT_FindSurfaceコマンド編集 プログラム例: .. list-table:: :widths: 50 80 80 :header-rows: 0 :align: center * - **番号** - **コマンド形式** - **コメント** * - 1 - PTP(1,30,-1,0) - #初期位置 * - 2 - FT FindSurface(0,1,3,1,0,100,5) - #平面位置決め 力/トルクセンサー中心位置決め ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ コマンド説明:「FT_CalCenter」コマンドは中心位置決めで、一般に2つの表面の中間平面を探すために使用されます。現在のシーンに応じて、対応する座標系、移動方向、移動軸、探索直線速度、探索直線加速度、最大探索距離、動作終了力しきい値などのパラメータを設定し、A平面とB平面をそれぞれ探し、プログラムに追加して実行すると、動作が開始され、ロボットはゆっくりと表面Aに向かって移動し、A面を位置決めした後、ロボットはゆっくりと表面Bに向かって移動し、B面を位置決めした後、中心平面の位置を計算できます。 .. figure:: robot_peripherals/145.png :align: center :width: 6in .. centered:: 図表 8.11‑11 FT_CalCenterコマンド編集 プログラム例: .. list-table:: :widths: 20 40 50 :header-rows: 0 :align: center * - **番号** - **コマンド形式** - **コメント** * - 1 - PTP(1,30,-1,0) - #初期位置 * - 2 - FT_CalCenterStart() - #表面位置決め開始 * - 3 - FT_Control(1,10,0,0,1,0,0,0,0,0,-10,0,0,0,0.00001,0,0,0,0,0,0,100,0) - #力/トルク運動制御開始 * - 4 - FT_FindSurface(1,2,2,10,0,200,5) - #平面Aを位置決め * - 5 - FT_Control(0,10,0,0,1,0,0,0,0,0,-10,0,0,0,0.00001,0,0,0,0,0,0,100,0) - #力/トルク運動制御終了 * - 6 - PTP(1,30,-1,0) - #初期位置 * - 7 - FT_Control(1,10,0,0,1,0,0,0,0,0,-10,0,0,0,0.00001,0,0,0,0,0,0,100,0) - #力/トルク運動制御開始 * - 8 - FT FindSurface(1,1,2,20,0,200,5) - #平面Bを位置決め * - 9 - FT_Control(0,10,0,0,1,0,0,0,0,0,10,0,0,0,0.00001,0,0,0,0,0,0,100,0) - #力/トルク運動制御終了 * - 10 - pos={} - #配列posを定義 * - 11 - pos = FT_CalCenterEnd() - #位置決めされた中心のデカルト位置姿勢を取得 * - 12 - MoveCart(pos,GetActualTCPNum(),GetActualWObjNum(),30,10,100,-1,0) - #位置決めされた中心位置に運動 拡張IOデバイス周辺機器設定 ------------------------------------ 拡張IOデバイス設定手順 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ **Step1**:「初期設定」->「周辺機器」->「末端ツール」で「適用デバイス」メニュー項目をクリックして末端周辺機器設定インターフェースに入ります。 デバイスタイプとして「拡張IOデバイス」を選択します。拡張IOデバイスの設定情報は、メーカー、タイプ、ソフトウェアバージョン、マウント位置に分類されます。ユーザーは具体的な生産ニーズに応じて対応するデバイス情報を設定できます。ユーザーが設定を変更する必要がある場合は、まず対応する番号を選択し、「クリア」ボタンをクリックして対応する情報を消去し、再度ニーズに応じて設定します。 .. figure:: robot_peripherals/147.png :align: center :width: 3in .. centered:: 図表 8.12‑1 拡張IOデバイス設定 .. important:: 設定をクリアする前に、対応するデバイスは非アクティブ状態である必要があります。 **Step2**:拡張IOデバイスの設定が完了したら、ユーザーは「補助アプリケーション」->「ツールアプリケーション」で「Smart Tool」機能メニューをクリックし、この機能設定ページに入ります。ユーザーは末端ハンドルの各ボタン機能をカスタマイズできます。これには以下が含まれます。 - 新規プログラム作成 - プログラム保持 - PTP - Lin - ARC - ウィービング開始 - ウィービング終了 - IOポート .. figure:: robot_peripherals/148.png :align: center :width: 3in .. centered:: 図表 8.12‑2 拡張IOデバイス機能設定 パレタイジングシステム設定 --------------------------------------- パレタイジングシステム設定手順 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ **Step1**:「初期設定」->「周辺機器」で「パレタイジング」メニュー項目をクリックし、パレタイジングシステム設定インターフェースに入ります。 初回使用時は、まずレシピを作成する必要があります。「レシピ作成」をクリックし、レシピ名を入力し、「作成」をクリックします。作成成功後、「設定開始」をクリックしてパレタイジング設定ページに入ります。 .. figure:: robot_peripherals/149.png :align: center :width: 4in .. centered:: 図表 8.13‑1 パレタイジングレシピ設定 **Step2**:ワーク設定欄で「設定」をクリックしてワーク設定ポップアップに入り、ワークの「長さ」、「幅」、「高さ」、およびワークのグラスピング点を設定し、「設定確定」をクリックしてワーク情報の設定を完了します。 .. figure:: robot_peripherals/150.png :align: center :width: 4in .. centered:: 図表 8.13‑2 パレタイジングワーク設定 **Step3**:パレット設定欄で「設定」をクリックしてパレット設定ポップアップに入り、パレットの「前端」、「側端」、「高さ」を設定し、次にステーションとステーション移行点を設定し、「設定確定」をクリックしてパレット情報の設定を完了します。 .. figure:: robot_peripherals/151.png :align: center :width: 4in .. centered:: 図表 8.13‑3 パレタイジングパレット設定 **Step4**:パレタイジングデバイスサイズ設定欄で「設定」をクリックしてパレタイジングデバイスサイズ設定ポップアップに入り、デバイスの「X」、「Y」、「Z」、「Angle」を設定し、「設定確定」をクリックしてパレタイジングデバイスサイズ設定情報の設定を完了します。 .. important:: X、Y、Zは、左パレットの右上隅または右パレットの左上隅の点のロボットベース座標系に対する座標値の絶対値であり、Angleはロボット取り付け時の回転角度です。取り付け時は0を推奨します。 .. figure:: robot_peripherals/152.png :align: center :width: 4in .. centered:: 図表 8.13‑4 パレタイジングデバイスサイズ設定 **Step5**:モード設定欄で「設定」をクリックしてモード設定ポップアップに入ります。 **モードB オン/オフ**:オン:モードA/Bを切り替え可能、パレタイジング各層のモードBを設定可能;オフ:モードBに切り替え不可、パレタイジング各層のモードBを設定不可。 **モードA/B切り替え**:モードAを選択:ワークをモードAとして追加、ワーク番号はA1、A2...、ワークの透明度を調整不可;モードBを選択:ワークをモードBとして追加、ワーク番号はB1、B2...、このとき「モードA設定を表示」のオン/オフが可能。 **モードA表示 オン/オフ**:オン:モードBワークの透明度を調整してA/Bモード設定の効果が合理的かどうかを確認可能、このときモードBワークに対してのみ選択、追加、一括追加、削除、全削除の操作が可能;オフ:モードBワークの透明度を設定不可。 .. important:: ワーク設定時、ワーク間に衝突があるとワークの背景色が赤くなり、上記の操作は実行できません。操作が必要な場合は、衝突がないようにワークを設定してください。 ワーク設定時は、まずワーク間隔を設定します。右側の枠は右パレットでのワークの配置シミュレーションで、単体追加も一括追加も可能です。次にパレタイジングの段数と各段のモードを設定し、「設定確定」をクリックしてモード情報の設定を完了します。 .. important:: パレタイジング方向:右パレットを例にとると、右下隅が最も遠い位置で、右下隅から縦方向または横方向に1列のワークを配置し、その上の列に横方向または縦方向にワークを配置する、というように続けます(Webページにパレタイジング方向が表示されていますので、ご確認ください)。 左パレットは右パレットのモードをミラーしてワークを配置します。 .. figure:: robot_peripherals/153.png :align: center :width: 4in .. centered:: 図表 8.13‑5 パレタイジングモードA設定 .. figure:: robot_peripherals/154.png :align: center :width: 4in .. centered:: 図表 8.13‑6 パレタイジングモードB設定 **Step6**:ティーチングプログラム生成欄で「高度な設定」をクリックして高度な設定ポップアップに入り、「取出し上昇高さ」、「第1オフセット距離」、「第2オフセット距離」、「吸着待機時間」を設定します。 **取出し上昇高さ**:ユーザーカスタマイズ。取出し成功後、グラスピング点から取出し成功後に上昇する高さ。 **第1/第2オフセット距離**:ユーザーカスタマイズ。ロボットを傾けて目標点にスタッキングする際のオフセット距離。 **吸着待機時間**:ユーザーカスタマイズ。吸着待機時間を設定し、吸着後の負圧アライメント信号を監視し、アライメントしていない場合は吸着動作を繰り返します。 **スムーズ遷移**:スムーズ遷移ボタンをオンにすると、パレタイジング/デパレタイジングのPTPスムーズ時間とLINスムーズ半径の関連パラメータを設定できます。 - PTPスムーズ時間:スムーズ遷移なし/レベル1(200ms)/レベル2(400ms)/レベル3(600ms)/レベル4(800ms)/レベル5(1000ms) - LINスムーズ半径:スムーズ遷移半径なし/レベル1(200mm)/レベル2(400mm)/レベル3(600mm)/レベル4(800mm)/レベル5(1000mm) .. figure:: robot_peripherals/155.png :align: center :width: 4in .. centered:: 図表 8.13‑7 パレタイジング高度な設定 **Step7**:ティーチングプログラム生成欄で「方式選択」を選択し、「プログラム生成」をクリックし、「パレタイジング監視ページ」を開きます。このページで「生成情報」、「警告情報」、「パレタイジングプログラム」を表示および確認できます。 .. figure:: robot_peripherals/156.png :align: center :width: 6in .. centered:: 図表 8.13‑8 パレタイジングシステム監視 **Step8**:パレタイジング実行プログラムが途中でエラーを報告するとプログラムは停止します。ユーザーはまずエラーをクリアし、再度パレタイジングプログラムを選択して実行すると、「前回のプログラム中断」ポップアップボックスが表示されます。「継続」ボタンをクリックすると継続実行、「再開」ボタンをクリックするとプログラムを最初から再実行します。 .. figure:: robot_peripherals/157.png :align: center :width: 3in .. centered:: 図表 8.13‑9 パレタイジングプログラム継続 研磨デバイス設定 -------------------- 研磨デバイス設定手順 ~~~~~~~~~~~~~~~~~~~~~~ **Step1**:「初期設定」->「周辺機器」メニューバーで「研磨」メニュー項目をクリックし、研磨デバイス設定ページに入ります。 通信情報を設定する必要があり、IPアドレス、ポート、サンプリング周期、通信プロトコルを設定します。設定が成功すると、次回操作時に自動的に表示されます。 **Step2**:通信設定を完了した後、通信を確立し、研磨デバイスのロード/アンロードができます。 **Step3**:デバイス機能。デバイスのイネーブル、エラークリア、力センサーのゼロ点クリアなどの操作が可能です。 **Step4**:パラメータ設定。研磨デバイスの回転数、接触力、突出距離、制御モードを設定できます。設定が成功すると、右側の「Polish」状態フィードバックバーに対応するデータと状態が表示されます。 .. figure:: robot_peripherals/158.png :align: center :width: 6in .. centered:: 図表 8.14-1 研磨状態設定ページ 力センサーベースの仮想壁設定 ------------------------------------------------- 力センサーベースの仮想壁機能は、人工的に仮想壁を設定することで、ロボットの作業空間を制限し、直接の衝突接触を回避することができます。 力センサーの取り付け設定 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ **Step1**:「坤维」センサーを例にとると、取り付け時には力センサーの座標系方向と末端フランジ座標系を一致させる必要があります。図1に示すように(図1中、赤は末端フランジ座標系X+方向、緑は末端フランジ座標系Y+方向、青は末端フランジ座標系Z+方向)。 .. figure:: robot_peripherals/159.png :align: center :width: 4in .. figure:: robot_peripherals/160.png :align: center :width: 4in .. centered:: 図表 8.15‑1 力センサー取り付け **Step2**:「初期設定」->「周辺機器」->「末端ツール」のメニューバーで、「適用デバイス」をクリックして末端周辺機器設定インターフェースに入ります。 デバイスタイプとして「力センサーデバイス」を選択します。力センサーの設定情報は、メーカー、タイプ、ソフトウェアバージョン、マウント位置に分類されます。ユーザーは具体的な生産ニーズに応じて対応する力センサー情報を設定できます。ユーザーが設定を変更する必要がある場合は、まず対応する番号を選択し、「クリア」ボタンをクリックして対応する情報を消去し、再度ニーズに応じて設定します。具体的な操作は図2に示します。 **Step3**:設定が完了した力センサーの番号を選択し、「リセット」ボタンをクリックします。ページにコマンド送信成功のメッセージが表示された後、「アクティブ化」ボタンをクリックすると、力センサー情報テーブルのアクティブ状態を確認して、アクティブ化が成功したかどうかを判断できます。また、力センサーには初期値があるため、ユーザーは使用ニーズに応じて「ゼロ点補正」と「ゼロ点除去」を選択します。力センサーのゼロ点補正は、力センサーが水平垂直下向きであり、ロボットに負荷が設定されていない状態で行う必要があります。 .. figure:: robot_peripherals/161.png :align: center :width: 4in .. centered:: 図表 8.15‑2 力センサー設定 .. figure:: robot_peripherals/162.png :align: center :width: 4in .. centered:: 図表 8.15‑3 力センサーアクティブ化 仮想壁設定 ~~~~~~~~~~~~~~~~~~~~~~ 力センサーを借りて補助ドラッグを行うには、力センサーの下にドラッグハンドルを取り付け、ツール座標系を設定する必要があります。具体的な操作は図4に示します。このとき、干渉領域の検出方法は、設定されたツール座標系の位置を基準とし、設定しない場合は末端フランジを基準とします。 **Step1**:「補助アプリケーション」->「ツールアプリケーション」->「干渉領域」のメニューバーで、「単体」をクリックして干渉領域設定機能インターフェースに入ります。 **Step2**:干渉方式と干渉領域進入時の操作を設定する必要があります。干渉方式として「立方体干渉」を選択し、干渉領域進入時のドラッグ設定として「ドラッグ制限なし」を選択し、干渉領域進入時の運動設定はどちらでも構いません。 **Step3**:ニーズに応じて、パラメータ設定を変更できます。検出方法は「指令位置」と「フィードバック位置」の2種類、干渉領域モードは「範囲内干渉」と「範囲外干渉」の2種類、参考座標系は「ベース座標」を選択し、実際の使用に応じて設定を選択します。詳細な操作は図5に示します。 .. figure:: robot_peripherals/163.png :align: center :width: 4in .. figure:: robot_peripherals/164.png :align: center :width: 4in .. centered:: 図表 8.15‑4 ドラッグハンドルを取り付けツール座標系を設定 .. figure:: robot_peripherals/165.png :align: center :width: 4in .. centered:: 図表 8.15‑5 仮想壁パラメータ設定 **Step4**:パラメータ設定の下の干渉領域モードは「範囲内干渉」と「範囲外干渉」の2種類です。 .. figure:: robot_peripherals/166.png :align: center :width: 4in .. centered:: 図表 8.15‑6 範囲内干渉 .. figure:: robot_peripherals/167.png :align: center :width: 4in .. centered:: 図表 8.15‑7 範囲外干渉 **Step5**:干渉領域を確立します。具体的な操作は図7と図8に示します。「範囲外干渉」を選択する場合は、干渉領域を可能な限り大きく設定することをお勧めします。 .. figure:: robot_peripherals/168.png :align: center :width: 4in .. centered:: 図表 8.15‑8 2点法による干渉領域の確立 .. figure:: robot_peripherals/169.png :align: center :width: 4in .. centered:: 図表 8.15‑9 中心点+辺長法による干渉領域の確立 力センサー補助ドラッグ ~~~~~~~~~~~~~~~~~~~~~~ **Step1**:「補助アプリケーション」->「ツールアプリケーション」のメニューバーで、「ドラッグロック」をクリックして力センサー補助ロック機能インターフェースに入ります。 **Step2**:図9に示すようなパラメータを設定すると、力センサーベースの仮想壁機能を実現できます。具体的な効果は、仮想壁に近づくと抵抗が大きくなり、仮想壁から離れると力センサーベースの補助ドラッグ機能が正常に動作します。 .. figure:: robot_peripherals/138.png :align: center :width: 4in .. centered:: 図表 8.15‑10 力センサー補助ドラッグのパラメータ設定 パラメータの具体的な役割: **アダプティブ選択**:組み立てが必要な場合にオンにします。オンにするとドラッグが重くなります。 **慣性パラメータ**:ドラッグ中の感触を調整します。技術者の指導の下で慎重に操作してください。 **ダンピングパラメータ**: - 並進方向:推奨設定パラメータは[100-200]の間 - 回転方向:推奨設定パラメータは[3-10]の間、ただしRZ方向の設定範囲は[0.1-5] - 効果:センサーを使ってドラッグする場合、ダンピングを大きくするとドラッグが困難になり、小さくするとロボットをドラッグしすぎて軽くなります(小さすぎないことを推奨) - ダンピングパラメータの全体範囲:並進XYZ:[100-1000];回転RX、RY:[3-50], RZ:[2-10] - 最大ドラッグ力は50、最大ドラッグ速度は180 **スティッフネスパラメータ**:すべて0に設定 **ドラッグ力しきい値**:並進XYZは[5-10];回転RX、RY、RZは[0.5-5] **最大ドラッグ力**:50 **最大ドラッグ速度**:180 6軸力と関節インピーダンスのハイブリッドドラッグ機能 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 概要 ++++++ 6軸力と関節インピーダンスのハイブリッドドラッグ機能は、力センサーを借りて外力を感知し、ロボットがドラッグモードで補助ドラッグを行います。ゲイン係数を調整することで異なるドラッグ体験を得ることができます。関節インピーダンスはインピーダンス制御を用いてドラッグ力を制限します。 力センサーの取り付け設定とゼロ点調整操作 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1. 力センサーの取り付け設定 力センサーの取り付け設定の詳細な操作は、上記の「力センサーベースの仮想壁設定」を参照してください。 2. 力センサーのゼロ点調整 ロボットをドラッグしやすくするために、センサーの下にドラッグハンドルを取り付ける必要があります。図1に示します。 .. figure:: robot_peripherals/170.png :align: center :width: 4in .. centered:: 図表 8.15‑11 ドラッグハンドル **Step1**:実際のハンドルの長さに応じて、ツール座標系を設定します。図2に示します。 **Step2**:「初期設定」->「基本」->「負荷」メニューバーで、「センサー」をクリックして力/トルクセンサー負荷インターフェースに入ります。 ドラッグボタンを利用して、ロボットの末端が水平下向きになるように調整し、「力/トルクセンサー負荷」インターフェースの「センサー自動ゼロ点調整」欄の「初期位置を記録」ボタンをクリックします。その後、ロボットモードを自動モードに切り替え、「自動ゼロ点調整」ボタンをクリックします。プログラムの実行が終了すると、センサーのゼロ点調整が完了します。詳細な操作は図3に示します。 .. figure:: robot_peripherals/171.png :align: center :width: 4in .. centered:: 図表 8.15‑12 ツール座標系設定 .. figure:: robot_peripherals/172.png :align: center :width: 4in .. centered:: 図表 8.15‑13 力/トルクセンサー自動ゼロ点調整 6軸力と関節インピーダンスのハイブリッドドラッグ ++++++++++++++++++++++++++++++++++++++++++++++++ 1. 補助ドラッグ **Step1**:「補助アプリケーション」->「ツールアプリケーション」のメニューバーで、「ドラッグロック」をクリックしてドラッグロック機能インターフェースに入ります。 **Step2**:「6軸力と関節インピーダンスのハイブリッドドラッグ」欄で、制御状態を「オン」、インピーダンス開始状態を「オフ」に設定し、ドラッグゲインを設定し、末端線速度を1000mm/s、角速度制限を100°/sに設定し、「適用」ボタンをクリックすると機能が有効になります。具体的な設定は図4に示します。 **Step3**:ロボットモードをドラッグモードに切り替えると、ロボットをドラッグできます。具体的な効果は、ロボットの末端をドラッグする場合は軽くドラッグでき、体験感が良いです。ロボットの関節をドラッグする場合はドラッグが重いです。 .. figure:: robot_peripherals/173.png :align: center :width: 4in .. centered:: 図表 8.15‑14 6軸力補助ドラッグの設定パラメータ 2. 関節インピーダンス制御 インピーダンス制御の役割は、ドラッグ力とドラッグ位置を制限することです。デフォルト状態は「オフ」です。 具体的な操作は図5に示します。インピーダンス開始状態を「オン」に設定し、図5に従ってダンピング係数とスティッフネス係数を設定します。ただし、スティッフネス係数の機能はまだ開放されていません。 .. figure:: robot_peripherals/174.png :align: center :width: 4in .. centered:: 図表 8.15‑15 関節インピーダンスの設定パラメータ パラメータの具体的な役割: - **制御状態**:オンにすると、ドラッグモードでこの機能を使用できます。 - **インピーダンス開始**:オンにすると、スティッフネスパラメータとダンピングパラメータを設定する必要があります。ドラッグ力とドラッグ位置を制限します。 - **ドラッグゲイン**:パラメータは[0-5]の間で設定することをお勧めします。パラメータ0ではロボットをドラッグできません。パラメータ1ではドラッグ効果は改善されません。パラメータが1より大きいとドラッグが軽くなり、ドラッグ体験が良くなります。パラメータが大きいほどドラッグが楽になります。 - **スティッフネスゲイン**:0に設定すると、ドラッグ後にドラッグ前の初期位置に戻ります。 - **ダンピングゲイン**:ドラッグ力を制限します。1-3軸のパラメータ範囲は[0-0.5]、4-5軸のパラメータ範囲は[0-0.1]、6軸のパラメータ範囲は[0-0.05]です。 - **末端線速度**:1000mm/s。末端線速度制限を超えると、ロボットは手動モードに切り替わり、TCP速度超過の警告を表示します。 - **角速度制限**:100°/s。角速度制限を超えると、ロボットは手動モードに切り替わり、TCP速度超過の警告を表示します。 拡張軸+レーザー定点トラッキング機能 ------------------------------------------------- ロボット拡張軸+レーザー定点トラッキングシステム構成 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. figure:: robot_peripherals/220.png :align: center :width: 4in .. centered:: 図表 8.16‑1 ロボット拡張軸+レーザー定点トラッキングシステム構成 システム中、(a)はコンピュータ、(b)はロボットとその制御ボックス、(c)はポジショナと駆動装置、(d)はシームトラッキングレーザーセンサー、(e)は溶接機と付属装置です。 .. figure:: robot_peripherals/221.png :align: center :width: 3in .. centered:: 図表 8.16‑2 周辺機器取り付け概略図 シームトラッキングレーザーセンサーと溶接トーチ(b)はロボット(a)の末端フランジに取り付けられ、ポジショナ(c)はロボットの外に固定設置されます。 拡張軸通信設定 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ロボットと拡張軸の通信方式には、UDPまたはRS485を使用する2つの形式があります。 .. figure:: robot_peripherals/106.png :align: center :width: 4in .. centered:: 図表 8.16‑3 拡張軸設定ページ ロボット操作画面で「初期設定」->「周辺機器」->「拡張軸」ボタンをクリックし、拡張軸設定ページに入ります。PLCを介してUDP通信でロボットと接続する例をとると、「UDP通信」アイコンをクリックしてUDP通信の拡張軸設定ページに入ります。 .. figure:: robot_peripherals/222.png :align: center :width: 6in .. centered:: 図表 8.16‑4 UDP通信設定インターフェース UDP通信の拡張軸設定ページでは、対応する拡張軸番号を選択し、UDP通信パラメータ(アドレス、ポート、周期、パケットロス検出など)を接続・設定し、拡張軸の位置決め完了時間を設定できます。 拡張軸設定内容は本機能紹介の主眼ではないため、詳細な設定は対応する部分のユーザーマニュアルを参照してください。 シームトラッキングレーザーセンサー接続設定 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 以下の設定ページでシームトラッキングレーザーセンサーを接続します。 .. figure:: robot_peripherals/223.png :align: center :width: 6in .. centered:: 図表 8.16‑5 レーザーセンサー接続と設定ページ 「初期設定」->「周辺機器」->「トラッキング」->「センサー」ボタンをクリックして設定ページに入ります。設定ページには「センサー設定」、「通信設定とロード」、「ベース計算」、「3点と4点の位置探知による交点座標計算機能」が含まれます。「センサー設定」をクリックするとセンサー入力値のフィルタリングパラメータを設定でき、「通信設定とロード」をクリックすると対応する通信パラメータを入力してレーザーセンサーに接続できます。 レーザーセンサー設定内容は本機能紹介の主眼ではないため、詳細な設定は対応する部分のユーザーマニュアルを参照してください。 溶接機接続設定 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 以下の設定ページで溶接機を設定します。 .. figure:: robot_peripherals/224.png :align: center :width: 6in .. centered:: 図表 8.16‑6 溶接機設定ページ 溶接機通信はIO通信またはRS485通信を使用できます。「初期設定」、「周辺機器」、「溶接機」をクリックして設定・接続インターフェースに入ると、「制御タイプ」、「信号対応IO」、「溶接プロセスパラメータ」、「溶接機デバッグ」などのモジュールを設定できます。 溶接機設定内容は本機能紹介の主眼ではないため、詳細な設定は対応する部分のユーザーマニュアルを参照してください。 ツール座標系とレーザーセンサー座標系のキャリブレーション ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ロボット末端に溶接トーチを取り付けた後、溶接トーチとレーザーセンサーの外部パラメータをキャリブレーションします。 .. figure:: robot_peripherals/225.png :align: center :width: 6in .. centered:: 図表 8.16‑7 ツール座標系設定ページ 「初期設定」、「基本」、「座標系」、「ツール」をクリックしてツール座標系設定ページに入ります。 .. figure:: robot_peripherals/226.png :align: center :width: 6in .. centered:: 図表 8.16‑8 6点法を選択して溶接トーチをキャリブレーション 空の座標系を選択し、ツールタイプとして「ツール」を選択し、6点法を選択して溶接トーチのツールキャリブレーションを行います。 .. figure:: robot_peripherals/227.png :align: center :width: 6in .. centered:: 図表 8.16‑9 5点法を選択してレーザーセンサーをキャリブレーション 空の座標系を選択し、ツールタイプとして「センサー」を選択し、5点法を選択してレーザーセンサーのキャリブレーションを行います。 ツール座標系とレーザーセンサー座標系のキャリブレーション内容は本機能紹介の主眼ではないため、詳細なキャリブレーション方法は対応する部分のユーザーマニュアルを参照してください。 拡張軸とレーザー定点トラッキング機能 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 拡張軸とレーザー定点トラッキングには2つの方法があります。レーザーデータが変換方式の場合は「先に記録してから再現」するトラッキング戦略を実行し、レーザーデータが無変換方式の場合は「記録しながら再現」するトラッキング戦略を実行します。 拡張軸座標系のキャリブレーション ++++++++++++++++++++++++++++++++++++++++++ 拡張軸座標系を使用して拡張軸とロボットの同期レーザートラッキングを実現するには、拡張軸座標系をキャリブレーションする必要があります。 .. figure:: robot_peripherals/228.png :align: center :width: 6in .. centered:: 図表 8.16‑10 拡張軸座標系設定ページ 「初期設定」->「基本」->「拡張軸」をクリックして拡張軸座標系設定インターフェースに入り、設定する拡張軸番号を選択し、編集ボタンをクリックして「4-単自由度ポジショナ」を選択して保存します。 .. figure:: robot_peripherals/229.png :align: center :width: 6in .. centered:: 図表 8.16‑11 拡張軸キャリブレーションページ 拡張軸をキャリブレーションする際は、「ロボット対拡張軸位置」として「拡張軸外」を選択することに注意してください。ポジショナの場合は、4点法を選択してキャリブレーションを行います。 拡張軸キャリブレーション内容は本機能紹介の主眼ではないため、詳細なキャリブレーション方法は対応する部分のユーザーマニュアルを参照してください。 拡張軸とロボットの同期レーザートラッキング +++++++++++++++++++++++++++++++++++++++++++++++++++++++ レーザーデータが変換方式の場合 ********************************** ベース座標系での拡張軸とロボットの同期レーザートラッキングは外部軸のキャリブレーションを必要としませんが、その他の機能設定と構成は拡張軸座標系での同期トラッキングと同じです。 まずレーザートラッキングデータの設定を行い、レーザートラッカーが変換タイプのデータを持つように設定します。 .. figure:: robot_peripherals/230.png :align: center :width: 6in .. centered:: 図表 8.16‑12 レーザーデータを変換タイプに設定 「初期設定」、「周辺機器」、「トラッキング」、「センサー」をクリックし、ページのドロップダウンボックスで「センサー設定」をクリックし、「データ処理」を変換タイプのデータに調整します。 .. figure:: robot_peripherals/231.png :align: center :width: 6in .. centered:: 図表 8.16‑13 レーザートラッキング機能ページ 本機能はマルチ機能モジュールの組み合わせにより実現され、主要機能モジュールは「レーザートラッキング」機能内に含まれています。「ティーチングプログラム」->「プログラム作成」->「レーザートラッキング」をクリックしてレーザートラッキングページに入ります。または「レーザー記録」をクリックして直接記録ページに入ることもできます。 .. figure:: robot_peripherals/232.png :align: center :width: 6in .. centered:: 図表 8.16‑14 レーザーデータ記録開始コマンドの追加 拡張軸が溶接開始点に移動した後、レーザーデータ記録開始コマンドを追加します。 .. figure:: robot_peripherals/233.png :align: center :width: 6in .. centered:: 図表 8.16‑15 レーザーデータ記録終了コマンドの追加 拡張軸が溶接終了点に移動した後、レーザーデータ記録停止コマンドを追加します。 ロボットはその場で拡張軸運動時のシームの運動軌跡を記録した後、拡張軸を溶接開始点に戻し、同期トラッキング溶接を開始する準備をします。 溶接開始時には、溶接トーチをレーザーセンサーが記録したデータの始点位置に移動させる必要があり、溶接点への運動コマンドを追加する必要があります。 .. figure:: robot_peripherals/234.png :align: center :width: 6in .. centered:: 図表 8.16‑16 溶接点への運動コマンドの追加 「ティーチングプログラム->「プログラム作成」->「レーザー記録」ボタンをクリックし、「溶接点まで運動」を選択し、運動方式と運動速度を設定し、「始点」ボタンをクリックして適用します。 .. figure:: robot_peripherals/235.png :align: center :width: 6in .. centered:: 図表 8.16‑17 記録したレーザーデータの軌跡再現コマンドの追加 「レーザートラッキング」ページで「データ記録」->「軌跡再現」コマンドを選択し、「追加」をクリックして適用します。コマンド中、待機時間はデフォルト0ms、速度は記録速度に対する再現速度の比率で、50%以上を推奨します。 「軌跡再現」コマンドの後に拡張軸運動コマンドを追加すると、拡張軸とロボットのレーザートラッキング同期運動を実現できます。 以下は典型的な拡張軸+レーザー定点トラッキングのLUAプログラムです。 .. figure:: robot_peripherals/236.png :align: center :width: 5in .. centered:: 図表 8.16‑18 拡張軸+レーザーデータ変換方式定点トラッキングの例プログラム ロボットは「先に記録してから再現」の手順を実行し、まず拡張軸運動時のワークのシーム変化軌跡を記録し、その後溶接時に拡張軸と軌跡再現を同期実行します。 レーザーデータ無変換方式の場合 ********************************** レーザーデータ無変換方式を使用した定点トラッキングでは、拡張軸座標系のキャリブレーションは不要です。 レーザートラッキングセンサーのデータを無変換タイプに設定します。 .. figure:: robot_peripherals/237.png :align: center :width: 6in .. centered:: 図表 8.16‑19 レーザーデータを無変換タイプに設定 「初期設定」->「周辺機器」->「トラッキング」->「センサー」をクリックし、ページのドロップダウンボックスで「センサー設定」をクリックし、「データ処理」を無変換タイプのデータに調整します。 .. figure:: robot_peripherals/238.png :align: center :width: 6in .. centered:: 図表 8.16‑20 レーザートラッキング機能ページ 「ティーチングプログラム」->「プログラム作成」->「レーザートラッキング」をクリックしてレーザートラッキングページに入ります。または「レーザー記録」をクリックして直接記録ページに入ることもできます。 .. figure:: robot_peripherals/239.png :align: center :width: 6in .. centered:: 図表 8.16‑21 記録しながら再現コマンドの追加 「レーザー記録」ページで「記録しながら再現」コマンドを選択し、「追加」をクリックして適用します。コマンド中、「遅延時間」または「遅延距離」(距離を推奨)を選択でき、補償感度係数は実際のセンサーレーザーデータに応じて調整します。数値が低いほど調整感度が低くノイズ耐性が向上し、再現速度はデフォルト100%です。 「記録しながら再現」コマンドの後に拡張軸運動コマンドを追加すると、拡張軸とロボットのレーザートラッキング同期運動を実現できます。 以下は典型的な拡張軸+レーザーデータ無変換方式定点トラッキングのLUAプログラムです。 .. figure:: robot_peripherals/240.png :align: center :width: 5in .. centered:: 図表 8.16‑22 拡張軸+レーザーデータ無変換方式定点トラッキングの例プログラム 溶接トーチを前方レーザーのオフセット量に合わせた後、ロボット拡張軸が運動し、「記録しながら再現」の手順を実行します。前方のレーザートラッカーがまず拡張軸運動時のワークのシーム変化軌跡を記録し、設定された遅延距離または時間後に溶接トーチの位置で調整します。 FOCASベースのCNC機能パッケージ(Linuxシステムのみ使用可能) ------------------------------------------------------------- 概要 ~~~~~~~~~~~~~ 工作機械加工において、自動化されたワークのローディング/アンローディングプロセスを実現するために、FOCAS通信ベースのCNC機能パッケージを開発しました。これにより、協働ロボットとCNC工作機械の通信インタラクションと協調運動を実現できます。 図に示すように、FOCAS通信はイーサネットベースであり、ロボット制御ボックスのネットワークポートと工作機械に内蔵されたネットワークポートをネットワークケーブルで接続することで、ロボットと工作機械のFOCAS通信を確立し、ロボット側でのCNC制御と工作機械の状態監視を実現します。 .. figure:: robot_peripherals/213.png :align: center :width: 6in .. centered:: 図表 8.17‑1 ロボットとCNCのFOCAS通信トポロジー図 現在、制御ボックスのFOCAS通信ベースのCNC機能パッケージがサポートする工作機械制御、状態フィードバックの機能を表に示します。 .. centered:: 表 8.17-1 FOCAS通信ベースのCNC機能パッケージがサポートする機能表 .. list-table:: :widths: 15 40 100 :header-rows: 0 :align: center :class: sheet-center * - **番号** - **機能名** - **説明** * - 1 - 工作機械タイプ - 状態フィードバック * - 2 - FOCAS通信状態 - 状態フィードバック * - 3 - 自動モード運転 - 制御、状態フィードバック * - 4 - アラーム状態 - 状態フィードバック * - 5 - 安全ドア - 状態フィードバック * - 6 - チャック - 制御、状態フィードバック * - 7 - 緊急停止 - 制御、状態フィードバック 関連操作説明 ~~~~~~~~~~~~~~~~~~~~~~ FOCAS通信確立 +++++++++++++++++++ FOCAS通信はイーサネットベースであるため、ロボット、CNC工作機械、PCを同一のLANに構成して物理リンクを実現し、ロボットの開放プロトコルを通じて最終的にFOCAS通信を確立する必要があります。 ネットワーク設定 ************************* **Step1**:まずPCのIPアドレスをロボット制御ボックスと同じネットワークセグメントに変更します。ロボット制御ボックスのIPアドレスは「192.168.58.2」です。 スイッチを使用せずにネットワークを構成する場合、ロボット制御ボックスに内蔵された2つのネットワークポートを使用してネットワークを構成できます。操作は以下の通りです。ロボットのWebAPPにログインし、「システム設定」->「一般設定」->「ネットワーク設定」で、ネットワークポート0のIPを「192.168.58.2」、ネットワークポート1のIPを「192.168.57.2」に設定します。同時にWebAPPをネットワークポート0、WebRecoveryをネットワークポート1に設定します。図に示す通りです。すべての設定が完了したら「ネットワークを設定」をクリックします。 .. figure:: robot_peripherals/214.png :align: center :width: 6in .. centered:: 図表 8.17‑2 ロボットネットワーク設定図 **Step2**:次に制御ボックスを再起動し、ネットワークカード0のポートを介してPCと接続し、ロボットのWebAppにログインします。同時に通信するCNC工作機械のIPアドレスをPCやロボット制御ボックスと同じネットワークセグメント(192.168.58.xx)に設定し、工作機械のポートを8193に変更します。これですべてのネットワーク設定が完了します。 開放プロトコルファイルの設定 ********************************* **Step1**:次に周辺機器開放プロトコルの設定を行います。まず、CtrlDev_CNCで始まる名前のluaファイルをFOCAS通信を確立するための開放プロトコルファイルとして新規作成する必要があります。例:CtrlDev_CNC_demo.lua。 このファイルでは、開放プロトコルIDを設定し、CNCComSet関数を介してCNCとの接続を確立または切断する必要があります。CNCComSet関数のパラメータ説明は下表の通りです。コード例を以下に示します。 .. centered:: 表 8.17-2 CNCComSet関数パラメータ説明表 .. list-table:: :widths: 15 40 100 :header-rows: 0 :align: center :class: sheet-center * - **番号** - **機能名** - **説明** * - 1 - 工作機械メーカー - 0-無効 1-工作機械(FOCAS) * - 2 - 通信コマンド - 1-接続確立 1001-切断 * - 3 - 工作機械IPアドレス - -- * - 4 - 工作機械ポート番号 - -- FOCAS通信接続確立の開放プロトコルコード例: .. code-block:: console :linenos: local id = 1 --開放LUAプロトコルID --FOCAS切断 CNCComSet(1, 1001, '192.168.57.100', 8193) sleep_ms(1000) --FOCAS接続確立 CNCComSet(1, 1, '192.168.57.100', 8193) sleep_ms(1000) while(1) do sleep_ms(5000) end **Step2**:開放プロトコルluaファイルの作成が完了したら、WebAPPを開き、「初期設定」->「周辺機器」->「制御ボックス」->「周辺機器開放プロトコル」を選択し、作成したCtrlDev_CNC_demo.luaファイルを選択してアップロードし、ファイルで設定したIDを選択し、ドロップダウンでアップロードした開放プロトコルファイルを選択して「設定」をクリックします。図に示します。 .. figure:: robot_peripherals/215.png :align: center :width: 6in .. centered:: 図表 8.17‑3 開放プロトコルファイルのアップロードと設定 **Step3**:次にすべての通信リンクが正常であることを確認し、CNC工作機械が起動状態であることを確認し、開放プロトコルの接続ボタンをクリックします。右側の状態フィードバックバーのCNC->FOCAS通信状態で、工作機械との接続が確立されたかどうかを確認できます(赤色:接続確立;グレー:切断)。図に示します。 .. figure:: robot_peripherals/216.png :align: center :width: 6in .. centered:: 図表 8.17‑4 FOCAS通信接続確立 CNC状態フィードバック説明 ++++++++++++++++++++++++++ CNC工作機械の状態フィードバックは、WebAPPの右端にある周辺機器状態フィードバックのCNC外形アイコンに表示されます。図に示します。クリックすると、現在の工作機械のすべての状態が表示されます。これには、デバイスメーカー、工作機械タイプ、FOCAS通信状態、アラームフラグ、工作機械運転加工状態、工作機械ドアの開閉状態、工作機械チャック状態、工作機械緊急停止状態が含まれます。 .. figure:: robot_peripherals/217.png :align: center :width: 6in .. centered:: 図表 8.17‑5 CNC状態フィードバックバー CNCの各状態フィードバック表示ランプの意味は下表の通りです。 .. centered:: 表 8.17-3 CNC状態フィードバックアイコンランプの意味表 .. list-table:: :widths: 15 40 100 :header-rows: 0 :align: center :class: sheet-center * - **番号** - **機能名** - **説明** * - 1 - FOCAS通信状態 - グレー-通信切断 赤色-通信正常 * - 2 - アラームフラグ - グレー-警告なし 赤色-警告あり * - 3 - 工作機械運転加工状態 - グレー-停止 緑色-運転中 * - 4 - 工作機械ドア開閉状態 - グレー-閉 緑色-開 * - 5 - 工作機械チャック状態 - グレー-開放 緑色-クランプ * - 6 - 工作機械緊急停止状態 - グレー-緊急停止無効 緑色-緊急停止有効 CNC制御説明 ++++++++++++++++++++++++++ CNC工作機械の制御は周辺機器開放プロトコルにあります。FOCAS通信接続が完了したら、設定した周辺機器開放プロトコルの右上をクリックすると、CNCの制御ページが開きます。図に示します。 .. note:: 制御ボタンには、ドア制御(開、閉)、チャック制御(クランプ、開放)、起動停止制御(運転、停止)、緊急停止制御(緊急停止、無効)が含まれます。すべての制御信号はエッジ信号でトリガーされます。 .. figure:: robot_peripherals/218.png :align: center :width: 4in .. centered:: 図表 8.17‑6 CNC制御ページ CNCティーチングプログラム説明 +++++++++++++++++++++++++++++++++ CNC機能パッケージは、ティーチングプログラム内で制御コマンドを呼び出し、工作機械の状態をリアルタイムで取得することをサポートしています。「ティーチングプログラム」->「プログラム作成」->「周辺機器コマンド」->「CNC」の順に開くと、サポートされているすべてのCNCティーチングコマンドが表示されます。図に示します。 .. figure:: robot_peripherals/219.png :align: center :width: 6in .. centered:: 図表 8.17‑7 CNCティーチングコマンド .. note:: 制御コマンドはCNC制御と一対一に対応し、いずれもエッジ信号で有効になります。つまり、起動コマンドを実行した後は必ず停止を実行しないと、次の起動コマンドは有効になりません。 「工作機械現在状態取得」はlua関数であり、この関数の戻り値は9つのパラメータで、その意味は下表の通りです。 .. centered:: 表 8.17-4 「工作機械現在状態取得」戻り値説明表 .. list-table:: :widths: 15 40 100 :header-rows: 0 :align: center :class: sheet-center * - **番号** - **名称** - **意味** * - 1 - デバイスメーカー - 0-無効 1-その他-予約 * - 2 - FOCAS通信状態 - 0-通信正常 その他-通信切断 * - 3 - 工作機械型式(string) - '15' : Series 150/150i '16' : Series 160/160i '18' : Series 180/180i '21' : Series 210/210i '30' : Series 300i '31' : Series 310i '32' : Series 320i '0' : Series 0i * - 4 - 工作機械型式(string) - '15' : Series 150/150i '16' : Series 160/160i '18' : Series 180/180i '21' : Series 210/210i '30' : Series 300i '31' : Series 310i '32' : Series 320i '0' : Series 0i * - 5 - 工作機械運転状態 - 0-停止 1-運転 * - 6 - 工作機械緊急停止状態 - 0-緊急停止有効 その他-緊急停止無効 * - 7 - 工作機械アラーム状態 - 0-警告なし その他-警告あり * - 8 - 工作機械ドア状態 - 0-開 1-閉 * - 9 - 工作機械チャック状態 - 0-開放 1-クランプ ロボットのローディング/アンローディングフローを例としてluaティーチングプログラムの例を作成しました。この例プログラムには、CNCドアを閉じる、開く、運転、停止、チャック開放、チャッククランプの制御が含まれており、CNCの現在状態を取得して条件判断とし、ロボットを安全点、取出し点、配置点の3点で運動させるように設定しています。コードに示します。 ロボットとCNCの協調運動ティーチングluaプログラム例: .. code-block:: console :linenos: while (1) do CNCDoorClose() CNCWorkStart() WaitMs(1000) t1,t2,t3,t4,t5,t6,t7,t8,t9=CNCGetStatus() if t5 == 1 then PTP(CNCsafe,100,-1,0) else CNCWorkStop() CNCDoorOpen() WaitMs(1000) PTP(CNCg1,100,-1,0) WaitMs(1000) CNCChuckOpen() PTP(CNCg2,100,-1,0) PTP(CNCsafe,100,-1,0) end t1,t2,t3,t4,t5,t6,t7,t8,t9=CNCGetStatus() if t8 == 0 then if t5 == 0 then PTP(CNCg2,100,-1,0) PTP(CNCg1,100,-1,0) CNCChuckFastening() WaitMs(1000) PTP(CNCsafe,100,-1,0) end end end ロボットコンベアトラッキングシステム構成 ------------------------------------------------- コンベアエンコーダデータ通信接続方式 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 協働ロボットとコンベアシステムの接続には、I/O通信とRS485通信の2種類が一般的です。協働ロボットはI/O信号線を介して光電センサーとコンベアに接続し、RS485を介してコンベアエンコーダに接続します。接続が完了したら、Webページでコンベア関連パラメータを設定すると、協働ロボットがコンベアエンコーダのデータをリアルタイムで取得し、協働ロボットがコンベアに同期してワークをトラッキングする機能を実現できます。 接続構成の概略図を以下に示します。 .. figure:: robot_peripherals/243.png :align: center :width: 6in .. centered:: 図表 8.18‑1 ロボットコンベアトラッキングシステム構成トポロジー図 このシステムにおいて、(a)はコンピュータ、(b)はロボットとその制御ボックス、(c)はコンベア、光電センサー、エンコーダで構成されるコンベアシステムです。ロボット制御ボックスはデジタルI/O通信を介して光電センサーおよびコンベアと接続し、RS485を介してコンベアエンコーダと接続します。 コンベア設定 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ロボットのWebページ「基本設定」、「周辺機器」、「トラッキング」配下の「コンベア」機能設定画面に入り、コンベアトラッキング機能のプロパティを設定します。 .. figure:: robot_peripherals/244.png :align: center :width: 6in .. centered:: 図表 8.18‑2 コンベアトラッキング設定ページ コンベアトラッキング設定ページで、「コンベアI/O一括設定」ボタンをクリックし、コンベアの物理接続を一括設定します。 その後、「パラメータ設定」の「機能選択」ドロップダウンリストで「トラッキング運動」を選択し、その後エンコーダのプロパティ、トラッキングワーク座標系のワーク軸、ビジョン連携を設定し、「トラッキングタイプ」ドロップダウンリストで「追跡運動」を選択すると、トラッキング開始距離とトラッキング終了距離を入力できます。 トラッキング開始距離:トラッキング信号がトリガーされた後、コンベアが設定された距離まで移動してからロボットが動作を開始します。-1に設定すると自動トリガーとなります。 トラッキング終了距離:ロボットが動作を開始した後、コンベアに同期して移動する最長距離です。 トラッキング座標系設定 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ トラッキング運動では、ワーク座標系をコンベア座標系として使用するため、ワーク座標系を設定する必要があります。 「初期設定」、「基本」をクリックし、「座標系」で「ワーク座標系」を選択し、「wobjcoord0」以外のワーク座標系を選択してキャリブレーションを行います。キャリブレーション方法についてはここでは詳しく説明しません。 .. figure:: robot_peripherals/245.png :align: center :width: 6in .. centered:: 図表 8.18‑3 トラッキング座標系の設定 コンベアトラッキング追跡運動機能 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 追跡運動はコンベアトラッキング運動の一種であり、トラッキング運動と比較して、追跡運動の運動点のティーチングはワーク座標系の上方で行う必要はなく、ワーク座標系の任意の位置でティーチングでき、「トラッキング開始距離」のパラメータを介して末端とコンベアの同期運動を行うことができ、比較的柔軟なトラッキング方法です。 コンベアトラッキング追跡運動機能の紹介 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 以下に追跡運動の例を示し、運動特性を説明します。 .. figure:: robot_peripherals/246.png :align: center :width: 6in .. centered:: 図表 8.18‑4 コンベアトラッキング追跡運動ティーチング例 ここで、xはワーク座標におけるコンベアの移動方向、aはコンベア平面、bは掴み対象ワーク、cは光電センサー、dはトラッキング開始距離、eはトラッキング終了距離です。P1からP4はティーチング経由点とその順序であり、P2からP3は同じ経由点で、グリッパの動作を含みます。 .. figure:: robot_peripherals/247.png :align: center :width: 6in .. centered:: 図表 8.18‑5 コンベアトラッキング追跡運動ティーチング後の実行例 上記のティーチングプログラムが実行を開始すると、ワークが光電スイッチの信号をトリガーした後、ロボットはターゲットがP1の下方に移動するのを待ってからトラッキング運動を開始し、ロボットグリッパは上図のような軌跡で運動します。 追跡運動プログラムのティーチング +++++++++++++++++++++++++++++++++++++++++++++++ 追跡運動プログラムのロジックはトラッキング運動のロジックと基本的に同じであり、トリガー信号の取得、コンベアデータの取得、トラッキング運動の開始部分が含まれます。 **Step 1**:「ティーチングプログラム」、「プログラム作成」をクリックし、「周辺機器コマンド」配下の「コンベア」ボタンを選択してクリックし、コンベアコマンド設定ページに入ります。 .. figure:: robot_peripherals/248.png :align: center :width: 6in .. centered:: 図表 8.18‑6 I/Oリアルタイム監視コマンド **Step 2**:「I/Oリアルタイム監視」をクリックし、「最大待機時間(ms)」を設定し、トラッキングトリガー信号をリアルタイムで検出します。「追加」と「適用」ボタンをクリックしてコマンドをプログラムに追加します。 .. figure:: robot_peripherals/249.png :align: center :width: 6in .. centered:: 図表 8.18‑7 位置リアルタイム検出コマンド **Step 3**:「位置リアルタイム検出」をクリックし、動作モードを「トラッキング運動」に設定します。「追加」と「適用」ボタンをクリックしてコマンドをプログラムに追加します。 .. figure:: robot_peripherals/250.png :align: center :width: 6in .. centered:: 図表 8.18‑8 トラッキング開始コマンド **Step 4**:「トラッキング開始」をクリックし、動作モードを「トラッキング運動」に設定します。「追加」と「適用」ボタンをクリックしてコマンドをプログラムに追加します。 **Step 5**:トラッキング開始後のデカルト空間での運動およびグリッパの周辺機器運動をティーチングします。運動中はコンベアとのトラッキング同期運動を維持します。 .. figure:: robot_peripherals/251.png :align: center :width: 6in .. centered:: 図表 8.18‑9 トラッキング終了コマンド **Step 6**:「トラッキング終了」をクリックし、「追加」と「適用」ボタンをクリックしてコマンドをプログラムに追加します。 .. figure:: robot_peripherals/252.png :align: center :width: 6in .. centered:: 図表 8.18‑10 典型的なコンベアプログラムのトラッキング運動プログラム 同じトラッキング運動目標を連続して2回ティーチングする場合(オフセット距離を含めることができます)、ロボットの動作はその目標位置でブロックされ、トラッキング距離が終了トラッキング距離に達するまで継続的な同期トラッキングを実現します。 .. figure:: robot_peripherals/253.png :align: center :width: 6in .. centered:: 図表 8.18‑11 典型的なコンベアブロッキングトラッキング掴み運動プログラム 同じトラッキング運動目標を連続して2回ティーチングし(オフセット距離を含めることができます)、同時に中間にグリッパの動作を挿入すると、ロボットはその目標位置でグリッパの動作が完了するまでコンベアを継続してトラッキングし、ブロッキングトラッキングによる掴みを実現します。 コントローラ周辺機器開放プロトコル-溶接機プロトコル ------------------------------------------------------- 概要 ~~~~~~~~~~~~~~~~~~ コントローラ周辺機器開放プロトコルは通常、実行可能なLUAプログラムです。プログラムには、通信作成命令、従局デバイスへの制御データ書き込みとリアルタイム状態データ読み取りの循環命令が含まれます。このLUAプログラムを実行すると、ロボットとデバイスの間で通信が確立され、データのやり取りが行われます。コントローラ周辺機器開放プロトコルのLUAプログラムでは、IPアドレス、ポート番号、周期などの通信パラメータをカスタマイズできます。ユーザーは実際のデバイス状況に応じてこのプロトコル内容を修正する必要があります。コントローラ周辺機器開放プロトコルがサポートするデバイスには、研磨ヘッド、レーザーセンサー、CNC、溶接機などが含まれます。コントローラ周辺機器開放プロトコルのファイル名は`CtrlDev_`で始まる必要があります。例:「CtrlDev_Welding.lua」。最大4つの開放プロトコルを同時に実行できます。 ロボットのWebAppで「初期設定」、「周辺機器」、「制御ボックス」、「コントローラ周辺機器開放プロトコル」を順にクリックし、「アップロード」ボタンをクリックして、作成した開放プロトコルのLUAプログラムファイルをコントローラにアップロードします。開放プロトコルIDと開放プロトコル名を選択し、「設定」ボタンをクリックします(選択するプロトコルIDは開放プロトコルファイルで記述されたIDと一致させる必要があります)。各開放プロトコルにIDを指定します。 .. figure:: robot_peripherals/254.png :align: center :width: 6in .. centered:: 図表 8.19‑1 コントローラ周辺機器開放プロトコルのアップロードと設定 設定されたプロトコルで、「ロード」ボタンをクリックします。実行状態インジケータが点灯し、この開放プロトコルが正常にロードされたことを示します。 .. figure:: robot_peripherals/255.png :align: center :width: 6in .. centered:: 図表 8.19‑2 コントローラ周辺機器開放プロトコルのロードと実行指示 溶接機開放プロトコル ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ロボットと溶接機は、コントローラ周辺機器開放プロトコルを介してModbusTCP通信を行います。溶接機の従局レジスタ定義に従って、対応する通信プロトコルLUAファイルを作成します。このファイルで、溶接機のIPアドレス、ポート番号などの通信パラメータや、アークスタート制御、ワイヤ送給制御などのレジスタアドレスを設定します。このプロトコルをロボットコントローラにアップロードし、ロードすることで、ロボットと溶接機の間の通信を実現できます。 溶接機開放プロトコルの例 +++++++++++++++++++++++++++++++++++++++ .. code-block:: console :linenos: local id = 1 --プロトコル番号。WebAppで設定したプロトコル番号と一致させる必要があります。 local ctrlValues = {0, 0, 0, 0, 0, 0} local realTimeState = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} ModbusTCPMasterClose(id) ModbusTCPMasterCreate('192.168.58.45', 502, 1, id) while(1) do setArcStart, setWireForward, setWireReverse, setShieldingGas, setTouchEnable, setRobotError,setRobotEnableState,default1,default2, default3, default4, setCurrent, setVoltage, SetMode = WeldingGetCtrlState() local ctrlWord = 0 ctrlWord = SetBitWithIndex(ctrlWord, 0, setArcStart) ctrlWord = SetBitWithIndex(ctrlWord, 1, setWireForward) ctrlWord = SetBitWithIndex(ctrlWord, 2, setWireReverse) ctrlWord = SetBitWithIndex(ctrlWord, 3, setShieldingGas) ctrlWord = SetBitWithIndex(ctrlWord, 4, setTouchEnable) ctrlWord = SetBitWithIndex(ctrlWord, 7, setRobotError) ctrlValues[1] = setRobotEnableState ctrlValues[2] = ctrlWord ctrlValues[3] = 0 ctrlValues[4] = setCurrent ctrlValues[5] = setVoltage ctrlValues[6] = 0 ModbusTCPMasterSetHoldRegs(id, 201, 6, ctrlValues, "U16") localtmpCtrlMode={0,0,0,0} tmpCtrlMode[1]=SetMode ModbusTCPMasterSetHoldRegs(id,0x1000,1,tmpCtrlMode,"U16") sleep_ms(10) getWeldState, getCurrent, getVoltage,default1, default2, getWelderErrorCode = ModbusTCPMasterGetHoldRegs(id, 211, 6, "U16") realTimeState[1] = GetBitWithIndex(getWeldState, 0) + GetBitWithIndex(getWeldState, 1) * 2 --welderType realTimeState[2] = GetBitWithIndex(getWeldState, 5) --arc state(WCR) realTimeState[3] = GetBitWithIndex(getWeldState, 4) --touch state realTimeState[4] = GetBitWithIndex(getWeldState, 7) --welder error state realTimeState[12] = getCurrent --current realTimeState[13] = getVoltage --voltage realTimeState[14] = getWelderErrorCode --welder error code realTimeState[15] = getWeldState / 255 --heart jump WeldingSetRealtimeState(realTimeState) local stopFlag = GetOpenLUAStopFlag(id) if(stopFlag ~= 0) then ModbusTCPMasterClose(id) break end sleep_ms(10) end 溶接機開放プロトコルの解析 +++++++++++++++++++++++++++++++++++++++++++++++++++ 溶接機開放プロトコルは主に3つの部分から構成されます。 **①通信接続の確立**:プロトコル番号id(開放プロトコルロード時に設定するプロトコル番号はプロトコルファイルの番号と一致させる必要があります)、溶接機のIPアドレス、ポート番号などのパラメータを指定し、「ModbusTCPMasterCreate()」命令を使用して、ロボットと溶接機の間にModbusTCP接続を確立します。 **②溶接機への制御データの循環書き込み**:溶接機開放プロトコルを実行する際、まずロボットコントローラ内部から現在の溶接機制御データを読み取り、そのデータを溶接機に書き込んで溶接機の動作を制御します。プロトコル内のロボット制御溶接データ読み取り命令「WeldingGetCtrlState()」の戻り値の定義は表2-1の通りです。実際の溶接機制御レジスタ定義に従って制御データを分解し、ModbusTCPを介してデータを溶接機に書き込むことができます。 .. centered:: 表 8.19-1 WeldingGetCtrlState()戻り値 .. list-table:: :widths: 10 20 30 40 :align: center :class: sheet-center * - **番号** - **タイプ** - **名称** - **説明** * - 1 - uint16_t - setArcStart - アークスタート信号;0-消弧;1-アークスタート * - 2 - uint16_t - setWireForward - 正送り:0-送り停止;1-正送り * - 3 - uint16_t - setWireReverse - 逆送り:0-送り停止;1-逆送り * - 4 - uint16_t - setShieldingGas - シールドガス制御:0-ガス停止;1-ガス供給 * - 5 - uint16_t - setTouchEnable - ワイヤタッチセンシングイネーブル:0-ディセーブル;1-イネーブル * - 6 - uint16_t - setRobotError - ロボット故障:0-故障なし;1-故障 * - 7 - uint16_t - setRobotEnableState - ロボットイネーブル状態:0-未イネーブル;1-イネーブル * - 8 - uint16_t - default1 - 予約 * - 9 - uint16_t - default2 - 予約 * - 10 - uint16_t - default3 - 予約 * - 11 - uint16_t - default4 - 予約 * - 12 - uint16_t - setCurrent - 溶接電流設定(0.1A) * - 13 - uint16_t - setVoltage - 溶接電圧設定(0.01V) * - 14 - uint16_t - SetMode - 溶接モード設定:0-直流1元、1-パルス1元、2-JOBモード、3-近接制御モード、4-分別モード、5-CC/CV、6-TIG、7-CMTモード * - 15 - uint16_t - default6 - 予約 * - 16 - uint16_t - default7 - 予約 * - 17 - uint16_t - default8 - 予約 * - 18 - uint16_t - default9 - 予約 * - 19 - uint16_t - default10 - 予約 * - 20 - uint16_t - default11 - 予約 **③溶接機からの状態データの循環読み取り**:溶接機開放プロトコルは、まずModbusTCPを介して溶接機からリアルタイムの状態データを読み取り、関連データをロボットコントローラに書き込むことで、ロボットが溶接機のリアルタイムの動作状態を監視できるようにします。プロトコルがロボットに溶接機状態を設定するインターフェース「WeldingSetRealtimeState()」のパラメータは、すべての溶接機状態を含む配列です(注意:開放プロトコルLUAでは、配列のインデックスは1から始まります)。表2-2に示すように、実際の溶接機状態レジスタ定義に従ってModbusTCPを介して溶接機の状態データを読み取り、溶接機状態配列に組み合わせてロボットコントローラに書き込むことができます。 .. centered:: 表 8.19-2 WeldingSetRealtimeState()詳細パラメータ .. list-table:: :widths: 10 20 30 40 :align: center :class: sheet-center * - **タイプ** - **名称** - **配列インデックス** - **説明** * - uint16_t[20] - realTimeState - 1 - 溶接機型式 * - uint16_t[20] - realTimeState - 2 - アーク状態:0-未アークスタート;1-アークスタート済み * - uint16_t[20] - realTimeState - 3 - ワイヤ接触状態:0-未接触;1-接触済み * - uint16_t[20] - realTimeState - 4 - 溶接機故障状態:0-故障なし;1-溶接機故障 * - uint16_t[20] - realTimeState - 5 - 予約 * - uint16_t[20] - realTimeState - 6 - 予約 * - uint16_t[20] - realTimeState - 7 - 予約 * - uint16_t[20] - realTimeState - 8 - 予約 * - uint16_t[20] - realTimeState - 9 - 予約 * - uint16_t[20] - realTimeState - 10 - 予約 * - uint16_t[20] - realTimeState - 11 - 予約 * - uint16_t[20] - realTimeState - 12 - リアルタイム溶接電流(0.1A) * - uint16_t[20] - realTimeState - 13 - リアルタイム溶接電圧(0.01V) * - uint16_t[20] - realTimeState - 14 - 溶接機故障コード * - uint16_t[20] - realTimeState - 15 - 溶接機通信ハートビートデータ * - uint16_t[20] - realTimeState - 16 - 予約 * - uint16_t[20] - realTimeState - 17 - 予約 * - uint16_t[20] - realTimeState - 18 - 予約 * - uint16_t[20] - realTimeState - 19 - 予約 * - uint16_t[20] - realTimeState - 20 - 予約 溶接機開放プロトコルのアップロードとロード ++++++++++++++++++++++++++++++++++++++++++++++++++ 「初期設定」、「周辺機器」、「制御ボックス」、「周辺機器開放プロトコル」を順にクリックし、「アップロード」ボタンをクリックして、溶接機開放プロトコル「CtrlDev_WELDING.lua」をアップロードします(プロトコルファイル名は`CtrlDev_`で始まり、拡張子は「.lua」である必要があります)。 .. figure:: robot_peripherals/256.png :align: center :width: 6in .. centered:: 図表 8.19‑3 溶接機開放プロトコルのアップロード 「プロトコル設定」で「プロトコル番号」を選択します(開放プロトコルファイルのプロトコル番号と一致させる必要があります)。ここでは番号1を例とし、「プロトコル名」として溶接機開放プロトコル「CtrlDev_WELDING.lua」を選択し、「設定」ボタンをクリックします。これで「デバイス操作及び状態」に設定された溶接機開放プロトコルが表示されます。 .. figure:: robot_peripherals/257.png :align: center :width: 6in .. centered:: 図表 8.19‑4 溶接機開放プロトコルの設定 「接続」ボタンをクリックして溶接機開放プロトコルをロードします。実行状態インジケータが点灯し、ロボットと溶接機が通信中であることを示します。 .. figure:: robot_peripherals/258.png :align: center :width: 6in .. centered:: 図表 8.19‑5 溶接機開放プロトコルのロード 溶接機デバッグと溶接プログラムの作成 +++++++++++++++++++++++++++++++++++++ ロボットによる溶接機の制御方法は主に次の3つです。 **①デジタル量/アナログ量(制御ボックスIO)**:ロボットは制御ボックス上のデジタル出力DO、アナログ出力AOポートを介して溶接機を制御します。使用時には、アークスタート、ワイヤ送給、ガス供給を制御するデジタル出力DOポート番号、溶接電流、溶接電圧を制御するアナログ出力AOポート番号、および溶接電流、溶接電圧とアナログ出力電圧との対応関係を設定する必要があります。 **②デジタル通信プロトコル(UDP)**:ロボット制御ボックスがPLCとUDP通信を行い、PLCがさらに溶接機と通信して制御します。使用時には、ロボットとPLC間、PLCと溶接機間の通信接続を確立する必要があります。 **③デジタル通信プロトコル(ModbusTCP)**:ロボットが溶接機開放プロトコルをロードし、開放プロトコル内で通信パラメータと関連データレジスタアドレスを定義し、ロボットによる溶接機の制御を実現します。 溶接作業を行う前に、異なる溶接制御タイプに応じて対応する設定操作を行う必要があります。異なる設定での溶接機デバッグと溶接プログラムの作成操作は類似しています。 溶接機デバッグ ************************** 溶接機のデバッグを行う前に、溶接機開放プロトコルが正常にロードされ、関連レジスタアドレスが正しく設定されていることを確認してください。 「初期設定」、「周辺機器」、「溶接機」の順にクリックし、「デジタル通信プロトコル(ModbusTcp)」を選択します。 .. figure:: robot_peripherals/259.png :align: center :width: 6in .. centered:: 図表 8.19‑6 「デジタル通信プロトコル(ModbusTcp)」の選択 「アークスタート」、「消弧」、「ガス供給」、「ガス停止」などのボタンをクリックし、実際の溶接機の動作が設定と一致するか観察します。溶接機が設定された動作を行わない場合は、溶接機開放プロトコル内のレジスタ設定に誤りがないか確認し、さらにデバッグを行います。 .. figure:: robot_peripherals/260.png :align: center :width: 6in .. centered:: 図表 8.19‑7 溶接機デバッグ 溶接プログラムの作成 ******************************** 「初期設定」、「ティーチングプログラム」、「プログラム作成」をクリックし、新しいプログラム「testWeld.lua」を作成します。 .. figure:: robot_peripherals/261.png :align: center :width: 6in .. centered:: 図表 8.19‑8 溶接LUAプログラムの作成 「溶接コマンド」を選択します。 .. figure:: robot_peripherals/262.png :align: center :width: 6in .. centered:: 図表 8.19‑9 「溶接コマンド」の選択 「溶接」ボタンをクリックします。 .. figure:: robot_peripherals/263.png :align: center :width: 6in .. centered:: 図表 8.19‑10 「溶接」コマンドをクリック ポップアップ表示された溶接コマンド追加ページで「デジタル通信プロトコル(Modbus Tcp)」を選択し、「アークスタート」を選択して「追加」をクリックし、「消弧」を選択して「追加」ボタンをクリックし、最後に「適用」ボタンをクリックします。 .. figure:: robot_peripherals/264.png :align: center :width: 6in .. centered:: 図表 8.19‑11 アークスタート、消弧コマンドの追加 これで「testWeld.lua」にアークスタート、消弧コマンドが追加されました。 .. figure:: robot_peripherals/265.png :align: center :width: 6in .. centered:: 図表 8.19‑12 アークスタート、消弧コマンドの追加 溶接開始点と溶接終了点を順に追加します。ロボットを自動モードに切り替え、安全を確保した上でプログラムを起動すると、ロボットは溶接機を制御して1本の溶接シームの溶接作業を行います。 .. figure:: robot_peripherals/266.png :align: center :width: 6in .. centered:: 図表 8.19‑13 溶接プログラム 溶接機開放プロトコルのアンロード ++++++++++++++++++++++++++++++++++ 「初期設定」、「周辺機器」、「制御ボックス」、「周辺機器開放プロトコル」を順にクリックし、「デバイス操作及び状態」で「アンロード」ボタンをクリックします。 .. figure:: robot_peripherals/267.png :align: center :width: 4in .. centered:: 図表 8.19‑14 開放プロトコルのアンロード このとき、プロトコルの実行状態インジケータが消灯します。 .. figure:: robot_peripherals/268.png :align: center :width: 4in .. centered:: 図表 8.19‑15 開放プロトコルのアンロード この状態で溶接デバッグまたは溶接プログラムを実行すると、ロボットのWebAppの左下に「プロトコル未ロードエラー」が表示されます。 .. figure:: robot_peripherals/269.png :align: center :width: 2in .. centered:: 図表 8.19‑16 プロトコル未ロードエラー 末端Lua開放プロトコルによる溶接ハンドル適用 ------------------------------------------------------------- プロトコル設定 ~~~~~~~~~~~~~~~~~~~~~~ 開放プロトコルを使用して溶接ハンドルを適用する場合、ロボットの電源投入後、まずWebページに入り、開放プロトコルのアップロード設定を行う必要があります。 「初期設定」->「周辺機器」->「末端ツール」-「開放プロトコル」を順にクリックし、「末端プロトコル通信」をクリックし、「Bootに入る」をクリックし、「アップロード」で開放プロトコルをアップロードします。アップロード完了後、デバイスを再起動すると、末端lua開放プロトコルで溶接ハンドルを適用できます。 .. figure:: robot_peripherals/270.png :align: center :width: 6in .. centered:: 図表 8.20‑1 末端開放プロトコルのアップロード 「初期設定」->「周辺機器」->「末端ツール」-「開放プロトコル」を順にクリックし、「末端プロトコル有効化」をクリックし、デバイスタイプとして「溶接ハンドル」を選択し、「有効化」をクリックすると溶接ハンドルを適用できます。有効化後、電源を切っても設定は保持されます。 .. figure:: robot_peripherals/271.png :align: center :width: 6in .. centered:: 図表 8.20‑2 末端開放プロトコルの有効化 開放プロトコルテンプレート ~~~~~~~~~~~~~~~~~~~~~~~~~~ 佳士達適用開放プロトコルを例とします。 .. code-block:: console function Getbit(X,Bit) --Xの対応するbit位を抽出 return ((X&(1<>Bit) end while(1) do IwdgTaskHandle() MainLoop() UpDownLoadHandle() SdoRwPara() EndErrClear() local BFlag=LuaBreak() if(BFlag==1)then break end RxData={} T0={0x7D,0x08,0x22,0xB3,0x01,0x00} T1={0x7D,0x08,0x22,0xB4,0x03,0x00} T2={0x7D,0X08,0X22,0XB5,0x1E,0x00} DelayMs(5) RxLen=WeldToolMasterGetCmd(RxData) --WeldToolMasterGetCmd()関数は、溶接ハンドルから送信されたコマンドを取得するために使用されます(溶接ハンドルがマスタの場合)。使用時には空のテーブルをスタックに入れる必要があります(X={})。 if (RxData[1]==0x7D)and(RxData[2]==0x08)and(RxData[3]==0x22) then if(RxData[4] == 0xB3)then --佳士達溶接ハンドルの機能コードを例にとると、ここでは0xB3(溶接パラメータ設定)。 local SetParams={A2=RxData[7],A1=RxData[8],A6=(ByteToDwFloat(RxData[9],RxData[10],RxData[11],RxData[12]))*1000, A8=(ByteToDwFloat(RxData[13],RxData[14],RxData[15],RxData[16])),A7=(ByteToDwFloat(RxData[17],RxData[18],RxData[19],RxData[20])), A4=(ByteToDwFloat(RxData[21],RxData[22],RxData[23],RxData[24]))*1000,A5=(ByteToDwFloat(RxData[25],RxData[26],RxData[27],RxData[28]))*1000} SetWeldParams(SetParams) --SetWeldParams()関数は、コントローラの溶接パラメータを設定するために使用され、溶接ハンドルのカスタムパラメータ表を参照して、変更する必要がある溶接パラメータを決定する必要があります(合計3つの領域A、B、Cに分けられます)。 Dword=GetRobotState() --GetRobotState()関数は、ロボットの関連状態を取得するために使用されます。現在、bit0はロボットイネーブル状況、bit1はロボット故障状態、bit2はロボット移動状態、bit3はアークスタート/消弧コマンド信号です。末端全周辺機器プロトコルV2.7を参照してください。 T0[7]=((Dword)&(1<<1)) T0[8],T0[9]=WeldToolCrcValue(T0) --WeldToolCrcValue() FAIRINOカスタムプロトコルCRCチェック T0[10]=0x0E EndTxWeldData(T0) --EndTxWeldData()関数は、パケットデータを送信するために使用されます(ここでは溶接ハンドルの溶接パラメータ設定コマンドへの応答)。 DelayMs(5) end if(RxData[4] == 0xB4)then --0xB4リアルタイム制御コマンド local key={K0=Getbit(RxData[7],0),K1=Getbit(RxData[7],1),K2=Getbit(RxData[7],2),K3=Getbit(RxData[7],3), K4=Getbit(RxData[7],4),K5=Getbit(RxData[7],5),K6=Getbit(RxData[7],6),K7=Getbit(RxData[7],7), K8=Getbit(RxData[8],0),K9=Getbit(RxData[8],1),K10=Getbit(RxData[8],2),K11=Getbit(RxData[8],3), K12=Getbit(RxData[8],4),K13=Getbit(RxData[8],5),K14=Getbit(RxData[8],6),K15=Getbit(RxData[9],0), K16=Getbit(RxData[9],1),K17=Getbit(RxData[9],2),K18=Getbit(RxData[9],3),K19=Getbit(RxData[9],4), K20=Getbit(RxData[9],5),K21=Getbit(RxData[9],6),K22=Getbit(RxData[9],7),K23=Getbit(RxData[10],0), K24=Getbit(RxData[10],1)} --キー値は末端全周辺機器プロトコルV2.7の表26を参照する必要があります。K0-K31はDWordInput10のbit0-bit31、K32-K63はDWordInput9のbit0-bit31に対応します。 SetWeldToolKeys(key) --SetWeldToolKeys()関数は、溶接ハンドルのキー状態をアップロードするために使用されます。実際の溶接ハンドルの状況に応じて、表中のキー値を調整できます。 Dword=GetRobotState() T1[7]=(Dword)&(0x1) T1[8]=(Dword>>1)&(0x1) T1[9]=(Dword>>2)&(0x1) T1[10],T1[11]=WeldToolCrcValue(T1) T1[12]=0X0E EndTxWeldData(T1) DelayMs(5) end if(RxData[4] == 0xB5)then --溶接パラメータの読み取り(コントローラから取得し、溶接ハンドルに与える)。 local wldpams={"A2","A1","A6","A8","A7","A4","A7"} --溶接ハンドルが実際に必要とする溶接パラメータに応じて記述します。ここで佳士達が必要とするのはこれらであり、末端全周辺機器プロトコルV2.7の表26を参照できます。 GetWeldParams(wldpams) --GetWeldParams()は対応する溶接パラメータを取得し、その値を表中に置き換えます(A2=100の場合、関数を呼び出すとwldpams[1]=100になります)。 T2[7]=wldpams[1] T2[8]=wldpams[2] wldpams[3]=wldpams[3]/1000 wldpams[6]=wldpams[6]/1000 wldpams[7]=wldpams[7]/1000 for i=0,4 do T2[9+(i*4)+3],T2[9+(i*4)+2],T2[9+(i*4)+1],T2[9+(i*4)+0]=DwFloatToByte(wldpams[3+i]) end for i=0,7 do T2[29+i]=0 end T2[37],T2[38]=WeldToolCrcValue(T2) T2[39]=0x0E EndTxWeldData(T2) DelayMs(5) end end LuaGc() end 開放プロトコルでサポートされるコマンド ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 以下のコマンドを開放プロトコルで設定できます。同時に39-63は予約されており、将来拡張可能です。 .. centered:: 表 8.20-1 開放プロトコルでサポートされるコマンド .. list-table:: :widths: 20 80 :header-rows: 0 :align: center :class: sheet-center * - **Bit** - **説明** * - 0 - プログラムのクリア * - 1 - プログラムの保存 * - 2 - 安全点の生成(LINコマンド) * - 3 - 直線移動点の生成(LINコマンド) * - 4 - 円弧遷移点の追加 * - 5 - 円弧終了点を追加し、ARCコマンドを生成 * - 6 - モード切り替え、デフォルトは手動モード * - 7 - ロボット運転状態の切り替え * - 8 - ロボットドラッグ状態の切り替え * - 9 - スポット溶接開始 * - 10 - ウィービング開始コマンドの追加 * - 11 - ウィービング終了コマンドの追加 * - 12 - X正方向ジョグ * - 13 - X負方向ジョグ * - 14 - Y正方向ジョグ * - 15 - Y負方向ジョグ * - 16 - Z正方向ジョグ * - 17 - Z負方向ジョグ * - 18 - RX正方向ジョグ * - 19 - RX負方向ジョグ * - 20 - RY正方向ジョグ * - 21 - RY負方向ジョグ * - 22 - RZ正方向ジョグ * - 23 - RZ負方向ジョグ * - 24 - 開始点の生成 * - 25 - PTP * - 26 - 固定姿勢ドラッグ * - 27 - 溶接中断復旧 * - 28 - 溶接中断終了 * - 29 - SetDO * - 30 - offline * - 31 - 設定パラメータの更新 * - 32 - アークスタートArcStart * - 33 - 消弧ArcEnd * - 34 - Lin+ArcStart+weaveStart * - 35 - Lin+ArcEnd+weaveEnd * - 36 - Lin+ArcStart * - 37 - Lin+ArcEnd * - 38 - プログラムの取り消し * - 39 - 予約 * - ... - 予約 * - 63 - 予約 開放プロトコルで設定可能なパラメータ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 以下のパラメータを開放プロトコルで設定できます。 .. centered:: 表 8.20-2 開放プロトコルで設定可能なパラメータ .. list-table:: :widths: 10 40 20 30 :header-rows: 0 :align: center :class: sheet-center * - **インデックス** - **データ内容** - **データ型** - **範囲** * - 0 - 溶接速度 - float - 0-100% * - 1 - 空行速度 - float - 0-100% * - 2 - アークスタート/消弧タイムアウト時間 - float - 0-65535(ms) * - 3 - ウィービング左停留時間 - float - 0-99999(ms) * - 4 - ウィービング右停留時間 - float - 0-99999(ms) * - 5 - スポット溶接時間 - float - 0-99999(ms) * - 6 - ウィービング幅 - float - 0-1000(0.1mm) * - 7 - ウィービング周波数 - float - 0-100(0.1Hz) * - 8 - 溶接機制御タイプ;0-制御ボックスIO;1-デジタル通信プロトコル(UDP) - float - 0-255 * - 9 - 溶接プロセス番号(0-99) - float - 0-99 * - 10 - ウィービングタイプ - float - 0-255 * - 11 - 電流制御出力アナログ出力ポート - float - 0-1 * - 12 - 電圧制御出力アナログ出力ポート - float - 0-1 * - 13 - 操作DOポート番号 - float - 0-15 * - 14 - ウィービングパラメータ番号 - float - 0-255 * - 15 - 手動モード全体速度 - float - 0-100% * - 16 - 自動モード全体速度 - float - 0-100% * - 17 - 溶接電流 - float - 0-999990(0.1A) * - 18 - 溶接電圧 - float - 0-999990(0.1V) * - 19 - 1回のジョグ最大距離 - float - 0-1000(0.1mm) * - 20 - 溶接機準備拡張DIポート - float - 0-127 * - 21 - アークスタート成功拡張DIポート - float - 0-127 * - 22 - 溶接中断復旧拡張DIポート - float - 0-127 * - 23 - 溶接中断終了拡張DIポート - float - 0-127 * - 24 - 溶接機アークスタート拡張DOポート - float - 0-127 * - 25 - ガス検出拡張D0ポート - float - 0-127 * - 26 - 正送り拡張D0ポート - float - 0-127 * - 27 - 逆送り拡張D0ポート - float - 0-127 * - 28 - 溶接中断復旧イネーブル - float - 0-1 * - 29 - 復旧点までの速度 - float - 0-100% * - 30 - 運動方式 - float - 0-1 * - 31 - 溶接アーク中断検出イネーブル - float - 0-1 * - 32 - 待機時間を含むかどうか(ms) - float - 0-1 * - 33 - ウィービングコールバック比率 - float - 0-100% * - 34 - ウィービング位置待機タイプ - float - 0-255 * - 35 - アークスタート時間 - float - 0-65535(ms) * - 36 - 消弧時間 - float - 0-65535(ms) * - 37 - 溶接アーク中断確認時間 - float - 0-65535(ms) * - 38 - オーバーラップ距離 - float - 0-1000(0.1mm) * - 39 - アークスタート電流 - float - 0-999990(0.1A) * - 40 - アークスタート電圧 - float - 0-999990(0.1V) * - 41 - 消弧電流 - float - 0-999990(0.1A) * - 42 - 消弧電圧 - float - 0-999990(0.1V) * - 43 - 最小溶接電流 - float - 0-999990(0.1A) * - 44 - 最大溶接電流 - float - 0-999990(0.1A) * - 45 - 最小溶接電流に対応する出力アナログ量 - float - 0-100(0.1A) * - 46 - 最大溶接電流に対応する出力アナログ量 - float - 0-100(0.1A) * - 47 - 最小溶接電圧 - float - 0-2000(0.1V) * - 48 - 最大溶接電圧 - float - 0-2000(0.1V) * - 49 - 最小溶接電圧に対応する出力アナログ量 - float - 0-100(0.1V) * - 50 - 最大溶接電圧に対応する出力アナログ量 - float - 0-100(0.1V) * - 51 - 立三角ウィービング左弦長さ - float - 0-1000(0.1mm) * - 52 - 立三角ウィービング右弦長さ - float - 0-1000(0.1mm) * - 53 - ウィービング方向方位角 - float - -1800-1800(0.1°) * - 54 - ウィービング方向傾斜角 - float - -1800-1800(0.1°) * - 55 - 立三角ウィービング三角点待機時間 - float - 0-99999(ms) 協働ロボットアレイ式吸盤アプリケーション ------------------------------------------------------------- 概要 ~~~~~~~~~~~~~~~~~~~~~~ ロボットの末端にアレイ式吸盤を取り付けることで、ロボットは異なるシーンのマテリアルハンドリングステーションを迅速に展開できます。異なるサイズや形状のマテリアルに応じて吸盤の数や配置をカスタマイズでき、作業効率と安定性を向上させることができます。 協働ロボットは最大20個の吸盤で構成される吸盤アレイをサポートしており、その中の特定の吸盤の吸着と解放を個別に制御することも、接続されているアレイ全体のすべての吸盤を同期して動作させることもできます。各吸盤の従局番号は1〜20の設定が可能で、設定はDynamicLABソフトウェアをベースに行います。 ハードウェア説明 +++++++++++++++++++++++++++++++++++++++++++ 協働ロボットはイーサネットto485モジュールを介して吸盤アレイと通信制御を行います。WebApp上でアレイ式吸盤の通信プロトコルを生成し、プロトコルは制御データをTCPIPを介してイーサネットto485モジュールに送信します。モジュールは受信した制御データを485を介して各吸盤に送信し、これによりアレイ式吸盤の制御を実現します(上記の制御データ形式はModbusRTUプロトコル形式です)。 ここで、イーサネットto485モジュールはイーサネット通信のサーバー、485通信のマスタであり、アレイ内の各吸盤はすべて485通信の従局であり、各吸盤には異なる従局番号を設定する必要があります。 .. figure:: robot_peripherals/272.png :align: center :width: 6in .. centered:: 図表 8.21-1 協働ロボット吸盤アレイグリッパアプリケーション イーサネットto485モジュールは通常、2つのTCPServerポートが複数の485従局ポートに対応しています。CH9121を例にとると、そのTCPServerポート1は485従局ポート1-10に対応し、TCPServerポート2は485従局ポート11-20に対応します。ロボットはイーサネットto485モジュールと2つのTCP通信を確立し、最終的にそれぞれ20個の吸盤を制御します。 上記のイーサネットto485モジュールは以下の設定を行う必要があります。 - ①イーサネット側をTCPServerに設定し、IPアドレスを192.168.58.10、ポート1のポート番号を50001、ポート2のポート番号を50002に設定します。 - ②485側のボーレートを115200、データビット8、ストップビット1、パリティなしに設定します。イーサネットto485モジュールには通常、デバッグソフトウェアが付属しており、デバッグソフトウェアで上記の設定を行うことができます。下図はCH9121モデルのイーサネットto485モジュール設定ツールのページです。 .. figure:: robot_peripherals/273.png :align: center :width: 6in .. centered:: 図表 8.21-2 イーサネットto485モジュールデバッグツール 機能設定 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ WebAppを開き、「初期設定」->「周辺機器」->「アレイ式吸盤」を順にクリックします。アレイ式吸盤の制御モードにはユニキャストモードとブロードキャストモードの2種類があります。 **ユニキャストモード**:通信プロトコルには各吸盤に対する通信制御内容が含まれており、アレイ内の各吸盤を個別に制御できます。 **ブロードキャストモード**:アレイ内のすべての吸盤に対して通信プロトコルを生成し、アレイ内のすべての吸盤の吸着と解放を同期して制御できますが、その中の特定の吸盤を個別に制御することはできません。 作業中は、実際のシーンに応じてユニキャストモードのみを設定することも、両方のモードを同時に設定することもできます(特定の吸盤を個別に制御することも、すべての吸盤を同期制御することもできます)。 .. figure:: robot_peripherals/274.png :align: center :width: 6in .. centered:: 図表 8.21-3 アレイ吸盤制御モード ユニキャストモード設定 ++++++++++++++++++++++++++++++++++ WebAppを開き、「初期設定」->「周辺機器」->「アレイ式吸盤」->「ユニキャストモード」を順にクリックします。ユニキャストモードのプロトコル設定方法には、「自動設定」と「手動設定」の2種類があります。 .. figure:: robot_peripherals/275.png :align: center :width: 6in .. centered:: 図表 8.21-4 ユニキャスト設定モード **自動設定**:既存のプロトコルファイルを直接ロボットコントローラにアップロードします。既存のプロトコルファイルは、①他のアレイ式吸盤が設定・デバッグ済みのロボットからダウンロードしたもの、②技術者が実際のシーンに基づいて作成したもの(ユーザーがプロトコルファイルを作成することで、より柔軟で効率的な吸盤制御が可能になります)が考えられます。複数のデバイスで同じアレイ式吸盤を使用する場合、自動設定でプロトコルを直接アップロードすることで、展開速度を向上させることができます。 **手動設定**:アレイ内の吸盤の従局IDと真空度に基づいて、各吸盤の通信プロトコルを設定します。手動設定の操作手順は以下の通りです。 従局番号1を選択し、最大真空度、最小真空度、吸着タイムアウト時間(タイムアウト時間はまだ開放されていません)を入力し、「設定」ボタンをクリックします。これで「デバイス操作及び状態」欄にプロトコル番号1の吸盤プロトコルが表示され、「手動設定」、「従局番号」ラベルに現在設定されているすべての従局番号が表示されます。 .. figure:: robot_peripherals/276.png :align: center :width: 6in .. centered:: 図表 8.21-5 ユニキャスト吸盤の設定 上記の手順を繰り返し、必要に応じて複数の従局番号の吸盤を設定します。吸盤を設定するたびに、ロボットシステムは自動的に「プロトコル番号:1」に対応する吸盤通信プロトコル内容を更新します。最大20個の吸盤の設定をサポートします。すべての吸盤の設定が完了したら、「プロトコル番号1」ボックスで「接続」ボタンをクリックすると、ロボットと吸盤の通信が開始され、「実行状態」インジケータが点灯します(注意:すべての従局番号の吸盤の設定が完了してから「接続」ボタンをクリックしてください。通信確立後に吸盤を設定しても無効です)。 ロボットと吸盤の通信が確立されると、「デバイス操作及び状態」欄に設定されたすべての吸盤の従局操作ボックスリストが表示されます。各従局番号に対応する吸盤の操作ボックスページで、吸盤の制御と状態監視(「吸着状態」、「現在の真空度」、「吸盤圧力」など)を行うことができます。下図で設定されている吸盤の従局IDはそれぞれ2と11です。 .. figure:: robot_peripherals/277.png :align: center :width: 6in .. centered:: 図表 8.21-6 ユニキャスト吸盤の接続 従局番号1の吸盤の制御ボックスの右上にある「吸着」ボタンをクリックすると、吸盤は「設定真空度での吸着」動作を実行します。このとき「吸着」ボタンは「解放」ボタンに変わり、再度そのボタンをクリックすると、吸盤は解放動作を実行します。吸盤が上記の動作を実行する際、対応する「吸着状態」、「現在の真空度」などの状態項目に吸盤の状態がリアルタイムで表示されます。 .. note:: 注意:吸盤プロトコルを設定して接続した後、「吸着」ボタンを一度クリックしてその吸盤をアクティブ化する必要があります。同時に、ロボットと吸盤の間の通信が正常かどうかをテストすることもできます。 ロボットと吸盤の接続に失敗した場合、吸盤制御ボックスは表示されず、「プロトコル番号:1」の実行状態インジケータが消灯します。 .. note:: 注意:使用中に吸盤とイーサネットto485モジュールの通信物理接続が切断され、再接続された場合、プロトコルが接続を確立できないことがあります。その場合は、イーサネットto485モジュールのネットワークケーブルを抜き差しして、再接続を試みてください。 .. figure:: robot_peripherals/278.png :align: center :width: 6in .. centered:: 図表 8.21-7 ロボットと吸盤の接続失敗 ユニキャストモードプロトコルのダウンロード ++++++++++++++++++++++++++++++++++++++++++ 「手動設定」で「ダウンロード」ボタンをクリックすると、吸盤プロトコルをローカルコンピュータにダウンロードできます。吸盤プロトコルは循環実行されるLUAプログラムであり、プログラムは各サイクルで以下の手順を実行します。 - ①ロボットから吸盤制御データを読み取る。 - ②socketを介して制御データを吸盤に書き込む。 - ③socketを介して吸盤から状態データを読み取る。 - ④吸盤状態データをロボットにフィードバックする。 吸盤通信プロトコルは循環実行されることで、ロボットと吸盤の通信制御を実現します。通信プロトコルでは、ユーザーが循環周期、制御データレジスタアドレス、状態データレジスタアドレスをカスタマイズできます。実際の状況に応じてこのプロトコル内容を修正することができます。以下は吸盤通信プロトコルのコード例です。 吸盤プロトコルプログラム例: .. code-block:: console :linenos: local id = 1 local ctrlValues = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} local realTimeState = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0} local suckerConfig = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0} clearSuckerState() socket1 = TCPClientConnect('192.168.58.10', 50001, 500, 10, 2, 3) socket2 = TCPClientConnect('192.168.58.10', 50002, 500, 10, 2, 3) suckerConfig[1] = 30 suckerConfig[2] = 20 suckerConfig[3] = 100 ModbusRTUOverTCPWriteMultiReg(socket1, 0, 0x0501, 3, suckerConfig) ModbusRTUOverTCPWriteMultiReg(socket2, 0, 0x0501, 3, suckerConfig) sleep_ms(10) while(1) do setAllCtrl,ctrlValues[1],ctrlValues[2],ctrlValues[3],ctrlValues[4],ctrlValues[5],ctrlValues[6],ctrlValues[7],ctrlValues[8],ctrlValues[9], ctrlValues[10], ctrlValues[11], ctrlValues[12],ctrlValues[13],ctrlValues[14],ctrlValues[15],ctrlValues[16],ctrlValues[17],ctrlValues[18],ctrlValues[19], ctrlValues[20] = getSuckerCtrlState() if(setAllCtrl ~= 0) then ModbusRTUOverTCPWriteSingleReg(socket1, 0, 0x0500, setAllCtrl) ModbusRTUOverTCPWriteSingleReg(socket2, 0, 0x0500, setAllCtrl) ctrlValues = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} sleep_ms(1) else ModbusRTUOverTCPWriteSingleReg(socket1, 2, 0x0500, ctrlValues[2]) ModbusRTUOverTCPWriteSingleReg(socket2, 11, 0x0500, ctrlValues[11]) end suckerState, pressValue, error, default1, default2 = ModbusRTUOverTCPReadReg(socket1, 2, 0x0600, 3) realTimeState[1] = suckerState realTimeState[2] = pressValue realTimeState[3] = error ctrlState, maxPress, minPress, time, default2 = ModbusRTUOverTCPReadReg(socket1, 2, 0x0500, 4) realTimeState[4] = ctrlState realTimeState[5] = maxPress realTimeState[6] = minPress realTimeState[7] = time setSuckerRealtimeState(2, realTimeState) suckerState, pressValue, error, default1, default2 = ModbusRTUOverTCPReadReg(socket2, 11, 0x0600, 3) realTimeState[1] = suckerState realTimeState[2] = pressValue realTimeState[3] = error ctrlState, maxPress, minPress, time, default2 = ModbusRTUOverTCPReadReg(socket2, 11, 0x0500, 4) realTimeState[4] = ctrlState realTimeState[5] = maxPress realTimeState[6] = minPress realTimeState[7] = time setSuckerRealtimeState(11, realTimeState) local stopFlag = GetOpenLUAStopFlag(id) if(stopFlag ~= 0) then TCPClientDisconnect(socket1) TCPClientDisconnect(socket2) clearSuckerState() break end sleep_ms(100) end 上記のプロトコルは、getSuckerCtrlState()命令で吸盤制御データを取得し、ModbusRTUOverTCPWriteSingleReg()命令で制御データを通信を介して吸盤に書き込み、ModbusRTUOverTCPReadReg()命令で吸盤の状態データを読み取り、setSuckerRealtimeState()で吸盤状態データをロボットにフィードバックします。上記の各命令の詳細定義は以下の通りです。 .. centered:: 表 8.21-1 getSuckerCtrlState()戻り値 .. list-table:: :widths: 10 10 20 40 :header-rows: 0 :align: center :class: sheet-center * - **番号** - **タイプ** - **変数名** - **説明** * - 1 - int - setAllCtrl - ブロードキャストモード制御データ:1-最大真空度で吸着;2-設定真空度で吸着、すなわち吸盤真空度を最大真空度と最小真空度の間に維持;3-吸着停止 * - 2 ~ 21 - int - ctrlValues[i] - 従局番号1 ~ 20に対応する吸盤制御データ:1-最大真空度で吸着;2-設定真空度で吸着、すなわち吸盤真空度を最大真空度と最小真空度の間に維持;3-吸着停止 .. centered:: 表 8.21-2 ModbusRTUOverTCPWriteSingleReg()詳細パラメータ .. list-table:: :widths: 10 10 20 40 :header-rows: 0 :align: center :class: sheet-center * - **番号** - **タイプ** - **変数名** - **説明** * - 1 - int - socket - socketハンドル * - 2 - int - slaveID - 従局番号 0-20;0-ブロードキャスト;1~20-従局番号 * - 3 - uint16_t - regAddr - 書き込みレジスタアドレス * - 4 - uint16_t - data - 書き込むデータ .. centered:: 表 8.21-3 ModbusRTUOverTCPWriteMultiReg()詳細パラメータ .. list-table:: :widths: 10 10 20 40 :header-rows: 0 :align: center :class: sheet-center * - **番号** - **タイプ** - **変数名** - **説明** * - 1 - int - socket - socketハンドル * - 2 - int - slaveID - 従局番号 0-20;0-ブロードキャスト;1~20-従局番号 * - 3 - uint16_t - regStartAddr - 複数レジスタ書き込み開始アドレス * - 4 - int - num - 書き込みレジスタ数 * - 5 - uint16_t[] - data - 書き込むデータ内容の配列 .. centered:: 表 8.21-4 ModbusRTUOverTCPReadReg()詳細パラメータ .. list-table:: :widths: 10 10 20 40 :header-rows: 0 :align: center :class: sheet-center * - **番号** - **タイプ** - **変数名** - **説明** * - 1 - int - socket - socketハンドル * - 2 - int - slaveID - 従局番号 0-20;0-ブロードキャスト;1~20-従局番号 * - 3 - uint16_t - regStartAddr - 複数レジスタ読み取り開始アドレス * - 4 - int - num - 読み取りレジスタ数 .. centered:: 表 8.21-5 ModbusRTUOverTCPReadReg()戻り値 .. list-table:: :widths: 10 10 20 40 :header-rows: 0 :align: center :class: sheet-center * - **番号** - **タイプ** - **変数名** - **説明** * - 1 - int - suckState - 吸盤の現在の状態:0-物体を解放、または吸盤起動成功;1-ワークを検出、物体に吸着;2-物体に吸着していない;3-物体が離脱 * - 2 - float - pressValue - 現在の真空度/圧力 * - 3 - int - err - エラーコード:0-正常;その他:異常 .. centered:: 表 8.21-6 setSuckerRealtimeState()詳細パラメータ .. list-table:: :widths: 10 10 20 40 :header-rows: 0 :align: center :class: sheet-center * - **番号** - **タイプ** - **変数名** - **説明** * - 1 - int - slaveID - 従局ID * - 2 - int[] - states - states[1]:現在の状態0-物体を解放、または吸盤起動成功;1-ワークを検出、物体に吸着;2-物体に吸着していない;3-物体が離脱。 states[2]:現在の真空度/圧力; states[3]:待機レジスタ値; states[4]:制御状態; states[5]:最大真空度; states[6]:最小真空度; state[7]:タイムアウト時間; states[8~10]:予約。 ブロードキャストモード ++++++++++++++++++++++++++++++++++ 協働ロボットはブロードキャストモードにより、接続されているすべての吸盤を同時に制御できます。 .. note:: 注意:ブロードキャストモードを設定する前に、ユニキャストモードを設定しておく必要があります。 WebAppを開き、「初期設定」->「周辺機器」->「アレイ式吸盤」を順にクリックし、まずユニキャストモードで必要なすべての吸盤従局を設定します(設定のみで、通信プロトコル接続は確立しません)。 「ブロードキャストモード」をクリックし、「パラメータ設定」で吸盤の「最大真空度」、「最小真空度」、「吸着タイムアウト時間」(タイムアウト時間はまだ開放されていません)を入力し、「設定」ボタンをクリックします。これで「デバイス操作及び状態」ボックスにブロードキャストモードの通信プロトコルが表示されます。ブロードキャストモードでは、設定された真空度パラメータは接続されている各吸盤に対して有効です。 .. figure:: robot_peripherals/279.png :align: center :width: 6in .. centered:: 図表 8.21-8 ブロードキャストモードパラメータ設定 「プロトコル番号1」操作ボックスで「接続」ボタンをクリックし、「実行状態」インジケータが点灯すると、ロボットとアレイ式吸盤の通信接続が確立されたことを示します。接続が成功すると、接続されているすべての吸盤の操作ボックスリストが「デバイス操作及び状態」欄に表示されます。 「パラメータ設定」->「一括吸着」で「開始」をクリックすると、アレイ式吸盤内の各吸盤は「設定真空度での吸着」動作を実行し、「停止」をクリックすると、アレイ式吸盤内の各吸盤は吸着動作を停止します。 .. figure:: robot_peripherals/280.png :align: center :width: 6in .. centered:: 図表 8.21-9 ブロードキャストモード通信確立 ブロードキャストモードのプロトコルファイルのダウンロードはユニキャストモードと同様の操作で行います。どちらでダウンロードしたプロトコルファイルも、ユニキャストモードページの「自動設定」からロボットにアップロードできます。 アレイ式吸盤のLUAプログラム応用 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ロボットのLUAプログラムにアレイ吸盤の制御、状態取得などの命令を追加し、ロボットの運動命令と組み合わせることで、柔軟かつ便利にマテリアルハンドリングや搬送のアプリケーションを実現できます。 WebAppを開き、「ティーチングプログラム」->「プログラム作成」を順にクリックし、新しいLUAプログラム「testSucker.lua」を作成します。 .. figure:: robot_peripherals/281.png :align: center :width: 6in .. centered:: 図表 8.21-10 新しい「testSucker.lua」プログラムの作成 命令タイプとして「周辺機器コマンド」を選択し、周辺機器コマンドで「吸盤」ボタンをクリックします。これでWebAppの右側に「Sucker」アレイ式吸盤命令追加ページが表示されます。 .. figure:: robot_peripherals/282.png :align: center :width: 6in .. centered:: 図表 8.21-11 アレイ式吸盤命令の追加 吸盤制御命令の追加 +++++++++++++++++++++++++++++++++++++++++++ LUAプログラムに吸盤制御命令を記述することで、吸盤の吸着制御と解放制御を行うことができます。ユニキャストモードとブロードキャストモードの制御には、異なる論理効果があります。 ユニキャストモード制御命令の追加 *********************************************************** ユニキャストモード制御では、従局開始アドレスと数量に基づいて、単一または複数の吸盤を制御でき、各吸盤に異なる制御状態を設定できます。 吸盤命令追加ページで「吸盤制御命令」をクリックし、制御モードとして「ユニキャストモード」を選択し、従局番号に1、書き込み数量に2、吸着状態に「1,2」を入力します。「追加」ボタンをクリックすると、「プログラムプレビュー」にユニキャストモードの吸盤制御命令が追加されます。 .. figure:: robot_peripherals/283.png :align: center :width: 6in .. centered:: 図表 8.21-12 吸盤制御命令の追加 吸盤制御命令の各パラメータの意味は以下の通りです。 - **従局番号**:ユニキャストモードで制御する吸盤の開始従局番号。 - **書き込み数量**:ユニキャストモードで開始従局番号から制御する吸盤の数量。 - **吸着状態**:ユニキャストモードで開始従局番号から、各吸盤の制御状態フラグ(1-最大真空度で吸着;2-設定真空度で吸着、すなわち吸盤真空度を最大真空度と最小真空度の間に維持;3-吸着停止)。各吸盤の制御状態フラグは「,」で区切り、制御フラグの数は制御する吸盤の数と一致させる必要があります。2つの吸盤を制御し、それぞれ「最大真空度で吸着」と「設定真空度で吸着」の操作を行う場合、この項目の入力内容は「1,2」となります。 「適用」ボタンをクリックすると、「testSucker.lua」プログラムに吸盤制御命令が追加されます。ロボットを自動モードに切り替え、このLUAプログラムを実行すると、ロボットは従局番号1と2の2つの吸盤をそれぞれ最大真空度と設定真空度で吸着動作を制御します。 .. figure:: robot_peripherals/284.png :align: center :width: 6in .. centered:: 図表 8.21-13 LUAプログラムへの吸盤命令の追加 ブロードキャストモード制御命令の追加 *********************************************************** ブロードキャストモード制御命令で設定された吸着状態は、現在接続されているすべての吸盤に有効です。 「吸盤制御命令」をクリックし、制御モードとして「ブロードキャストモード」を選択し、吸着状態として1(最大真空度で吸着)を入力します。「追加」ボタンをクリックします。 .. figure:: robot_peripherals/285.png :align: center :width: 6in .. centered:: 図表 8.21-14 ブロードキャスト制御命令の追加 「適用」ボタンをクリックすると、「testSucker.lua」にブロードキャストモードの吸盤制御命令が追加されます。ロボットを自動モードに切り替え、このプログラムを実行すると、接続されているすべての吸盤が最大真空度で吸着動作を開始します。 .. figure:: robot_peripherals/286.png :align: center :width: 6in .. centered:: 図表 8.21-15 LUAプログラムへのブロードキャスト制御命令の追加 吸盤状態取得命令の追加 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 「吸盤状態を取得」をクリックし、状態を取得する吸盤の従局番号を選択し、「追加」、「適用」ボタンを順にクリックします。これで「testSucker.lua」に吸盤状態を取得する命令「GetSuckerState(1)」が追加されます。 .. figure:: robot_peripherals/287.png :align: center :width: 6in .. centered:: 図表 8.21-16 吸盤状態取得命令の追加 GetSuckerState()命令は3つの数値を返します。それぞれ以下の通りです。 - **state**:吸盤の現在の状態:0-物体を解放、または吸盤起動成功;1-ワークを検出、物体に吸着;2-物体に吸着していない;3-物体が離脱。 - **pressValue**:現在の真空度/圧力。 - **err**:エラーコード:0-正常;その他:異常。 「testSucker.lua」で3つの変数を使用してGetSuckerState()関数の戻り値を受け取ります。そしてLua変数クエリを介して、上記の情報をWebAppの変数クエリ表示エリアに表示します。 .. figure:: robot_peripherals/288.png :align: center :width: 6in .. centered:: 図表 8.21-17 吸盤状態取得プログラム 吸盤吸着状態待機命令の追加 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ アレイ式吸盤の実際のシーンアプリケーションでは、吸盤の吸着(解放)が完了するのを待ってから次の動作を実行する必要がよくあります。協働ロボットは吸盤の動作完了を待機する命令を提供しており、吸盤が設定された状態に達すると命令の実行が終了し、そうでない場合は設定されたタイムアウト時間内に吸盤の動作完了を待機し続けます。 アレイ式吸盤命令追加ページで「吸盤吸着状態を待機」をクリックし、吸盤の対応する従局番号1を選択し、制御モードとして「ワークを検出、物体に吸着」を選択し、タイムアウト時間に10000msを入力します。「追加」ボタンをクリックします。 .. figure:: robot_peripherals/289.png :align: center :width: 6in .. centered:: 図表 8.21-18 吸盤状態待機命令の追加 「適用」ボタンをクリックすると、「testSucker.lua」に吸盤が物体に吸着するのを待機する命令が追加されます。 .. figure:: robot_peripherals/290.png :align: center :width: 6in .. centered:: 図表 8.21-19 LUAプログラムへの吸盤の物体吸着待機の追加 応用例 ++++++++++++++++++++++++++++++++++ 吸盤ハンドリング制御LUAプログラム例: .. code-block:: console :linenos: while (1) do ::satety_suck:: PTP(sucker_safey,100,-1,0) PTP(sucker_suck,100,-1,0) SetSuckerCtrl(2, 1, {2}) SetSuckerCtrl(11, 1, {2}) loop1 = 0 while (loop1 < 10) do state, press, errorcode = GetSuckerState(2) RegisterVar("number","state") RegisterVar("number","press") RegisterVar("number","errorcode") state11, press11, errorcode11 = GetSuckerState(11) RegisterVar("number","state11") RegisterVar("number","press11") RegisterVar("number","errorcode11") loop1 = loop1 + 1 WaitMs(50) end if(state11 == 1) then PTP(sucker_safey,100,-1,0) PTP(sucker_release,100,-1,0) WaitMs(1000) SetSuckerCtrl(2, 1, {3}) SetSuckerCtrl(11, 1, {3}) WaitMs(500) else PTP(sucker_safey,100,-1,0) SetSuckerCtrl(2, 1, {3}) SetSuckerCtrl(11, 1, {3}) WaitMs(2000) goto satety_suck end ::satety_release:: PTP(sucker_safey,100,-1,0) PTP(sucker_release,100,-1,0) SetSuckerCtrl(2, 1, {2}) SetSuckerCtrl(11, 1, {2}) loop1 = 0 while (loop1 < 10) do state, press, errorcode = GetSuckerState(2) RegisterVar("number","state") RegisterVar("number","press") RegisterVar("number","errorcode") state11, press11, errorcode11 = GetSuckerState(11) RegisterVar("number","state11") RegisterVar("number","press11") RegisterVar("number","errorcode11") loop1 = loop1 + 1 WaitMs(50) end if(state11 == 1) then PTP(sucker_safey,100,-1,0) PTP(sucker_suck,100,-1,0) WaitMs(1000) SetSuckerCtrl(2, 1, {3}) SetSuckerCtrl(11, 1, {3}) WaitMs(500) else PTP(sucker_safey,100,-1,0) SetSuckerCtrl(2, 1, {3}) SetSuckerCtrl(11, 1, {3}) WaitMs(2000) goto satety_release end end レーザー位置探知点位置取得機能 ----------------------------------------------------------- ロボットレーザー位置探知点位置取得システム構成 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. figure:: robot_peripherals/291.png :align: center :width: 6in .. centered:: 図表 8.22‑1 ロボットレーザー位置探知点位置取得システム構成トポロジー図 .. centered:: システム中、(a)はコンピュータ、(b)はロボットとその制御ボックス、(c)はレーザーセンサーです。 レーザーセンサー通信設定 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ WebAppを開き、「初期設定」->「周辺機器」->「トラッキング」->「センサー」を順にクリックし、センサーの通信を設定します。 .. figure:: robot_peripherals/292.png :align: center :width: 6in .. centered:: 図表 8.22‑2 センサー通信設定 レーザー位置探知点位置取得機能 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ レーザー位置探知点の位置を取得する操作手順は以下の通りです。 **Step 1**: レーザー位置探知を開始する前に、まず位置探知開始点「seamStartPt1」、「seamStartPt2」を指定します。次に「ティーチングプログラム」、「プログラム作成」をクリックし、「ポイントツーポイント」を選択し、レーザーセンサーの光線を溶接シーム1の開始点付近の位置探知開始点1「seamStartPt1」に近づけます。 .. figure:: robot_peripherals/293.png :align: center :width: 6in .. centered:: 図表 8.22‑3 位置探知開始点1への移動コマンドの追加 **Step 2**: 命令タイプで「位置探知開始」をクリックした後、キャリブレーションされたセンサー座標系を選択し、位置探知方向、速度、長さ、最大位置探知時間を設定し、「追加」ボタンをクリックします。次に「位置探知終了」をクリックし、「追加」ボタンをクリックします。 .. figure:: robot_peripherals/294.png :align: center :width: 6in .. centered:: 図表 8.22‑4 位置探知開始コマンドの追加 **Step 3**: 「センサー位置決め運動」を選択し、座標系名としてキャリブレーションされた「レーザーセンサー」を選択し、運動方式として「PTP」または「LIN」を選択し、デバッグ速度と「姿勢を設定するかどうか」を選択し、「追加」ボタンをクリックし、「適用」ボタンをクリックしてLUAプログラムに追加します。 .. figure:: robot_peripherals/295.png :align: center :width: 6in .. centered:: 図表 8.22‑5 センサー位置決め運動コマンドの追加 **Step 4**: 「プログラム作成」画面で「モード切り替え」ボタンをクリックし、変数「pos」を「pos1」に変更し、位置探知点への移動コマンドを削除します。 .. figure:: robot_peripherals/296.png :align: center :width: 4in .. centered:: 図表 8.22‑6 プログラム作成のモード切り替え .. figure:: robot_peripherals/297.png :align: center :width: 4in .. centered:: 図表 8.22‑7 レーザー位置探知点取得プログラムの修正 **Step 5**: Step1からStep4の手順に従い、2本目の溶接シームの位置探知を行い、レーザー位置探知点の位置を取得します。 .. figure:: robot_peripherals/298.png :align: center :width: 4in .. centered:: 図表 8.22‑8 2本目の溶接シーム位置探知点の取得