Schieberegister

johi
2011-07-18
2011-07-25
  • johi - 2011-07-18

    Hallo,
    eine Newbie-Frage:
    Wie kann ich eine Schieberegister, wie man es von der S7 kennt, in Codesys realisieren?
    Bin für jeden Tip sehr dankbar.

     
  • Schuero - 2011-07-19

    Moin.

    Wenn du Bits im Datentyp bewegen willst, kannst du das mit Bit-Shift IEC-Operatoren machen.
    Diese findest du unter den Befehlen: SHL,SHR,ROL,ROR

    Gruß Schuero

     
  • johi - 2011-07-22

    Danke, das hilft mir schon weiter.
    Nur, wie frage ich ein bestimmtes bit in einem word oder byte auf dessen Wert ab?

     
  • johi - 2011-07-22

    es sollte doch mit dem Befehl EXTRACT möglich sein, ein bestimmtes bit abzufragen?

     
  • r.freund - 2011-07-22

    In ganzzahligen Variablen können einzelne Bits angesprochen werden. Dazu wird an die Variable mit einem Punkt abgetrennt der Index des zu adressierenden Bits angehängt. Der Bit-Index kann durch eine beliebige Konstante gegeben werden. Die Indizierung ist 0-basiert.

    Beispiel:

    a : INT;
    b : BOOL;
    ...
    a.2 := b;

    Das dritte Bit der Variablen a wird auf den Wert der Variable b gesetzt.

    MfG,

    Roger

     
  • johi - 2011-07-22

    Ahhh... super, vielen Dank!!!

    Und um ein bit inder Variablen a zu beschreiben sage ich dann einfach:

    b := a.2

    korrekt?

     
  • r.freund - 2011-07-22

    Nein. Dazu schreibst Du:

    a.2 := b(ool);

    Oder das Bit aus a auslesen:

    b(ool) := a.2;

    MfG,

    Roger

     
  • johi - 2011-07-25

    Vielen Dank!!

     

Log in to post a comment.