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

Ergebnis 1 bis 7 von 7

Thema: GOTO in ST

  1. #1
    Registriert seit
    09.11.2007
    Ort
    Rhein Main (Darmstadt)
    Beiträge
    663
    Danke
    61
    Erhielt 112 Danke für 80 Beiträge

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Gibt es in ST keine GOTO Anweisung?
    Als Freelancer immer auf der Suche nach interessanten Projekten.
    Zitieren Zitieren GOTO in ST  

  2. #2
    Registriert seit
    15.02.2011
    Ort
    Stromness, Scotland, UK
    Beiträge
    339
    Danke
    25
    Erhielt 34 Danke für 33 Beiträge

    Standard

    Folgendes steht im Buch "SPS-Programmierung mit IEC 61131-3" über den GOTO Befehl:

    ST kennt keine Sprunganweisung (GOTO). Dies stellt zwar keine funktionelle Einschränkung dar, zumal Sprunganweisungen zu unstrukturierten Programmen verführen. Jeder bedingte Sprung kann auch über eine IF-Abfrage programmiert werden. Durch die besondere Umgebung der SPS, wie ihre Echtzeitanforderung, könnten Sprünge allerdings zur Effizienzsteigerung beitragen, um z.B. nach der Feststellung einer Fehlerbedingung stark verschachtelte Anweisungen schnell verlassen zu können.

  3. #3
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard

    Ich hatte bis her noch nicht das Bedürfnis einen GOTO Sprung in ST zu verwenden. Vielleicht schreibst Du mal an welcher Stelle Du diesen für Notwendig erachten würdest.

    Um z.b. Suchschleifen und ähnliche Schleifen nicht unnötig lange laufen zu lassen benutze ich z.B. den EXIT Befehl.

    Bei Case und ELSIF braucht man auch eher kein GOTO.


    PS: Soweit ich mich erinnere bietet Siemens in seinem SCL den GOTO Befehl an.
    If you open your Mind too much, your Brain will fall out.

  4. #4
    Avatar von RobiHerb
    RobiHerb ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    09.11.2007
    Ort
    Rhein Main (Darmstadt)
    Beiträge
    663
    Danke
    61
    Erhielt 112 Danke für 80 Beiträge

    Standard

    Zitat Zitat von zotos Beitrag anzeigen
    Ich hatte bis her noch nicht das Bedürfnis einen GOTO Sprung in ST zu verwenden. Vielleicht schreibst Du mal an welcher Stelle Du diesen für Notwendig erachten würdest.

    Es geht um das Schreiben eines Converter Programms für die automatische Umsetzung von einigen Zehn Tausend Zeilen proprietären AWL Codes nach ST. Dient zur Rettung von Legacy Code einer SPS, die nicht mehr unterstützt wird.
    Als Freelancer immer auf der Suche nach interessanten Projekten.
    Zitieren Zitieren Converter  

  5. #5
    Registriert seit
    15.02.2011
    Ort
    Stromness, Scotland, UK
    Beiträge
    339
    Danke
    25
    Erhielt 34 Danke für 33 Beiträge

    Standard

    Okey, jetzt macht deine Frage natürlich Sinn!
    Hmm, wie wäre es mit einer CASE-Struktur in einer REPEAT-Schleife, so kannst du beliebig oft Vor- und Rückwärts springen, bis du fertig "gesprungen" bist...
    Die AWL-Sprungmarken kannst du ja direkt als ENUM übernehmen und in der CASE-Struktur verwenden...
    Es wird klar sein, dass Dead-Locks und Zykluszeitüberschreitungen bei REPEAT/WHILE-Schlaufen eine latente Gefahr sind!
    Bin gespannt auf deine Lösung...

  6. #6
    Avatar von RobiHerb
    RobiHerb ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    09.11.2007
    Ort
    Rhein Main (Darmstadt)
    Beiträge
    663
    Danke
    61
    Erhielt 112 Danke für 80 Beiträge

    Standard

    Zum Glück sind es Professionelle Programme, d.h. Rücksprünge waren wegen Codier Richtlinien nicht erlaubt.

    Wahrscheinlich ist es aber einfacher AWL -> AWL zu convertieren.
    Als Freelancer immer auf der Suche nach interessanten Projekten.
    Zitieren Zitieren Professionelle Programme  

  7. #7
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Danke für die Erläuterung für was Du GOTO in ST verwenden möchtest. In dem Fall ist die Sachlage natürlich ganz klar.



    Ich denke auch das eine Übersetzung von AWL in AWL (IL) deutlich leichter umzusetzen ist.

    Das Rücksprünge in AWL "unprofessionell" sein sollen, geht mir dann doch etwas zu weit.
    Schleifen und Suchroutinen bedienen sich nun mal diesem Mittel.
    If you open your Mind too much, your Brain will fall out.

Ähnliche Themen

  1. GOTO Anweisung
    Von Felse im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 13.03.2009, 10:17

Stichworte

Lesezeichen

Berechtigungen

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