Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 10 von 10

Thema: Wie kann man eine Ablaufsteuerung bei Fehler zurück setzen?

  1. #1
    Registriert seit
    12.04.2011
    Beiträge
    29
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo

    Ich arbeite gerade mit Versuchsanlagen von Festo und verbinde sie über einen CANopen Feldbus von Beckhoff.
    Ich habe nun ein kleines Problem bei der Programmierung.
    Ich möchte gern eine Ablaufsteuerung neustarten wenn ein Fehler aufgetreten ist.
    Im Moment kann ich nur im TwinCAT resetten.
    Möchte aber gern über einen Taster den Fehler bestätigen und die Anlage bzw. die Ablaufsteuerung (Funktionsblock) zurücksetzen, da sie sonst nicht weiter arbeitet, ohne das komplette Programm im TwinCAT zu resetten.

    Ich hoffe es ist einigermaßen klar geworden was mein Problem ist.

    Gruß
    Zitieren Zitieren Wie kann man eine Ablaufsteuerung bei Fehler zurück setzen?  

  2. #2
    Registriert seit
    08.08.2007
    Ort
    Süd-Süd-Deutschland (CH)
    Beiträge
    220
    Danke
    29
    Erhielt 27 Danke für 21 Beiträge

    Standard

    Hi
    Hängt halt davon ab wie du die Ablaufsteuerung programmiert hast.

    Wenn Du sie wie üblich mit einem Case realisiert hast, dann kannst du wieder den Initialwert setzen....


    Code:
    CASE _diState OF
    
    
    0: (* Warteposition *)
    
     q_diState                            := 0;
     q_sStateText                       := 'Warten auf Freigabe';
    
    
    10: (* Initialisierung *)
    
     q_diState                            := 10;
     q_sStateText                       := 'Initialisierung der Datenstruktur';
    
    
    
     _diState                              := 20;
    
    
    20:
    
     _diState                              := 30;
    
    
    
    30:
    ;
    
    
    END_CASE
    
    
    IF i_xReset THEN
    _diState         := 10;
    END_IF

    Nur so als Beispiel, mit i_xReset kannst Du den Ablauf wieder auf Startposition setzen.

    Hoffe Du hast in etwa so gemeint
    "Hätte ich das gewusst, hätte ich einen anderen Beruf gelernt." - "Hast Du gelernt diese Scheisse?"
    (Zitat aus Knockin' on Heaven's Door)

    "Kommentare? Wieso? Steht doch alles im Code..!"

    Avatar erstellt auf www.sp-studio.de

  3. #3
    Registriert seit
    27.11.2009
    Beiträge
    204
    Danke
    1
    Erhielt 32 Danke für 31 Beiträge

    Standard

    Ich würde es auch mit Case realisieren; solltest Du aber AS benutzen gibt es an der POU die den Ablauf enthält das Flag SFCReset. Damit kannst Du eine Schrittkette ebenfalls zurücksetzen.

    http://infosys.beckhoff.com/content/...c.htm?id=13331 (siehe Bereich AS Flags)
    Geändert von KGU (07.12.2011 um 17:49 Uhr)

  4. #4
    Registriert seit
    19.09.2007
    Beiträge
    38
    Danke
    4
    Erhielt 4 Danke für 3 Beiträge

    Standard

    Definiere eine Variable mit dem Name SFCinit :bool
    Lasse diese durch den Fehler setzten -> Die Schrittkette springt in den Init.
    Erst wenn SFCinit wieder auf FALSE gesetzt wird, kann die Kette weiter laufen (z.B. Quittieren).

  5. #5
    Registriert seit
    08.08.2007
    Ort
    Süd-Süd-Deutschland (CH)
    Beiträge
    220
    Danke
    29
    Erhielt 27 Danke für 21 Beiträge

    Standard

    Mit einer Case-Schrittkette hast Du allerdings den NAchteil, dass die Schrittkette immer abgeschlossen werden muss (bzw Reset)
    bevor sie neu gestartet werden kann. Das heisst im Detail, dass Du zBsp. keine zwei Produkte in der Schrittkette haben kannst.

    Also nicht zBsp. ein Karton in Schritt 17 und der nächste schon in Schritt 3 oder sowas.

    Gruss
    "Hätte ich das gewusst, hätte ich einen anderen Beruf gelernt." - "Hast Du gelernt diese Scheisse?"
    (Zitat aus Knockin' on Heaven's Door)

    "Kommentare? Wieso? Steht doch alles im Code..!"

    Avatar erstellt auf www.sp-studio.de

  6. #6
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.712
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard

    Zitat Zitat von Schnick und Schnack Beitrag anzeigen
    ... also nicht zBsp. ein Karton in Schritt 17 und der nächste schon in Schritt 3 oder sowas.
    Ähhh ... so würde ich eine Schrittkette sowieso nicht erstellen. Dann ist da m.E. in der Überlegung schon etwas falsch. Eine Schrittkette ist immer als geschlossener Ablauf zu sehen und sollte auch so ausgeführt werden.
    Somit ist der CASE für ST / SCL schon die richtige (oder eine richtige) Herangehensweise ...

    Gruß
    Larry

  7. #7
    Registriert seit
    08.08.2007
    Ort
    Süd-Süd-Deutschland (CH)
    Beiträge
    220
    Danke
    29
    Erhielt 27 Danke für 21 Beiträge

    Standard

    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Ähhh ... so würde ich eine Schrittkette sowieso nicht erstellen. Dann ist da m.E. in der Überlegung schon etwas falsch. Eine Schrittkette ist immer als geschlossener Ablauf zu sehen und sollte auch so ausgeführt werden.
    Somit ist der CASE für ST / SCL schon die richtige (oder eine richtige) Herangehensweise ...

    Gruß
    Larry
    Da hast Du schon recht. Wird aber teils so gemacht.

    Wie Realisierst Du sowas?
    Auch mit einem Register?

    Gruss
    "Hätte ich das gewusst, hätte ich einen anderen Beruf gelernt." - "Hast Du gelernt diese Scheisse?"
    (Zitat aus Knockin' on Heaven's Door)

    "Kommentare? Wieso? Steht doch alles im Code..!"

    Avatar erstellt auf www.sp-studio.de

  8. #8
    Registriert seit
    03.03.2011
    Ort
    Tettnang
    Beiträge
    123
    Danke
    24
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Hallo Larry und Schnick und Schnack,

    was meint Ihr mit "Eine Schrittkette ist immer als geschlossener Ablauf zu sehen" bzw. "Mit einer Case-Schrittkette hast Du allerdings den NAchteil, dass die Schrittkette immer abgeschlossen werden muss"?

    Würde mich über weitere Erläuterungen freuen, Michael

  9. #9
    Registriert seit
    17.03.2011
    Ort
    im Wald
    Beiträge
    284
    Danke
    11
    Erhielt 36 Danke für 35 Beiträge

    Standard

    Hallo zusammen,

    wenn ich richtig gelesen habe, ist der Themenersteller raus. (Er hat gemerkt, das eine Schrittkette nicht nur ein Funktionsblock ist.)

    Ich nutze gerne AS, wenn es zeitkritisch ist, wird es mit ST und der CASE-Sache gemacht. Für beide Möglichkeiten, sollte der Reset allerdings, selbst und sauber programmiert sein.

    Bei AS, mal eben die Flags nutzen, ist "Quick and Dirty". Man kann damit richtig auf die Schnute fallen. Ist, halt meine Meinung.

    Gruß, Voxe

  10. Folgender Benutzer sagt Danke zu Voxe für den nützlichen Beitrag:

    twincatter (16.12.2011)

  11. #10
    Registriert seit
    08.08.2007
    Ort
    Süd-Süd-Deutschland (CH)
    Beiträge
    220
    Danke
    29
    Erhielt 27 Danke für 21 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von twincatter Beitrag anzeigen
    Hallo Larry und Schnick und Schnack,

    was meint Ihr mit "Eine Schrittkette ist immer als geschlossener Ablauf zu sehen" bzw. "Mit einer Case-Schrittkette hast Du allerdings den NAchteil, dass die Schrittkette immer abgeschlossen werden muss"?

    Würde mich über weitere Erläuterungen freuen, Michael
    Dabei geht es eigentlich um folgendes:

    Wenn du eine Schrittkette in FUP programmierst, hast Du für jeden Schritt ein Bit welches du setzst wenn der Schritt aktiv ist. Sind die Bedingungen für den nächsten Schritt erfüllt, kann
    das Bit für jenen Schritt gesetzt werden und damit das Bit vom vorherigen Schritt zurückgesetzt werden. So läuft die Schrittkette eigentlich Bit für Bit durch.
    Wenn Du also im Schritt 17 bist, wäre es theoretisch möglich, die Schrittkette bereits ein zweites mal zu starten. Dann hättest Du zum Beispiel den Schritt 3 und den Schritt 19 aktiv.
    Die kommen sich ja nicht in die Quere. Die Schrittkette ist somit an zwei Stellen aktiv. Das wird teilwese so gemacht wenn mehrere Produkte auf Bändern sind.

    Bei der Case-Kette ist das aber nicht möglich, Denn für die Schritte hast Du normalerweise einen (Double-)Integer der den entsprechenden Wert hat und die Schrittumschaltung so
    definiert. Die Schrittvariable kann ja nicht zwei Werte gleichzeitig annehmen, somit kannst Du immer nur einen Schritt ausführen. Dadurch muss die Schrittkette immer abgeschlossen bzw.
    zurückgesetzt werden bevor sie neu gestartet wird. Und jetzt bitte nicht an irgendwelche Tricks mit Sprüngen oder sowas denke wie bei dieser Case-Variante auch die obige Funktion realisiert werden könnte.


    Prinzipiell hat Larry recht, eine Schrittkette sollte als solche immer als geschlossener Ablauf realisiert werden.
    Es wird dennoch gerne wie oben beschrieben gemacht. Nur dann hast Du keinen absolut definierten Zustand mehr.



    Bei AS, mal eben die Flags nutzen, ist "Quick and Dirty". Man kann damit richtig auf die Schnute fallen. Ist, halt meine Meinung.
    Da habe ich die selbe Erfahrung gemacht. Daher habe ich je nach Schrittkette im Schritt 0 oder 10 eigentlich immer eine Initialisierung.
    Somit komme ich nach einem Reset wieder zu einem definierten Zustand. Wird die Schrittkette sauber beendet, brauchts den Schritt nicht.


    Gruss
    Geändert von Schnick und Schnack (16.12.2011 um 10:58 Uhr)
    "Hätte ich das gewusst, hätte ich einen anderen Beruf gelernt." - "Hast Du gelernt diese Scheisse?"
    (Zitat aus Knockin' on Heaven's Door)

    "Kommentare? Wieso? Steht doch alles im Code..!"

    Avatar erstellt auf www.sp-studio.de

Ähnliche Themen

  1. Antworten: 6
    Letzter Beitrag: 15.12.2008, 13:41
  2. Antworten: 2
    Letzter Beitrag: 09.07.2007, 14:14
  3. Antworten: 0
    Letzter Beitrag: 12.07.2006, 11:06
  4. Moeller XVC-101-C192K-K82 auf Werkseinstellungen zurück setzen!
    Von Ralle79 im Forum Sonstige Steuerungen
    Antworten: 0
    Letzter Beitrag: 19.05.2006, 11:05
  5. Antworten: 1
    Letzter Beitrag: 21.06.2005, 13:17

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •