It seems the routine called by RunRobotRoutine will only be executed when the robot is currently idle, but in your case it is still busy until it has placed the part in the Sink process.
I’m not sure which of those two options you want the robot to do:
Pick part from Feeder → Run Routine → Place part on Sink
Pick part form Feeder → Place part on Sink → Run Routine
If it is the first one, you should use “Record Routine” and then “Execute Routine” and call the sequence in the created programs.
If it is the second one, you could send a signal from the Sink to the Feeder once it is done with its TransportIn:
(The delay is there because of the robot moving back to the Approach Location after it placed the part)
EDIT: I just realized that this will only run once, because the “TransportIn” on the Feeder comes AFTER the Feeder has created a new part already.
I think the better option to this would be to use the “Execute Routine” option and call the sequence at the end of the T1_PICK subprogram.
Hope this helps, surely there are better ways to do this too
I often use RunRobotRoutine when I have a separate robot with a tool (e.g. camera, laser sensor) that only does one thing like scanning a part or taking measurements, but won’t move the part itself.
The robot doesn’t need to be connected to a RobotController for RunRobotRoutine to work.