Step 7 Bit Zugriff in Byte S7-Classic

FUP ist da blöde :cool:
Du könntest das Byte in ein Array mit 8 Bit moven und dann kommst an das Bit einfacher ran.
Umständlich, aber besser als über Lokaldaten.
 
Kann ich in einem FB, in einem Byte der statischen Variablen ein einzelnes Bit setzen.
Ja, einfach die Bits als Bool deklarieren. :cool:

Vermutlich meinst du aber Byte- und Bit-Zugriff auf denselben Speicherbereich. Das geht in jeder Programmiersprache mit maskieren und OR und AND, oder notfalls umkopieren zwischen der Byte-Variable und einer Struktur mit Bool-Variablen. Und man kann auch direkt auf den Adressen rumpoken, wenn man die Adresse kennt und sich gerne Stolperfallen ins Programm einbaut ... ;)
 
Beispiel setzt und rücksetzt das gleiche Bit

bitsetzenrucksetzen-png.94355
Das funktioniert, aber ist es lesbar ?
Man muss wissen das B#16#10 = 2#0001 0000, und B#16#EF = 2#1110 1111.

Ich hatte in STEP7 Klassik einen Merker Byte dafür verwendet. Man kann mit Merker Addressen ausnutzen dass man dieselbe Addresse mit überlappender Symboldeklarationen addressieren kann. Dann wird es einfach und lesbarer (nur meiner Meinung).
Hier gezielt nur schreiben einselne BOOLS innerhalb von einen BYTE:
1771493681347.png
Und hier wenn den die addressierte BOOLs gesschrieben werden sollen, die Rest auf Null gesetzt:
1771493787584.png
 
Zurück
Oben