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

Ergebnis 1 bis 4 von 4

Thema: Var_in_out

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

    Frage


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Frage zu CoDeSys 2.3:

    Kann es sein, dass CoDeSys Probleme hat, wenn bei Aufruf einer Function eine oder mehrere BOOL Variablen als VAR_IN_OUT deklariert werden?

    Ist es möglich, sowohl VAR_IN_OUT als auch VAR_INPUT gleichzeitig zu verwenden?
    Als Freelancer immer auf der Suche nach interessanten Projekten.
    Zitieren Zitieren Var_in_out  

  2. #2
    Registriert seit
    07.03.2004
    Beiträge
    4.369
    Danke
    946
    Erhielt 1.158 Danke für 831 Beiträge

    Standard

    Was für ein Problem zeigt sich denn bei Deiner Anwendung?

    Ich kann mich (dunkeö) daran erinnern das ich mal ein Problem hatte das sich in Verbindung mit Bool-Variablen ergeben hatte. Aber mit "Projekt alles bereinigen" war die Welt wieder in Ordnung.
    If you open your Mind too much, your Brain will fall out.

  3. #3
    Avatar von RobiHerb
    RobiHerb ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    09.11.2007
    Ort
    Rhein Main (Darmstadt)
    Beiträge
    663
    Danke
    61
    Erhielt 112 Danke für 80 Beiträge

    Beitrag

    Ich hatte etwa folgenden Aufbau:

    VAR_IN_OUT
    theData: DataStruct; (* eine komplexe Struct einer StateEngine *)
    bFlag0: BOOL;
    bFlag1: BOOL;
    END_VAR

    Im Prinzip werden die IN_OUT ja als Zeiger / Referenzen übergeben, das ist anscheinend in meiner Implementation mit der Ausrichtung auf Bits nicht
    möglich.

    Im Debugger im Single Step waren die bFlag0 und bFlag1 nicht initialisiert bei Eintritt in die Funktion. bFlag0 := ???, bFlag1 := ??? wurde angezeigt, beim nächsten Step dann Feierabend.

    Mein Workaround:
    VAR_IN_OUT
    theData: DataStruct; (* eine komplexe Struct einer StateEngine *)
    wFlags: WORD; (* Bit0 entspricht bFlag0; Bit1 bFlag1 *)
    END_VAR
    Als Freelancer immer auf der Suche nach interessanten Projekten.
    Zitieren Zitieren Var_in_out  

  4. #4
    Registriert seit
    30.08.2005
    Beiträge
    280
    Danke
    41
    Erhielt 96 Danke für 66 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Wenn du an einen VAR_IN_OUT vom Typ Bool ein Bit übergibst, dann sollte eine Fehlermeldung kommen. Denn es geht tatsächlich nicht.
    BIT's belegen ein Bit,
    BOOL jedoch ein Byte im Speicher (das ist wesentlich schneller auf einem normalen Prozessor). Normalerweise kann man beide gleichwertig verwenden, weil CoDeSys den einen Typ implizit in den anderen umwandelt. Bei VAR_IN_OUT funktioniert das jedoch nicht.

  5. Folgende 2 Benutzer sagen Danke zu Werner29 für den nützlichen Beitrag:

    kaputt (20.03.2010),RobiHerb (17.03.2010)

Ähnliche Themen

  1. VAR_IN_OUT mit Merker
    Von Blockmove im Forum CODESYS und IEC61131
    Antworten: 11
    Letzter Beitrag: 23.08.2011, 15:22
  2. Übergabe variables 2-dimensionales Array of INT als VAR_IN_OUT
    Von grosser_marco im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 09.09.2009, 08:47
  3. SCL FC mit VAR_IN_OUT Setzen/Speichern
    Von halorenzen im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 16.03.2006, 14:59

Lesezeichen

Berechtigungen

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