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

Ergebnis 1 bis 8 von 8

Thema: Sprünge in AWL - Programmierfehler?

  1. #1
    Registriert seit
    14.04.2012
    Beiträge
    81
    Danke
    9
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute
    Ihr seht hier dies ersten beide Netzwerke meines FC1.
    Mit dem Taster "E_Ein" soll der Merker M_Ein gesetzt und mit 0-Signal von E_Not_Aus oder E_Aus oder E_F5 resettet werden.
    Dieser M_Ein gilt für die ganze Maschine und daher werden bei 0-Signal von M_Ein alle Ausgänge und Schrittkettenmerker resettet.
    Damit sie nachher nichtmehr gesetzt werden können und um die Zykluszeit kurz zu halten wollte ich einen Sprung programmieren.
    Sobald M_Ein 0-Signal liefert springe zurück zum Anfang von Netzwerk 1.
    Wenn ich den FC1 und den OB1 in PLCSIM lade und starte, geht die CPU nach ein paar Sekunden auf "SF" und stopp.
    Nachdem ich die Sprungoperation ausgeklammert habe, trat der Fehler nicht auf.
    Wo liegt mein Fehler ???

    Netzwerk1

    Ma01: U #E_Ein
    S #M_Ein

    UN #E_Aus
    ON #E_F5
    ON #E_Not_Aus
    R #M_Ein

    U #M_Ein
    = #A_Ein (Meldeleuhte)

    UN #M_Ein
    R #A_K_runter
    R #A_K_hoch
    R #A_S_zu
    R #A_S_auf
    R #A_Ein
    R #A_Auto
    R #A_Hand
    R #M_Zyklus
    R #M_Schritt_1
    R #M_Schritt_2
    R #M_Schritt_3
    R #M_Schritt_4




    Netzwerk 2


    U #M_Ein
    SPBN Ma01




    mfg xj900mb
    Zitieren Zitieren Sprünge in AWL - Programmierfehler?  

  2. #2
    Registriert seit
    30.08.2003
    Beiträge
    2.197
    Danke
    30
    Erhielt 258 Danke für 229 Beiträge

    Standard

    Endlosschleife? Das macht schon der OB1.

    André
    www.raeppel.de
    mit innovativen SPS-Tools schneller ans Ziel ....
    Zitieren Zitieren Schleife  

  3. #3
    Registriert seit
    11.12.2009
    Beiträge
    2.120
    Danke
    389
    Erhielt 390 Danke für 271 Beiträge

    Standard

    Du hast dir mit deinem Sprung eine Endlosschleife gebaut.

    Tausche mal Sprungmarke und Ziel, dann passt es!

    Grüße

    Marcel

  4. #4
    Registriert seit
    13.10.2007
    Beiträge
    12.065
    Danke
    2.793
    Erhielt 3.288 Danke für 2.168 Beiträge

    Standard

    Du hast dir eine endlosschleife gebaut, wenn dein M_Ein "0" ist springt er immer wieder
    an den Netzwerkanfang, zu deiner Sprungmarke. Für so etwas hat Siemens einen Watchdog
    eingebaut und lässt die CPU in den Stop gehen.

    Macht dir mal Gedanken ob dein Programm so aussehen muß

  5. #5
    Registriert seit
    14.04.2012
    Beiträge
    81
    Danke
    9
    Erhielt 1 Danke für 1 Beitrag

    Standard

    WOW schnelle antworten, cool

    Nach diesen zwei Netzwerken kommen noch ein paar in denen die Hand- und Automatik-Betriebe programmiert sind und genau die wollte ich damit überspringen.
    @matze001: ich verstehe nicht warum das eine Endlosschleife sein soll. Wenn M_ein 1-Signal hat würde das Prgramm doch auch die folgenden Netzwerke durchlaufen

    Ich habe jetzt die Sprungmarken nach den Sprungbefehlen gesetzt und nun funktioniert es auch einwandfrei, aber warum meine erste Variante nicht klappt hab ich noch nicht verstanden .. . naja immerhin läufts
    Dankeschön
    Geändert von xj900mb (25.06.2012 um 20:37 Uhr)

  6. #6
    Registriert seit
    04.04.2006
    Beiträge
    239
    Danke
    31
    Erhielt 61 Danke für 51 Beiträge

    Standard

    Zitat Zitat von xj900mb Beitrag anzeigen
    WOW schnelle antworten, cool

    Nach diesen zwei Netzwerken kommen noch ein paar in denen die Hand- und Automatik-Betriebe programmiert sind und genau die wollte ich damit überspringen.
    @matze001: ich verstehe nicht warum das eine Endlosschleife sein soll. Wenn M_ein 1-Signal hat würde das Prgramm doch auch die folgenden Netzwerke durchlaufen
    Hallo,

    du hast die Frage eigentlich schon selbst beantwortet. Wenn das Signal M_ein 0 ist, wird rückwärts gesprungen zum Netzwerk 1 => Endlosschleife.

    Sprünge rückwärts sind manchmal sinnvoll, z.B. zum sortieren von Werten, in deinem Code aber absolut tödlich.

    Gruß
    Woldo

  7. #7
    Registriert seit
    14.04.2012
    Beiträge
    81
    Danke
    9
    Erhielt 1 Danke für 1 Beitrag

    Standard

    AAah natürlich! Die Schleife läuft solange wie M_Ein 0-Signal liefert und daher kann der FC 1 und damit auch der OB1 gar nich ganz durchlaufen.
    Jetzt hats Klick gemacht.
    Danke!

  8. #8
    Registriert seit
    12.04.2005
    Ort
    Black Forest
    Beiträge
    1.344
    Danke
    28
    Erhielt 131 Danke für 118 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Mann könnte aber auch den Baustein bedingt beenden und somit benötigt man keinen Rücksprung
    Es spricht da die Zykulsszeitüberwachung an! Daher geht die Steuerung dann in stop über!
    Ggf. könnte man auch die Kette in einen zweiten Baustein verpacken und diese dann n ur bedingt aufrufen wenn das Signal 1 führt!

    Aber ob dies wirklich so viel bei der Zyklusszeit bringt wage ich einmal zu bezweifeln!
    Denke wir sprechen da im µs Bereich was da ganze brint!

Ähnliche Themen

  1. Antworten: 11
    Letzter Beitrag: 19.06.2012, 21:46
  2. Sprünge ?
    Von Techniker1907 im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 11.10.2011, 23:20
  3. Sprünge nach Zeit (in AWL)
    Von poppycock im Forum Simatic
    Antworten: 15
    Letzter Beitrag: 06.11.2009, 05:11
  4. Programmierfehler?
    Von tuneit im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 15.10.2008, 16:46
  5. Programmierfehler ??
    Von Waelder im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 06.11.2006, 14:56

Lesezeichen

Berechtigungen

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