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

Ergebnis 1 bis 8 von 8

Thema: Step7 V5.5 - SCL: FB-Übersetzung wird mit Fehler abgebrochen

  1. #1
    Kallemann Gast

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo.

    Ich habe einen FB nach folgendem Schema geschrieben:

    Code:
    {SetOKFlag := 'y' ; OptimizeObjectCode := 'y'}
    FUNCTION_BLOCK SymbolischerName
    
      VAR_INPUT
        BezeichnerInput1 : DatenTyp;
        ...
        BezeichnerInputN : DatenTyp;
      END_VAR
    
      VAR_IN_OUT
        BezeichnerInOut1 : DatenTyp;
        ...
        BezeichnerInOutN : DatenTyp;
      END_VAR
    
      VAR_OUTPUT
        BezeichnerOutput1 : DatenTyp;
        ...
        BezeichnerOutputN : DatenTyp;
      END_VAR
      VAR
        BezeichnerStat1 : DatenTyp;
        ...
        BezeichnerStatN : DatenTyp;
      END_VAR
      VAR_TEMP
        BezeichnerTemp1 : DatenTyp;
        ...
        BezeichnerTempN : DatenTyp;
      END_VAR
      LABEL
        SprungZiel;
      END_LABEL;
      
      BEGIN
    
      // 1. Anweisung
      BezeichnerTemp1 := BezeichnerInOut1 AND IrgendeineBedingung;
      
      //...weitere Anweisungen
    
    SprungZiel:
    
      //...weitere Anweisungen
    
    END_FUNCTION_BLOCK

    Entferne ich das Schlüsselwort "BEGIN", erfolgt die Übersetzung inklusive der deklarierten Sprungmarke fehlerfrei. Entferne ich die Sprungmarke und deren Deklaration im Vereinbarungsteil, dann erfolgt die Übersetzung inklusive des verwendeten Schlüsselwortes "BEGIN" fehlerfrei. Möchte ich Sprungmarke und Schlüsselwort verwenden, wird mir nach dem Übersetzungsversuch die erste Anweisung nach dem Schlüsselwort "BEGIN" als "unbekannte Anweisung" gemeldet.

    Hat jemand von Euch auch schon einmal ein solches Verhalten festgestellt? Gibt es für dieses Verhalten einen speziellen Grund? Wahrscheinlich habe ich den auftretenden Fehler selbst verursacht, aber wie?

    Bitte um Hilfe

    VG Carsten
    Zitieren Zitieren Gelöst: Step7 V5.5 - SCL: FB-Übersetzung wird mit Fehler abgebrochen  

  2. "Hallo.

    Ich möchte doch noch 'mal nachhaken: Warum ist die Verwendung von Sprungmarken in SCL unschön?

    VG Carsten"


  3. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.727
    Danke
    398
    Erhielt 2.404 Danke für 2.002 Beiträge

    Standard

    ... ohne den "echten" Code zu kennen fällt mir dazu jetzt gar nichts ein.
    In SCL Sprungmarken zu verwenden ist nicht unbedingt schön - funktioniert aber anstandslos.

    Manchmal ist der Fehler auch nicht unbedingt in der angemeckerten Zeile sondern dahinter (oder davor) ...

    Gruß
    Larry

  4. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:


  5. #3
    Kallemann Gast

    Standard

    Hallo, Larry.


    Zitat Zitat von Larry Laffer Beitrag anzeigen
    Manchmal ist der Fehler auch nicht unbedingt in der angemeckerten Zeile sondern dahinter (oder davor) ...
    Tatsächlich davor. Es war ein Semikolon hinter "END_LABEL".

    Vielen Dank
    VG Carsten

  6. #4
    Kallemann Gast

    Standard

    Hallo.

    Ich möchte doch noch 'mal nachhaken: Warum ist die Verwendung von Sprungmarken in SCL unschön?

    VG Carsten

  7. #5
    Registriert seit
    19.07.2010
    Beiträge
    1.289
    Danke
    213
    Erhielt 267 Danke für 233 Beiträge

    Standard

    Weil man den ganzen Code mit entsprechenden Kontrollstrukturen vernünftig strukturieren kann.

    In Wikipedia findet sich dazu das
    mfG Aventinus

  8. #6
    Kallemann Gast

    Standard

    Hallo Aventinus.

    Vielen Dank für den Link; ich habe mir das 'mal durchgelesen. Es handelt sich dabei dann letztendlich wieder um eine persönliche Meinung eines jeden Einzelnen und führt nur zu end- und ergebnislosen Grundsatz-Diskussionen. Die machen keinen Spaß.

    VG Carsten

  9. #7
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.727
    Danke
    398
    Erhielt 2.404 Danke für 2.002 Beiträge

    Standard

    ... ich habe mir den Link von Aventinus nun nicht angesehen - Auf Goto's und Sprung-Label nach Möglichkeit zu verzichten ist aber nicht nur eine Glaubens-Geschichte. Viele Programmiersprachen kommen ganz ohne so etwas aus. Ich habe in meinen Programmen bislang auch recht erfolgreich auf Goto's verzichten können.
    Du mußt das ja auch nicht so machen - es reicht schon, wenn du einfach mal drüber nachdenkst - manchmal fängt es so schon an ...
    Meißtens (so meine Erfahrung) wird der Code tatsächlich übersichtlicher wenn man mit "IF ... THEN ... ELS_IF ... ELSE" oder "SELECT CASE" arbeitet ...

    Gruß
    Larry

  10. #8
    Registriert seit
    19.07.2010
    Beiträge
    1.289
    Danke
    213
    Erhielt 267 Danke für 233 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Wenn du ein Sprung-Label hast weißt du nicht automatisch, von wo aus dieser angesprungen wird. Rückwärtsquerverweise gibt es nicht.

    Bei den Kontrollstrukturen sieht man es relativ leicht.

    Aber wie du schon schreibst, das kann jeder machen wie er es für richtig hält. Technisch gesehen funktioniert beides...
    mfG Aventinus

Ähnliche Themen

  1. Antworten: 19
    Letzter Beitrag: 12.10.2012, 10:00
  2. Antworten: 2
    Letzter Beitrag: 10.10.2012, 19:34
  3. Antworten: 2
    Letzter Beitrag: 05.09.2012, 15:48
  4. Transfer zum OP270 wird abgebrochen
    Von mega_ohm im Forum HMI
    Antworten: 3
    Letzter Beitrag: 04.06.2007, 01:32
  5. Antworten: 6
    Letzter Beitrag: 13.08.2006, 13:36

Lesezeichen

Berechtigungen

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