Step 5 Hilfe zu einer Bearbeiteitungsoperation gesucht

matziane

Level-1
Beiträge
120
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,
ich habe ein Programm mit folgendem Code.
In einigen Steuerungen habe ich dieses Programm bereits in einer leicht abgeänderten Form laufen.
In diesen anderen Steuerungen stehen mir noch einige Merkerbereiche als Schmiermerker zur Verfügung, jetzt muss ich dieses Programm in die nächste Steuerung einbinden in der nicht ein mal ein zusammenhängendes Merkerwort frei ist.

Habe angefangen das ganze so umzustricken, dass es komplett ohne Schmiermerker aus kommt, also nur über Datenbaustein.

Bei der Bearbeitungsopeation in Zeile 18 weiss ich allerdings nicht weiter.
Im Moment nutze ich für den Zeiger das MW 210, dieses wird aber nicht mehr möglich sein, also möchte ich dafür ein DW in einem DB nutzen.
Habe für alles einen Arbeits DB (ADDB) und einen DB der als Datencontainer (DBIP) dient.
Habt ihr eine Idee wie ich das Ganze elegant lösen kann?

1: L DL 240
2: L KF +3
3: !=F
4: SPB =RDDB
5: SPA =ENDE
6: RDDB: UN D 250.0
7: SPB =ENDE
8: L KF +0
10: T DW 235
11: T DW 236
12: T DW 237
13: L KF +1
14: T DR 242
15: DSCH: L DL 241
16: T MW 210
17: B =DBIP
18: B MW 210
19: L DW 0
20: B =ADDB
21: T DW 235
usw.


Vielen Dank im voraus
 
Ohne Deinen Baustein jetzt überhaupt anzusehen:
Das Merkerwort, das Du als Schmiermerker benutzen willst, an Anfang des Bausteins in ein DB-Wort retten und am Ende des Bausteins wieder restaurieren. Dazwischen kannst Du das MW für Bearbeitungsoperationen usw. benutzen.
Gruß
Erich
 
Bei vielen S5 kann man auch einfach die freien eingangswörter als Schmiermerker nutzen.
 
Guten Morgen,
habe es jetzt auf diese Art gelöst.

Gefällt mir zwar nicht so 100% gut, da ich hier für in meinem DB der als Datencontainer dient ein Datenwort dafür nutze.
Würde statt dessen lieber ein Datenwort in meinem Arbeits DB nutzen.

Vielleicht habt ihr noch eine Idee wie ich es über meinen Arbeits DB lösen kann.


1: L DL 240
2: L KF +3
3: !=F
4: SPB =RDDB
5: SPA =ENDE
6: RDDB: UN D 250.0
7: SPB =ENDE
8: L KF +0
10: T DW 235
11: T DW 236
12: T DW 237
13: L KF +1
14: T DR 242
15: DSCH: L DL 241
16: B =DBIP
17: T DW 8
18: L DW 8
19: B DW 8
20: L DW 0
20: B =ADDB
21: T DW 235

Das Merkerwort, das Du als Schmiermerker benutzen willst, an Anfang des Bausteins in ein DB-Wort retten und am Ende des Bausteins wieder restaurieren. Dazwischen kannst Du das MW für Bearbeitungsoperationen usw. benutzen.
Hört sich prinzipiell sehr geschickt an, möchte es aber lieber komplett über meinen Arbeits DB lösen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Was für ne CPU hast du am Laufen? In Abhängigkeit davon kannst du auch diverse BS- Bereiche oder S-Bereiche als Schmiermerkerbereich misbrauchen....

Gesendet von meinem GT-N7100 mit Tapatalk 2
 
945 hat keine S merker.
aber die ew gehene.

L KF 123
T EW 80

tu dies und das....


L EW 80
... Funktioniert wie bei temp. Variablen...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
945 hat keine S merker.
aber die ew gehene.

L KF 123
T EW 80

tu dies und das....


L EW 80
... Funktioniert wie bei temp. Variablen...

? Sicher das sie keine S-Merker hat?

eqyhu7y9.jpg


6ema2eny.jpg




Gesendet von meinem GT-N7100 mit Tapatalk 2
 
Jetzt nicht mehr :)
Bei der 946 war ich mir sicher, aber in dem fall hat die 945 die auch.
 
Hallo matziane,

ich kenne dein restliches Programm nicht, aber unter eingefleischten S5-Programmierern waren die Merker ab 200 alle als Schmiermerker benutzt. Also solltest du vielleicht mal nachschauen, ob das in deinem Programm nicht genauso gehandhabt wird. Dann hast du genügend freie Merker die du für deine indirekte Bearbeitung nutzen kannst.
P.S.: Ich habe vor 20 Jahren auch selbst genügend S5-Programme geschrieben und mich an diese Regel gehalten.

Grüße
Bill Hearts
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wieso kannst du das 210er MW eigentlich nicht mehr nutzen? Selbst viele Siemensbausteine nutzen Merker Oberhalb 200 als Schmiermerkerbereich. S bietet/bot auch Bausteine an, um die Bereiche zu sichern/widerherzustellen, wenn entsprechende Manipulationen in dem Bereich durch Aufrufe in Zeit-OBs / Interrupts statfinden (Siehe LargoDs Beitrag).
 
benutzt man siemens-bausteine (also die mitgelieferten), sollte man tunlichst auf den merkerbereich 200-254 verzichten. die werden da überall als schmiermerker verwendet. aber der s-merkerbereich gibts in der 945 auf jeden fall.
ich meine aber irgendwas im kopf zu haben, das der bearbeite-befehl mit s-merkern nicht geht. ist schon was länger her....
 
Zuletzt bearbeitet:
Zurück
Oben