S7-400 Zähler läuft nur einmal

caipi

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

Ich habe ne Frage. Ich muss im Studium einen Kran programmieren, der eine Anzahl von Werkstücke transportiert.
Jedoch soll vor jedem Fahrtantritt eine bestimmte Zeit (Timer) gewartet werden.
Mein Problem dabei ist, dass dieser Timer nur einmal läuft. Ich weiß, dass ich den irgendwie zurücksetzten muss
aber irgendwie bin ich dazu zu blöd.

Vielleicht kann mir jemand helfen das Problem zu lösen. Verzweifel so langsam

Schonmal Danke im Vorraus

Code:
L     #Fahrtrichtung
      SPL   lin0
      SPA   nix
      SPA   rec0

lin0: S     M     10.1
      S     "(L) Weiß" A2.1               -- Weiße Lampe
      U     M     10.1
      L     S5T#3S
      SV    T      1
      UN    T      1
      SPBN  e
      R     "(A) Kran nach rechts"    A1.4               -- Kran rechts herum Drehen
      R     M     10.1
      R     "(L) Weiß" A2.1               -- Weiße Lampe
      S     "(A) Kran nach links"      A1.3               -- Kran links herum Drehen
      U     M    100.3
      S     "(L) Weiß" A2.1               -- Weiße Lampe
      UN    M    100.3
      R     "(L) Weiß" A2.1               -- Weiße Lampe
      SPA   e

rec0: S     M     10.2
      S     "(L) Weiß" A2.1               -- Weiße Lampe
      U     M     10.2
      L     S5T#3S
      SV    T      2
      UN    T      2
      SPBN  e
      R     "(A) Kran nach links"      A1.3               -- Kran links herum Drehen
      R     M     10.2
      R     "(L) Weiß" A2.1               -- Weiße Lampe
      S     "(A) Kran nach rechts"    A1.4               -- Kran rechts herum Drehen
      U     M    100.3
      S     "(L) Weiß" A2.1               -- Weiße Lampe
      UN    M    100.3
      R     "(L) Weiß" A2.1               -- Weiße Lampe
      SPA   e

nix:  SET   
      R     "(A) Kran nach links"      A1.3               -- Kran links herum Drehen
      R     "(A) Kran nach rechts"    A1.4               -- Kran rechts herum Drehen
      R     "(L) Weiß" A2.1               -- Weiße Lampe

e:    NOT
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wie meinst das?
Naja das ist jetzt nur der FC Teil der Fahrsteuerung, in dem der Timer ausgelöst wird.
Das Ganze soll als Sprungleiste programmiert sein.

Die einzelnen Teil (Kran links/rechts & Lampe Weiß) sind vorgegeben
 
Zum Thema:
Übersprungene Timer sind nix gut, und in 99% der üblichen Umstände zu vermeiden,
Timer reagieren ziemlich prinzipiell auf Flanken als "Startsignal".
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja mit deinen sprungverteiler, versuche doch den Timer ans Ende des sprungverteilers zu
setzen. Da die Zeiten gleich sind würdest du auch mit einen Timer auskommen.

Was ich meine das Programm sieht schrecklich aus.
 
Ja, das glaube ich gerne, dass es schrecklich aussieht. Ist aber leider auch das erste mal, dass wir ne SPS programmieren.

Das Problem liegt hierbei in der Aufgabenstellung.

Wenn der Fahrbefehl linkst/rechts von außen kommt, soll die weiße Lampe eine Sekunde lang leuchten und erst dann darf die Bewegung in die gewünschte Richtung gemacht werden.

Es funktioniert ja auch soweit, aber halt nur einmal, bis zu einem Reset. Sprich beim ersten Werkstück führt er den Timer aus, danach aber leider nicht mehr.
 
Versuche es doch mal mit einen Timer und füge diesen an die Sprungmarke 'e' ein.
Dein sprungverteiler gefällt mir auch nicht. SPL selber sollte auf einen alternativ Schritt
zeigen. Ich glaube auch das die Aufgabe so geschrieben ist das bei '0' alles aus sein soll
bei '1' in die eine und bei '2' in die andere Richtung. Ungültige Werte sollten da wie gesagt
durch den SPL Befehl abgefangen werden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja stimmt, hab ich wohl verbaut.

Wenn ich Timer an die Sprungmarke e setze, dann wird dieser doch erst nach der Bewegung ausgeführt.

Der Kran ist hochgefahren (hier nicht sichtbar)
Jetzt sage ich, fahr rechts -> weiße Lampe soll für 3 Sekunden leuchten -> dann soll diese Blinken und die Fahrt nach rechts getätigt werden.
Am Ziel wird das Teil abgelegt und das Spiel beginnt von vorne, nur nach links.

Edit: Kann ich den Timer T1 bzw. T2 nicht einfach irgendwie zurücksetzen, damit er wieder ausgeführt wird?
 
Zuletzt bearbeitet:
Wenn du in ans Ende setzt, ist der verlängerte Impuls nicht so günstig.
Aber eine Einschaltverzögerung geht, du schaltest beim einsprung, einer
Drehrichtung die Lampe an. Diese Lampe schaltet dann deine Einschaltverzögerung,
ist die Einschaltverzögerung abgelaufen, setzt diese dann deine endsprechende Ausgänge
und schaltet die Lampe aus. Zeitglied Einschaltverzögerung ist das 'SE'.

Ich finde eine Einschaltverzögerung, auch viel besser zur Aufgabe, der Antrieb soll ja
verzögert, eingeschaltet werden.

Bitte denke dran ungültige Werte in deiner Auftragsvariablen 'Fahrtrichtung' abzufangen
steht da zb eine '3' drin, solltest du auch alles ausschalten. Jetzt würde dein Kran immer
nach Links fahren.
 
Ja, das glaube ich gerne, dass es schrecklich aussieht. Ist aber leider auch das erste mal, dass wir ne SPS programmieren.

Also in der Symbolik würde ich keine Sonderzeichen verwenden.
"ß" ist eben nur deutsch.
Wenn du aus diesem Baustein eine Quelle erzeugen willst... :confused:

Und 2 mal setzen und rücksetzen ist nicht so ganz die feine Art.
Ich würde hier im Forum nach Blinker oder blinken suchen und da bekommst du echt gute Beispiel.


bike
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Vielen Dank. Ich werde mich morgen dann nochmal hinsetzen und es so probieren.
Würde das dann in etwa so aussehen?
Verkürzt

Code:
lin0: S     M     10.1       
       S     "(L) Weiß" A2.1               -- Weiße Lampe       
       U     M     10.1       
       SPBN  e       
       R     "(A) Kran nach rechts"    A1.4               -- Kran rechts herum Drehen       
       R     M     10.1       
       R     "(L) Weiß" A2.1               -- Weiße Lampe       
       S     "(A) Kran nach links"      A1.3               -- Kran links herum Drehen       
       U     M    100.3       
       S     "(L) Weiß" A2.1               -- Weiße Lampe       
       UN    M    100.3       
       R     "(L) Weiß" A2.1               -- Weiße Lampe

e: L S5T#3S
   SE Timer 1
   R M10.1
 
Zuletzt bearbeitet:
Da musst du trotzdem noch ganz schön dran arbeiten. Am Timer fehlt noch eine Abfrage um
ihn zu starten, als Beispiel

Code:
e:     u  M 10.1
       L S5T#3s
       SE T 1

       U  T 1
       R. M 10.1

Grundsätzlich fehlt bei dir immer die 'Erstabfrage', als Anfänger das ' VKE' aus
einer Sprungfunktion mitzunehmen, kann nur schief gehen. Am besten setzt du
an der Einsprungstelle eine Erstabfrage, wenn du eine Verknüpfung startest oder
du setzt das 'VKE' durch 'SET' oder 'CLR'.
Und eine Sache für dich als Studie, 'Kommentare' sind deine Freunde, niemals daran sparen.
 
Zurück
Oben