Ausführung verzögern nach Neustart

martin.k

Level-1
Beiträge
8
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich habe seit langem ein paar Jalousien und Lampen an einem Controler 750-841 mit Codesys 2.3.
Jetzt steht ein Umstieg auf einen PFC200 mit Codesys3.5 an.

Ein Problem muss ich lösen:
Nach einem Neustart des Controllers (PLC) soll 20minuten lang die Variable "Systemstart" auf FALSE bleiben.
Dazu habe ich mir folgendes zusammen gefrickelt:

Code:
IF Systemstart = FALSE THEN
    timer(PT:=T#20M, IN:=TRUE);
    SET:=TRUE;
END_IF
IF Set:=TRUE THEN
    IF timer.Q = FALSE THEN
    Systemstart := TRUE;
    SET :=FALSE;
END_IF

Da ich keine "Übungs-PLC" habe, möchte ich fragen ob das so klappen wird.
Oder ist geht das besser?
Gibts von Codesys sowas schon ?
Unter Linux gibts ja die Uptime die man auslesen könnte 😄

Danke und Gruß

Martin
 
Als Anlaufmerker würd ich ein Systemstatusbit nehmen, welches nur im ersten Zyklus wahr ist.
Darauf aufbauend dann nen TOF.

Das Problem mit der "Übungs-PLC" sollte sich bei ner Heimautomation nicht stellen: Einfach ein PRG zum "Üben" einhängen und testen - vorher Backup des aktiven Programmcodes.
 
Hallo!
Danke für Eure vielen Gedanken, Ideen und geschriebenen Beiträge.

Also so?

Code:
ton01:TON;
Systemstart        :BOOL :=TRUE;

ton01(PT:=T#20M, IN:=TRUE);
Systemstart := ton01.Q

Nach 20Min wechselt Systemstart auf FALSE.

Gruß
Martin
 
Also so?

Code:
ton01:TON;
Systemstart        :BOOL :=TRUE;

ton01(PT:=T#20M, IN:=TRUE);
Systemstart := ton01.Q
Ja. fast.
Hast du bei Systemstart := ton01.Q ; das Semikolon am Ende vergessen?

Nach 20Min wechselt Systemstart auf FALSE.
Bist du sicher??? :unsure: Das dürfte nicht sein.
Der Q des TON wird entweder nach 20 Minuten TRUE oder nie (falls der TON beim Systemstart explizit eine steigende Flanke sehen will).
Hast du ton01 wirklich als TON deklariert?
 
Leicht off topic: Das habe ich früher auch so gemacht.
Seit der 1500 lass ich einen L-TON auf die maximal mögliche Zeit (> 290 Jahre) hochlaufen. Dadurch kann ich durch Vergleich mit der ET je nach Bedarf mehrere Zeitstufen einrichten.
Wäre natürlich blöd, wenn die Kiste dann 2310 noch liefe, ohne Neustart.
 
Hallo, da bin ich wieder. Danke für die vielen Antworten zu einem so banalem Thema.

@PN/DP : Ja, da hat noch ein Semikolon gefehlt.
Mit dem IF ganz am Anfang wollte ich verhindern, dass der Code danach immer wieder bearbeitet wird. Naja.
Aber jetzt klappts soweit.

Es ist schon ein großer Unterschied wenn man beim Systemstart einige Anweisungen pausieren kann . Vor allem die Funktionen um Sensorenwerte zu beruhigen sind am Anfang eigentlich vollkommen unbrauchbar. Aber das gehört nicht in diesen Thread..

Mit der Uptime (@Ludewig) kann man sehr einfach alle möglichen Zeitpunkte wählen. :)

@Plan_B : Systemstatusbit
Ich dachte mir, dass es sowas gibt. Danke für das Stichwort. Damit konnte ich ein gutes Youttube-Video finden, in dem erklärt wird wie das geht:
Um diese Inhalte anzuzeigen, benötigen wir die Zustimmung zum Setzen von Drittanbieter-Cookies.
Für weitere Informationen siehe die Seite Verwendung von Cookies.

So könnte man einen Timer mit diesen Events starten. ZB: nach Reset / Start sowie nach eine OnlineChange...

Gruß in die Nacht.
Martin
 
Zurück
Oben