TIA bitweise auf ein byte in einem db zugreifen

Lukas_Ink

Level-1
Beiträge
15
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, ich bin neu in der SCL Welt ...

ich möchte das bit 7 einer Byte Variablen aus einem DB abfragen.
Wie geb ich das von der Syntax her ein?
 
Zuletzt bearbeitet:
Du kannst entweder absolut darauf zugreifen, also im DB nachsehen, welches Byte dort belegt ist und dann z.B. DB1.DBX10.7

Oder du schaust dir mal in der Hilfe von TIA und Step7 Classik (die ist oft besser) und hier im Forum den "AT"-Befehl an (Suche im Forum nach "AT"). Damit kannst du in SCL eine AT-Ansicht auf das ein Byte legen, welche z.B. aus 8 Bit besteht.
Das geht nicht direkt mit den DB.xxx, du mußt dazu die Daten im FC erst umkopieren. Sieh dir das zuerst an, dann wieder fragen.
 
Da muss noch absolut adressiert werden (DB?.DBX?.?).
Muß nicht. Das geht auch symbolisch, indem man mit einer passenden Bitmaske ver-UND-et und schaut, ob dabei 0 oder <>0 rauskommt. Eventuell kann man auch eine AT-Sicht drüber legen. Oder aufwendiger: man verschiebt das zu testende Bit zum niederwertigsten Bit und konvertiert dann ..._TO_BOOL
Code:
BoolVar := (MyByte AND 2#10000000) <> 0 ;
oder
BoolVar := BYTE_TO_BOOL( SHR(IN:=MyByte, N:=7) ) ;

Nachtrag: speziell das höchstwertige Bit abfragen kann man auch durch Vergleich
Code:
BoolVar := BYTE_TO_INT(MyByte) >= 128 ;

Harald
 
Zuletzt bearbeitet:
Zurück
Oben