Here's the model. The reach stacker is build from a Basic TE. The arm is extended/lifted as part of the offset travel off load and unload tasks. It is retracted after an item is loaded or unloaded in the respective trigger. If the "WaitForArmReset" label is set to 1, the reach stacker will receive a preempting delay task for this time, to keep it stationary until the arm is fully retracted. The other labels are used to store information (mainly kinematics data) and should not be changed.
The reach stacker should generally be usable like any other task executer. Though it is assumed that it only ever loads a single item.
Since this was only meant as a demo, the logic that calculates how far the arm has to lift/extend to load an item uses hardcoded numbers in a couple of places. If you resize the stacker it will not work properly.
Reach_Stacker_FS20222_0_4.fsm