1 Byte in einzelne Bits auflösen

e-pappy
2014-09-04
2014-09-04
  • e-pappy - 2014-09-04

    Hi zusammen!

    ich dreh mich gerade irgendwie im Kreis, und komme nicht auf die Lösung des Problems (da gibt's doch sicher was von Codesys?)

    Ich habe eine Variable als Byte vorliegen und diese möchte ich einfach nur in Ihre 8 Bits auflösen!
    Byte-Variable -> bVar
    einzelne Bits -> xBit1, xBit2, xBit3, xBit4, xBit5, xBit6, xBit7, xBit8

    Wenn jetzt in der Byte-Variable bVar beispielsweise die Zahl 7 steht, dann sollen die entsprechenden Bits, also hier dann xBit1, xBit2 und xBit3 TRUE sein.
    Steht ne 4 drin, soll nur xBit3 TRUE sein und so weiter...

    Gibt es da einen Baustein für? Wenn ja, welcher?
    Oder wie kann ich das am besten realisieren?

    Danke

     
  • singleton - 2014-09-04

    Hi,
    das geht folgendermaßen:

    VAR
       myByte   : BYTE := 7;
       Bit0   : BIT;
    END_VAR
    Bit0 := myByte.0;
    
     
  • e-pappy - 2014-09-04

    singleton hat geschrieben:
    Hi,
    das geht folgendermaßen:

    VAR
       myByte   : BYTE := 7;
       Bit0   : BIT;
    END_VAR
    Bit0 := myByte.0;
    

    wusste gar nicht, dass man auf ein Byte mit dem Punkt auf ein einzelnes Bit zugreifen kann peinlich
    Hab die Variable jetzt erst umständlich in den Merkerbereich geschoben (%MB) um dann auf das Bit mit (%MX) zugreifen zu können...
    Aber das geht ja mit Dateitypen genau so...
    Oh man! Vielen vielen Dank dafür!

     

Log in to post a comment.