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

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

Thema: CodeSys v3 - Variablennamen aus structur auslesen

  1. #1
    Registriert seit
    04.01.2008
    Ort
    Wien
    Beiträge
    772
    Danke
    136
    Erhielt 39 Danke für 35 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    kann ich aus einer Structure eine Variable ermitteln?

    Type X
    struct
    a : Bool;
    b : Bool;
    res : Bool; // not used
    end_struct
    end_type



    var
    test : X;
    idx : int;
    end_var



    wie kann ich nun die Variable test.res ermitteln?

    ergebnis sollte idx = 2 sein?
    irgendetwas ist ja immer...
    ING. Gerald Miedler
    Zitieren Zitieren CodeSys v3 - Variablennamen aus structur auslesen  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard

    Hallo,

    vielleicht so :
    Code:
    myBool := test.res ;
    
    oder ...
    
    if test.res then ...
    ... oder was war deine Frage ...?

    Gruß
    Larry

  3. #3
    Gerri ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    04.01.2008
    Ort
    Wien
    Beiträge
    772
    Danke
    136
    Erhielt 39 Danke für 35 Beiträge

    Standard

    ich habe einen datenstream der maximal 100 bits versenden kann.
    Acteull werden an die 50 bits genutzt.
    diese sind in einer struktur definiert.
    ab 51 heissen die variablen einfach nur resxxx.
    die will ich im stream natürlich nicht mitsenden.
    also brauche ich die aktuelle anzahl der verwendetetn bits meiner struktur und die geht bis zum ersten resxxx
    den index 50 brauche ich nun.
    dazu muß man den symbolischen namen der variablen in der struktur ermitteln.
    irgendetwas ist ja immer...
    ING. Gerald Miedler

  4. #4
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard

    Ähhh ... und wie passt das mit der oben beschriebenen Struktur zusammen ?

    Wenn du die Anzahl der gesetzten Bits in einem Bit-Array feststellen willst oder wenn du feststellen willst, wieviele Bits in einer Folge gesetzt sind so geht das nur über eine Schleife in der du die von dir gewünschten Kriterien überprüfst.
    Dafür kann man natürlich auch ein Code-Beispiel machen - dafür wäre es aber wichtig zu wissen, was du da wirklich hast ...

    Gruß
    Larry

  5. #5
    Gerri ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    04.01.2008
    Ort
    Wien
    Beiträge
    772
    Danke
    136
    Erhielt 39 Danke für 35 Beiträge

    Standard

    strukt.jpg das ist die STruct einer Variablen. diese kann in Zukunft erweitert werden. Gestreamt soll alles werden bis zum ersten SPARE_XXX. also brauche ich die Boolanzahl. in diesem Fall 41
    irgendetwas ist ja immer...
    ING. Gerald Miedler

  6. #6
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard

    Naja ... nach den Namen suchen kannst du hier nicht.
    Wenn es um einen Status geht dann könntest du das wie von mir beschrieben machen. Dafür müßtest du "nur" eine AT-Sicht auf deine Struktur machen, die die ganze Struktur als gleich großes Bit-Array darstellt und dann diese AT-Sicht durchsuchen.

    Gruß
    Larry

  7. #7
    Gerri ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    04.01.2008
    Ort
    Wien
    Beiträge
    772
    Danke
    136
    Erhielt 39 Danke für 35 Beiträge

    Standard

    ja, schon klar, es geht leider um die Variablenbezeichnung...
    irgendetwas ist ja immer...
    ING. Gerald Miedler

  8. #8
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.718
    Danke
    398
    Erhielt 2.400 Danke für 2.000 Beiträge

    Standard

    Meines Wissens geht das nicht.

    Du könntest aber vielleicht mal bei Beckhoff anrufen und nachfragen, ob es eine Art Reflektion von Variablen-Namen gibt - ich kann es mir aber nicht vorstellen ...

  9. #9
    Registriert seit
    03.09.2009
    Beiträge
    129
    Danke
    15
    Erhielt 19 Danke für 19 Beiträge

    Standard

    Servus,

    ich kann mir auch nicht vorstellen, dass das funktioniert. Aber warum definierst du nicht einfach eine Konstante "SizeStruct" mit dem Wert 50? Sollte das Programm irgendwann einmal erweitert werden, muss der Programmieren nur noch die Konstante ändern und fertig.

  10. #10
    Gerri ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    04.01.2008
    Ort
    Wien
    Beiträge
    772
    Danke
    136
    Erhielt 39 Danke für 35 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    naja, ich kann schon die SPARE_XXX mit Streamen und ins leere laufen lassen. Es wäre nur von der Performance schöner.
    Die Sache ist, das es sich um einen Standard handeln wird für die nächsten Jahre und Vertretungen von Indien bis Amerika damit arbeiten. Daher muß so viel als möglich gekapselt und automatisiert werden.
    irgendetwas ist ja immer...
    ING. Gerald Miedler

Ähnliche Themen

  1. Zeitmessung in Structur Text
    Von Leto im Forum CODESYS und IEC61131
    Antworten: 18
    Letzter Beitrag: 03.04.2012, 11:58
  2. Variablennamen mit VB auslesen
    Von Adenauer im Forum HMI
    Antworten: 0
    Letzter Beitrag: 26.08.2010, 08:50
  3. Einausgaenge in Structur initialisieren
    Von Ebias im Forum CODESYS und IEC61131
    Antworten: 27
    Letzter Beitrag: 06.03.2009, 18:30
  4. 3 Byte in eine Structur laden
    Von INST im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 09.02.2009, 09:41
  5. Exceltabelle auslesen (Codesys)
    Von na5o5 im Forum Programmierstrategien
    Antworten: 6
    Letzter Beitrag: 30.10.2007, 10:32

Lesezeichen

Berechtigungen

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