DUCO プログラムで使用可能な機能(指令)

ロボットプログラムで使用できる機能(指令)の一覧をまとめた。

基本的にはプログラム登録ページでブロック指令を並べて1つのプログラムを完成させる方式で、部分的にDUCOが準備したスクリプトをプログラムの中に組み込むことができる。

簡単な動作ならブロック指令だけでプログラム作成は完了し、より複雑な処理が必要な場合は一部スクリプトで作成、またはすべてスクリプトで作成するなど幅広いスキルのユーザーに使いやすくなっていると思う。

ブロック指令によるプログラミング
スクリプトファイルの読み込み

特徴

スクリプトの使い方はURに近く、関数名や使い方などもURと同じものも多くありURに慣れた方は理解しやすい。後発であり使いやすく考えられている部分もある。

  • スクリプトは一行記述、複数行記述、ファイル読み込みのパターンがあり、慣れた方ならプログラムをすべてスクリプトで記述するという使い方も有効
  • 溶接のウィービングなどで有効な複合動作が1つの指令(ブロックの場合)で行える。
  • 速度最適化や振動抑制最適化機能の有効・無効をプログラム上で切替可能(効果などは未確認)
  • データ送信で必要な各種のデータ変換は不足なく関数が準備されている。
  • プログラムブロックや設定で入力する座標の単位は[mm, degree]であるがスクリプトで入力する単位は[m, rad]と若干分かりずらい。

指令一覧

青字はブロック指令でも同等の機能が使用できる指令

  • Move系
    • movej2 ロボットを現在の姿勢から入力したジョイント角に各軸を動作する
    • movel ロボットを現在の座標から入力した座標に直線パスで動作させる(各軸同期)
    • movej_pose2 ロボットを現在の座標から入力した座標にジョイント角速度一定で動作(非直線パス)
    • movec ロボットの現在の座標を始点とし、中継点終了点を指定し円弧補間パスで動作させる
    • move_circle  ロボットの現在の座標を始点とし、2点をパラメーターとし円弧補間パスで動作させる
    • tcp_move ロボットを現在座標からツール座標系で相対座標指令で直線パスで動作させる
    • tcp_move_2p ロボットを現在座標からツール座標系で相対座標指令で直線パスで動作させる。入力値は2ポイントの座標及び姿勢
    • wobj_move ロボットを現在座標からワーク座標系で相対座標指令で直線パスで動作させる
    • wobj_move_2p ロボットを現在座標からワーク座標系で相対座標指令で直線パスで動作させる。入力値は2ポイントの座標及び姿勢
    • speedj ロボットの各ジョイント軸を指定した角度まで一定の速度で動作させる。
      本指令実施後は動作完了を待たず次の指令を受け付ける
    • speedl  ロボットのエンドエフェクタ座標指定の座標まで一定の速度で動作させる。
      本指令実施後は動作完了を待たず次の指令を受け付ける
    • speed_stop speedj動作及びspeedl動作を停止する
    • spline 入力された点群から作成されるスプラインのパスでロボットを動作させる。
    • move_spiral 螺旋軌跡のロボット動作を実施する。
    • hand_teach 本関数の呼び出しにより、エンドのフリーボタンを押すことで手動動作可能にする
    • replay 登録された軌跡を再生する
    • set_blend_ahead move動作間のブレンドパラメーターを設定する
  • ネットワーク通信系 TCP/IP
    • socket_open TCP/IPソケット通信を開始する。
    • socket_write ソケット通信で接続したサーバーにデータを送信する
    • socket_read_string ソケット通信で接続したサーバーから文字列データを受信する
    • socket_read_str_num ソケット通信で接続したサーバーから文字列データを受信し、数値データの配列に変換して返す
    • socket_read_num ソケット通信で接続したサーバーから単精度小数データ配列を受信する
    • socket_close サーバーとの接続を停止します
    • set_data_frequence ポート2001から送信させるロボットステータスデータの送信頻度をHzで設定する
    • socket_write_byte_list ソケット通信で接続したサーバーにバイト列データを送信する
    • socket_read_byte_list ソケット通信で接続したサーバーから送信されたバイト列データを受信する
  • ネットワーク通信系 RS-485
    • read_raw_data_485  ロボットコントローラーのRS485ポートで接続されたデバイスからバイト列データを受信する
    • read_data_485 ロボットコントローラーのRS485ポートで接続されたデバイスからバイト列データを受信する
    • write_raw_data_485 ロボットコントローラーのRS485ポートで接続されたデバイスへバイト列データを送信する
    • write_data_485 ロボットコントローラーのRS485ポートで接続されたデバイスへバイト列データを送信する
    • tool_read_raw_data_485  ツール用のRS-485ポートと接続されたデバイスからの送信データを受信する
    • tool_read_data_485 ツール用のRS-485ポートと接続されたデバイスからの送信データを受信する
    • tool_write_raw_data_485 ツール用のRS-485ポートと接続されたデバイスからの送信データを受信する
    • tool_write_data_485 ツール用のRS-485ポートと接続されたデバイスからの送信データを受信する
  • ネットワーク通信系 CAN通信
    • read_raw_data_can CANフレームのバイト列データを取得する
    • read_data_can  CANフレームのバイト列データを取得する
    • write_raw_data_can CANフレームのバイト列データを書き込みする
    • write_data_can CANフレームのバイト列データを書き込みする
  • ネットワーク通信系 Modbus
    • modbus_read modbusの指定アドレスのデータを読み出す
    • modbus_write modbusの指定アドレスのデータを書き込む
    • modbus_set_frequency modbusのデータ更新周期を設定する
    • modbus_write_multiple_regs modbusの複数のレジスタに書き込みを行う
    • modbus_write_multiple_coils modbusの複数のコイルに書き込みを行う
  • システム制御系
    • sleep プログラムを指定時間(単位ms)で停止する
    • set_digital_output_mode コントローラーのカスタマイズIO(DIO)出力のモードを設定する。オンオフ、パルス、デューティ比等の設定。
    • set_standard_digital_out  コントローラーのカスタマイズIO(CIO)出力の値を設定する(オンオフモードの場合)
    • get_standard_digital_out  コントローラーのカスタマイズIO(CIO)出力の値を取得する(オンオフモードの場合)
    • get_standard_digital_in  コントローラーのカスタマイズIO(CIO)入力の値を取得する(オンオフモードの場合)
    • set_tool_digital_out  ツールIOの出力の値を設定する
    • get_tool_digital_in ツールIOの入力の値を取得する
    • get_tool_digital_out  ツールIOの出力の値を取得する
    • get_function_digital_in コントローラーの拡張ファンクションIO(EIO)の入力値を取得する
    • get_function_digital_out コントローラーの拡張ファンクションIO(EIO)の出力値を取得する
    • get_standard_analog_voltage_in コントローラーのアナログ入力の電圧値を取得する
    • set_standard_analog_voltage_out コントローラーのアナログ出力の電圧値を設定する
    • get_tool_analog_voltage_in エンドエフェクタ用のアナログ入力の電圧値を取得する
    • get_standard_analog_current_in エンドエフェクタ用のアナログ入力の電流値を取得する
    • set_standard_analog_current_out コントローラーのアナログ出力の電流値を設定する
    • get_standard_analog_current_out  コントローラーのアナログ出力の電流値を取得する
    • get_standard_analog_voltage_out コントローラーのアナログ出力の電圧値を取得する
    • write_reg 内部レジスタの値を書き込みする
    • read_reg  内部レジスタの値を読み込みする
    • get_function_reg_in 機能レジスタの値を書き込みする
    • get_function_reg_out 機能レジスタの値を読み込みする
    • set_wobj_offset 現在のワーク座標系からオフセットした位置にワーク座標系を追加する
    • set_tool_data TCPオフセット、ツール荷重、重心のデータを設定する
    • set_load_data  ツール荷重、重心のデータを設定する
    • cal_ikine 逆運動学により選択TCPの入力座標値から各ジョイント角の値を返す
    • cal_fkine 順運動学により入力ジョイント角から選択TCPの座標値を返す
    • get_tcp_pose ベース座標系に対する現在選択のTCP座標の値を取得する
    • get_tcp_pose_coord 指定ワーク座標系に対する指定ツールのTCP座標の値を取得する
    • get_tcp_speed 現在のエンドエフェクタにおけるロボットの動作速度を取得する
    • get_tcp_acceleration 現在のエンドエフェクタにおけるロボットの動作加速度を取得する
    • get_tcp_force 現在のロボットツール部におけるトルク情報を取得する
    • get_tcp_force_tool 現在のロボットツール部におけるトルク情報をツール座標系に対して値を取得する
    • get_tcp_offset 現在選択されているツールのオフセット値を取得する
    • get_tool_load 現在選択されているツールの負荷荷重・重心・慣性の情報を取得する
    • get_wobj 現在選択されているワーク座標系の原点座標情報を取得する
    • get_actual_joints_position 現在の各軸のジョイント角情報を取得する
    • get_target_joints_position 現在のエンドエフェクタ中心の目標地点の座標情報を取得する
    • get_actual_joints_speed 現在の各軸のジョイント角速度を取得する
    • get_target_joints_speed 各軸のジョイント角速度の目標値を取得する 
    • get_actual_joints_acceleration 現在の各軸のジョイント角加速度を取得する
    • get_target_joints_acceleration 各軸のジョイント角加速度の目標値を取得する 
    • get_actual_joints_torque 現在の各軸のトルク情報を取得する
    • get_target_joints_torque 各軸のトルクの目標値を取得する
    • get_flange_pose 現在のエンドエフェクタ中心の座標・姿勢を取得する
    • get_flange_speed 現在のエンドエフェクタ中心の速度を取得する
    • get_flange_acceleration 現在のエンドエフェクタ中心の加速度を取得する
    • sub_program サブプログラムを呼び出す
    • start_record_track  ロボットが動作中の座標及びジョイント角情報を記録しファイルに記録する機能を開始する
    • stop_record_track ロボットが動作中の座標及びジョイント角情報を記録しファイルに記録する機能を停止する
    • collision_detect 衝突検知レベルを設定する
    • set_value  システム変数の値を設定する
    • get_value  システム変数の値を取得する
    • timer_start タイマーをスタートする
    • timer_end タイマーをストップする
    • get_robot_state 現在のロボットの状態を取得する
    • get_program_state 現在のロボットのプログラム稼働状態を取得する
    • get_safety_state 現在のロボットのセーフティステータスを取得する
    • get_operation _mode 現在のロボットの操作モード(手動or自動)情報を取得する
    • get_collision_state 現在のロボットの衝突検知状態を取得する
    • get_robot_protective_stop_state 現在のロボットの保護停止状態を取得する
    • get_robot_automode_protective_stop_state 現在のロボットの(自動モードの)保護停止状態を取得する
    • get_robot_in_reduce_mode_state  ロボットが減速モードかどうかの情報を取得する
    • get_robot_at_home_position_state ロボットがホームポジションにいるかどうかの情報を取得する
    • get_robot_safety_in 指定された安全入力信号の値を取得する
    • get_robot_safety_out 指定された安全出力信号の値を取得する
    • is_moving ロボットが動作中かどうかの情報を取得する
    • log プログラム中にログ出力を実施する
    • message プログラム実行中にポップアップを表示しプログラムを一時停止する
  • 演算系関数
    • abs 絶対値演算を実施する
    • cos cos演算を実施する
    • acos arccos演算を実施する
    • sin sin演算を実施する
    • asin arcsin演算を実施する
    • tan tan演算を実施する
    • atan arctan演算を実施する
    • atan2 arctan演算を実施する
    • pow 累乗演算を実施する
    • sqrt 平方根演算を実施する
    • deg2rad degree単位の角度をrad単位へ変換する
    • rad2deg rad単位の角度をdegree単位へ変換する
    • pose_trans 特定の座標(pose型)を特定の変換姿勢(pose型)で変位させる
    • pose_inv  任意の変位姿勢の逆関数を取得する
    • pose_distance 2点間の空間距離を演算する
    • pose_offset 2つの姿勢のオフセット値を取得する
    • num2str  数値を文字列に変換する
    • str2num 文字列を数値に変換する
    • list2str 数値型配列を文字列に変換する
    • str2list 文字列を数値型配列に変換する
    • get_pose_trans pose型データから座標部分の3要素の配列を取得する
    • get_pose_rpy pose型から姿勢部分の3要素の配列を取得する
    • get_number_list_norm 配列のすべてを要素としたモジュラス長を返す
    • normalize_number_list 配列のすべてを要素としたモジュラス長で各要素を割った配列を返す
    • number_list_cross 2ベクトルのベクトルの外積を返す
    • number_list_dot 2ベクトルの内積を返す
    • rpy_to_axial_angle オイラー角表示の姿勢(rpy)を回転中心ベクトル及び回転量の4要素へ変換する
    • rpy_to_rot オイラー角表示の姿勢(rpy)を回転行列へ変換する
    • rot_to_rpy 回転行列をオイラー角表示の姿勢(rpy)へ変換する
  • 文字列操作
    • str_cat 2つの文字列を連結する
    • str_cmp 2つの文字列が等しいか判定する
    • str_del 文字列からインデックスと文字数指定で文字を削除する
    • str_insert 文字列の指定した位置に別の文字列を追加する
    • str_substr 文字列から指定した位置の文字列を抜き出す
    • str_len 文字列の長さを取得する
    • str_find 文字列の中に指定した文字列があるかどうかを調べる
    • str_split 文字列を区切り文字を使って分割し、配列として返す
    • str_at 文字列の前から〇番目の文字を抜き出す
    • list_len 配列の数を取得する
    • is_valid 各データ型に置いて有効を表す値であるかどうかを返す。
      trueとなるのはbool型の場合はtrue、文字列の場合はempty以外の場合など
    • int16_to_byte_list  int16型データをバイト配列に変換する
    • uint16_to_byte_list uint16型データをバイト配列に変換する
    • int32_to_byte_list  int32型データをバイト配列に変換する
    • uint32_to_byte_list uint32型データをバイト配列に変換する
    • float_to_byte_list float型データをバイト配列に変換する
    • double_to_byte_list double型データをバイト配列に変換する
    • byte_list_to_int16 バイト配列をint16型データに変換する
    • byte_list_to_uint16 バイト配列をuint16型データに変換する
    • byte_list_to_int32 バイト配列をint32型データに変換する
    • byte_list_to_uint32 バイト配列をuint32型データに変換する
    • byte_list_to_float バイト配列をfloat型データに変換する
    • byte_list_to_double  バイト配列をdouble型データに変換する
    • float2word float型データをワード型データに変換する
    • word2float ワード型データをfloat型データに変換する
  • 力覚センサー制御
    • fc_start 力覚制御モードを開始する
    • fc_stop 力覚制御モードを停止する
    • fc_move 力覚制御動作のみを実行する
    • fc_config 力覚制御用パラメータを設定する
    • fc_guard_deac 力覚制御中の異常荷重を安全監視する
    • fc_guard_act 力覚制御中の安全荷重を監視する
    • fc_force_set_value 力覚センサーの計測値が指定の値になるように設定する
    • fc_wait_pos 力覚制御中に指定の位置にロボットが動作するまで待機し位置到達後に力覚制御を停止する
    • fc_wait_vel 力覚制御中に指定の速度にロボットが動作するまで待機し速度到達後に力覚制御を停止する
    • fc_wait_ft 力覚制御中に指定の荷重なるまでロボットが動作し荷重到達後に力覚制御を停止する
    • fc_wait_logic 力覚制御の継続条件を位置、速度、荷重から論理式を設定し、その式が成立する後に力覚制御を停止する
    • fc_get_ft 力覚センサーからの荷重のフィードバック値を取得する
    • fc_mode_is_active 力覚制御がアクティブかどうかの情報を取得する
    • enable_speed_optimization 速度最適化機能を有効にする
    • disable_speed_optimization 速度最適化機能を無効にする
    • enable_acc_optimization 加速度最適化機能を有効にする
    • disable_acc_optimization 加速度最適化機能を無効にする
    • enable_vibration_control 振動抑制機能を有効にする
    • disable_vibration_control 振動抑制機能を無効にする
    • enable_singularity_control  特異点回避制御を有効にする
    • disable_singularity_control 特異点回避制御を無効にする
    • enable_posture_control 姿勢拘束機能を有効にする
    • disable_posture_control 姿勢拘束機能を無効にする
    • combine_motion_config 複合モーションのパラメーターを設定する
    • enable_combined_motion 複合モーションを有効にする
    • disable_combined_motion  複合モーションを無効にする