программа выполянется циклически

ну если кусочек надо сделать после определенного события

myTON:TON;
myR_TRIG:R_TRIG;

myTON(IN:=external_event,PT:=t#10s500ms);
myR_TRIG(CLK:=myTon.Q);
if myR_TRIG.Q then
(*
действие после задержки - однократно
*)

end_if