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

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.

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.

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.

OK,
Manage it using

    IndDMove M7DM1, 1, 0, 100;

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.

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.

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

Denis,
Not quite sure but one thing comes to mind. What step mode are you in?

Detail Step.

Step Mode in quickset menu: Step Into, Step Out, Step Over or Next Move. Default is usually Step Into.

Detail Step == Step Into. :wink: