Step 7 Migration S5 zu S7

Unknown2806

Level-1
Beiträge
4
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Servus,
ich habe die ehrenvolle Aufgabe bekommen eine Anlage von S5 zu S7 zu migrieren. kann mir wer folgendes erklären-->

In S5:

T MW 225
B MW 225
L DW 0
T MW252
I 15
T MB 222
***

In S7 nach dem konvertieren:

T MW 225
T #conv_akku1
L STW
T #conv_stw
L MB 226
SLW 4
LAR1
L #conv_akku1
DBW [AR1,P#0.0]
T MW 252
INC 15
T MB 222

Was ist hier beim konvertieren passiert? Wo kommen die neuen Temps her und wie ist das zu verstehen?

Gott zum Gruße
 
Die Nr. des zu aus dem geöffneten DB zu lesenden DWs (geöffneter DB und die im Akku1 angelieferte DW-Nr sind hier nicht zu erkennen)
werden in die bei S7 erforderliche BitAdresse umgerechnet per SLW 4 = schiebe um 4 BitPositionen nach links = Multplikation mit 16.
Dann wird noch die BasisAdresse dazugegeben und das Datenwort gelesen.

BitAdr = 8 * ByteAdr. Weil in S7 aber die Adresse bytebezogen ist und bei DBs in S5 wortbezogen, wird zusätzlich noch mit 2 multipliziert.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Ja über das SLW4 bin ich auch schon öfters darüber geflogen :) .
Wie schon gesagt hier werden eigentlich zwei Aufgaben in einem Befehl erledigt.
SLW3 damit es im Pointerformat dargestellt wird und nochmals ein SLW1 damit es für die in der S7 übliche Byteadressierung anstatt der S5-Wortadressierung passt.
 
Danke für eure Antworten!
Wo kommt denn "AUF DB [conv_index];" her und was soll das für ein DB sein? Conv_index ist als Tempvar als word gelistet. Wie kann daraus ein DB generiert werden? Und warum wird durch TAK der Inhalt von Akku1 mit dem von Akku2 getauscht?

Hier nochmal als komplettes Netzwerk in S5 und S7:

S5

L KB 0
T MW 204
T MW 242
LW = VERW
T MW 202
LW = DDAT
T MW 208
B MW 202
A DB 0
L DW 10
T MW 200
UN M 201.0
BEB
L DW 11
I 100
T MW 227
B MW 227
L DW 0
T MW 254
L DW 12
I 50
T MW 225
B MW 225
L DW 0
T MW 252
I 15
T MB 222

S7

NETWORK
L 0;
T MW 204;
T MW 242;
L #VERW;
T MW 202;
L #DDAT;
T MW 208;
T conv_akku1;
L MB 203;
T conv_index;
TAK;
L conv_akku1;
AUF DB [conv_index];
L DBW 20;
T MW 200;
UN M 201.0;
BEB;
L DBW 22;
INC 100;
T MW 227;
T conv_akku1;
L STW;
T conv_stw;
L MB 228;
SLW 4;
LAR1;
L conv_stw;
T STW;
L conv_akku1;
L DBW [ AR1, P#0.0 ];
T MW 254;
L DBW 24;
INC 50;
T MW 225;
T conv_akku1;
L STW;
T conv_stw;
L MB 226;
SLW 4;
LAR1;
L conv_stw;
T STW;
L conv_akku1;
L DBW [ AR1, P#0.0 ];
T MW 252;
INC 15;
T MB 222;
 
Kommt von
B MW 202
A DB 0

Die eigentlikche DB Nummer steht hier im MW202 und wird mit dem B"earbeite" Befehl in der folgende Zeile verwendet. Also nicht der DB0 sondern der DB[MW202] wird geöffnet. Genau so macht es das konvertierte Programm nur im S7 Stil. Die Temp Variable wir vorher mirt dem MB203 beschrieben.
 
Zurück
Oben