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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Klammersetzung in SCL

  1. #1
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi ihr Lieben,

    ich hatte versucht was über das Klammersetzen in SCL zu finden - bin aber nicht ganz schlau geworden. Habe nämlich ab und an ein Zufallsprodukt und bin nicht sicher ob es an der Klammer liegt ...


    Kann folgendes Beispiel so

    Ventil := Merker_1 AND Merker_2 OR Eingang_1;

    oder muss es so

    Ventil := (Merker_1 AND Merker_2) OR Eingang_1;

    programmiert werden?


    Gibt es also in SCL auch so etwas wie Punkt vor Strich in der Mathematik?
    LG
    spirit
    Zitieren Zitieren Klammersetzung in SCL  

  2. #2
    Parmaster Gast

    Standard

    Hallo!

    Kommt drauf an wie du was verknüpfen willst.

    Das erste und zweite ist identisch, da von der Rangfolge her zuerst die Klammer ausgewertet wird, dann AND, danach kommt OR.

    Was anderes wäre das hier:
    Ventil := Merker_1 AND (Merker_2 OR Eingang_1);


    EDIT:

    dies hat auch eigentlich nichts mit SCL zu tun, in anderen Programmiersprachen ist die Rangfolge gleich, also zuerst Klammer, und AND/UND kommt vor OR/ODER.

  3. Folgender Benutzer sagt Danke zu Parmaster für den nützlichen Beitrag:

    spirit (17.02.2015)

  4. #3
    Avatar von spirit
    spirit ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    12.09.2012
    Beiträge
    961
    Danke
    183
    Erhielt 23 Danke für 22 Beiträge

    Standard

    Zitat Zitat von Parmaster Beitrag anzeigen

    EDIT:

    dies hat auch eigentlich nichts mit SCL zu tun, in anderen Programmiersprachen ist die Rangfolge gleich, also zuerst Klammer, und AND/UND kommt vor OR/ODER.

    Ah ok, das eben wusste ich nicht so genau ...

    Das würde also bedeuten in meinem Beispiel ohne Klammer schaltet der Ausgang nur dann, wenn entweder Merker_1 und Merker_2 TRUE sind oder Eingang_1 TRUE ist. Stimmt's so?
    LG
    spirit

  5. #4
    Registriert seit
    20.01.2009
    Beiträge
    190
    Danke
    32
    Erhielt 15 Danke für 14 Beiträge

    Standard

    Richtig

    s. SCL Hilfe
    Ausdrücke, Operationen und Operanden / Logische Ausdrücke / Priorität

  6. Folgender Benutzer sagt Danke zu hub für den nützlichen Beitrag:

    spirit (17.02.2015)

  7. #5
    Parmaster Gast

    Standard

    Zitat Zitat von spirit Beitrag anzeigen
    Ah ok, das eben wusste ich nicht so genau ...

    Das würde also bedeuten in meinem Beispiel ohne Klammer schaltet der Ausgang nur dann, wenn entweder Merker_1 und Merker_2 TRUE sind oder Eingang_1 TRUE ist. Stimmt's so?
    Genau.

    Also im Prinzip wie Mathe, zuerst Klammer, dann Punkt (AND) vor Strich (ODER).

  8. Folgender Benutzer sagt Danke zu Parmaster für den nützlichen Beitrag:

    spirit (17.02.2015)

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

    Standard

    ... aber so ganz vorsichtshalber kann man (im Zweifel) die erwünschte Klammer auch unnötigerweise setzen - das schadet nie und erhöht manchmal sogar die Übersicht ...

    Gruß
    Larry

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

    spirit (18.02.2015)

  11. #7
    Parmaster Gast

    Standard

    Das wollt ich auch erst vorschlagen, hab es dann aber gelassen, da es im Zweifelsfall sogar noch mehr Fehler bringen kann als ohne Klammer (z.B. Klammer falsch gesetzt).

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

    Standard

    @Parmaster:
    Wo genau siehst du da ein Problem. ..?

    Gruß
    Larry

  13. #9
    Parmaster Gast

    Standard

    Wie gesagt, wenn man, aus welchem Grund auch immer, die "unnötigen" Klammern falsch setzt.

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von Parmaster Beitrag anzeigen
    Wie gesagt, wenn man, aus welchem Grund auch immer, die "unnötigen" Klammern falsch setzt.
    Das Problem, dass man die Klammern falsch setzt, musst Du selber lösen. Der Compiler hält sich an die Regeln, die in der Hilfe und der allgemeinen Syntax akribisch genau definiert sind. Wer die Regeln nicht kennt oder beachtet wird umgehend durch das System bestraft.

    Da ich in den verschiedenen Sprachen auf verschiedenen Systemen programmiere, setze ich IMMER Klammern, wo etwas komplizierter wird.

    Die kleinen aber feinen Unterschiede zwischen PL/M, C, C++, C#, ST, PASCAL sind sonst eine Falle, in die man immer wieder tappt.
    Als Freelancer immer auf der Suche nach interessanten Projekten.

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 23.01.2012, 17:06
  2. SCL: FB Aufruf unter SCL mit Variablen DB
    Von ThorstenK im Forum Programmierstrategien
    Antworten: 32
    Letzter Beitrag: 10.02.2011, 19:15
  3. Antworten: 4
    Letzter Beitrag: 07.10.2006, 00:34
  4. SCL - AWL Kommando "SRD" in SCL
    Von Floh im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 09.06.2006, 09:37
  5. Brauche Hilfe bei SCL.SFC Aufrufen in SCL
    Von Gerold im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 06.10.2005, 10:47

Lesezeichen

Berechtigungen

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