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

Ergebnis 1 bis 2 von 2

Thema: CoDeSys V3 Word in Struct um bitweise auszulesen

  1. #1
    Registriert seit
    03.04.2014
    Beiträge
    5
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Miteinander

    Ich habe ein kleines Problem. Ich würde gerne einen FU über Modbus steuern. Dazu empfange ich ein Statuswort von diesem. Jedoch möchte ich die Einzelnen Bits des Wortes auslesen (z.B. Statuswort.Einschaltbereit). Habe mir dafür auch einen Struct angelegt. Nun meine Frage. Kann ich den Struct irgendwie definieren, dass er als Wort "erkannt" wird und so am Ende meine einzelnen Bits habe? Weil jetzt habe ich das Problem, dass er mir Das Wort einfach in die ersten beiden Bool schreibt und so natürlich dort steht, dass der Wert nicht angezeigt werden kann. Was verständlich ist, da ich ja ein Wort nicht in zwei bool schreiben kann.

    Besten Dank

    Marco
    Zitieren Zitieren CoDeSys V3 Word in Struct um bitweise auszulesen  

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

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Marco,

    Grundsätzlich belegen in CODESYS BOOL-Variablen ein Byte. In CODESYS V3 gibt es jedoch auch die Möglichkeit den Datentyp BIT zu verwenden.
    Der Standardweg für dein Problem ist eine Union. Ich demonstrier das mal mit einem Byte:

    Code:
    TYPE Bits :
    STRUCT
    	bit0 : BIT;
    	bit1 : BIT;
    	bit2 : BIT;
    	bit3 : BIT;
    	bit4 : BIT;
    	bit5 : BIT;
    	bit6 : BIT;
    	bit7 : BIT;
    END_STRUCT
    END_TYPE
    TYPE BitByteUnion :
    UNION
    	byte0 : BYTE;
    	bits0_7 : Bits;
    END_UNION
    END_TYPE
    
    PROGRAM PLC_PRG
    VAR
    	myUnion : BitByteUnion;
    	test: BOOL;
    END_VAR
    myUnion.byte0 := 16#55;
    test := myUnion.bits0_7.bit0;
    Alternativ sparst du dir die Union und schreibst einfach mit einem Pointer in deine Bit-Struktur


    Code:
    PROGRAM PLC_PRG
    VAR
    	myBits : Bits;
    	pbyte : POINTER TO BYTE;
    	test: BOOL;
    END_VAR
    pbyte := ADR(myBits);
    pbyte^:= 16#55;
    test := myBits.bit0;
    Bernhard Werner
    3S-Smart Software Solutions (CODESYS)

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

    mthali (03.06.2014)

Ähnliche Themen

  1. TIA SCL: WORD in 16 Bit lange STRUCT schreiben
    Von danube im Forum Simatic
    Antworten: 20
    Letzter Beitrag: 17.12.2013, 23:51
  2. Word in struct
    Von WinniePooh im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 11.10.2012, 12:47
  3. CoDeSys Visu und Struct
    Von -ASDF- im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 14.11.2011, 10:39
  4. struct als word in HMI
    Von Züttu im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 06.06.2011, 16:22
  5. Codesys Array of Word -> Beliebiges Struct
    Von MSB im Forum CODESYS und IEC61131
    Antworten: 8
    Letzter Beitrag: 01.01.2008, 21:47

Lesezeichen

Berechtigungen

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