DB Inhalt überschreiben

Black Scorpion

Level-1
Beiträge
82
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Servus Leute,

ich mal wieder. Ich komme leider nur sporadisch an eine S7-Steuerung zum Programmieren. Daher mein Lerntempo auch sehr langsam.

Ich hab mal ne Frage. Ich habe einen Datenbaustein voller Chars. Und jetzt würde ich gerne diese am Ende eines Zyklusses nachdem ich ihn ausgelesen habe auch gerne wieder mit Leerzeichen überschreiben. Geht das und wenn wie kann ich das machen?? Hab da ein Brett vor dem Kopf.

Bin über jeden Hinweis dankbar.
 
Sfc 21 "fill"

Servus Leute,

ich mal wieder. Ich komme leider nur sporadisch an eine S7-Steuerung zum Programmieren. Daher mein Lerntempo auch sehr langsam.

Ich hab mal ne Frage. Ich habe einen Datenbaustein voller Chars. Und jetzt würde ich gerne diese am Ende eines Zyklusses nachdem ich ihn ausgelesen habe auch gerne wieder mit Leerzeichen überschreiben. Geht das und wenn wie kann ich das machen?? Hab da ein Brett vor dem Kopf.

Bin über jeden Hinweis dankbar.


Der Zauberbaustein heist

SFC 21 "FILL"


Quellpointer BVAL

BVAL : DB50.DBW0 (wobei das Wort, also der Pointer auf das Wort aus zwei Char's besteht. DB50.DBB0:=' ' und DB50.DBB1:=' ' die jeweils 'EinLeerzeichen' oder 'beliebiges Zeichen' sind

Zielpointer

BLK: P#DB100.DBX0.0 BYTE 1000


einfach aufrufen und schon ist der DB100 - Länge 1000 BYTE mit 'Leerzeichen' überschieben.

Gruß

IBFS
 
oder so

definiere im temp-bereich eine variable vom typ byte (bval_fill).
diese variable liegt am besten dort als ERSTE var also im L0.0 da diese für die sfc21 ABSOLUT verwendet wird.

hab hier jetz kein s7 daher ist die syntax nicht korrekt
Code:
L 32 //ascii dez-code für leerzeichen; hiermit wir der dest gefüllt
t bval_fill //bval_fill muss in lb0 liegen
call sfc21
source: p#L0.0
ret_val: retval //temp-var
dest: P#DB100.DBX0.0 BYTE 1000
 
geht noch einfacher:

Code:
L ' '
T #leer      // Temp-Variable vom Typ Byte
 
CALL  "BLKMOV"
SRCBLK :=#leer
RET_VAL:=#RETVAL_SFC21
DSTBLK :=P#DB100.DBX 0.0 BYTE 1000

symbolisch Adressiert kann #leer liegen wo es will
 
Zurück
Oben