プログラムページ#

ナビゲーションバーの「番組」をクリックすると、番組ページに入ります。番組ページでは、番組リストの管理、番組の編集、番組の実行ができます。

番組表ページ#

リスト・ページは、現在アクティブなプロジェクト内のすべてのプログラムを管理するために使用されます。図はプログラム・リスト・ページで、プログラム・ルート・ディレクトリの下にあるすべてのプログラムとフォルダが表示されています。

../../_images/119.jpg

フォルダを選択し、右のボタンをクリックし、A1 ボタン、”プログラムを入力 “をクリックすると、ファイルディレクトリに切り替えることができ、フォルダの下にあるすべてのプログラムとフォルダを表示します。

番組を選択し、右側の “番組プレビュー “領域は、プログラムの内容を表示することができ、プログラムを開くには、”プログラムを入力 “をクリックします。

図のように左上にカレントディレクトリが表示されます。上の階層に戻る」ボタンをクリックすると上の階層に戻り、パスをクリックするとディレクトリが切り替わり、 A2 をクリックするとルートディレクトリに切り替わります。

../../_images/38.jpg

新プログラム#

新規プログラム」ボタンをクリックしてキーボードをポップアップし、プログラム名を入力して「OK」ボタンをクリックすると、現在のフォルダーの下にプログラムが作成されます。

../../_images/48.jpg

新しいフォルダ#

新規フォルダ」ボタンをクリックしてキーボードをポップアップし、フォルダ名を入力して「OK」ボタンをクリックすると、現在のフォルダの下にフォルダが作成されます。

プログラム・ファイル・アクション#

リスト項目の右側にあるボタンをクリックすると、以下のようなメニューボックスがポップアップ表示されます:

../../_images/57.jpg

プログラム・ファイルの場合、ユーザーは以下のことができる:

プログラムに参加する

クリックしてプログラムを開く。

コピー

コピー」ボタンをクリックすると、番組ファイルがコピーされます。プログラム一覧ページは以下の通りである。このとき、ユーザーは貼り付け場所を選択し、「貼り付け」ボタンをクリックして現在のフォルダにプログラムをコピーし、「キャンセル」ボタンをクリックしてコピーをキャンセルすることができます。現在のフォルダに同じ名前のファイルがある場合、_copyXX という接尾辞が自動的に末尾に追加されます。

../../_images/66.jpg ../../_images/75.jpg

名前

Rename’ ボタンをクリックすると、キーボードがポップアップしますので、新しい名前を入力し、変更できることを確認します。

注意:すでに開いているプログラムや実行中のプログラムの名前を変更することはできません。

../../_images/86.jpg

削除

削除’ボタンをクリックし、ポップアップ確認ダイアログボックスで、プログラムを削除することを確認します。

注意:すでに開いているプログラムや実行中のプログラムは削除できません。

輸出

プログラムファイルはUディスクにエクスポートすることができます、プログラムのインポートおよびエクスポートを参照してください。

ローカルに保存

プログラムファイルはブラウザを通してローカルにダウンロードできる。

フォルダ アクション#

フォルダ項目 A1 ボタンの右側にあるボタンをクリックすると、ポップアップメニューは、次の操作を実行することができます:プログラムを入力し、名前を変更し、フォルダをエクスポートし、削除します。

.

プログラムに参加する

クリックすると、このフォルダに切り替わり、このフォルダの下にあるすべてのプログラムとサブフォルダが表示されます。

名前

フォルダの名前を変更することができます。注意:このフォルダ内に開いているプログラムや実行中のプログラムがある場合、名前の変更機能は禁止されています。

エクスポート・フォルダー

プログラムフォルダ全体を圧縮して、Uディスクにエクスポートすることができます。

削除

ユーザーは、フォルダ内のすべてのコンテンツを削除できます。このフォルダ内に開いているプログラムや実行中のプログラムがある場合、削除機能は禁止されています。

プログラムのインポートとエクスポート#

ユーザーは、外部デバイスから外部デバイスにプログラムやフォルダをインポートまたはエクスポートできます。外部デバイスとは、USBフラッシュドライブやモバイルハードドライブなど、コントロールキャビネットのUSBポートに接続されたストレージデバイスを指します。

プログラム/フォルダのインポート

Import’ボタンをクリックすると、以下のウィンドウがポップアップ表示され、現在のコントロールキャビネットにマウントされているUSBストレージデバイスが表示されますので、デバイスを選択します。

../../_images/104.jpg

装置内のフォルダと対象となるファイル(jspf、スクリプト、プログラム)が表示されます。ファイルを選択し、[選択]をクリックすると、ファイルまたは圧縮ファイルパッケージ(プログラム)が解凍され、制御盤にインポートされます。ファイルをインポートする際、ファイル名が制御盤のプログラムファイルと同じ場合、リネームプロンプトボックスが表示され、リネーム後に制御盤にインポートされます。

../../_images/1110.jpg ../../_images/124.jpg

ユーザーがフォルダ(プログラム)をインポートしたときに同じ名前のファイルが存在する場合、システムは同じ名前のファイルの数を表示します。ユーザーは「キャンセル」または「上書き」をクリックできます。

../../_images/133.jpg

プログラム/フォルダのエクスポート

プログラム・リスト・ページでプログラムを選択し、そのインタラクティブ・メニューで「Export」 ボタンを選択してエクスポート操作を実行します。インポートと同様に、ポップアップウィンドウに現在のコントロールキャビネットにマウントされているUSBストレージデバイスが表示されます。デバイスを選択した後、ユーザーはデバイスのファイルとフォルダを表示し、エクスポートするフォルダを選択し、デバイスのフォルダにプログラムをエクスポートすることができます。エクスポートされたプログラムファイルがデバイス内のファイルと同じ名前の場合、以下のウィンドウが表示されます。ユーザーは、エクスポートをキャンセルするか、エクスポート名を変更してファイルを再度エクスポートするか、デバイス内のファイルを直接上書きすることができます。フォルダが選択されている場合、システムはフォルダに名前を付け、フォルダをパッケージ化し、フォルダ名.プログラムに圧縮します。圧縮されたパッケージには、このレベルのフォルダが含まれます。

../../_images/143.jpg

番組リストページの上部にある「Export」ボタンをクリックすると、カレントディレク トリ内のすべてのファイルとフォルダが「Current program list Name.program」という名前の圧縮パッケー ジにパッケージ化され、外部デバイス上の指定されたパスにエクスポートされます。圧縮されたパッケージには、このレベルのフォルダは含まれません。エクスポートプログラムと同様に、同名のファイルが存在する場合は、同名の操作プロンプトボックスが再生されます。

プログラミング#

全体レイアウト#

新規に番組を作成するか、番組一覧ページで番組を開くと、下図のようなプログラミング・ページに入ることができる。

プログラミングページの左側は、プログラムツリーを編集できるプログラミングエリアです。右側は5つのセクションに分けられます:’Commands’タブは使用可能なグラフィカル・プログラミング・ファンクション・ブロックを表示するファンクション・ブロック・リスト・エリアです。’Program Variables’タブはプログラム変数エリアで、プログラム変数の作成、プログラム実行中のプログラム変数のモニター、プログラム変数名のアルファベット順ソート、モニターするかどうかの選択ができます。’System Variables’タブはシステム変数の初期値とモニターするかどうかを表示します。Program Variables’タブはプログラム変数のエリアで、プログラム変数の作成、プログラム実行中のプログラム変数の監視、プログラム変数名のアルファベット順の並べ替え、変数の監視の有無の選択ができます;システム変数’タブはシステム変数の初期値を表示し、プログラム実行中にシステム変数の現在値を監視し、同様にシステム変数名をアルファベット順に並べ替えることができるエリアです。’パラメータ’タブはパラメータ設定エリアであり、プログラムツリーで選択されたファンクションブロックのパラメータを表示および編集することができます。

そこで、’命令’の’移動’、’基本’、’フロー制御’、’通信’、’詳細’、’拡張’のリストエリアにある任意の種類の機能ブロックの右側 A1 をクリックする。このアイコンは操作ダイアログボックスをポップアップすることができ、操作ダイアログボックスの’共通に追加’ボタンをクリックすると、ユーザーは命令ブロックを’共通’クラスに追加することができます。共通クラスの機能ブロックリストエリアの機能ブロックの右側のアイコン A1 をクリックしても操作ダイアログボックスがポップアップし、ポップアップした操作ダイアログボックスの’削除’ボタンをクリックすると、ユーザーは命令ブロックを’共通’クラスから削除することができます。

../../_images/173.jpg

左上には現在の番組名が表示され、番組名の後ろの*は番組が変更されたことを示す。番組名が表示されているディスプレイボックスの任意の場所をクリックする。表示ボックスの下にドロップダウンボックスが表示され、開いている番組の一覧が表示されます。

../../_images/183.jpg

上の図に示すように、開いているプログラムのリストには、現在のシステムで開いている2つのプログラムがあることを示し、プログラムを閉じるには、名前 A3 の右側にあるドロップダウンボックスのボタンをクリックします;対応するプログラムに切り替えるには、ドロップダウンリストの項目バーをクリックします。

ユーザーがプログラムを閉じたとき、プログラムに変更があれば、ダイアログボックスがポップアップし、ユーザーにプログラムを保存するか、変更を放棄するかを尋ねます。

プログラミング・アクション#

プログラミングはドラッグ&ドロップとダブルクリックによる追加を使用。

ドラッグ方式:ファンクションブロックリストエリアでファンクションブロックを押したまま、プログラミングエリアまでドラッグします。プログラムツリーの対応する位置に青い水平線が表示され、そこにファンクションブロックが挿入されることを示します。緩めると、そこにファンクションブロックが追加されます。ファンクションブロックをプログラムツリーの対応する位置までドラッグしたときに赤線が表示された場合、ファンクションブロックはそこに挿入できません。ファンクションブロックを解除すると、ダイアログボックスが表示されます。

Add をダブルクリックします:プログラムツリーの任意のファンクションブロックをクリックして選択します。この時、リストエリアのファンクションブロックをダブルクリックすると、リストエリアのファンクションブロックが選択したファンクションブロックの下のプログラムツリーに追加されます。(注:ダブルクリックはモバイルデバイスではサポートされていません)、

プログラムツリー内のファンクションブロックを他の場所に直接ドラッグできるようになりました。

ファンクション・ブロックを選択し、手動でパラメータ設定エリアに切り替え、ファンクション・ブロックのパラメータを設定します。各機能ブロックと対応するパラメータ設定ページの詳細については、以下を参照してください。

../../_images/213.jpg

プログラムツリーのファンクションブロックには、以下の 5 つの状態があります。赤は、ファンクションブロックが有効なパラメータで構成されていないことを示し、斜体の * は、ファンクションブロックのパラメータが変更されたが、プログラムツリーに保存されていないことを示します。ファンクションブロックの灰色の部分は、ドラッグ&ドロップで選択された状態であることを示します。すべてのファンクションブロックが灰色の場合、そのファンクションブロックは無効です。

../../_images/221.jpg

プログラムツリーのファンクションブロックの右のアイコン A1 をクリックします。

../../_images/241.jpg

カット:ファンクションブロックをカットする。

コピー:ファンクションブロックをコピーします。

貼り付け:コピーしたファンクションブロックを選択したファンクションブロックの下に貼り付けることができます。

無効/有効:クリックすると、ファンクションブロックを有効にするかどうかを選択し、無効を選択すると、ファンクションブロックグレー、プログラムはファンクションブロックを実行しません。

バッチ操作:ファンクションブロックを一括してコピー、切り取り、削除、無効化、有効化、グループ化することができます。ユーザーが一括操作するファンクションブロックを選択すると、そのファンクションブロックの行番号内にアイコン A4 が表示されます。

ファンクションブロックと同じレベルのファンクションブロックの行番号の横に選択アイコンが表示されている場合、そのファンクションブロックと元のファンクションブロックの間にあるすべてのファンクションブロックが自動的に選択されます。また、選択できるのは同じレベルのファンクションブロックのみです。親レベルをまたぐファンクションブロックは選択できません。

../../_images/batch.jpg

一括コピー:選択したブロックをコピーし、選択した位置に貼り付ける

バッチカット:選択したブロックを切り取り、選択した位置に貼り付ける

一括有効化:選択したすべてのブロックを有効にする

一括無効化:選択したすべてのブロックを無効にする

一括削除:選択したブロックを一括削除

グループの作成:選択したすべてのブロックが移動ブロックの場合、新しい移動ブロックが作成され、パラメータは元の移動ブロックと同じです。

../../_images/batch-group.jpg ../../_images/batch-group-move.jpg

削除:このファンクションブロックは削除できます。

この動作の開始行を選択します:クリックするとこのファンクションブロックが動作開始行として選択され、このときファンクションブロックの前にアイコン A8 が表示され、ファンクションブロックから順にプログラムが実行されます。右上の「行のチェックを外す」ボタンをクリックすると、開始行の設定が解除されます。

番組編集の過程で、ユーザーはいつでもページ左上の A5A6 アイコンを使って、変更を取り消したり、元に戻したりすることができます。注:取り消した変更は10回まで取り消すことができます。

プログラムツリーが変更されると、プログラムが変更されたことを示す「*」の後に現在のプログラム名が表示されます。

ファンクションブロックとパラメータ設定#

ファンクションブロックリストエリアには、現在使用可能なグラフィカルプログラミングファンクションブロックが表示され、ロボットプログラミングで一般的に使用されるシナリオに従ってパッケージ化されています。本システムが提供するファンクションブロックとその設定パラメータは以下の通りです。

スタート・ファンクション・ブロック#

プログラムの初期ロボット関節位置。Start 関数ブロックが有効な状態でプログラムを開始した場合、プログラムの実行開始後、現在のロボット関節位置とプログラムの初期ロボット関節位置の検証が有効になります。それ以外の場合、Start 機能ブロックが無効であれば、プログラムは自動的に実行を開始する。

すべてのメイン・プログラムは、常に有効なStartファンクション・ブロックで開始することを強く推奨します。サブプログラムとして実行されるプログラムは、場合によってはStartファンクション・ブロックを無効にすることができます。

../../_images/start.jpg

移動機能ブロック#

MoveJ、MoveLなどのファンクション・ブロックをドラッグする際、Moveノードがない場合は、以下のパラメータを含むMoveファンクション・ブロックが自動的に作成されます:

エンドスピード:単位 mm/s、値の範囲は[0.01, 5000]です。

終了加速度:単位 mm/s^2、値の範囲は[0.01, 無限大]です。

関節角速度:単位°/s、値の範囲は[0.01, 225]。

関節角加速度:単位°/s^2、値の範囲は[0.01, 無限大]です。

ブレンド半径:単位 mm、値の範囲は 0 ~無限大。

基準座標系:ツール座標系、ワーク座標系、手動で変更可能。

このうち、終端速度、終端加速度、関節角速度、関節角加速度は、値を直接入力する方法や変数を選択する方法をカスタマイズするために使用することができ、終端加速度と関節角加速度はシステムデフォルトとして選択することもできます。終端加速度や関節角加速度がシステムデフォルトとして選択されている場合、モーションプランニングはアルゴリズムによって計算された最適なプランニングを使用します。注:対応するパラメータの単位は、’Customize’を選択した場合のみ表示されます。変数を選択する場合、特定のタイプの変数のみが選択可能で、終速度はpose_speedタイプの変数としてのみ選択可能で、終加速度はpose_accタイプの変数としてのみ選択可能で、関節角速度はjoint_speedタイプの変数としてのみ選択可能で、関節角加速度はシステムデフォルトタイプの変数としてのみ選択可能で、変数と関節角加速度はjoint_accタイプの変数としてのみ選択可能です。

Move 関数ブ ロ ッ ク を生成す る 際、 デフ ォ ル ト では、 Move のすべての親 ノ ー ド が参照座標系を設定 し てい る か ど う か を取得 し 、 設定 さ れていない と き は、 そのシ ス テ ムが設定 し てい る カ レ ン ト 座標系を使用 し ます。た と えば、 コ ン ベ ヤー関数ブ ロ ッ ク には参照座標系が設定 さ れてい る (すなわち、 校正 さ れた コ ン ベ ヤー座標系が設定 さ れてい る ) ので、 Move クラス関数ブ ロ ッ ク を コ ン ベ ヤー子 ノ ー ド に ド ラ ッ グす る と 、 生成 さ れ る Move 関数ブ ロ ッ ク はデフ ォ ル ト で コ ン ベ ヤー座標系を使用 し ます。

Moveブロックで設定された直交空間モーションパラメータは、MoveL、MoveC、MoveTCP、MoveWobj、MoveSpiral機能ブロックにのみ適用され、他のサブ機能ブロックには影響しません。設定された関節動作パラメータはMoveJ機能ブロックにのみ適用され、他のサブ機能ブロックには影響しません。

Move 関数ブ ロ ッ ク に よ っ て設定 さ れ る 参照座標系は、 MoveJ ・ MoveL ・ MoveC ・ MoveTCP ・ MoveWobj ・ MoveSpiral 関数ブ ロ ッ ク にのみ適用 さ れ、 それ以外の関数ブ ロ ッ ク には一切影響 し ません。

../../_images/301.jpg

ロボットの動きを制御する具体的な機能ブロックには、次のような種類がある:

MoveJ

ロボットは関節運動の要領で動き、目標関節への移動か目標姿勢への移動かを選択できる。パラメータが利用できます:

ターゲットジョイント:ロボットの関節位置を目標動作位置とする。目標関節位置は直接ティーチングするか、Joints型変数を使用して決定します。目標関節位置を直接ティーチングした後、手動で変更することも可能です。

ターゲットポーズ:ロボットのエンドエフェクタのポーズを目標動作位置とする。目標ポーズ位置は直接ティーチングするか、Pose型変数を使用して決定します。直接ティーチングした後、手動で変更することも可能です。

ティーチ目標ロボットの動作位置をティーチする。ティーチボタンをクリックすると、uiページは自動的にMoveページに移ります。ジョグでロボットを目標位置まで移動させ、”Record Pose “ボタンをクリックする。uiページがProgramページに遷移し、ロボットの目標位置が既に記録されている。

記録する:現在のロボット位置を現在のファンクションブロックの目標ロボット動作位置として記録する。

ここに移動ロボットを最新の記録されたロボットの目標動作位置に移動します。ボタンをクリックすると、3Dシミュレーションモデルが自動的に表示されます。3Dシミュレーションモデルの一番下にある “Move “ボタンを押し続けると、ロボットが記録された目標ロボット動作位置に移動します。

Note

注意ファンクションブロックのロボット目標動作位置として目標ポーズを使用し、”Move to here “でロボットを目標位置まで移動させる場合、移動開始位置が異なると、同じロボットエンドエフェクタポーズでも最終的なロボット関節位置が異なります。最終的なロボット関節の位置がティーチング時に記録した位置と同じかどうかを、3次元シミュレーションモデルとその影モデルで確認することができます。

Note

注意ファンクションブロックのロボット目標位置として目標ポーズを使用する場合、プログラム実行中の現在のロボット関節位置の運動学的解が、記録された目標ロボット関節位置のものと異なる場合、この異常状態を知らせるエラーが発生する。

親ノード座標系を使用する:このパラメータは、目標位置姿勢を選択したときに設定できる。このパラメータが選択された場合、機能ブロックは親ノード移動機能ブロックによって設定された参照座標系を使用します。

基準座標系:目標位置姿勢選択時に設定できる。親座標系をチェックしない場合は、その参照座標系をファンクションブロックに対して別途設定することができる。

Use Parent Node Parameters(親ノードのパラメータを使用):このパラメータを選択すると、このファンクションブロックは親ノード Move ファンクションブロックが設定した関節角速度と関節角加速度パラメータを使用します。このパラメータが選択されていない場合、ユーザーはこのファンクションブロックのジョイント角速度とジョイント角加速度を設定する必要があります。このパラメータはデフォルトで選択されています。

関節角速度:単位°/s、ユーザーは値をカスタマイズするか、または変数を選択することができ、値の範囲は[0.01、225]です。

関節角加速度:単位°/s2、ユーザーは値をカスタマイズするか、または変数を選択することができ、値の範囲は[0.01、無限大]です。

親ノードのブレンド半径:このパラメータが選択されている場合、親ノード移動機能ブロックが設定したブレンド半径パラメータが使用されます。このパラメータが選択されていない場合、このファンクションブロックのブレンド半径を設定する必要があります。このパラメータはデフォルトで選択されています。

ブレンド半径:単位はmmで、値の範囲は[0, 無限大]です。

Note

注意ブレンド半径を不適切な値に設定すると、ブレンド動作中に振動が発生します。ケースに応じてブレンド半径を調整することをお勧めします。

Note

注意ブレンド半径の値が小さいと、ブレンドモーションに失敗することがあります。このような場合、ロジックに問題がなければ、MotionConfigファンクションブロックを使用して、”Blend Preload “を “Motion start point “オプションに調整することをお勧めします。それでもブレンドモーションに失敗する場合は、モーションスピードを下げるか、ファンクションブロックの原点モーション周期が100ms以下になるようにターゲットポイントを調整することで、ブレンドモーションを成功させることができます。

OPの有効化:OP機能により、トラック実行中に一般的なデジタル・アウトレット状態の設定、ツール出力状態の設定、カスタム・イベントの操作が可能になります。

../../_images/312.jpg

OPが有効になっている場合、ユーザーは以下の設定を行う必要がある:

軌道の開始後や軌道の終了前後にトリガーすることができる。

トリガータイプ:トリガーなし、時間トリガー、距離トリガーを選択できます。

トリガーディレイ設定時間(単位:ms)

トリガー・アクション:ポートおよびポート・ステータスを選択するか、カスタム・イベントを実行する。

../../_images/322.jpg

移動

ロボットは目標姿勢まで一直線に移動する。パラメータが設定できる:

ターゲットポーズ:ティーチングで設定することも、変数として設定し、ティーチング設定後に手動で変更することもできる。

ティーチ目標ロボットの動作位置をティーチする。ティーチボタンをクリックすると、uiページは自動的にMoveページに移ります。ジョグでロボットを目標位置まで移動させ、”Record Pose “ボタンをクリックする。uiページがProgramページに遷移し、ロボットの目標位置が既に記録されている。

記録する:現在のロボット位置を現在のファンクションブロックの目標ロボット動作位置として記録する。

ここに移動ロボットを最新の記録されたロボットの目標動作位置に移動します。ボタンをクリックすると、3Dシミュレーションモデルが自動的に表示されます。3Dシミュレーションモデルの一番下にある “Move “ボタンを押し続けると、ロボットが記録された目標ロボット動作位置に移動します。

Note

注意ここに移動」でロボットを目標位置まで移動させる場合、移動開始位置が異なると、同じロボットエンドエフェクタポーズでも最終的なロボット関節位置が異なります。最終的なロボット関節位置がティーチング時に記録した位置と同じかどうかを、3Dシミュレーションモデルとその影モデルで確認することができます。

Note

注意プログラム実行中の現在のロボット関節位置の運動学的解が、記録された目標ロボット関節位置のものと異なる場合、この異常状態を知らせるエラーが発生する。

親座標系:このパラメータが選択されている場合、ファンクションブロックは親 Move ファンクションブロックによって設定された参照座標系を使用する。このパラメータはデフォルトで選択されています。

参照座標系:親座標系が選択されていない場合、参照座標系はファンクションブロックに対して個別に設定することができます。

親ノードのパラメータを使用する:親ノードパラメータを使用する:親ノードパラメータを使用するをチェックすると、親ノードが設定した終端速度と終端加速度パラメータを使用します。ユーザーがこのオプションを選択しない場合、このファンクションブロックの終了速度と終了加速度の設定が必要になります。デフォルトでは選択されています。

工具速度:単位mm/s、ユーザーは値をカスタマイズするか、または変数を選択することができ、値の範囲は[0.01、5000]です。

工具加速度:単位mm/s2、ユーザーは値をカスタマイズするか、または変数を選択することができ、値の範囲は[0.01、無限大]です。

親ノードのブレンド半径:このパラメータが選択されている場合、親ノード移動機能ブロックによって設定されたブレンド半径パラメータが使用されます。このパラメータが選択されていない場合、ユーザーはこのファンクションブロックのブレンド半径を設定する必要があります。このパラメータはデフォルトで選択されています。

ブレンド半径:単位 mm、値の範囲は [0, Infinity] で、0 はブレンドなしを示す。

Note

注意ブレンド半径の値が不適切な場合、ブレンド動作中に振動が発生します。ケースに応じてブレンド半径を調整することをお勧めします。

Note

注意ブレンド半径の値が小さいと、ブレンドモーションに失敗することがあります。このような場合、ロジックに問題がなければ、MotionConfigファンクションブロックを使用して、”Blend Preload “を “Motion start point “オプションに調整することをお勧めします。それでもブレンドモーションに失敗する場合は、モーションスピードを下げるか、ファンクションブロックの原点モーション周期が100ms以下になるようにターゲットポイントを調整することで、ブレンドモーションを成功させることができます。

OPを有効にする:OP機能により、ユーザーはトラック実行中に、一般的なデジタル・アウトレット状態の設定、ツール出力状態の設定、カスタム・イベントの操作を行うことができます。

../../_images/331.jpg

OPが有効になっている場合、ユーザーは以下の設定を行う必要がある:

軌道の開始後や軌道の終了前後にトリガーすることができる。

トリガータイプ:トリガーなし、時間トリガー、距離トリガーを選択できます。

トリガーディレイ設定時間(単位:ms)

トリガー距離:距離を設定(単位:mm)

トリガー・アクション:ポートとポート・ステータスを選択するか、カスタム・イベントを実行する。

../../_images/341.jpg

OP操作

ロボットは軌道の実行中に一般的なデジタル出力状態を設定する。ブレンドと一緒に使用すると、例えば3つのmoveLブレンドは次のような効果があります:

../../_images/3411.jpg

MoveC

ロボットは円弧または円全体に従って移動し、パラメータを設定することができます:

モード円弧または全円

中間点姿勢/中間点1:ティーチングで設定するか、変数として設定し、ティーチング設定後に手動で変更できる。

目標ポーズ/中間点2:ティーチングまたは変数として設定でき、ティーチング設定後に手動で変更できる。

ティーチ目標ロボットの動作位置をティーチする。ティーチボタンをクリックすると、uiページは自動的にMoveページに移ります。ジョグでロボットを目標位置まで移動させ、”Record Pose “ボタンをクリックする。uiページがProgramページに遷移し、ロボットの目標位置が既に記録されている。

記録する:現在のロボット位置を現在のファンクションブロックの目標ロボット動作位置として記録する。

ここに移動ロボットを最新の記録されたロボットの目標動作位置に移動します。ボタンをクリックすると、3Dシミュレーションモデルが自動的に表示されます。3Dシミュレーションモデルの一番下にある “Move “ボタンを押し続けると、ロボットが記録された目標ロボット動作位置に移動します。

Note

注意ここに移動」でロボットを目標位置まで移動させる場合、移動開始位置が異なると、同じロボットエンドエフェクタポーズでも最終的なロボット関節位置が異なります。最終的なロボット関節位置がティーチング時に記録した位置と同じかどうかを、3Dシミュレーションモデルとその影モデルで確認することができます。

Note

注意プログラム実行中に現在のロボット関節位置の運動学的解が、記録された目標ロボット関節位置の運動学的解と異なる場合、この異常状態を知らせるエラーが発生する。

親座標系:このパラメータが選択されている場合、ファンクションブロックは親 Move ファンクションブロックによって設定された参照座標系を使用します。このパラメータはデフォルトで選択されています。

参照座標系:親座標系が選択されていない場合、参照座標系はファンクションブロックに対して個別に設定することができます。

親ノードのパラメータを使用する:親ノードのパラメータを使用する:親ノードのパラメータを使用するをチェックすると、親ノードの移動機能ブロックが設定した終端速度と終端加速度のパラメータを使用します。ユーザーがこのオプションを選択しない場合、このファンクションブロックの終了速度と終了加速度の設定が必要です。デフォルトでは選択されています。

工具速度:単位mm/s、ユーザーは値をカスタマイズするか、または変数を選択することができ、値の範囲は[0.01、5000]です。

工具加速度:単位mm/s^2、ユーザーは値をカスタマイズするか、または変数を選択することができ、値の範囲は[0.01、無限大]です。

親ノードのブレンド半径:このパラメータが選択されている場合、親ノード Move ファンクションブロックで設定されたブレンド半径パラメータが使用されます。このパラメータが選択されていない場合、このファンクションブロックのブレンド半径を設定する必要があります。このパラメータはデフォルトで選択されています。

ブレンド半径:単位mm、値の範囲は[0, Infinity]で、0はブレンドなしを示す。

Note

注意ブレンド半径の値が不適切な場合、ブレンド動作中に振動が発生します。ケースに応じてブレンド半径を調整することをお勧めします。

Note

注意ブレンド半径の値が小さいと、ブレンドモーションに失敗することがあります。このような場合、ロジックに問題がなければ、MotionConfigファンクションブロックを使用して、”Blend Preload “を “Motion start point “オプションに調整することをお勧めします。それでもブレンドモーションに失敗する場合は、モーションスピードを下げるか、ファンクションブロックの原点モーション周期が100ms以下になるようにターゲットポイントを調整することで、ブレンドモーションを成功させることができます。

姿勢制御モード:Consistent with the End Point’が選択された場合、ロボットの姿勢は終点の姿勢に従って円弧経路の姿勢を計画する。’Consistent with the Starting Point’が選択された場合、ロボットの円弧経路の姿勢は始点の姿勢に従って計画され、経路過程の姿勢は始点と一致する。Constrained by the Center of the Circle」が選択された場合、ロボットの姿勢は円弧運動によって生じる姿勢変化に対して拘束される。

OPを有効にする:OP機能により、ユーザーはトラック実行中に、一般的なデジタル・アウトレット状態の設定、ツール出力状態の設定、カスタム・イベントの操作を行うことができます。

OPパラメータの設定はMoveLと同じ。

../../_images/351.jpg

MoveTCP

ロボットはツール座標系に沿って移動する。

ユーザーは各方向のオフセットを直接入力することも、変数を使用することもできます。2点をティーチングすることができ、2点間のオフセットが移動のオフセット値として使用されます。その他設定可能なパラメータ

親座標系:このパラメータが選択されている場合、ファンクションブロックは親 Move ファンクションブロックによって設定された参照座標系を使用します。このパラメータはデフォルトで選択されています。

参照座標系:親座標系が選択されていない場合、参照座標系はファンクションブロックに対して個別に設定することができる。インクリメンタルモードを設定する場合は、ツール座標系を選択するだけです。2点を設定する場合は、ツール座標系とワーク座標系を設定する必要があります。

親ノードのパラメータを使用する:親ノードのパラメータを使用する:親ノードのパラメータを使用するをチェックすると、親ノードが設定した終端速度と終端加速度のパラメータを使用します。ユーザーがこのオプションを選択しない場合、このファンクションブロックの終了速度と終了加速度の設定が必要になります。デフォルトでは選択されています。

工具速度:単位mm/s、ユーザーは値をカスタマイズするか、または変数を選択することができ、値の範囲は[0.01、5000]です。

工具加速度:単位mm/s^2、ユーザーは値をカスタマイズするか、または変数を選択することができ、値の範囲は[0.01、無限大]です。

親ノードのブレンド半径:このパラメータが選択されている場合、親ノード Move ファンクションブロックで設定されたブレンド半径パラメータが使用されます。このパラメータが選択されていない場合、ユーザーはこのファンクションブロックのブレンド半径を設定する必要があります。このパラメータはデフォルトで選択されています。

ブレンド半径:単位mm、値の範囲は[0, Infinity]で、0はブレンドなしを示す。

Note

注意ブレンド半径を不適切な値に設定すると、ブレンド動作中に振動が発生します。ケースに応じてブレンド半径を調整することをお勧めします。

Note

注意ブレンド半径の値が小さいと、ブレンドモーションに失敗することがあります。このような場合、ロジックに問題がなければ、MotionConfigファンクションブロックを使用して、”Blend Preload “を “Motion start point “オプションに調整することをお勧めします。それでもブレンドモーションに失敗する場合は、モーションスピードを下げるか、ファンクションブロックの原点モーション周期が100ms以下になるようにターゲットポイントを調整することで、ブレンドモーションを成功させることができます。

OPの有効化:OP機能により、トラック実行中に一般的なデジタル・アウトレット状態の設定、ツール出力状態の設定、カスタム・イベントの操作が可能になります。

OPパラメータの設定はMoveLと同じ。

../../_images/371.jpg

MoveWobj

ロボット ツールをワークピース座標系に沿って増分距離前進するように制御します。

ユーザーは各方向のオフセットを直接入力することも、変数を使用することもできます。

2点をティーチングすることができ、2点間のオフセットが移動のオフセット値として使用されます。 その他設定可能なパラメータ

親座標系:このパラメータが選択されている場合、ファンクションブロックは親 Move ファンクションブロックによって設定された参照座標系を使用します。

このパラメータはデフォルトで選択されています。

参照座標系:親座標系が選択されていない場合、参照座標系はファンクションブロックに対して個別に設定することができます。

インクリメンタルモードを設定する場合は、ワーク座標系を選択するだけでよい;

2 つのポイントを設定する場合は、ティーチ ポイントのツール座標系とワークピース座標系を設定する必要があります。

親ノードのパラメータを使用する:親ノードのパラメータを使用する:親ノードのパラメータを使用するをチェックすると、親ノードが設定した終端速度と終端加速度のパラメータを使用します。

ユーザーがこのオプションを選択しない場合、このファンクションブロックの終了速度と終了加速度の設定が必要になります。デフォルトでは選択されています。

工具速度:単位mm/s、ユーザーは値をカスタマイズするか、または変数を選択することができ、値の範囲は[0.01、5000]です。

工具加速度:単位mm/s^2、ユーザーは値をカスタマイズするか、または変数を選択することができ、値の範囲は[0.01、無限大]です。

親ノードのブレンド半径:このパラメータが選択されている場合、親ノード Move ファンクションブロックで設定されたブレンド半径パラメータが使用されます。

このパラメータが選択されていない場合、ユーザーはこのファンクションブロックのブレンド半径を設定する必要があります。このパラメータはデフォルトで選択されています。

ブレンド半径:単位mm、値の範囲は[0, Infinity]で、0はブレンドなしを示す。

Note

注意ブレンド半径の値が不適切な場合、ブレンド動作中に振動が発生します。ケースに応じてブレンド半径を調整することをお勧めします。

Note

注意ブレンド半径の値が小さいと、ブレンドモーションに失敗することがあります。このような場合、ロジックに問題がなければ、MotionConfigファンクションブロックを使用して、”Blend Preload “を “Motion start point “オプションに調整することをお勧めします。それでもブレンドモーションに失敗する場合は、モーションスピードを下げるか、ファンクションブロックの原点モーション周期が100ms以下になるようにターゲットポイントを調整することで、ブレンドモーションを成功させることができます。

OPの有効化:OP機能により、トラック実行中に一般的なデジタル・アウトレット状態の設定、ツール出力状態の設定、カスタム・イベントの操作が可能になります。

OPパラメータの設定はMoveLと同じ。

../../_images/37-1.jpg

Spline

ロボットの先端はスプライン曲線に従って動くように制御される。ユーザーはティーチングポイントをカスタマイズするか、直接ティーチングポイントを選択するか、変数を選択することができます。変数を選択する場合、pose_list変数しか選択できません。その他のパラメータは設定可能:

スプラインのウェイポイントウェイポイントを追加、編集、削除し、ウェイポイントに基づいてスプラインを生成する。

参照座標系:ティーチングポイントの位置が表示されている場合、デフォルトは現在のツールとワークの座標系です。

工具速度:単位mm/s、ユーザーは値をカスタマイズするか、または変数を選択することができ、値の範囲は[0.01、5000]です。

工具加速度:単位mm/s2、ユーザーは値をカスタマイズするか、または変数を選択することができ、値の範囲は[0.01、無限大]です。

ブレンド半径:値の範囲は[0, Infinity]で、0はブレンドしないことを示す。

OPの有効化:OP機能により、トラック実行中に一般的なデジタル・アウトレット状態の設定、ツール出力状態の設定、カスタム・イベントの操作が可能になります。

OPパラメータの構成はMoveLと同じです。

../../_images/381.jpg

Note

2つのスプラインを併用する場合、前者のスプラインの終点と後者のスプラインの始点を同じにすることはできない。

MotionConfig

スポーツ関連の設定をオンまたはオフにします。オプション設定:

速度最適化:速度最適化をオンにすると、ロボットはシステム制約を満たすことを前提に、可能な限り高速で動作命令を実行する。

振動制御:振動制御をオンにすると、ロボット先端の振動に最適化されます。

特異点回避:特異点回避をオンにすると、ロボットが特異点空間の近くを通過する際に軌道が自動的に最適化される。

姿勢拘束:姿勢拘束が開放された後、ロボットの動作姿勢は常に経路の関係と一致する。

ブレンドプリロード:モーション中間点またはモーション開始点を選択できます。ブレンド半径が設定されたモーションスクリプトは、このパラメータに基づいて後続のスクリプトをブレンド半径にプリロードします。

../../_images/391.jpg

Note

特異点エスケープ機能を有効にすると、先に設定したパスが特異点を通過する場合に影響を受ける。

Note

特異点回避機能が有効な場合、特異点を通過すると個々の関節の速度が加速され、関節の速度超過によりロボットアームが誤った電源断を報告する可能性がある。

MoveSpiral

ロボットは螺旋軌道運動を行い、パラメータを設定できる:

スパイラルティーチングモードパラメータ設定または終点設定

総回転数:ロボットの総回転数。正の数は時計回りの回転、負の数は反時計回りの回転。

ヘリックスの中心点:これはティーチングで設定することも、変数として設定することもでき、ティーチング設定後に手動で変更することもできる。

軸移動距離:ティーチングモードをパラメータ設定にした場合、パラメータの設定が必要です。正負の符号は右手の法則に従う(単位:mm)。

終点半径:このパラメータは、ティーチングモードをパラメータ設定にした場合に必要です。単位はmmです。

トラックの終点:ティーチングモードがエンドポイントに設定されている場合、ティーチングモードで設定することも、ティーチング設定後に手動で変更できる可変に設定することもできます。

親座標系:このパラメータが選択されている場合、ファンクションブロックは親 Move ファンクションブロックによって設定された参照座標系を使用します。このパラメータはデフォルトで選択されています。

参照座標系:親座標系が選択されていない場合、参照座標系はファンクションブロックに対して個別に設定することができます。

親ノードのパラメータを使用する:親ノードのパラメータを使用する:親ノードのパラメータを使用するをチェックすると、ファンクションブロックは親ノードの移動ファンクションブロックによって設定された終端速度と終端加速度のパラメータを使用します。このオプションを選択しない場合は、このファンクションブロックの終了速度と終了加速度を設定する必要があります。デフォルトでは選択されています。

工具速度:単位mm/s、ユーザーは値をカスタマイズするか、または変数を選択することができ、値の範囲は[0.01、5000]です。

工具加速度:単位mm/s^2、ユーザーは値をカスタマイズするか、または変数を選択することができ、値の範囲は[0.01、無限大]です。

OPの有効化:OP機能により、トラック実行中に一般的なデジタル・アウトレット状態の設定、ツール出力状態の設定、カスタム・イベントの操作が可能になります。

OPパラメータの設定はMoveLと同じ。

../../_images/40.jpg

CombineMotion

複合軌道運動を行う直線運動制御ロボットと円運動制御ロボットにのみ、パラメータを設定することができる:

軌跡のタイプ:デフォルトは三角形、オプションで三角形、正弦、円弧、台形、8.

基準面:デフォルトはツール XOY、オプションはツール XOY、ツール XOZ、ツール YOZ、ユーザー XOY、ユーザー XOZ、ユーザー YOZ。

パスの滞空同期:軌道タイプがサインまたは台形の場合、デフォルトでは設定する必要のあるパラメータはチェックされていません。

このパラメータをチェックすると、左右のステイ中にロボットの動作のメインパスを同時に停止させることができる。

周波数:初期値は1(単位:Hz)

振幅:初期値:1(単位:mm)

左滞留時間:軌跡タイプが正弦または台形の場合に設定するパラメータを指定する(単位:ms)

右滞留時間:軌跡タイプが正弦または台形の場合に設定するパラメータを指定する(単位:ms)

../../_images/412.jpg

基本機能ブロック#

セット

機能ブロックを設定する。制御盤のデジタル出力ポートとロボット先端のデジタル出力ポートをハイレベル電子、ローレベル電子、パルス信号に設定できる。パルス信号として設定する場合、パルスの周波数とデューティサイクルを設定する必要がある。

Note

変数を代入すると、式キーボードがポップアップします。式の構文に従って代入してください。文字列変数に “Hello “を代入する場合は、キーボードから “Hello “と入力してください(ダブルクォーテーションは省略できません)。

../../_images/422.jpg

待ってください。

Waitファンクションブロック。ユーザーは、一定時間待つ、DIシグナルを待つ、特定のスレッドや式の終了を待つ、などの選択をすることができ、このファンクション・ブロックへのプログラムの実行は、設定された条件が満たされるまで待機します。

../../_images/432.jpg

注:ディレイは最低100msに設定されている!

Delay “以外のオプションを選択すると、タイムアウト検出を有効にするかどうかのチェックボックスが表示される。タイムアウト検出を有効にする」を選択した場合、下図のようにタイムアウト期間とタイムアウト変数を入力することができる。

../../_images/43-1.jpg

ユーザーはタイムアウト時間を手動で入力することができ、デフォルトのタイムアウト時間は60000msです。また、ユーザーはタイムアウト変数を使用してタイムアウトかどうかを決定することもできますが、タイムアウト変数はオプションであり、選択することはできません。

スクリプト

スクリプト機能ブロック。 ユーザーは、式、スクリプト、またはスクリプトファイルを選択できます。エクスプレッションは、エクスプレッション・エディタを使用してスクリプトの行を作成するために使用できます。エクスプレッションの入力については、セクション8入力キーボード(エクスプレッション入力キーボード)を参照してください。スクリプトは、スクリプトコードのセクション全体を記述するために使用できます。スクリプトファイルは、ファイルから選択してスクリプトを記述することができます。スクリプト・コードの説明については、スクリプト・マニュアルを参照してください。

../../_images/441.jpg

コード全体を記述するスクリプトを選択する場合、編集エリア A9 アイコンの上をクリックすると、以下のようにショートカットキーのプロンプトボックスがポップアップ表示されます。

../../_images/461.jpg

編集エリアの上にある最大化アイコン A10 をクリックすると、スクリプト編集エリアに以下のように表示されます。最大化インターフェースの右上をクリックして、アイコンを元のインターフェースサイズに戻します。 A5 は元に戻すアイコン、 A6 は回復アイコンです。編集エリアの左下にカーソルのある行数と列数が表示され、右下にスクリプトの総行数が表示される。

../../_images/511.jpg

スクリプト作成モードでは、ユーザーは内蔵のショートカットボックスと外部キーボードを使用して入力することができます。スクリプト作成エリアの上にあるアイコン A12 をクリックすると、システムショートカット入力ボックスがポップアップ表示され、下図のようにエディタの上に吊り下げられ、押したままドラッグすることができます。

../../_images/531.jpg

ショートカット入力ボックスには、ショートカット入力、一般的なキーボード、スクリプト機能の3つのラベルがあります。よく使われるコントロールキーの入力ボックスの下には、カーソル左、カーソル右、カーソル上、カーソル下、スペース入力、削除、改行があります。

../../_images/541.jpg

ショートカット入力は、よく使われる機能のショートカットを提供する。主な機能は以下の通り。

点位置:Joint’ボタンをクリックして、現在のロボットユニットの関節値をrad単位で入力する。’Pose’ボタンをクリックして、設定されたワークユニット上の現在のロボットツールの位置と姿勢をrad単位で入力する。

関数:ユーザーはWhileループ、条件分岐、関数定義、一行コメントなどを入力できる。

../../_images/551.jpg

IO/Register/Modbus/Variable:ユーザはこの関数を通してリードまたはライトを選択することができ、システムは自動的に対応するスクリプト関数に変換します。ユーザが読み込み関数を選択し、DI1を選択すると、システムは自動的に対応するスクリプト関数get_standard_digital_in(1)に入ります。

演算子:よく使われる演算子を入力します。

../../_images/561.jpg

一般的なキーボードは物理的なキーボードに似ており、大文字、小文字、数字、記号を入力できる。

スクリプト関数は、スクリプト関数のリストから選択することができます。選択後、スクリプト関数の下部に説明と例が表示され、ダブルクリックまたは左上の’追加’ボタンをクリックすると、スクリプト検索をサポートするスクリプトエリアに入力することができます。

../../_images/571.jpg

ログ

ログ機能ブロック。ユーザはメッセージや変数値をログファイルに出力することができます。

../../_images/58.jpg

メッセージ

メッセージ・ポップアップ機能ブロック。メッセージ・ポップアップ・ボックスは、プログラムを一時停止、ポップアップのみ、または停止するように設定できます。

../../_images/59.jpg
プログラムの一時停止を選択し、メッセージを設定し、プログラムがこのファンクション・ブロックまで実行されると、ダイアログ・ボックスがポップアップしてメッセージが表示され、プログラムが一時停止されます、

ダイアログ・ボックスがポップアップしてメッセージが表示され、プログラムが一時停止します、 ユーザーは、実行を継続するか、プログラムを停止するか、ポップアップ・ウィンドウを閉じるかを選択できます。

../../_images/59-1.jpg
ポップアップ・ウィンドウのみを選択した場合、プログラムがこのファンクション・ブロックまで実行されると、メッセージとダイアログ・ボックスがポップアップします、

しかし、プログラムは実行され続け、ユーザーはプログラムを停止するか、ポップアップウィンドウを閉じるかを選択できます。

../../_images/59-2.jpg
プログラムの停止を選択し、メッセージを設定し、プログラムがこのファンクションブロックに実行されたとき、

ダイアログボックスがポップアップし、メッセージが表示されます、 ユーザーはポップアップ・ウィンドウを閉じることができます。

../../_images/59-3.jpg

コメント

コメント機能ブロック。プログラム・ツリーにコメントを追加します。このファンクション・ブロックは、プログラムの実行中には何も行いません。

../../_images/60.jpg

グループ

機能ブロックをグループ化する。これはプログラムを整理するために使用され、いくつかの機能ブロックを「グループ」の下に配置することで、プログラムの実行に影響を与えず、プログラムの整理や読み出しを容易にすることができる。

../../_images/611.jpg

CoordOffset

座標オフセット機能ブロック。ワーク座標系に基づくオフセットを設定するために使用され、カスタマイズまたは変数設定が可能である。このオフセットは、後続の「移動」カテゴリー機能ブロックの基準ワーク座標系に追加される。プログラム実行中、プログラムは座標系オフセットを停止する。

../../_images/621.jpg

Note

プログラム実行中に CoordOffset 関数ブロックによって設定された wobj オフセットの値は、プログラムが終了すると自動的に 0 にリセットされます。プログラム実行中に、オペレーターがプログラムを一時停止し、ロボットを手動で直交空間で移動する場合、参照 wobj 座標値は CoordOffset 関数ブロックによって変更される値です。この変更は、プログラムが手動で停止されるか、自動的に終了するまでリセットされます。

セットロード

取り込み荷重ファンクションブロックを設定する。プログラム動作中にロボットの現在の荷重(質量、重心)を設定することができる。

../../_images/631.jpg

GetListElement

../../_images/641.jpg

リスト要素関数ブロックを取得する。この関数ブロックは、リスト型の変数から要素の1つを取得し、その要素の値を指定された変数にダンプするために使用されます。

リストの種類を選択する:現在、num_list、pose_list、joints_list の3種類の変数をサポートしています。使用するには、まず、目的のリスト・クラス変数を作成する必要があります。

インデックス:インデックス値を直接入力することも、変数からインデックス値を取得することもできます。

要素:数、ポーズ、関節の3種類の変数をサポートし、得られた要素を転送する必要がある対応する変数を指定します。これを使用するには、ユーザーは最初に目的の変数を確立する必要があります。

Note

GetListElement 関数ブロックは、元のリスト変数のデータを変更しません。取得した要素を削除しません。カットする代わりにコピーします。

Note

転送される変数の型は、リスト変数の要素の型と同じである必要があります。例えば、pose_list 変数から取得したポーズ変数を、joints 変数に格納することはできません。

RemoveListElement.

リスト要素関数ブロックを削除します。この関数ブロックは、リスト型の変数の要素をリスト型から削除するために使用します。

リストタイプを選択する:現在、num_list、pose_list、j oints_listの3種類の変数をサポートしている。この変数を使用するには、まず目的のリスト・クラス変数を作成する必要がある。

インデックス:インデックス値を直接入力することも、変数からインデックス値を取得することもできます。

../../_images/651.jpg

Note

RemoveListElementブロックは、元のリスト変数のデータと、インデックス番号の後の要素の位置を変更します。例えば、pose_list には、{A,B,C,D} というポーズ変数があります。RemoveListElement ブロックを使って変数 B を削除すると、新しい pose_list の要素は、{A,nul,C,D} ではなく {A,C,D} となり、null はポーズ変数があるが、値が空であることを示します。

タイマースタート

タイミング・スタート・ファンクション・ブロック。このファンクション・ブロックはタイマーをスタートさせるために使用します。

../../_images/661.jpg

タイマーエンド

タイマー終了ファンクション・ブロック。このファンクション・ブロックはタイマーの時間を終了するために使用します。

変数を選択します:グローバルタイマー型の変数のみがサポートされています。使用するには、まずグローバルタイマークラス変数を作成する必要があります。

../../_images/67.jpg

ストップ

ファンクション・ブロックを停止します。このファンクション・ブロックは、プログラム停止命令を発行するために使用されます。

../../_images/671.jpg

フロー制御#

一方

ループ・ファンクション・ブロック。ループは内部のファンクション・ブロックを実行する。常にループするように設定したり、ループの回数を指定したり、ループ条件を指定して、その条件が真である限りループを実行したりすることができます。

../../_images/68.jpg

もしそうなら

条件付きファンクションブロック。デジタル入力ポートの条件、または条件式を設定できます。条件が満たされた場合、IFのファンクション・ブロックが実行され、その後にelsifまたはelseのファンクション・ブロックを追加できます。

../../_images/69.jpg

Goto&Label

Goto関数とLabel関数を併用することで、プログラムのコントロールポイントをLabelの位置に移動させることができる。

まず、Labelファンクションブロックを作成し、ジャンプポイントをマークし、ジャンプポイントに名前を付ける。Gotoブロックを使って、ジャンプする場所を選択する。

つまり、4行目のSetファンクション・ブロックと5行目のwaitファンクション・ブロックが2回実行される。

../../_images/70.jpg

コミュニケーション#

ソケットオープン

ソケットを作成するには、パラメータページで接続名を設定し、ターゲットサーバーのIPアドレスとポート番号を設定し、戻り値を変数にバインドするかどうかを選択する必要がある。

../../_images/711.jpg

ソケットクローズ

ソケット接続を閉じるには、閉じる接続名を選択します。

../../_images/721.jpg

ソケットセンド

ソケットがデータを送信する。確立されたソケット接続にデータを送信する。送信型は文字列または浮動小数点数の集合である。送信データは変数または直接入力である。

../../_images/731.jpg

ソケットレシーブ

ソケットがデータを受信する。確立されたソケット接続からデータを受信する。受信型は文字列、文字列配列、浮動小数点数群である。受信情報は受信変数を設定する。

受信長を指定すると、プログラムはその長さのデータを受信し、文字列に従って処理し、「受信情報」で設定した変数に保存する。

文字列配列が型の場合、プログラムは受け取った文字列を数値にパースする。全ての値は()の中にあり、カンマ(,)で区切られている。例えば、’(12,1.23)’という文字列をソケットから受信した場合、このブロックは{12,1.23}という値を持つnum_listに変換し、’Receive Messages’設定の変数に保存する。

浮動小数点数の型が指定された場合、プログラムは受信データを単精度浮動小数点数のセット(IEEE 754標準に従って変換)に変換し、「受信情報」設定の変数に保存する。

ユーザーはデータ受信のタイムアウト時間を設定できる。タイムアウト時間内にルールに一致するデータが受信されなければ、次のステートメントが実行される。

../../_images/741.jpg

コムセンド

レシピデータの送信。ロボットの485ポートまたはCANポートに計算式が設定されている場合、ファンクションブロックを使用して計算式のデータに値を設定し、送信することができます。return変数を設定することで、レシピデータ送信のステータスを取得することができます。

../../_images/751.jpg

コムレック

レシピデータの受信。ロボットの485ポートまたはCANポートに計算式が設定されている場合、ファンクションブロックを使用してデータを受信し、計算式に従って処理した後、得られたnum_listデータを受信した変数に代入する。

../../_images/76.jpg

上級#

サブプログラム

サブルーチン。ユーザーは現在のプログラムに他のプログラムを埋め込むことができる。それには2つの方法がある:

ユーザーが’Embed the Subroutine’オプションをチェックしない場合は、プログラムが実行されるたびに、サブルーチンがファイルから読み込まれます、すなわち、サブルーチンファイルの変更は、メインプログラムに影響を与え、ユーザーは、サブルーチン名の後に’Open’ボタンをクリックして直接サブルーチンファイルを開くことができます。サブルーチン名の後にある’Open’ボタンをクリックすると、サブルーチンファイルを直接開くことができます。チェックされている場合、サブルーチンはメイン・プログラムに直接コピーされ、サブルーチン・ファイルの変更はサブルーチンには影響せず、サブルーチン名の後に’Open’ボタンは表示されない。

ユーザーが文字列変数に設定した場合、プログラムは実行時に変数の値をサブルーチン名として、対応するサブルーチンを動的にロードする。

Note

インラインサブプログラム」の場合、サブプログラムのプログラム変数もメインプログラムにコピーされます。 メインプログラムに同じ名前の変数があると、メインプログラムに何らかの影響を与える可能性があります。そのため、使用する際には、この変数の挙動を注意深く確認し、本来のプログラムの実行ロジックに影響を与えないようにしてください。

Note

文字列変数でサブプログラムを参照する場合は、”インライン・サブプログラム “をチェックしない。

../../_images/77.jpg ../../_images/78.jpg

リプレイ

軌跡は繰り返される。記録モードが位置ベース記録または時間ベース記録のロボット動作軌跡を作成することができる。このファンクションブロックにプログラムが実行されると、ロボットは関節空間ベースまたは直交空間ベースの再現モードに従って軌跡を移動する。ユーザーは既存のトラックファイルを選択するか、新しいトラックを作成することができる。

新しいトラックを作成するには、’New Track’ボタンをクリックし、トラック名を入力すると、’Track Record’ボックスが表示されます。ツール座標系、ワーク座標系、記録モードを選択した後、’Start Record’ボタンをクリックしてトラックデータの記録を開始する。この時、トラック記録中であることを示す半透明のサスペンションボックスがページ上に表示されます。トラックファイルの作成を完了するには、’Stop Recording’またはホバーボックスの’Stop’ボタンをクリックしてください。トラック記録プロセス中に、ユーザーが座標系を変更したり、現在の座標系を切り替えたりすると、現在のトラック記録が終了し、’Track Recording’ サスペンションフレームが消えます。

../../_images/79.jpg

選択されたトラックについて、再現モードが関節空間に基づいている場合、トラックのトラック名と記録モードが表示されます。再現モードが直交空間に基づいている場合、記録時間のトラック名、記録モード、ツール座標系、ワーク座標系が表示されます。

../../_images/80.jpg

パレット

パレタイジング/アンローディングパレタイジング/アンパレタイジング標準手順のテンプレートセットは、いくつかの簡単なパラメータ設定に基づいて自動的にロードされ、適応させることができます。

../../_images/811.jpg

パレタイジング/アンパレタイジングブロックを使用するには、以下の手順に従ってください:

1.パレタイジングを使用するか、アンローディングを使用するかを決定する。パレタイジングはワークをパレットに移動することであり、アンローディングはワークをパレットから取り出すことである。

2.パレットを追加するたびにデフォルトの名前が生成されます。

3.トレイ上のワークの配置モード、直線またはグリッドモードを選択します。

4.校正トレイが使用する基準座標系は、トレイ上に載置された最初のワークに基づいて校正される。P1点はワークへのティーチングポイント、P2点はライン方向(基準座標系のX軸方向)、P3点はカラム方向を示します。キャリブレーション」ボタンをクリックすると、座標系のキャリブレーションが完了します。基準座標系の値が上部に表示されます。

../../_images/821.jpg

Add & Activate」ボタンをクリックすると、ダイアログボックスがポップアップします。座標系の名前を入力すると、その座標系がシステムに追加され、現在の座標系として設定されます。

../../_images/831.jpg

1.ワークの配置パラメータを設定し、ワークの高さ、行と列の方向に配置されたピースの数、行と列の方向にワークの間隔を設定する必要があります。

2.ワークのカウント変数を設定し、プログラム変数領域に番号型の変数を作成する必要があります。

3.レイヤー数を設定する。

4.各ワークの動作の実行ポイントを定義する。これは3つのアプローチポイント、動作ポイント、終了ポイントに分けることができる。3つのポイントはトレイに置かれた最初のワークピースで示されている。アプローチポイントとは、ロボットがトレイの上まで走り、ワークを載せる/掴むことを計画する位置、アクションポイントとは、ロボットがワークを載せる/掴む位置、エグジットポイントとは、ロボットが載せた/掴んだ後にトレイから離れる位置である。注:これらの3点はトレイの基準座標系でティーチングされなければならない。

5.ティーチングが完了したら、「Generate Script(スクリプトの生成)」ボタンをクリックします。

グループ機能ブロックは、クランプ爪の開閉などの対応する実行アクションを追加することができます。

../../_images/841.jpg

1.プログラムはサイクルモードに設定され、パレタイズプログラムは、オフセットを計算するために設定されたパラメータに応じて、毎回実行され、次のパレタイズ/アンロード位置の姿勢を決定します。変数エリアでは、現在パレタイズ/アンパレタイズされたワークピースの数は、設定されたワークピース数変数に従って表示することができます。

レコードポーズトランス**(RecordPoseTrans)。

操作点変換ティーチング機能ブロック。ポイント変換を行う。

下図では点 O を基準点とし、基準点 O に対する点 A、点 B、点 C、点 D の姿勢は不変である。操作点変換ティーチング機能ブロックは、基準点Oに対するこれらの点の相対的な姿勢関係を記録し、Oの姿勢が変化したときにA’、B’、C’、D’点の姿勢を出力する。目視位置決め、レーザー位置決めなどでよく使われる。例えば、目視位置決めの場面では、基準点OはAステーションのマーカーブロック、A、B、C、Dはステーションの4つのワークであり、ワークはマーカーブロックの姿勢に対して固定されている。ロボットベース座標系におけるマーカーブロックの姿勢はカメラによって識別され、ロボットベース座標系におけるワークの姿勢は動作点教示機能ブロックによって計算される。

../../_images/851.jpg ../../_images/861.jpg

設定画面は図に示すように3つの部分から構成されている。’Input-reference Pose’に基準点(O点)を設定し、’Operation Point Offset’に操作点(A,B,C,D)を設定し、’Output-conversion Pose’に計算された操作点(A ‘、B ‘、C ‘、D ‘)を格納する変数を設定する。設定段階では、ファンクションブロックは基準点(O)からの操作点(A,B,C,D)の偏差を記録します。プログラムが実行されると、操作点(A ‘,B ‘,C ‘,D ‘)の姿勢は、現在の入力変数(O ‘点)の値に偏差を加えた値に従って計算されます。

基準ポーズとしてポーズタイプのグローバル変数を選択し、’Set as Base’ボタンをクリックすると、変数の現在値が基準ベース(O点)として使用されます。操作点オフセットの’Teach to Add’ボタンをクリックして移動ページにジャンプし、ユーザはロボットを動かしてA点(A,B,C,D)を選択することができ、選択後に新しい点が追加され、設定ページにはベースラベルの下に追加された点の値が表示されます。出力フィールドでは、計算結果(A ‘,B ‘,C ‘,D ‘)を格納するA pose_list変数を選択します。

フォースコントロール関連スクリプト

現在の Force 制御関連スクリプトには、Force、ForceGuard、ForceSetZero、ForceWait、ForceMove があります。アプリケーションの詳細については、「DUCO CORE Terminal Force Control Function Manual」を参照してください。

コリジョンディテクト

衝突検出レベル。スクリプトは、プログラムの実行中に衝突検出感度の設定を実現することができます。

Note

このファンクションブロックで設定されたパラメータはロボットの起動状態にのみ影響し、電源を切っても保存されません。衝突検知の感度を恒久的に設定したい場合は、”Settings”-“Other Settings”-“Collision Settings “で設定し、プロジェクトを保存してください。

../../_images/87.jpg

スレッド

スレッドはメインのロボットプログラムと並行して実行され、変数を通してメインプログラムと相互作用します。パラメータ設定エリアでは、スレッドがループし続けるかどうか、スレッドがリエントラントかどうか、つまり実行が完了していない場合にスレッドが新しい実行インスタンスを作成できるかどうかを設定できます。プログラム内に最大10個のスレッドを作成することも可能です。

../../_images/88.jpg

Note

ロボットのモーションブロックはスレッド内では使用できません。

可変エリア#

このページでは、プログラム変数を作成し、プログラム変数の値をモニターすることができます。プログラム変数はシステム変数とは異なり、システム変数はプロジェクト全体に作用しますが、プログラム変数はプログラム内にのみ存在します。

変数の追加#

変数の追加」ボタンをクリックすると、図のようなダイアログボックスが表示されるので、変数名を入力し、種類を選択し、初期値を与えることで作成することができる。

../../_images/89.jpg

プログラム変数には以下の種類がある:

boolean: 論理値。値はfalseまたはtrueのみ。

number: 数字の種類を示す。

文字列:文字列型を示す

num_list:配列型

pose: ロボットの直交位置を表すデータ型。

関節:ロボット関節のデータ型

joints_list:ロボット関節位置リストのデータ型を示す。

pose_list:ロボットのデカルト位置リストデータを示す。

pose_speed: ロボットの端の速度のデータ型を示す。

pose_acc: ロボット終了時の加速度のデータ型を示す。

joint_speed: ロボット関節の角速度のデータ型を示す。

pose_acc: ロボット関節の角加速度のデータ型を示す。

../../_images/90.jpg

可変モニター#

Variable Monitor」にチェックを入れると、プログラム実行中にプログラム変数の現在値がこの画面に表示される。また、「Sort」ボタンをクリックすると、プログラム変数名をアルファベット順に並べ替えることができる。

Note

関節とポーズの変数はnum_list、データ単位はm/radでモニターする。

Variable Monitor」のチェックを外すと、プログラム変数の同期やインターフェイスへの表示処理を省くことができ、スクリプトの実行効率が大幅に向上する。

../../_images/911.jpg

走る#

シミュレーション “TABをクリックすると、ロボットの3Dモデルが表示される3Dモデルページに移動します。

プログラムツリーの左下にあるアイコンは、プログラムの開始と停止をコントロールします、 アイコンの A13 ボタンをクリックするとプログラムが実行され、アイコンの A14 ボタンをクリックするとプログラムがステップします。 プログラムの実行中はいつでも一時停止や停止ができます。 アイコン A18 ボタンをタップすると、プログラムの実行プロセスを設定し、カーソルが自動的にコマンドブロックに従ってください、 A19 アイコンをクリックすると、自動的に実行中のプログラムのフォローを有効にし、それがデフォルトでオンになっています。灰色のアイコンは機能がオンになっていることを表し、青色のアイコンは機能がオフになっていることを表します。

../../_images/96.jpg

プログラムの実行#

プログラムを実行する際、プログラムの始点とロボットの現在位置が一致しているかどうかをチェックする。もし一致していなければ、まず図のように始点に移動し、始点のロボットが3Dモデルに表示されます(グレー表示)。Hold Down to Move’ボタンをクリックすると、ロボットは始点に移動します。

../../_images/97.jpg

ユーザがスタート地点に移動したら、再度アイコン A13 ボタンをクリックしてプログラムを実行する。下図では、プログラムツリーの左下にプログラムの実行時間、3Dモデル上にロボットのリアルタイムの姿勢、プログラムツリーの左側に現在実行中のファンクションブロックが表示されます。プログラムの中断、再開、停止は下のコントロールボタンをクリックします。

../../_images/99.jpg

シングル・ステップ・プログラム#

アイコン A14 ボタンをクリックすると、プログラムをステップ実行します。シングルステップの場合、まずプログラムの始点をチェックし、ロボットをプログラムの始点位置に移動させます。アイコン A14 をクリックするたびに、プログラムはファンクションブロックをダウンして実行します。アイコン A13 ボタンをクリックすると、プログラムはシングルステップモードを終了し、連続実行になります。プログラムは一時停止し、単一ステッププロセスで再開することができます。 A15 アイコンをクリックすると、後進動作が実行され、ロボットは前のポイントに後進します。

停止ボタン A16 をクリックすると、プログラムの実行を停止し、シングルステップの状態を終了します。

../../_images/105.jpg

ブレイク・ポイント#

ブレークポイントデバッグ機能をサポートし、ブレークポイントの位置へのプログラムの実行は、停止し、シングルステップモードに入ります。

ユーザーは、プログラムツリーとスクリプトの編集領域でブレークポイントを設定することができ、ブレークポイントをヒットするには、プログラムツリーの行番号の左側の領域、スクリプトの行番号の左側の領域をクリックし、ブレークポイントをキャンセルするには、再度ブレークポイントをクリックします。下のアイコン A17 ボタンをクリックすると、システムが設定したすべてのブレークポイントをキャンセルすることができます。

../../_images/107.jpg

プログラムを処理し、プログラムがブレークポイントまで実行されると、プログラムは停止し、図に示すように、シングルステップモードに入ります。アイコン A14 ボタンをクリックすると、プログラムはシングルステップで実行されます(スクリプトのファンクションブロックまで実行され、1行で実行されます)。アイコン A13 ボタンをクリックすると、プログラムは次のブレークポイントに達するか、プログラムが終了するまで実行され続けます。

手動モードでは、プログラム実行中にいつでもブレークポイントを設定したり、ブレークポイントをキャンセルしたりすることができる。

../../_images/1101.jpg