По ошибке - тупо возьми пин start и заведи на таймер выход которого на ошибку. Или лучше наверное в hal написать
iocontrol.0.tool-change => timedelay.N.in
setp timedelay.N.on-delay - время на смену
timedelay.N.out => not.in
not.out => or2.in1
estop-ext => or2.in0
or2.out => iocontrol.0.emc-enable-in
или и правда на ладдере проще сделать


