RobotStudio event

Independent axis

Hello,
I've got an independent axis moving a gripper.
Controller have 610-1 Independent Axis option.
Motor was tuned and works well.

For now, axis is defined with:
Arm-Independent Joint = On
Mechanical Unit-Allow Move of User Frame = No

I want to change Joint-Logical Axis to 0 but I can't.
How can I define it to Robtarget don't use it?
As now, when I want to move to a position, I've got error 40512 - Missing External Axis Value.
And I don't want to set axis value in robtarget.extjoint as I can go in the same position with different values of this axes.
Here is its MOC.cfg file:
MOC:CFG_1.0:5:0::
#
MOTION_SYSTEM:

      -name "system_1" -min_temp_ambient_cabinet 5 -max_temp_ambient_cabinet 45\
      -min_temp_ambient_robot 5 -max_temp_ambient_robot 45
#
MOTION_PLANNER:

      -name "motion_planner_1" -std_servo_queue_time 0.193536\
      -linear_max_speed 9.3 -dyn_ipol_decbuf_type "OPTIMAL_PATH"\
      -use_motion_sup "rob1" -use_jog_parameters "motion_planner_1"\
      -use_for_synchronization  -use_for_jogging  -repos_installed \
      -use_spline_parameters "motion_planner_1" -restricted_circlepoint

      -name "motion_planner_2"

      -name "motion_planner_3"

      -name "motion_planner_4"

      -name "motion_planner_5"

      -name "motion_planner_6"
#
JOG_PARAMETERS:

      -name "motion_planner_1"
#
MECHANICAL_UNIT:

      -name "M7DM1" -use_run_enable "" -use_activation_relay ""\
      -use_brake_relay "" -use_single_0 "M7DM1" -activate_at_start_up \
      -deactivation_forbidden
#
RELAY:

      -name "rob1_brake" -out_signal "DRV1BRAKE" -in_signal "DRV1BRAKEFB"

      -name "rob1_run" -out_signal "DRV1CHAIN1" -in_signal "DRV1K1" -run_relay

      -name "rob1_run2" -out_signal "DRV1CHAIN2" -in_signal "DRV1K2" -run_relay
#
ROBOT:

      -name "ROB_1" -use_robot_serial_number "rob_1"\
      -use_robot_type "ROB1_6700_3.05_175" -use_robot_calib "r1_uncalib"\
      -use_joint_0 "rob1_1" -use_joint_1 "rob1_2" -use_joint_2 "rob1_3"\
      -use_joint_3 "rob1_4" -use_joint_4 "rob1_5" -use_joint_5 "rob1_6"\
      -base_mass 238.53 -base_mass_centre_x -0.0221 -base_mass_centre_y 0.0004\
      -base_mass_centre_z 0.1979 -use_lin_jog "ROB1" -use_reorient_jog "ROB1"\
      -use_joint_jog "ROB1" -use_kinematic_corvec \
      -use_motion_process_mode "rob1_optimal_cycle_time_mode"
#
ROBOT_SERIAL_NUMBER:

      -name "rob_1" -robot_serial_number_high_part "6700"\
      -robot_serial_number_low_part 118700
#
TOOL_INTERFACE:

      -name "r1_tool"
#
CSS:

      -name "rob1" -valid
#
MOTION_PROCESS_MODE:

      -name "rob1_optimal_cycle_time_mode"\
      -use_motion_process_mode_type "rob1_optimal_cycle_time_mode"

      -name "rob1_low_speed_accuracy_mode"\
      -use_motion_process_mode_type "rob1_low_speed_accuracy_mode"

      -name "rob1_low_speed_stiff_mode"\
      -use_motion_process_mode_type "rob1_low_speed_stiff_mode"
#
MOTION_SUP:

      -name "rob1" -path_col_detect_on  -jog_col_detect_on \
      -path_col_detect_level 70 -gravity_tolerance 0.2 -friction_tolerance 1\
      -disturbance_tolerance 0.2

      -name "default"
#
SINGLE:

      -name "M7DM1" -use_single_type "M7DM1" -use_joint "M7DM1"
#
SINGLE_TYPE:

      -name "M7DM1" -mechanics "FREE_ROT"
#
JOINT:

      -name "M7DM1" -logical_axis 7 -use_measurement_channel "M7DM1"\
      -use_axc_filter "M7DM1" -use_arm "M7DM1" -use_transmission "M7DM1"\
      -use_brake "M7DM1" -use_supervision "M7DM1" -use_drive_system "M7DM1"\
      -uncalibrated_control_master_type "UCCM0"\
      -use_uncalibrated_control_master "M7DM1"\
      -normal_control_master_type "LCM0" -use_normal_control_master "M7DM1"
#
MEASUREMENT_CHANNEL:

      -name "M7DM1" -use_measurement_board_type "DSQC313" -measurement_node 7
#
ARM:

      -name "rob1_1" -use_arm_type "ROB1_1" -use_acc_data "rob1_1"\
      -use_customer_arm_load "r1_load_1" -use_arm_calib "rob1_1"\
      -upper_joint_bound 2.96706 -lower_joint_bound -2.96706\
      -upper_joint_bound_max 2.96706 -lower_joint_bound_min -2.96706

      -name "rob1_2" -use_arm_type "ROB1_2" -use_acc_data "rob1_2"\
      -use_customer_arm_load "r1_load_2" -use_arm_calib "rob1_2"\
      -upper_joint_bound 1.48353 -lower_joint_bound -1.13446\
      -upper_joint_bound_max 1.48353 -lower_joint_bound_min -1.13446

      -name "rob1_3" -use_arm_type "ROB1_3" -use_acc_data "rob1_3"\
      -use_check_point "rob1_3" -use_customer_arm_load "r1_load_3"\
      -use_arm_calib "rob1_3" -upper_joint_bound 1.22173\
      -lower_joint_bound -3.14159 -upper_joint_bound_max 1.22173\
      -lower_joint_bound_min -3.14159

      -name "rob1_4" -use_arm_type "ROB1_4" -use_acc_data "rob1_4"\
      -use_customer_arm_load "r1_load_4" -use_arm_calib "rob1_4"\
      -upper_joint_bound 5.23599 -lower_joint_bound -5.23599\
      -upper_joint_bound_max 5.23599 -lower_joint_bound_min -5.23599

      -name "rob1_5" -use_arm_type "ROB1_5" -use_acc_data "rob1_5"\
      -use_arm_calib "rob1_5" -upper_joint_bound 2.26893\
      -lower_joint_bound -2.26893 -upper_joint_bound_max 2.26893\
      -lower_joint_bound_min -2.26893

      -name "rob1_6" -use_arm_type "ROB1_6" -use_acc_data "rob1_6"\
      -use_arm_calib "rob1_6" -upper_joint_bound 6.28319\
      -lower_joint_bound -6.28319 -upper_joint_bound_max 589\
      -lower_joint_bound_min -589

      -name "M7DM1" -use_arm_type "M7DM1" -use_acc_data "M7DM1"\
      -independent_joint_on  -upper_joint_bound 0.08 -lower_joint_bound -0.001
#
ARM_TYPE:

      -name "M7DM1"
#
ARM_CHECK_POINT:

      -name "rob1_3" -checktype "POS" -position_x 0 -position_y 0 -position_z 0
#
ARM_LOAD:

      -name "r1_load_1"

      -name "r1_load_2"

      -name "r1_load_3" -mass 22 -mass_centre_x 0.32 -mass_centre_z 0.47

      -name "r1_load_4"
#
ACC_DATA:

      -name "M7DM1" -wc_acc 1 -wc_dec 1
#
ARM_CALIB:

      -name "rob1_1"

      -name "rob1_2"

      -name "rob1_3"

      -name "rob1_4"

      -name "rob1_5"

      -name "rob1_6"
#
JOINT_CALIB:

      -name "rob1_1"

      -name "rob1_2"

      -name "rob1_3"

      -name "rob1_4"

      -name "rob1_5"

      -name "rob1_6"
#
TRANSMISSION:

      -name "M7DM1" -transm_joint 2577.72 -high_gear 2577717 -low_gear 1000
#
BRAKE:

      -name "M7DM1" -control_off_delay_time 0.3 -use_brake_type "3HAC046619-001"
#
SUPERVISION:

      -name "M7DM1" -use_supervision_type "M7DM1" -power_up_position_on \
      -counter_supervision_on  -position_supervision_on  -speed_supervision_on \
      -load_supervision_on  -jam_supervision_on  -thermal_motor_supervision_on \
      -in_position_range 1 -normalized_zero_speed 0.02\
      -reference_master_pos_supervision_on
#
SUPERVISION_TYPE:

      -name "M7DM1" -static_power_up_position_limit 3\
      -dynamic_power_up_position_limit 150 -static_position_limit 3\
      -dynamic_position_limit 200 -static_normalized_speed_limit 0.06\
      -dynamic_normalized_speed_limit 0.3 -normalized_influence_sensitivity 0\
      -speed_half_time 0.5 -max_jam_normalized_speed 0.05 -max_overload_time 0.5\
      -max_jam_time 0.5
#
AXC_FILTER:

      -name "M7DM1" -use_feedback_iir2_filter "LP_496"\
      -use_speed_error_iir2_filter1 "NOTCH_248"\
      -use_speed_error_iir2_filter2 "LAG_16_72"\
      -use_torque_limit_iir1_filter1 "LP_25"\
      -use_torque_limit_iir1_filter2 "LP_25"
#
DRIVE_SYSTEM:

      -name "M7DM1" -use_current_transfer_function "cur_tr_1.00"\
      -use_current_controller "c_c_fast_1" -use_mains "mains"\
      -use_trafo "trafo_dm1" -use_dc_link "dc_link_ext_dm1"\
      -use_drive_unit "M7DM1" -use_cable "cable_4.5_30" -use_motor "M7DM1"\
      -use_thermal_duty_cycle "M7DM1" -use_stress_duty_cycle "M7DM1"\
      -mugu_active
#
MAINS:

      -name "mains" -u_tolerance_min -0.15 -u_tolerance_max 0.1
#
CURRENT_CONTROLLER:

      -name "c_c_slow_1" -Kp_d_factor 0.2 -current_forced_factor 0.5\
      -delay_filter_time 0.000252
#
CABLE:

      -name "cable_4.5_30" -use_cable_type "cable_4.5" -length 30

      -name "cable_3.0_30" -use_cable_type "cable_3.0" -length 30

      -name "cable_1.5_30" -use_cable_type "cable_1.5" -length 30

      -name "cable_1.0_30" -use_cable_type "cable_1.0" -length 30

      -name "cable_3.0_50" -use_cable_type "cable_3.0" -length 50

      -name "cable_2.0_50" -use_cable_type "cable_2.0" -length 50

      -name "cable_0.75_50" -use_cable_type "cable_0.75" -length 50
#
MOTOR:

      -name "M7DM1" -use_motor_type "Siemens_1FK7022" -use_motor_calib "M7DM1"
#
MOTOR_TYPE:

      -name "default" -pole_pairs 3 -torque_0 1 -ke 0.5 -i_max 3 -r_stator_20 5\
      -l_stator 0.02

      -name "Siemens_1FK7105" -pole_pairs 4 -inertia 0.0169 -torque_0 48\
      -ke 0.95 -i_max 85 -r_stator_20 0.074 -l_stator 0.00127

      -name "Siemens_1FK7022" -pole_pairs 3 -inertia 3.5E-005 -torque_0 0.85\
      -ke 0.277 -i_max 6.5 -r_stator_20 4.2 -l_stator 0.0091
#
MOTOR_CALIB:

      -name "rob1_1" -valid_com_offset  -cal_offset 0.3857 -valid_cal_offset

      -name "rob1_2" -valid_com_offset  -cal_offset 0.2334 -valid_cal_offset

      -name "rob1_3" -valid_com_offset  -cal_offset 4.5182 -valid_cal_offset

      -name "rob1_4" -valid_com_offset  -cal_offset 3.3419 -valid_cal_offset

      -name "rob1_5" -valid_com_offset  -cal_offset 4.2074 -valid_cal_offset

      -name "rob1_6" -valid_com_offset  -cal_offset 1.5161 -valid_cal_offset

      -name "LOCKED" -valid_com_offset  -valid_cal_offset

      -name "M7DM1" -valid_com_offset  -cal_offset 6.04695 -valid_cal_offset
#
THERMAL_DUTY_CYCLE:

      -name "M7DM1"
#
STRESS_DUTY_CYCLE:

      -name "M7DM1" -speed_absolute_max 157 -torque_absolute_max 0.8
#
UCCM0:

      -name "M7DM1" -Kp 10 -Kv 0.2 -Ti 0.1 -speed_max_n 15 -acc_max_n 100\
      -dec_max_n 100
#
LCM0:

      -name "M7DM1" -Kp 22 -Kv 0.12 -Ti 0.1 -bandwidth 10\
      -resonance_frequency 10 -inertia 0.0001
#
DRIVE_MODULE_USER_DATA:

      -name "drive_module_1"
#
CFRIC_BLOCK:

      -name "r1_CFric_1" -friction_ff_level 1.17 -servo_tune_id_level 5\
      -servo_tune_id_ramp 6

      -name "r1_CFric_2" -friction_ff_level 2.27 -servo_tune_id_level 5\
      -servo_tune_id_ramp 6

      -name "r1_CFric_3" -friction_ff_level 2.39 -servo_tune_id_level 5\
      -servo_tune_id_ramp 6

      -name "r1_CFric_4" -friction_ff_level 0.42 -servo_tune_id_level 5\
      -servo_tune_id_ramp 6

      -name "r1_CFric_5" -friction_ff_level 0.61 -servo_tune_id_level 5\
      -servo_tune_id_ramp 6

      -name "r1_CFric_6" -friction_ff_level 0.41 -servo_tune_id_level 5\
      -servo_tune_id_ramp 6
#
SIS_EXTERNAL:

      -name "r1_sis_param" -prod_time_service_interval 20000\
      -calender_time_service_interval 1 -gear_box_warning_level 100




☑️2024 - RobotStudio® User Group

Comments

  • lemster68
    lemster68 ✭✭✭
    Denis,
        I am not sure if you can configure it as such.  What I can do is suggest that you write the value into the ext joint before moving to the position.  This would fix moving to the same position with different external joint values.
    Lee Justice
  • DenisFR
    DenisFR ✭✭✭
    I'm thinking about that but I have to do it for all targets...
    And if I miss one, or if customer add new one, this could make damage.

    ☑️2024 - RobotStudio® User Group

  • lemster68
    lemster68 ✭✭✭
    I wrote a function one time to assign the values, called it before Move instructions.  If you miss one, or customer adds, you should get that error once again, stopping robot before damage.  I just had a thought, make your own motion routine into which you have to pass that ext axis value in, use only your custom motions rather than normal MoveL, MoveJ.
    Lee Justice
  • DenisFR
    DenisFR ✭✭✭
    edited May 2019
    OK,
    Manage it using
        IndDMove M7DM1, 1, 0, 100;<br>
    in event START and RESTART.
    Now, only got error 20381: Error when recreating path after power fail
    when restarting controller when movement in progress.
    Setting PP to cursor solve this error.

    PS: I thought about making a new MoveX instruction, but customer have his own standard routines.



    ☑️2024 - RobotStudio® User Group

  • If you changed the mechanical unit type to allow deactivation then the axis value is not included until activated - with the ActUnit RAPID command.

    But then you have to have contactors to disconnect the power to the motor.

  • DenisFR
    DenisFR ✭✭✭
    Hello,
    When using WaitUntil IndInpos(Station_A,1) = TRUE; in manual step by step, the cursor continue even if axis is not at position.
    Is it normal?
    RW 5.61

    ☑️2024 - RobotStudio® User Group

  • lemster68
    lemster68 ✭✭✭
    Denis,
        Not quite sure but one thing comes to mind.  What step mode are you in?
    Lee Justice
  • DenisFR
    DenisFR ✭✭✭
    Detail Step.

    ☑️2024 - RobotStudio® User Group

  • lemster68
    lemster68 ✭✭✭
    edited May 2019
    Step Mode in quickset menu: Step Into, Step Out, Step Over or Next Move.  Default is usually Step Into.
    Lee Justice
  • DenisFR
    DenisFR ✭✭✭
    Detail Step == Step Into. ;)

    ☑️2024 - RobotStudio® User Group