コマンドの紹介
コマンドの紹介
コマンド機能の紹介
円弧で通過
円弧で通過とは、コーナーで鋭い角度で通過する代わりに、弧を描いて滑らかに通過させる機能です。円弧で通過をオンにすると、ロボットの動きが滑らかになり、動きの軌跡の違いは下図のようになります。

円弧で通過をオフにする場合(左) 円弧で通過をオンにした場合(右)
ご注意:
- Rは円弧で通過の半径(mm)。
- 円弧で通過は、円弧で通過させたいポイントでのみオンにするだけで済みます。例えば上図では、ポイントP2でのみ円弧で通過をオンにするだけで済みます。
速度と加速度
関節の速度、関節の加速度
ロボットの6つの関節の移動速度と加速度を設定し、関節の動きを調整するために使用することができます。それぞれの単位は°/s、°/s²です。
直線速度、直線加速度
ロボットツール端の移動速度と加速度を設定し、直線移動と円弧移動の動きを調整するために使用することができます。それぞれの単位はmm/s、mm/s²です。
姿勢速度、姿勢加速度
ロボット全体がX軸、Y軸、Z軸を中心に回転する時の速度と加速度を設定し、ロボットの直線移動と円弧移動の動きを調整するのに使用できます。それぞれの単位は°/s、°/s²です。
プランナー
サイクルタイム優先
ロボットが加速・減速する際、速度は直線的に変化しています。サイクルタイム優先を使用すると、ロボットの移動速度が速くなりますが、加速・減速の開始段階と終了段階にロボットへの衝撃がより大きくなります。主にサイクルタイムが短いシーンで使用されます。
注:サイクルタイム優先はデフォルトのプランニングモードです。
コンプライアンス優先
ロボットが加速・減速する際、速度はS字曲線で変化しており、加速度の変化率は一定となっています。コンプライアンス優先を使用すると、ロボットの移動軌跡がよりスムーズになり、ロボットへの衝撃も少なくなります。通常は速度が高くなく、軌跡精度に厳しいシーンで使用されます。
注:コンプライアンス優先は、プログラムを作成してロボットと関節が当該点に移動させた場合に有効となりますが、手動操作画面、ダイレクトティーチングモード、および当該点に直線で移動した場合には無効となります。
新規プログラミング

意味: これからロボットが実行するプログラム。
使用法: 実行したいコマンドを順番で「新規プログラミング」の下に配置します。コマンドをクリックしてプログラム名を変更できます。
例:ロボットに始点から垂直姿勢までの関節動作をさせます。

注:このモジュールは、「新規プログラミング」の下に配置かれていない場合は実行されません。
移動コマンド
ロボットの動作位置は、座標系の変更に応じて変化します。 ユーザーがある座標系でポイントを設定した後、座標系を切り替えてからプログラムを実行する場合、すべてのポイントが自動的に対応する位置に切り替わります。例えば、初期設定ポイントが(0°,0°,0°,180°,90°,20°)の場合、座標系を切り替えた後は、切り替えた後の座標系で(0°,0°,0°,180°,90°,20°)に対応する位置に切り替わります。そのため、移動コマンドの編集やロボットを動作させる前に座標系を設定する必要があります。
関節移動

意味:ロボットに関節移動を実行させます。
使い方:コマンドをクリックして設定画面を開き、コマンド名、速度、加速度を編集し、デカルト座標を使用するかどうかを選択し、ここで停止するか円弧で通過するかを選択し、停止条件を選択し、ティーチングポイントを編集します。「その点まで移動」ボタンを長押しで現在の設定ポイントへロボットを移動。移動方法は「関節/直線運動」ボタンで切り替え。

関節移動機能を使用する場合、「デカルト座標系を使用します」 オプションがチェックされている場合、ロボットは現在移動中に保存されているロボットのデカルト座標に基づいて対応する関節の角度値を算出し、設定された位置まで関節移動を実行します。
関節移動にはデカルト座標系を使う

意味: デカルト座標系に記録されたポイントを用いて、関節移動を実行します。
使用法:関節移動の前にこのコマンドを使用すると、それ以降の関節移動はすべてデカルト座標系に記録されたポイントで実行され、関節動作であることに変わりはないが、ロボットは自動的に逆運動学を解きます。
直線移動

意味:ロボットの末端に直線移動をさせます。
使い方:コマンドをクリックして設定画面に入り、コマンド名、速度、加速度を編集し、ここで停止するか円弧で通過するかを選択し、停止条件を選択し、ティーチングポイントを編集します。「その点まで移動」ボタンを長押しで現在の設定ポイントへロボットを移動。移動方法は「関節/直線運動」ボタンで切り替え。

相対直線移動

意味:ロボットに現在の姿勢に対する末端の直線移動を行わせるための位置変化量を設定します。位置変化量は現在のユーザー座標系における増分値です。
使用法:コマンドをクリックして設定画面に入り、コマンド名、速度、加速度、参照座標系、円弧で通過を使用するかどうか、停止条件を要求に応じて編集し、位置変化量を編集します。「その点まで移動」ボタンを長押しで現在の設定ポイントへロボットを移動。移動方法は「関節/直線運動」ボタンで切り替え。
例:ロボットの末端が現在のユーザー座標系のZ軸に沿って負の方向に100mm移動します。


円弧移動

円弧移動を実行するには、P0、P1、P2の3つのポイントが必要です。P0は前のコマンドの最後のポイント、P1は円弧移動コマンドの最初のポイントで、P2は円弧移動コマンドの2番目のポイントです。
「その点まで移動」ボタンを長押しで現在の設定ポイントへロボットを移動。移動方法は「関節/直線運動」ボタンで切り替え。
回転数:回転数が0の場合、円弧移動び軌跡は初期ポイントから終点までの円弧となります。回転数が1の場合、システムは自動的に回転数、通過点、終点に基づいて円を算出し、円弧移動の軌跡はシステムによって計算された1つの完全な円となります。回転数が2の場合、円弧移動の軌跡はシステムによって計算された2つの完全な円となります。他の状況も上記のように処理されます。

回転数は0の場合(左) 回転数は1の場合(右)
円運動プログラム:最小限の姿勢変化、より大きな姿勢変化、中間点の姿勢適応、姿勢クランプ角度固定、ループ回数倍率モードという5つの円弧移動モードがあります。回転数が0の場合、最小限の姿勢変化、より大きな姿勢変化、中間点の姿勢適応、姿勢クランプ角度固定モードが対応でき、回転数が0でない場合、ループ回数倍率モードのみが対応できます。
最小限の姿勢変化:初期ポイント姿勢、ミッドポイント姿勢、エンドポイント姿勢に基づき、ロボットは最小限の姿勢変化で円弧移動を行います。

A:初期ポイント B:エンドポイント
より大きな姿勢変化:初期ポイント姿勢、ミッドポイント姿勢、エンドポイント姿勢に基づき、姿勢変化が大きい円弧移動を行います。

A:初期ポイント B:エンドポイント
中間点姿勢適応:初期ポイント姿勢、ミッドポイント位置、エンドポイント姿勢に基づき、円弧移動の軌跡を決定された後、ロボットがミッドポイント姿勢に基づき円弧移動の姿勢を予測し、姿勢変化が最小限またはより大きい方法で円弧移動を行います。
or 
A:初期ポイント B:エンドポイント
姿勢クランプ角度固定:ミッドポイント姿勢、エンドポイント姿勢を考慮することなく、初期ポイント姿勢、ミッドポイント位置、エンドポイント位置に基づき、ロボットの末端が常に円の中心を向いて円弧移動を行います。

A:初期ポイント B:エンドポイント
ループ回数倍率モード:
- 初期姿勢と終点姿勢が異なる場合、ミッドポイント姿勢、エンドポイント姿勢を考慮することなく、初期ポイント姿勢、ミッドポイント位置、エンドポイント位置に基づき、ロボットは常に初期ポイント姿勢を取り、末端が常に円の中心を向いて円弧移動を行います。
> A:初期ポイント B:エンドポイント - 初期姿勢と終点姿勢が同じ場合、ロボットの姿勢は変わらず、末端が常に円の中心を向かうことなく円弧移動を行います。
> A:初期ポイント B:エンドポイント

MoveZ

意味:ロボットの末端は現在の姿勢を維持し、Z型の軌跡に沿って移動します。
使用法:コマンドをクリックして設定画面に入り、開始位置、終了位置、任意位置(ロボットはこの3つのポイントによって決まる平面内でZ型移動を行います。)、Z型軌跡の幅、移動速度、Z型軌跡の密度、円弧で通過の時間またはピーク停止時間(どちらか一方)を編集します。「その点まで移動」ボタンを長押しで現在の設定ポイントへロボットを移動。移動方法は「関節/直線運動」ボタンで切り替え。 幅:現在の平面内で移動するロボットの幅。 密度:同じ側のピーク間の距離。 はロボット移動の周期を決定します。Z型移動の密度が設定されていない場合、Z型移動の周期はロボット現在の速度がZによって決まります。 ピーク停止時間:ロボットはピーク(軌跡イメージ図の赤い点)に達するたびに一時停止し、+X側と-X側の点に異なる一時停止時間を設定できます。 デフォルトでは、ユーザー座標系のZ軸に垂直な平面がロボットの移動平面として使用されます。ユーザーは移動平面をカスタマイズすることもできます。つまり、新しいポイントを設定し、その三つ目のポイントと初期ポイント、エンドポイントで形成される平面をロボットのZ型移動の平面として使用されることができます。この場合、3つ目のポイントの方向は+x方向です。

MoveZ軌跡のイメー図は次のとおりです。

P1 :初期ポイント P2:エンドポイント
A:密度 B:幅
MoveZS

意味:ロボットの末端がRZ回転すると同時に、設定した方向に移動します。
使用法:コマンドをクリックして設定画面に入り、開始位置、終了位置、任意位置(ロボットはこの3つのポイントによって決まるユーザー座標系で移動を行います。)、軌跡の幅、移動速度、Z型軌跡の密度、回転角度(デフォルトは45°)、円弧で通過の時間またはピーク停止時間(どちらか一方)を編集します。「その点まで移動」ボタンを長押しで現在の設定ポイントへロボットを移動。移動方法は「関節/直線運動」ボタンで切り替え。
幅:現在の平面内で移動するロボットの幅。
密度:同じ側のピーク間の距離。 密度はロボット移動の周期を決定します。Z型移動の密度が設定されていない場合、Z型移動の周期はロボット現在の速度がZによって決まります。
回転角度:X軸の正または負の方向への回転運動の角度。
ピーク停止時間:ロボットはピーク(軌跡イメージ図の赤い点)に達するたびに一時停止し、+X側と-X側の点に異なる一時停止時間を設定できます。
デフォルトでは、ユーザー座標系のZ軸に垂直な平面がロボットの移動平面として使用されます。ユーザーは移動平面をカスタマイズすることもできます。つまり、新しいポイントを設定し、その三つ目のポイントと初期ポイント、エンドポイントで形成される平面をロボットのZ型移動の平面として使用されることができます。この場合、3つ目のポイントの方向は+x方向です。

MoveZS移動軌跡のイメー図は次のとおりです。

P1 :初期ポイント P2:エンドポイント
A:密度 B:幅 C:回転角度
ウェイポイント変数管理
JAKA Appは移動ウェイポイント機能を備えています。ユーザーはウェイポイント変数管理で移動ウェイポイントを定義し、対応する移動ウェイポイントコマンドで呼び出し、ロボットを設定されたウェイポイントの位置に移動するように制御することができます。
運動制御画面で、左側のコマンドバーをクリックして移動コマンドオプション画面に入り、「設定」ボタンを押してウェイポイント変数管理画面に入ります。画面中のボタンの機能は以下の通りです。
| アイコン | 名称 | 説明 |
|---|---|---|
![]() | ウェイポイントファイルのインポート | インポートされたウェイポイントファイル名はmovepoints.zipでなければなりません。このボタンをクリックして、ウェイポイントファイルのフォルダを選択し、ウェイポイントファイルを選択して、「確定」をクリックします。 |
![]() | ウェイポイントファイルのエクスポート | このボタンをクリックして、ウェイポイントファイルのエクスポートパスを選択し、「確定」をクリックします。 |
![]() | ウェイポイント変数の編集 | このボタンをクリックして、編集したいウェイポイント変数を選択し、「確定」をクリックしてウェイポイント変数編集画面をポップアップ表示させます。編集が完了したら「確定」をクリックします。 |
![]() | ウェイポイント変数の削除 | このボタンをクリックして、削除したいウェイポイント変数を選択し、「確定」をクリックします。 |
![]() | ウェイポイント変数の追加 | このボタンをクリックして、ウェイポイント変数の編集画面をポップアップ表示させ、編集が終了した後、「確定」をクリックします。 |

移動ウェイポイント

意味:動作中のTCPの位置。
使用法: コマンドをクリックし、機能を選択した後、カスタムウェイポイントを選択するか、ウェイポイント変数管理で定義されたウェイポイントを呼び出すことができます。コマンドをクリックして設定画面に入り、コマンドの別名 (カスタムモードは変更できません。)、速度、加速度を編集し、共有パラメータ、デカルト座標 (関節移動)および円弧で通過を使用するかどうかを選択し、停止条件を選択します。(ロボットが停止条件で設定された状態に達した場合、プログラムはこのコマンドをスキップします。)
共有パラメータを使用する場合、移動ウェイポイントコマンドの速度と加速度は変更できず、移動コマンドボックスで設定された速度と加速度で決定されます。
注:このコマンドは、動作コマンドボックスと組み合わせて使用する必要があります。
例:ロボットが関節移動でウェイポイント1の位置からウェイポイント2の位置に移動します。

移動コマンドボックス

移動ウェイポイントコマンドと組み合わせて、ロボットに関節移動または直線移動を実行させます。コマンドをクリックして、動作モード切り替え機能で関節移動または直線移動が切り替われます。コマンドをクリックして、編集画面に入り、コマンド名、速度、加速度を編集できます。

パレットのウェイポイント

意味:パレットプログラムの各パレットポイントに到達した後のロボットの移動終了点を設定します。
使用法:コマンドをクリックして設定画面に入り、コマンド名、速度、加速度の編集、ここで停止するか円弧で通過するかの選択、停止条件の選択、ティーチングポイントの編集を行えます。(このコマンドはパレットコマンド内にある場合のみ有効となります。)

ご注意:このコマンドはパレットボックス内にある場合にのみ有効となります。
例:ロボットの末端が3×3の正方形のパレット上で移動し、各ポイントごとに100mm下方に移動します。

軌跡記録

意味:記録された軌跡を再現し、再現される軌跡はJOGやドラッグ&ドロップで収集し続けることができます。
使用法:コマンドのドロップダウンリストで使用したい軌道を選択できます。コマンドをクリックして、設定画面に入り、コマンドの速度と加速度を編集できます。

全局速度の設定

ドロップダウンリストで適切な速度変数を選択します。全体速度の設定をオンにすると、それ以降のすべての直線移動と関節移動コマンドの速度と加速度は、選択された速度変数と同じになります。
全局速度をオフに

このコマンドを実行した後、全体速度の設定をオフにすると、それ以降のすべての直線移動と関節移動コマンドの速度と加速度が元の速度および加速度に戻ります。
全体プランナータイプの設定

プルダウンメニューをクリックし、プランナータイプを選択します。全体プランニングをオンにすると、このコマンド以降の移動コマンドは全体プランニングに従って実行され、且つ全体プランニングは単一のコマンドで設定されたプランナータイプよりも優先されます。例えば、全体プランニングがコンプライアンス優先に設定された場合、このコマンド以降の直線移動コマンドでは、プランニングタイプがサイクルタイム優先に設定された場合、この直線移動コマンドのプランニングモードは依然としてコンプライアンス優先です。
全体プランナーをオフに

このコマンドを実行すると、全体プランニングがオフになり、それ以降の移動は元のプランナータイプに戻ります。
ポーズキューの値を保存/取得

意味:このコマンドは、カメラの撮影で取得した資材位置を保存または読み取るものです。
使用法:配列変数または位置変数を楕円形ボックスにドラッグします。
ポーズキュークリア

このコマンドは、カメラの撮影で取得した資材位置の情報をクリアするものです。
移動ウェイポイントパラメーターの取得

意味:ウェイポイント変数管理における移動ウェイポイントの情報を取得します。
使用法:ホストコンピュータに送信するか、変数に割り当てることができます。
例:ウェイポイント変数管理で、移動ウェイポイント1の情報を読み取ります。これにより、ホストコンピュータはウェイポイント変数管理における動作ウェイポイント1の情報を受け取れます。

ロボット関連パラメータの取得

意味:ロボットの現在の関節位置、ツール側の中心位置、フランジ中心姿勢、末端荷重、末端フォース、衝突検出感度、システム時間、転送キューの目標数と姿勢キューの目標数、ポーズキューターゲット数を取得します。
使用法:ホストコンピュータに送信するか、変数に割り当てることができます。
例:ホストコンピュータはロボットの関節1~6の現在の角度値を受け取ります。

ロボットユーザー座標系またはツール座標系の取得

意味:ロボットのユーザー座標系設定またはツール座標系設定を取得します。
使用法:ホストコンピュータに送信するか、変数に割り当てることができます。
例:ホストコンピュータは現在のロボットの座標値を受け取ります。

デカルト空間姿勢に到達するか

意味: 現在の位置に基づいて、デカルト空間での動きを通じて特定のデカルト空間姿勢に到達できるかどうかを判断します。

意味: 設定された参照角度に基づいて、与えられたデカルト姿勢がデカルト空間運動によって到達可能かどうかを判断します。
注:参照角度値の選択ボックス内には、配列変数と位置変数のみ挿入できます。
I/Oコマンド
デジタル出力の設定

このコマンドはプログラムで使用すると、設定されたDO信号が即座に出力されるリアルタイムコマンドです。
- 例:対象物を設置位置まで移動させ、ソフトハンドを解放して対象物を設置します。

移動中デジタル出力の設定

当該コマンドはリアルタイムコマンドではなく、プログラムで使用した場合、即座にDO信号が出力されるのではなく、ロボットが「参照ポイント」で指定された距離の位置まで移動したときにDO信号が出力されます。
**参照ポイント:**初期ポイントまたはエンドポイントとして設定できます。初期ポイントはこのコマンドの次のコマンドの開始点であり、エンドポイントはこのコマンドの次のコマンドの終了点です。
距離:
- 直線移動の場合、距離は参照ポイントに対するデカルト距離になります。
- 円弧移動の場合、距離は参照ポイントからの円弧の長さになります。
- 関節移動の場合、距離は次の図に示すように、初期ポイントとエンドポイントの間のデカルト距離に基づき、実際の動作経路に対するパーセンテージの距離に変換されます。例えば、距離を50mmに設定すると、デカルト距離の10%に相当し、実際の距離は実際の動作経路の10%になります。

1:デカルト距離
2:実際の移動距離
A:初期ポイント
B:エンドポイント
C1、C2、C3、C4:指定距離に対応する位置
注:
- このコマンドに隣接する2つのコマンドは両方とも移動コマンドでなければなりません。
- この2つの移動コマンドの間に最大8つの本コマンドを追加することができます。
デジタル入力待ち

これはDI信号を待つために使用されるコマンドです。このコマンドで入力された時間が0の場合、このコマンドのプログラムは当該コマンドの条件に満たすまで待ってから実行します。入力された待ち時間が0以外の場合、コマンドの条件に満たしていればすぐにこのコマンドのプログラムを実行し、コマンドの条件に満たしていなければ入力された時間まで待ってからこのコマンドのプログラムを実行します。
アナログ出力の設定

このコマンドはプログラムで使用すると、設定されたAO信号が即座に出力されるリアルタイムコマンドです。楕円形の白いボックスにアナログ出力信号の値を入力することができ、入力値の範囲は-65535~65535です。
例:ロボットが待機ポイントに移動した時、コントローラのAO1の値を2048に設定します。

移動中アナログ出力の設定

当該コマンドはリアルタイムコマンドではなく、プログラムで使用した場合、即座にAO信号が出力されるのではなく、ロボットが「参照ポイント」で指定された距離の位置まで移動したときにAO信号が出力されます。楕円形の白いボックスにアナログ出力信号の値を入力することができ、入力値の範囲は-65535~65535です。
**参照ポイント:**初期ポイントまたはエンドポイントとして設定できます。初期ポイントはこのコマンドの次のコマンドの開始点であり、エンドポイントはこのコマンドの次のコマンドの終了点です。
距離:
- 直線移動の場合、距離は参照ポイントに対するデカルト距離になります。
- 円弧移動の場合、距離は参照ポイントからの円弧の長さになります。
- 関節移動の場合、距離は次の図に示すように、初期ポイントとエンドポイントの間のデカルト距離に基づき、実際の動作経路に対するパーセンテージの距離に変換されます。例えば、距離を50mmに設定すると、デカルト距離の10%に相当し、実際の距離は実際の動作経路の10%になります。

1:デカルト距離
2:実際の移動距離
A:初期ポイント
B:エンドポイント
C1、C2、C3、C4:指定距離に対応する位置
注:
- このコマンドに隣接する2つのコマンドは両方とも移動コマンドでなければなりません。
- この2つの移動コマンドの間に最大8つの本コマンドを追加することができます。
デジタル入力

このコマンドはデジタル入力のステータスを取得するコマンドで、他のコマンドと組み合わせて使用する必要があります。プログラムの判定条件としても使用できます。DIステータスがコマンドの設定と一致する場合、「真」となります。
- 例:デジタル入力の現在のステータスを判定します。現在のDI1がオンの場合、ロボットはポイントAからポイントBに移動します。

デジタル出力

このコマンドはデジタル出力のステータスを取得するコマンドで、他のコマンドと組み合わせて使用する必要があります。プログラムの判定条件としても使用できます。DOステータスがコマンドの設定と一致する場合、「真」となります。
例: デジタル入力の現在のステータスを判定します。現在のDO1がオンの場合、ロボットはポイントAからポイントBに移動します。

アナログ入力の取得

このコマンドはアナログ入力のステータスを取得するコマンドで、他のコマンドと組み合わせて使用する必要があります。アナログ入力の値を変数割り当てを通じて変数に割り当てることができます。
例:現在のアナログ入力を距離というシステム変数に割り当て、システム変数である距離の値が10より小さい場合、ロボットはポイントAからポイントBに移動します。

アナログ出力の取得

このコマンドはアナログ出力のステータスを取得するコマンドで、他のコマンドと組み合わせて使用する必要があります。アナログ出力の値を変数割り当てを通じて変数に割り当てることができます。
例:現在のアナログ出力を距離というシステム変数に割り当て、システム変数である距離の値が10より小さい場合、ロボットはポイントAからポイントBに移動します。

制御コマンド
ツール座標系の設定

プログラム実行中に座標系が変化した場合、座標系設定コマンドを使用し、このコマンド以降のコマンドをこのコマンドで設定された座標系で実行するようにする必要があります。座標系設定コマンドは直線移動にのみ有効となり、関節移動には影響を与えません。制御コマンドでツール座標系を設定するには2つの方法があります。
手動でTCPを入力します。
「設定」で設定したTCPを選択します。
コマンドをクリックして、設定画面に入り、座標系の名称と座標値を編集できます。この座標系はこのプログラムでのみ使用できます。(デフォルトのツール座標系は末端フランジ中心です。)

ユーザー座標系の設定

プログラム実行中に座標系が変化した場合、座標系設定コマンドを使用し、このコマンド以降のコマンドをこの座標系で実行するようにする必要があります。座標系設定コマンドは直線移動にのみ有効となり、関節移動には影響を与えません。制御コマンドでユーザー座標系を設定するには2つの方法があります。
ユーザー座標系を手動で入力します。
「設定」で設定したユーザー座標系を選択します。
コマンドをクリックして、設定画面に入り、座標系の名称と座標値を編集できます。この座標系はこのプログラムでのみ使用できます。(デフォルトのユーザー座標系はワールド座標系です。)

負荷と重心位置の設定

動作中に負荷が変化した場合、負荷を設定するコマンドが必要となります。動作中に設定された負荷が実際の負荷と一致しない場合、震えや誤った衝突報告が発生する可能性があります。
このコマンドは、プログラム実行中に末端負荷と負荷の重心を変更するために使用されます。使用方法は次の2つがあります。
実際の負荷と重心を表に直接入力します。
楕円形の白いボックスに数値型の変数を入力し、変数の初期値を希望する負荷または負荷の重心とします。

負荷の切り替え

この命令は、負荷を設定した後、なめらかな遷移時間を設定することにより、負荷切り替え後の振動を防止するために使用します。この時間中は、力制限が緩和されます。
なめらかな遷移時間の範囲は 0~1 秒で、デフォルトは 0 秒です。
待機コマンド

待機コマンドは次の2つがあります。
特定の時間を待つ
待機時間を入力すると、プログラムはこのコマンドを実行する時、入力された時間だけ待機してから引き続き実行します。待機時間を0sに設定すると、ロボットはずっと待機することになります。
例:ロボットはポイントAに移動し、5秒間停止してから動作を続けます。

特定の条件を待つ
判定条件をボックスに入力した後、このコマンドを実行する時、ロボットは判定条件が満たされるまで待ってからプログラムを実行します。
例:DI1がオンになるまで待ってから、ロボットがポイントAからポイントBに移動します。

ループコマンド

ループコマンドは次の5つがあります。
- 特定回数のループ:プログラムはこのコマンドまで実行した後、ループコマンドの内容が特定の回数繰り返されるか、ループ終了コマンドを実行するまで、コマンドの内容をループします。
使用方法は次の2つがあります。
楕円形の白いボックスにループ回数を入力します。
楕円形の白いボックスに数値型の変数を入力し、変数の初期値はループ回数です。


ずっとループ
プログラムはこのコマンドまで実行した後、ループ終了コマンドを実行するまで、このコマンドの内容をループし続けます。
if ループ
このコマンドの菱形のスペースに判定条件として他のコマンドを挿入し、菱形スペースのコマンドが条件を満たすと、条件が満たされなくなるか、ループ終了命令が実行されるまで、このコマンドの内容をループし続けます。
例:条件を満たした場合、ロボットはポイントAとポイントBの間を繰り返し移動します。

ループを終了する
このコマンドはループコマンドと判定コマンドと組み合わせて使用する必要があり、特定の条件を満たした時に、このループ終了コマンドに最も近いループを終了させます。このコマンドの前に判定条件を追加し、その条件が満たされば、現在のループを直ちに終了します。
例:ループ終了条件が満たさない場合は、関節移動ABCDを実行します。ループ終了条件が満たされた場合は、関節移動ABを実行した後、関節移動CDを実行せずに現在のループから抜け出し、プログラムを終了します。

このループをスキップ
このコマンドはループコマンドと判定コマンドと組み合わせて使用する必要があります。特定の条件を満たした時に、このループ終了コマンドに最も近いループを終了させます。このコマンドの前に判定条件を追加し、その条件が満たされた場合、今回のループをスキップしてループの初期位置に戻り、ループの実行を継続します。
例:現在のループをスキップする条件が満たされていない場合、動作ABCDを実行します。現在のループをスキップする条件が満たされた場合、動作ABを実行した後、動作CDをスキップし、現在のループをスキップせずにループの最初から実行を継続します。

判定コマンド

判定コマンドは次の2つがあります。
if true
このコマンドは、条件コマンドの条件が満たされているかどうかを判断するためのもので、条件が満たされている場合はフレーム内のプログラムが実行され、満たされていない場合は実行されません。
例: 現在のDI1がオンの場合、ロボットはポイントAからポイントBに移動します。現在のDI1がオフの場合、ロボットは関節移動Aのみを実行します。

if else
このコマンドは、条件コマンドの条件が満たされているかどうかを判断するためのもので、下図のように、条件が満たされている場合はエリアAのプログラムが実行され、条件が満たされている場合はエリアAのプログラムが実行されます。

例:現在のDI1がオンの場合、ロボットはポイントAに移動し、そうでない場合、ロボットはポイントBに移動します。

パレットコマンド

パレットコマンドは主にパレタイジングに使用され、他のループコマンドと組み合わせて、ルールに従ってものをパレットに積み重ねられます。
パレットには1次元(線分)、2次元(四角形)、3次元(立方体)の3種類があり、軌跡イメージ図は次のとおりです。

一次元 二次元 三次元
操作手順は次のとおりです。
パレットの種類を選択してください。
速度、加速度を設定し、円弧で通過を使用するかどうかを決定し、停止条件を選択します。
ポイントの編集:1次元は2ポイント、2次元は4ポイント、3次元は8ポイントを設定します。トレイコマンドをクリックしてトレイ編集画面に入り、丸枠に囲まれた数字をクリックして編集画面に入り、ポイントを編集します。ポイントを編集する前に、目的の座標系に切り替え、全てのポイントが同じ座標系になっていることを確認してください。

一次元 二次元 三次元
ポイントXからポイントXまでの総カウントポイントを設定:総カウントポイントとは、ワークの数であり、端点を含む点の総数でもあります。例えば、1次元パレットの場合、ポイント1からポイント2までの総カウントポイントを3に設定すると、ポイント1からポイント2までの線分を自動的に2等分し、中点にポイントを設定します。総カウントポイントが4の場合は、下図のようにポイント1からポイント2までの線分を自動的に3等分し、分割点に2つのポイントを設定します。

総カウントポイントは3 総カウントポイントは4
初期ポイントの設定:初期ポイントの設定は次の3つの方法があります。
- 楕円形の白いボックスにポイントまたは変数を入力します。(値が1未満の場合、プログラムはエラーを報告します。値が総カウントポイントより大きい場合、実行はパレット上の最初のポイントから開始されます。値は1~総カウントポイントの範囲内の場合、入力されたポイントからロボットが動作を開始します。)例えば2次元パレットの場合、ポイント1からポイント2までの総カウントポイントは3、ポイント2からポイント3までの総カウントポイントは3なので、合計点数は3×3=9となります。
- パレット移動の前に関節移動または直線移動を追加し、移動のの開始点は初期ポイントで終点はポイント1です。
ループコマンドの編集:ループの回数はポイントの数に関係します。例えば、3×3パレットを設定し、9ポイントを通過したい場合、ループ回数は9に設定する必要があります。
他のコマンドを挿入:他のコマンドをパレットコマンドボックスに挿入して、ロボットに希望の動作をさせることができます。
例:ロボットの末端が3×3の正方形のパレット上で移動し、各ポイントごとに100mm下方に移動します。

コンベヤトラッキングコマンド
このコマンドにより、ロボット末端はコンベアベルトに追従し、リアルタイムで動作を実行できます。ソフトウェアを使用してコンベアトラッキングを行う前に、環境を設定する必要があります。つまり、エンコーダをコントローラに接続し、Modbus TCP接続をModbus pollとロボットの間で行う必要があります。コンベヤトラッキングは次の2種類があります。コンベヤトラッキングは次の4種類があります。
直線コンベヤトラッキング

直線コンベヤトラッキングの設定手順は次のとおりです:
命名:「コンベヤトッキング」の後の入力ボックスにコンベヤ名を入力します。
**開始位置の設定:**コンベヤトラッキングコマンドボックスに移動コマンドをドラッグします。この移動コマンドの開始位置はロボットの動作の開始位置になります。
注:コンベヤトラッキングモジュールの移動コマンドは、関節移動にすることはできません。
コンベヤトラッキングコマンドパラメータの設定:
直線コンベヤトラッキングコマンドには次のパラメータが含まれています。
1パルス当りの移動量の計算:エンコーダのパルス数の変化を読み取り、現在のコンベアベルトの移動距離を測定することで1パルス当りの移動量を計算します。(距離はノギスで測定でき、パルス数はModbusで読み取れます。)1パルス当りの移動量の計算式は以下の通りです。
1パルス当りの移動量=距離(mm)/パルス数(cnt)
コンベア方向の設定:コンベア方向の設定方法は次の2つがあります。
手動入力:コンベア方向のX、Y、Zはそれぞれユーザー座標系における[0,0,0]から[X,Y,Z]を指す方向です。例えば、[1,0,0] と設定した場合、コンベア方向はユーザー座標系のX軸に沿った正の方向になります。
始点と終点の設定:始点(終点)をクリックして、ロボットの位置を確認できます。このコマンドは2つのポイントに基づいてコンベアの移動方向を自動的に算出し、コンベアの方向は始点から終点に向かいます。
注:起点と終点の位置座標は世界座標系に対する相対的です。
**トラッキング補正精度:**実際の位置とティーチング位置との誤差を補正するために使用され、範囲は±100mmです。使用法:実際のトラッキング位置とティーチング位置との差を測定し、「トラッキング精度補正」の後の入力ボックスにその値を入力します。
トラッキング最大距離:ロボット移動の初期ポイントからエンドポイントまでの距離です。ロボットがコンベヤ範囲を超えたり、特異点に到達したりしないように、ロボットの末端の移動範囲を制限するために使用されます。範囲は1~3000mmです。
使用法:実際のコンベヤの長さ、ロボット移動の初期ポイントとエンドポイント、ロボットの動作範囲に基づいてパラメータ値を決定し、「トラッキング最大距離」の前のチェックボックスにチェックを入れ、「トラッキング最大距離」の後に入力ボックスに範囲値を入力します。ロボットがこの制限を超えると、その移動は停止します。
**トラッキング開始距離:**ロボット移動の初期ポイントからコンベヤのトラッキング開始点までの距離です。ロボットがコンベヤトラッキングを開始する位置をカスタマイズするためのもので、範囲は0~3000mmです。「トラッキング開始距離」の前のチェックボックスにチェックを入れ、「トラッキング開始距離」の後の入力ボックスに距離の値を入力します。
**他の機能の追加:**実際の需要に応じて他のコマンドをコンベヤトラッキングコマンドボックスにドラッグし、ロボットがコンベヤの移動をトラッキングしながら他の動作を実行したり、資材をつかんだりさせることができます。
注:コンベヤトラッキングモジュールの移動コマンドは、関節移動にすることはできません。

動的直線コンベヤトラッキング

動的直線コンベヤトラッキングは、直線コンベヤトラッキングに基づき、コンベヤの開始点と終了点の設定方法を変数割り当て方法に変更するものです。即ち、位置変数または配列変数をコンベヤの開始点と終了点として楕円形のボックスにドラッグします。その他の設定手順は直線コンベヤトラッキングの場合と同じです。

円形コンベヤトラッキング

円形コンベヤのトラッキングを設定する手順は次のとおりです。
命名:「コンベヤトッキング」の後の入力ボックスにコンベヤ名を入力します。
**開始位置の設定:**コンベヤトラッキングコマンドボックスに移動コマンドをドラッグします。この移動コマンドの開始位置はロボットの動作の開始位置になります。
注:コンベヤトラッキングモジュールの移動コマンドは、関節移動にすることはできません。
コンベヤトラッキングコマンドパラメータの設定:
円形コンベヤトラッキングコマンドには次のパラメータが含まれています。
1パルス当りの移動量の計算:1パルス当りの移動量とは、エンコーダから送られる1パルスに応じてコンベアが回転する角度のことで、エンコーダが1回転したときにコンベアが回転する角度から求めることができます。(パルス数はModbusで読み取ることができます。)1パルス当りの移動量の計算式は以下の通りです。
1パルス当りの移動量=角度(°)/パルス数(cnt)
末端ツールの姿勢変更の確認:
- 「エンドツールの姿勢変更」オプションが選択されている場合、円形コンベヤトラッキング中に、末端ツールもコンベヤに追従してコンベアの回転軸を中心に回転します。つまり、現在のユーザー座標系における末端ツールの姿勢は変化することを意味します。
- 「エンドツールの姿勢変更」オプションを選択しない場合、円形コンベヤトラッキング中に、現在のユーザー座標系における末端ツールの姿勢は変更しません。
コンベアベルトの中心座標系の較正:コンベアベルトの中心座標系は、コンベア上の同一円上にある3点 (P1、P2、P3)の位置座標によって決定されます。
P1、P2、P3の位置較正は、3点の位置をティーチングするか、3点の座標を直接入力することで行えます。
ご注意:P1、P2、P3はコンベアの回転方向に従って順次選択する必要があり、その位置座標はワールド座標系を基準にする必要があります。
「3点位置を教示」を選択した場合、以下の手順に従って円形コンベヤを較正します。
- コンベア上のポイントPを決定し、ポイントPがロボットの動作範囲に入るようにベルトを回転させます。
- コマンドをクリックして、円形コンベヤトラッキング設定設定画面に入り、P1をクリックして、運動制御画面に入ります。この画面でロボットの動作を制御し、ロボットツールの末端がPと重ねた後(このときのユーザー座標系は「ワールド座標系」である必要があることに注意してください。)、「確定」をクリックして、P1の較正が完了します。
- ロボットツールを持ち上げて、コンベアベルトをコンベア移動方向に一定角度回転させます。
- 円形コンベヤトラッキング設定画面でP2をクリックし、運動制御画面に入ります。この画面でロボットの動作を再度制御し、ロボットツールの末端がPと重ねた後(このときのユーザー座標系は「ワールド座標系」である必要があることに注意してください。)、「確定」をクリックして、P2の較正が完了します。
- ロボットツールを再度持ち上げて、コンベアベルトをコンベア移動方向に一定角度回転させます。
- 円形コンベヤトラッキング設定画面でP3をクリックし、運動制御画面に入ります。この画面でロボットの動作を再度制御し、ロボットツールの末端がPと重ねた後(このときのユーザー座標系は「ワールド座標系」である必要があることに注意してください。)、「確定」をクリックして、P3の較正が完了します。
- 円形コンベヤトラッキング設定画面で「確定」をクリックし、コンベアベルトの中心座標系の較正が完了します。
**トラッキング補正精度:**実際の位置とティーチング位置との誤差を補正するために使用され、範囲は±20°です。使用法:実際のトラッキング位置とティーチング位置との差を測定し、「トラッキング精度補正」の後の入力ボックスにその値を入力します。
**ドラッキング最大距離:**ロボット移動の初期ポイントからエンドポイントまでの距離です。ロボットがコンベヤ範囲を超えたり、特異点に到達したりしないように、ロボットの末端の移動範囲を制限するために使用されます。範囲は1~360°です。
使用法:実際のコンベヤの長さ、ロボット移動の初期ポイントとエンドポイント、ロボットの動作範囲に基づいてパラメータ値を決定し、「トラッキング最大距離」の前のチェックボックスにチェックを入れ、 「トラッキング最大距離」の後に入力ボックスに範囲値を入力します。ロボットがこの制限を超えると、その移動は停止します。
**他の機能の追加:**実際の需要に応じて他のコマンドをコンベヤトラッキングコマンドボックスにドラッグし、ロボットがコンベヤの移動をトラッキングしながら他の動作を実行したり、資材をつかんだりさせることができます。
注:コンベヤトラッキングモジュールの移動コマンドは、関節移動にすることはできません。

動的円形コンベヤトラッキング

動的円形コンベヤトラッキングは、円形コンベヤトラッキングに基づき、コンベヤP1、P2、P3の設定方法を変数割り当て方式に変更するものです。即ち、位置変数または配列変数をコンベヤのP1、P2、P3として楕円形のボックスにドラッグします。その他の設定手順は、円形コンベヤトラッキングの場合と同じです。

コンベヤキューデジタル入力オン

このコマンドは、コンベヤの高速移動によりロボットの各資材の処理時間の不足による資材の漏れを防ぐために、コンベヤ上の資材の位置を取得して保存するものです。このコマンドは「コンベヤキューの値を取得」と組み合わせて使用する必要があります。このコマンドを使用すると、コンベヤ上の資材位置情報がコントローラに記録され、プログラムが「コンベヤキューの値を取得」コマンドを実行した場合、保存された資材位置情報が保存の順番で取得されます。
デジタル入力元は、資材情報を識別するセンサーまたは視覚デバイスに接続されたI/Oインターフェースです。
例:コンベヤに4つの資材を置き、カメラで撮影して各資材の位置を取得した後、ロボットが資材の位置を読み取り、資材をピックアップして指定された場所に置きます。

コンベヤキューの値の取得

このコマンドは、保存されたコンベヤ資材の位置情報を読み取るものです。
コンベヤキュークリア

このコマンドは、保存されたコンベヤの資料の位置情報をクリアするものです。
コマンドの折りたたみ

折りたたみたいコマンドをこのコマンド内にドラッグすることで1つのコマンドに折りたたむことができます。
例:以下のコマンドを折りたたみます。

出力されるログのタイプとログの内容

このコマンドを使用することで、ユーザーはログの内容をカスタマイズで出力できます。コマンドのドロップダウンリストから、メッセージ、警告、エラーという三つのタイプからログのタイプを選択することができます。ログの内容のところに値を入力するか、文字列変数をドラッグすることができます。出力されたログの内容をAppのログ情報で確認することができます。
例:指定した位置に到達したら、ログ内容pos1、pos2を出力します。

プログラムの中止または一時停止

コマンドのドロップダウンリストから一時停止または中止を選択することができます。プログラムの任意の位置にこのコマンドを追加して、プログラムをこの位置で中止または一時停止させることができます。
マルチスレッドコマンド
プログラムを実行

このコマンドはメインプログラム内で他のプログラムを呼び出すために使用され、呼び出されるプログラムはメインスレッドまたはサブスレッドに設定できます。「メインスレッド」に設定される場合、メインプログラムはこのコマンドで指定されたプログラムファイルの実行に移行し、その実行が完了した後にメインプログラムに戻って次のコマンドの実行を続行します。すなわち逐次実行を行います。「サブスレッド」に設定される場合、メインプログラムがこのコマンドを実行すると、独立した並列スレッドを作成し、そのスレッドにコマンドで指定されたプログラムファイルを同時に実行させ、メインプログラムに戻って次のコマンドの実行を続行します。すなわち並列実行を行います。メインスレッドと並行して実行するサブスレッドは最大5つまで作成でき、メインスレッドが終了するとサブスレッドも終了します。
カスタマイズを選択する場合、白いボックスに呼び出し元のプログラムファイルのパスを入力てください。
例:以下の通り、1番目のコマンドが231というプログラムファイルをメインスレッドとして実行し、2番目のコマンドがサブスレッド1というプログラムファイルをサブスレッドとして実行します。

スレッド操作

スレッド操作は待機と破棄の2種類があります。
待機:このコマンドを実行すると、コマンド内のプログラムの実行が完了するまで待ってから、その下のプログラムを実行します。
破棄:このコマンドを実行すると、コマンド内のプログラムの実行が中止され、その下のプログラムを引き続き実行します。
例1:ロボットがAに移動した後、サブスレッド1を実行すると同時にBに移動し、サブスレッド1の完了を待ってCに移動します。

例2:ロボットがAに移動した後、サブスレッド1を実行すると同時にBに移動し、サブスレッド1の実行を中止し、Cに移動します。

スレッドミューテックスのサポート

メインプログラム内に複数のサブプログラムがあり、異なるプログラムが同じコマンドがある場合、スレッドミューテックスコマンドを使用して、異なるコマンド間の競合を防ぐことができます。同じコマンドをスレッドミューテックスボックスに入れることで、同じコマンドが同時に実行され、プログラムエラーの原因となることを防ぐことができます。同じコマンドが実行される順番について、どのコマンドが最初に実行されたとしても、実行中のコマンドが完了するまで他の同じコマンドの実行を一時停止します。
注: スレッドミューテックスコマンドは変数に対してのみ有効です。
例:メインスレッドにサブスレッド1を挿入し、サブスレッド1にもシステム変数ABCの設定が含まれている場合、競合を避けるために、システム変数ABCの設定をスレッドミューテックスコマンドボックスに入れることができます。

振動抑制

注:この命令はデフォルトでは有効になっていません。JAKAの技術者に連絡して振動抑制機能を有効にした後で使用できます。
ロボットのエンドツールが長いために振動が発生する場合、この命令を使用して振動を抑制できます。周波数範囲は 0~20 Hz です。
計算コマンド
演算子

足し算(+)、引き算(-)、掛け算(*)、割り算(/)、剰余(%)、べき乗(**) の6つの計算方法が用意されています。
数学関数計算

sin、cos、tan、arcsin、arccos、arctan、ネイピア数、自然対数、切り上げ、切り捨て、四捨五入、絶対値、平方根を計算するための数学関数が提供されています。
比較演算子

比較演算子として、未満、等しい、超える、等しくない、以下、以上があり、条件が満たされた場合に結果を真として返します。
AND

菱形のボックス内の両方の条件ともが満たされた場合、返される結果は真になります。
OR

菱形のボックス内の両方の条件ともが満たされた場合、またはどちらかが満たされた場合、返される結果は真になります。
XOR

菱形のボックス内の両方の条件のうち1つだけが満たされた場合、返される結果は真になります。
NOT

菱形のボックス内の条件が満たされない場合、返される結果は真になります。
位置計算
加算

2つの位置を加算します。
減算

2つの位置を減算します。
逆変換

行列の逆行列を求めます。デカルト座標で位置を計算します。
例:ポイントPを[10,10,10,10,10,10]とすると、その逆変換の位置は[-10,-10,-10,10,-10,-10]となります。
位置変更

ロボットの開始姿勢と開始姿勢に対する増分変換として、位置変数またはティーチングポイントをドラッグします。コマンドの戻り値は変換の結果となります。
注:デカルト座標で位置を計算します。
位置距離

位置変数またはティーチングポイントをドラッグします。コマンドの戻り値は2つの姿勢間の距離となります。
補間点

このコマンドは与えられた係数(範囲は0-1)に従って2点間の補間点を算出します。位置変数またはティーチングポイントをドラッグすることができます。コマンドの戻り値は補間点の位置となります。
例えば、係数を0.5や0.25に設定した場合、補間点は下図の赤い点になります。

0.5 0.25
変換面

このコマンドは、基準点をZ(X/Y)軸を中心に回転させ、次にX(Y/Z)軸に沿って平行移動させ、最後にY(Z/X)軸に沿って平行移動させることによって、特定の点をXY (YZ/ZX) 平面内に変換させるために使用されます。基準点には位置変数、配列変数、ティーチングポイントをドラッグすることができ、コマンドの戻り値は変換された姿勢となります。
例:まずPをユーザー座標系の方向に沿って[0,10,10]平行移動させ、次にPをユーザー座標系のX軸を中心に10°回転させます。

逆運動学(運動学)

逆運動学デカルト値
このコマンドを使用して、デカルト空間での位置を入力し、関節角度値を算出できます。
運動学関節角度値
このコマンドを使用して、関節角度値を入力し、デカルト空間での位置を算出できます。
文字コマンド
文字列命令でサポートされているエスケープ文字は、\、'、"、\n、\t、\rで、それぞれバックスラッシュ記号、一重引用符、二重引用符、改行、水平タブ、キャリッジリターンに対応します。
文字列の連結

意味: ドラッグされた変数または入力文字列を特定の順序で連結します。
使用法:このコマンドをクリックして、数(楕円形の白いボックスの数、範囲: 1~8)と必要な配列の区切り文字を編集し、変数をドラッグするか文字列を入力することができます。このコマンドは連結された文字列を返すことができ、戻り値は文字列変数となります。
例: 次の変数A=8888、B="Hello"、C=[1,2,3,4,5,6] を連結すると、返される結果は次のようになります:
A: 8888 B: Hello C: 1,2,3,4,5,6 サンプルプログラムは以下のとおりです。


文字列や配列の長さ ()

意味:文字列または配列の長さを計算し、その長さの値を返します。
使用法:文字列変数、配列変数をドラッグインするか、文字列を入力すると、戻り値はその長さとなります。
例:文字列変数JAKA_AMAZINGの長さ12と配列変数[1,2,3,4,5,6]の長さ6をホストコンピュータが取得する必要がある場合、サンプルプログラムは以下のとおりです。

文字列を比較

意味:ACSIIコードに従って、2つの文字列のサイズを比較します。
使用法: 文字列変数をドラッグするか、文字列値str1とstr2を入力して、str1=str2の場合は0を返し、str1<str2の場合は負の値を返し、str1>str2の場合は正の値を返します。
例:文字列変数str1とstr2のサイズを比較する場合、戻り値は負の値であるべき場合、サンプルプログラムは以下のとおりです。


文字列をフォーマット化して出力

意味:指定されたデータを、指定された形式の文字列として出力します。
使用法:このコマンドをクリックして、数(楕円形の白いボックスの数、範囲:1~8)と必要な配列の区切り文字を編集することができ、変数をドラッグするか値を入力することもできます。このコマンドはフォーマットされた文字列を返すことができ、戻り値は文字列変数となります。
例: ロボットの関連情報を取得します。
Current joint position: [0,90,0,90,180,0] End load: [0,0,0,0] サンプルプログラムは以下のとおりです。


フォーマット文字列の入力

意味: 特定の形式の文字列を照合し、一致したデータを指定された変数に入力します。
使用法:このコマンドをクリックして、数(楕円形の白いボックスの数、範囲:1~8)と必要な配列の区切り文字を編集することができ、指定された変数をドラッグするか値を入力することもできます。指定された変数で必要な値抽出することができます。フォーマットされた結果変数は、整数型、浮動小数点型、文字列型の変数、または定数に対応しています。
例:文字列変数「End load is:0,0,0」の配列[0,0,0]を抽出します。サンプルプログラムは以下のとおりです。


配列を文字列に置換

意味:配列を特定の形式の文字列変数に変換します。
使用法:「配列」の後に、変換したい配列型の変数をドラッグします。区切り文字に文字列区切り文字を入力できます。
例:配列変数[1,2,3,4,5,6]を「1a2a3a4a5a6」に変換したい場合、サンプルプログラムは以下のとおりです。

文字列を配列に変換

意味: 特定の形式の文字列を配列変数に変換します。
使用法:「文字列」の後に、配列型に変換したい文字列変数をドラッグします。区切り文字に文字列区切り文字を入力できます。
例:文字列変数「1a2a3a4a5a6」を配列変数[1,2,3,4,5,6]に変換したい場合、サンプルプログラムは以下のとおりです。

取得サブスクリプト
取得サブスクリプトを設定することで、配列内の特定の変数にアクセスできます。また、ステップ値を設定することで、特定の配列内の複数の変数に同時にアクセスできます。

意味:配列変数の要素にアクセスします。
使用法:アクセスしたい配列変数をドラッグすること、またはアクセスしたい配列のサブスクリプトの値を入力することができます。サブスクリプトのインデックスは0から始まり、順に従って設定します。コマンドの戻り値は、アクセスされた要素です。
例:配列変数[1,2,3,4,5,6]のサブスクリプトが3の値にアクセスする場合、戻り値は4となります。サンプルプログラムは以下のとおりです。


意味:必要なサブスクリプトとステップ値に従って、配列変数の要素にアクセスします。
使用法:アクセスしたい配列変数をドラッグすること、またはアクセスしたい配列のサブスクリプトの値とステップ値を入力することができます。サブスクリプトのインデックスは0から始まり、順に従って設定します。下标の範囲は「開始下标」を含み、「終了下标」は含まないことを意味しており、つまり値の範囲は[開始下标, 終了下标)です。コマンドの戻り値は、アクセスされた部分配列となります。
例:配列変数[1,2,3,4,5,6]のサブスクリプトが0、2、4の値にアクセスする場合、戻り値は[1,3,5]となります。サンプルプログラムは以下のとおりです。

配列要素の設定

意味:配列の要素の値を設定します。
使用法:設定したい配列変数をドラッグすること、または設定したい配列要素のサブスクリプトの値を入力することができます。サブスクリプトのインデックスは0から始まり、順に従って設定します。
例: 配列変数[1,2,3,4,5,6]のサブスクリプトが0の値を888に設定したい、つまり配列変数は [888,2,3,4,5,6] にしたい場合のサンプルプログラムは以下のとおりです。

通信コマンド
SOCKETオープン

意味:TCP clientを作成し、TCP serverとの通信を確立します。
使用法:ドロップダウンリストから指定されたSOCKETIDを選択し、TCP serverのIPアドレスとポート番号を入力します。このコマンドを実行すると、TCP client(ロボット)とTCP server間の接続が確立されます。
SOCKETオープン、結果を返す

意味:TCP clientを作成し、TCP serverとの通信を確立し、Socketハンドルを返します。
使用法:ドロップダウンリストから指定されたSOCKETIDを選択し、TCP serverのIPアドレスとポート番号を入力します。このコマンドを実行すると、TCP client(ロボット)とTCP server間の接続が確立されます。接続が成功した場合の戻り値が0より大きい整数値になり、接続が失敗した場合の戻り値が-1になります。
SOCKETをオフに

意味:指定されたSOCKET通信の接続を切断します。
使用法:ドロップダウンリストから指定されたSOCKET IDを選択します。このコマンドを実行すると指定されたSOCKET通信の接続が切断されます。
SOCKET送信

意味:コントローラがSOCKET通信を通じてTCP serverに変数を送信できるようにします。
使用法:ドロップダウンリストから指定された SOCKET IDを選択し、変数をドラッグするか、値を入力して、このコマンドを実行すると、TCP serverは変数の内容を受信します。
注:送信の変数について、数値型、文字列型、配列型に対応しており、送信データの形式には特別な要件はないが、Unicode文字に対応していません。
SOCKET送信、結果を返す

意味:コントローラがSOCKET通信を通じてTCP serverに変数を送信できるようにします。
使用法:ドロップダウンリストから指定されたSOCKET IDを選択し、変数をドラッグするか、値を入力して、このコマンドを実行すると、TCP Serverは変数の内容を受信します。送信が成功した場合の戻り値がデータの長さになり、送信が失敗した場合の戻り値が-1になります。
例:SOCKETサーバーに接続し、変数A、B、Cを受信し、結果を返します。サンプルプログラムは以下のとおりです。

SOCKET変数受信

意味:変数を受信するまで()秒を待ちます。コントローラはデータリクエスト文字列を送信した後、受信待ち状態に入ります。
使用法:ドロップダウンリストから指定されたSOCKET IDを選択し、受信したい変数のタイプをドラッグし、変数が()秒以内に受信される、または受信されないが待ち時間が()秒を超えた場合、プログラムは実行を継続します。(待ち時間が0秒に設定された場合、ロボットは条件が満たされるまで待ち続けます。)Unicode文字を含む変数名には対応していません。
注:受信の変数について、数値型、文字列型、配列型に対応しており、サーバーは以下の形式でデータを送信します。 数値型:<変数名><データ内容> 文字列型:<変数名><"データ内容"> 配列型:<変数名><[データ内容]>
SOCKET配列受信

意味:ロボットは、長さが( )の配列変数を受信するまで( )秒の間に動作を停止します。コントローラはデータリクエスト文字列を送信した後、受信待ち状態に入ります。
使用法: ドロップダウンリストから指定されたSOCKET IDを選択し、設定した長さ以下の配列が設定された時間内に受信された場合、戻り値は受信した配列になります。欠落した要素はデフォルトで FLOAT_MAX, FLOAT_MAX = 340282346638528859811704183484516925440 です。受信した配列が設定された長さより大きい場合、Appはエラーを報告し、プログラムを停止します。配列が時間内に受信されない場合、戻り値は空の配列となり、Appはエラーを報告しないで、プログラムは継続して実行されます。時間を0に設定すると、最大待機時間65536秒までに待つことになります。この時間を超えると、タイムアウトとして扱われます。
注:サーバデータ送信フォーマット:[n1, n2, n3...]
例:SOCKETサーバーに接続し、配列変数Cを受信し、結果を返します。配列の長さは4です。

SOCKETデータ受信

意味:ロボットはデータを受信するまで ( ) 秒間動作を停止します。他の受信コマンドと異なり、コントローラはこのコマンドの実行時に追加のデータを送信しません。
使用法:ドロップダウンリストから指定されたSOCKET IDを選択し、データが()秒以内に受信される、または受信されないが待ち時間が()秒を超えた場合、プログラムは実行を継続します。(待ち時間が0秒に設定された場合、ロボットは条件が満たされるまで待ち続けます。)正常に受信した場合、関数は受信した文字列を返します。受信に失敗した場合、またはタイムアウトした場合、関数は空の文字列を返します。
注:受信の変数について、文字列型に対応しており、サーバー側が送信するデータの形式には特別な要件はないが、Unicode文字に対応していません。
例:SOCKETサーバーに接続し、プログラム変数Bを受信し、結果を返します。

信号量をリフレッシュする

意味: 【設定】→【ハードウェアと通信】→【末端I/O】で設定されたセマフォをリフレッシュします。
使用法:コマンドのドロップダウンリストでリフレッシュするセマフォを選択し、リフレッシュ頻度(単位:Hz)を入力します。
- リフレッシュ頻度:バスの帯域幅によって制限され、すべての信号のリフレッシュ頻度の合計は125Hzを超えず、システム内部で自動的にスケジューリングされます。
信号量状態を取得する

意味: セマフォの値を取得します。
使用法:コマンドのドロップダウンリストで希望のセマフォを選択し、コマンドの戻り値はセマフォの現在の値となります。
Modbusコマンド送信

意味:TIO外部デバイスに対するリアルタイム制御コマンドを送信します。
使用法: コマンドのドロップダウンリストから使用するTIOチャンネルを選択し、ユーザーはバイト配列に16進のデータコマンドを入力することができます。システムが自動的にチェックコードを追加するため、ユーザーが自ら追加する必要はありません。
例:デバイスの位置を500に設定し、設定された位置の情報を取得するサンプルプログラムは以下のとおりです。

サブプログラムコマンド
サブプログラム

コマンド型サブプログラム
意味:コマンドシーケンスで比較的独立したプログラムセグメントを構成し、このセグメントをプログラムに追加すると、プログラムはこのセグメントのコマンドシーケンスを実行し、実行が完了した後、元の位置に戻り、プログラムを引き続き実行します。この比較的独立したプログラムセグメントがサブプログラムです。
使用法:コマンド編集型のサブプログラムを追加し、サブプログラム内に独立したプログラムセグメントを編集して保存します。このサブプログラムはいつでもメインプログラムに追加されることができ、再利用もできます。
スクリプト型サブプログラム
意味:サブプログラムの内容は所定の形式のスクリプト構文です。
使用法:スクリプト編集型のサブプログラムを追加し、サブプログラム内に所定の形式のスクリプト構文を編集して保存します。このサブプログラムはいつでもメインプログラムに追加されることができ、再利用もできます。プログラミング要件の詳細については、JAKAロボットプログラミングマニュアルをご参照ください。
サブプログラムの操作
| アイコン | 名称 | 説明 |
|---|---|---|
![]() | サブプログラム追加 | サブプログラム欄タイトルの右側にある追加ボタンをクリックし、追加したいサブプログラムのタイプを選択し、「確定」をクリックして追加を完了します。追加が完了すると、プログラミングエリアは自動的にサブプログラムに遷移します。 |
![]() | サブプログラム削除 | サブプログラム欄タイトルの右側にある削除ボタンをクリックし、削除したいサブプログラムの右側にあるゴミ箱アイコンをクリックし、「確定」をクリックします。 |
![]() | サブプログラムを終了します | 終了ボタンをクリックすると、サブプログラム編集を終了し、メインプログラム画面に戻ります。 |
サブプログラム編集
サブプログラムコマンド欄またはプログラム内で、編集したいサブプログラムコマンドボックスをクリックして、サブプログラム編集画面に入ります。サブプログラムの編集が完了したら、メインプログラムでサブプログラムが正しく変更されていることを確認するため、メインプログラムを再度保存する必要があります。
変数コマンド
| アイコン | 名称 | 説明 |
|---|---|---|
![]() | 変数追加 | 変数欄タイトルの右側にある追加ボタンをクリックし、追加したい変数のタイプを選択し、「確定」をクリックして変数設定画面に入り、必要なパラメータを記入し、「確定」をクリックして変数の追加を完了します。追加できる変数には、システム変数、プログラム変数、速度変数、位置変数の4種類があります。 |
![]() | 変数削除 | 変数欄タイトルの右側にある削除ボタンをクリックし、削除したい変数の右側にあるゴミ箱アイコンをクリックし、「確定」をクリックします。 |
![]() | 変数のスクリーニング | 変数欄タイトルの右側にあるチェックボックスをクリックして、異なるタイプの変数を表示または非表示にすることができます。デフォルトでは、すべてのタイプの変数が表示されます。 |
![]() | 変数パラメータの編集 | 変数コマンド欄またはプログラム内で、編集したい変数ボックスをクリックして、変数編集画面に入ります。変数の編集が完了したら、メインプログラムで変数が正しく変更されていることを確認するため、メインプログラムを再度保存する必要があります。 |
システム変数

システム変数を作成するには2つの方法があります。本章の「変数追加」で説明した方法に加えて、【設定】→【プログラム設定】→【システム変数】でシステム変数を作成し、使用することができます。システム変数はコントローラーに存在する変数で、ロボットの電源を切っても、プログラムを削除してもクリアされず、どのプログラムからも呼び出すことができます。システム変数のタイプは数値型です。
プログラム変数

プログラム変数は、現在開いているプログラムで作成され使用される変数です。この変数は現在開いているプログラムでのみ使用でき、他のプログラムでは使用できません。プログラムが削除されると、そのプログラムで作成されたプログラム変数も削除されます。プログラム変数には、数値型、文字列型、配列型の3種類があります。
プログラム変数名は中国語形式に対応していますが、第三者との通信ではエンコーディングにより中国語の変数名が文字化けすることがありますのでご注意ください。
注:文字列変数に二重引用符がある場合は、二重引用符の前にバックスラッシュを追加する必要があります。例えば、「hello」を表示しようとする場合は、\“hello”\と入力する必要があります。
速度変数

速度変数は特殊な変数で、移動コマンド内の全体速度コマンドによって呼び出されることができます。プログラムで制御されているロボットの移動速度全体を実際の作業状況に応じて制御することができます。全体速度コマンドによって速度変数が呼び出された場合、このコマンドの後のロボットの速度は、現在呼び出されている速度変数で選択されている速度に従うことになり、移動コマンドでの速度設定は無効になります。プログラム変数と同様に、速度変数は現在開いているプログラムでのみ使用でき、他のプログラムでは使用できません。
注:速度変数はSOCKETコマンドを通じて送信できます。送信される内容は、関節速度、関節加速度、直線速度および直線加速度です。
位置変数

位置変数はロボットのデカルト座標と関節位置を設定するために使用でき、テキストボックスをクリックして直接入力するか、「編集」をクリックして手動操作画面に入り、ロボットを手動で制御することができます。
「リアルタイム位置更新」にチェックを入れると、デカルト位置または関節位置を編集した後、ロボットは自動的に順運動学または逆運動学を解き、位置データを更新します。 位置変数を動作命令に配置すると、ロボットはその動作命令に従って変数に格納されたポイント情報を呼び出して動作します。
プログラム変数と同様に、位置変数は現在開いているプログラム内でのみ使用でき、他のプログラムでは使用できません。
注:
- 位置変数は特定の変数であり、動作命令または位置計算命令に適用されます。他の命令から呼び出すことはできません。
- デカルト位置を設定する際は、座標系の選択に注意してください。設定した座標系が実際のものと一致しない場合、ロボットのポイント位置にずれが生じ、安全上のリスクが発生する可能性があります。

楕円形の白い入力ボックスには、固定値や変数、SOCKETなどで取得した値を入力し、変数にデータを割り当てることができます。
注:配列変数全体に値を割り当てる場合は、それぞれの値の前後に[]を付ける必要があります。
文字列に値を割り当てる場合は、特定の内容の前後に""(英語の二重引用符)を付ける必要があります。
拡張コマンド
拡張コマンドは、JAKAフォースコントロール製品と組み合わせて使用する必要があります。
センサーのオン/オフ

センサーをオンまたはオフにします。JAKA Sシリーズロボットを使用する場合、デフォルトでは、ロボットの電源をオンにするとセンサーが自動的にオンになり、手動でオンにする必要はありません。
センサーのゼロ点校正

センサーのゼロ点校正を行います。この命令は約0.5秒間ブロックされます。この間、センサーが負荷の重力以外の外力を受けていないことを確認してください。これにより、ゼロ点補正の結果が正確になります。また、長時間プログラムを実行する場合は、定期的にセンサーのゼロ点補正を行うことをお勧めします。長時間の稼働による温度上昇などでセンサーのゼロ点が変動し、測定データの精度が低下するのを防ぐためです。
フォースコントロール座標系設定

- 意味:ツールドラッグ以外に他のすべての力制御機能の参照座標系を設定する場合は、座標系の方向がセンサーの方向と一致していることを確保する必要があります。ツール座標系とワールド座標系を選択することができます。
- 使用法:ツール座標系を選択した場合、ロボットの力制御座標系は現在選択されているツール座標系と一致します。ワールド座標系を選択した場合、力制御座標系は現在選択されているユーザ座標系と一致します。
恒常力コンプライアンス制御
恒常力コンプライアンス機能により、ロボット末端と外部環境との間の接触力を設定された恒常力の値の付近に保つことができます。
恒常力コンプライアンス制御のオン/オフ

恒常力コンプライアンスモードをオンまたはオフにします。
注:
- 「定力制御の開始」と「定力制御の終了」はペアで使用してください。定力制御を開始したまま、終了しないままにしないでください。
- 「定力制御の開始」と「定力制御の終了」の間の動作命令には直線運動を推奨し、高い力制御精度を達成するため、速度は 100mm/s 未満に設定することをお勧めします。
- 定力制御機能を開始すると、チェックを入れた方向において、ロボットが実際に到達する位置は指令位置と異なります。実際の位置は、動作中にその方向に加わる外力の影響を受けます。
恒常力コンプライアンスパラメータ設定

意味:ロボットのエンドエフェクタと外部環境との間の接触力の力値、剛性、反発などの制御パラメータを各方向に設定します。設定方法は次のとおりです。
方法:恒常力コンプライアンス機能をオンにする必要がある方向を選択し、当該方向の剛性、目標となる力および反発を設定し、「反発データを表示」の前のチェックボックスにチェックを入れ、反発データのリストを表示します。デフォルトでは反発データは表示されません。
**剛性:**ロボットのエンドエフェクタが外部環境に対して示す剛性に影響します。このパラメータが大きいほど、ロボットの末端はより剛性が高くなり、外力に対する応答は鈍くなりますが、ロボットシステムはより安定します。
- Fx, Fy, Fz は X, Y, Z 各方向の並進に対応し、単位は ×8 N·s/m です。
- Mx, My, Mz は X, Y, Z 各方向の回転に対応し、単位は ×16 Nm·s/π です。
プログラム実行時、ロボット末端のツールと外部環境との接触が硬いほど、剛性は大きく設定する必要があります。 Fx, Fy, Fz は多くのシーンで 30~150 の間、Mx, My, Mz は 1~30 の間で設定します。ただし、用途によってはこの範囲を超え、数千に達することもあります。
調整時は、大きめの値からテストすることをお勧めします。バウンドや振動が発生しない場合は徐々に剛性を下げ、逆に発生する場合は剛性を上げてください。
**反発:**反発を設定すると、ロボットにバネのような効果を持たせることができます。すなわち、ロボットの実際の位置と指令軌跡位置との間にバネを仮想的に配置し、ロボットを指令軌跡から押し離せるようにします。離れるほど大きな外力が必要になり、外力を取り除くとロボットは徐々に指令軌跡に戻ります。
デフォルトの反発値は 0(機能無効)で、最大値は 100 です。反発値を大きく設定するほど、押し離すために必要な外力は大きくなり、外力除去後にロボットが指令軌跡に戻る速度も速くなります。
目標となる力:ロボットの末端と外部環境との間の目標接触力です。
注:
- 「定力制御の開始」命令の前に、「力制御座標系の設定」命令と「定力制御パラメータの設定」命令を追加する必要があります。追加しないとエラーが発生する可能性があります。
- いかなる状況でも、剛性の設定値を 0 にすることはできません。一般的に Fx、Fy、Fz は 10 未満にしないでください。Mx、My、Mz は 0.5 未満にしないでください。
- 剛性と目標力には直接的な関係はなく、それぞれ個別に設定します。目標力は通常、実際のアプリケーション要件に依存し、剛性はロボットのエンドエフェクタと外部環境との接触の硬さに依存します。

例:ロボットが下方に移動し、水平な机の表面に近づく。Fz方向で机の表面に接触し、ロボットのエンドエフェクタと机表面との接触力を約5Nに制御する。同時に、ロボットは xy 方向に直線運動を行う。
注:ポイント「Down」は「Start point」と比較して Z 方向のみ低くなっているが、このポイントは依然として接触する平面よりも高い位置にあり、接触しない。ポイント「Target point」はポイント「Down」と比較して xy 方向のみ変化している。ポイント「Up」はポイント「Target point」と同じポイントに設定されている(定力制御を開始すると、ロボットは自動的に下方の平面に接触するため、ティーチング時に平面に接触させる必要はない。定力制御を終了すると、ロボットの Z 方向の高さは実際にはポイント「Target point」の設定位置よりも低くなる)。


移動終了条件

- 使用法:監視する方向にチェックを入れ、上限値または下限値を設定します。Fx、Fy、FzはX、Y、Zの3方向の変位に対応し、Mx、My、MzはX、Y、Zの3方向の回転に対応します。接触の外力は下限値未満または上限値を超えた場合に、移動終了条件が満たされたこととなります。この命令は、直後の動作命令を監視します。動作終了条件がトリガーされると、ロボットは監視対象の動作命令を直ちにスキップし、次の行の命令を実行します。
注:
- 同じ方向で上限と下限の両方をチェックを入れる場合は、下限の値を上限の値よりも小さくしなければなりません。通常は、下限の値は負の値に設定するものとする。
- 動作終了条件コマンドを使用する場合、ロボットの移動速度は 300mm/s、加速度は 300mm/s2を超えてはなりません。ロボットに負荷がかかる場合は、より低い速度と加速度を設定する必要があります。なお、活用シーンによっては、ロボットが力を検出した後に減速する時間を十分に確保するために、より低い移動速度と加速度を設定する必要がある場合もあります。そうしないと、ハードウェアの破損を招く恐れがあります。

例:ロボットがZ方向で上下に往復運動をする場合、下降中に力を検出し、設定された制限値を超えると直ちに上昇します。













