Hilfe bei Unterbrechung Lichtschranke bei Rolltor/Kabine

Guten Abend,

vielen Dank für die bisherigen Hinweise und Unterstützung. Ich habe mich ein wenig in die Ablaufsteuerung eingelesen und habe erstmal den Ablauf visualisiert:

Wenn ich es richtig verstanden habe, müsste die Ablaufsteuerung doch prinzipiell so aufgebaut werden:

switch state {

case kabine_oben:
	Motor = AUS;
	if (Seilschalter oder Extern hoch == HIGH){
	state fahrt_nach_unten
	}
	break;

case fahrt_nach_unten:
	Drehrichtung = Runter;
	Schaltpause;
	Motor = AN;
	if (Endschalter_unten == HIGH){
	state kabine_unten
	}
	if (Lichtschranke == HIGH){
	state unterbrechung
	}
	break;
	
case kabine_unten:
	Motor = AUS;
	if (Seilschalter oder Extern hoch == HIGH){
	state fahrt_nach_oben
	}
	break;

case fahrt_nach_oben:
	Drehrichtung = Rauf;
	Schaltpause;
	Motor = AN;
	if (Endschalter_oben == HIGH){
	state kabine_oben
	}
	break;

case unterbrechung:
	Motor = AUS;
	Wartezeit;
	if (Lichtschranke == LOW){
	state fahrt_nach_oben;
	}
	else {
	state unterbrechung;
	}
	break;

Ich hoffe, das passt so. Nun sind aber noch offene Fragen:

  • Wie komme ich in den Ablauf rein?
    Die Anlage bekommt Strom, wartet auf Betätigung des Seilzugs und soll nach oben fahren

  • Funktioniert das mit der Lichschranke bei case fahrt_nach unten?
    Kann ich von dort in den case unterbrechung springen und von da dann entweder zu fahrt_nach_oben oder in case unterbrechung bleiben, wenn die LIchtschranke nicht frei sein sollte?

Grüße

Steve