No matter what, I think you are going to be creating something “extra”. I think a timer would be easier to understand than a dummy output.
If you want to minimize created variables here is some optoscript* that will only require your setpoint variables (unless you wanted to hard code them - I wouldn’t). This can be converted to blocks, but will require a holding variable for the off time totalizers.
GetRestartOffTimeTotalizer(diEye1); //Or use a timer variable here
//Must start strategy with one or both brakes on
if (IsOn(doLane1Brake)) then //Lane 1 is stopped, Lane 2 has the green light
if(IsOn(diEye1) and GetOffTimeTotalizer(diEye2) > fMinEyeOffTime) then
//Lane 1 has product, and nothing coming down Lane 2
StartOnPulse(fBrakeSwitchDelay, doLane1Brake); //This will turn off the brake after the delay
elseif (IsOn(doLane2Brake)) then
if(IsOn(diEye2) and GetOffTimeTotalizer(diEye1) > fMinEyeOffTime) then
//Lane 2 has product, time to switch lanes
StartOnPulse(fBrakeSwitchDelay, doLane2Brake); //This will turn off the brake after the delay
*Not responsible for fruit flying through the air.