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

Ergebnis 1 bis 3 von 3

Thema: Enums vergleichen

  1. #1
    Registriert seit
    23.11.2012
    Beiträge
    6
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Moinmoin,

    ich habe folg. Problem:

    Ich habe mir eine enumeration erzeugt:
    Code:
    TYPE SystemStates :
    (
    	i1:=0,
    	i2,
    	i3,
    	i4, 
    	i5
    );
    Jetzt sind 2 Variablen vom Typ SystemStates:
    Code:
    StateReq: SystemStates := i1;
    StateAck: SystemStates := i1;
    Jetzt möchte ich vergleichen:

    Code:
    IF StateReq>StateAck THEN
      BLABLA
    END_IF
    Genau dieser Vergleich funktioniert nicht;
    Ich dachte enums sind intern einfach Integer-Werte, oder muss ich das noch casten??

    Grüße


    Moppi
    Zitieren Zitieren Enums vergleichen  

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

    Standard

    Hallo,
    ENum's mögen unterschwellig INT's sein - sie werden aber vom System ganz sicher anders behandelt. Wenn du die um-castest wird das wohl funktionieren. Ich verstehe allerdings auch nicht wirklich, was dir der Vergleich auf größer hier bringt - im Grunde weißt du doch gar nicht wirklich (bzw. ist es dir eigentlich egal) welcher Wert welchem Status entspricht und wann ein Status größer oder kleiner als ein anderer ist. Von da her ist hier eigentlich nur Gleichheit oder Ungleichheit als Abfrage sinnvoll - und das wird das System sicherlich können ...

    Gruß
    Larry

  3. #3
    Registriert seit
    08.10.2010
    Beiträge
    107
    Danke
    6
    Erhielt 15 Danke für 15 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Liegt der Fehler vielleicht einfach nur daran, das Deine beiden die gleichen Werte haben?????
    Mit
    StateReq: SystemStates := i2;
    StateAck: SystemStates := i1;

    IF StateReq >StateAck THEN
    BLABLA:=BLABLA+1;
    END_IF

    funktioniert es bei mir. Der Blabla Zähler zählt hoch!

Ähnliche Themen

  1. DB Vergleichen
    Von Help im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 31.07.2012, 17:22
  2. 3 Werte vergleichen
    Von chipset im Forum Simatic
    Antworten: 3
    Letzter Beitrag: 24.04.2012, 21:19
  3. Realwerte vergleichen
    Von HorstPower im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 19.12.2011, 19:12
  4. S7 Graph vergleichen
    Von chickmc im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 01.09.2011, 14:17
  5. MW Vergleichen
    Von bigannang im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 23.11.2007, 09:44

Lesezeichen

Berechtigungen

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