TIA Alle Bits eines DB auf einen Zustand setzen....

Tmbiz

Level-2
Beiträge
640
Reaktionspunkte
21
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, wie kann man alles bits ein einem DB auf 0 setzen?

Ich habe eine DB in dem 68 Variablen liegen. Ich muss bei einer Bestimmten Situation alle dies Var auf 0 setzen.

Dazu kann man ja alle unter einander schreiben

U Auslöser
R var 1
R var 2
R var 3
usw.

Aber geht das nicht auch einfacher in dem ich eine 0 auf den Speicher schreibe?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Moin,
als Ergänzung zu DeltaMikeAir noch einen weiteren Vorschlag.
Ich lege mir für solche Probleme je nach Anwendungsfall auch gerne mal einen zweiten, identischen DB zum initialisieren an. Gerade wenn man auch Strings in seiner Struktur hat, mögen die es durch den String-Header nicht mit 0 beschrieben zu werden. Das initialisieren ist dann in SCL auch nur noch ein Einzeiler.
 
bei überschaubarer DB größe würd ich tatsächlich einfach 0en reinschreiben:
L DINT#0
T DB?.DBDy

das ganze dann noch mal mit y+4 für bit 32 bis 63.

für bit 64 bis 68 dann entweder einzeln oder den DB erweitern bis man auch hier einfach 0en drüberbügeln kann.
alternativ ggf. mit wort-verknüpfung:
L DB?.DBDy+8
L 16#FFF0
UW
T DB?.DBDy+8
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Code:
L     0
      T     %DB1.DBB0
      T     %DB1.DBB1
      T     %DB1.DBB2
      T     %DB1.DBB3
      T     %DB1.DBB4
      T     %DB1.DBB5
      T     %DB1.DBB6

Ich habe das nun so gemacht. Aber ich bin mir nicht sicher, ob ich die Bytes von 0 - 6 aufrufen muss. Ist das so doppelt beschrieben?
 
das ist prinzipiell korrekt so.
wenn du byteweise transferierst, mußt du jedes byte einzeln beschreiben.

mein vorschlag mit
L DINT#0
T DB1.DBD0
beschreibt halt gleich die ersten 4 bytes des DB auf einen rutsch.
 
"T DBx.DBBy" - derartiges unsymbolisches direktes "rumschmieren" im Speicher geht allerdings nicht in "optimiertem" Speicher, sondern nur bei Speicher mit Standard-Zugriff. Ein späteres Konvertieren solchen Codes wird aufwändiger.

Ist die verwendete CPU geheim ;) oder warum finde ich hier keine Antwort auf die Nachfrage von DeltaMikeAir?

Harald
 
Zurück
Oben