def Kelvin(): set_standard_analog_input_domain(0, 1) set_standard_analog_input_domain(1, 1) set_tool_analog_input_domain(0, 1) set_tool_analog_input_domain(1, 1) set_analog_outputdomain(0, 0) set_analog_outputdomain(1, 0) set_tool_voltage(24) set_input_actions_to_default() set_tcp(p[0.0,0.0,0.0,0.0,0.0,0.0]) set_payload(0.3) set_gravity([0.0, 0.0, 9.82]) global Dock_D_Home=p[0.11028, 0.34476, 0.73566, -0.02543, 0.00988, 1.97567] global Dock_C_Home=p[-0.06200, -0.56540, 0.06400, 1.84510, 2.22600, 2.53700] global Dock_B_Home=p[0.10920, -0.55700, 0.06500, -0.77340, -1.54470, -1.28220] global Dock_X_Home=p[0.16900, -0.33500, 0.06500, 0.32770, -1.55610, -0.27200] global Dock_A_Home=p[0.16900, -0.33500, 0.06500, 0.32770, -1.55610, -0.27200] def Dock_A_PickUp(): set_payload(0.4) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #40

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_A_Back), a=1.2, v=0.25) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_A_Open), a=1.2, v=0.25) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_A_Locking), a=1.2, v=0.25) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_A_Center), a=1.2, v=0.25) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_A_Front), a=1.2, v=0.25) global ToolFree=0 end def Dock_A_DropOff(): set_payload(0.4) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #41

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' global ToolFree=1 set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_A_Front), a=1.2, v=0.25) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_A_Start), a=1.2, v=0.25) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_A_Opening), a=1.2, v=0.25) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_A_Open), a=1.2, v=0.25) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_A_Back), a=1.2, v=0.25) end def Dock_B_PickUp(): set_payload(0.4) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #42

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_B_Back), a=1.2, v=0.25) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_B_Open), a=1.2, v=0.25) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_B_Locking), a=1.2, v=0.25) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_B_Center), a=1.2, v=0.25) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_B_Front), a=1.2, v=0.25) global ToolFree=0 end def Dock_B_DropOff(): set_payload(0.4) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #43

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' global ToolFree=1 set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_B_Front), a=1.2, v=0.25) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_B_Start), a=1.2, v=0.25) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_B_Opening), a=1.2, v=0.25) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_B_Open), a=1.2, v=0.25) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_B_Back), a=1.2, v=0.25) end def Dock_C_PickUp(): set_payload(0.4) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #44

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_C_Back), a=1.2, v=0.25) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_C_Open), a=1.2, v=0.25) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_C_Locking), a=1.2, v=0.25) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_C_Center), a=1.2, v=0.25) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_C_Front), a=1.2, v=0.25) global ToolFree=0 end def Dock_C_DropOff(): set_payload(0.4) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #45

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' global ToolFree=1 set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_C_Front), a=0.2, v=0.1) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_C_Start), a=0.2, v=0.1) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_C_Opening), a=0.2, v=0.1) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_C_Open), a=0.2, v=0.1) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_C_Back), a=0.2, v=0.1) end def Dock_D_PickUp(): set_payload(0.98) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #46

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_D_Back), a=0.2, v=0.1) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_D_Open), a=0.2, v=0.1) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_D_Locking), a=0.2, v=0.1) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_D_Center), a=0.2, v=0.1) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_D_Front), a=0.2, v=0.1) global ToolFree=0 end def Dock_D_DropOff(): set_payload(0.98) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #47

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' global ToolFree=1 set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_D_Front), a=0.8, v=0.2) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_D_Start), a=0.8, v=0.2) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_D_Opening), a=0.8, v=0.2) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_D_Open), a=0.8, v=0.2) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_D_Back), a=0.8, v=0.2) end def Dock_M_PickUp(): # 'Finish manual tool shift at Dock-M' set_payload(0.4) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) global ToolFree=0 # 'Restart the live check on the tool connection. Robot will stop if the tool is released after this step' sleep(0.5) end def Dock_M_DropOff(): # 'Prepare for manual tool shift at Dock-M' set_payload(0.4) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) global ToolFree=1 # 'Tool can now be released without trigging a safety stop of the program' sleep(0.5) end def Transit_A_Back_to_B_Back(): set_payload(0.15) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #1

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_A_Back), a=1.2, v=0.25) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], BackA_1_B), a=1.2, v=0.25, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], BackA_2_B), a=1.2, v=0.25, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_B_Back), a=1.2, v=0.25) end def Transit_A_Back_to_C_Back(): set_payload(0.15) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #2

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_A_Back), a=1.2, v=0.25) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], BackA_1_C), a=1.2, v=0.25, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], BackA_2_C), a=1.2, v=0.25, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_C_Back), a=1.2, v=0.25) end def Transit_A_Back_to_D_Back(): set_payload(0.15) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #3

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_A_Back), a=1.2, v=0.25) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], BackA_1_D), a=1.2, v=0.25, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], BackA_2_D), a=1.2, v=0.25, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_D_Back), a=1.2, v=0.25) end def Transit_A_Back_to_M_Dock(): set_payload(0.15) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #4

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_A_Back, a=1.3962634015954636, v=1.0471975511965976) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(BackA_1_M, a=1.3962634015954636, v=1.0471975511965976, r=0.02) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(BackA_2_M, a=1.3962634015954636, v=1.0471975511965976, r=0.02) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_M_Center, a=1.3962634015954636, v=1.0471975511965976) end def Transit_A_Back_to_Ready(): set_payload(0.2) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #5

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_A_Back, a=1.3962634015954636, v=1.0471975511965976) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(BackA_1_R, a=1.3962634015954636, v=1.0471975511965976, r=0.03) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(BackA_2_R, a=1.3962634015954636, v=1.0471975511965976, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready, a=1.3962634015954636, v=1.0471975511965976) end def Transit_B_Back_to_A_Back(): set_payload(0.15) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #6

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_B_Back), a=1.2, v=0.25) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], BackA_2_B), a=1.2, v=0.25, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], BackA_1_B), a=1.2, v=0.25, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_A_Back), a=1.2, v=0.25) end def Transit_B_Back_to_C_Back(): set_payload(0.15) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #6

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_B_Back), a=1.2, v=0.25) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], BackB_1_C), a=1.2, v=0.25, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], BackB_2_C), a=1.2, v=0.25, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_C_Back), a=1.2, v=0.25) end def Transit_B_Back_to_D_Back(): set_payload(0.15) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #6

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_B_Back, a=1.3962634015954636, v=1.0471975511965976) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(BackB_1_D, a=1.3962634015954636, v=1.0471975511965976, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(BackB_2_D, a=1.3962634015954636, v=1.0471975511965976, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_D_Back, a=1.3962634015954636, v=1.0471975511965976) end def Transit_B_Back_to_M_Dock(): set_payload(0.15) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #6

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_B_Back, a=1.3962634015954636, v=1.0471975511965976) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(BackB_1_M, a=1.3962634015954636, v=1.0471975511965976, r=0.02) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(BackB_2_M, a=1.3962634015954636, v=1.0471975511965976, r=0.02) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_M_Center, a=1.3962634015954636, v=1.0471975511965976) end def Transit_B_Back_to_Ready(): set_payload(0.2) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #6

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_B_Back, a=1.3962634015954636, v=1.0471975511965976) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(BackB_1_R, a=1.3962634015954636, v=1.0471975511965976, r=0.02) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(BackB_2_R, a=1.3962634015954636, v=1.0471975511965976, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready, a=1.3962634015954636, v=1.0471975511965976) end def Transit_C_Back_to_A_Back(): set_payload(0.15) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #6

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_C_Back), a=1.2, v=0.25, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], BackA_2_C), a=1.2, v=0.25, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], BackA_1_C), a=1.2, v=0.25, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_A_Back), a=1.2, v=0.25) end def Transit_C_Back_to_B_Back(): set_payload(0.15) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #6

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_C_Back), a=1.2, v=0.25, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], BackB_2_C), a=1.2, v=0.25, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], BackB_1_C), a=1.2, v=0.25, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_B_Back), a=1.2, v=0.25) end def Transit_C_Back_to_D_Back(): set_payload(0.15) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #6

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_C_Back, a=1.3962634015954636, v=1.0471975511965976) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(BackC_1_D, a=1.3962634015954636, v=1.0471975511965976, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(BackC_2_D, a=1.3962634015954636, v=1.0471975511965976, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_D_Back, a=1.3962634015954636, v=1.0471975511965976) end def Transit_C_Back_to_M_Dock(): set_payload(0.15) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #14

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_C_Back, a=1.3962634015954636, v=1.0471975511965976) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(BackC_1_M, a=1.3962634015954636, v=1.0471975511965976, r=0.02) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(BackC_2_M, a=1.3962634015954636, v=1.0471975511965976, r=0.02) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_M_Center, a=1.3962634015954636, v=1.0471975511965976) end def Transit_C_Back_to_Ready(): set_payload(0.2) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #15

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_C_Back, a=1.3962634015954636, v=1.0471975511965976) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(BackC_1_R, a=1.3962634015954636, v=1.0471975511965976, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(BackC_2_R, a=1.3962634015954636, v=1.0471975511965976, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready, a=1.3962634015954636, v=1.0471975511965976) end def Transit_D_Back_to_A_Back(): set_payload(0.15) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #16

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_D_Back, a=1.3962634015954636, v=1.0471975511965976) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(BackA_2_D, a=1.3962634015954636, v=1.0471975511965976, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(BackA_1_D, a=1.3962634015954636, v=1.0471975511965976, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_B_Back, a=1.3962634015954636, v=1.0471975511965976) end def Transit_D_Back_to_B_Back(): set_payload(0.15) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #17

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_D_Back, a=1.3962634015954636, v=1.0471975511965976) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(BackB_2_D, a=1.3962634015954636, v=1.0471975511965976, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(BackB_1_D, a=1.3962634015954636, v=1.0471975511965976, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_B_Back, a=1.3962634015954636, v=1.0471975511965976) end def Transit_D_Back_to_C_Back(): set_payload(0.15) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #18

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_D_Back, a=1.3962634015954636, v=1.0471975511965976) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(BackC_2_D, a=1.3962634015954636, v=1.0471975511965976, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(BackC_1_D, a=1.3962634015954636, v=1.0471975511965976, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_C_Back, a=1.3962634015954636, v=1.0471975511965976) end def Transit_D_Back_to_M_Dock(): set_payload(0.15) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #19

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_D_Back, a=1.3962634015954636, v=1.0471975511965976) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(BackD_1_M, a=1.3962634015954636, v=1.0471975511965976, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(BackD_2_M, a=1.3962634015954636, v=1.0471975511965976, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_M_Center, a=1.3962634015954636, v=1.0471975511965976) end def Transit_D_Back_to_Ready(): set_payload(0.2) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #20

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_D_Back, a=1.3962634015954636, v=1.0471975511965976) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(BackD_1_R, a=1.3962634015954636, v=1.0471975511965976, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(BackD_2_R, a=1.3962634015954636, v=1.0471975511965976, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready, a=1.3962634015954636, v=1.0471975511965976) end def Transit_M_Dock_to_A_Back(): set_payload(0.15) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #21

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_M_Center, a=1.3962634015954636, v=1.0471975511965976) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(BackA_2_M, a=1.3962634015954636, v=1.0471975511965976, r=0.02) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(BackA_1_M, a=1.3962634015954636, v=1.0471975511965976, r=0.02) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_A_Back, a=1.3962634015954636, v=1.0471975511965976) end def Transit_M_Dock_to_B_Back(): set_payload(0.4) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #22

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_M_Center, a=1.3962634015954636, v=1.0471975511965976) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(BackB_2_M, a=1.3962634015954636, v=1.0471975511965976, r=0.02) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(BackB_1_M, a=1.3962634015954636, v=1.0471975511965976, r=0.02) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_B_Back, a=1.3962634015954636, v=1.0471975511965976) end def Transit_M_Dock_to_C_Back(): set_payload(0.4) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #23

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_M_Center, a=1.3962634015954636, v=1.0471975511965976) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(BackC_2_M, a=1.3962634015954636, v=1.0471975511965976, r=0.02) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(BackC_1_M, a=1.3962634015954636, v=1.0471975511965976, r=0.02) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_C_Back, a=1.3962634015954636, v=1.0471975511965976) end def Transit_M_Dock_to_D_Back(): set_payload(0.4) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #24

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_M_Center, a=1.3962634015954636, v=1.0471975511965976) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(BackD_2_M, a=1.3962634015954636, v=1.0471975511965976, r=0.02) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(BackD_1_M, a=1.3962634015954636, v=1.0471975511965976) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_D_Back, a=1.3962634015954636, v=1.0471975511965976) end def Transit_Ready_to_A_Back(): set_payload(0.2) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #25

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready, a=1.3962634015954636, v=1.0471975511965976) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(BackA_2_R, a=1.3962634015954636, v=1.0471975511965976, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(BackA_1_R, a=1.3962634015954636, v=1.0471975511965976, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_A_Back, a=1.3962634015954636, v=1.0471975511965976) end def Transit_Ready_to_A_Front(): set_payload(0.2) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #26

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready, a=1.3962634015954636, v=1.0471975511965976) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready_1_A, a=1.3962634015954636, v=1.0471975511965976, r=0.02) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready_2_A, a=1.3962634015954636, v=1.0471975511965976, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready_3_A, a=1.3962634015954636, v=1.0471975511965976) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_A_Front, a=1.3962634015954636, v=1.0471975511965976) end def Transit_A_Front_to_Ready(): set_payload(0.2) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #27

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_A_Front, a=1.3962634015954636, v=1.0471975511965976) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready_3_A, a=1.3962634015954636, v=1.0471975511965976, r=0.02) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready_2_A, a=1.3962634015954636, v=1.0471975511965976, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready_1_A, a=1.3962634015954636, v=1.0471975511965976, r=0.02) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready, a=1.3962634015954636, v=1.0471975511965976) end def Transit_Ready_to_B_Back(): set_payload(0.2) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #28

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready, a=1.3962634015954636, v=1.0471975511965976) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(BackB_2_R, a=1.3962634015954636, v=1.0471975511965976, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(BackB_1_R, a=1.3962634015954636, v=1.0471975511965976, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_B_Back, a=1.3962634015954636, v=1.0471975511965976) end def Transit_Ready_to_B_Front(): set_payload(0.2) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #29

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready, a=1.3962634015954636, v=1.0471975511965976) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready_1_B, a=1.3962634015954636, v=1.0471975511965976, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready_2_B, a=1.3962634015954636, v=1.0471975511965976, r=0.03) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready_3_B, a=1.3962634015954636, v=1.0471975511965976, r=0.02) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_B_Front, a=1.3962634015954636, v=1.0471975511965976) end def Transit_B_Front_to_Ready(): set_payload(0.2) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #31

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_B_Front, a=1.3962634015954636, v=1.0471975511965976) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready_3_B, a=1.3962634015954636, v=1.0471975511965976, r=0.02) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready_2_B, a=1.3962634015954636, v=1.0471975511965976, r=0.03) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready_1_B, a=1.3962634015954636, v=1.0471975511965976, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready, a=1.3962634015954636, v=1.0471975511965976) end def Transit_Ready_to_C_Back(): set_payload(0.2) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #31

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Ready), a=1.2, v=0.25) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], BackC_2_R), a=1.2, v=0.25, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], BackC_1_R), a=1.2, v=0.25, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_C_Back), a=1.2, v=0.25) end def Transit_Ready_to_C_Front(): set_payload(0.2) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #32

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready, a=1.3962634015954636, v=1.0471975511965976) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready_1_C, a=1.3962634015954636, v=1.0471975511965976, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready_2_C, a=1.3962634015954636, v=1.0471975511965976, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready_3_C, a=1.3962634015954636, v=1.0471975511965976, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_C_Front, a=1.3962634015954636, v=1.0471975511965976) end def Transit_C_Front_to_Ready(): set_payload(0.2) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #33

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_C_Front, a=1.3962634015954636, v=1.0471975511965976) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready_3_C, a=1.3962634015954636, v=1.0471975511965976, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready_2_C, a=1.3962634015954636, v=1.0471975511965976, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready_1_C, a=1.3962634015954636, v=1.0471975511965976, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready, a=1.3962634015954636, v=1.0471975511965976) end def Transit_Ready_to_D_Back(): set_payload(0.2) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #34

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Ready), a=1.2, v=0.25) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], BackD_2_R), a=1.2, v=0.25, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], BackD_1_R), a=1.2, v=0.25, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_D_Back), a=1.2, v=0.25) end def Transit_Ready_to_D_Front(): set_payload(0.2) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #35

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready, a=1.3962634015954636, v=1.0471975511965976) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready_1_D, a=1.3962634015954636, v=1.0471975511965976, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready_2_D, a=1.3962634015954636, v=1.0471975511965976, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready_3_D, a=1.3962634015954636, v=1.0471975511965976, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_C_Front, a=1.3962634015954636, v=1.0471975511965976) end def Transit_D_Front_to_Ready(): set_payload(0.2) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #36

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_D_Front, a=1.3962634015954636, v=1.0471975511965976) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready_3_D, a=1.3962634015954636, v=1.0471975511965976, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready_2_D, a=1.3962634015954636, v=1.0471975511965976, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready_1_D, a=1.3962634015954636, v=1.0471975511965976, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready, a=1.3962634015954636, v=1.0471975511965976) end def Transit_Ready_to_Dock_M(): set_payload(0.2) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #37

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready, a=1.3962634015954636, v=1.0471975511965976) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready_1_M, a=1.3962634015954636, v=1.0471975511965976, r=0.02) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready_2_M, a=1.3962634015954636, v=1.0471975511965976, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready_3_M, a=1.3962634015954636, v=1.0471975511965976, r=0.03) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_M_Center, a=1.3962634015954636, v=1.0471975511965976) end def Transit_Dock_M_to_Ready(): set_payload(0.2) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) popup("

STOP

Stop-Popup #38

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) halt # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Dock_M_Center, a=1.3962634015954636, v=1.0471975511965976) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready_3_M, a=1.3962634015954636, v=1.0471975511965976, r=0.03) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready_2_M, a=1.3962634015954636, v=1.0471975511965976, r=0.05) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready_1_M, a=1.3962634015954636, v=1.0471975511965976, r=0.01) set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready, a=1.3962634015954636, v=1.0471975511965976) end def PowerCheck(): if (get_tool_analog_in(1)<0.4*Tool_ID_Adjust): popup("

No power supply!

Maybe the cable is not connected?

Unde ''I/O'' check the power setting for the tool
", "Message", False, False, blocking=True) end end def HookCheckOpen(): if (get_tool_analog_in(1)>0.5*Tool_ID_Adjust): if (Lang == 1): popup("

Ikke klar til at sammenkoble

Krogen er ikke i fuld åben position
Drej låseringn til den fuldt åbne position
og prov igen", "Warning", True, False, blocking=True) else: if (Lang == 2): popup("

Not ready for connection

Hook is not in full open position
Turn the locking ring to the open position.


Press ''Continue'' to try again ", "Warning", True, False, blocking=True) else: if (Lang == 3): popup("

Nicht bereit für Anschluss

Drehen Sie den Sicherungsring in
die vollständige geöffnete Position


Drücken Sie ''Continue'' um es erneut zu versuchen", "Warning", True, False, blocking=True) else: if (Lang == 4): popup("

Pas prêt pour la connexion

Tournez la bague de verrouillage en position complètement ouverte

''Continue'' essaiera de se connecter à un outil", "Warning", True, False, blocking=True) else: if (Lang == 5): popup("

No está listo para la conexión

Gire el anillo de bloqueo a la posición completamente abierta

''Continue'' intentará conectarse a una herramienta", "Warning", True, False, blocking=True) else: popup("

Not ready for connection

Hook is not in full open position
Turn the locking ring to the open position.


Press ''Continue'' to try again ", "Warning", True, False, blocking=True) end end end end end end if (get_tool_analog_in(1)>0.5*Tool_ID_Adjust): if (Lang == 1): popup("

Stadig ikke klar til at sammenkoble

Krogen er ikke i fuld åben position

Drej låseringen til den fuldt åbne position
og robotten vil prøv at sammenkoble", "Warning", True, False, blocking=True) else: if (Lang == 2): popup("

Hook is still not in open position!

Turn the Locking Ring to the full open position

''Continue'' will try to connect to a tool
", "Message", False, False, blocking=True) else: if (Lang == 3): popup("

Der Haken is noch nicht geöffnet

Drehen Sie den Sicherungsring in die
vollständig geöffnete Position


''Continue'' versucht, einer Verbindung
zu einem Werkzeug herzustellen

Le crochet n'est toujours
pas en position ouverte !

Tournez la bague de verrouillage en
position complétement ouverte


''Continue'' essaiera de se connecter à un outil
", "Message", False, False, blocking=True) else: if (Lang == 5): popup("

El gancho aún no está
en posició abierta !

Gire el anillo de bloqueo a la
posición completamente abierta


''Continue'' will try to connect to a tool
", "Message", False, False, blocking=True) else: popup("

Hook is still not in open position!

Turn the Locking Ring to the full open position

''Continue'' will try to connect to a tool
", "Message", False, False, blocking=True) end end end end end end end $ 2227 "HookCheckClosed" def HookCheckClosed(): $ 2228 "If analog_in[3]<4.6*Tool_ID_Adjust" if (get_tool_analog_in(1)<4.6*Tool_ID_Adjust): $ 2229 "HookNotClosed1PopUp" $ 2230 "If Lang≟1" if (Lang == 1): $ 2231 "Popup" popup("

Sammenkoblingen er ikke sikker

Krogen er ikke i låst position
Drej låseringen til den låste position
og prøv igen", "Warning", True, False, blocking=True) else: $ 2232 "ElseIf Lang≟2" if (Lang == 2): $ 2233 "Popup" popup("

Connection is not safe !

Hook is not in locked position!

Turn the locking ring into the locked position
", "Warning", True, False, blocking=True) else: $ 2234 "ElseIf Lang≟3" if (Lang == 3): $ 2235 "Popup" popup("

Verbindung ist nicht sicher!

Der Haken ist nicht verriegelt!

Drehen Sie den sicherungsring in die verriegelte Position
", "Warning", True, False, blocking=True) else: $ 2236 "ElseIf Lang≟4" if (Lang == 4): $ 2237 "Popup" popup("

La connexion n'est pas sûre !

Le crochet n'est pas en position verrouillée !

Tournez la bague de verrouillage en position verrouillée
", "Warning", True, False, blocking=True) else: $ 2238 "ElseIf Lang≟5" if (Lang == 5): $ 2239 "Popup" popup("

La conexión no es segura !

El gancho no está en posición bloqueada !

Gire el anillo de bloqueo a la posición de bloqueo
", "Warning", True, False, blocking=True) else: $ 2240 "Else" $ 2241 "Popup" popup("

Connection is not safe !

Hook is not in locked position!

Turn the locking ring into the locked position
", "Warning", True, False, blocking=True) end end end end end end $ 2242 "If analog_in[3]<4.6*Tool_ID_Adjust" if (get_tool_analog_in(1)<4.6*Tool_ID_Adjust): $ 2243 "HookNotClosed2PopUp" $ 2244 "If Lang≟1" if (Lang == 1): $ 2245 "Popup" popup("

Sammenkoblingen er stadig ikke sikker

Krogen er endnu ikke i låst position
Drej låseringen til den låste position
og prøv igen", "Warning", True, False, blocking=True) else: $ 2246 "ElseIf Lang≟2" if (Lang == 2): $ 2247 "Popup" popup("

Hook is not in locked position!!

Make sure the Locking Ring is
turned to the locking position.


The program will not run before the
Hook is in the locked position
", "Warning", True, False, blocking=True) else: $ 2248 "ElseIf Lang≟3" if (Lang == 3): $ 2249 "Popup" popup("

Der Haken ist nicht verrigelt !!

Stellen Sie sicher, dass der Verriegelungsring in die Verrigelungsposition gedreht ist

Das Programm wird nicht ausgeführt, bevor sich der Hagen in der gesperrten Position befindet

Le crochet n'est pas en
position verrouillée !!

Assurez-vous que la bague de verrouillage
est tournée en position de verrouillage


Le programme ne fonctionnera pas avant que le
crochet ne soit en p", "Warning", True, False, blocking=True) else: $ 2252 "ElseIf Lang≟5" if (Lang == 5): $ 2253 "Popup" popup("

El gancho no está en
posición bloqueada !!

Asegúrese de que el anillo de bloqueo
esté en la posición de bloqueo


El programa no se ejecutará antes de que
el gancho est&e", "Warning", True, False, blocking=True) else: $ 2254 "Else" $ 2255 "Popup" popup("

Hook is not in locked position!!

Make sure the Locking Ring is
turned to the locking position.


The program will not run before the
Hook is in the locked position
", "Warning", True, False, blocking=True) end end end end end end $ 2256 "If analog_in[3]<4.6*Tool_ID_Adjust" if (get_tool_analog_in(1)<4.6*Tool_ID_Adjust): $ 2257 "HookNotClosed2PopUp" $ 2258 "If Lang≟1" if (Lang == 1): $ 2259 "Popup" popup("

Sammenkoblingen er ikke sikker

Krogen er ikke i låst position
Programmet stopper nu !
", "Warning", True, False, blocking=True) else: $ 2260 "ElseIf Lang≟2" if (Lang == 2): $ 2261 "Popup" popup("

Hook not in locked position!!!

Program will stop now!!!

Sorry, but this is for your safety :-(
", "Error", False, True, blocking=True) else: $ 2262 "ElseIf Lang≟3" if (Lang == 3): $ 2263 "Popup" popup("

Der Haken ist nicht verrigelt !!

Das Programm stoppt jetzt

Entschuldigung, aber dies dient Ihrer Sicherheit
", "Warning", True, False, blocking=True) else: $ 2264 "ElseIf Lang≟4" if (Lang == 4): $ 2265 "Popup" popup("

Le crochet n'est pas en
position verrouillée !!

Le programme va s'arrêter maintenant

Désolé, mais c'est pour votre sécurité
", "Warning", True, False, blocking=True) else: $ 2266 "ElseIf Lang≟5" if (Lang == 5): $ 2267 "Popup" popup("

El gancho no está en
posición bloqueada !!

El programa se detendrá ahora

Lo siento, pero esto es por tu seguridad
", "Warning", True, False, blocking=True) else: $ 2268 "Else" $ 2269 "Popup" popup("

Hook not in locked position!!!

Program will stop now!!!

Sorry, but this is for your safety :-(
", "Error", False, True, blocking=True) end end end end end else: $ 2271 "Else" $ 2272 "Wait: 0.1" sleep(0.1) end end def Check_Tool_A_ID(): # 'Suppress all other but the Tool-ID to check for' # 'Tool-ID 0' # 'Tool-ID 1' # 'Tool-ID 2' # 'Tool-ID 3' # 'Tool-ID 4' if ((get_tool_analog_in(1)<8.2*Tool_ID_Adjust) or (get_tool_analog_in(1)>8.6*Tool_ID_Adjust)): if (Lang == 1): popup("

Tool-ID fejl!


Tool ID 4 var forvendtet men blev ikke fundet

Stop programmet og løs problemet
eller
Tryk 'Continue' for at bruge dette værktøj alligevel", "Warning", True, False, blocking=True) else: if (Lang == 2): popup("

Tool-ID mismatch!


Tool ID 4 was expected but not found

Stop the program to solve the problem
or
Press 'Continue' to use this tool anyhow", "Warning", True, False, blocking=True) else: if (Lang == 3): popup("

Tool-ID stimmt nicht überein!


Werkzeug ID 4 wurde erwartet, aber nicht gefunden

Stop um das Problem zu beheben
oder
Drüken 'Continue' um dieses Werkzeug trotzdem zu verwenden", "Warning", True, False, blocking=True) else: if (Lang == 4): popup("

Non concordance d'ID d'outil!


L'outil ID 4 était attendu mais n'a pas été trouvé

Arrêtez le programme pour résoudre le problème
ou
cliquez sur 'Continue' pour", "Warning", True, False, blocking=True) else: if (Lang == 5): popup("

No coinciden los ID de herramienta!


ID de herramienta 4 esperado pero no encontrado

Detenga el programa para resolver el problema
o
presione 'Continue' para usar esta herramienta de todos modos", "Warning", True, False, blocking=True) else: popup("

Tool-ID mismatch!


Tool ID 4 was expected but not found

Stop the program to solve the problem
or
Press 'Continue' to use this tool anyhow", "Warning", True, False, blocking=True) end end end end end end # 'Tool-ID 5' # 'Tool-ID 6' # 'Tool-ID 7' # 'Tool-ID 8' # 'Tool-ID 9' # 'Tool-ID 10' end def Check_Tool_B_ID(): # 'Suppress all other but the Tool-ID to check for' # 'Tool-ID 0' # 'Tool-ID 1' # 'Tool-ID 2' if ((get_tool_analog_in(1)<6.5*Tool_ID_Adjust) or (get_tool_analog_in(1)>6.9*Tool_ID_Adjust)): if (Lang == 1): popup("

Tool-ID fejl!


Tool ID 2 var forvendtet men blev ikke fundet

Stop programmet og løs problemet
eller
Tryk 'Continue' for at bruge dette værktøj alligevel", "Warning", True, False, blocking=True) else: if (Lang == 2): popup("

Tool-ID mismatch!


Tool ID 2 was expected but not found

Stop the program to solve the problem
or
Press 'Continue' to use this tool anyhow", "Warning", True, False, blocking=True) else: if (Lang == 3): popup("

Tool-ID stimmt nicht überein!


Werkzeug ID 2 wurde erwartet, aber nicht gefunden

Stop um das Problem zu beheben
oder
Drüken 'Continue' um dieses Werkzeug trotzdem zu verwenden", "Warning", True, False, blocking=True) else: if (Lang == 4): popup("

Non concordance d'ID d'outil!


L'outil ID 2 était attendu mais n'a pas été trouvé

Arrêtez le programme pour résoudre le problème
ou
cliquez sur 'Continue' pour", "Warning", True, False, blocking=True) else: if (Lang == 5): popup("

No coinciden los ID de herramienta!


ID de herramienta 2 esperado pero no encontrado

Detenga el programa para resolver el problema
o
presione 'Continue' para usar esta herramienta de todos modos", "Warning", True, False, blocking=True) else: popup("

Tool-ID mismatch!


Tool ID 2 was expected but not found

Stop the program to solve the problem
or
Press 'Continue' to use this tool anyhow", "Warning", True, False, blocking=True) end end end end end end # 'Tool-ID 3' # 'Tool-ID 4' # 'Tool-ID 5' # 'Tool-ID 6' # 'Tool-ID 7' # 'Tool-ID 8' # 'Tool-ID 9' # 'Tool-ID 10' end def Check_Tool_C_ID(): # 'Suppress all other but the Tool-ID to check for' # 'Tool-ID 0' # 'Tool-ID 1' # 'Tool-ID 2' # 'Tool-ID 3' # 'Tool-ID 4' if ((get_tool_analog_in(1)<8.2*Tool_ID_Adjust) or (get_tool_analog_in(1)>8.6*Tool_ID_Adjust)): if (Lang == 1): popup("

Tool-ID fejl!


Tool ID 4 var forvendtet men blev ikke fundet

Stop programmet og løs problemet
eller
Tryk 'Continue' for at bruge dette værktøj alligevel", "Warning", True, False, blocking=True) else: if (Lang == 2): popup("

Tool-ID mismatch!


Tool ID 4 was expected but not found

Stop the program to solve the problem
or
Press 'Continue' to use this tool anyhow", "Warning", True, False, blocking=True) else: if (Lang == 3): popup("

Tool-ID stimmt nicht überein!


Werkzeug ID 4 wurde erwartet, aber nicht gefunden

Stop um das Problem zu beheben
oder
Drüken 'Continue' um dieses Werkzeug trotzdem zu verwenden", "Warning", True, False, blocking=True) else: if (Lang == 4): popup("

Non concordance d'ID d'outil!


L'outil ID 4 était attendu mais n'a pas été trouvé

Arrêtez le programme pour résoudre le problème
ou
cliquez sur 'Continue' pour", "Warning", True, False, blocking=True) else: if (Lang == 5): popup("

No coinciden los ID de herramienta!


ID de herramienta 4 esperado pero no encontrado

Detenga el programa para resolver el problema
o
presione 'Continue' para usar esta herramienta de todos modos", "Warning", True, False, blocking=True) else: popup("

Tool-ID mismatch!


Tool ID 4 was expected but not found

Stop the program to solve the problem
or
Press 'Continue' to use this tool anyhow", "Warning", True, False, blocking=True) end end end end end end # 'Tool-ID 5' # 'Tool-ID 6' # 'Tool-ID 7' # 'Tool-ID 8' # 'Tool-ID 9' # 'Tool-ID 10' end def Check_Tool_D_ID(): # 'Suppress all other but the Tool-ID to check for' # 'Tool-ID 0' # 'Tool-ID 1' # 'Tool-ID 2' # 'Tool-ID 3' # 'Tool-ID 4' if ((get_tool_analog_in(1)<8.2*Tool_ID_Adjust) or (get_tool_analog_in(1)>8.6*Tool_ID_Adjust)): if (Lang == 1): popup("

Tool-ID fejl!


Tool ID 4 var forvendtet men blev ikke fundet

Stop programmet og løs problemet
eller
Tryk 'Continue' for at bruge dette værktøj alligevel", "Warning", True, False, blocking=True) else: if (Lang == 2): popup("

Tool-ID mismatch!


Tool ID 4 was expected but not found

Stop the program to solve the problem
or
Press 'Continue' to use this tool anyhow", "Warning", True, False, blocking=True) else: if (Lang == 3): popup("

Tool-ID stimmt nicht überein!


Werkzeug ID 4 wurde erwartet, aber nicht gefunden

Stop um das Problem zu beheben
oder
Drüken 'Continue' um dieses Werkzeug trotzdem zu verwenden", "Warning", True, False, blocking=True) else: if (Lang == 4): popup("

Non concordance d'ID d'outil!


L'outil ID 4 était attendu mais n'a pas été trouvé

Arrêtez le programme pour résoudre le problème
ou
cliquez sur 'Continue' pour", "Warning", True, False, blocking=True) else: if (Lang == 5): popup("

No coinciden los ID de herramienta!


ID de herramienta 4 esperado pero no encontrado

Detenga el programa para resolver el problema
o
presione 'Continue' para usar esta herramienta de todos modos", "Warning", True, False, blocking=True) else: popup("

Tool-ID mismatch!


Tool ID 4 was expected but not found

Stop the program to solve the problem
or
Press 'Continue' to use this tool anyhow", "Warning", True, False, blocking=True) end end end end end end # 'Tool-ID 5' # 'Tool-ID 6' # 'Tool-ID 7' # 'Tool-ID 8' # 'Tool-ID 9' # 'Tool-ID 10' end def Check_Tool_E_ID(): # 'Suppress all other but the Tool-ID to check for' # 'Tool-ID 0' # 'Tool-ID 1' # 'Tool-ID 2' # 'Tool-ID 3' # 'Tool-ID 4' # 'Tool-ID 5' if ((get_tool_analog_in(1)<9.2*Tool_ID_Adjust) or (get_tool_analog_in(1)>9.7*Tool_ID_Adjust)): if (Lang == 1): popup("

Tool-ID fejl!


Tool ID 5 var forvendtet men blev ikke fundet

Stop programmet og løs problemet
eller
Tryk 'Continue' for at bruge dette værktøj alligevel", "Warning", True, False, blocking=True) else: if (Lang == 2): popup("

Tool-ID mismatch!


Tool ID 5 was expected but not found

Stop the program to solve the problem
or
Press 'Continue' to use this tool anyhow", "Warning", True, False, blocking=True) else: if (Lang == 3): popup("

Tool-ID stimmt nicht überein!


Werkzeug ID 5 wurde erwartet, aber nicht gefunden

Stop um das Problem zu beheben
oder
Drüken 'Continue' um dieses Werkzeug trotzdem zu verwenden", "Warning", True, False, blocking=True) else: if (Lang == 4): popup("

Non concordance d'ID d'outil!


L'outil ID 5 était attendu mais n'a pas été trouvé

Arrêtez le programme pour résoudre le problème
ou
cliquez sur 'Continue' pour", "Warning", True, False, blocking=True) else: if (Lang == 5): popup("

No coinciden los ID de herramienta!


ID de herramienta 5 esperado pero no encontrado

Detenga el programa para resolver el problema
o
presione 'Continue' para usar esta herramienta de todos modos", "Warning", True, False, blocking=True) else: popup("

Tool-ID mismatch!


Tool ID 5 was expected but not found

Stop the program to solve the problem
or
Press 'Continue' to use this tool anyhow", "Warning", True, False, blocking=True) end end end end end end # 'Tool-ID 6' # 'Tool-ID 7' # 'Tool-ID 8' # 'Tool-ID 9' # 'Tool-ID 10' end def Check_Tool_F_ID(): # 'Suppress all other but the Tool-ID to check for' # 'Tool-ID 0' # 'Tool-ID 1' # 'Tool-ID 2' # 'Tool-ID 3' # 'Tool-ID 4' # 'Tool-ID 5' # 'Tool-ID 6' if ((get_tool_analog_in(1)<10.5*Tool_ID_Adjust) or (get_tool_analog_in(1)>11.1*Tool_ID_Adjust)): if (Lang == 1): popup("

Tool-ID fejl!


Tool ID 6 var forvendtet men blev ikke fundet

Stop programmet og løs problemet
eller
Tryk 'Continue' for at bruge dette værktøj alligevel", "Warning", True, False, blocking=True) else: if (Lang == 2): popup("

Tool-ID mismatch!


Tool ID 6 was expected but not found

Stop the program to solve the problem
or
Press 'Continue' to use this tool anyhow", "Warning", True, False, blocking=True) else: if (Lang == 3): popup("

Tool-ID stimmt nicht überein!


Werkzeug ID 6 wurde erwartet, aber nicht gefunden

Stop um das Problem zu beheben
oder
Drüken 'Continue' um dieses Werkzeug trotzdem zu verwenden", "Warning", True, False, blocking=True) else: if (Lang == 4): popup("

Non concordance d'ID d'outil!


L'outil ID 6 était attendu mais n'a pas été trouvé

Arrêtez le programme pour résoudre le problème
ou
cliquez sur 'Continue' pour", "Warning", True, False, blocking=True) else: if (Lang == 5): popup("

No coinciden los ID de herramienta!


ID de herramienta 6 esperado pero no encontrado

Detenga el programa para resolver el problema
o
presione 'Continue' para usar esta herramienta de todos modos", "Warning", True, False, blocking=True) else: popup("

Tool-ID mismatch!


Tool ID 6 was expected but not found

Stop the program to solve the problem
or
Press 'Continue' to use this tool anyhow", "Warning", True, False, blocking=True) end end end end end end # 'Tool-ID 7' # 'Tool-ID 8' # 'Tool-ID 9' # 'Tool-ID 10' end def CheckID0(): if ((get_tool_analog_in(1)<4.6*Tool_ID_Adjust) or (get_tool_analog_in(1)>5.1*Tool_ID_Adjust)): if (Lang == 1): popup("

Tool-ID fejl!


Tool ID 0 var forvendtet men blev ikke fundet

Stop programmet og løs problemet
eller
Tryk 'Continue' for at bruge dette værktøj alligevel", "Warning", True, False, blocking=True) else: if (Lang == 2): popup("

Tool-ID mismatch!


Tool ID 0 was expected but not found

Stop the program to solve the problem
or
Press 'Continue' to use this tool anyhow", "Warning", True, False, blocking=True) else: if (Lang == 3): popup("

Tool-ID stimmt nicht überein!


Werkzeug ID 0 wurde erwartet, aber nicht gefunden

Stop um das Problem zu beheben
oder
Drüken 'Continue' um dieses Werkzeug trotzdem zu verwenden", "Warning", True, False, blocking=True) else: if (Lang == 4): popup("

Non concordance d'ID d'outil!


L'outil ID 0 était attendu mais n'a pas été trouvé

Arrêtez le programme pour résoudre le problème
ou
cliquez sur 'Continue' pour", "Warning", True, False, blocking=True) else: if (Lang == 5): popup("

No coinciden los ID de herramienta!


ID de herramienta 0 esperado pero no encontrado

Detenga el programa para resolver el problema
o
presione 'Continue' para usar esta herramienta de todos modos", "Warning", True, False, blocking=True) else: popup("

Tool-ID mismatch!


Tool ID 0 was expected but not found

Stop the program to solve the problem
or
Press 'Continue' to use this tool anyhow", "Warning", True, False, blocking=True) end end end end end end end def CheckID1(): if ((get_tool_analog_in(1)<5.5*Tool_ID_Adjust) or (get_tool_analog_in(1)>5.9*Tool_ID_Adjust)): if (Lang == 1): popup("

Tool-ID fejl!


Tool ID 1 var forvendtet men blev ikke fundet

Stop programmet og løs problemet
eller
Tryk 'Continue' for at bruge dette værktøj alligevel", "Warning", True, False, blocking=True) else: if (Lang == 2): popup("

Tool-ID mismatch!


Tool ID 1 was expected but not found

Stop the program to solve the problem
or
Press 'Continue' to use this tool anyhow", "Warning", True, False, blocking=True) else: if (Lang == 3): popup("

Tool-ID stimmt nicht überein!


Werkzeug ID 1 wurde erwartet, aber nicht gefunden

Stop um das Problem zu beheben
oder
Drüken 'Continue' um dieses Werkzeug trotzdem zu verwenden", "Warning", True, False, blocking=True) else: if (Lang == 4): popup("

Non concordance d'ID d'outil!


L'outil ID 1 était attendu mais n'a pas été trouvé

Arrêtez le programme pour résoudre le problème
ou
cliquez sur 'Continue' pour", "Warning", True, False, blocking=True) else: if (Lang == 5): popup("

No coinciden los ID de herramienta!


ID de herramienta 1 esperado pero no encontrado

Detenga el programa para resolver el problema
o
presione 'Continue' para usar esta herramienta de todos modos", "Warning", True, False, blocking=True) else: popup("

Tool-ID mismatch!


Tool ID 1 was expected but not found

Stop the program to solve the problem
or
Press 'Continue' to use this tool anyhow", "Warning", True, False, blocking=True) end end end end end end end def CheckID2(): if ((get_tool_analog_in(1)<6.5*Tool_ID_Adjust) or (get_tool_analog_in(1)>6.9*Tool_ID_Adjust)): if (Lang == 1): popup("

Tool-ID fejl!


Tool ID 2 var forvendtet men blev ikke fundet

Stop programmet og løs problemet
eller
Tryk 'Continue' for at bruge dette værktøj alligevel", "Warning", True, False, blocking=True) else: if (Lang == 2): popup("

Tool-ID mismatch!


Tool ID 2 was expected but not found

Stop the program to solve the problem
or
Press 'Continue' to use this tool anyhow", "Warning", True, False, blocking=True) else: if (Lang == 3): popup("

Tool-ID stimmt nicht überein!


Werkzeug ID 2 wurde erwartet, aber nicht gefunden

Stop um das Problem zu beheben
oder
Drüken 'Continue' um dieses Werkzeug trotzdem zu verwenden", "Warning", True, False, blocking=True) else: if (Lang == 4): popup("

Non concordance d'ID d'outil!


L'outil ID 2 était attendu mais n'a pas été trouvé

Arrêtez le programme pour résoudre le problème
ou
cliquez sur 'Continue' pour", "Warning", True, False, blocking=True) else: if (Lang == 5): popup("

No coinciden los ID de herramienta!


ID de herramienta 2 esperado pero no encontrado

Detenga el programa para resolver el problema
o
presione 'Continue' para usar esta herramienta de todos modos", "Warning", True, False, blocking=True) else: popup("

Tool-ID mismatch!


Tool ID 2 was expected but not found

Stop the program to solve the problem
or
Press 'Continue' to use this tool anyhow", "Warning", True, False, blocking=True) end end end end end end end def CheckID3(): if ((get_tool_analog_in(1)<7.2*Tool_ID_Adjust) or (get_tool_analog_in(1)>7.6*Tool_ID_Adjust)): if (Lang == 1): popup("

Tool-ID fejl!


Tool ID 3 var forvendtet men blev ikke fundet

Stop programmet og løs problemet
eller
Tryk 'Continue' for at bruge dette værktøj alligevel", "Warning", True, False, blocking=True) else: if (Lang == 2): popup("

Tool-ID mismatch!


Tool ID 3 was expected but not found

Stop the program to solve the problem
or
Press 'Continue' to use this tool anyhow", "Warning", True, False, blocking=True) else: if (Lang == 3): popup("

Tool-ID stimmt nicht überein!


Werkzeug ID 3 wurde erwartet, aber nicht gefunden

Stop um das Problem zu beheben
oder
Drüken 'Continue' um dieses Werkzeug trotzdem zu verwenden", "Warning", True, False, blocking=True) else: if (Lang == 4): popup("

Non concordance d'ID d'outil!


L'outil ID 3 était attendu mais n'a pas été trouvé

Arrêtez le programme pour résoudre le problème
ou
cliquez sur 'Continue' pour", "Warning", True, False, blocking=True) else: if (Lang == 5): popup("

No coinciden los ID de herramienta!


ID de herramienta 3 esperado pero no encontrado

Detenga el programa para resolver el problema
o
presione 'Continue' para usar esta herramienta de todos modos", "Warning", True, False, blocking=True) else: popup("

Tool-ID mismatch!


Tool ID 3 was expected but not found

Stop the program to solve the problem
or
Press 'Continue' to use this tool anyhow", "Warning", True, False, blocking=True) end end end end end end end def CheckID4(): if ((get_tool_analog_in(1)<8.2*Tool_ID_Adjust) or (get_tool_analog_in(1)>8.6*Tool_ID_Adjust)): if (Lang == 1): popup("

Tool-ID fejl!


Tool ID 4 var forvendtet men blev ikke fundet

Stop programmet og løs problemet
eller
Tryk 'Continue' for at bruge dette værktøj alligevel", "Warning", True, False, blocking=True) else: if (Lang == 2): popup("

Tool-ID mismatch!


Tool ID 4 was expected but not found

Stop the program to solve the problem
or
Press 'Continue' to use this tool anyhow", "Warning", True, False, blocking=True) else: if (Lang == 3): popup("

Tool-ID stimmt nicht überein!


Werkzeug ID 4 wurde erwartet, aber nicht gefunden

Stop um das Problem zu beheben
oder
Drüken 'Continue' um dieses Werkzeug trotzdem zu verwenden", "Warning", True, False, blocking=True) else: if (Lang == 4): popup("

Non concordance d'ID d'outil!


L'outil ID 4 était attendu mais n'a pas été trouvé

Arrêtez le programme pour résoudre le problème
ou
cliquez sur 'Continue' pour", "Warning", True, False, blocking=True) else: if (Lang == 5): popup("

No coinciden los ID de herramienta!


ID de herramienta 4 esperado pero no encontrado

Detenga el programa para resolver el problema
o
presione 'Continue' para usar esta herramienta de todos modos", "Warning", True, False, blocking=True) else: popup("

Tool-ID mismatch!


Tool ID 4 was expected but not found

Stop the program to solve the problem
or
Press 'Continue' to use this tool anyhow", "Warning", True, False, blocking=True) end end end end end end end def CheckID5(): if ((get_tool_analog_in(1)<9.2*Tool_ID_Adjust) or (get_tool_analog_in(1)>9.7*Tool_ID_Adjust)): if (Lang == 1): popup("

Tool-ID fejl!


Tool ID 5 var forvendtet men blev ikke fundet

Stop programmet og løs problemet
eller
Tryk 'Continue' for at bruge dette værktøj alligevel", "Warning", True, False, blocking=True) else: if (Lang == 2): popup("

Tool-ID mismatch!


Tool ID 5 was expected but not found

Stop the program to solve the problem
or
Press 'Continue' to use this tool anyhow", "Warning", True, False, blocking=True) else: if (Lang == 3): popup("

Tool-ID stimmt nicht überein!


Werkzeug ID 5 wurde erwartet, aber nicht gefunden

Stop um das Problem zu beheben
oder
Drüken 'Continue' um dieses Werkzeug trotzdem zu verwenden", "Warning", True, False, blocking=True) else: if (Lang == 4): popup("

Non concordance d'ID d'outil!


L'outil ID 5 était attendu mais n'a pas été trouvé

Arrêtez le programme pour résoudre le problème
ou
cliquez sur 'Continue' pour", "Warning", True, False, blocking=True) else: if (Lang == 5): popup("

No coinciden los ID de herramienta!


ID de herramienta 5 esperado pero no encontrado

Detenga el programa para resolver el problema
o
presione 'Continue' para usar esta herramienta de todos modos", "Warning", True, False, blocking=True) else: popup("

Tool-ID mismatch!


Tool ID 5 was expected but not found

Stop the program to solve the problem
or
Press 'Continue' to use this tool anyhow", "Warning", True, False, blocking=True) end end end end end end end def CheckID6(): if ((get_tool_analog_in(1)<10.5*Tool_ID_Adjust) or (get_tool_analog_in(1)>11.1*Tool_ID_Adjust)): if (Lang == 1): popup("

Tool-ID fejl!


Tool ID 6 var forvendtet men blev ikke fundet

Stop programmet og løs problemet
eller
Tryk 'Continue' for at bruge dette værktøj alligevel", "Warning", True, False, blocking=True) else: if (Lang == 2): popup("

Tool-ID mismatch!


Tool ID 6 was expected but not found

Stop the program to solve the problem
or
Press 'Continue' to use this tool anyhow", "Warning", True, False, blocking=True) else: if (Lang == 3): popup("

Tool-ID stimmt nicht überein!


Werkzeug ID 6 wurde erwartet, aber nicht gefunden

Stop um das Problem zu beheben
oder
Drüken 'Continue' um dieses Werkzeug trotzdem zu verwenden", "Warning", True, False, blocking=True) else: if (Lang == 4): popup("

Non concordance d'ID d'outil!


L'outil ID 6 était attendu mais n'a pas été trouvé

Arrêtez le programme pour résoudre le problème
ou
cliquez sur 'Continue' pour", "Warning", True, False, blocking=True) else: if (Lang == 5): popup("

No coinciden los ID de herramienta!


ID de herramienta 6 esperado pero no encontrado

Detenga el programa para resolver el problema
o
presione 'Continue' para usar esta herramienta de todos modos", "Warning", True, False, blocking=True) else: popup("

Tool-ID mismatch!


Tool ID 6 was expected but not found

Stop the program to solve the problem
or
Press 'Continue' to use this tool anyhow", "Warning", True, False, blocking=True) end end end end end end end def CheckID7(): if ((get_tool_analog_in(1)<11.4*Tool_ID_Adjust) or (get_tool_analog_in(1)>12.0*Tool_ID_Adjust)): if (Lang == 1): popup("

Tool-ID fejl!


Tool ID 7 var forvendtet men blev ikke fundet

Stop programmet og løs problemet
eller
Tryk 'Continue' for at bruge dette værktøj alligevel", "Warning", True, False, blocking=True) else: if (Lang == 2): popup("

Tool-ID mismatch!


Tool ID 7 was expected but not found

Stop the program to solve the problem
or
Press 'Continue' to use this tool anyhow", "Warning", True, False, blocking=True) else: if (Lang == 3): popup("

Tool-ID stimmt nicht überein!


Werkzeug ID 7 wurde erwartet, aber nicht gefunden

Stop um das Problem zu beheben
oder
Drüken 'Continue' um dieses Werkzeug trotzdem zu verwenden", "Warning", True, False, blocking=True) else: if (Lang == 4): popup("

Non concordance d'ID d'outil!


L'outil ID 7 était attendu mais n'a pas été trouvé

Arrêtez le programme pour résoudre le problème
ou
cliquez sur 'Continue' pour", "Warning", True, False, blocking=True) else: if (Lang == 5): popup("

No coinciden los ID de herramienta!


ID de herramienta 7 esperado pero no encontrado

Detenga el programa para resolver el problema
o
presione 'Continue' para usar esta herramienta de todos modos", "Warning", True, False, blocking=True) else: popup("

Tool-ID mismatch!


Tool ID 7 was expected but not found

Stop the program to solve the problem
or
Press 'Continue' to use this tool anyhow", "Warning", True, False, blocking=True) end end end end end end end def CheckID8(): if ((get_tool_analog_in(1)<12.1*Tool_ID_Adjust) or (get_tool_analog_in(1)>12.8*Tool_ID_Adjust)): if (Lang == 1): popup("

Tool-ID fejl!


Tool ID 8 var forvendtet men blev ikke fundet

Stop programmet og løs problemet
eller
Tryk 'Continue' for at bruge dette værktøj alligevel", "Warning", True, False, blocking=True) else: if (Lang == 2): popup("

Tool-ID mismatch!


Tool ID 8 was expected but not found

Stop the program to solve the problem
or
Press 'Continue' to use this tool anyhow", "Warning", True, False, blocking=True) else: if (Lang == 3): popup("

Tool-ID stimmt nicht überein!


Werkzeug ID 8 wurde erwartet, aber nicht gefunden

Stop um das Problem zu beheben
oder
Drüken 'Continue' um dieses Werkzeug trotzdem zu verwenden", "Warning", True, False, blocking=True) else: if (Lang == 4): popup("

Non concordance d'ID d'outil!


L'outil ID 8 était attendu mais n'a pas été trouvé

Arrêtez le programme pour résoudre le problème
ou
cliquez sur 'Continue' pour", "Warning", True, False, blocking=True) else: if (Lang == 5): popup("

No coinciden los ID de herramienta!


ID de herramienta 8 esperado pero no encontrado

Detenga el programa para resolver el problema
o
presione 'Continue' para usar esta herramienta de todos modos", "Warning", True, False, blocking=True) else: popup("

Tool-ID mismatch!


Tool ID 8 was expected but not found

Stop the program to solve the problem
or
Press 'Continue' to use this tool anyhow", "Warning", True, False, blocking=True) end end end end end end end def CheckID9(): if ((get_tool_analog_in(1)<12.9*Tool_ID_Adjust) or (get_tool_analog_in(1)>13.6*Tool_ID_Adjust)): if (Lang == 1): popup("

Tool-ID fejl!


Tool ID 9 var forvendtet men blev ikke fundet

Stop programmet og løs problemet
eller
Tryk 'Continue' for at bruge dette værktøj alligevel", "Warning", True, False, blocking=True) else: if (Lang == 2): popup("

Tool-ID mismatch!


Tool ID 9 was expected but not found

Stop the program to solve the problem
or
Press 'Continue' to use this tool anyhow", "Warning", True, False, blocking=True) else: if (Lang == 3): popup("

Tool-ID stimmt nicht überein!


Werkzeug ID 9 wurde erwartet, aber nicht gefunden

Stop um das Problem zu beheben
oder
Drüken 'Continue' um dieses Werkzeug trotzdem zu verwenden", "Warning", True, False, blocking=True) else: if (Lang == 4): popup("

Non concordance d'ID d'outil!


L'outil ID 9 était attendu mais n'a pas été trouvé

Arrêtez le programme pour résoudre le problème
ou
cliquez sur 'Continue' pour", "Warning", True, False, blocking=True) else: if (Lang == 5): popup("

No coinciden los ID de herramienta!


ID de herramienta 9 esperado pero no encontrado

Detenga el programa para resolver el problema
o
presione 'Continue' para usar esta herramienta de todos modos", "Warning", True, False, blocking=True) else: popup("

Tool-ID mismatch!


Tool ID 9 was expected but not found

Stop the program to solve the problem
or
Press 'Continue' to use this tool anyhow", "Warning", True, False, blocking=True) end end end end end end end def CheckID10(): if ((get_tool_analog_in(1)<13.7*Tool_ID_Adjust) or (get_tool_analog_in(1)>14.5*Tool_ID_Adjust)): if (Lang == 1): popup("

Tool-ID fejl!


Tool ID 10 var forvendtet men blev ikke fundet

Stop programmet og løs problemet
eller
Tryk 'Continue' for at bruge dette værktøj alligevel", "Warning", True, False, blocking=True) else: if (Lang == 2): popup("

Tool-ID mismatch!


Tool ID 10 was expected but not found

Stop the program to solve the problem
or
Press 'Continue' to use this tool anyhow", "Warning", True, False, blocking=True) else: if (Lang == 3): popup("

Tool-ID stimmt nicht überein!


Werkzeug ID 10 wurde erwartet, aber nicht gefunden

Stop um das Problem zu beheben
oder
Drüken 'Continue' um dieses Werkzeug trotzdem zu verwenden", "Warning", True, False, blocking=True) else: if (Lang == 4): popup("

Non concordance d'ID d'outil!


L'outil ID 10 était attendu mais n'a pas été trouvé

Arrêtez le programme pour résoudre le problème
ou
cliquez sur 'Continue' pou", "Warning", True, False, blocking=True) else: if (Lang == 5): popup("

No coinciden los ID de herramienta!


ID de herramienta 10 esperado pero no encontrado

Detenga el programa para resolver el problema
o
presione 'Continue' para usar esta herramienta de todos modos", "Warning", True, False, blocking=True) else: popup("

Tool-ID mismatch!


Tool ID 10 was expected but not found

Stop the program to solve the problem
or
Press 'Continue' to use this tool anyhow", "Warning", True, False, blocking=True) end end end end end end end def DetectToolID(): if ((get_tool_analog_in(1)>4.6*Tool_ID_Adjust) and (get_tool_analog_in(1)<5.1*Tool_ID_Adjust)): if (Lang == 1): popup("

Tool-ID: 0

Værktøj låst men Tool-ID ikke fundet !

Er det det rigtige værktøj ?

Tryk ''Continue'' for at bruge dette værktøj", "Warning", True, False, blocking=True) else: if (Lang == 2): popup("

Tool-ID: 0

Tool locked but no Tool-ID found !

Make sure this is the right tool.

Press ''Continue'' to use this tool", "Warning", True, False, blocking=True) else: if (Lang == 3): popup("

Werkzeug-ID: 0

Werzeug gesperrt, aber keiner Werkzeug-ID gefunden!

Stellen Sie sicher, dass dies das richtige Werkzeug ist

Drücken Sie ''Continue'' um dieses Werkzeug zu verwenden", "Warning", True, False, blocking=True) else: if (Lang == 4): popup("

ID de l'outil: 0

Outil verrouillé mais aucun ID d'outil trouvé

Assurez-vous que c'est le bon outil

Appuyes sur ''Continue'' pour utilser cet outil", "Warning", True, False, blocking=True) else: if (Lang == 5): popup("

ID de herramienta: 0

Herramienta bloqueada pero no
se encontró ID de herramienta !


Asegúrese de que esta sea la herramienta correcta

Presione ''Continue'' para usar esta herramienta", "Warning", True, False, blocking=True) else: popup("

Tool-ID: 0

Tool locked but no Tool-ID found !

Make sure this is the right tool.

Press ''Continue'' to use this tool", "Warning", True, False, blocking=True) end end end end end else: if ((get_tool_analog_in(1)>5.5*Tool_ID_Adjust) and (get_tool_analog_in(1)<5.9*Tool_ID_Adjust)): if (Lang == 1): popup("

Tool-ID: 1

Værktøj låst og Tool-ID registreret

Tryk ''Continue'' for at bruge dette værktøj", "Warning", True, False, blocking=True) else: if (Lang == 2): popup("

Tool-ID: 1

Tool locked and Tool-ID detected

Press ''Continue'' to use this tool", "Warning", True, False, blocking=True) else: if (Lang == 3): popup("

Werkzeug-ID: 1

Werzeug gesperrt und Werkzeug-ID erkannt

Drücken Sie ''Continue'' um dieses Werkzeug zu verwenden", "Warning", True, False, blocking=True) else: if (Lang == 4): popup("

ID de l'outil: 1

Outil verrouillé mais aucun ID d'outil trouvé

Assurez-vous que c'est le bon outil

Appuyes sur ''Continue'' pour utilser cet outil", "Warning", True, False, blocking=True) else: if (Lang == 5): popup("

ID de herramienta: 1

Herramienta bloqueada pero no
se encontró ID de herramienta !


Asegúrese de que esta sea la herramienta correcta

Presione ''Continue'' para usar esta herramienta", "Warning", True, False, blocking=True) else: popup("

Tool-ID: 1

Tool locked and Tool-ID detected

Press ''Continue'' to use this tool", "Warning", True, False, blocking=True) end end end end end else: if ((get_tool_analog_in(1)>6.5*Tool_ID_Adjust) and (get_tool_analog_in(1)<6.9*Tool_ID_Adjust)): if (Lang == 1): popup("

Tool-ID: 2

Værktøj låst og Tool-ID registreret

Tryk ''Continue'' for at bruge dette værktøj", "Warning", True, False, blocking=True) else: if (Lang == 2): popup("

Tool-ID: 2

Tool locked and Tool-ID detected

Press ''Continue'' to use this tool", "Warning", True, False, blocking=True) else: if (Lang == 3): popup("

Werkzeug-ID: 2

Werzeug gesperrt und Werkzeug-ID erkannt

Drücken Sie ''Continue'' um dieses Werkzeug zu verwenden", "Warning", True, False, blocking=True) else: if (Lang == 4): popup("

ID de l'outil: 2

Outil verrouillé mais aucun ID d'outil trouvé

Assurez-vous que c'est le bon outil

Appuyes sur ''Continue'' pour utilser cet outil", "Warning", True, False, blocking=True) else: if (Lang == 5): popup("

ID de herramienta: 2

Herramienta bloqueada pero no
se encontró ID de herramienta !


Asegúrese de que esta sea la herramienta correcta

Presione ''Continue'' para usar esta herramienta", "Warning", True, False, blocking=True) else: popup("

Tool-ID: 2

Tool locked and Tool-ID detected

Press ''Continue'' to use this tool", "Warning", True, False, blocking=True) end end end end end else: if ((get_tool_analog_in(1)>7.2*Tool_ID_Adjust) and (get_tool_analog_in(1)<7.6*Tool_ID_Adjust)): if (Lang == 1): popup("

Tool-ID: 3

Værktøj låst og Tool-ID registreret

Tryk ''Continue'' for at bruge dette værktøj", "Warning", True, False, blocking=True) else: if (Lang == 2): popup("

Tool-ID: 3

Tool locked and Tool-ID detected

Press ''Continue'' to use this tool", "Warning", True, False, blocking=True) else: if (Lang == 3): popup("

Werkzeug-ID: 3

Werzeug gesperrt und Werkzeug-ID erkannt

Drücken Sie ''Continue'' um dieses Werkzeug zu verwenden", "Warning", True, False, blocking=True) else: if (Lang == 4): popup("

ID de l'outil: 3

Outil verrouillé mais aucun ID d'outil trouvé

Assurez-vous que c'est le bon outil

Appuyes sur ''Continue'' pour utilser cet outil", "Warning", True, False, blocking=True) else: if (Lang == 5): popup("

ID de herramienta: 3

Herramienta bloqueada pero no
se encontró ID de herramienta !


Asegúrese de que esta sea la herramienta correcta

Presione ''Continue'' para usar esta herramienta", "Warning", True, False, blocking=True) else: popup("

Tool-ID: 3

Tool locked and Tool-ID detected

Press ''Continue'' to use this tool", "Warning", True, False, blocking=True) end end end end end else: if ((get_tool_analog_in(1)>8.2*Tool_ID_Adjust) and (get_tool_analog_in(1)<8.6*Tool_ID_Adjust)): if (Lang == 1): popup("

Tool-ID: 4

Værktøj låst og Tool-ID registreret

Tryk ''Continue'' for at bruge dette værktøj", "Warning", True, False, blocking=True) else: if (Lang == 2): popup("

Tool-ID: 4

Tool locked and Tool-ID detected

Press ''Continue'' to use this tool", "Warning", True, False, blocking=True) else: if (Lang == 3): popup("

Werkzeug-ID: 4

Werzeug gesperrt und Werkzeug-ID erkannt

Drücken Sie ''Continue'' um dieses Werkzeug zu verwenden", "Warning", True, False, blocking=True) else: if (Lang == 4): popup("

ID de l'outil: 4

Outil verrouillé mais aucun ID d'outil trouvé

Assurez-vous que c'est le bon outil

Appuyes sur ''Continue'' pour utilser cet outil", "Warning", True, False, blocking=True) else: if (Lang == 5): popup("

ID de herramienta: 4

Herramienta bloqueada pero no
se encontró ID de herramienta !


Asegúrese de que esta sea la herramienta correcta

Presione ''Continue'' para usar esta herramienta", "Warning", True, False, blocking=True) else: popup("

Tool-ID: 4

Tool locked and Tool-ID detected

Press ''Continue'' to use this tool", "Warning", True, False, blocking=True) end end end end end else: if ((get_tool_analog_in(1)>9.2*Tool_ID_Adjust) and (get_tool_analog_in(1)<9.7*Tool_ID_Adjust)): if (Lang == 1): popup("

Tool-ID: 5

Værktøj låst og Tool-ID registreret

Tryk ''Continue'' for at bruge dette værktøj", "Warning", True, False, blocking=True) else: if (Lang == 2): popup("

Tool-ID: 5

Tool locked and Tool-ID detected

Press ''Continue'' to use this tool", "Warning", True, False, blocking=True) else: if (Lang == 3): popup("

Werkzeug-ID: 5

Werzeug gesperrt und Werkzeug-ID erkannt

Drücken Sie ''Continue'' um dieses Werkzeug zu verwenden", "Warning", True, False, blocking=True) else: if (Lang == 4): popup("

ID de l'outil: 5

Outil verrouillé mais aucun ID d'outil trouvé

Assurez-vous que c'est le bon outil

Appuyes sur ''Continue'' pour utilser cet outil", "Warning", True, False, blocking=True) else: if (Lang == 5): popup("

ID de herramienta: 5

Herramienta bloqueada pero no
se encontró ID de herramienta !


Asegúrese de que esta sea la herramienta correcta

Presione ''Continue'' para usar esta herramienta", "Warning", True, False, blocking=True) else: popup("

Tool-ID: 5

Tool locked and Tool-ID detected

Press ''Continue'' to use this tool", "Warning", True, False, blocking=True) end end end end end else: if ((get_tool_analog_in(1)>10.5*Tool_ID_Adjust) and (get_tool_analog_in(1)<11.1*Tool_ID_Adjust)): if (Lang == 1): popup("

Tool-ID: 6

Værktøj låst og Tool-ID registreret

Tryk ''Continue'' for at bruge dette værktøj", "Warning", True, False, blocking=True) else: if (Lang == 2): popup("

Tool-ID: 6

Tool locked and Tool-ID detected

Press ''Continue'' to use this tool", "Warning", True, False, blocking=True) else: if (Lang == 3): popup("

Werkzeug-ID: 6

Werzeug gesperrt und Werkzeug-ID erkannt

Drücken Sie ''Continue'' um dieses Werkzeug zu verwenden", "Warning", True, False, blocking=True) else: if (Lang == 4): popup("

ID de l'outil: 6

Outil verrouillé mais aucun ID d'outil trouvé

Assurez-vous que c'est le bon outil

Appuyes sur ''Continue'' pour utilser cet outil", "Warning", True, False, blocking=True) else: if (Lang == 5): popup("

ID de herramienta: 6

Herramienta bloqueada pero no
se encontró ID de herramienta !


Asegúrese de que esta sea la herramienta correcta

Presione ''Continue'' para usar esta herramienta", "Warning", True, False, blocking=True) else: popup("

Tool-ID: 6

Tool locked and Tool-ID detected

Press ''Continue'' to use this tool", "Warning", True, False, blocking=True) end end end end end else: if ((get_tool_analog_in(1)>11.4*Tool_ID_Adjust) and (get_tool_analog_in(1)<12.0*Tool_ID_Adjust)): if (Lang == 1): popup("

Tool-ID: 7

Værktøj låst og Tool-ID registreret

Tryk ''Continue'' for at bruge dette værktøj", "Warning", True, False, blocking=True) else: if (Lang == 2): popup("

Tool-ID: 7

Tool locked and Tool-ID detected

Press ''Continue'' to use this tool", "Warning", True, False, blocking=True) else: if (Lang == 3): popup("

Werkzeug-ID: 7

Werzeug gesperrt und Werkzeug-ID erkannt

Drücken Sie ''Continue'' um dieses Werkzeug zu verwenden", "Warning", True, False, blocking=True) else: if (Lang == 4): popup("

ID de l'outil: 7

Outil verrouillé mais aucun ID d'outil trouvé

Assurez-vous que c'est le bon outil

Appuyes sur ''Continue'' pour utilser cet outil", "Warning", True, False, blocking=True) else: if (Lang == 5): popup("

ID de herramienta: 7

Herramienta bloqueada pero no
se encontró ID de herramienta !


Asegúrese de que esta sea la herramienta correcta

Presione ''Continue'' para usar esta herramienta", "Warning", True, False, blocking=True) else: popup("

Tool-ID: 7

Tool locked and Tool-ID detected

Press ''Continue'' to use this tool", "Warning", True, False, blocking=True) end end end end end else: if ((get_tool_analog_in(1)>12.1*Tool_ID_Adjust) and (get_tool_analog_in(1)<12.8*Tool_ID_Adjust)): if (Lang == 1): popup("

Tool-ID: 8

Værktøj låst og Tool-ID registreret

Tryk ''Continue'' for at bruge dette værktøj", "Warning", True, False, blocking=True) else: if (Lang == 2): popup("

Tool-ID: 8

Tool locked and Tool-ID detected

Press ''Continue'' to use this tool", "Warning", True, False, blocking=True) else: if (Lang == 3): popup("

Werkzeug-ID: 8

Werzeug gesperrt und Werkzeug-ID erkannt

Drücken Sie ''Continue'' um dieses Werkzeug zu verwenden", "Warning", True, False, blocking=True) else: if (Lang == 4): popup("

ID de l'outil: 8

Outil verrouillé mais aucun ID d'outil trouvé

Assurez-vous que c'est le bon outil

Appuyes sur ''Continue'' pour utilser cet outil", "Warning", True, False, blocking=True) else: if (Lang == 5): popup("

ID de herramienta: 8

Herramienta bloqueada pero no
se encontró ID de herramienta !


Asegúrese de que esta sea la herramienta correcta

Presione ''Continue'' para usar esta herramienta", "Warning", True, False, blocking=True) else: popup("

Tool-ID: 8

Tool locked and Tool-ID detected

Press ''Continue'' to use this tool", "Warning", True, False, blocking=True) end end end end end else: if ((get_tool_analog_in(1)>12.9*Tool_ID_Adjust) and (get_tool_analog_in(1)<13.6*Tool_ID_Adjust)): if (Lang == 1): popup("

Tool-ID: 9

Værktøj låst og Tool-ID registreret

Tryk ''Continue'' for at bruge dette værktøj", "Warning", True, False, blocking=True) else: if (Lang == 2): popup("

Tool-ID: 9

Tool locked and Tool-ID detected

Press ''Continue'' to use this tool", "Warning", True, False, blocking=True) else: if (Lang == 3): popup("

Werkzeug-ID: 9

Werzeug gesperrt und Werkzeug-ID erkannt

Drücken Sie ''Continue'' um dieses Werkzeug zu verwenden", "Warning", True, False, blocking=True) else: if (Lang == 4): popup("

ID de l'outil: 9

Outil verrouillé mais aucun ID d'outil trouvé

Assurez-vous que c'est le bon outil

Appuyes sur ''Continue'' pour utilser cet outil", "Warning", True, False, blocking=True) else: if (Lang == 5): popup("

ID de herramienta: 9

Herramienta bloqueada pero no
se encontró ID de herramienta !


Asegúrese de que esta sea la herramienta correcta

Presione ''Continue'' para usar esta herramienta", "Warning", True, False, blocking=True) else: popup("

Tool-ID: 9

Tool locked and Tool-ID detected

Press ''Continue'' to use this tool", "Warning", True, False, blocking=True) end end end end end else: if ((get_tool_analog_in(1)>13.7*Tool_ID_Adjust) and (get_tool_analog_in(1)<14.5*Tool_ID_Adjust)): if (Lang == 1): popup("

Tool-ID: 10

Værktøj låst og Tool-ID registreret

Tryk ''Continue'' for at bruge dette værktøj", "Warning", True, False, blocking=True) else: if (Lang == 2): popup("

Tool-ID: 10

Tool locked and Tool-ID detected

Press ''Continue'' to use this tool", "Warning", True, False, blocking=True) else: if (Lang == 3): popup("

Werkzeug-ID: 10

Werzeug gesperrt und Werkzeug-ID erkannt

Drücken Sie ''Continue'' um dieses Werkzeug zu verwenden", "Warning", True, False, blocking=True) else: if (Lang == 4): popup("

ID de l'outil: 10

Outil verrouillé mais aucun ID d'outil trouvé

Assurez-vous que c'est le bon outil

Appuyes sur ''Continue'' pour utilser cet outil", "Warning", True, False, blocking=True) else: if (Lang == 5): popup("

ID de herramienta: 10

Herramienta bloqueada pero no
se encontró ID de herramienta !


Asegúrese de que esta sea la herramienta correcta

Presione ''Continue'' para usar esta herramienta", "Warning", True, False, blocking=True) else: popup("

Tool-ID: 10

Tool locked and Tool-ID detected

Press ''Continue'' to use this tool", "Warning", True, False, blocking=True) end end end end end else: if (Lang == 1): popup("

Ingen Tool-ID !

Værktøj låst men Tool-ID ikke registreret

Tryk ''Continue'' for at bruge dette ukendte værktøj", "Warning", True, False, blocking=True) else: if (Lang == 2): popup("

No valid Tool-ID

Tool locked but no valid Tool-ID found !

Only use this tool if you are sure this is the right tool.
Press ''Continue'' to use this unidentified tool", "Warning", True, False, blocking=True) else: if (Lang == 3): popup("

Keiner gültige Werkzeug-ID:

Werzeug gesperrt aber keine
gültige Werkzeug-ID erfunden


Drücken Sie ''Continue'' um dieses nicht
identifizirte Werkzeug zu verwenden", "Warning", True, False, blocking=True) else: if (Lang == 4): popup("

Aucun ID d'outil valide

Outil verrouillé mais aucun ID
d'outil valide trouvé


Appuyes sur ''Continue'' pour
utilser cet outil non identifié
", "Warning", True, False, blocking=True) else: if (Lang == 5): popup("

Sin ID de herramienta válida

Herramienta bloqueada pero no
se encontró ID de herramienta valida


Presione ''Continue'' para usar
esta herramienta no identificada", "Warning", True, False, blocking=True) else: popup("

No valid Tool-ID

Tool locked but no valid Tool-ID found !

Only use this tool if you are sure this is the right tool.
Press ''Continue'' to use this unidentified tool", "Warning", True, False, blocking=True) end end end end end if (Lang == 1): popup("

Er du sikker?

Brug kun dette værktøj hvis du
er sikker på at det rigtige værktøj


Tryk ''Continue'' for at bruge dette ukendte værktøj", "Warning", True, False, blocking=True) else: if (Lang == 2): popup("

Are you sure?

Only use this tool if you are
sure this is the right tool


Press ''Continue'' to use this unidentified tool", "Warning", True, False, blocking=True) else: if (Lang == 3): popup("

Bist du sicher?

Vervenden Sie dises Werkzeug
nur, wenn Sie sicher sind


Drücken Sie ''Continue'' um dieses nicht
identifizirte Werkzeug zu verwenden", "Warning", True, False, blocking=True) else: if (Lang == 4): popup("

Êtes-vous sûr?

N'utilisez cet outil que si vous
êtes sûr qu'il s'agit du bon outil


Appuyes sur ''Continue'' pour
utilser cet outil non identifié
", "Warning", True, False, blocking=True) else: if (Lang == 5): popup("

¿Estás serguro?

Solo usa esta herramienta si está
serguro de que es la herramienta correcta


Presione ''Continue'' para usar
esta herramienta no identificada", "Warning", True, False, blocking=True) else: popup("

Are you sure?

Only use this tool if you are
sure this is the right tool


Press ''Continue'' to use this unidentified tool", "Warning", True, False, blocking=True) end end end end end end end end end end end end end end end end end $ 2 "BeforeStart" $ 3 "Program Information" $ 4 "'Program Info: This is a demonstration program for the 'Kelvin Tool Changer''" # 'Program Info: This is a demonstration program for the "Kelvin Tool Changer"' $ 5 "'Last update: - 4/2 2020 - 01:30'" # 'Last update: - 4/2 2020 - 01:30' $ 6 "'Program scope: Demo program running a UR robot with a Kelvin Tool Changer. This program can handle all issues with the tool changer'" # 'Program scope: Demo program running a UR robot with a Kelvin Tool Changer. This program can handle all issues with the tool changer' $ 7 "'Programmed by Henning Forbech, 4TECH Robotics Aps, www.toolchanger.eu'" # 'Programmed by Henning Forbech, 4TECH Robotics Aps, www.toolchanger.eu' $ 8 "'Program information: This program is a demonstration program for running a UR-robot with the Kelvin Tool Changer'" # 'Program information: This program is a demonstration program for running a UR-robot with the Kelvin Tool Changer' $ 9 "'Sub-Programs should be programmed to start near 'Ready' and end again in the same place'" # 'Sub-Programs should be programmed to start near "Ready" and end again in the same place' $ 10 "'Sub-Programs can be programmed and tested outside the 'Kelvin' program. The program is called as a subprogram in ''Kelvin''. The external program can be set to updated with changes made to the embedded code in the 'Kelvin' program'" # 'Sub-Programs can be programmed and tested outside the "Kelvin" program. The program is called as a subprogram in ''Kelvin''. The external program can be set to updated with changes made to the embedded code in the "Kelvin" program' $ 11 "'This program starts with the robot arm in the 'Ready' position. First step in the program (1) will move the robot to get all joints in the right position'" # 'This program starts with the robot arm in the "Ready" position. First step in the program (1) will move the robot to get all joints in the right position' $ 12 "'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'" # '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' $ 13 "'2do: Put small notes on thing to do here:'" # '2do: Put small notes on thing to do here:' $ 14 "'Safety limits must be set up for the robot. Propper values for force, speed and range have be defined to make the operation of the robot safe. See 'Safety' section above'" # 'Safety limits must be set up for the robot. Propper values for force, speed and range have be defined to make the operation of the robot safe. See "Safety" section above' $ 15 "Safety" $ 16 "'Safety settings for UR robots with Kelvin Tool Changer'" # 'Safety settings for UR robots with Kelvin Tool Changer' $ 17 "'Tool connected: If the tool is disconnected during operation the robot must stop to prevent a dangerous situation'" # 'Tool connected: If the tool is disconnected during operation the robot must stop to prevent a dangerous situation' $ 18 "'''ToolFree'' must be set to ''1'' to allow disconnection of tool. '" # '''ToolFree'' must be set to ''1'' to allow disconnection of tool. ' $ 19 "'''Hook open'' if AI(1)<4.6V '" # '''Hook open'' if AI(1)<4.6V ' $ 20 "ToolFree≔1" global ToolFree=1 $ 21 "'Tool ID: The program will only work with the right tool connected. Tool-ID must be checked at pick-up and when appropriated during programs'" # 'Tool ID: The program will only work with the right tool connected. Tool-ID must be checked at pick-up and when appropriated during programs' $ 22 "'Space: Setup the space for the robots operation. Prevent the robot arm from hitting anything'" # 'Space: Setup the space for the robots operation. Prevent the robot arm from hitting anything' $ 23 "'Force restrictions: Setup the security levels for forces'" # 'Force restrictions: Setup the security levels for forces' $ 24 "Environments" $ 25 "'Tool Voltage Supply must be set to 24V for the Tool Changer to be able to identify Tool-ID and to verify Hook positions'" # 'Tool Voltage Supply must be set to 24V for the Tool Changer to be able to identify Tool-ID and to verify Hook positions' $ 26 "'Info: How to set Tool Voltage: Under the 'I/O' tab (right to the 'Move' tab) the voltage for the tool can be set (lower right corner). Those 24V'" # 'Info: How to set Tool Voltage: Under the "I/O" tab (right to the "Move" tab) the voltage for the tool can be set (lower right corner). Those 24V' $ 27 "'Info: AO(0) must be set to voltage. If it is set to currant (4-20mA) a 0V setting will change to 4mA. When the setting is set back to voltage this setting will become 4V!!!'" # 'Info: AO(0) must be set to voltage. If it is set to currant (4-20mA) a 0V setting will change to 4mA. When the setting is set back to voltage this setting will become 4V!!!' $ 28 "General setup for the Tool Changer" $ 29 "'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'" # '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' $ 30 "'Language setting:'" # 'Language setting:' $ 31 "'Set language: It is possible to set the language for some of the popups that the user will see. The variable 'Lang' control witch language that are shown'" # 'Set language: It is possible to set the language for some of the popups that the user will see. The variable "Lang" control witch language that are shown' $ 32 "'Kelvin Program #46 (Language) can be used by the operator to change language'" # 'Kelvin Program #46 (Language) can be used by the operator to change language' $ 33 "'Language options: 1:Danish 2:English 3:German 4:French 5:Spanish'" # 'Language options: 1:Danish 2:English 3:German 4:French 5:Spanish' $ 34 "'Language info: If a popup do not have a comment in the language indicated by 'Lang' the comment in English will be shown'" # 'Language info: If a popup do not have a comment in the language indicated by "Lang" the comment in English will be shown' $ 35 "'Translation to German, France and Spanish was done with Google Translate. Sorry for mistakes'" # 'Translation to German, France and Spanish was done with Google Translate. Sorry for mistakes' $ 36 "'Default value for Lang: 2 (English)'" # 'Default value for Lang: 2 (English)' $ 37 "Lang≔2" global Lang=2 $ 38 "'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'" # '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' $ 39 "'TCP info:'" # 'TCP info:' $ 40 "'For starting up the program TCP is set to TCP_1'" # 'For starting up the program TCP is set to TCP_1' $ 41 "'TCP_1 is the center of the Tool Plate in the Docking Station. X:0 mm, Y:0mm, Z:34 mm, Weight set to 144g, CGy: 11mm'" # 'TCP_1 is the center of the Tool Plate in the Docking Station. X:0 mm, Y:0mm, Z:34 mm, Weight set to 144g, CGy: 11mm' $ 42 "'TCP_2 is for Tool-A: Values: X:0 mm, Y:0mm, Z:?? mm, Weight set to ??g, CGy: ?? mm'" # 'TCP_2 is for Tool-A: Values: X:0 mm, Y:0mm, Z:?? mm, Weight set to ??g, CGy: ?? mm' $ 43 "'TCP_3 is for Tool-B: Values: X:0 mm, Y:0mm, Z:?? mm, Weight set to ??g, CGy: ?? mm'" # 'TCP_3 is for Tool-B: Values: X:0 mm, Y:0mm, Z:?? mm, Weight set to ??g, CGy: ?? mm' $ 44 "'TCP_4 is for Tool-C: Values: X:0 mm, Y:0mm, Z:?? mm, Weight set to ??g, CGy: ?? mm'" # 'TCP_4 is for Tool-C: Values: X:0 mm, Y:0mm, Z:?? mm, Weight set to ??g, CGy: ?? mm' $ 45 "'TCP_5 is for Tool-D: Values: X:0 mm, Y:0mm, Z:?? mm, Weight set to ??g, CGy: ?? mm'" # 'TCP_5 is for Tool-D: Values: X:0 mm, Y:0mm, Z:?? mm, Weight set to ??g, CGy: ?? mm' $ 46 "Set" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) $ 47 "'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'" # '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' $ 48 "'Kelvin Action Info: This value will tell the program what to do next '" # 'Kelvin Action Info: This value will tell the program what to do next ' $ 49 "'Kelvin Action Info: 1 is checking if the robot is ready. Normally this step will 'Do Nothing'. When the robot pass the start check it will let the user chose what task to run next'" # 'Kelvin Action Info: 1 is checking if the robot is ready. Normally this step will "Do Nothing". When the robot pass the start check it will let the user chose what task to run next' $ 50 "Kelvin_Action≔1" global Kelvin_Action=1 $ 51 "'At startup the robot will run the program the set in 'Kelvin_Action'. Default is '1''" # 'At startup the robot will run the program the set in "Kelvin_Action". Default is "1"' $ 52 "'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'" # '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' $ 53 "'''ToolService'' variable is used to control the ToolService program'" # '''ToolService'' variable is used to control the ToolService program' $ 54 "'''ToolService'' must be set to 20 to show menu at start'" # '''ToolService'' must be set to 20 to show menu at start' $ 55 "ToolService≔20" global ToolService=20 $ 56 "'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'" # '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' $ 57 "'''BackUp'' variable is used to control the backup routine (program #43)'" # '''BackUp'' variable is used to control the backup routine (program #43)' $ 58 "'''BackUp'' must be set to 10 to show menu at start'" # '''BackUp'' must be set to 10 to show menu at start' $ 59 "BackUp≔10" global BackUp=10 $ 60 "'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'" # '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' $ 61 "'''ReLoad'' variable is used to control the reload from backup routine (program #44)'" # '''ReLoad'' variable is used to control the reload from backup routine (program #44)' $ 62 "'''ReLoad'' must be set to 10 to show menu at start'" # '''ReLoad'' must be set to 10 to show menu at start' $ 63 "ReLoad≔10" global ReLoad=10 $ 64 "'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'" # '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' $ 65 "'''DockSetUp'' variable is used to control the Dock SetUp routine (program #42)'" # '''DockSetUp'' variable is used to control the Dock SetUp routine (program #42)' $ 66 "'''DockSetUp'' must be set to 10 to show menu at start'" # '''DockSetUp'' must be set to 10 to show menu at start' $ 67 "DockSetUp≔10" global DockSetUp=10 $ 68 "'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'" # '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' $ 69 "'''Dock4SetUp'' variable is used to control the reload from backup routine (program #44)'" # '''Dock4SetUp'' variable is used to control the reload from backup routine (program #44)' $ 70 "'''Dock4SetUp'' must be set to 10 to show menu at start'" # '''Dock4SetUp'' must be set to 10 to show menu at start' $ 71 "Dock4SetUp≔10" global Dock4SetUp=10 $ 72 "'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'" # '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' $ 73 "'''Dock4Adjust'' variable is used to control the dock setup routine (program #42)'" # '''Dock4Adjust'' variable is used to control the dock setup routine (program #42)' $ 74 "'''Dock4Adjust'' must be set to 99 at program start'" # '''Dock4Adjust'' must be set to 99 at program start' $ 75 "'''Dock4Adjust''=99 an 88 are used to block some functions in proram #42'" # '''Dock4Adjust''=99 an 88 are used to block some functions in proram #42' $ 76 "Dock4Adjust≔99" global Dock4Adjust=99 $ 77 "'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'" # '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' $ 78 "'''UserXAdjustment'' variable is used to control th fine adjustment routine (program #42-3)'" # '''UserXAdjustment'' variable is used to control th fine adjustment routine (program #42-3)' $ 79 "'''UserXAdjustment'' must be set to 13 to show menu at start'" # '''UserXAdjustment'' must be set to 13 to show menu at start' $ 80 "UserXAdjustment≔13" global UserXAdjustment=13 $ 81 "'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'" # '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' $ 82 "'Loop info:To run more than once, loop must be reset after exit. See ''LoopReStarter'' at #0'" # 'Loop info:To run more than once, loop must be reset after exit. See ''LoopReStarter'' at #0' $ 83 "Tool ID setup" $ 84 "'List of Tool-ID used on this robot installation:'" # 'List of Tool-ID used on this robot installation:' $ 85 "'(your company): Dock-A:ID-? (?-tool)/ Dock-B: ID-? (?-too)/ Dock-C:Free / Dock-D:ID-?(?-tool) / Dock-M:UsersChoice!'" # '(your company): Dock-A:ID-? (?-tool)/ Dock-B: ID-? (?-too)/ Dock-C:Free / Dock-D:ID-?(?-tool) / Dock-M:UsersChoice!' $ 86 "'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'" # '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' $ 87 "'Tool-ID Adjust compensate for the difference between theoretical values (listed below) and real values measured by the robot. '" # 'Tool-ID Adjust compensate for the difference between theoretical values (listed below) and real values measured by the robot. ' $ 88 "'Tool-ID Adjustment: Sample: UR5 robot: 12V: 0.5 - 24V: 1.00 - (Default: 24V: 1.0)'" # 'Tool-ID Adjustment: Sample: UR5 robot: 12V: 0.5 - 24V: 1.00 - (Default: 24V: 1.0)' $ 89 "'Values for Tool ID(@24V): ID0: 4.9V(no Tool ID present), ID1: 5.7V, ID2: 6.7V, ID3: 7.4V, ID4: 8.4V, ID5: 9.5V, ID6: 10.8V, ID7: 11.7V, ID8: 12.4V, ID9: 13.2V, ID10: 14.1V'" # 'Values for Tool ID(@24V): ID0: 4.9V(no Tool ID present), ID1: 5.7V, ID2: 6.7V, ID3: 7.4V, ID4: 8.4V, ID5: 9.5V, ID6: 10.8V, ID7: 11.7V, ID8: 12.4V, ID9: 13.2V, ID10: 14.1V' $ 90 "Tool_ID_Adjust≔1.00" global Tool_ID_Adjust=1.00 $ 91 "'Hook Open: AI3<0.5 (0.25V@12V)'" # 'Hook Open: AI3<0.5 (0.25V@12V)' $ 92 "'Hook Locked: AI3>4.6V (2.3V@12V)'" # 'Hook Locked: AI3>4.6V (2.3V@12V)' $ 93 "'PowerSupply: AI3:0=No power! AI3:2.1V=24V (AI3:1.0V=12V)'" # 'PowerSupply: AI3:0=No power! AI3:2.1V=24V (AI3:1.0V=12V)' $ 94 "Docking setup" $ 95 "'This is data used for docking operations. Data for setting up docking stations can be found under ''Dock-X setup'''" # 'This is data used for docking operations. Data for setting up docking stations can be found under ''Dock-X setup''' $ 96 "'Only the Center Point information is saved for each docking station. The waypoints for the docking operations are generated from these data by the program'" # 'Only the Center Point information is saved for each docking station. The waypoints for the docking operations are generated from these data by the program' $ 97 "'The varable 'Dock_A_Home' is saved as an instalation variable. This makes it possible for the user to make changes and save these new values even when the robot is shut down'" # 'The varable "Dock_A_Home" is saved as an instalation variable. This makes it possible for the user to make changes and save these new values even when the robot is shut down' $ 98 "'When the program start the data for each dock center is copied from the installation value'" # 'When the program start the data for each dock center is copied from the installation value' $ 99 "'The actual values for this robot can be found under 'Installation' and 'Variables''" # 'The actual values for this robot can be found under "Installation" and "Variables"' $ 100 "'It is recommended to save a set of working values for each docking station. Use program #43'" # 'It is recommended to save a set of working values for each docking station. Use program #43' $ 101 "'Information: Dock-X is only used for updating or fine tuning a docking station. All changes and test runs are done on Dock-X. Data from Dock-X will be transferred to the real dock at the end of the update procedure'" # 'Information: Dock-X is only used for updating or fine tuning a docking station. All changes and test runs are done on Dock-X. Data from Dock-X will be transferred to the real dock at the end of the update procedure' $ 102 "'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'" # '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' $ 103 "'FrontDoor: Default: 90 mm (Front2Center variable)'" # 'FrontDoor: Default: 90 mm (Front2Center variable)' $ 104 "Front2Center≔90" global Front2Center=90 $ 105 "'FrontDoor-Center line at 22 deg with Robot X-axis'" # 'FrontDoor-Center line at 22 deg with Robot X-axis' $ 106 "'22 deg: Cos22: 0.9272 Sin22: 0.3746'" # '22 deg: Cos22: 0.9272 Sin22: 0.3746' $ 107 "DeltaFront≔p[Front2Center/1000*0.9272,Front2Center/1000*0.3746,0,0,0,0]" global DeltaFront=p[Front2Center/1000*0.9272,Front2Center/1000*0.3746,0,0,0,0] $ 108 "'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'" # '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' $ 109 "'Start point. Default: 1 mm (Start2Center variable). ToolChanger overshoot the center point by this value'" # 'Start point. Default: 1 mm (Start2Center variable). ToolChanger overshoot the center point by this value' $ 110 "Start2Center≔1" global Start2Center=1 $ 111 "DeltaStart≔p[Start2Center/1000*0.9272,Start2Center/1000*0.3746,0,0,0,0]" global DeltaStart=p[Start2Center/1000*0.9272,Start2Center/1000*0.3746,0,0,0,0] $ 112 "'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'" # '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' $ 113 "'Opening overshoot Open by 4 deg. (48 deg = 0,0,1.694)'" # 'Opening overshoot Open by 4 deg. (48 deg = 0,0,1.694)' $ 114 "DeltaOpening≔p[0,0,0,0,0,1.1694]" global DeltaOpening=p[0,0,0,0,0,1.1694] $ 115 "'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'" # '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' $ 116 "'Open position is 65 deg from Center-Front line (43 deg from X-axis)(0,0,1.1)'" # 'Open position is 65 deg from Center-Front line (43 deg from X-axis)(0,0,1.1)' $ 117 "DeltaOpen≔p[0,0,0,0,0,1.1]" global DeltaOpen=p[0,0,0,0,0,1.1] $ 118 "'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'" # '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' $ 119 "'BackDoor default: 45 mm (Back2Center variable) To get Master free of Dock'" # 'BackDoor default: 45 mm (Back2Center variable) To get Master free of Dock' $ 120 "Back2Center≔45" global Back2Center=45 $ 121 "'BackDoor is ''Open'' and z movement'" # 'BackDoor is ''Open'' and z movement' $ 122 "DeltaBack≔p[0,0,-Back2Center/1000,0,0,1.1]" global DeltaBack=p[0,0,-Back2Center/1000,0,0,1.1] $ 123 "'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'" # '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' $ 124 "'In the locking process the tool changer overturn to make sure the Hook is locked'" # 'In the locking process the tool changer overturn to make sure the Hook is locked' $ 125 "'The rubber mounts in the docking station will flex during this operation'" # 'The rubber mounts in the docking station will flex during this operation' $ 126 "'Values for overturning: 1deg: (0,0,6.2644) 2deg:(6.2470) 3deg:(6.2295) 4deg:(6.2121) 5deg:(6.1946) 6deg:(6.1772) 7deg:(6.1598)'" # 'Values for overturning: 1deg: (0,0,6.2644) 2deg:(6.2470) 3deg:(6.2295) 4deg:(6.2121) 5deg:(6.1946) 6deg:(6.1772) 7deg:(6.1598)' $ 127 "'Default value for overturning is 4 deg.'" # 'Default value for overturning is 4 deg.' $ 128 "'DeltaLocking must be set individualy for each dock'" # 'DeltaLocking must be set individualy for each dock' $ 129 "'If the connection is set up for high torque load it takes some extra overturning to secure the hook. Use 5 or 6 values'" # 'If the connection is set up for high torque load it takes some extra overturning to secure the hook. Use 5 or 6 values' $ 130 "DeltaLocking3≔p[0,0,0,0,0,6.2295]" global DeltaLocking3=p[0,0,0,0,0,6.2295] $ 131 "DeltaLocking4≔p[0,0,0,0,0,6.2121]" global DeltaLocking4=p[0,0,0,0,0,6.2121] $ 132 "DeltaLocking5≔p[0,0,0,0,0,6.1946]" global DeltaLocking5=p[0,0,0,0,0,6.1946] $ 133 "DeltaLocking6≔p[0,0,0,0,0,6.1772]" global DeltaLocking6=p[0,0,0,0,0,6.1772] $ 134 "DeltaLocking7≔p[0,0,0,0,0,6.1598]" global DeltaLocking7=p[0,0,0,0,0,6.1598] $ 135 "'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'" # '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' $ 136 "'DockSetUp'" # 'DockSetUp' $ 137 "'(see under Dock-X: ''DockXDeltaTrans'')'" # '(see under Dock-X: ''DockXDeltaTrans'')' $ 138 "'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'" # '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' $ 139 "'Data in this section is used for small adjustments to the pose for the docking station. Used for adjusting a docking station'" # 'Data in this section is used for small adjustments to the pose for the docking station. Used for adjusting a docking station' $ 140 "'Default for Dock Adjust is to use 0.333 deg. (1/3 deg.)'" # 'Default for Dock Adjust is to use 0.333 deg. (1/3 deg.)' $ 141 "1/3deg" $ 142 "'Pose to give 0.3 deg rotation (0.005 rad)'" # 'Pose to give 0.3 deg rotation (0.005 rad)' $ 143 "Xcw≔p[0,0,0,6.278,0,0]" global Xcw=p[0,0,0,6.278,0,0] $ 144 "Xccw≔p[0,0,0,0.005,0,0]" global Xccw=p[0,0,0,0.005,0,0] $ 145 "Ycw≔p[0,0,0,0,6.278,0]" global Ycw=p[0,0,0,0,6.278,0] $ 146 "Yccw≔p[0,0,0,0,0.005,0]" global Yccw=p[0,0,0,0,0.005,0] $ 147 "Zcw≔p[0,0,0,0,0,6.278]" global Zcw=p[0,0,0,0,0,6.278] $ 148 "Zccw≔p[0,0,0,0,0,0.005]" global Zccw=p[0,0,0,0,0,0.005] $ 149 "'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'" # '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' $ 151 "'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'" # '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' $ 152 "Dock A setup" $ 153 "'Warning: Do not change these values!! It will corrupt the program :-)'" # 'Warning: Do not change these values!! It will corrupt the program :-)' $ 154 "'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '" # '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' $ 155 "Dock_A_Center≔Dock_A_Home" global Dock_A_Center=Dock_A_Home $ 156 "'If ''Dock_A_Home'' is lost, unsuppress next step and restart the program'" # 'If ''Dock_A_Home'' is lost, unsuppress next step and restart the program' $ 158 "'BackUp 15/1 2020: : 0.169,-0.335,0.065,0.3277,-1.5561,-0.272'" # 'BackUp 15/1 2020: : 0.169,-0.335,0.065,0.3277,-1.5561,-0.272' $ 159 "'SmartLAB at Aalborg University'" # 'SmartLAB at Aalborg University' $ 160 "Dock_A_BackUp≔p[0.169,-0.335,0.065,0.3270,-1.55610,-0.27200]" global Dock_A_BackUp=p[0.169,-0.335,0.065,0.3270,-1.55610,-0.27200] $ 161 "'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '" # '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' $ 162 "Dock_A_Front≔pose_trans(Dock_A_Center, DeltaFront)" global Dock_A_Front= pose_trans (Dock_A_Center, DeltaFront) $ 163 "Dock_A_Back≔pose_trans(Dock_A_Center,DeltaBack)" global Dock_A_Back= pose_trans (Dock_A_Center,DeltaBack) $ 164 "Dock_A_Start≔pose_trans(Dock_A_Center, DeltaStart)" global Dock_A_Start= pose_trans (Dock_A_Center, DeltaStart) $ 165 "Dock_A_Open≔pose_trans(Dock_A_Center, DeltaOpen)" global Dock_A_Open= pose_trans (Dock_A_Center, DeltaOpen) $ 166 "'Locking can be set to be more agressive by changing to ''5'' or ''6'' version for ''DeltaLocking''. Default is 4'" # 'Locking can be set to be more agressive by changing to ''5'' or ''6'' version for ''DeltaLocking''. Default is 4' $ 167 "'''Delta Locking'''" # '''Delta Locking''' $ 169 "Dock_A_Locking≔pose_trans(Dock_A_Center, DeltaLocking4)" global Dock_A_Locking= pose_trans (Dock_A_Center, DeltaLocking4) $ 173 "Dock_A_Opening≔pose_trans(Dock_A_Center, DeltaOpening)" global Dock_A_Opening= pose_trans (Dock_A_Center, DeltaOpening) $ 174 "Dock B setup" $ 175 "'Warning: Do not change these values!! It will currupt the program :-)'" # 'Warning: Do not change these values!! It will currupt the program :-)' $ 176 "'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '" # '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' $ 177 "Dock_B_Center≔Dock_B_Home" global Dock_B_Center=Dock_B_Home $ 178 "'If ''Dock_B_Home'' is lost, unsuppress next step to restart'" # 'If ''Dock_B_Home'' is lost, unsuppress next step to restart' $ 180 "'BackUp 15/1 2020: : 0.108, -0.558, 0.065, 1.4854, 2.9667, 2.4629'" # 'BackUp 15/1 2020: : 0.108, -0.558, 0.065, 1.4854, 2.9667, 2.4629' $ 181 "'SmartLAB at Aalborg University'" # 'SmartLAB at Aalborg University' $ 182 "Dock_B_BackUp≔p[0.108,-0.558,0.065,1.4854,2.9667,2.4629]" global Dock_B_BackUp=p[0.108,-0.558,0.065,1.4854,2.9667,2.4629] $ 183 "'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '" # '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' $ 184 "Dock_B_Front≔pose_trans(Dock_B_Center, DeltaFront)" global Dock_B_Front= pose_trans (Dock_B_Center, DeltaFront) $ 185 "Dock_B_Back≔pose_trans(Dock_B_Center,DeltaBack)" global Dock_B_Back= pose_trans (Dock_B_Center,DeltaBack) $ 186 "Dock_B_Start≔pose_trans(Dock_B_Center, DeltaStart)" global Dock_B_Start= pose_trans (Dock_B_Center, DeltaStart) $ 187 "Dock_B_Open≔pose_trans(Dock_B_Center, DeltaOpen)" global Dock_B_Open= pose_trans (Dock_B_Center, DeltaOpen) $ 188 "'Locking can be set to be more agressive by changing to ''5'' or ''6'' version for ''DeltaLocking''. Default is 4'" # 'Locking can be set to be more agressive by changing to ''5'' or ''6'' version for ''DeltaLocking''. Default is 4' $ 189 "'''Delta Locking'''" # '''Delta Locking''' $ 191 "Dock_B_Locking≔pose_trans(Dock_B_Center, DeltaLocking4)" global Dock_B_Locking= pose_trans (Dock_B_Center, DeltaLocking4) $ 195 "Dock_B_Opening≔pose_trans(Dock_B_Center, DeltaOpening)" global Dock_B_Opening= pose_trans (Dock_B_Center, DeltaOpening) $ 196 "Dock C setup" $ 197 "'Warning: Do not change these values!! It will corrupt the program :-)'" # 'Warning: Do not change these values!! It will corrupt the program :-)' $ 198 "'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '" # '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' $ 199 "Dock_C_Center≔Dock_C_Home" global Dock_C_Center=Dock_C_Home $ 200 "'If ''Dock_C_Home'' is lost, unsuppress next step to restart'" # 'If ''Dock_C_Home'' is lost, unsuppress next step to restart' $ 202 "'BackUp 15/1 2020: : -0.062, -0.5654, 0.064, 1.8451, 2.226, 2.537'" # 'BackUp 15/1 2020: : -0.062, -0.5654, 0.064, 1.8451, 2.226, 2.537' $ 203 "'SmartLAB at Aalborg University'" # 'SmartLAB at Aalborg University' $ 204 "Dock_C_BackUp≔p[-0.062,-0.5654,0.064,1.8451,2.226,2.537]" global Dock_C_BackUp=p[-0.062,-0.5654,0.064,1.8451,2.226,2.537] $ 205 "'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '" # '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' $ 206 "Dock_C_Front≔pose_trans(Dock_C_Center, DeltaFront)" global Dock_C_Front= pose_trans (Dock_C_Center, DeltaFront) $ 207 "Dock_C_Back≔pose_trans(Dock_C_Center,DeltaBack)" global Dock_C_Back= pose_trans (Dock_C_Center,DeltaBack) $ 208 "Dock_C_Start≔pose_trans(Dock_C_Center, DeltaStart)" global Dock_C_Start= pose_trans (Dock_C_Center, DeltaStart) $ 209 "Dock_C_Open≔pose_trans(Dock_C_Center, DeltaOpen)" global Dock_C_Open= pose_trans (Dock_C_Center, DeltaOpen) $ 210 "'Locking can be set to be more agressive by changing to ''5'' or ''6'' version for ''DeltaLocking''. Default is 4'" # 'Locking can be set to be more agressive by changing to ''5'' or ''6'' version for ''DeltaLocking''. Default is 4' $ 211 "'''Delta Locking'''" # '''Delta Locking''' $ 213 "Dock_C_Locking≔pose_trans(Dock_C_Center, DeltaLocking4)" global Dock_C_Locking= pose_trans (Dock_C_Center, DeltaLocking4) $ 217 "Dock_C_Opening≔pose_trans(Dock_C_Center, DeltaOpening)" global Dock_C_Opening= pose_trans (Dock_C_Center, DeltaOpening) $ 218 "Dock D setup" $ 219 "'Warning: Do not change these values!! It will corrupt the program :-)'" # 'Warning: Do not change these values!! It will corrupt the program :-)' $ 220 "'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '" # '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' $ 221 "Dock_D_Center≔Dock_D_Home" global Dock_D_Center=Dock_D_Home $ 222 "'If ''Dock_D_Home'' is lost, unsuppress next step to restart'" # 'If ''Dock_D_Home'' is lost, unsuppress next step to restart' $ 224 "'BackUp 15/1 2020: : (not valid)'" # 'BackUp 15/1 2020: : (not valid)' $ 225 "'SmartLAB at Aalborg University'" # 'SmartLAB at Aalborg University' $ 226 "Dock_D_BackUp≔p[0.11103,0.34408,0.73569,-0.02553,0.00977,1.95934]" global Dock_D_BackUp=p[0.11103,0.34408,0.73569,-0.02553,0.00977,1.95934] $ 227 "'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - '" # '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ' $ 228 "Dock_D_Front≔pose_trans(Dock_D_Center, DeltaFront)" global Dock_D_Front= pose_trans (Dock_D_Center, DeltaFront) $ 229 "Dock_D_Back≔pose_trans(Dock_D_Center,DeltaBack)" global Dock_D_Back= pose_trans (Dock_D_Center,DeltaBack) $ 230 "Dock_D_Start≔pose_trans(Dock_D_Center, DeltaStart)" global Dock_D_Start= pose_trans (Dock_D_Center, DeltaStart) $ 231 "Dock_D_Open≔pose_trans(Dock_D_Center, DeltaOpen)" global Dock_D_Open= pose_trans (Dock_D_Center, DeltaOpen) $ 232 "'Locking can be set to be more agressive by changing to ''5'' or ''6'' version for ''DeltaLocking''. Default is 4'" # 'Locking can be set to be more agressive by changing to ''5'' or ''6'' version for ''DeltaLocking''. Default is 4' $ 233 "'''Delta Locking'''" # '''Delta Locking''' $ 235 "Dock_D_Locking≔pose_trans(Dock_D_Center, DeltaLocking4)" global Dock_D_Locking= pose_trans (Dock_D_Center, DeltaLocking4) $ 239 "Dock_D_Opening≔pose_trans(Dock_D_Center, DeltaOpening)" global Dock_D_Opening= pose_trans (Dock_D_Center, DeltaOpening) $ 240 "Dock X setup" $ 241 "'Dock-X is a temporary dock, used for setting up docking stations'" # 'Dock-X is a temporary dock, used for setting up docking stations' $ 242 "'Some data and settings used for setting up docking stations. General data for docking stations can be found under ''Docking setup'''" # 'Some data and settings used for setting up docking stations. General data for docking stations can be found under ''Docking setup''' $ 243 "'''DockXDeltaTrans'' is the micro steps used for fine tuning docking stations (in mm). Default: 0.5'" # '''DockXDeltaTrans'' is the micro steps used for fine tuning docking stations (in mm). Default: 0.5' $ 244 "DockXDeltaTrans≔0.50" global DockXDeltaTrans=0.50 $ 245 "'''UserAdjustments'' must have a value for the loop to start'" # '''UserAdjustments'' must have a value for the loop to start' $ 246 "UserXAdjustment≔13" global UserXAdjustment=13 $ 247 "Dock_X_Center≔p[0.3,0,0.5,0.8,3,0]" global Dock_X_Center=p[0.3,0,0.5,0.8,3,0] $ 248 "'Default: 0.3 , 0 , 0.5 , 0.8 , 3 , 0'" # 'Default: 0.3 , 0 , 0.5 , 0.8 , 3 , 0' $ 249 "'This is a set of waypoints used for setting up Docking Stations (Dock-X)'" # 'This is a set of waypoints used for setting up Docking Stations (Dock-X)' $ 250 "Dock_X_Front≔pose_trans(Dock_X_Center, DeltaFront)" global Dock_X_Front= pose_trans (Dock_X_Center, DeltaFront) $ 251 "Dock_X_Back≔pose_trans(Dock_X_Center,DeltaBack)" global Dock_X_Back= pose_trans (Dock_X_Center,DeltaBack) $ 252 "Dock_X_Start≔pose_trans(Dock_X_Center, DeltaStart)" global Dock_X_Start= pose_trans (Dock_X_Center, DeltaStart) $ 253 "Dock_X_Open≔pose_trans(Dock_X_Center, DeltaOpen)" global Dock_X_Open= pose_trans (Dock_X_Center, DeltaOpen) $ 254 "'Locking can be set to be more aggressive by changing to ''5'' or ''6'' version for ''DeltaLocking''. Default is 3'" # 'Locking can be set to be more aggressive by changing to ''5'' or ''6'' version for ''DeltaLocking''. Default is 3' $ 255 "'''Delta Locking'''" # '''Delta Locking''' $ 257 "Dock_X_Locking≔pose_trans(Dock_X_Center, DeltaLocking4)" global Dock_X_Locking= pose_trans (Dock_X_Center, DeltaLocking4) $ 261 "Dock_X_Opening≔pose_trans(Dock_X_Center, DeltaOpening)" global Dock_X_Opening= pose_trans (Dock_X_Center, DeltaOpening) $ 262 "Dock M setup" $ 263 "'Dock M is for manual tool changing. The robot arm will stop at this position to let the operator replace and/or mount a tool. '" # 'Dock M is for manual tool changing. The robot arm will stop at this position to let the operator replace and/or mount a tool. ' $ 264 "'When a tool is manual mounted the program will check that the hook is locked and read out the ID for the tool'" # 'When a tool is manual mounted the program will check that the hook is locked and read out the ID for the tool' $ 265 "'Manually operation of the tool changer will only be allowed when 'ToolFree' is set to 1'" # 'Manually operation of the tool changer will only be allowed when "ToolFree" is set to 1' $ 266 "'Warning: Values and waypoints are linked to this position. They may need update if you change these values!! '" # 'Warning: Values and waypoints are linked to this position. They may need update if you change these values!! ' $ 267 "Dock_M_Center≔p[0.14,-0.2,0.55,0.25,0.76,6.16]" global Dock_M_Center=p[0.14,-0.2,0.55,0.25,0.76,6.16] $ 268 "'Ready' setup" $ 269 "''Ready' is the pose where the program switch control from the Kelvin program over to subprograms and back again'" # '"Ready" is the pose where the program switch control from the Kelvin program over to subprograms and back again' $ 270 "'Subprograms start and end near this point (pose)'" # 'Subprograms start and end near this point (pose)' $ 271 "'Programs for changing tools start with one tool at this point and end here again after the robot switch to another tool'" # 'Programs for changing tools start with one tool at this point and end here again after the robot switch to another tool' $ 272 "Ready≔p[-0.1,-0.3,0.4,1.2,2.9,0]" global Ready=p[-0.1,-0.3,0.4,1.2,2.9,0] $ 273 "'Ready BackUp: (-0.1,-0.3,0.4,1.2,2.9,0)'" # 'Ready BackUp: (-0.1,-0.3,0.4,1.2,2.9,0)' $ 274 "'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'" # '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' $ 275 "'A series of waypoints are used to bring the robot arm and tools safety between the Ready pose and the docking stations (Front Door)'" # 'A series of waypoints are used to bring the robot arm and tools safety between the Ready pose and the docking stations (Front Door)' $ 276 "'These waypoints are hard coded with a name and pose (simple waypoints can be lost in back-up)'" # 'These waypoints are hard coded with a name and pose (simple waypoints can be lost in back-up)' $ 277 "'Naming of these waypoints follow a scheme of 'Ready_(number)_(dock)'. Lowest number is closest to Ready'" # 'Naming of these waypoints follow a scheme of "Ready_(number)_(dock)". Lowest number is closest to Ready' $ 278 "'Right before drop-off (typical #3) the tool will be put in the configuration for parking (e.g. closing gripper)'" # 'Right before drop-off (typical #3) the tool will be put in the configuration for parking (e.g. closing gripper)' $ 279 "'Right after pick-up (typical #3) the tool will be initialized and tested (e.g. open and closing gripper)'" # 'Right after pick-up (typical #3) the tool will be initialized and tested (e.g. open and closing gripper)' $ 280 "'Waypoints for ''Ready to FrontDoor''. Low numbers are close to ''Ready'''" # 'Waypoints for ''Ready to FrontDoor''. Low numbers are close to ''Ready''' $ 281 "Ready_1_A≔p[0.03,-0.325,0.365,1.278,3.08,-0.145]" global Ready_1_A=p[0.03,-0.325,0.365,1.278,3.08,-0.145] $ 282 "Ready_2_A≔p[0.104,-0.338,0.276,1.424,3.936,-1.305]" global Ready_2_A=p[0.104,-0.338,0.276,1.424,3.936,-1.305] $ 283 "Ready_3_A≔p[0.13,-0.338,0.2,0.0025,-1.7417,0.0661]" global Ready_3_A=p[0.13,-0.338,0.2,0.0025,-1.7417,0.0661] $ 284 "Ready_1_B≔p[0.035,-0.358,0.4,1.2,2.9,0]" global Ready_1_B=p[0.035,-0.358,0.4,1.2,2.9,0] $ 285 "Ready_2_B≔p[0.085,-0.515,0.253,1.557,2.905,1.078]" global Ready_2_B=p[0.085,-0.515,0.253,1.557,2.905,1.078] $ 286 "Ready_3_B≔p[0.09,-0.55,0.217,1.33,3.13,1.89]" global Ready_3_B=p[0.09,-0.55,0.217,1.33,3.13,1.89] $ 287 "Ready_1_C≔p[-0.085,-0.358,0.4,1.2,2.9,0]" global Ready_1_C=p[-0.085,-0.358,0.4,1.2,2.9,0] $ 288 "Ready_2_C≔p[-0.072,-0.515,0.253,2.258,2.368,1.088]" global Ready_2_C=p[-0.072,-0.515,0.253,2.258,2.368,1.088] $ 289 "Ready_3_C≔p[-0.065,-0.55,0.217,1.985,2.317,1.967]" global Ready_3_C=p[-0.065,-0.55,0.217,1.985,2.317,1.967] $ 290 "Ready_1_D≔p[0,0,0,0,0,0]" global Ready_1_D=p[0,0,0,0,0,0] $ 291 "Ready_2_D≔p[0,0,0,0,0,0]" global Ready_2_D=p[0,0,0,0,0,0] $ 292 "Ready_3_D≔p[0,0,0,0,0,0]" global Ready_3_D=p[0,0,0,0,0,0] $ 293 "Ready_1_M≔p[-0.1,-0.28,0.4,1.35,2.48,-0.137]" global Ready_1_M=p[-0.1,-0.28,0.4,1.35,2.48,-0.137] $ 294 "Ready_2_M≔p[0.060,-0.32,0.37,0.71,2.075,-0.158]" global Ready_2_M=p[0.060,-0.32,0.37,0.71,2.075,-0.158] $ 295 "Ready_3_M≔p[0.06,-0.33,0.51,0.25,0.84,-0.207]" global Ready_3_M=p[0.06,-0.33,0.51,0.25,0.84,-0.207] $ 296 "'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'" # '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' $ 297 "'Waypoints between BackDoors. Low number is closest to first dock'" # 'Waypoints between BackDoors. Low number is closest to first dock' $ 298 "BackA_1_B≔p[0.218,-0.394,0.2,1.428,3.99,-1.632]" global BackA_1_B=p[0.218,-0.394,0.2,1.428,3.99,-1.632] $ 299 "BackA_2_B≔p[0.184,-0.588,0.2,3.6,2.88,0.75]" global BackA_2_B=p[0.184,-0.588,0.2,3.6,2.88,0.75] $ 300 "BackA_1_C≔p[0.218,-0.394,0.200,1.428,3.99,-1.632]" global BackA_1_C=p[0.218,-0.394,0.200,1.428,3.99,-1.632] $ 301 "BackA_2_C≔p[-0.026,-0.613,0.200,3.822,1.457,1.885]" global BackA_2_C=p[-0.026,-0.613,0.200,3.822,1.457,1.885] $ 302 "BackA_1_D≔p[0,0,0,0,0,0]" global BackA_1_D=p[0,0,0,0,0,0] $ 303 "BackA_2_D≔p[0,0,0,0,0,0]" global BackA_2_D=p[0,0,0,0,0,0] $ 304 "BackA_1_M≔p[0.195,-0.33,0.186,1.428,3.99,-1.632]" global BackA_1_M=p[0.195,-0.33,0.186,1.428,3.99,-1.632] $ 305 "BackA_2_M≔p[0.03,-0.31,0.41,0.419,-0.79,0.203]" global BackA_2_M=p[0.03,-0.31,0.41,0.419,-0.79,0.203] $ 306 "BackA_1_R≔p[0.2,-0.335,0.160,1.27,4.168,-1.332]" global BackA_1_R=p[0.2,-0.335,0.160,1.27,4.168,-1.332] $ 307 "BackA_2_R≔p[0.02,-0.435,0.350,3.253,2.565,-0.43]" global BackA_2_R=p[0.02,-0.435,0.350,3.253,2.565,-0.43] $ 308 "BackB_1_C≔p[0.063,-0.613,0.169,3.769,2.435,1.166]" global BackB_1_C=p[0.063,-0.613,0.169,3.769,2.435,1.166] $ 309 "BackB_2_C≔p[-0.026,-0.613,0.169,3.822,1.457,1.885]" global BackB_2_C=p[-0.026,-0.613,0.169,3.822,1.457,1.885] $ 310 "BackB_1_D≔p[0,0,0,0,0,0]" global BackB_1_D=p[0,0,0,0,0,0] $ 311 "BackB_2_D≔p[0,0,0,0,0,0]" global BackB_2_D=p[0,0,0,0,0,0] $ 312 "BackB_1_M≔p[0.109,-0.576,0.187,3.74,2.55,1.06]" global BackB_1_M=p[0.109,-0.576,0.187,3.74,2.55,1.06] $ 313 "BackB_2_M≔p[0.059,-0.4778,0.256,1.305,1.66,1.214]" global BackB_2_M=p[0.059,-0.4778,0.256,1.305,1.66,1.214] $ 314 "BackB_1_R≔p[0.112,-0.59,0.195,3.56,2.56,1.41]" global BackB_1_R=p[0.112,-0.59,0.195,3.56,2.56,1.41] $ 315 "BackB_2_R≔p[0.02,-0.44,0.33,3.58,1.75,0.64]" global BackB_2_R=p[0.02,-0.44,0.33,3.58,1.75,0.64] $ 316 "BackC_1_D≔p[0,0,0,0,0,0]" global BackC_1_D=p[0,0,0,0,0,0] $ 317 "BackC_2_D≔p[0,0,0,0,0,0]" global BackC_2_D=p[0,0,0,0,0,0] $ 318 "BackC_1_M≔p[-0.075,-0.58,0.187,3.805,1.307,1.944]" global BackC_1_M=p[-0.075,-0.58,0.187,3.805,1.307,1.944] $ 319 "BackC_2_M≔p[0.059,-0.478,0.256,1.3305,1.66,1.214]" global BackC_2_M=p[0.059,-0.478,0.256,1.3305,1.66,1.214] $ 320 "BackC_1_R≔p[-0.07,-0.59,0.17,3.68,1.38,2.01]" global BackC_1_R=p[-0.07,-0.59,0.17,3.68,1.38,2.01] $ 321 "BackC_2_R≔p[-0.025,-0.45,0.33,3.55,1.21,1.0]" global BackC_2_R=p[-0.025,-0.45,0.33,3.55,1.21,1.0] $ 322 "BackD_1_M≔p[0,0,0,0,0,0]" global BackD_1_M=p[0,0,0,0,0,0] $ 323 "BackD_2_M≔p[0,0,0,0,0,0]" global BackD_2_M=p[0,0,0,0,0,0] $ 324 "BackD_1_R≔p[0,0,0,0,0,0]" global BackD_1_R=p[0,0,0,0,0,0] $ 325 "BackD_2_R≔p[0,0,0,0,0,0]" global BackD_2_R=p[0,0,0,0,0,0] $ 326 "'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'" # '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' $ 327 "'More poses for the robot arm may be set up here'" # 'More poses for the robot arm may be set up here' $ 328 "Pneumatics" $ 329 "'Info on the pneumatic control system'" # 'Info on the pneumatic control system' $ 330 "'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'" # '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' $ 331 "'Setting the pneumatic valves'" # 'Setting the pneumatic valves' $ 332 "'Pneumatic valves can be on 5-3 valve with closed center position or two 3-2 valves. Two 3-2 valves will make it possible to control each line individual'" # 'Pneumatic valves can be on 5-3 valve with closed center position or two 3-2 valves. Two 3-2 valves will make it possible to control each line individual' $ 333 "'AO[0] is the pneumatic supply for line A. Set to '0' to stop flow (under 'I/O' analog_out[0] most be set to voltage)'" # 'AO[0] is the pneumatic supply for line A. Set to "0" to stop flow (under "I/O" analog_out[0] most be set to voltage)' $ 334 "Set AO[0]=4.0" set_standard_analog_out(0, 0.0) $ 335 "'AO[1] is the pneumatic supply for line B. Set to '0' to stop flow (under 'I/O' analog_out[0] most be set to voltage)'" # 'AO[1] is the pneumatic supply for line B. Set to "0" to stop flow (under "I/O" analog_out[0] most be set to voltage)' $ 336 "Set AO[1]=4.0" set_standard_analog_out(1, 0.0) $ 337 "'Warning: If AO(1) is 4.0 all ''0 volt'' settings in the program have changed to 4.0V!!!'" # 'Warning: If AO(1) is 4.0 all ''0 volt'' settings in the program have changed to 4.0V!!!' $ 338 "'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'" # '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' $ 339 "'To make it easy to program the operation of the valves pneumatics can be set with the 'Pneu' variable'" # 'To make it easy to program the operation of the valves pneumatics can be set with the "Pneu" variable' $ 340 "'Pneu_A=0 means that line A is closed and Pneu_A=1 that it is open'" # 'Pneu_A=0 means that line A is closed and Pneu_A=1 that it is open' $ 341 "'With 5-3 valve A and B can't be open at the same time. With two 3-2 valves they can!'" # 'With 5-3 valve A and B can't be open at the same time. With two 3-2 valves they can!' $ 342 "Pneu_A≔0" global Pneu_A=0 $ 343 "Pneu_B≔0" global Pneu_B=0 $ 344 "'- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -'" # '- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' $ 345 "'Pressure control:'" # 'Pressure control:' $ 346 "'If the pneumatics is set up with an electric pressure controler this program will set the pressure'" # 'If the pneumatics is set up with an electric pressure controler this program will set the pressure' $ 347 "'Thread_3 is transforming the P_Pneu value into a voltage (P_Volt) for the regulator'" # 'Thread_3 is transforming the P_Pneu value into a voltage (P_Volt) for the regulator' $ 348 "'P_pneu is the air pressure (value in bar) wanted by the programmer. Set to '0' for startup'" # 'P_pneu is the air pressure (value in bar) wanted by the programmer. Set to '0' for startup' $ 350 "'P_Glue, P_Sealing, P_Vacu: Use for setting pressure level in SubPrograms. More predefined values can be added here'" # 'P_Glue, P_Sealing, P_Vacu: Use for setting pressure level in SubPrograms. More predefined values can be added here' $ 354 "'P_Volt is the voltage setting for the regulator'" # 'P_Volt is the voltage setting for the regulator' $ 355 "'Volt2Bar is setting a voltage for the pneumatic regulator from the pressure wanted (depending on the pressure regulator)'" # 'Volt2Bar is setting a voltage for the pneumatic regulator from the pressure wanted (depending on the pressure regulator)' $ 356 "Volt2Bar≔0.115" global Volt2Bar=0.115 $ 1502 "Thread_1" thread Thread_1(): while (True): # 'This Thread is for securing that a tool is not released during operations' # 'Values for "ToolFree" and "HookOpen" is used to deside if the robot should stop' if (get_tool_analog_in(1)<4.0*Tool_ID_Adjust and ToolFree == 0): popup("

STOP!

Hook is not in locked position!

(Thread_1)
Program Stop to prevent dangerus situation.
Program will stop here !
", "Error", False, True, blocking=False) halt # 'Popup stop program or unsuppress ''Halt'' here' halt end sleep(0.5) end end threadId_Thread_1 = run Thread_1() $ 357 "Robot Program" $ 358 "'''Kelvin'' shell program is running in an closed Loop. ''Kelvin Action'' parameter is used to start the different subprograms'" # '''Kelvin'' shell program is running in an closed Loop. ''Kelvin Action'' parameter is used to start the different subprograms' $ 359 "'Run Kelvin program #40 for more information'" # 'Run Kelvin program #40 for more information' $ 360 "Loop" while (True): $ 361 "1: Start-Up procedure" $ 362 "'Routine for start-up of the Kelvin Tool Changer demo program'" # 'Routine for start-up of the Kelvin Tool Changer demo program' $ 363 "'The robot will initialize and move to the starting position, but first we turn off pneumatics'" # 'The robot will initialize and move to the starting position, but first we turn off pneumatics' $ 364 "'After initalization and moving to start point (Ready) we show a list of jobs'" # 'After initalization and moving to start point (Ready) we show a list of jobs' $ 365 "If Kelvin_Action≟1" if (Kelvin_Action == 1): $ 366 "Pneu_A≔0" global Pneu_A=0 $ 367 "Pneu_B≔0" global Pneu_B=0 $ 368 "Wait: 0.2" sleep(0.2) $ 369 "Welcome Popup" $ 370 "If Lang≟1" if (Lang == 1): $ 371 "Popup" popup("
Velkommen til

Kelvin Tool Changer

Demo Program


Robotten vil nu initalisere og flytte
robotarmen til start positionen

Hvis alt er OK sker der ingen ting :-)", "Message", False, False, blocking=True) else: $ 372 "ElseIf Lang≟2" if (Lang == 2): $ 373 "Popup" popup("
Welcome to

Kelvin Tool Changer

Demonstration Program

The robot will now initialize and move
the robot arm to the starting position

If everything is OK this step will do nothing

Willkommen bei

Kelvin Tool Changer

Demostratiosprogramm


Der Robot initialisiert nun und bewegt
den Robotarm in die Startposition

Wenn alles in Ordnung ist, wird dieser Schritt nichts tun :-)
Bienvenue à

Kelvin Tool Changer

Programme de démonstratio


Le robot va maintenant s'initaliser et déplacer
le brass du robot en position de départ

Si tout va bien cett", "Message", False, False, blocking=True) else: $ 378 "ElseIf Lang≟5" if (Lang == 5): $ 379 "Popup" popup("
Bienvenido a

Kelvin Tool Changer

Programa de demonstración


El robot ahora se inicializará y moverá
el brazo del robot a la posición inical

Si todo está bien, e", "Message", False, False, blocking=True) else: $ 380 "Else" $ 381 "Popup" popup("
Welcome to

Kelvin Tool Changer

Demo Program


The robot will now initialize and move
the robot arm to the starting position

If everything is ok this step will do nothing :-)", "Message", False, False, blocking=True) end end end end end $ 382 "MoveJ" $ 383 "StartIniWaypnt" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(get_inverse_kin(p[-.100006783663, -.299988953230, .399967607046, 1.199971202734, 2.899954029814, .000069318551], qnear=[0.8898706436157227, -2.0284093062030237, 1.9137492179870605, -1.4550145308123987, -1.583297077809469, 0.10796251147985458]), a=0.6981317007977318, v=0.5235987755982988) $ 384 "'StartIniWaypoint is same position as ''Ready'''" # 'StartIniWaypoint is same position as ''Ready''' $ 385 "'This waypoint is in the same position as 'Ready' but force the robot to have all joints in the right positions'" # 'This waypoint is in the same position as "Ready" but force the robot to have all joints in the right positions' $ 386 "'This waypoint is typical lost if the program is moved or installed from a backup. Move the robot arm to the 'Work Place' and set a new waypoint here'" # 'This waypoint is typical lost if the program is moved or installed from a backup. Move the robot arm to the "Work Place" and set a new waypoint here' $ 387 "Ready" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready, a=0.6981317007977318, v=0.5235987755982988) end $ 388 "2: Free" $ 389 "If Kelvin_Action≟2" if (Kelvin_Action == 2): $ 390 "Wait: 0.2" sleep(0.2) $ 391 "Popup" popup("

No program setup for #2


Place user program under step 2 in main loop

This will be program number 2
", "Message", False, False, blocking=True) end $ 392 "3: Free" $ 393 "If Kelvin_Action≟3" if (Kelvin_Action == 3): $ 394 "Wait: 0.2" sleep(0.2) $ 395 "Popup" popup("

No program setup for #3


Place user program under step 3 in main loop

This will be program number 3
", "Message", False, False, blocking=True) end $ 396 "4: Free" $ 397 "If Kelvin_Action≟4" if (Kelvin_Action == 4): $ 398 "Wait: 0.2" sleep(0.2) $ 399 "Popup" popup("

No program setup for #4


Place user program under step 4 in main loop

This will be program number 4
", "Message", False, False, blocking=True) end $ 400 "5: Free" $ 401 "If Kelvin_Action≟5" if (Kelvin_Action == 5): $ 402 "Wait: 0.2" sleep(0.2) $ 403 "Popup" popup("

No program setup for #5


Place user program under step 5 in main loop

This will be program number 5
", "Message", False, False, blocking=True) end $ 404 "6: Free" $ 405 "If Kelvin_Action≟6" if (Kelvin_Action == 6): $ 406 "Wait: 0.2" sleep(0.2) $ 407 "Popup" popup("

No program setup #6


Place user program under step 6 in main loop

This will be program number 6
", "Message", False, False, blocking=True) end $ 408 "7: Free" $ 409 "If Kelvin_Action≟7" if (Kelvin_Action == 7): $ 410 "Wait: 0.2" sleep(0.2) $ 411 "Popup" popup("

No program setup #7


Place user program under step 7 in main loop

This will be program number 7
", "Message", False, False, blocking=True) end $ 412 "8: Free" $ 413 "If Kelvin_Action≟8" if (Kelvin_Action == 8): $ 414 "Wait: 0.2" sleep(0.2) $ 415 "Popup" popup("

No program setup #8


Place user program under step 8 in main loop

This will be program number 8
", "Message", False, False, blocking=True) end $ 416 "9: Free" $ 417 "If Kelvin_Action≟9" if (Kelvin_Action == 9): $ 418 "Wait: 0.2" sleep(0.2) $ 419 "Popup" popup("

No program setup #9


Place user program under step 9 in main loop

This will be program number 9
", "Message", False, False, blocking=True) end $ 420 "10: Work with Tool-A" $ 421 "If Kelvin_Action≟10" if (Kelvin_Action == 10): $ 422 "ToolFree≔1" global ToolFree=1 $ 423 "Wait: 0.2" sleep(0.2) $ 424 "Popup" popup("

#10: Run program with Tool-A

Robot arm start from 'Ready',
pick up Tool-A and bring it to 'Ready'

Run user made code for this tool

Bring the tool back to Dock-A and
return to ''Ready''
", "Message", False, False, blocking=True) $ 425 "Call HookCheckOpen" HookCheckOpen() $ 426 "Call Transit_Ready_to_A_Back" Transit_Ready_to_A_Back() $ 427 "Call HookCheckOpen" HookCheckOpen() $ 428 "Call Dock_A_PickUp" Dock_A_PickUp() $ 429 "Call Check_Tool_A_ID" Check_Tool_A_ID() $ 430 "ToolFree≔0" global ToolFree=0 $ 431 "Call Transit_A_Front_to_Ready" Transit_A_Front_to_Ready() $ 432 "Popup" popup("

Ready to work with Tool A

Insert code or subprogram for Tool-A here

Press ''Continue'' to run program and return tool to dock
", "Message", False, False, blocking=True) $ 433 "'Insert program steps and link to sub-program here'" # 'Insert program steps and link to sub-program here' $ 434 "Call Transit_Ready_to_A_Front" Transit_Ready_to_A_Front() $ 435 "Call Check_Tool_A_ID" Check_Tool_A_ID() $ 436 "ToolFree≔1" global ToolFree=1 $ 437 "Call Dock_A_DropOff" Dock_A_DropOff() $ 438 "Call Transit_A_Back_to_Ready" Transit_A_Back_to_Ready() end $ 439 "11: Work with Tool-B" $ 440 "If Kelvin_Action≟11" if (Kelvin_Action == 11): $ 441 "Wait: 0.2" sleep(0.2) $ 442 "Popup" popup("

#11: Run program with Tool-B

Robot arm start from 'Ready',
pick up Tool-B and bring it to 'Ready'

Run user made code for this tool

Bring the tool back to Dock-B and
return to ''Ready''
", "Message", False, False, blocking=True) $ 443 "Call HookCheckOpen" HookCheckOpen() $ 444 "Call Transit_Ready_to_B_Back" Transit_Ready_to_B_Back() $ 445 "Call HookCheckOpen" HookCheckOpen() $ 446 "Call Dock_B_PickUp" Dock_B_PickUp() $ 447 "Call Check_Tool_B_ID" Check_Tool_B_ID() $ 448 "ToolFree≔0" global ToolFree=0 $ 449 "Call Transit_B_Front_to_Ready" Transit_B_Front_to_Ready() $ 450 "Popup" popup("

Ready to work with Tool B

Insert code or subprogram for Tool-B here

Press ''Continue'' to run program and return tool to dock
", "Message", False, False, blocking=True) $ 451 "'Insert program steps and link to sub-program here'" # 'Insert program steps and link to sub-program here' $ 452 "Call Transit_Ready_to_B_Front" Transit_Ready_to_B_Front() $ 453 "Call Check_Tool_B_ID" Check_Tool_B_ID() $ 454 "ToolFree≔1" global ToolFree=1 $ 455 "Call Dock_B_DropOff" Dock_B_DropOff() $ 456 "Call Transit_B_Back_to_Ready" Transit_B_Back_to_Ready() end $ 457 "12: Work with Tool-C" $ 458 "If Kelvin_Action≟12" if (Kelvin_Action == 12): $ 459 "Wait: 0.2" sleep(0.2) $ 460 "Popup" popup("

#12: Run program with Tool-C

Robot arm start from 'Ready',
pick up Tool-C and bring it to 'Ready'

Run user made code for this tool

Bring the tool back to Dock-C and
return to ''Ready''
", "Message", False, False, blocking=True) $ 461 "Call HookCheckOpen" HookCheckOpen() $ 462 "Call Transit_Ready_to_C_Back" Transit_Ready_to_C_Back() $ 463 "Call HookCheckOpen" HookCheckOpen() $ 464 "Call Dock_C_PickUp" Dock_C_PickUp() $ 465 "Call Check_Tool_C_ID" Check_Tool_C_ID() $ 466 "ToolFree≔0" global ToolFree=0 $ 467 "Call Transit_C_Front_to_Ready" Transit_C_Front_to_Ready() $ 468 "Popup" popup("

Ready to work with Tool C

Insert code or subprogram for Tool-C here

Press ''Continue'' to run program and return tool to dock
", "Message", False, False, blocking=True) $ 469 "'Insert program steps and link to sub-program here'" # 'Insert program steps and link to sub-program here' $ 470 "Call Transit_Ready_to_C_Front" Transit_Ready_to_C_Front() $ 471 "Call Check_Tool_C_ID" Check_Tool_C_ID() $ 472 "ToolFree≔1" global ToolFree=1 $ 473 "Call Dock_C_DropOff" Dock_C_DropOff() $ 474 "Call Transit_C_Back_to_Ready" Transit_C_Back_to_Ready() end $ 475 "13: Work with Tool-ABC" $ 476 "If Kelvin_Action≟13" if (Kelvin_Action == 13): $ 477 "Wait: 0.2" sleep(0.2) $ 478 "Popup" popup("

#13: Cycle tool A, B and C

Robot arm start from 'Ready',
pick up a Tool and bring it to 'Ready'
Bring tool back to Dock and cycle next tool
Finish cycle at ''Ready''
", "Message", False, False, blocking=True) $ 479 "ToolFree≔1" global ToolFree=1 $ 480 "Call Transit_Ready_to_A_Back" Transit_Ready_to_A_Back() $ 481 "Call HookCheckOpen" HookCheckOpen() $ 482 "Call Dock_A_PickUp" Dock_A_PickUp() $ 483 "Call Check_Tool_A_ID" Check_Tool_A_ID() $ 484 "ToolFree≔0" global ToolFree=0 $ 485 "Call Transit_A_Front_to_Ready" Transit_A_Front_to_Ready() $ 486 "Wait: 2.0" sleep(2.0) $ 487 "Loop 1 times" Loop_7 = 0 while (Loop_7 < 1): $ 488 "Switch A2B" $ 489 "Call Transit_Ready_to_A_Front" Transit_Ready_to_A_Front() $ 490 "Call Check_Tool_A_ID" Check_Tool_A_ID() $ 491 "ToolFree≔1" global ToolFree=1 $ 492 "Call Dock_A_DropOff" Dock_A_DropOff() $ 493 "Call Transit_A_Back_to_B_Back" Transit_A_Back_to_B_Back() $ 494 "Call HookCheckOpen" HookCheckOpen() $ 495 "Call Dock_B_PickUp" Dock_B_PickUp() $ 496 "Call HookCheckClosed" HookCheckClosed() $ 497 "Call Check_Tool_B_ID" Check_Tool_B_ID() $ 498 "ToolFree≔0" global ToolFree=0 $ 499 "Call Transit_B_Front_to_Ready" Transit_B_Front_to_Ready() $ 500 "Wait: 2.0" sleep(2.0) $ 501 "Switch B2C" $ 502 "Call Transit_Ready_to_B_Front" Transit_Ready_to_B_Front() $ 503 "Call Check_Tool_B_ID" Check_Tool_B_ID() $ 504 "ToolFree≔1" global ToolFree=1 $ 505 "Call Dock_B_DropOff" Dock_B_DropOff() $ 506 "Call Transit_B_Back_to_C_Back" Transit_B_Back_to_C_Back() $ 507 "Call HookCheckOpen" HookCheckOpen() $ 508 "Call Dock_C_PickUp" Dock_C_PickUp() $ 509 "Call HookCheckClosed" HookCheckClosed() $ 510 "Call Check_Tool_C_ID" Check_Tool_C_ID() $ 511 "ToolFree≔0" global ToolFree=0 $ 512 "Call Transit_C_Front_to_Ready" Transit_C_Front_to_Ready() $ 513 "Wait: 2.0" sleep(2.0) $ 514 "Switch C2A" $ 515 "Call Transit_Ready_to_C_Front" Transit_Ready_to_C_Front() $ 516 "Call Check_Tool_C_ID" Check_Tool_C_ID() $ 517 "ToolFree≔1" global ToolFree=1 $ 518 "Call Dock_C_DropOff" Dock_C_DropOff() $ 519 "Call Transit_C_Back_to_A_Back" Transit_C_Back_to_A_Back() $ 520 "Call HookCheckOpen" HookCheckOpen() $ 521 "Call Dock_A_PickUp" Dock_A_PickUp() $ 522 "Call HookCheckClosed" HookCheckClosed() $ 523 "Call Check_Tool_A_ID" Check_Tool_A_ID() $ 524 "ToolFree≔0" global ToolFree=0 $ 525 "Call Transit_A_Front_to_Ready" Transit_A_Front_to_Ready() $ 526 "Wait: 2.0" sleep(2.0) Loop_7 = Loop_7 + 1 end $ 527 "Call Transit_Ready_to_A_Front" Transit_Ready_to_A_Front() $ 528 "Call Check_Tool_A_ID" Check_Tool_A_ID() $ 529 "ToolFree≔1" global ToolFree=1 $ 530 "Call Dock_A_DropOff" Dock_A_DropOff() $ 531 "Call Transit_A_Back_to_Ready" Transit_A_Back_to_Ready() end $ 532 "14: Manual Tool Change" $ 533 "If Kelvin_Action≟14" if (Kelvin_Action == 14): $ 534 "ToolFree≔1" global ToolFree=1 $ 535 "Popup" popup("

#14: Manual Tool Change

This program demonstrate the
manual operation of the tool changer


Move from ''Ready'' to Dock-M and let the user
change the tool. Then go back to ''Ready''


Press ''Continue''", "Message", False, False, blocking=True) $ 536 "Call Transit_Ready_to_Dock_M" Transit_Ready_to_Dock_M() $ 537 "Call Dock_M_DropOff" Dock_M_DropOff() $ 538 "Popup" popup("

Manual Tool Change

Mount a tool on the Tool Changer

Press ''Continue'' to go back
to ''Ready'' with this tool
", "Message", False, False, blocking=True) $ 539 "Call HookCheckClosed" HookCheckClosed() $ 540 "Call DetectToolID" DetectToolID() $ 541 "Call HookCheckClosed" HookCheckClosed() $ 542 "Call Dock_M_PickUp" Dock_M_PickUp() $ 543 "Call Transit_Dock_M_to_Ready" Transit_Dock_M_to_Ready() $ 544 "ToolFree≔1" global ToolFree=1 $ 545 "Popup" popup("

Finished !

Manual tool shift is complete

Press ''Continue'' to thoose the next program
", "Message", False, False, blocking=True) end $ 546 "15: Free" $ 547 "If Kelvin_Action≟15" if (Kelvin_Action == 15): $ 548 "Wait: 0.2" sleep(0.2) $ 549 "Popup" popup("

No program setup #15


Place user program under step 15 in main loop

This will be program number 15
", "Message", False, False, blocking=True) end $ 550 "16: Free" $ 551 "If Kelvin_Action≟16" if (Kelvin_Action == 16): $ 552 "Wait: 0.2" sleep(0.2) $ 553 "Popup" popup("

No program setup #16


Place user program under step 16 in main loop

This will be program number 16
", "Message", False, False, blocking=True) end $ 554 "17: Free" $ 555 "If Kelvin_Action≟17" if (Kelvin_Action == 17): $ 556 "Wait: 0.2" sleep(0.2) $ 557 "Popup" popup("

No program setup #17


Place user program under step 17 in main loop

This will be program number 17
", "Message", False, False, blocking=True) end $ 558 "18: Free" $ 559 "If Kelvin_Action≟18" if (Kelvin_Action == 18): $ 560 "Wait: 0.2" sleep(0.2) $ 561 "Popup" popup("

No program setup #18


Place user program under step 18 in main loop

This will be program number 18
", "Message", False, False, blocking=True) end $ 562 "19: Free" $ 563 "If Kelvin_Action≟19" if (Kelvin_Action == 19): $ 564 "Wait: 0.2" sleep(0.2) $ 565 "Popup" popup("

No program setup #19


Place user program under step 19 in main loop

This will be program number 19
", "Message", False, False, blocking=True) end $ 566 "20: Free" $ 567 "If Kelvin_Action≟20" if (Kelvin_Action == 20): $ 568 "Wait: 0.2" sleep(0.2) $ 569 "Popup" popup("

No program setup #20


Place user program under step 20 in main loop

This will be program number 20
", "Message", False, False, blocking=True) end $ 570 "40: Info" $ 571 "If Kelvin_Action≟40" if (Kelvin_Action == 40): $ 572 "Popup" popup("

Kelvin Tool Changer

Demonstration program info

This is a free sample program for demonstrating
the Kelvin Tool Changer on a collaborative
robot from Universal Robot

Page 1/8
", "Message", False, False, blocking=True) $ 573 "Popup" popup("

Kelvin Tool Changer

Demonstration program info

Programmed by:
Henning Forbech, 4TECH Robotics Aps

Version: 1.0
Release date: February 4th, 2020

Page 2/8", "Message", False, False, blocking=True) $ 574 "Popup" popup("

Kelvin Tool Changer

Demonstration program info

Programmed on URSim 3.5.3
Tested on UR5

You are welcome to change
and update this program

Page 3/8
", "Message", False, False, blocking=True) $ 575 "Popup" popup("

Kelvin Tool Changer

Patent information

Kelvin Tool Changer is protected by patend:

Danish patent: DK 179744 B1
PTC patent pending: WO 2019/080977 A1

Page 4/8
", "Message", False, False, blocking=True) $ 576 "Popup" popup("

Kelvin Tool Changer

User Manual

The User manual for Kelvin Tool Changer
can be downloaded from the Kelvin homepage:

www.toolchanger.eu

Page 5/8
", "Message", False, False, blocking=True) $ 577 "Popup" popup("

Kelvin Tool Changer

Contact information:

4TECH Robotics Aps
Bülowsgade 36
8000 Aarhus C
Denmark

Web: www.toolchanger.eu
Mail: kelvin@toolchanger.eu

Page 6/8
", "Message", False, False, blocking=True) $ 578 "Popup" popup("

Kelvin Tool Changer

Serial number:

This Kelvin Tool Changer is:

SN:   007

(from the machine plate)

Page 7/8
", "Message", False, False, blocking=True) $ 580 "Popup" popup("

Kelvin Tool Changer

Installation

This Kelvin Tool Changer is used by:

fortiss GmbH

München

Page 8/8
", "Message", False, False, blocking=True) end $ 581 "41: Tool Service" $ 582 "If Kelvin_Action≟41" if (Kelvin_Action == 41): $ 583 "Wait: 0.2" sleep(0.2) $ 584 "Loop ToolService≠0" while (ToolService != 0): $ 585 "20: Start Tool Service" $ 586 "If ToolService≟20" if (ToolService == 20): $ 587 "Popup" popup("

#41: Tool Service: R2M

Manually mount, remove or
replace tool from robot arm


Start from ''Ready'', go to ''Dock-M''
and then back to ''Ready''

Press ''Continue'' for menu
", "Message", False, False, blocking=True) $ 588 "Popup" popup("

#41: Tool Service Menu 1/3

From Dock to manuel

1: Dock-A
2: Dock-B
3: Dock-C
3: Dock-D

Press ''Continue'' for next menu
", "Message", False, False, blocking=True) $ 589 "Popup" popup("

#41: Tool Service Menu 2/3

From manual to Dock

5: Dock-A
6: Dock-B
7: Dock-C
8: Dock-D

Press ''Continue'' for next menu
", "Message", False, False, blocking=True) $ 590 "Popup" popup("

#41: Tool Service Menu 3/3

Between Ready and Manual

  9: Mount
10: Remove
11: Replace
20: Menu
  0: Exit

Press ''Continue'' to select task
", "Message", False, False, blocking=True) $ 591 "Wait: 0.2" sleep(0.2) end $ 592 "1: Dock-A to Dock-M" $ 593 "If ToolService≟1" if (ToolService == 1): $ 594 "Popup" popup("

#41 Tool Service: A2M

Transfer tool from Dock-A to Dock-M

Start from ''Ready'' and end in ''Ready'' again

Press ''Continue'' to start task
", "Message", False, False, blocking=True) $ 595 "If analog_in[3]>0.5*Tool_ID_Adjust" if (get_tool_analog_in(1)>0.5*Tool_ID_Adjust): $ 596 "Popup" popup("

Not ready for tool pick-up

Hook not in full open position
If a tool is mounted, remove this tool


Press ''Continue'' and remove the tool (#9)", "Warning", True, False, blocking=True) $ 597 "ToolService≔9" global ToolService=9 else: $ 598 "Else" $ 599 "Call HookCheckOpen" HookCheckOpen() $ 600 "Call Transit_Ready_to_A_Back" Transit_Ready_to_A_Back() $ 601 "Call Dock_A_PickUp" Dock_A_PickUp() $ 602 "Call HookCheckClosed" HookCheckClosed() $ 603 "Call Check_Tool_A_ID" Check_Tool_A_ID() $ 604 "ToolFree≔0" global ToolFree=0 $ 605 "Call HookCheckClosed" HookCheckClosed() $ 606 "Call Check_Tool_A_ID" Check_Tool_A_ID() $ 607 "Call Transit_A_Front_to_Ready" Transit_A_Front_to_Ready() $ 608 "Call Transit_Ready_to_Dock_M" Transit_Ready_to_Dock_M() $ 609 "Call Dock_M_DropOff" Dock_M_DropOff() $ 610 "Popup" popup("

#41 Tool Service: A2M

Remove Tool-A

Press ''Continue'' to go back to ''Ready''
", "Message", False, False, blocking=True) $ 611 "Call HookCheckOpen" HookCheckOpen() $ 612 "Call Transit_Dock_M_to_Ready" Transit_Dock_M_to_Ready() end end $ 613 "2: Dock-B to Dock-M" $ 614 "If ToolService≟2" if (ToolService == 2): $ 615 "Popup" popup("

#41 Tool Service: B2M

Transfer tool from Dock-B to Dock-M

Start from ''Ready'' and end in ''Ready'' again

Press ''Continue'' to start task
", "Message", False, False, blocking=True) $ 616 "If analog_in[3]>0.5*Tool_ID_Adjust" if (get_tool_analog_in(1)>0.5*Tool_ID_Adjust): $ 617 "Popup" popup("

Not ready for tool pick-up

Hook not in full open position
If a tool is mounted, remove this tool


Press ''Continue'' and remove the tool (#9)", "Warning", True, False, blocking=True) $ 618 "ToolService≔9" global ToolService=9 else: $ 619 "Else" $ 620 "Call HookCheckOpen" HookCheckOpen() $ 621 "Call Transit_Ready_to_B_Back" Transit_Ready_to_B_Back() $ 622 "Call Dock_B_PickUp" Dock_B_PickUp() $ 623 "Call HookCheckClosed" HookCheckClosed() $ 624 "Call Check_Tool_B_ID" Check_Tool_B_ID() $ 625 "ToolFree≔0" global ToolFree=0 $ 626 "Call HookCheckClosed" HookCheckClosed() $ 627 "Call Check_Tool_B_ID" Check_Tool_B_ID() $ 628 "Call Transit_B_Front_to_Ready" Transit_B_Front_to_Ready() $ 629 "Call Transit_Ready_to_Dock_M" Transit_Ready_to_Dock_M() $ 630 "Call Dock_M_DropOff" Dock_M_DropOff() $ 631 "Popup" popup("

#41Tool Service: B2M

Remove Tool-B

Press ''Continue'' to go back to ''Ready''
", "Message", False, False, blocking=True) $ 632 "Call HookCheckOpen" HookCheckOpen() $ 633 "Call Transit_Dock_M_to_Ready" Transit_Dock_M_to_Ready() end end $ 634 "3: Dock-C to Dock-M" $ 635 "If ToolService≟3" if (ToolService == 3): $ 636 "Popup" popup("

#41 Tool Service: C2M

Transfer tool from Dock-C to Dock-M

Start from ''Ready'' and end in ''Ready'' again

Press ''Continue'' to start task
", "Message", False, False, blocking=True) $ 637 "If analog_in[3]>0.5*Tool_ID_Adjust" if (get_tool_analog_in(1)>0.5*Tool_ID_Adjust): $ 638 "Popup" popup("

Not ready for tool pick-up

Hook not in full open position
If a tool is mounted, remove this tool


Press ''Continue'' and remove the tool (#9)", "Warning", True, False, blocking=True) $ 639 "ToolService≔9" global ToolService=9 else: $ 640 "Else" $ 641 "Call HookCheckOpen" HookCheckOpen() $ 642 "Call Transit_Ready_to_C_Back" Transit_Ready_to_C_Back() $ 643 "Call Dock_C_PickUp" Dock_C_PickUp() $ 644 "Call HookCheckClosed" HookCheckClosed() $ 645 "Call Check_Tool_C_ID" Check_Tool_C_ID() $ 646 "ToolFree≔0" global ToolFree=0 $ 647 "Call HookCheckClosed" HookCheckClosed() $ 648 "Call Check_Tool_C_ID" Check_Tool_C_ID() $ 649 "Call Transit_C_Front_to_Ready" Transit_C_Front_to_Ready() $ 650 "Call Transit_Ready_to_Dock_M" Transit_Ready_to_Dock_M() $ 651 "Call Dock_M_DropOff" Dock_M_DropOff() $ 652 "Popup" popup("

#41 Tool Service: C2M

Remove Tool-C

Press ''Continue'' to go back to ''Ready''
", "Message", False, False, blocking=True) $ 653 "Call HookCheckOpen" HookCheckOpen() $ 654 "Call Transit_Dock_M_to_Ready" Transit_Dock_M_to_Ready() end end $ 655 "4: Dock-D to Dock-M" $ 656 "If ToolService≟4" if (ToolService == 4): $ 657 "Popup" popup("

#41Tool Service: D2M

Transfer tool from Dock-D to Dock-M

Start from ''Ready'' and end in ''Ready'' again

Press ''Continue'' to start task
", "Message", False, False, blocking=True) $ 658 "If analog_in[3]>0.5*Tool_ID_Adjust" if (get_tool_analog_in(1)>0.5*Tool_ID_Adjust): $ 659 "Popup" popup("

Not ready for tool pick-up

Hook not in full open position
If a tool is mounted, remove this tool


Press ''Continue'' and remove the tool (#9)", "Warning", True, False, blocking=True) $ 660 "ToolService≔9" global ToolService=9 else: $ 661 "Else" $ 662 "Call HookCheckOpen" HookCheckOpen() $ 663 "Call Transit_Ready_to_D_Back" Transit_Ready_to_D_Back() $ 664 "Call Dock_D_PickUp" Dock_D_PickUp() $ 665 "Call HookCheckClosed" HookCheckClosed() $ 666 "Call Check_Tool_D_ID" Check_Tool_D_ID() $ 667 "ToolFree≔0" global ToolFree=0 $ 668 "Call HookCheckClosed" HookCheckClosed() $ 669 "Call Check_Tool_D_ID" Check_Tool_D_ID() $ 670 "Call Transit_D_Front_to_Ready" Transit_D_Front_to_Ready() $ 671 "Call Transit_Ready_to_Dock_M" Transit_Ready_to_Dock_M() $ 672 "Call Dock_M_DropOff" Dock_M_DropOff() $ 673 "Popup" popup("

#41Tool Service: D2A

Remove Tool-D

Press ''Continue'' to go back to ''Ready''
", "Message", False, False, blocking=True) $ 674 "Call HookCheckOpen" HookCheckOpen() $ 675 "Call Transit_Dock_M_to_Ready" Transit_Dock_M_to_Ready() end end $ 676 "5: Dock-M to Dock-A" $ 677 "If ToolService≟5" if (ToolService == 5): $ 678 "Popup" popup("

#41:Tool Service: M2A

Transfer tool from Dock-M to Dock-A

Start from ''Ready'' and end in ''Ready'' again

Press ''Continue'' to start task
", "Message", False, False, blocking=True) $ 679 "Call Transit_Ready_to_Dock_M" Transit_Ready_to_Dock_M() $ 680 "ToolFree≔1" global ToolFree=1 $ 681 "Popup" popup("

Tool for Dock-A

Mount a tool to transfer to Dock-A

This tool must have the right Tool-ID for Dock-A

Press ''Continue'' to transfer tool
", "Message", False, False, blocking=True) $ 682 "Call HookCheckClosed" HookCheckClosed() $ 683 "Call Check_Tool_A_ID" Check_Tool_A_ID() $ 684 "ToolFree≔0" global ToolFree=0 $ 685 "Call HookCheckClosed" HookCheckClosed() $ 686 "Call Check_Tool_A_ID" Check_Tool_A_ID() $ 687 "Call Transit_Dock_M_to_Ready" Transit_Dock_M_to_Ready() $ 688 "Call Transit_Ready_to_A_Front" Transit_Ready_to_A_Front() $ 689 "Call Check_Tool_A_ID" Check_Tool_A_ID() $ 690 "ToolFree≔1" global ToolFree=1 $ 691 "Call Dock_A_DropOff" Dock_A_DropOff() $ 692 "Call Transit_A_Back_to_Ready" Transit_A_Back_to_Ready() end $ 693 "6: Dock-M to Dock-B" $ 694 "If ToolService≟6" if (ToolService == 6): $ 695 "Popup" popup("

#41:Tool Service: M2B

Transfer tool from Dock-M to Dock-B

Start from ''Ready'' and end in ''Ready'' again

Press ''Continue'' to start task
", "Message", False, False, blocking=True) $ 696 "Call Transit_Ready_to_Dock_M" Transit_Ready_to_Dock_M() $ 697 "ToolFree≔1" global ToolFree=1 $ 698 "Popup" popup("

Tool for Dock-B

Mount a tool to transfer to Dock-B

This tool must have the right Tool-ID for Dock-B

Press ''Continue'' to transfer tool
", "Message", False, False, blocking=True) $ 699 "Call HookCheckClosed" HookCheckClosed() $ 700 "Call Check_Tool_B_ID" Check_Tool_B_ID() $ 701 "ToolFree≔0" global ToolFree=0 $ 702 "Call HookCheckClosed" HookCheckClosed() $ 703 "Call Check_Tool_B_ID" Check_Tool_B_ID() $ 704 "Call Transit_Dock_M_to_Ready" Transit_Dock_M_to_Ready() $ 705 "Call Transit_Ready_to_B_Front" Transit_Ready_to_B_Front() $ 706 "Call Check_Tool_B_ID" Check_Tool_B_ID() $ 707 "ToolFree≔1" global ToolFree=1 $ 708 "Call Dock_B_DropOff" Dock_B_DropOff() $ 709 "Call Transit_B_Back_to_Ready" Transit_B_Back_to_Ready() end $ 710 "7: Dock-M to Dock-C" $ 711 "If ToolService≟7" if (ToolService == 7): $ 712 "Popup" popup("

#41:Tool Service: M2C

Transfer tool from Dock-M to Dock-C

Start from ''Ready'' and end in ''Ready'' again

Press ''Continue'' to start task
", "Message", False, False, blocking=True) $ 713 "Call Transit_Ready_to_Dock_M" Transit_Ready_to_Dock_M() $ 714 "ToolFree≔1" global ToolFree=1 $ 715 "Popup" popup("

Tool for Dock-C

Mount a tool to transfer to Dock-C

This tool must have the right Tool-ID for Dock-C

Press ''Continue'' to transfer tool
", "Message", False, False, blocking=True) $ 716 "Call HookCheckClosed" HookCheckClosed() $ 717 "Call Check_Tool_C_ID" Check_Tool_C_ID() $ 718 "ToolFree≔0" global ToolFree=0 $ 719 "Call HookCheckClosed" HookCheckClosed() $ 720 "Call Check_Tool_C_ID" Check_Tool_C_ID() $ 721 "Call Transit_Dock_M_to_Ready" Transit_Dock_M_to_Ready() $ 722 "Call Transit_Ready_to_C_Front" Transit_Ready_to_C_Front() $ 723 "Call Check_Tool_C_ID" Check_Tool_C_ID() $ 724 "ToolFree≔1" global ToolFree=1 $ 725 "Call Dock_C_DropOff" Dock_C_DropOff() $ 726 "Call Transit_C_Back_to_Ready" Transit_C_Back_to_Ready() end $ 727 "8: Dock-M to Dock-D" $ 728 "If ToolService≟8" if (ToolService == 8): $ 729 "Popup" popup("

#41:Tool Service: M2D

Transfer tool from Dock-M to Dock-D

Start from ''Ready'' and end in ''Ready'' again

Press ''Continue'' to start task
", "Message", False, False, blocking=True) $ 730 "Call Transit_Ready_to_Dock_M" Transit_Ready_to_Dock_M() $ 731 "ToolFree≔1" global ToolFree=1 $ 732 "Popup" popup("

Tool for Dock-D

Mount a tool to transfer to Dock-D

This tool must have the right Tool-ID for Dock-D

Press ''Continue'' to transfer tool
", "Message", False, False, blocking=True) $ 733 "Call HookCheckClosed" HookCheckClosed() $ 734 "Call Check_Tool_D_ID" Check_Tool_D_ID() $ 735 "ToolFree≔0" global ToolFree=0 $ 736 "Call HookCheckClosed" HookCheckClosed() $ 737 "Call Check_Tool_D_ID" Check_Tool_D_ID() $ 738 "Call Transit_Dock_M_to_Ready" Transit_Dock_M_to_Ready() $ 739 "Call Transit_Ready_to_D_Front" Transit_Ready_to_D_Front() $ 740 "Call Check_Tool_D_ID" Check_Tool_D_ID() $ 741 "ToolFree≔1" global ToolFree=1 $ 742 "Call Dock_D_DropOff" Dock_D_DropOff() $ 743 "Call Transit_D_Back_to_Ready" Transit_D_Back_to_Ready() end $ 744 "9: R-2-M: Mount tool" $ 745 "If ToolService≟9" if (ToolService == 9): $ 746 "Popup" popup("

#41: Tool Service: R2M

9: Manually mount tool on robot arm

Move from ''Ready'' to ''Dock-M''
Mount tool and go back to ''Ready''

Press ''Continue'' to mount tool
", "Message", False, False, blocking=True) $ 747 "Call Transit_Ready_to_Dock_M" Transit_Ready_to_Dock_M() $ 749 "Popup" popup("

#41 Tool Service:

Mount Tool

Press ''Continue'' to bring
the new tool back to ''Ready''
", "Message", False, False, blocking=True) $ 750 "Call HookCheckClosed" HookCheckClosed() $ 751 "Call DetectToolID" DetectToolID() $ 752 "Call Dock_M_PickUp" Dock_M_PickUp() $ 753 "Call Transit_Dock_M_to_Ready" Transit_Dock_M_to_Ready() $ 754 "ToolFree≔1" global ToolFree=1 end $ 755 "10: R-2-M: Remove tool" $ 756 "If ToolService≟10" if (ToolService == 10): $ 757 "Popup" popup("

#41: Tool Service: R2M

10: Manually remove tool from robot arm

Transfer tool from ''Ready'' to ''Dock-M''
Remove tool and go empty back to ''Ready''

Press ''Continue'' to replace tool
", "Message", False, False, blocking=True) $ 758 "Call Transit_Ready_to_Dock_M" Transit_Ready_to_Dock_M() $ 759 "ToolFree≔1" global ToolFree=1 $ 760 "Call Dock_M_DropOff" Dock_M_DropOff() $ 761 "Popup" popup("

#41 Tool Service:

Remove Tool

Press ''Continue'' to go
empty back to ''Ready''
", "Message", False, False, blocking=True) $ 762 "Call HookCheckOpen" HookCheckOpen() $ 764 "Call Transit_Dock_M_to_Ready" Transit_Dock_M_to_Ready() end $ 765 "11: R-2-M: Replace tool" $ 766 "If ToolService≟11" if (ToolService == 11): $ 767 "Popup" popup("

#41: Tool Service: R2M

11: Manually replace tool on robot arm

Move tool from ''Ready'' to ''Dock-M''
Replace the tool and go back to ''Ready''

Press ''Continue'' to replace tool
", "Message", False, False, blocking=True) $ 768 "Call Transit_Ready_to_Dock_M" Transit_Ready_to_Dock_M() $ 769 "Call Dock_M_DropOff" Dock_M_DropOff() $ 770 "Popup" popup("

#41 Tool Service:

Replace Tool

Press ''Continue'' to bring
the new tool back to ''Ready''
", "Message", False, False, blocking=True) $ 771 "Call HookCheckClosed" HookCheckClosed() $ 772 "Call DetectToolID" DetectToolID() $ 773 "Call Dock_M_PickUp" Dock_M_PickUp() $ 774 "Call Transit_Dock_M_to_Ready" Transit_Dock_M_to_Ready() $ 775 "ToolFree≔1" global ToolFree=1 end $ 776 "0: End Tool Service" $ 777 "If ToolService≟0" if (ToolService == 0): $ 778 "'''0: End program'' must be last step in the Tool Service loop'" # '''0: End program'' must be last step in the Tool Service loop' $ 779 "'This routine can close down the DockSetUp program. It also checks for non-valid user input and ask for next task. Valid input must be in the 'ElseIf' string'" # 'This routine can close down the DockSetUp program. It also checks for non-valid user input and ask for next task. Valid input must be in the 'ElseIf' string' else: $ 780 "ElseIf ToolService≟0 or ToolService≟1 or ToolService≟2 or ToolService≟3 or ToolService≟4 or ToolService≟5 or ToolService≟6 or ToolService≟7 or ToolService≟8 or ToolService≟9 or ToolService≟10 or ToolService≟11 or ToolService≟20" if (ToolService == 0 or ToolService == 1 or ToolService == 2 or ToolService == 3 or ToolService == 4 or ToolService == 5 or ToolService == 6 or ToolService == 7 or ToolService == 8 or ToolService == 9 or ToolService == 10 or ToolService == 11 or ToolService == 20): $ 781 "Wait: 0.5" sleep(0.5) else: $ 782 "Else" $ 783 "Popup" popup("

Input error !

Not a valid input

Only 1 - 11, 20 and 0 are valid input

Press ''Continue'' to try again
", "Error", False, True, blocking=True) $ 784 "Wait: 0.5" sleep(0.5) end end $ 785 "ToolService≔'Tool Service task number: (''20'': Menu ''0'': End)'" global ToolService=request_integer_from_primary_client("Tool Service task number: (''20'': Menu ''0'': End)") $ 786 "Wait: 0.2" sleep(0.2) end end $ 787 "42: Dock SetUp and Adjust" $ 788 "If Kelvin_Action≟42" if (Kelvin_Action == 42): $ 789 "'This loop runs the setup operation. ''0'' end the loop and go back to the Kelvin menu'" # 'This loop runs the setup operation. ''0'' end the loop and go back to the Kelvin menu' $ 790 "'Some steps depend on user indput, others are done automaticaly by setting a value for ''DockSetUp'''" # 'Some steps depend on user indput, others are done automaticaly by setting a value for ''DockSetUp''' $ 791 "Popup" popup("

#42: Dock SetUp and Adjust

Install new docking stations
or adjust existing dock


Backup existing dock before adjusting:
Stop this program and run #43

Press ''Continue'' for first step
", "Message", False, False, blocking=True) $ 792 "Loop DockSetUp≠0" thread Thread_while_792(): while (True): $ 793 "10: Start Dock SetUp" $ 794 "If DockSetUp≟10" if (DockSetUp == 10): $ 795 "Popup" popup("

#42: Dock SetUp Menu

Choose next task:

1: Setup new dock
2: Adjust existing dock
0: Exit & Back to Kelvin menu

Press ''Continue'' to choose task
", "Message", False, False, blocking=True) $ 796 "Wait: 0.2" sleep(0.2) end $ 797 "1: SetUp New Dock" $ 798 "If DockSetUp≟1" if (DockSetUp == 1): $ 799 "Popup" popup("

#42 SetUp New Dock - Step A

Manually Setup

Manually by moving the robot arm into
the new dock and then use the robot
to find the position for the dock

Press ''Continue'' for info
", "Message", False, False, blocking=True) $ 800 "Popup" popup("

#42 SetUp New Dock - Step B

Manually setup

First open the ''Move'' window behind
this popup in the next pause (10 sec.)

Set ''Feature'' to ''Base''

Press ''Continue'' for pause
", "Message", False, False, blocking=True) $ 801 "Wait: 10.0" sleep(10.0) $ 802 "Popup" popup("

#42 SetUp New Dock - Step C

Manually setup

Use the ''free drive'' to move
robot into the dock

The pose for the dock can be found
under ''TCP_1''in the ''Move'' window

Press ''Continue'' for next step", "Message", False, False, blocking=True) $ 803 "Popup" popup("

#42 SetUp New Dock - Step D

Manually setup

Input the pose data for the new docking
to a dock in ''Variables'' under ''Installation''

Press ''Continue'' for next step
", "Message", False, False, blocking=True) $ 804 "Popup" popup("

#42 SetUp New Dock - Step E

Manually setup

Use ''free drive'' to move the robot
out of the docking and
restart the Kelvin program

Press ''Continue'' to stop the Kelvin program
", "Message", False, False, blocking=True) $ 805 "Halt" halt end $ 806 "2: Dock Adjust" $ 807 "If DockSetUp≟2" if (DockSetUp == 2): $ 808 "Popup" popup("

#42 Adjust Dock - Step A

Mount a tool on the Tool Changer

Kelvin Program #14 can be used to
manual mount a tool on the robot arm

Press ''Continue'' to start
adjusting process with this tool
", "Message", False, False, blocking=True) $ 809 "Popup" popup("

#42 Adjust Dock - Step B

Robot arm at ''Ready''

Adjust sequence will start from ''Ready''
(no movement if the robot arm is at ''Ready'')

Press ''Continue'' to move
robot arm to ''Ready''
", "Message", False, False, blocking=True) $ 810 "MoveJ" $ 811 "Ready" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movej(Ready, a=0.3490658503988659, v=0.3490658503988659) $ 812 "Popup" popup("

#42 Adjust Dock - Step C

Chose which docking station to adjust

1: Dock-A
2: Dock-B
3: Dock-C
4: Dock-D

Press ''Continue'' for next step
", "Message", False, False, blocking=True) $ 813 "Dock4SetUp≔'Dock to adjust: 1:A 2:B 3:C 4:D (Exit: ''0'')'" global Dock4SetUp=request_integer_from_primary_client("Dock to adjust: 1:A 2:B 3:C 4:D (Exit: ''0'')") $ 814 "'We need a copy to control the program'" # 'We need a copy to control the program' $ 815 "If Dock4SetUp≟0" if (Dock4SetUp == 0): $ 816 "Popup" popup("

#42 Adjust Dock - Finish

Dock SetUp completed

Dock setup routine will now close down

Press ''Continue'' to get back to Kelvin menu
", "Message", False, False, blocking=True) $ 817 "'Next we kill the Dock SetUp routine and go back to Kelvin menu'" # 'Next we kill the Dock SetUp routine and go back to Kelvin menu' $ 818 "DockSetUp≔0" global DockSetUp=0 end $ 819 "Dock4Adjust≔Dock4SetUp" global Dock4Adjust=Dock4SetUp $ 820 "Popup" popup("

#42 Adjust Dock - Step D

Robot go to dock

Robot will now move from ''Ready'' to
a position right in front of the dock

Press ''Continue'' to move
robot arm to dock
", "Message", False, False, blocking=True) $ 821 "Loop 1 times" Loop_3 = 0 while (Loop_3 < 1): $ 822 "If Dock4Adjust≟1" if (Dock4Adjust == 1): $ 823 "Call Transit_Ready_to_A_Front" Transit_Ready_to_A_Front() $ 824 "Popup" popup("

#42 Adjust Dock - Step E

Tool into Dock-A

The tool will now slowly move into Dock-A

Press ''Continue'' to
move tool into dock
", "Message", False, False, blocking=True) $ 825 "MoveL" $ 826 "Dock_A_Front" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_A_Front), a=0.05, v=0.025) $ 827 "Dock_A_Center" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_A_Center), a=0.05, v=0.025) $ 828 "Popup" popup("

#42 Adjust Dock - Step F

Tool in Dock-A

The tool is now in Dock-A
and ready for adjustments

Press ''Continue'' to adjust
", "Message", False, False, blocking=True) end $ 829 "If Dock4Adjust≟2" if (Dock4Adjust == 2): $ 830 "Call Transit_Ready_to_B_Front" Transit_Ready_to_B_Front() $ 831 "Popup" popup("

#42 Adjust Dock - Step E

Tool into Dock-B

The tool will now slowly move into Dock-B

Press ''Continue'' to
move tool into dock
", "Message", False, False, blocking=True) $ 832 "MoveL" $ 833 "Dock_B_Front" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_B_Front), a=0.05, v=0.025) $ 834 "Dock_B_Center" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_B_Center), a=0.05, v=0.025) $ 835 "Popup" popup("

#42 Adjust Dock - Step F

Tool in Dock-B

The tool is now in Dock-B
and ready for adjustments

Press ''Continue'' to adjust
", "Message", False, False, blocking=True) end $ 836 "If Dock4Adjust≟3" if (Dock4Adjust == 3): $ 837 "Call Transit_Ready_to_C_Front" Transit_Ready_to_C_Front() $ 838 "Popup" popup("

#42 Adjust Dock - Step E

Tool into Dock-C

The tool will now slowly move into Dock-C

Press ''Continue'' to
move tool into dock
", "Message", False, False, blocking=True) $ 839 "MoveL" $ 840 "Dock_C_Front" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_C_Front), a=0.05, v=0.025) $ 841 "Dock_C_Center" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_C_Center), a=0.05, v=0.025) $ 842 "Popup" popup("

#42 Adjust Dock - Step F

Tool in Dock-C

The tool is now in Dock-C
and ready for adjustments

Press ''Continue'' to adjust
", "Message", False, False, blocking=True) end $ 843 "If Dock4Adjust≟4" if (Dock4Adjust == 4): $ 844 "Call Transit_Ready_to_D_Front" Transit_Ready_to_D_Front() $ 845 "Popup" popup("

#42 Adjust Dock - Step E

Tool into Dock-D

The tool will now slowly move into Dock-D

Press ''Continue'' to
move tool into dock
", "Message", False, False, blocking=True) $ 846 "MoveL" $ 847 "Dock_D_Front" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_D_Front), a=0.05, v=0.025) $ 848 "Dock_D_Center" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_D_Center), a=0.05, v=0.025) $ 849 "Popup" popup("

#42 Adjust Dock - Step F

Tool in Dock-D

The tool is now in Dock-D
and ready for adjustments

Press ''Continue'' to adjust
", "Message", False, False, blocking=True) end $ 850 "If Dock4Adjust≟99" if (Dock4Adjust == 99): $ 851 "Popup" popup("

#42 Adjust Dock - Step X

Blocked

Ups! This function is blocked
Restart #42 to solve the problem

Press ''Continue'' to get the Kelvin menu
", "Message", False, False, blocking=True) $ 852 "DockSetUp≔0" global DockSetUp=0 end $ 853 "If Dock4Adjust≟0" if (Dock4Adjust == 0): $ 854 "Popup" popup("ohhhh - shoul not be possible to get this popup", "Message", False, False, blocking=True) else: $ 855 "ElseIf Dock4Adjust≟0 or Dock4Adjust≟1 or Dock4Adjust≟2 or Dock4Adjust≟3 or Dock4Adjust≟4 or Dock4Adjust≟10 or Dock4Adjust≟99" if (Dock4Adjust == 0 or Dock4Adjust == 1 or Dock4Adjust == 2 or Dock4Adjust == 3 or Dock4Adjust == 4 or Dock4Adjust == 10 or Dock4Adjust == 99): $ 856 "Wait: 0.2" sleep(0.2) else: $ 857 "Else" $ 858 "Popup" popup("

Ups!

Not a valid entry!

1: Dock-A
2: Dock-B
3: Dock-C
4: Dock-D
0: Exit

Press ''Continue'' to try again
", "Warning", True, False, blocking=True) end end Loop_3 = Loop_3 + 1 end $ 859 "'When tool in dock we go on to next step'" # 'When tool in dock we go on to next step' $ 860 "'''DockSetUp'' set to 3 for next step'" # '''DockSetUp'' set to 3 for next step' $ 861 "DockSetUp≔3" global DockSetUp=3 end $ 862 "3: ManualDockAdjustments" $ 863 "'This routine will help the operator to fine tune the alignment of the Tool Changer to the Dock Station'" # 'This routine will help the operator to fine tune the alignment of the Tool Changer to the Dock Station' $ 864 "'The step size in this adjustment can be changede by setting a new value for 'DeltaTrans' and unsuppres a rotation value in the 'BeforeStart' section'" # 'The step size in this adjustment can be changede by setting a new value for 'DeltaTrans' and unsuppres a rotation value in the 'BeforeStart' section' $ 865 "If DockSetUp≟3" if (DockSetUp == 3): $ 866 "Wait: 0.2" sleep(0.2) $ 867 "If Dock4Adjust≟99" if (Dock4Adjust == 99): $ 868 "Popup" popup("

#42 Adjust Dock - Ups!

Blocked

Sorry. This function is blocked.
Restart #42 to solve the problem

Press ''Continue'' to get the Kelvin menu
", "Message", False, False, blocking=True) $ 869 "DockSetUp≔0" global DockSetUp=0 $ 870 "Wait: 0.2" sleep(0.2) end $ 871 "If Dock4Adjust≟88" if (Dock4Adjust == 88): $ 872 "Popup" popup("

#42 Adjust Dock

Prepare for adjustments

First the tool moves into the Dock

Press ''Continue'' to move tool in
", "Message", False, False, blocking=True) $ 873 "MoveL" $ 874 "Dock_X_Front" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_X_Front), a=0.05, v=0.025) $ 875 "Dock_X_Center" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_X_Center), a=0.05, v=0.025) end $ 876 "Popup" popup("

#42 Adjust Dock - Step G

Fine adjustments

The position in the Dock can now be
optimized by moving the tool in small steps

Press ''Continue'' for adjust commands
", "Message", False, False, blocking=True) $ 877 "Popup" popup("

#42 Adjust Dock - Step H

Fine adjustments

1-2: In/Out
3-4: Right/Left
5-6: Up/Down


Press ''Continue'' for more adjust commands
", "Message", False, False, blocking=True) $ 878 "Popup" popup("

#42 Adjust Dock - Step H

Fine adjustments

    7-8: Pitch
  9-10: Roll
11-12: Yaw


Press ''Continue'' for adjust hints
", "Message", False, False, blocking=True) $ 879 "Popup" popup("

#42 Adjust Dock - Step I

Fine tune hint:

Overdo adjustments and step back to the best fit.
Adjustments steps are very small

Press ''Continue'' to adjust
", "Message", False, False, blocking=True) $ 880 "Loop UserXAdjustment≠0" while (UserXAdjustment != 0): $ 881 "DockXCenterBeta≔get_actual_tcp_pose()" global DockXCenterBeta= get_actual_tcp_pose () $ 882 "If UserXAdjustment≟1" if (UserXAdjustment == 1): $ 883 "DockXCenter1≔pose_trans(DockXCenterBeta, p[-DockXDeltaTrans/1000*0.9272,-DockXDeltaTrans/1000*0.3746,0,0,0,0])" global DockXCenter1= pose_trans (DockXCenterBeta, p[-DockXDeltaTrans/1000*0.9272,-DockXDeltaTrans/1000*0.3746,0,0,0,0]) $ 884 "MoveL" $ 885 "DockXCenterBeta" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], DockXCenterBeta), a=0.5, v=0.05) $ 886 "DockXCenter1" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], DockXCenter1), a=0.5, v=0.05) $ 887 "Wait: 0.5" sleep(0.5) end $ 888 "If UserXAdjustment≟2" if (UserXAdjustment == 2): $ 889 "DockXCenter2≔pose_trans(DockXCenterBeta, p[DockXDeltaTrans/1000*0.9272,DockXDeltaTrans/1000*0.3746,0,0,0,0])" global DockXCenter2= pose_trans (DockXCenterBeta, p[DockXDeltaTrans/1000*0.9272,DockXDeltaTrans/1000*0.3746,0,0,0,0]) $ 890 "MoveL" $ 891 "DockXCenterBeta" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], DockXCenterBeta), a=0.5, v=0.05) $ 892 "DockXCenter2" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], DockXCenter2), a=0.5, v=0.05) $ 893 "Wait: 0.2" sleep(0.2) end $ 894 "If UserXAdjustment≟3" if (UserXAdjustment == 3): $ 895 "DockXCenter3≔pose_trans(DockXCenterBeta, p[-DockXDeltaTrans/1000*0.3746,DockXDeltaTrans/1000*0.9272,0,0,0,0])" global DockXCenter3= pose_trans (DockXCenterBeta, p[-DockXDeltaTrans/1000*0.3746,DockXDeltaTrans/1000*0.9272,0,0,0,0]) $ 896 "MoveL" $ 897 "DockXCenterBeta" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], DockXCenterBeta), a=0.5, v=0.05) $ 898 "DockXCenter3" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], DockXCenter3), a=0.5, v=0.05) $ 899 "Wait: 0.2" sleep(0.2) end $ 900 "If UserXAdjustment≟4" if (UserXAdjustment == 4): $ 901 "DockXCenter4≔pose_trans(DockXCenterBeta, p[DockXDeltaTrans/1000*0.3746,-DockXDeltaTrans/1000*0.9272,0,0,0,0])" global DockXCenter4= pose_trans (DockXCenterBeta, p[DockXDeltaTrans/1000*0.3746,-DockXDeltaTrans/1000*0.9272,0,0,0,0]) $ 902 "MoveL" $ 903 "DockXCenterBeta" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], DockXCenterBeta), a=0.5, v=0.05) $ 904 "DockXCenter4" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], DockXCenter4), a=0.5, v=0.05) $ 905 "Wait: 0.2" sleep(0.2) end $ 906 "If UserXAdjustment≟5" if (UserXAdjustment == 5): $ 907 "DockXCenter5≔pose_trans(DockXCenterBeta, p[0,0,DockXDeltaTrans/1000,0,0,0])" global DockXCenter5= pose_trans (DockXCenterBeta, p[0,0,DockXDeltaTrans/1000,0,0,0]) $ 908 "MoveL" $ 909 "DockXCenterBeta" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], DockXCenterBeta), a=0.5, v=0.05) $ 910 "DockXCenter5" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], DockXCenter5), a=0.5, v=0.05) $ 911 "Wait: 0.2" sleep(0.2) end $ 912 "If UserXAdjustment≟6" if (UserXAdjustment == 6): $ 913 "DockXCenter6≔pose_trans(DockXCenterBeta, p[0,0,-DockXDeltaTrans/1000,0,0,0])" global DockXCenter6= pose_trans (DockXCenterBeta, p[0,0,-DockXDeltaTrans/1000,0,0,0]) $ 914 "MoveL" $ 915 "DockXCenterBeta" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], DockXCenterBeta), a=0.5, v=0.05) $ 916 "DockXCenter6" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], DockXCenter6), a=0.5, v=0.05) $ 917 "Wait: 0.5" sleep(0.5) end $ 918 "If UserXAdjustment≟7" if (UserXAdjustment == 7): $ 919 "DockXCenter7≔pose_trans(DockXCenterBeta, Xccw)" global DockXCenter7= pose_trans (DockXCenterBeta, Xccw) $ 920 "MoveL" $ 921 "DockXCenterBeta" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], DockXCenterBeta), a=0.5, v=0.05) $ 922 "DockXCenter7" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], DockXCenter7), a=0.5, v=0.05) $ 923 "Wait: 0.2" sleep(0.2) end $ 924 "If UserXAdjustment≟8" if (UserXAdjustment == 8): $ 925 "DockXCenter8≔pose_trans(DockXCenterBeta, Xcw)" global DockXCenter8= pose_trans (DockXCenterBeta, Xcw) $ 926 "MoveL" $ 927 "DockXCenterBeta" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], DockXCenterBeta), a=0.5, v=0.05) $ 928 "DockXCenter8" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], DockXCenter8), a=0.5, v=0.05) $ 929 "Wait: 0.2" sleep(0.2) end $ 930 "If UserXAdjustment≟9" if (UserXAdjustment == 9): $ 931 "DockXCenter9≔pose_trans(DockXCenterBeta, Yccw)" global DockXCenter9= pose_trans (DockXCenterBeta, Yccw) $ 932 "MoveL" $ 933 "DockXCenterBeta" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], DockXCenterBeta), a=0.5, v=0.05) $ 934 "DockXCenter9" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], DockXCenter9), a=0.5, v=0.05) $ 935 "Wait: 0.2" sleep(0.2) end $ 936 "If UserXAdjustment≟10" if (UserXAdjustment == 10): $ 937 "DockXCenter10≔pose_trans(DockXCenterBeta, Ycw)" global DockXCenter10= pose_trans (DockXCenterBeta, Ycw) $ 938 "MoveL" $ 939 "DockXCenterBeta" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], DockXCenterBeta), a=0.5, v=0.05) $ 940 "DockXCenter10" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], DockXCenter10), a=0.5, v=0.05) $ 941 "Wait: 0.2" sleep(0.2) end $ 942 "If UserXAdjustment≟11" if (UserXAdjustment == 11): $ 943 "DockXCenter11≔pose_trans(DockXCenterBeta, Zccw)" global DockXCenter11= pose_trans (DockXCenterBeta, Zccw) $ 944 "MoveL" $ 945 "DockXCenterBeta" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], DockXCenterBeta), a=0.5, v=0.05) $ 946 "DockXCenter11" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], DockXCenter11), a=0.5, v=0.05) $ 947 "Wait: 0.2" sleep(0.2) end $ 948 "If UserXAdjustment≟12" if (UserXAdjustment == 12): $ 949 "DockXCenter12≔pose_trans(DockXCenterBeta, Zcw)" global DockXCenter12= pose_trans (DockXCenterBeta, Zcw) $ 950 "MoveL" $ 951 "DockXCenterBeta" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], DockXCenterBeta), a=0.5, v=0.05) $ 952 "DockXCenter12" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], DockXCenter12), a=0.5, v=0.05) $ 953 "Wait: 0.2" sleep(0.2) end $ 954 "If UserXAdjustment≟0" if (UserXAdjustment == 0): $ 955 "Popup" popup("

#42 Adjust Dock - Step J

Prepare for test with adjustments

Ready to test run the new position in the Dock.
First the tool moves out of the Dock

Press ''Continue'' to move tool out
", "Message", False, False, blocking=True) else: $ 956 "ElseIf UserXAdjustment≟0 or UserXAdjustment≟1 or UserXAdjustment≟2 or UserXAdjustment≟3 or UserXAdjustment≟4 or UserXAdjustment≟5 or UserXAdjustment≟6 or UserXAdjustment≟7 or UserXAdjustment≟8 or UserXAdjustment≟9 or UserXAdjustment≟10 or UserXAdjustment≟11 or UserXAdjustment≟12 or UserXAdjustment≟13" if (UserXAdjustment == 0 or UserXAdjustment == 1 or UserXAdjustment == 2 or UserXAdjustment == 3 or UserXAdjustment == 4 or UserXAdjustment == 5 or UserXAdjustment == 6 or UserXAdjustment == 7 or UserXAdjustment == 8 or UserXAdjustment == 9 or UserXAdjustment == 10 or UserXAdjustment == 11 or UserXAdjustment == 12 or UserXAdjustment == 13): $ 957 "Wait: 0.2" sleep(0.2) else: $ 958 "Else" $ 959 "Popup" popup("

Input error !

Not a valid input

Only 1 - 12 and 0 are valid input

Press ''Continue'' to try again
", "Error", False, True, blocking=True) end end $ 960 "UserXAdjustment≔'Fine tune command: (Exit: ''0'')'" global UserXAdjustment=request_integer_from_primary_client("Fine tune command: (Exit: ''0'')") end $ 961 "Wait: 0.2" sleep(0.2) $ 962 "UserXAdjustment≔13" global UserXAdjustment=13 $ 963 "Popup" popup("

#42 Adjust Dock - Step K

Prepare for test with adjustments

Test run the new position in the Dock.
First the tool moves out of the Dock

Press ''Continue'' to move tool out
", "Message", False, False, blocking=True) $ 964 "Dock_X_Home≔get_actual_tcp_pose()" global Dock_X_Home= get_actual_tcp_pose () $ 965 "Dock_X_Center≔Dock_X_Home" global Dock_X_Center=Dock_X_Home $ 966 "Dock_X_Front≔pose_trans(Dock_X_Center, DeltaFront)" global Dock_X_Front= pose_trans (Dock_X_Center, DeltaFront) $ 967 "Dock_X_Back≔pose_trans(Dock_X_Center,DeltaBack)" global Dock_X_Back= pose_trans (Dock_X_Center,DeltaBack) $ 968 "Dock_X_Start≔pose_trans(Dock_X_Center, DeltaStart)" global Dock_X_Start= pose_trans (Dock_X_Center, DeltaStart) $ 969 "Dock_X_Open≔pose_trans(Dock_X_Center, DeltaOpen)" global Dock_X_Open= pose_trans (Dock_X_Center, DeltaOpen) $ 970 "Dock_X_Locking≔pose_trans(Dock_X_Center, DeltaLocking4)" global Dock_X_Locking= pose_trans (Dock_X_Center, DeltaLocking4) $ 971 "Dock_X_Opening≔pose_trans(Dock_X_Center, DeltaOpening)" global Dock_X_Opening= pose_trans (Dock_X_Center, DeltaOpening) $ 972 "MoveL" $ 973 "Dock_X_Center" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_X_Center), a=0.05, v=0.025) $ 974 "Dock_X_Front" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_X_Front), a=0.05, v=0.025) $ 975 "DockSetUp≔4" global DockSetUp=4 $ 976 "Dock4Adjust≔88" global Dock4Adjust=88 end $ 977 "4: TestDrive Slow" $ 978 "If DockSetUp≟4" if (DockSetUp == 4): $ 979 "If Dock4Adjust≟99" if (Dock4Adjust == 99): $ 980 "Popup" popup("

#42 Adjust Dock - Ups!

Blocked

Sorry. This function is blocked.
Restart #42 to solve the problem

Press ''Continue'' to get the Kelvin menu
", "Message", False, False, blocking=True) $ 981 "DockSetUp≔0" global DockSetUp=0 $ 982 "Wait: 0.2" sleep(0.2) end $ 983 "Popup" popup("

#42 Adjust Dock - Step L

Slow test with new position

Test the new position in the Dock at low speed
The robot will now make a drop-off and pick-up test

Press ''Continue'' to test at low speed
", "Message", False, False, blocking=True) $ 984 "Wait: 0.5" sleep(0.5) $ 985 "MoveL" $ 986 "Dock_X_Front" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_X_Front), a=0.05, v=0.2) $ 987 "Dock_X_Start" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_X_Start), a=0.05, v=0.2) $ 988 "Dock_X_Opening" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_X_Opening), a=0.05, v=0.2) $ 989 "Dock_X_Open" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_X_Open), a=0.05, v=0.2) $ 990 "Dock_X_Back" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_X_Back), a=0.05, v=0.2) $ 991 "Wait: 1.0" sleep(1.0) $ 992 "Dock_X_Back" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_X_Back), a=0.05, v=0.2) $ 993 "Dock_X_Open" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_X_Open), a=0.05, v=0.2) $ 994 "Dock_X_Locking" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_X_Locking), a=0.05, v=0.2) $ 995 "Dock_X_Center" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_X_Center), a=0.05, v=0.2) $ 996 "Wait: 1.0" sleep(1.0) $ 997 "Dock_X_Center" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_X_Center), a=0.05, v=0.2) $ 998 "Dock_X_Front" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_X_Front), a=0.05, v=0.2) $ 999 "Popup" popup("

#42 Adjust Dock - Step M

Choose next step:

5: - Test at normal speed
4: - Low speed test again
3: - Go back and make more adjustments


Press ''Continue'' to thoose

#42 Adjust Dock - Ups!

Blocked

Sorry. This function is blocked.
Restart #42 to solve the problem

Press ''Continue'' to get the Kelvin menu
", "Message", False, False, blocking=True) $ 1004 "DockSetUp≔0" global DockSetUp=0 $ 1005 "Wait: 0.2" sleep(0.2) end $ 1006 "Popup" popup("

#42 Adjust Dock - Step N

Test at normal speed

Test the new position in
the Dock at normal speed.

Robot will perform two cycles

Press ''Continue'' to run test
", "Message", False, False, blocking=True) $ 1007 "Wait: 0.5" sleep(0.5) $ 1008 "MoveL" $ 1009 "Dock_X_Front" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_X_Front), a=1.2, v=0.25) $ 1010 "Dock_X_Start" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_X_Start), a=1.2, v=0.25) $ 1011 "Dock_X_Opening" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_X_Opening), a=1.2, v=0.25) $ 1012 "Dock_X_Open" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_X_Open), a=1.2, v=0.25) $ 1013 "Dock_X_Back" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_X_Back), a=1.2, v=0.25) $ 1014 "Wait: 0.5" sleep(0.5) $ 1015 "Dock_X_Back" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_X_Back), a=1.2, v=0.25) $ 1016 "Dock_X_Open" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_X_Open), a=1.2, v=0.25) $ 1017 "Dock_X_Locking" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_X_Locking), a=1.2, v=0.25) $ 1018 "Dock_X_Center" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_X_Center), a=1.2, v=0.25) $ 1019 "Wait: 0.5" sleep(0.5) $ 1020 "Dock_X_Center" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_X_Center), a=1.2, v=0.25) $ 1021 "Dock_X_Front" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_X_Front), a=1.2, v=0.25) $ 1022 "Wait: 0.5" sleep(0.5) $ 1023 "MoveL" $ 1024 "Dock_X_Front" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_X_Front), a=1.2, v=0.25) $ 1025 "Dock_X_Start" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_X_Start), a=1.2, v=0.25) $ 1026 "Dock_X_Opening" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_X_Opening), a=1.2, v=0.25) $ 1027 "Dock_X_Open" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_X_Open), a=1.2, v=0.25) $ 1028 "Dock_X_Back" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_X_Back), a=1.2, v=0.25) $ 1029 "Wait: 0.5" sleep(0.5) $ 1030 "Dock_X_Back" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_X_Back), a=1.2, v=0.25) $ 1031 "Dock_X_Open" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_X_Open), a=1.2, v=0.25) $ 1032 "Dock_X_Locking" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_X_Locking), a=1.2, v=0.25) $ 1033 "Dock_X_Center" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_X_Center), a=1.2, v=0.25) $ 1034 "Wait: 0.5" sleep(0.5) $ 1035 "Dock_X_Center" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_X_Center), a=1.2, v=0.25) $ 1036 "Dock_X_Front" set_tcp(p[0.0,0.0,0.034,0.0,0.0,0.0]) movel(pose_trans(p[0.0,0.0,0.0,0.0,0.0,0.0], Dock_X_Front), a=1.2, v=0.25) $ 1037 "Popup" popup("

#42 Adjust Dock - Step M

Choose next step:

6: - Save position
5: - Test at normal speed again
4: - Low speed test
3: - Fine adjustments again


Press ''Continue'", "Message", False, False, blocking=True) end $ 1038 "6: Save setting" $ 1039 "If DockSetUp≟6" if (DockSetUp == 6): $ 1040 "If Dock4Adjust≟99" if (Dock4Adjust == 99): $ 1041 "Popup" popup("

#42 Adjust Dock - Ups!

Blocked

Sorry. This function is blocked.
Restart #42 to solve the problem

Press ''Continue'' to get the Kelvin menu
", "Message", False, False, blocking=True) $ 1042 "DockSetUp≔0" global DockSetUp=0 $ 1043 "Wait: 0.2" sleep(0.2) end $ 1044 "Wait: 0.2" sleep(0.2) $ 1045 "Dock4Adjust≔99" global Dock4Adjust=99 $ 1046 "Popup" popup("

#42 Adjust Dock - Step N

Choose how to save:

Press ''Continue'' to save the new setting
or ''End Program'' for not saving
", "Message", False, False, blocking=True) $ 1047 "If Dock4SetUp≟1" if (Dock4SetUp == 1): $ 1048 "Popup" popup("

#42 Adjust Dock - Step O

Save to Dock-A

Update Dock-A with this new setting

Press ''Continue'' to save
or ''Stop Program'' to cancel
", "Message", False, False, blocking=True) $ 1049 "Dock_A_Home≔Dock_X_Home" global Dock_A_Home=Dock_X_Home $ 1050 "Dock_A_Center≔Dock_A_Home" global Dock_A_Center=Dock_A_Home end $ 1051 "If Dock4SetUp≟2" if (Dock4SetUp == 2): $ 1052 "Popup" popup("

#42 Adjust Dock - Step O

Save to Dock-B

Update Dock-B with this new setting

Press ''Continue'' to save
or ''Stop Program'' to cancel
", "Message", False, False, blocking=True) $ 1053 "Dock_B_Home≔Dock_X_Home" global Dock_B_Home=Dock_X_Home $ 1054 "Dock_B_Center≔Dock_B_Home" global Dock_B_Center=Dock_B_Home end $ 1055 "If Dock4SetUp≟3" if (Dock4SetUp == 3): $ 1056 "Popup" popup("

#42 Adjust Dock - Step O

Save to Dock-C

Update Dock-C with this new setting

Press ''Continue'' to save
or ''Stop Program'' to cancel
", "Message", False, False, blocking=True) $ 1057 "Dock_C_Home≔Dock_X_Home" global Dock_C_Home=Dock_X_Home $ 1058 "Dock_C_Center≔Dock_C_Home" global Dock_C_Center=Dock_C_Home end $ 1059 "If Dock4SetUp≟4" if (Dock4SetUp == 4): $ 1060 "Popup" popup("

#42 Adjust Dock - Step O

Save to Dock-D

Update Dock-D with this new setting

Press ''Continue'' to save
or ''Stop Program'' to cancel
", "Message", False, False, blocking=True) $ 1061 "Dock_D_Home≔Dock_X_Home" global Dock_D_Home=Dock_X_Home $ 1062 "Dock_D_Center≔Dock_D_Home" global Dock_D_Center=Dock_D_Home end $ 1063 "Popup" popup("

#42 Adjust Dock - Finish

Dock SetUp completed

Dock setup routine is now closing down

Press ''Continue'' to get back to Kelvin menu
", "Message", False, False, blocking=True) $ 1064 "'Next we kill the Dock SetUp routine'" # 'Next we kill the Dock SetUp routine' $ 1065 "DockSetUp≔0" global DockSetUp=0 end $ 1066 "0: End DockSetUp program" $ 1067 "'''0: End program'' must be last step in the DockSetUp loop'" # '''0: End program'' must be last step in the DockSetUp loop' $ 1068 "'This routine can close down the DockSetUp program. It also checks for non-valid user input and ask for next task. Valid input must be in the 'ElseIf' string'" # 'This routine can close down the DockSetUp program. It also checks for non-valid user input and ask for next task. Valid input must be in the 'ElseIf' string' $ 1069 "If DockSetUp≟0" if (DockSetUp == 0): $ 1070 "Wait: 0.2" sleep(0.2) else: $ 1071 "ElseIf DockSetUp≟0 or DockSetUp≟1 or DockSetUp≟2 or DockSetUp≟3 or DockSetUp≟4 or DockSetUp≟5 or DockSetUp≟6 or DockSetUp≟10" if (DockSetUp == 0 or DockSetUp == 1 or DockSetUp == 2 or DockSetUp == 3 or DockSetUp == 4 or DockSetUp == 5 or DockSetUp == 6 or DockSetUp == 10): $ 1072 "Wait: 0.2" sleep(0.2) else: $ 1073 "Else" $ 1074 "Popup" popup("

Input error !

Not a valid input

Only 1 - 4 and 0 are valid input

Press ''Continue'' to try again
", "Error", False, True, blocking=True) $ 1075 "Wait: 0.5" sleep(0.5) end end $ 1076 "DockSetUp≔'Programs: 1:New 2:Adjust 3:FineTune 4:Slow 5:Fast 6:Save (Exit: 0)'" global DockSetUp=request_integer_from_primary_client("Programs: 1:New 2:Adjust 3:FineTune 4:Slow 5:Fast 6:Save (Exit: 0)") end end if (DockSetUp != 0): global thread_handler_792=run Thread_while_792() while (DockSetUp != 0): sync() end kill thread_handler_792 end end $ 1077 "43: Save to BackUp" $ 1078 "If Kelvin_Action≟43" if (Kelvin_Action == 43): $ 1079 "Wait: 0.2" sleep(0.2) $ 1080 "Popup" popup("

#43: Save to BackUp

Save dock settings

This program will let you backup
positions for docking stations

Press ''Continue'' for more info
", "Message", False, False, blocking=True) $ 1081 "Popup" popup("

#43: Save to BackUp

Warning

This backup will disappear after restart !

Save to USB for permanent backup

Press ''Continue'' thoose dock to backup
", "Message", False, False, blocking=True) $ 1082 "Loop BackUp≠0" while (BackUp != 0): $ 1083 "If BackUp≟10" if (BackUp == 10): $ 1084 "Popup" popup("

Save to BackUp

Thoose dock to backup:

1: Dock-A
2: Dock-B
3: Dock-C
4: Dock-D
0: No action

Press ''Continue'' to backup
", "Message", False, False, blocking=True) end $ 1085 "If BackUp≟1" if (BackUp == 1): $ 1086 "Popup" popup("

Dock-A BackUp

You are about to save
Dock-A to the backup


Press ''Continue'' to backup
or ''Stop Program'' to cancel
", "Message", False, False, blocking=True) $ 1087 "Dock_A_BackUp≔Dock_A_Home" global Dock_A_BackUp=Dock_A_Home end $ 1088 "If BackUp≟2" if (BackUp == 2): $ 1089 "Popup" popup("

Dock-B BackUp

You are about to save
Dock-B to the backup


Press ''Continue'' to backup
or ''Stop Program'' to cancel
", "Message", False, False, blocking=True) $ 1090 "Dock_B_BackUp≔Dock_B_Home" global Dock_B_BackUp=Dock_B_Home end $ 1091 "If BackUp≟3" if (BackUp == 3): $ 1092 "Popup" popup("

Dock-C BackUp

You are about to save
Dock-C to the backup


Press ''Continue'' to backup
or ''Stop Program'' to cancel
", "Message", False, False, blocking=True) $ 1093 "Dock_C_BackUp≔Dock_C_Home" global Dock_C_BackUp=Dock_C_Home end $ 1094 "If BackUp≟4" if (BackUp == 4): $ 1095 "Popup" popup("

Dock-D BackUp

You are about to save
Dock-D to the backup


Press ''Continue'' to backup
or ''Stop Program'' to cancel
", "Message", False, False, blocking=True) $ 1096 "Dock_D_BackUp≔Dock_D_Home" global Dock_D_BackUp=Dock_D_Home end $ 1097 "If BackUp≟0" if (BackUp == 0): $ 1098 "Wait: 0.2" sleep(0.2) else: $ 1099 "ElseIf BackUp≟0 or BackUp≟1 or BackUp≟2 or BackUp≟3 or BackUp≟4 or BackUp≟10" if (BackUp == 0 or BackUp == 1 or BackUp == 2 or BackUp == 3 or BackUp == 4 or BackUp == 10): $ 1100 "Wait: 0.2" sleep(0.2) else: $ 1101 "Else" $ 1102 "Popup" popup("

Input error !

Not a valid input

Only 1 - 4 and 0 are valid input

Press ''Continue'' to try again
", "Error", False, True, blocking=True) $ 1103 "Wait: 0.2" sleep(0.2) end end $ 1104 "BackUp≔'BackUp: A:1 B:2 C:3 D:4 (Exit:''0'' Menu:''10'')'" global BackUp=request_integer_from_primary_client("BackUp: A:1 B:2 C:3 D:4 (Exit:''0'' Menu:''10'')") end end $ 1105 "44: Reload from BackUp" $ 1106 "If Kelvin_Action≟44" if (Kelvin_Action == 44): $ 1107 "Wait: 0.2" sleep(0.2) $ 1108 "Popup" popup("

#44: Reload from BackUp

Recall old settings

This program will let you load backup
positions for docking stations

Press ''Continue'' to thoose dock to reinstall
", "Message", False, False, blocking=True) $ 1109 "Loop ReLoad≠0" while (ReLoad != 0): $ 1110 "If ReLoad≟10" if (ReLoad == 10): $ 1111 "Popup" popup("

Reload from BackUp

Thoose dock to reinstall from backup:

1: Dock-A
2: Dock-B
3: Dock-C
4: Dock-D
0: Exit

Press ''Continue'' to re-instaii
", "Message", False, False, blocking=True) end $ 1112 "If ReLoad≟1" if (ReLoad == 1): $ 1113 "Popup" popup("

Reload Dock-A

You are about to re-install
Dock-A from the backup


Press ''Continue'' to re-install
or ''Stop Program'' to cancle
", "Message", False, False, blocking=True) $ 1114 "Dock_A_Home≔Dock_A_BackUp" global Dock_A_Home=Dock_A_BackUp $ 1115 "Dock_A_Center≔Dock_A_Home" global Dock_A_Center=Dock_A_Home end $ 1116 "If ReLoad≟2" if (ReLoad == 2): $ 1117 "Popup" popup("

Reload Dock-B

You are about to re-install
Dock-B from the backup


Press ''Continue'' to re-install
or ''Stop Program'' to cancle
", "Message", False, False, blocking=True) $ 1118 "Dock_B_Home≔Dock_B_BackUp" global Dock_B_Home=Dock_B_BackUp $ 1119 "Dock_B_Center≔Dock_B_Home" global Dock_B_Center=Dock_B_Home end $ 1120 "If ReLoad≟3" if (ReLoad == 3): $ 1121 "Popup" popup("

Reload Dock-C

You are about to re-install
Dock-C from the backup


Press ''Continue'' to re-install
or ''Stop Program'' to cancle
", "Message", False, False, blocking=True) $ 1122 "Dock_C_Home≔Dock_C_BackUp" global Dock_C_Home=Dock_C_BackUp $ 1123 "Dock_C_Center≔Dock_C_Home" global Dock_C_Center=Dock_C_Home end $ 1124 "If ReLoad≟4" if (ReLoad == 4): $ 1125 "Popup" popup("

Reload Dock-D

You are about to re-install
Dock-D from the backup


Press ''Continue'' to re-install
or ''Stop Program'' to cancle
", "Message", False, False, blocking=True) $ 1126 "Dock_D_Home≔Dock_D_BackUp" global Dock_D_Home=Dock_D_BackUp $ 1127 "Dock_D_Center≔Dock_D_Home" global Dock_D_Center=Dock_D_Home end $ 1128 "If ReLoad≟0" if (ReLoad == 0): $ 1129 "Wait: 0.2" sleep(0.2) $ 1130 "Popup" popup("

Reload BackUp

Cancel re-install

Press ''Continue'' to re-install
or ''Stop Program'' to cancle
", "Message", False, False, blocking=True) else: $ 1131 "ElseIf ReLoad≟0 or ReLoad≟1 or ReLoad≟2 or ReLoad≟3 or ReLoad≟4 or ReLoad≟10" if (ReLoad == 0 or ReLoad == 1 or ReLoad == 2 or ReLoad == 3 or ReLoad == 4 or ReLoad == 10): $ 1132 "Wait: 0.2" sleep(0.2) else: $ 1133 "Else" $ 1134 "Popup" popup("

Input error !

Not a valid input

Only 1 - 4 and 0 are valid input

Press ''Continue'' to try again
", "Error", False, True, blocking=True) end end $ 1135 "ReLoad≔'Reload: A:1 B:2 C:3 D:4 (Exit:''0'' Menu:''10'')'" global ReLoad=request_integer_from_primary_client("Reload: A:1 B:2 C:3 D:4 (Exit:''0'' Menu:''10'')") end end $ 1136 "45: Pause" $ 1137 "If Kelvin_Action≟45" if (Kelvin_Action == 45): $ 1138 "'Program just wait for 10 seconds. Can be used to open ''Move'' or ''I/O'' in the background'" # 'Program just wait for 10 seconds. Can be used to open ''Move'' or ''I/O'' in the background' $ 1139 "Popup" popup("

#45:     10 sec. Pause

10 second pause for shifting to
''Move'' or ''I/O'' screen


Program must be started from
''Program Robot'' mode

Press ''Continue'' to start the
10 sec. pause

End of pause !

Run this step again if more time is needed

Press ''Continue'' to get to the Kelvin User Menue
", "Message", False, False, blocking=True) $ 1142 "'This step only sends you on to the menu in Step-0 (next step)'" # 'This step only sends you on to the menu in Step-0 (next step)' end $ 1143 "46: Langauge" $ 1144 "If Kelvin_Action≟46" if (Kelvin_Action == 46): $ 1145 "Wait: 0.2" sleep(0.2) $ 1146 "'Traslation from English to German, Frence an Spanish is based on Google Translate.'" # 'Traslation from English to German, Frence an Spanish is based on Google Translate.' $ 1147 "'Default langauge can be set in ''General setup for Tool Changer'''" # 'Default langauge can be set in ''General setup for Tool Changer''' $ 1148 "Popup" popup("

#45:   Language setup

Set language for popup messages


1: Dansk
2: English
3: Deutsch
4: Français
5: Espanish

Press ''Continue'' to set language

Dansk

Valgt for PopUp beskeder

Tryk ''Continue'' for
at få Kelvin menuen
", "Message", False, False, blocking=True) else: $ 1153 "ElseIf Lang≟2" if (Lang == 2): $ 1154 "Popup" popup("

English

Selected for PopUp messages

Press ''Continue'' for Kelvin menu
", "Message", False, False, blocking=True) else: $ 1155 "ElseIf Lang≟3" if (Lang == 3): $ 1156 "Popup" popup("

Deutsch

Ausgewält für
Popup-Menü


Drücken Sie auf ''Continue'' um
das Kelvin-menü aufzurufen
", "Message", False, False, blocking=True) else: $ 1157 "ElseIf Lang≟4" if (Lang == 4): $ 1158 "Popup" popup("

Françese

Selectionné pour les
messages contextuels


Appuyez sur ''Continue''
pour le menu Kelvin
", "Message", False, False, blocking=True) else: $ 1159 "ElseIf Lang≟5" if (Lang == 5): $ 1160 "Popup" popup("

Espanish

Seleccionada para
mensajes emergentes


Presione ''Continue''
para le menú Kelvin
", "Message", False, False, blocking=True) else: $ 1161 "Else" $ 1162 "Popup" popup("

No langauge selected

No langauge set up for this input

Press ''Continue'' for Kelvin menu
and #46 to try again
", "Warning", True, False, blocking=True) $ 1163 "'If a user enter a invalid langauge numberthe langauge is set to English'" # 'If a user enter a invalid langauge numberthe langauge is set to English' $ 1164 "Lang≔2" global Lang=2 end end end end end end $ 1165 "77: Quick Menu" $ 1166 "If Kelvin_Action≟77" if (Kelvin_Action == 77): $ 1167 "Wait: 0.2" sleep(0.2) $ 1168 "'Insert your favorit programs in the popup'" # 'Insert your favorit programs in the popup' $ 1169 "Popup" popup("

#77 Kelvin Quick Menu

Often used programs

  2: Free
  3: Free
  4: Free
88: Full Menu
  0: Stop program

Press ''Continue'' to choose program
", "Message", False, False, blocking=True) $ 1170 "'This step only sends you on to thoose next program in step #0'" # 'This step only sends you on to thoose next program in step #0' end $ 1171 "88: Full Menu" $ 1172 "If Kelvin_Action≟88" if (Kelvin_Action == 88): $ 1173 "Wait: 0.2" sleep(0.2) $ 1174 "Popup" popup("

#88 Kelvin Full Menu

All programs - 1/8

  1: Initialize (startup)
  2: Free
  3: Free
  4: Free

Press ''Continue'' for page 2/8
", "Message", False, False, blocking=True) $ 1175 "Popup" popup("

#88 Kelvin Full Menu

All programs - 2/8

  5: Free
  6: Free
  7: Free
  8: Free
  9: Free

Press ''Continue'' for page 3/8
", "Message", False, False, blocking=True) $ 1176 "Popup" popup("

#88 Kelvin Full Menu

All programs - 3/8

10: Tool-A demo
11: Tool-B demo
12: Tool-C demo
13: A-B-C cycle demo

Press ''Continue'' for page 4/8
", "Message", False, False, blocking=True) $ 1177 "Popup" popup("

#88 Kelvin Full Menu

All programs - 4/8


14: Manual shift demo
15: Loop A, B and C
16: Free

Press ''Continue'' for page 5/8
", "Message", False, False, blocking=True) $ 1178 "Popup" popup("

#88 Kelvin Full Menu

All programs- 5/8


17: Free
18: Glue dispencer
19: Free
20: Free

Press ''Continue'' for page 6/8
", "Message", False, False, blocking=True) $ 1179 "Popup" popup("

#88 Kelvin Full Menu

All programs - 6/8

40: Program information
41: Tool Service
42: Dock SetUp and Adjust

Press ''Continue'' for page 7/8

#88 Kelvin Full Menu

All programs - 7/8

43: Backup
44: Reload from Backup
45: Pause
46: Language

Press ''Continue'' for page 8/8
", "Message", False, False, blocking=True) $ 1181 "Popup" popup("

#88 Kelvin Full Menu

All programs - 8/8

77: Quick Menu
88: Full Menu
99: User Menu
  0: Stop program

Press ''Continue'' to choose program
", "Message", False, False, blocking=True) $ 1182 "'After this step user is send to step #0 to thoose next program'" # 'After this step user is send to step #0 to thoose next program' end $ 1183 "99: Short Menu" $ 1184 "If Kelvin_Action≟99" if (Kelvin_Action == 99): $ 1185 "Wait: 0.2" sleep(0.2) $ 1186 "'This step only sends you on to thoose next program in next step (#0). No listing of program numbers'" # 'This step only sends you on to thoose next program in next step (#0). No listing of program numbers' end $ 1187 "0: End program" $ 1188 "'''0: End program'' (this step) must be last step in the Kelvin Action loop'" # '''0: End program'' (this step) must be last step in the Kelvin Action loop' $ 1189 "'This routine can close down the Kelvin shell program'" # 'This routine can close down the Kelvin shell program' $ 1190 "'It also checks for non-valid user input and ask for next task'" # 'It also checks for non-valid user input and ask for next task' $ 1191 "'Valid input must be listed in the 'ElseIf' string'" # 'Valid input must be listed in the 'ElseIf' string' $ 1192 "If Kelvin_Action≟0" if (Kelvin_Action == 0): $ 1193 "Farewell Popup" $ 1194 "If Lang≟1" if (Lang == 1): $ 1195 "Popup" popup("
Lukker

Kelvin Tool Changer


Programmet afsluttes nu

Godnat og sov godt :-)", "Message", False, False, blocking=True) else: $ 1196 "ElseIf Lang≟2" if (Lang == 2): $ 1197 "Popup" popup("
Shut down

Kelvin Tool Changer


Closing down the program

Goodby and Good Night :-)", "Message", False, False, blocking=True) else: $ 1198 "ElseIf Lang≟3" if (Lang == 3): $ 1199 "Popup" popup("
Abschalten

Kelvin Tool Changer


Dass Programm wird beendet

Auf Widersehen und schlaf gut :-)", "Message", False, False, blocking=True) else: $ 1200 "ElseIf Lang≟4" if (Lang == 4): $ 1201 "Popup" popup("
Arrêter

Kelvin Tool Changer


Le programme se ferme

Au revoir et bonne nuit :-)", "Message", False, False, blocking=True) else: $ 1202 "ElseIf Lang≟5" if (Lang == 5): $ 1203 "Popup" popup("
Apagar

Kelvin Tool Changer


El programa se está cerrando

Adios y buenas noches :-)", "Message", False, False, blocking=True) else: $ 1204 "Else" $ 1205 "Popup" popup("
Shut down

Kelvin Tool Changer


Closing down the program

Goodby and Good Night :-)", "Message", False, False, blocking=True) end end end end end $ 1206 "'Ending the Tool Changer program. Restart ''Kelvin.urp'' to get the shell program back'" # 'Ending the Tool Changer program. Restart ''Kelvin.urp'' to get the shell program back' $ 1207 "Halt" halt else: $ 1208 "ElseIf Kelvin_Action≟0 or Kelvin_Action≟1 or Kelvin_Action≟2 or Kelvin_Action≟3 or Kelvin_Action≟4 or Kelvin_Action≟5 or Kelvin_Action≟6 or Kelvin_Action≟7 or Kelvin_Action≟8 or Kelvin_Action≟9 or Kelvin_Action≟10 or Kelvin_Action≟11 or Kelvin_Action≟12 or Kelvin_Action≟13 or Kelvin_Action≟14 or Kelvin_Action≟15 or Kelvin_Action≟16 or Kelvin_Action≟17 or Kelvin_Action≟18 or Kelvin_Action≟19 or Kelvin_Action≟20 or Kelvin_Action≟40 or Kelvin_Action≟41 or Kelvin_Action≟42 or Kelvin_Action≟43 or Kelvin_Action≟44 or Kelvin_Action≟45 or Kelvin_Action≟46 or Kelvin_Action≟77 or Kelvin_Action≟88 or Kelvin_Action≟99" if (Kelvin_Action == 0 or Kelvin_Action == 1 or Kelvin_Action == 2 or Kelvin_Action == 3 or Kelvin_Action == 4 or Kelvin_Action == 5 or Kelvin_Action == 6 or Kelvin_Action == 7 or Kelvin_Action == 8 or Kelvin_Action == 9 or Kelvin_Action == 10 or Kelvin_Action == 11 or Kelvin_Action == 12 or Kelvin_Action == 13 or Kelvin_Action == 14 or Kelvin_Action == 15 or Kelvin_Action == 16 or Kelvin_Action == 17 or Kelvin_Action == 18 or Kelvin_Action == 19 or Kelvin_Action == 20 or Kelvin_Action == 40 or Kelvin_Action == 41 or Kelvin_Action == 42 or Kelvin_Action == 43 or Kelvin_Action == 44 or Kelvin_Action == 45 or Kelvin_Action == 46 or Kelvin_Action == 77 or Kelvin_Action == 88 or Kelvin_Action == 99): $ 1209 "Wait: 0.2" sleep(0.2) else: $ 1210 "Else" $ 1211 "'This popup is shown if the user enter a invalid program number'" # 'This popup is shown if the user enter a invalid program number' $ 1212 "Try Again Popup" $ 1213 "If Lang≟1" if (Lang == 1): $ 1214 "Popup" popup("
Hovsa!

Ikke et gyldigt valg!

Tryk ''Continue'' og prøv igen
", "Warning", True, False, blocking=True) else: $ 1215 "ElseIf Lang≟2" if (Lang == 2): $ 1216 "Popup" popup("

Ups!

Not a valid entry!

Press ''Continue'' to try again
", "Warning", True, False, blocking=True) else: $ 1217 "ElseIf Lang≟3" if (Lang == 3): $ 1218 "Popup" popup("
Ups!

Kein gültiger Eintrag!

Bitte versuche es erneut
", "Warning", True, False, blocking=True) else: $ 1219 "ElseIf Lang≟4" if (Lang == 4): $ 1220 "Popup" popup("
Oops!

Pas une entrée valide!

S'il vous plait essayer â noveau
", "Warning", True, False, blocking=True) else: $ 1221 "ElseIf Lang≟5" if (Lang == 5): $ 1222 "Popup" popup("
Ups!

No es una entrada válida!

Inténtalo de nuevo
", "Warning", True, False, blocking=True) else: $ 1223 "Else" $ 1224 "Popup" popup("
Ups!

Not a valid entry!

Please try again
", "Warning", True, False, blocking=True) end end end end end end end $ 1225 "Menu Popup" $ 1226 "'This popup is shown right before the user must input a number for the next program'" # 'This popup is shown right before the user must input a number for the next program' $ 1227 "If Lang≟1" if (Lang == 1): $ 1228 "Popup" popup("

Kelvin Program Menu

Vælg et program fra oversigten.

Indtast program nummeret i vinduet efter menuen.


Tryk ''Continue'' for at se menuen
", "Message", False, False, blocking=True) else: $ 1229 "ElseIf Lang≟2" if (Lang == 2): $ 1230 "Popup" popup("

Kelvin Program Menu

Choose a program from the following list.

Input the program number when asked.


Press ''Continue'' for the menu
", "Message", False, False, blocking=True) else: $ 1231 "ElseIf Lang≟3" if (Lang == 3): $ 1232 "Popup" popup("

Kelvin Menu

Wählen Sie ein Programm
aus der folgenden Liste

Geben Sie im nächsten Schritt
die Programmnummer ein.


Drücken Sie ''Continue'' für das Menü", "Message", False, False, blocking=True) else: $ 1233 "ElseIf Lang≟4" if (Lang == 4): $ 1234 "Popup" popup("

Menu de programme Kelvin

Shoisissez un programme
dans la lista suivante.

Entrez la numéro du
programme lorsque demandé.


Appuyez sur ''Continue'' pur le menu
", "Message", False, False, blocking=True) else: $ 1235 "ElseIf Lang≟5" if (Lang == 5): $ 1236 "Popup" popup("

Menú del programa Kelvin

Eliga un programa de la siguiente lista.

Ingrese le número del
programa cuando se le solicite.


Presione ''Continue'' para le menú
", "Message", False, False, blocking=True) else: $ 1237 "Else" $ 1238 "Popup" popup("

Kelvin Program Menu

Choose a program from the following list.

Input the program number when asked.


Press ''Continue'' for the menu
", "Message", False, False, blocking=True) end end end end end $ 1239 "LoopReStarter" $ 1240 "'Some program loops need to be reset to run more than one time'" # 'Some program loops need to be reset to run more than one time' $ 1241 "ToolService≔20" global ToolService=20 $ 1242 "BackUp≔10" global BackUp=10 $ 1243 "ReLoad≔10" global ReLoad=10 $ 1244 "DockSetUp≔10" global DockSetUp=10 $ 1245 "Kelvin_Action≔'Kelvin program: (''88'' for menu, ''0'' to end program)'" global Kelvin_Action=request_integer_from_primary_client("Kelvin program: (''88'' for menu, ''0'' to end program)") end $ 1246 "Halt" halt $ 1247 "'- - - - - Game Over - - - - Fine - - - - The End - - - - Slut - - - - - - - - - - - - -'" # '- - - - - Game Over - - - - Fine - - - - The End - - - - Slut - - - - - - - - - - - - -' $ 1248 "Stop-Popup-39" $ 1249 "Popup" popup("

STOP

Waypoint data need update

The varible positions used for
this movement must be setup
before it is safe to run this
part of the program

Press ''Continue'' for more info
", "Error", False, True, blocking=True) $ 1250 "Popup" popup("

STOP

Stop-Popup #39

Update data in the program
and suppress this stop-popup

Program stop here
Sorry for the hassle
", "Error", False, True, blocking=True) $ 1251 "Halt" halt $ 1252 "'Stop-Popup is placed at start of movement that is based on data for each robot installation'" # 'Stop-Popup is placed at start of movement that is based on data for each robot installation' $ 1253 "'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution'" # 'Stop-Popup block a new robot installation from running parts of the program that is not ready for execution' $ 1254 "'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code'" # 'Each Stop-Popup have an id number to make it easy to find the right Stop-Popup in the code' $ 1255 "Halt" halt $ 1256 "'Halt command here to prevent the robot to execute not suppressed SubFunctions'" # 'Halt command here to prevent the robot to execute not suppressed SubFunctions' $ 1257 "SubFunctions" $ 1258 "'SubFunctions to be used for building the main program'" # 'SubFunctions to be used for building the main program' $ 1259 "'SubFunctions here are only backup versions of the functions used in the main program. Copy-paste into main program'" # 'SubFunctions here are only backup versions of the functions used in the main program. Copy-paste into main program' $ 1260 "'Copy-paste into main program'" # 'Copy-paste into main program' $ 1261 "Halt" halt $ 1262 "'Halt command here to prevent the robot to execute not suppressed SubFunctions'" # 'Halt command here to prevent the robot to execute not suppressed SubFunctions' $ 1263 "'Switch functions drop-off the first tool and pick-up the next tool'" # 'Switch functions drop-off the first tool and pick-up the next tool' $ 1264 "'All switch functions check the Tool ID by using the function that check the Tool ID for a docking station'" # 'All switch functions check the Tool ID by using the function that check the Tool ID for a docking station' $ 1265 "'Tool-ID check can be overruled in popup'" # 'Tool-ID check can be overruled in popup' $ 1266 "Switch A2B" $ 1267 "Call Transit_Ready_to_A_Front" Transit_Ready_to_A_Front() $ 1268 "Call Check_Tool_A_ID" Check_Tool_A_ID() $ 1269 "ToolFree≔1" global ToolFree=1 $ 1270 "Call Dock_A_DropOff" Dock_A_DropOff() $ 1271 "Call Transit_A_Back_to_B_Back" Transit_A_Back_to_B_Back() $ 1272 "Call HookCheckOpen" HookCheckOpen() $ 1273 "Call Dock_B_PickUp" Dock_B_PickUp() $ 1274 "Call HookCheckClosed" HookCheckClosed() $ 1275 "Call Check_Tool_B_ID" Check_Tool_B_ID() $ 1276 "ToolFree≔0" global ToolFree=0 $ 1277 "Call Transit_B_Front_to_Ready" Transit_B_Front_to_Ready() $ 1278 "Switch A2C" $ 1279 "Call Transit_Ready_to_A_Front" Transit_Ready_to_A_Front() $ 1280 "Call Check_Tool_A_ID" Check_Tool_A_ID() $ 1281 "ToolFree≔1" global ToolFree=1 $ 1282 "Call Dock_A_DropOff" Dock_A_DropOff() $ 1283 "Call Transit_A_Back_to_C_Back" Transit_A_Back_to_C_Back() $ 1284 "Call HookCheckOpen" HookCheckOpen() $ 1285 "Call Dock_C_PickUp" Dock_C_PickUp() $ 1286 "Call HookCheckClosed" HookCheckClosed() $ 1287 "Call Check_Tool_C_ID" Check_Tool_C_ID() $ 1288 "ToolFree≔0" global ToolFree=0 $ 1289 "Call Transit_C_Front_to_Ready" Transit_C_Front_to_Ready() $ 1290 "Switch A2D" $ 1291 "Call Transit_Ready_to_A_Front" Transit_Ready_to_A_Front() $ 1292 "Call Check_Tool_A_ID" Check_Tool_A_ID() $ 1293 "ToolFree≔1" global ToolFree=1 $ 1294 "Call Dock_A_DropOff" Dock_A_DropOff() $ 1295 "Call Transit_A_Back_to_D_Back" Transit_A_Back_to_D_Back() $ 1296 "Call HookCheckOpen" HookCheckOpen() $ 1297 "Call Dock_D_PickUp" Dock_D_PickUp() $ 1298 "Call HookCheckClosed" HookCheckClosed() $ 1299 "Call Check_Tool_C_ID" Check_Tool_C_ID() $ 1300 "ToolFree≔0" global ToolFree=0 $ 1301 "Call Transit_D_Front_to_Ready" Transit_D_Front_to_Ready() $ 1302 "Switch A2M" $ 1303 "Call Transit_Ready_to_A_Front" Transit_Ready_to_A_Front() $ 1304 "Call Check_Tool_A_ID" Check_Tool_A_ID() $ 1305 "ToolFree≔1" global ToolFree=1 $ 1306 "Call Dock_A_DropOff" Dock_A_DropOff() $ 1307 "Call Transit_A_Back_to_M_Dock" Transit_A_Back_to_M_Dock() $ 1308 "Call HookCheckOpen" HookCheckOpen() $ 1309 "Call Dock_M_PickUp" Dock_M_PickUp() $ 1310 "Call HookCheckClosed" HookCheckClosed() $ 1311 "Call DetectToolID" DetectToolID() $ 1312 "Call Transit_Dock_M_to_Ready" Transit_Dock_M_to_Ready() $ 1313 "Switch B2A" $ 1314 "Call Transit_Ready_to_B_Front" Transit_Ready_to_B_Front() $ 1315 "Call Check_Tool_B_ID" Check_Tool_B_ID() $ 1316 "ToolFree≔1" global ToolFree=1 $ 1317 "Call Dock_B_DropOff" Dock_B_DropOff() $ 1318 "Call Transit_B_Back_to_A_Back" Transit_B_Back_to_A_Back() $ 1319 "Call HookCheckOpen" HookCheckOpen() $ 1320 "Call Dock_A_PickUp" Dock_A_PickUp() $ 1321 "Call HookCheckClosed" HookCheckClosed() $ 1322 "Call Check_Tool_A_ID" Check_Tool_A_ID() $ 1323 "ToolFree≔0" global ToolFree=0 $ 1324 "Call Transit_A_Front_to_Ready" Transit_A_Front_to_Ready() $ 1325 "Switch B2C" $ 1326 "Call Transit_Ready_to_B_Front" Transit_Ready_to_B_Front() $ 1327 "Call Check_Tool_B_ID" Check_Tool_B_ID() $ 1328 "ToolFree≔1" global ToolFree=1 $ 1329 "Call Dock_B_DropOff" Dock_B_DropOff() $ 1330 "Call Transit_B_Back_to_C_Back" Transit_B_Back_to_C_Back() $ 1331 "Call HookCheckOpen" HookCheckOpen() $ 1332 "Call Dock_C_PickUp" Dock_C_PickUp() $ 1333 "Call HookCheckClosed" HookCheckClosed() $ 1334 "Call Check_Tool_C_ID" Check_Tool_C_ID() $ 1335 "ToolFree≔0" global ToolFree=0 $ 1336 "Call Transit_C_Front_to_Ready" Transit_C_Front_to_Ready() $ 1337 "Switch B2D" $ 1338 "Call Transit_Ready_to_B_Front" Transit_Ready_to_B_Front() $ 1339 "Call Check_Tool_B_ID" Check_Tool_B_ID() $ 1340 "ToolFree≔1" global ToolFree=1 $ 1341 "Call Dock_B_DropOff" Dock_B_DropOff() $ 1342 "Call Transit_B_Back_to_D_Back" Transit_B_Back_to_D_Back() $ 1343 "Call HookCheckOpen" HookCheckOpen() $ 1344 "Call Dock_D_PickUp" Dock_D_PickUp() $ 1345 "Call HookCheckClosed" HookCheckClosed() $ 1346 "Call Check_Tool_D_ID" Check_Tool_D_ID() $ 1347 "ToolFree≔0" global ToolFree=0 $ 1348 "Call Transit_D_Front_to_Ready" Transit_D_Front_to_Ready() $ 1349 "Switch B2M" $ 1350 "Call Transit_Ready_to_B_Front" Transit_Ready_to_B_Front() $ 1351 "Call Check_Tool_B_ID" Check_Tool_B_ID() $ 1352 "ToolFree≔1" global ToolFree=1 $ 1353 "Call Dock_B_DropOff" Dock_B_DropOff() $ 1354 "Call Transit_B_Back_to_M_Dock" Transit_B_Back_to_M_Dock() $ 1355 "Call HookCheckOpen" HookCheckOpen() $ 1356 "Call Dock_M_PickUp" Dock_M_PickUp() $ 1357 "Call HookCheckClosed" HookCheckClosed() $ 1358 "Call DetectToolID" DetectToolID() $ 1359 "ToolFree≔0" global ToolFree=0 $ 1360 "Call Transit_Dock_M_to_Ready" Transit_Dock_M_to_Ready() $ 1361 "Switch C2A" $ 1362 "Call Transit_Ready_to_C_Front" Transit_Ready_to_C_Front() $ 1363 "Call Check_Tool_C_ID" Check_Tool_C_ID() $ 1364 "ToolFree≔1" global ToolFree=1 $ 1365 "Call Dock_C_DropOff" Dock_C_DropOff() $ 1366 "Call Transit_C_Back_to_A_Back" Transit_C_Back_to_A_Back() $ 1367 "Call HookCheckOpen" HookCheckOpen() $ 1368 "Call Dock_A_PickUp" Dock_A_PickUp() $ 1369 "Call HookCheckClosed" HookCheckClosed() $ 1370 "Call Check_Tool_A_ID" Check_Tool_A_ID() $ 1371 "ToolFree≔0" global ToolFree=0 $ 1372 "Call Transit_A_Front_to_Ready" Transit_A_Front_to_Ready() $ 1373 "Switch C2B" $ 1374 "Call Transit_Ready_to_C_Front" Transit_Ready_to_C_Front() $ 1375 "Call Check_Tool_C_ID" Check_Tool_C_ID() $ 1376 "ToolFree≔1" global ToolFree=1 $ 1377 "Call Dock_C_DropOff" Dock_C_DropOff() $ 1378 "Call Transit_C_Back_to_B_Back" Transit_C_Back_to_B_Back() $ 1379 "Call HookCheckOpen" HookCheckOpen() $ 1380 "Call Dock_B_PickUp" Dock_B_PickUp() $ 1381 "Call HookCheckClosed" HookCheckClosed() $ 1382 "Call Check_Tool_B_ID" Check_Tool_B_ID() $ 1383 "ToolFree≔0" global ToolFree=0 $ 1384 "Call Transit_B_Front_to_Ready" Transit_B_Front_to_Ready() $ 1385 "Switch C2D" $ 1386 "Call Transit_Ready_to_C_Front" Transit_Ready_to_C_Front() $ 1387 "Call Check_Tool_C_ID" Check_Tool_C_ID() $ 1388 "ToolFree≔1" global ToolFree=1 $ 1389 "Call Dock_C_DropOff" Dock_C_DropOff() $ 1390 "Call Transit_C_Back_to_D_Back" Transit_C_Back_to_D_Back() $ 1391 "Call HookCheckOpen" HookCheckOpen() $ 1392 "Call Dock_D_PickUp" Dock_D_PickUp() $ 1393 "Call HookCheckClosed" HookCheckClosed() $ 1394 "Call Check_Tool_D_ID" Check_Tool_D_ID() $ 1395 "ToolFree≔0" global ToolFree=0 $ 1396 "Call Transit_D_Front_to_Ready" Transit_D_Front_to_Ready() $ 1397 "Switch C2M" $ 1398 "Call Transit_Ready_to_C_Front" Transit_Ready_to_C_Front() $ 1399 "Call Check_Tool_C_ID" Check_Tool_C_ID() $ 1400 "ToolFree≔1" global ToolFree=1 $ 1401 "Call Dock_C_DropOff" Dock_C_DropOff() $ 1402 "Call Transit_C_Back_to_M_Dock" Transit_C_Back_to_M_Dock() $ 1403 "Call HookCheckOpen" HookCheckOpen() $ 1404 "Call Dock_M_PickUp" Dock_M_PickUp() $ 1405 "Call HookCheckClosed" HookCheckClosed() $ 1406 "Call DetectToolID" DetectToolID() $ 1407 "ToolFree≔0" global ToolFree=0 $ 1408 "Call Transit_Dock_M_to_Ready" Transit_Dock_M_to_Ready() $ 1409 "Switch D2A" $ 1410 "Call Transit_Ready_to_D_Front" Transit_Ready_to_D_Front() $ 1411 "Call Check_Tool_D_ID" Check_Tool_D_ID() $ 1412 "ToolFree≔1" global ToolFree=1 $ 1413 "Call Dock_D_DropOff" Dock_D_DropOff() $ 1414 "Call HookCheckOpen" HookCheckOpen() $ 1415 "Call Transit_D_Back_to_A_Back" Transit_D_Back_to_A_Back() $ 1416 "Call Dock_A_PickUp" Dock_A_PickUp() $ 1417 "Call HookCheckClosed" HookCheckClosed() $ 1418 "Call Check_Tool_A_ID" Check_Tool_A_ID() $ 1419 "ToolFree≔0" global ToolFree=0 $ 1420 "Call Transit_A_Front_to_Ready" Transit_A_Front_to_Ready() $ 1421 "Switch D2B" $ 1422 "Call Transit_Ready_to_D_Front" Transit_Ready_to_D_Front() $ 1423 "Call Check_Tool_D_ID" Check_Tool_D_ID() $ 1424 "ToolFree≔1" global ToolFree=1 $ 1425 "Call Dock_D_DropOff" Dock_D_DropOff() $ 1426 "Call Transit_D_Back_to_B_Back" Transit_D_Back_to_B_Back() $ 1427 "Call HookCheckOpen" HookCheckOpen() $ 1428 "Call Dock_B_PickUp" Dock_B_PickUp() $ 1429 "Call HookCheckClosed" HookCheckClosed() $ 1430 "Call Check_Tool_B_ID" Check_Tool_B_ID() $ 1431 "ToolFree≔0" global ToolFree=0 $ 1432 "Call Transit_B_Front_to_Ready" Transit_B_Front_to_Ready() $ 1433 "Switch D2C" $ 1434 "Call Transit_Ready_to_D_Front" Transit_Ready_to_D_Front() $ 1435 "Call Check_Tool_D_ID" Check_Tool_D_ID() $ 1436 "ToolFree≔1" global ToolFree=1 $ 1437 "Call Dock_D_DropOff" Dock_D_DropOff() $ 1438 "Call Transit_D_Back_to_C_Back" Transit_D_Back_to_C_Back() $ 1439 "Call HookCheckOpen" HookCheckOpen() $ 1440 "Call Dock_C_PickUp" Dock_C_PickUp() $ 1441 "Call HookCheckClosed" HookCheckClosed() $ 1442 "Call Check_Tool_C_ID" Check_Tool_C_ID() $ 1443 "ToolFree≔0" global ToolFree=0 $ 1444 "Call Transit_C_Front_to_Ready" Transit_C_Front_to_Ready() $ 1445 "Switch D2M" $ 1446 "Call Transit_Ready_to_D_Front" Transit_Ready_to_D_Front() $ 1447 "Call Check_Tool_D_ID" Check_Tool_D_ID() $ 1448 "ToolFree≔1" global ToolFree=1 $ 1449 "Call Dock_D_DropOff" Dock_D_DropOff() $ 1450 "Call Transit_D_Back_to_M_Dock" Transit_D_Back_to_M_Dock() $ 1451 "Call HookCheckOpen" HookCheckOpen() $ 1452 "Call Dock_M_PickUp" Dock_M_PickUp() $ 1453 "Call HookCheckClosed" HookCheckClosed() $ 1454 "Call DetectToolID" DetectToolID() $ 1455 "ToolFree≔0" global ToolFree=0 $ 1456 "Call Transit_Dock_M_to_Ready" Transit_Dock_M_to_Ready() $ 1457 "Switch M2A" $ 1458 "Call Transit_Ready_to_Dock_M" Transit_Ready_to_Dock_M() $ 1459 "Call Dock_M_DropOff" Dock_M_DropOff() $ 1460 "Call Transit_M_Dock_to_A_Back" Transit_M_Dock_to_A_Back() $ 1461 "Call HookCheckOpen" HookCheckOpen() $ 1462 "Call Dock_A_PickUp" Dock_A_PickUp() $ 1463 "Call HookCheckClosed" HookCheckClosed() $ 1464 "Call Check_Tool_A_ID" Check_Tool_A_ID() $ 1465 "ToolFree≔0" global ToolFree=0 $ 1466 "Call Transit_A_Front_to_Ready" Transit_A_Front_to_Ready() $ 1467 "Switch M2B" $ 1468 "Call Transit_Ready_to_Dock_M" Transit_Ready_to_Dock_M() $ 1469 "Call Dock_M_DropOff" Dock_M_DropOff() $ 1470 "Call Transit_M_Dock_to_B_Back" Transit_M_Dock_to_B_Back() $ 1471 "Call HookCheckOpen" HookCheckOpen() $ 1472 "Call Dock_B_PickUp" Dock_B_PickUp() $ 1473 "Call HookCheckClosed" HookCheckClosed() $ 1474 "Call Check_Tool_B_ID" Check_Tool_B_ID() $ 1475 "ToolFree≔0" global ToolFree=0 $ 1476 "Call Transit_B_Front_to_Ready" Transit_B_Front_to_Ready() $ 1477 "Switch M2C" $ 1478 "Call Transit_Ready_to_Dock_M" Transit_Ready_to_Dock_M() $ 1479 "Call Dock_M_DropOff" Dock_M_DropOff() $ 1480 "Call Transit_M_Dock_to_C_Back" Transit_M_Dock_to_C_Back() $ 1481 "Call HookCheckOpen" HookCheckOpen() $ 1482 "Call Dock_C_PickUp" Dock_C_PickUp() $ 1483 "Call HookCheckClosed" HookCheckClosed() $ 1484 "Call Check_Tool_C_ID" Check_Tool_C_ID() $ 1485 "ToolFree≔0" global ToolFree=0 $ 1486 "Call Transit_C_Front_to_Ready" Transit_C_Front_to_Ready() $ 1487 "Switch M2D" $ 1488 "Call Transit_Ready_to_Dock_M" Transit_Ready_to_Dock_M() $ 1489 "Call Dock_M_DropOff" Dock_M_DropOff() $ 1490 "Call Transit_M_Dock_to_D_Back" Transit_M_Dock_to_D_Back() $ 1491 "Call HookCheckOpen" HookCheckOpen() $ 1492 "Call Dock_D_PickUp" Dock_D_PickUp() $ 1493 "Call HookCheckClosed" HookCheckClosed() $ 1494 "Call Check_Tool_D_ID" Check_Tool_D_ID() $ 1495 "ToolFree≔0" global ToolFree=0 $ 1496 "Call Transit_D_Front_to_Ready" Transit_D_Front_to_Ready() $ 1497 "'SubFunctions in folder. Open folder for more information'" # 'SubFunctions in folder. Open folder for more information' $ 1498 "'Thread Programs starts here (Small programs running in the background independent from robot program)'" # 'Thread Programs starts here (Small programs running in the background independent from robot program)' $ 1499 "'Thread-1: Stop program if tool is released'" # 'Thread-1: Stop program if tool is released' $ 1500 "'Thread-2: Control pneumatic valves'" # 'Thread-2: Control pneumatic valves' $ 1501 "'Thread-3: Set pneumatic pressure'" # 'Thread-3: Set pneumatic pressure' end