Buenos días,
Es complicado ver la interacción que tiene la rutina en un programa extenso, ya que tenes muchas condiciones para analizar.
Por un lado, veo que en PlcMain() tenes una instrucción que ejecutas y dice:
DelayS(2) //Delay 2 segundos!!!!!
¿Eso no te esta generando el Delay de 2 segundos que comentas en la consulta?.
Por otro lado, el evento RtcOnSecondSetEvent() debería funcionar con normalidad, te recomiendo probarlo en un proyecto nuevo con un código simple, por ejemplo que cada 30 segundos conmutes un rele. De esta forma ves el funcionamiento normal.
Luego dentro de tu proyecto, lo agregas y vas introduciendo mayor complejidad, ya que por ahí no estas teniendo algo en cuenta con tu lógica.
Fíjate si es eso para determinar que no sea tu código.
Cualquier duda avísanos.