S7-200 Variablenspeicher löschen

jokermic

Level-1
Beiträge
16
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich habe eine S7-200 CPU226 und möchte einen großen Teil des Variablenspeichers (fast 1000 Byte) löschen bzw. die ASCII Zeichen löschen ('$00'). Ich habe das mit einem BLKMOV_D (BMD) Befehl versucht. Also der BLKMOV Befehl wird bei einer positiven Flanke eines Signals ausgeführt. Dann wird eine Doppelwortvariable (die ich mit '$00$00$00$00' fest definiert habe) ab VD1000, 250 mal kopiert.

Mein Problem ist aber, das die ersten DW schon auf 0 NUL stehen, aber dann auf einmal komische Zeichen generiert werden. Das kann ich gar nicht gebrauchen.

Was mache ich falsche oder gibt es vielleicht noch einen anderen Weg den Variablenspeicher zu löschen?
 
Fill

Hallo jokermic,

wie der Name schon sagt, überträgt (kopiert) die Operation BLKMOV_D (BMD) einen Speicherbereich der bei IN beginnt zu einem anderen Speicherbereich der bei OUT beginnt.
Wenn Du einen Speicherbereich löschen - also alle Werte mit dem gleichen Inhalt (Bitmuster) beschreiben - willst, dann solltest Du die Operation FILL_N (FILL) benutzen.

Code:
LD     M10.0
EU
FILL   '$00$00', VW1000, 250
FILL   '$00$00', VW1500, 250

Harald
 
Danke Harald für den Tipp. Werde den mal testen und mich mit dem Ergebniss zurückmelden.
Hört sich aber schlüssig an.

@Frank
Wenn meinst? Und was für 10 gleiche Beiträge?
 
...ich meine mxh521. In seinen 10 Beiträgen erwähnt er immer das Selbe. Ich denke er will nur auf seine HP aufmerksam machen.

Schönes Wochenende

Frank

Ups, ich sehe gerade da hat schon jemand reagiert. Danke!!
 
Zuletzt bearbeitet:
So habe es ausprobiert und klappt prima. Danke für den Tipp. :ROFLMAO:
Zum löschen von insgesamt ca. 9100 Bytes mit Hilfe einer For Schleife, benötige ich eine Zykluszeit von ca. 25ms. Was auf jeden Fall vertretbar ist.
 
Zurück
Oben