SETIO and CLRIO only set the internal bit, the external output only get updated during I/O scan. So what you are doing only change the internal bit and not the physical output. To force a I/O refresh you can use the REFRESH command or let the function exit and at the end of the ladder scan will be followed by I/O scan.
You should use timers to achieve time delay. Using DELAY function to delay for 5 second is a bad idea since the rest of the PLC program stops while waiting for the time to expire.
If you are not familiar with using timers in ladder logic try to consult some basic ladder logic programming books or website such as
www.plcs.net - the TRiLOGI simulator let you quickly test out your program that involves timers and it is not hard to visualize that once you have tried some examples.