kniffelige umsetzung bs34 zu blockmove ???

mknoellner

Level-1
Beiträge
45
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
So dann schiebe ich doch gleich noch mal eine frage hinterher..
ziel ist es den S5 baustein auf s7 umzusetzen. grob verstehe ich was da abläuft. es werden quell und ziel db nummern bzw dw nummer durch 4 mb's übergeben.
kann ich das ganze in s7 durch einen blockmove erstezen oder muss ich bei der ganzen adressschieberei noch was beachten. m.e. kopiert der baustein doch einfach nur von einem db in den anderen ab einem bestimmten dw. mit vorgegebener länge. aber warum in gottes namen so umständlich?


NETZWERK 1

BEZ :Q:DW E/A/D/B/T/Z: E BI/BY/W/D: BY
BEZ :Z:DB E/A/D/B/T/Z: E BI/BY/W/D: BY
BEZ :Z:DW E/A/D/B/T/Z: E BI/BY/W/D: BY
BEZ :ANZ E/A/D/B/T/Z: E BI/BY/W/D: W

0014 :L KB 1
0015 :L = Z:DB
0016 :>=F
0017 :BEB
0018 :L BS 34
0019 :+F
001A :LIR 1
001B :L KB 0
001C :+F
001D :SPZ = M001
001E :ADD BF -1
001F :LIR 1
0020 :L = Z:DW
0021 :-F
0022 :L = ANZ
0023 :-F
0024 :L KB 5
0025 :<F
0026 :BEB
0027 :L KB 0
0028 :L = ANZ
0029 :!=F
002A :BEB
002B :L KB 255
002C ::F
002D :T BS 62
002E :SVD 16
002F M002 :T BS 63
0030 :L KH 4300
0032 :OW
0033 :T BS 61
0034 :L BS 62
0035 :L KB 255
0036 :XF
0037 :L BS 63
0038 :+F
0039 :ADD BF -1
003A :T BS 60
003B :L = Z:DB
003C :L BS 34
003D :+F
003E :LIR 1
003F :L = Z:DW
0040 :+F
0041 :L BS 60
0042 :+F
0043 :MAB
0044 :L = Q:DB
0045 :L BS 34
0046 :+F
0047 :LIR 1
0048 :L = Q:DW
0049 :+F
004A :L BS 60
004B :+F
004C :TAK
004D :MBA
004E :B BS 61
004F :L KB 0
0050 :L BS 62
0051 :>=F
0052 :SPB = M001
0053 :ADD BF -1
0054 :T BS 62
0055 :L KB 255
0056 :SPA = M002
0057 M001 :BE
 
Hallo mknoellner,

mit dem L BS 34 holst Du Dir nur die Basis-Adresse der DBs im Arbeitsspeicher.
(Je nachdem welche CPU Du hast, aber der Code lässt darauf schliessen.)

Das eigendliche Kopieren wird mit dem B BS 61 gemacht. Dort wird irgendwo
mit L KH 4300 der Befehl TNW abgelegt.

Grundsätzlich kann man das aber mit dem SFC20 machen.

Zu der Frage warums so umständlich ist: Indirekte Adressierung ging in der S5
kaum weniger umständlich.

Grüße
Gebs
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
ja sorry... ist eine 135u-928B

musste man denn den kopiervorgang indirekt adressieren?
oder wurde es gemacht, um auf nummer sicher zu gehen, falls der db länger als 255 dw's ist?

gut dann werde ich mal versuchen die bausteine weiter in s7 umzusetzen...

danke erst mal.
wobei ich da noch eine weitere frage habe, aber das wird dann wohl eine neues thema werden. ;))
 
Hallo mknoellner,

der Befehl TNW kann nur 255 Worte kopieren. Das kann einer der Gründe sein, warum es so gemacht wurde.
Aber der Baustein ist (denke ich) geschrieben worden, um das Kopieren möglichst einfach zu machen.

Den Baustein selbst brauchst Du nicht konvertieren. Er kann durch den SFC20 komplett ersetzt werden.
Dabei ist nur zu beachten, dass TNW dekrementierend arbeitet und der SFC20 genau andersrum.

Grüße
Gebs
 
so eine antwort versüßt mir doch den feierabend ungemein.

und ist dazu noch sehr informativ.
ich muss aber ja trotzdem immer erst mal verstehen, was in bausteinen vor sich geht, sonst wird das mit dem umsetzen nüschts. und wenn einer wegfällt, umso besser. *freu*

dieses forum ist echt klasse.
danke
 
Zurück
Oben