Step 7 DB Byte in Bit aufdröseln

mariob

Level-3
Beiträge
2.052
Reaktionspunkte
276
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,
eine Anwendung erfordert es ein Byte eines DB in Einzelbits zu zerlegen. Nun ist die Symbolik für diesen Konstrukt eigentlich nicht vorgesehen, da man Bits, Bytes, Wörter, wasweisich definieren kann, wenn diese einmal steht, werden diesem Symbolen im DB Speicherbereiche zugewiesen. Eine überlappende Symbolik wie z.B. Motor_Byte 1 und dann daraus Motor_Byte1_Bit0 Motor_Byte1_Bit1 usw. ist scheinbar nicht möglich.
Ich sehe hier nun im wesentlichen zwei Wege, entweder ein globales Merkerbyte (nicht gut) oder eine direkte Adressierung im DB (eigentlich noch schlimmer, da eine Änderung eine Adreßverschiebung mit sich bringt).
Gibt es einen dritten, sauberen Weg den ich nicht kenne?

Gruß
Mario
 
Zuviel Werbung?
-> Hier kostenlos registrieren
In SCL nimmst du dafür die AT-Anweisung, in AWL greife ich mir die Adresse des Byte (am Anfang des FC/FB) und lade den Wert in ein Temp-Bitfeld (Adresse des 0. Bit für die indirekte Adressierung des Temp-Byte), mit den richtigen Namen für die Bits (das ist dann so wie ein Schmiermerkerwort, aber mit Temp und dadurch von "Außen" nicht zugänglich. Am Ende des FC/FB umgekehrte Vorgehensweise, falls ich die Bits verändert habe.
 
Zuletzt bearbeitet:
@Ralle: ok, das kann sein, in TIA Portal ist das etwas anders... hab mich schon so sehr daran gewöhnt.. wollte ja zuerst die SLICE-Funktion vorschlagen. Die Sache mit den Schmiermerkerwort ist auch top.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
danke Ralle, sowas hatte ich im Hinterkopf, aber wieder verworfen, der Gedanke war mir aber etwas zu abwegig. Scheint so als hätte ich falsch gedacht..... Irgendwie gibt es manchmal Probleme, die holen einen immer wieder ein:ROFLMAO:.

Gruß
Mario
 
Zurück
Oben