Add files for RobotStudio project

This commit is contained in:
2EEEB 2021-03-21 22:01:58 +01:00
parent dbeb38085a
commit ecc91651fa
Signed by: 2EEEB
GPG Key ID: 8F12BD6D9D435DB2
15 changed files with 1067 additions and 0 deletions

View File

@ -0,0 +1,65 @@
EIO:CFG_1.0:6:1::
#
EIO_SIGNAL:
-Name "do_attA1" -SignalType "DO"
-Name "do_attA2" -SignalType "DO"
-Name "do_attA3" -SignalType "DO"
-Name "do_attB1" -SignalType "DO"
-Name "do_attB2" -SignalType "DO"
-Name "do_attB3" -SignalType "DO"
-Name "do_pos0" -SignalType "DO"
-Name "do_detA1" -SignalType "DO"
-Name "do_detA2" -SignalType "DO"
-Name "do_detA3" -SignalType "DO"
-Name "do_detB3" -SignalType "DO"
-Name "do_detB2" -SignalType "DO"
-Name "do_detB1" -SignalType "DO"
-Name "do_attPlate" -SignalType "DO"
-Name "do_detPlate" -SignalType "DO"
-Name "do_attPlate1" -SignalType "DO"
-Name "do_detPlate1" -SignalType "DO"
-Name "do_readyGrip0" -SignalType "DO"
-Name "do_homeGrip0" -SignalType "DO"
-Name "do_gripGrip0" -SignalType "DO"
-Name "do_readyGrip1" -SignalType "DO"
-Name "do_homeGrip1" -SignalType "DO"
-Name "do_gripGrip1" -SignalType "DO"
-Name "do_plateRdy" -SignalType "DO"
-Name "di_plateArr" -SignalType "DI"
-Name "di_productChosen" -SignalType "DI"
-Name "do_attBox" -SignalType "DO"
-Name "do_detBox" -SignalType "DO"
-Name "do_attLid" -SignalType "DO"
-Name "do_detLid" -SignalType "DO"
-Name "do_boxRdy" -SignalType "DO"

149
Project_1/Controller_cfg/MMC.cfg Executable file
View File

@ -0,0 +1,149 @@
MMC:CFG_1.0:6:0::
#
MMC_REAL_ROUTINE:
-name "AxisCalibration" -hidden
-name "AxisProc" -hidden
-name "CalPendelum" -hidden
-name "CalPendelumProc" -hidden
-name "PendelumProc" -hidden
-name "CW_Options" -hidden
-name "CW_ReadLevel" -hidden
-name "AutoFineCalib" -hidden
-name "CW_Refcalib" -hidden
-name "ReadBarcode" -hidden
#
MMC_REAL_PARAM_SEQ_METHOD:
-name "method"
#
MMC_PALETTE_HEAD:
-name "M.C 1" -type "MMC_MC1"
-name "M.C 2" -type "MMC_MC2"
-name "M.C 3" -type "MMC_MC3"
#
MMC_SERV_ROUT_STRUCT:
-name "AxisCalibration"
-name "CalPendelum"
#
IOVIEW_BLOCK:
-name "IOViewBlockIfMotorsOff"
#
WARN_AT_START:
-name "WarningAtStart" -cursor_pp_diff_warning 0\
-show_pp_to_cursor_button 0
#
AUTO_SWITCH_OF_JOG_UNIT:
-name "AutoSwitchOfJogUnit"
#
BACKUP_DEFAULT:
-name "Backup"
#
MMC_MC1 = MMC_PALETTE:
-name "MoveJ" -only_mec_task
-name "MoveL" -only_mec_task
-name "MoveC" -only_mec_task
-name "ProcCall"
-name "Set"
-name "Reset"
-name "WaitTime"
-name "WaitDI"
-name "IF"
-name "Compact IF"
-name ":="
-name "Incr"
-name "Add"
-name "Decr"
#
MMC_MC2 = MMC_PALETTE:
-name "MoveJ" -only_mec_task
-name "MoveL" -only_mec_task
-name "MoveC" -only_mec_task
-name "ProcCall"
-name "Set"
-name "Reset"
-name "WaitTime"
-name "WaitDI"
-name "IF"
-name "Compact IF"
-name ":="
-name "Incr"
-name "Add"
-name "Decr"
#
MMC_MC3 = MMC_PALETTE:
-name "MoveJ" -only_mec_task
-name "MoveL" -only_mec_task
-name "MoveC" -only_mec_task
-name "ProcCall"
-name "Set"
-name "Reset"
-name "WaitTime"
-name "WaitDI"
-name "IF"
-name "Compact IF"
-name ":="
-name "Incr"
-name "Add"
-name "Decr"

455
Project_1/Controller_cfg/MOC.cfg Executable file
View File

@ -0,0 +1,455 @@
MOC:CFG_1.0:6: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" -dynamic_resolution 0.5 -path_resolution 0.5\
-std_servo_queue_time 0.193536 -linear_max_speed 8.4\
-use_motion_sup "rob1" -use_jog_parameters "motion_planner_1"\
-use_for_jogging -repos_installed \
-use_spline_parameters "motion_planner_1" -restricted_circlepoint \
-optimized_start_from_finepoint 1
-name "motion_planner_2" -dynamic_resolution 0.5 -path_resolution 0.5\
-std_servo_queue_time 0.193536 -linear_max_speed 8.4\
-use_motion_sup "rob2" -use_jog_parameters "motion_planner_2"\
-repos_installed -use_spline_parameters "motion_planner_2"\
-restricted_circlepoint -optimized_start_from_finepoint 1
-name "motion_planner_3"
-name "motion_planner_4"
-name "motion_planner_5"
-name "motion_planner_6"
-name "motion_planner_7"
#
JOG_PARAMETERS:
-name "motion_planner_1" -jog_mode 1
-name "motion_planner_2" -jog_mode 1
#
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
-name "rob2_brake" -out_signal "DRV2BRAKE" -in_signal "DRV2BRAKEFB"
-name "rob2_run" -out_signal "DRV2CHAIN1" -in_signal "DRV2K1" -run_relay
-name "rob2_run2" -out_signal "DRV2CHAIN2" -in_signal "DRV2K2" -run_relay
#
ROBOT:
-name "ROB_1" -use_robot_serial_number "rob_1"\
-use_robot_type "ROB1_1200_0.9_5_TypeB" -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_frame_pos_x -0.001 -base_mass 16.2 -base_mass_centre_x -0.006\
-base_mass_centre_y 0.001 -base_mass_centre_z 0.13 -use_lin_jog "ROB1"\
-use_reorient_jog "ROB1" -use_joint_jog "ROB1"\
-use_motion_process_mode "rob1_optimal_cycle_time_mode"
-name "ROB_2" -use_robot_serial_number "rob_2"\
-use_robot_type "ROB2_1200_0.9_5_TypeB" -use_robot_calib "r2_uncalib"\
-use_joint_0 "rob2_1" -use_joint_1 "rob2_2" -use_joint_2 "rob2_3"\
-use_joint_3 "rob2_4" -use_joint_4 "rob2_5" -use_joint_5 "rob2_6"\
-base_frame_pos_x 0.0201903 -base_frame_pos_y -3.26784 -base_mass 16.2\
-base_mass_centre_x -0.006 -base_mass_centre_y 0.001\
-base_mass_centre_z 0.13 -use_lin_jog "ROB2" -use_reorient_jog "ROB2"\
-use_joint_jog "ROB2"\
-use_motion_process_mode "rob2_optimal_cycle_time_mode"
#
ROBOT_SERIAL_NUMBER:
-name "rob_1"
-name "rob_2"
#
FOOT_INTERFACE:
-name "r1_foot"
-name "r2_foot"
#
TOOL_INTERFACE:
-name "r1_tool"
-name "r2_tool"
#
CSS:
-name "rob1" -valid
-name "rob2" -valid
#
MOTION_PROCESS_MODE:
-name "rob1_optimal_cycle_time_mode" -mode_id 1\
-use_motion_process_mode_type "rob1_optimal_cycle_time_mode"
-name "rob1_low_speed_accuracy_mode" -mode_id 2\
-use_motion_process_mode_type "rob1_low_speed_accuracy_mode"
-name "rob1_low_speed_stiff_mode" -mode_id 3\
-use_motion_process_mode_type "rob1_low_speed_stiff_mode"
-name "rob1_accuracy_mode" -mode_id 4\
-use_motion_process_mode_type "rob1_accuracy_mode" -world_acc_factor 1
-name "rob1_mpm_user_mode_1" -mode_id 5\
-use_motion_process_mode_type "rob1_optimal_cycle_time_mode"
-name "rob1_mpm_user_mode_2" -mode_id 6\
-use_motion_process_mode_type "rob1_optimal_cycle_time_mode"
-name "rob1_mpm_user_mode_3" -mode_id 7\
-use_motion_process_mode_type "rob1_optimal_cycle_time_mode"
-name "rob1_mpm_user_mode_4" -mode_id 8\
-use_motion_process_mode_type "rob1_optimal_cycle_time_mode"
-name "rob1_press_tending_mode" -mode_id 9\
-use_motion_process_mode_type "rob1_press_tending_mode"
-name "rob2_optimal_cycle_time_mode" -mode_id 1\
-use_motion_process_mode_type "rob2_optimal_cycle_time_mode"
-name "rob2_low_speed_accuracy_mode" -mode_id 2\
-use_motion_process_mode_type "rob2_low_speed_accuracy_mode"
-name "rob2_low_speed_stiff_mode" -mode_id 3\
-use_motion_process_mode_type "rob2_low_speed_stiff_mode"
-name "rob2_accuracy_mode" -mode_id 4\
-use_motion_process_mode_type "rob2_accuracy_mode" -world_acc_factor 1
-name "rob2_mpm_user_mode_1" -mode_id 5\
-use_motion_process_mode_type "rob2_optimal_cycle_time_mode"
-name "rob2_mpm_user_mode_2" -mode_id 6\
-use_motion_process_mode_type "rob2_optimal_cycle_time_mode"
-name "rob2_mpm_user_mode_3" -mode_id 7\
-use_motion_process_mode_type "rob2_optimal_cycle_time_mode"
-name "rob2_mpm_user_mode_4" -mode_id 8\
-use_motion_process_mode_type "rob2_optimal_cycle_time_mode"
-name "rob2_press_tending_mode" -mode_id 9\
-use_motion_process_mode_type "rob2_press_tending_mode"
#
MOTION_SUP:
-name "default"
-name "rob1" -path_col_detect_on -jog_col_detect_on \
-gravity_tolerance 0.2 -friction_tolerance 1 -disturbance_tolerance 0.5
-name "rob2" -path_col_detect_on -jog_col_detect_on \
-gravity_tolerance 0.2 -friction_tolerance 1 -disturbance_tolerance 0.5
#
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.96713 -lower_joint_bound -2.96713\
-upper_joint_bound_max 2.96713 -lower_joint_bound_min -2.96713
-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 2.269 -lower_joint_bound -1.7454\
-upper_joint_bound_max 2.269 -lower_joint_bound_min -1.7454
-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.22181\
-lower_joint_bound -3.49073 -upper_joint_bound_max 1.22181\
-lower_joint_bound_min -3.49073
-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 4.71246 -lower_joint_bound -4.71246\
-upper_joint_bound_max 4.71246 -lower_joint_bound_min -4.71246
-name "rob1_5" -use_arm_type "ROB1_5" -use_acc_data "rob1_5"\
-use_arm_calib "rob1_5" -upper_joint_bound 2.269 -lower_joint_bound -2.269\
-upper_joint_bound_max 2.269 -lower_joint_bound_min -2.269
-name "rob1_6" -use_arm_type "ROB1_6" -use_acc_data "rob1_6"\
-use_arm_calib "rob1_6" -upper_joint_bound 6.98139\
-lower_joint_bound -6.98139 -upper_joint_bound_max 1520\
-lower_joint_bound_min -1520
-name "rob2_1" -use_arm_type "ROB2_1" -use_acc_data "rob2_1"\
-use_customer_arm_load "r2_load_1" -use_arm_calib "rob2_1"\
-upper_joint_bound 2.96713 -lower_joint_bound -2.96713\
-upper_joint_bound_max 2.96713 -lower_joint_bound_min -2.96713
-name "rob2_2" -use_arm_type "ROB2_2" -use_acc_data "rob2_2"\
-use_customer_arm_load "r2_load_2" -use_arm_calib "rob2_2"\
-upper_joint_bound 2.269 -lower_joint_bound -1.7454\
-upper_joint_bound_max 2.269 -lower_joint_bound_min -1.7454
-name "rob2_3" -use_arm_type "ROB2_3" -use_acc_data "rob2_3"\
-use_check_point "rob2_3" -use_customer_arm_load "r2_load_3"\
-use_arm_calib "rob2_3" -upper_joint_bound 1.22181\
-lower_joint_bound -3.49073 -upper_joint_bound_max 1.22181\
-lower_joint_bound_min -3.49073
-name "rob2_4" -use_arm_type "ROB2_4" -use_acc_data "rob2_4"\
-use_customer_arm_load "r2_load_4" -use_arm_calib "rob2_4"\
-upper_joint_bound 4.71246 -lower_joint_bound -4.71246\
-upper_joint_bound_max 4.71246 -lower_joint_bound_min -4.71246
-name "rob2_5" -use_arm_type "ROB2_5" -use_acc_data "rob2_5"\
-use_arm_calib "rob2_5" -upper_joint_bound 2.269 -lower_joint_bound -2.269\
-upper_joint_bound_max 2.269 -lower_joint_bound_min -2.269
-name "rob2_6" -use_arm_type "ROB2_6" -use_acc_data "rob2_6"\
-use_arm_calib "rob2_6" -upper_joint_bound 6.98139\
-lower_joint_bound -6.98139 -upper_joint_bound_max 1520\
-lower_joint_bound_min -1520
#
ARM_CHECK_POINT:
-name "rob1_3" -position_x -0.1 -position_y -0.05 -position_z 0.1
-name "rob2_3" -position_x -0.1 -position_y -0.05 -position_z 0.1
#
ARM_LOAD:
-name "r1_load_1"
-name "r1_load_2"
-name "r1_load_3"
-name "r1_load_4"
-name "r2_load_1"
-name "r2_load_2"
-name "r2_load_3"
-name "r2_load_4"
#
ARM_CALIB:
-name "rob1_1"
-name "rob1_2"
-name "rob1_3"
-name "rob1_4"
-name "rob1_5"
-name "rob1_6"
-name "rob2_1"
-name "rob2_2"
-name "rob2_3"
-name "rob2_4"
-name "rob2_5"
-name "rob2_6"
#
JOINT_CALIB:
-name "rob1_1"
-name "rob1_2"
-name "rob1_3"
-name "rob1_4"
-name "rob1_5"
-name "rob1_6"
-name "rob2_1"
-name "rob2_2"
-name "rob2_3"
-name "rob2_4"
-name "rob2_5"
-name "rob2_6"
#
MAINS:
-name "mains" -u_tolerance_min -0.15 -u_tolerance_max 0.1
-name "mains_no_rectifier" -u_tolerance_min 0 -u_tolerance_max 0
#
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
-name "cable_awg24_0.815" -use_cable_type "cable_awg24" -length 0.815
-name "cable_awg24_1.140" -use_cable_type "cable_awg24" -length 1.14
-name "cable_awg24_1.65" -use_cable_type "cable_awg24" -length 1.65
-name "cable_awg24_1.86" -use_cable_type "cable_awg24" -length 1.86
-name "cable_awg24_2.205" -use_cable_type "cable_awg24" -length 2.205
-name "cable_awg24_2.165" -use_cable_type "cable_awg24" -length 2.165
-name "cable_awg24_1.215" -use_cable_type "cable_awg24" -length 1.215
#
MOTOR_TYPE:
-name "default" -pole_pairs 3 -inertia 0 -torque_0 1 -ke 0.5\
-ke_temp_coef_20 0 -ke_tolerance_min 0 -ke_tolerance_max 0 -ke_red_2i0 0\
-i_max 3 -torque_losses_at_speed1 0 -torque_losses_at_speed2 0\
-torque_losses_at_speed3 0 -speed1 100000 -speed2 100000 -speed3 100000\
-r_stator_20 5 -r_stator_temp_coef_20 0 -l_stator 0.02
#
MOTOR_CALIB:
-name "LOCKED" -valid_com_offset -valid_cal_offset
-name "rob1_1" -valid_com_offset
-name "rob1_2" -valid_com_offset
-name "rob1_3" -valid_com_offset
-name "rob1_4" -valid_com_offset
-name "rob1_5" -valid_com_offset
-name "rob1_6" -valid_com_offset
-name "rob2_1" -valid_com_offset
-name "rob2_2" -valid_com_offset
-name "rob2_3" -valid_com_offset
-name "rob2_4" -valid_com_offset
-name "rob2_5" -valid_com_offset
-name "rob2_6" -valid_com_offset
#
DRIVE_MODULE_USER_DATA:
-name "drive_module_1"
-name "drive_module_2"
#
CFRIC_BLOCK:
-name "r1_CFric_1" -friction_ff_on -friction_ff_level 0.18\
-servo_tune_id_level 5 -servo_tune_id_ramp 6
-name "r1_CFric_2" -friction_ff_on -friction_ff_level 0.14\
-servo_tune_id_level 5 -servo_tune_id_ramp 6
-name "r1_CFric_3" -friction_ff_on -friction_ff_level 0.14\
-servo_tune_id_level 5 -servo_tune_id_ramp 6
-name "r1_CFric_4" -friction_ff_on -friction_ff_level 0.07\
-servo_tune_id_level 5 -servo_tune_id_ramp 6
-name "r1_CFric_5" -friction_ff_on -friction_ff_level 0.06\
-servo_tune_id_level 5 -servo_tune_id_ramp 6
-name "r1_CFric_6" -friction_ff_on -friction_ff_level 0.02\
-servo_tune_id_level 5 -servo_tune_id_ramp 6
-name "r2_CFric_1" -friction_ff_on -friction_ff_level 0.18\
-servo_tune_id_level 5 -servo_tune_id_ramp 6
-name "r2_CFric_2" -friction_ff_on -friction_ff_level 0.14\
-servo_tune_id_level 5 -servo_tune_id_ramp 6
-name "r2_CFric_3" -friction_ff_on -friction_ff_level 0.14\
-servo_tune_id_level 5 -servo_tune_id_ramp 6
-name "r2_CFric_4" -friction_ff_on -friction_ff_level 0.07\
-servo_tune_id_level 5 -servo_tune_id_ramp 6
-name "r2_CFric_5" -friction_ff_on -friction_ff_level 0.06\
-servo_tune_id_level 5 -servo_tune_id_ramp 6
-name "r2_CFric_6" -friction_ff_on -friction_ff_level 0.02\
-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
-name "r2_sis_param" -prod_time_service_interval 20000\
-calender_time_service_interval 1 -gear_box_warning_level 100
#
AXIS_CALIBRATION_JOINT:
-name "rob1_1" -p1 47 -p4 47 -p6 2 -p7 30 -p8 10
-name "rob1_2" -p1 -5 -p4 -5 -p6 2 -p7 30 -p8 15
-name "rob1_3" -p1 -41 -p4 -41 -p6 2 -p7 30 -p8 15
-name "rob1_4" -p1 8 -p4 8 -p6 2 -p7 30 -p8 10
-name "rob1_5" -p1 -13 -p4 -13 -p6 2 -p7 30 -p8 10
-name "rob1_6" -p1 8 -p4 8 -p6 2 -p7 30 -p8 10
-name "rob2_1" -p1 47 -p4 47 -p6 2 -p7 30 -p8 10
-name "rob2_2" -p1 -5 -p4 -5 -p6 2 -p7 30 -p8 15
-name "rob2_3" -p1 -41 -p4 -41 -p6 2 -p7 30 -p8 15
-name "rob2_4" -p1 8 -p4 8 -p6 2 -p7 30 -p8 10
-name "rob2_5" -p1 -13 -p4 -13 -p6 2 -p7 30 -p8 10
-name "rob2_6" -p1 8 -p4 8 -p6 2 -p7 30 -p8 10

View File

@ -0,0 +1 @@
PROC:CFG_1.0:6:0::

View File

@ -0,0 +1,34 @@
SIO:CFG_1.0:6:1::
#
COM_PHY_CHANNEL:
-Name "COM1" -Connector "COM1"
#
COM_TRP:
-Name "TCPIP1" -Type "TCP/IP" -PhyChannel ""
#
ETHERNET_PORT:
-Name "X2"
-Name "X3"
-Name "X4"
-Name "X5"
-Name "X6"
#
STATIC_VLAN:
-Name "X5" -Interface "LAN3"
#
DNSC:
-Name "DNSC"
#
RSE_CONFIG:
-Name "RSCON"

View File

@ -0,0 +1,92 @@
SYS:CFG_1.0:6:0::
#
LOCALIZATION:
-Name "Language" -Value "en"
#
CAB_REGAIN_DIST:
-Tcp_dist 0.05 -Tcp_rot 0.2 -Ext_dist 0.05 -Ext_rot 0.2
-Name "AUTO" -Tcp_dist 0.5 -Ext_dist 0.5
-Name "StartMove" -Tcp_dist 0.01 -Tcp_rot 0.35 -Ext_dist 0.01\
-Ext_rot 0.35
#
MANFS_LIMIT:
-name "LIMITFLAG" -text_id 30,82 -mode "0"
#
HOTEDIT_MODPOS:
-name "modpos" -type -tuning_in_auto
#
RUNCHN_BOOL:
-Name "SoftAS" -Select
-Name "SoftGS" -Select
-Name "SoftSS" -Select
-Name "SoftES"
#
AUTO_COND_RESET:
-name "AllDebugSettings" -reset "NO"
#
CAB_TASK_MODULES:
-File "HOME:/user.sys" -ModName "user" -AllTask
#
RUN_MODE_SETTINGS:
-name "AutoToManual"
-name "ManualToAuto"
#
SYS_MISC:
-Name "NoOfRetry" -Value 4
-Name "SimulateMenu" -Value 1
-Name "ModalPayLoadMode" -Value 1
-Name "PayloadsInWristCoords"
-Name "StationaryPayLoadMode"
-Name "CollisionErrorHandling"
-Name "BrakeMaintenance" -Value 1
-Name "RapidLogging" -Value 1
-Name "StepOutNoStepin"
-Name "QueueBackup"
#
CAB_TASKS:
-Name "T_ROB1" -Type "NORMAL" -UseMechanicalUnitGroup "rob1" -MotionTask
-Name "T_ROB2" -Type "NORMAL" -UseMechanicalUnitGroup "rob2" -MotionTask
#
MECHANICAL_UNIT_GROUP:
-Name "rob1" -Robot "ROB_1" -UseMotionPlanner "motion_planner_1"
-Name "rob2" -Robot "ROB_2" -UseMotionPlanner "motion_planner_2"
#
SUPPRESS_ELOG:
-Name "SyncId"
#
CYCLIC_BOOL:
-Name "RemoveAtPpToMain"
-Name "ErrorMode"
-Name "RecoveryMode" -Value 1

5
Project_1/README.md Executable file
View File

@ -0,0 +1,5 @@
# Project_1
An interactive simulation of two robotic arms. Intended to be run inside ABB Robot Studio.
Targets RobotWare 6.11.03.00

Binary file not shown.

0
Project_1/VRM_proj1.rssln Executable file
View File

View File

@ -0,0 +1,4 @@
MODULE CalibData
PERS tooldata Servo:=[TRUE,[[0,0,114.2],[1,0,0,0]],[0.226,[8.9,12.3,48.7],[1,0,0,0],0.00021,0.00024,0.00009]];
PERS tooldata VaccumOne:=[TRUE,[[63.5,18.5,37.5],[0.707106781,0,0.707106781,0]],[0.226,[8.9,12.3,48.7],[1,0,0,0],0.00021,0.00024,0.00009]];
ENDMODULE

View File

@ -0,0 +1,153 @@
MODULE Module1
CONST robtarget T_Vacuum_0:=[[569.499621149,18.499681552,825.6],[0,0,1,0],[-1,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget T_Servo_0:=[[569.499583396,18.499694248,825.600008618],[-0.000000023,-0.000000025,1,0.00000004],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget T_A1_approach:=[[318.326,-160.729,129.35],[0,0,1,0],[-1,-1,-1,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget T_A2_approach:=[[405.826,-159.341,279.35],[0,0,1,0],[-1,-1,0,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget T_A3_approach:=[[493.326,-159.341,129.35],[0,0,1,0],[-1,-1,-1,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget T_B1_approach:=[[318.326,140.659,329.35],[0,0,1,0],[0,0,-1,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget T_B2_approach:=[[405.826,140.659,279.35],[0,0,1,0],[0,0,-1,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget T_B3_approach:=[[493.326,140.659,179.35],[0,0,1,0],[0,0,-1,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget T_A1:=[[318.326,-160.729,29.35],[0,0,1,0],[-1,-1,-1,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget T_A2:=[[405.826,-159.341,29.35],[0,0,1,0],[-1,-1,-1,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget T_A3:=[[493.326,-159.341,29.35],[0,0,1,0],[-1,-1,-1,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget T_B1:=[[318.326,140.659,29.35],[0,0,1,0],[0,0,0,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget T_B2:=[[405.826,140.659,29.35],[0,0,1,0],[0,0,0,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget T_B3:=[[493.326,140.659,29.35],[0,0,1,0],[0,0,0,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget T_A_drop_approach:=[[-49.164,-389.932,250],[0,0,1,0],[-2,-2,0,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget T_B_drop_approach:=[[126.126,-389.841,279.35],[0,0,1,0],[-1,-1,0,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget T_Plate_A_drop:=[[-49.164,-389.932,29.35],[0,0,1,0],[-2,-2,-1,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget T_Plate_B_drop:=[[126.126,-389.841,29.35],[0,0,1,0],[-1,-1,-1,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget T_Plate_approach:=[[38.5400092,-389.885016,237.5],[-0.000000023,-0.000000025,1,0.00000004],[-1,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget T_Plate:=[[38.540000368,-389.88500064,45.5],[-0.000000023,-0.000000025,1,0.00000004],[-1,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget T_Plate_drop_approach:=[[188.849,-769.784,375.84],[-0.000000023,-0.000000025,1,0.00000004],[-1,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget T_Plate_drop:=[[188.849,-769.784,175.84],[-0.000000023,-0.000000025,1,0.00000004],[-1,-1,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
VAR num robot0_state:=0;
VAR num product := 0;
PROC main()
TEST robot0_state
CASE 0:
! Zero positions
PulseDO do_pos0;
MoveAbsJ [[0,0,0,0,0,0], [9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]], v1000, fine, tool0;
! Wait for input from station
WaitDI di_productChosen, 1;
robot0_state := 1;
CASE 1:
TEST product
CASE 0:
Path_10_act;
CASE 1:
Path_20_act;
CASE 2:
Path_30_act;
ENDTEST
Path_40_act;
robot0_state := 2;
CASE 2:
MoveAbsJ [[0,0,0,0,0,0], [9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]], v1000, fine, tool0;
ENDTEST
ENDPROC
PROC Path_10_act()
MoveJ T_A1_approach,v1000,z100,VaccumOne\WObj:=wobj0;
MoveL T_A1,v1000,fine,VaccumOne\WObj:=wobj0;
WaitTime 0.1;
PulseDO do_attA1;
WaitTime 0.1;
MoveL T_A1_approach,v1000,z100,VaccumOne\WObj:=wobj0;
MoveL T_A_drop_approach,v1000,z100,VaccumOne\WObj:=wobj0;
MoveL T_Plate_A_drop,v1000,fine,VaccumOne\WObj:=wobj0;
WaitTime 0.1;
PulseDO do_detA1;
WaitTime 0.1;
MoveL T_A_drop_approach,v1000,z100,VaccumOne\WObj:=wobj0;
MoveJ T_B1_approach,v1000,z100,VaccumOne\WObj:=wobj0;
MoveL T_B1,v1000,fine,VaccumOne\WObj:=wobj0;
WaitTime 0.1;
PulseDO do_attB1;
WaitTime 0.1;
MoveL T_B1_approach,v1000,z100,VaccumOne\WObj:=wobj0;
MoveJ T_B_drop_approach,v1000,z100,VaccumOne\WObj:=wobj0;
MoveL T_Plate_B_drop,v1000,fine,VaccumOne\WObj:=wobj0;
WaitTime 0.1;
PulseDO do_detB1;
WaitTime 0.1;
MoveJ T_B_drop_approach,v1000,z100,VaccumOne\WObj:=wobj0;
ENDPROC
PROC Path_20_act()
MoveJ T_A2_approach,v1000,z100,VaccumOne\WObj:=wobj0;
MoveL T_A2,v1000,fine,VaccumOne\WObj:=wobj0;
WaitTime 0.1;
PulseDO do_attA2;
WaitTime 0.1;
MoveL T_A2_approach,v1000,z100,VaccumOne\WObj:=wobj0;
MoveL T_A_drop_approach,v1000,z100,VaccumOne\WObj:=wobj0;
MoveL T_Plate_A_drop,v1000,fine,VaccumOne\WObj:=wobj0;
WaitTime 0.1;
PulseDO do_detA2;
WaitTime 0.1;
MoveL T_A_drop_approach,v1000,z100,VaccumOne\WObj:=wobj0;
MoveJ T_B2_approach,v1000,z100,VaccumOne\WObj:=wobj0;
MoveL T_B2,v1000,fine,VaccumOne\WObj:=wobj0;
WaitTime 0.1;
PulseDO do_attB2;
WaitTime 0.1;
MoveL T_B2_approach,v1000,z100,VaccumOne\WObj:=wobj0;
MoveL T_B_drop_approach,v1000,z100,VaccumOne\WObj:=wobj0;
MoveL T_Plate_B_drop,v1000,fine,VaccumOne\WObj:=wobj0;
WaitTime 0.1;
PulseDO do_detB2;
WaitTime 0.1;
MoveL T_B_drop_approach,v1000,z100,VaccumOne\WObj:=wobj0;
ENDPROC
PROC Path_30_act()
MoveJ T_A3_approach,v1000,z100,VaccumOne\WObj:=wobj0;
MoveL T_A3,v1000,fine,VaccumOne\WObj:=wobj0;
WaitTime 0.1;
PulseDO do_attA3;
WaitTime 0.1;
MoveL T_A3_approach,v1000,z100,VaccumOne\WObj:=wobj0;
MoveJ T_A_drop_approach,v1000,z100,VaccumOne\WObj:=wobj0;
MoveL T_Plate_A_drop,v1000,fine,VaccumOne\WObj:=wobj0;
WaitTime 0.1;
PulseDO do_detA3;
WaitTime 0.1;
MoveL T_A_drop_approach,v1000,z100,VaccumOne\WObj:=wobj0;
MoveJ T_B3_approach,v1000,z100,VaccumOne\WObj:=wobj0;
MoveL T_B3,v1000,fine,VaccumOne\WObj:=wobj0;
WaitTime 0.1;
PulseDO do_attB3;
WaitTime 0.1;
MoveL T_B3_approach,v1000,z100,VaccumOne\WObj:=wobj0;
MoveJ T_B_drop_approach,v1000,z100,VaccumOne\WObj:=wobj0;
MoveL T_Plate_B_drop,v1000,fine,VaccumOne\WObj:=wobj0;
WaitTime 0.1;
PulseDO do_detB3;
WaitTime 0.1;
MoveL T_B_drop_approach,v1000,z100,VaccumOne\WObj:=wobj0;
ENDPROC
PROC Path_40_act()
PulseDO do_readyGrip0;
MoveJ T_Plate_approach,v1000,z100,Servo\WObj:=wobj0;
MoveL T_Plate,v1000,fine,Servo\WObj:=wobj0;
WaitTime 0.1;
PulseDO do_gripGrip0;
PulseDO do_attPlate;
WaitTime 0.1;
MoveL T_Plate_approach,v1000,z100,Servo\WObj:=wobj0;
MoveL T_Plate_drop_approach,v1000,z100,Servo\WObj:=wobj0;
MoveL T_Plate_drop,v1000,fine,Servo\WObj:=wobj0;
WaitTime 0.1;
PulseDO do_readyGrip0;
PulseDO do_detPlate;
WaitTime 0.1;
MoveL T_Plate_drop_approach,v1000,z20,Servo\WObj:=wobj0;
WaitTime 0.3;
PulseDO do_plateRdy;
PulseDO do_homeGrip0;
MoveL T_Servo_0,v1000,z100,Servo\WObj:=wobj0;
ENDPROC
ENDMODULE

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1" ?>
<Program>
<Module>CalibData.mod</Module>
<Module>Module1.mod</Module>
</Program>

View File

@ -0,0 +1,4 @@
MODULE CalibData
PERS tooldata Servo:=[TRUE,[[0,0,114.2],[1,0,0,0]],[0.226,[8.9,12.3,48.7],[1,0,0,0],0.00021,0.00024,0.00009]];
PERS tooldata VaccumOne:=[TRUE,[[63.5,18.5,37.5],[0.707106781,0,0.707106781,0]],[0.226,[8.9,12.3,48.7],[1,0,0,0],0.00021,0.00024,0.00009]];
ENDMODULE

View File

@ -0,0 +1,95 @@
MODULE Module1
CONST robtarget T_Vacuum1_0:=[[590.690255644,-3249.342571232,825.6],[0,0,1,0],[-1,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget T_Servo1_0:=[[590.690255644,-3249.342571232,825.6],[0,0.707106781,0.707106781,0],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget T_Box_Lift_approach:=[[534.319,-3218.803,434.087],[0,0,1,0],[0,0,0,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget T_Box_Lift:=[[534.319,-3218.803,34.087],[0,0,1,0],[0,0,-1,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget T_Box_Intermediate:=[[517.234522163,-3699.371524499,310.765429546],[0.000260405,-0.388811853,-0.921316982,0.000542116],[-1,0,-1,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget T_Box_Conv_approach:=[[-92.911,-3931.314,423.19],[0,0.707106781,0.707106781,0],[-2,-1,0,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget T_Box_Conv_approach1:=[[-65.83563274,-3871.631380514,353.993535883],[0.006565919,-0.767745501,-0.640511913,0.016377505],[-2,0,-1,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget T_Box_Conv:=[[-92.879,-3829.582,173.19],[0,0.707106781,0.707106781,0],[-2,-1,0,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget T_Plate_ConvEnd_ap:=[[188.881,-2718.465,334],[0,0,1,0],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget T_Plate_ConvEnd:=[[188.881,-2718.465,184.03],[0,0,1,0],[0,0,0,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget T_Plate_Boxed_approach:=[[-93.122,-3792.117,412.433],[0,0.707106781,0.707106781,0],[-2,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget T_Plate_Boxed:=[[-93.122,-3792.117,212.433],[0,0.707106781,0.707106781,0],[-2,0,-1,0],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget T_Lid_approach:=[[425.927,-3606.283,267.2],[0,0,1,0],[-1,-1,0,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget T_Lid:=[[424.931,-3606.285,17.2],[0,0,1,0],[-1,-1,-1,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget T_LidOn_approach2:=[[-92.859,-3792.015,331.34],[0,0,1,0],[-2,-2,0,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
CONST robtarget T_LidOn:=[[-121.479,-3791.215,237.49],[0,0,1,0],[-2,-2,0,1],[9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]];
VAR num robot1_state := 0;
PROC main()
TEST robot1_state
CASE 0:
MoveAbsJ [[0,0,0,0,0,0], [9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]], v1000, fine, tool0;
WaitTime 0.5;
Path_10_act;
MoveAbsJ [[1.86,22.04,-43.98,0,112,1.86], [9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]], v1000, fine, tool0;
robot1_state := 1;
CASE 1:
WaitDI di_plateArr, 1;
Path_20_act;
robot1_state := 2;
CASE 2:
Path_30_act;
robot1_state := 3;
CASE 3:
MoveAbsJ [[0,0,0,0,0,0], [9E+09,9E+09,9E+09,9E+09,9E+09,9E+09]], v1000, fine, tool0;
ENDTEST
ENDPROC
PROC Path_10_act()
MoveJ T_Vacuum1_0,v1000,z100,VaccumOne\WObj:=wobj0;
MoveJ T_Box_Lift_approach,v1000,z100,VaccumOne\WObj:=wobj0;
MoveJ T_Box_Lift,v1000,fine,VaccumOne\WObj:=wobj0;
WaitTime 0.1;
PulseDO do_attBox;
WaitTime 0.1;
MoveJ T_Box_Lift_approach,v1000,z100,VaccumOne\WObj:=wobj0;
MoveL T_Box_Intermediate,v1000,z200,VaccumOne\WObj:=wobj0;
MoveL T_Box_Conv_approach1,v1000,z100,VaccumOne\WObj:=wobj0;
MoveJ T_Box_Conv,v1000,fine,VaccumOne\WObj:=wobj0;
WaitTime 0.1;
PulseDO do_detBox;
WaitTime 0.1;
MoveJ T_Box_Conv_approach,v1000,z100,VaccumOne\WObj:=wobj0;
MoveJ T_Servo1_0,v1000,z100,Servo\WObj:=wobj0;
ENDPROC
PROC Path_20_act()
MoveJ T_Plate_ConvEnd_ap,v1000,z100,Servo\WObj:=wobj0;
PulseDO do_readyGrip1;
MoveJ T_Plate_ConvEnd,v1000,fine,Servo\WObj:=wobj0;
WaitTime 0.1;
PulseDO do_gripGrip1;
PulseDO do_attPlate1;
WaitTime 0.1;
MoveJ T_Plate_ConvEnd_ap,v1000,z100,Servo\WObj:=wobj0;
!MoveJ T_Plate_Intermediate,v1000,z100,Servo\WObj:=wobj0;
MoveJ T_Plate_Boxed_approach,v1000,z100,Servo\WObj:=wobj0;
MoveJ T_Plate_Boxed,v1000,fine,Servo\WObj:=wobj0;
WaitTime 0.1;
PulseDO do_readyGrip1;
PulseDO do_detPlate1;
WaitTime 0.1;
MoveJ T_Plate_Boxed_approach,v1000,z20,Servo\WObj:=wobj0;
WaitTime 0.3;
PulseDO do_homeGrip1;
ENDPROC
PROC Path_30_act()
MoveJ T_Lid_approach,v1000,z100,VaccumOne\WObj:=wobj0;
MoveJ T_Lid,v1000,fine,VaccumOne\WObj:=wobj0;
WaitTime 0.1;
PulseDO do_attLid;
WaitTime 0.1;
MoveJ T_Lid_approach,v1000,z100,VaccumOne\WObj:=wobj0;
MoveJ T_LidOn_approach2,v1000,z100,VaccumOne\WObj:=wobj0;
MoveJ T_LidOn,v1000,fine,VaccumOne\WObj:=wobj0;
WaitTime 0.1;
PulseDO do_detLid;
WaitTime 0.1;
MoveJ T_LidOn_approach2,v1000,z50,VaccumOne\WObj:=wobj0;
WaitTime 0.3;
PulseDO do_boxRdy;
ENDPROC
ENDMODULE

View File

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="ISO-8859-1" ?>
<Program>
<Module>CalibData.mod</Module>
<Module>Module1.mod</Module>
</Program>