前の項目で示したように、プログラムを右クリックするかプログラムメニューから新しい指示が追加できます。
ヒント: 特定の指示を選択すれば、選択済みの指示の後に新しい指示を追加します。
ヒント:指示を並び替える為に、プログラム内または異なるプログラムに指示がドラッグアンドドロップできます。
この項目では、オフラインプログラミング用にRoboDKグラフィカルユーザーインターフェイスがサポートする指示について説明します。
プログラム➔
関節移動の指示を選択して、新しい関節運動の指示が追加できます。または、ツールバーにある同様のボタンを選択します。
指示を追加する前にターゲットを選択しない限り、移動指示とリンクされた新しいターゲットを作成します。そのターゲットを動かすと、ロボットの動きも変わります。
これがプログラムに追加される最初の指示である場合、移動指示の前に2つ指示がさらに追加されます:参照系を選択とツールの座標系を選択。これにより、プログラムが移動指示に到達した時、ロボットが作成された新しいターゲットと同じ参照系とツールの座標系を使用していることを保証します。
メモ:移動指示を右クリックして、ターゲット設定…(F3)を選択すれば、ターゲットの設定メニューが開きます。ターゲットは、このウィンドウまたは3Dビューから変更できます。

プログラム➔
直線移動の指示を選択して、新しい線運動の指示が追加できます。または、ツールバーにある同様のボタンを選択します。
指示を追加する前にターゲットを選択しない限り、移動指示とリンクされた新しいターゲットを作成します。そのターゲットを動かすと、ロボットの動きも変わります。
関節と直線移動は似たような動作をする為、二つのタイプの間を簡単に切り替えることができます。
関節移動の指示同様に、これがプログラムに追加される最初の指示である場合、移動指示の前に2つ指示がさらに追加されます:参照系を選択とツールの座標系を選択。
重要:各プログラムの最初の動きは、間節ターゲットを使う関節移動の使用をお勧めします。これにより、しっかり最初から適切な構成を設定し、シミュレーションと同じように実際のロボットが動くことを確かめます。
関節移動と違って直線移動は、ロボットの特異点と軸の限界に敏感です。例えば、6軸ロボットは、直線移動の途中で特異点を越えることはできません。次の画像は、5番目の関節が(0度の)特異点に近すぎることを示しています。[…]代わりに関節移動の使用を考えましょう。次の画像で示すように。

直線移動が絶対に必要でない場合は、移動命令を右クリックして、関節移動指示に変更しましょう。

あるいは、特異点を回避する為に、ターゲット、TCP、または参照系の位置を変更する必要があります。
プログラム➔
参照系を設定の指示を選択して、使用する参照系を設定します。これにより、後に続く移動指示の為に、コントローラーの参照系とRoboDKロボットの有効な参照系がシミュレーション用に変更されます。つまりは、特定のターゲット(直交座標ターゲット)への移動指示は、最後に設定した参照系を基準に移動します。
参照系の変数はロボットのブランドによって、作業オブジェクト(ABBロボット)、UFRAME(ファナックロボット)、FRAME(Motoman(安川電機)ロボット)、または$BASE(KUKAロボット)と呼ばれます。

メモ:特定のコントローラーは、番号付きの参照系の設定をサポートしています(ファナックやMotoman(安川)コントローラーなど)。その場合は、参照系の名前を数字で終わる事があります(Frame 4と名付けると座標系のインデックスを4に設定します)。
プログラム➔
ツールの座標系を設定して、使用するツールの座標系(TCP)を設定します。これにより、後に続く移動指示の為に、プログラムで指定されたツールの座標系とRoboDKロボットの有効なツールの座標系がシミュレーション用に変更されます。つまりは、特定のターゲット(直交座標ターゲット)への移動指示は、最後に設定したツールの座標系を基準に移動します。
ツールの座標系の変数はロボットのブランドによって、ToolData(ABBロボット)、UTOOL(ファナックロボット)、TOOL(Motoman(安川電機)ロボット)、または$TOOL(KUKAロボット)と呼ばれます。

メモ:特定のコントローラーは、番号付きのツールの座標系の設定をサポートしています(ファナックやMotoman(安川)コントローラーなど)。その場合は、座標系の名前を数字で終わる事があります(Tool 4と名付けるとツールのインデックスを4に設定します)。
プログラム➔
円形移動の指示を選択して、新しい円運動の指示が追加できます。または、ツールバーにある同様のボタンを選択します。
指示を追加する前にターゲットが2つ選択されていない限り、移動指示は新しいターゲットを作成しません。次の画像が示すように、ターゲットを2つ追加し、それらを円形移動の指示にリンクする必要があります。

円形の経路は、ロボットの現在地から始まり、指定された円状の一番目の点(ターゲットリンク1)を通過し、2番目の点(ターゲットリンク2)で終了する円弧です。
重要: 一つの円形指示だけで完全な円を描くことはできません。完全な円は、2つの円形移動に分割する必要があります。
プログラム➔
速度指示の設定を選択して、速度や加速度を変更する新しい指示を追加します。関節空間とデカルト空間で速度と加速度を指定することができます。
プログラム内で特定の速度や加速を課す為、対応する場面を有効にしてください。ロボットの速度は、この指示が実行された瞬間から適用されます。
ロボットの速度は、ロボットパラメータメニューでも変更できます。ロボットをダブルクリックして、パラメータを選択してください。
メモ:すべてのロボットコントローラーが正確に加速度を設定できるわけではありません。
重要:プログラム時間(サイクル時間)を正確に計算するには、適切な速度を設定することが重要です。詳細については、
サイクル時間項目へ。

プログラム➔
メッセージ表示の指示を選択して、ティーチペンダントにメッセージを表示する新しい指示を追加します。

メモ: すべてのロボットコントローラーが、プログラムからティーチペンダントにメッセージの表示をサポートしているわけではありません。その場合、この指示は無視されます。
プログラム➔
一時停止の指示を選択して、一定時間またはオペレーターがプログラムを再開するまで、プログラムを一時停止する新しい指示を追加します。

メモ: 遅延時間を-1に設定して、オペレーターがプログラムを再開するまでプログラムを一時停止します。この場合、指示が自動的に停止に名前付けられます。
重要:デフォルトのシミュレーション比率5の場合、5秒の停止がシミュレーションでは1秒かかります。詳細については、
シミュレーション項目へ。
プログラム➔
プログラムコールの指示を選択して、現在のプログラムからサブプログラムを呼び出し実行する指示を追加します。
デフォルトでは、特定のプログラムへのブロッキングコールですが、コードを挿入に切り替える事により、その指示の位置に固有なコードを入力することができます。これは、特定の場面および特定のコントローラーに役立つ場合があります。
ヒント:プログラムを選択を選択して、テキストフィールドを自動的に入力します。それ以外の場合は、テキストの一致機能で出来るはずです。もしもサブプログラムと指示の名前が一致する場合、このサブプログラムがRoboDKでシミュレートされます。
ヒント: 複数の行を入力すると、複数のプログラムコールの指示が自動的に連なって設定されます。

プログラムコールからスレッド開始に切り替えると、サブプログラムへの非ブロッキングコールをします。この場合、コントローラーが新しいスレッドを開始します。この設定は、特定のコントローラーのみで使用でき、特定の操作でのみに機能します。
ヒント: シミュレーション目的のみで使用されるメインプログラムだけが、スレッド開始の設定を使用する事ができます。これは、複数のプログラムのシミュレーションを同時に開始させる為に有効です(例えば、2つ以上のロボットをシミュレートする場合)。
プログラム➔
I/Oを設定/待つの指示を選択して、デジタル出力(DO)の状態を変更します。デフォルトでは、この指示はデジタル出力を設定に設定されています。この指示は、特定の状態に切り替わる為に、特定のデジタル入力(DI)を待つこともできます。
IO名は数値または名付けられた変数であれば、テキスト値にすることもできます。IO値は、数値(Falseの場合は0、Trueの場合は1)または名付けられた状態の場合はテキスト値です。
メモ: この指示は、一部のロボットコントローラーでアナログ出力(AO)の設定またはアナログ入力(AI)の待つもサポートしています。その場合は、数値の代わりに十進数または特定のテキストで指定できます。

入力が特定の値に変化するまでプログラムの実行を停止するには、デジタル入力を待つに設定します。さらに、ほとんどのロボットコントローラーは、待ち時間が特定の値を超えた場合にエラーを発生させるタイムアウト遅延をサポートしています。この機能を有効にするには、タイムアウト(ms)設定をチェックしてください。

ヒント: 例えば、ロボットのセルに特定のハードウェア(グリッパーやミーリング主軸など)がある場合、デジタル出力(DO)を使用してこの特定のハードウェアを有効にし、特定のデジタル入力(DI)を待ってから専用の状態に切り替えることをお勧めします。
シミュレートされたデジタル入力と出力を変更すると、新しいプロジェクト変数が作成されます。これらの変数の状態を確認するには、プロジェクトを右クリックして、プロジェクトパラメータを選択します。APIを通してこれらの変数を読み取りまたは変更することもできます。
プログラム➔
丸みを設定の指示を選択して、丸め精度を変更します。一連の動きの間の角を滑らかにする為に使用される値。この変更は、プログラム内で実行された瞬間から有効になるため(他の指示と同様に)、この値はプログラムの最初に設定するのが一般的です。
丸めの指示がない場合、ロボットは各動作の終了時に速度が0に到達します(次の動作が前の動作の接線長にある場合を除く)。これにより、高い加速と迅速な速度の変更を引き起こし、各動作の精度が保証されます。
この値は、ブレンド半径(ユニバーサルロボット)、ゾーンデータ(ABBロボット)、CNT / FINE(ファナックロボット)、コーナリング(メカでミックロボット)または$APO.CDIS/$APO.CPTP/アドバンス(KUKAロボット)とも呼ばれます。
メモ:細かい動きを行うには、丸め値を-1に設定してください。つまりは、ロボットは経路の角を丸めません。

ヒント:丸め値が高いほど、経路の角の精度が失われる代わりに、ロボットパス全体で一定の速度が保たれます。各場面によっては、精度と滑らかな速度の間の適切な妥協点を見つけるのが一般的です。
RoboDKのパス精度のテストにより、測定システムでのさまざまな丸め値の影響をよりよく理解できます。
プログラム➔
シミュレーションイベントの指示を選択して、特定のシミュレーションイベントを発動させる指示を追加します。シミュレーションイベントは生成されたコードには影響を与えず、シミュレーション目的のみで使用される特定のイベントを発生させる指示です。
グラフィカルユーザーインターフェイスを使用したシミュレーションイベントで以下が可能になります:
●ロボットツールにオブジェクトを取り付けるまたは外す
●オブジェクトまたはツールを表示または非表示にする
●オブジェクトと参照系の位置を変更する

例えば、ロボットがオブジェクトを掴む為に特定の場所へ移動させてから、オブジェクトを取り付けるイベントによりロボットと一緒にそのオブジェクトを移動させる事ができます。次に、ロボットがオブジェクトを移動させた後に、オブジェクトを取り外すイベントでツールが持っているオブジェクトを残すことができます。

メモ:マクロを使用して特定のイベントをシミュレートすることもできます(プログラミングの経験が必要です)。例えば、APIを使用すると、ピックアンドプレイスシミュレーションの為に特定の場所にランダムにオブジェクトを表示することができます。
メモ:ツールにオブジェクトを取り付ける時、指定された距離の範囲内であれば、最も近いオブジェクトが取り付けられます。この距離はデフォルトで200 mmで、次の場所で変更できます:ツール➔設定➔オブジェクトをロボットツールに取り付ける最大距離。また、デフォルトでは、TCPの位置からオブジェクトの参照までの距離が確認されます。別で、TCPとオブジェクト形状の間の最短距離を確認を選択して、TCPとオブジェクトの立体との距離を使用することもできます。