Adjunto te paso un proyecto que hace lo que necesitas, te recomiendo intentar entender el programa.
Para extender el numero de alarmas, se comparten las mismas.
La idea es crear 3 grupos de alarmas (para los 3 turnos) con 8 alarmas para cada uno, en este caso, todas son de LUNES A VIERNES.
EL grupo 1 es para el evento 1.
EL grupo 2 es para el evento 2.
EL grupo 3 es para el evento 3.
Cada grupo tiene alarmas compartidas que son activadas por la función Ladder SetAlarmNum.
Alli las alarmas estan ordenadas en orden ascendente (mas temprano a mas tarde, muy importante).
Luego en el evento OnTimeAlarm, se comprueba que alarma del grupo fue activada y luego
se activa a la siguiente en orden. Si la ultima fue alcanzada, se vuelve a activar la primera.
La cantidad maxima de alarmas por grupo se define en las constantes Alarm(X)MaxQty (donde X es el numero de grupo).
Si modificamos el el numero de alarmas por grupo, los diagramas SetAlarmNum(X), deben modificarse para activar mas o menos
alarmas según corresponda.
Cuando se activa una alarma, se activa tambien la salida DOUT1 por 3.5 segundos. En esa salida podes conectar el timbre.
Fijate de poner en hora las alarmas con con la tabla que pasaste de los horarios, ya que el horario que tienen es uno cualquiera.
No lo he probado al codigo, pero esa es la forma. Modificalo para tus horarios y hace la prueba.
Cualquier duda, avisanos.