Servus,
die beiden Bausteine müssen ein wenig zusammen kommunizieren. Nur weil die beiden Parameter im jeweiligen Baustein gleich heißen, heißt das nicht das es die selbe Variable ist.
Schieben wir mal im FB "AufrufTimer" den Zählerstand in die InOuts damit wir von außen die Zählvariable anhängen können und im FB lesend und schreibend darauf zugreifen zu können..
Und da du die Leuchte auch irgendwie ansteuern willst, schieben wir die Leuchte in die Outputs.

Wir sehen, dass der Staticbereich leer ist, was es uns erlaubt aus dem FB doch eher einen FC zu machen.
Weiter zum FC "Baustein_1".
Der Zählerstand wird hier nur schreibend verwendet sollte aber nicht kontinuierlich auf den berechneten Wert geschrieben werden, also können wir ihn in die Durchgangsparameter InOuts schieben.
Eine Inputvariable kann man nämlich nur in bestimmten Fällen beschreiben.
In einem Kommentar steht, dass "StartZuvor" im statischen Bereich sein soll.
Leider haben wir hier einen FC und keinen FB, also kann man hier im InOut ein Hilfsbitanlegen oder wir machen aus dem FC doch lieber einen FB und schieben das "StartZuvor" in den Staticbereich.
Der Ausgang "Leuchte" wird im FC/FB gar nicht verwendet, den können wir verwerfen.
Im Weckalarm-OB rufen wir unseren neuen FC auf und Hängen die Zählvariable an und den Ausgang für die Leuchte.

Im OB1 versorgen wir den neuen FB mit dem Eingang zum Starten und den Eingang mit der Anzahl der Leuchtzyklen.
Am Ausgang hängen wir noch die selbe Zählvariable die wir im Weckalarm-OB am FC "AufrufTimer_2" verwendet haben.
Wenn du jetzt im OB1 die n mit einer Zahl größer 1 und kleiner 16.383 versorgst und "Start" auf true setzt, wird im Weckalarm-OB der Ausgang der Leuchte n-mal auf true und false gesetzt.
Edit:
Sollte sogar bis 32.767 gehen, da sich der Integeroverflow und -underflow aufheben.