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

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

Thema: CASE - Schleife: OF DB_Beispiel.INT ???

  1. #1
    Registriert seit
    30.07.2014
    Beiträge
    289
    Danke
    66
    Erhielt 33 Danke für 19 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    hat jemand ähnliches schon einmal versucht? Leider nimmt mein TIA das grade nicht an, zeigt mir den Fehler " Ungültiger Ausdruck '.' " und verweißt auf den markierten Punkt. Geht das überhaupt? Hardware ist ne 1500er, sollte aber keine Grundelgenden Unterschiede geben. Version V13.

    Code:
    CASE    BYTE_TO_INT(DB_Beispiel_1.BEISPIEL[0].BYTE)    OF
    
                  DB_BEISPIEL_2.INT_1 : 
                                 BEISPIEL_REAL := 2.0;
    
                  DB_BEISPIEL_2.INT_2 : 
                                 BEISPIEL_REAL := 14.45;
    
                  DB_BEISPIEL_2.INT_3 : 
                                 BEISPIEL_BIT := TRUE;
    
    ELSE
    
                  BEISPIEL_BIT := FALSE;
    
    END_CASE;
    Vielen Dank im Voraus!
    Freundliche Grüße aus München, der Stadt mit Herz


    There are 2#10 kinds of people, those who do the work & those who take the credit.
    Zitieren Zitieren CASE - Schleife: OF DB_Beispiel.INT ???  

  2. #2
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.140
    Danke
    524
    Erhielt 2.672 Danke für 1.929 Beiträge

    Standard

    Was soll das werden?

    Vor dem Doppelpunkt sollte eine Int oder eine Constante stehen, du hast aber eine Variable dort stehen.
    Das hab ich noch nie versucht, könnte mit aber denken, dass das nicht geht.


    Code:
    CASE    BYTE_TO_INT(DB_Beispiel_1.BEISPIEL[0].BYTE)    OF
    
                  10 : 
                                 BEISPIEL_REAL := 2.0;
    
                  20 : 
                                 BEISPIEL_REAL := 14.45;
    
                  30 : 
                                 BEISPIEL_BIT := TRUE;
    
    ELSE
    
                  BEISPIEL_BIT := FALSE;
    
    END_CASE;
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

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

    Münchnerjunge (23.08.2016)

  4. #3
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.632
    Danke
    432
    Erhielt 897 Danke für 727 Beiträge

    Standard

    Variablen gehen definitiv nicht.
    Nur Konstanten entweder direkt hingeschrieben oder als Konstante lokal oder global definiert.

  5. Folgender Benutzer sagt Danke zu hucki für den nützlichen Beitrag:

    Münchnerjunge (23.08.2016)

  6. #4
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.140
    Danke
    524
    Erhielt 2.672 Danke für 1.929 Beiträge

    Standard

    Aus der Hilfe von TIA (F1 auf Case)

    Beschreibung
    Mit der Anweisung "Mehrfach verzweigen" bearbeiten Sie abhängig vom Wert eines numerischen Ausdrucks eine von mehreren Anweisungsfolgen.
    Der Wert des Ausdrucks muss eine Ganzzahl sein. Bei der Ausführung der Anweisung wird der Wert des Ausdrucks mit den Werten mehrerer Konstanten verglichen. Wenn der Wert des Ausdrucks mit dem Wert einer Konstante übereinstimmt, werden die Anweisungen ausgeführt, die direkt nach dieser Konstante programmiert sind. Die Konstanten können dabei die folgenden Werte annehmen:
    Eine Ganzzahl (z. B. 5)
    Ein Bereich aus Ganzzahlen (z. B. 15..20)
    Eine Aufzählung aus Ganzzahlen und Bereichen (z. B. 10,11,15..20)
    Syntax
    Für die Anweisung "Mehrfach verzweigen" wird die folgende Syntax verwendet:
    SCL
    CASE <Ausdruck> OF
    <Konstante1>: <Anweisungen1>
    <Konstante2>: <Anweisungen2>
    <KonstanteX>: <AnweisungenX>; // X >= 3
    ELSE <Anweisungen0>
    END_CASE;

    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  7. #5
    Avatar von Münchnerjunge
    Münchnerjunge ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    30.07.2014
    Beiträge
    289
    Danke
    66
    Erhielt 33 Danke für 19 Beiträge

    Standard

    Wow, vielen Dank für die schnellen Antworten, auch wenn das ziemlich enttäuschend ist, da mir das deutlich mehr Arbeit macht.

    Schönen Abend noch!
    Freundliche Grüße aus München, der Stadt mit Herz


    There are 2#10 kinds of people, those who do the work & those who take the credit.

  8. #6
    Avatar von Münchnerjunge
    Münchnerjunge ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    30.07.2014
    Beiträge
    289
    Danke
    66
    Erhielt 33 Danke für 19 Beiträge

    Standard

    Zitat Zitat von Ralle Beitrag anzeigen
    Aus der Hilfe von TIA (F1 auf Case)


    Danke, die Konstanten haben mir des Öfteren weitergeholfen, hier aber hätte ich gerne die Lösung mit Variablen genommen, da einfacher und schneller - aber eben leider nicht möglich.
    Freundliche Grüße aus München, der Stadt mit Herz


    There are 2#10 kinds of people, those who do the work & those who take the credit.

  9. #7
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.632
    Danke
    432
    Erhielt 897 Danke für 727 Beiträge

    Standard

    Mit Variablen wäre das IF...THEN...ELSIF...ELSIF...

    Ist ja auch nicht soviel mehr Schreibarbeit und gehen auch andere Formate als INT.
    ��

  10. #8
    Avatar von Münchnerjunge
    Münchnerjunge ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    30.07.2014
    Beiträge
    289
    Danke
    66
    Erhielt 33 Danke für 19 Beiträge

    Standard

    Zitat Zitat von hucki Beitrag anzeigen
    Mit Variablen wäre das IF...THEN...ELSIF...ELSIF...

    Ist ja auch nicht soviel mehr Schreibarbeit und gehen auch andere Formate als INT.
    ��
    Jap, das wird dann ne schöne Schreibarbeit, wenn du ca 1000 Fälle über IF abfragen willst.
    Freundliche Grüße aus München, der Stadt mit Herz


    There are 2#10 kinds of people, those who do the work & those who take the credit.

  11. #9
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.632
    Danke
    432
    Erhielt 897 Danke für 727 Beiträge

    Standard

    Das wäre es dann bei case aber auch, denn das ist nichts anderes.
    Da steht auch nur wenn die Variable1 = 10 dann ...

    Mit if kannst Du dagegen if variable1 = variable2 schreiben.
    ��

  12. #10
    Avatar von Münchnerjunge
    Münchnerjunge ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    30.07.2014
    Beiträge
    289
    Danke
    66
    Erhielt 33 Danke für 19 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Korrekt, daher ja auch die Frage bzgl der CASE-Schleife mit Variablen statt Konstanten, dann wäre ich nämlich recht schnell fertig gewesen, da in den Variablen nicht immer 10 steht, sondern je nach Fall etwas anderes

    So ich mach Schluss für heute, bin meiner Zeit zwei Stunden voraus und morgen geht es früh weiter.

    Beste Grüße in den Nordharz und nochmals Danke für die Mühe.
    Freundliche Grüße aus München, der Stadt mit Herz


    There are 2#10 kinds of people, those who do the work & those who take the credit.

Ähnliche Themen

  1. if else case of in ST
    Von Pinoccio im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 15.07.2016, 08:53
  2. Case-Anweisung
    Von agoni88 im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 26.06.2014, 22:53
  3. Step 7 Unterschied zwischen IF- Schleife und While-Schleife
    Von Vokal12 im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 29.10.2013, 22:52
  4. Antworten: 25
    Letzter Beitrag: 06.07.2010, 23:25
  5. Switch CASE Anweisung
    Von sweber im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 14.12.2006, 22:49

Lesezeichen

Berechtigungen

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