Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched. Close

Aus Enumeratoren die Strings herausziehen

UweWinkler
2006-03-14
2006-03-16
  • UweWinkler - 2006-03-14

    Hallo zusammen,

    ich suche eine Lösung für ein eigentlich einfaches Problem.

    Ich verwende häufig Enumeratoren für Aufzählungen irgendwelcher Art.

    Um diese Werte in LOG-Files besser darstellen zu können, würde ich diese gerne als STRING herausziehen.

    In der Visualisierung geht das wunderbar, dort wird für Enummeratoren immer definierte STRING angezeigt.

    Wie komme ich aber im "normalen" Code an die Strings.

    Gibt es eine einfache Möglichkeit.

    Beispiel:

    TYPE AMPEL

    rot, ( 0 )

    grün, ( 1 )

    gelb, ( 2 )

    END_TYPE

    nAmpelWert AMPEL;

    strAmpelWert: STRING;

    nAmpel := rot;

    strAmpelWert := xxxxx(nAmpel); ( in strAmpelWert hätte ich gerne 'rot' stehen)

    Danke im voraus für die Hilfe

    Gruss

    Uwe

     
  • CuBe - 2006-03-16

    Da Enums mWn vom Compiler nur als Platzhalter verwendet werden seh ich da fürs "Einfache" ein Problem.

    d.h.

    Var
    Ampelfarbe : Ampel (rot,gelb,grün);
    End_Var
    Ampelfarbe := rot
    

    sieht nach dem Compilieren so aus:

    Var
    Ampelfarbe : Byte;
    End_Var
    Ampelfarbe := 0
    

    ein einfaches "rausziehen" des Strings ist da schwer

    Alternativ kannst du aber für jeden Enum eine eigene Funktion schreiben, in der du (z.B. mit CASE OF) je nach eingegebener Zahl einen String zurücklieferst.

    Dies währe meine Lösung.

     

Log in to post a comment.