S5 (CPU928B) BS144 schreiben - aber wie?

VG21

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

ich bin eher in der S7-Welt zu Hause, daher meine vielleicht etwas naive Frage:
Ich habe von einem Kunden den Auftrag erhalten, auf seiner ca. 12 Jahre alten Anlage mit einer S5 (CPU928B Nr. 6ES5928-3UB12) einige kleine Ergänzungen am Programm vorzunehmen. Bereits bei der ersten sehr kleinen Ergänzung hatte ich das Problem, dass trotz Komprimieren kein Speicherplatz mehr vorhanden ist und der Upload abgebrochen wurde.
Auf der Anlage ist der größtmögliche Speicherchip mit 64kB gesteckt, also keine Möglichkeit mehr, den Speicher zu vergrößern.
Siemens gab mir den Tipp, das Bit 0 im Systemdatenwort BS 144 auf "1" zu setzen, um den internen DB-RAM nutzen zu können (nennt sich "alternatives Laden von Datenbausteinen in das DB-RAM").
Meine Frage ist nun, wie ich das machen kann?
Kann ich am PG mit der STEP5-Software das Bit "manuell" setzen? Falls ja, wie (Menüpunkt?)?
Oder geht das nur programmtechnisch? Wie sieht dann der Code dafür aus? Muss ich das in einem FB machen?
Falls ich das nur programmtechnisch machen kann: wie bekomme ich den Code auf die Kiste? Ich habe dort ja keinen Platz mehr, auch nur irgendeine Ergänzung hochzuladen. Besondere Schwierigkeit bei der Anlage ist, dass sie im 24-Stunden Dauerbetrieb läuft und nicht abgeschaltet werden darf. Deshalb habe ich bisher auch noch nicht groß mit den Systemfunktionen am PG "herumgespielt".

Vielen Dank im voraus
MfG
Volker
 
Zuletzt bearbeitet:
Laut Operationsliste für S5-135U/155U geht das mit normalen Transferoperationen. z.B.:
L Wert
T BS 123

Aber, obwohl es einen 256Worte langen Systemdatenbereich (BS) gibt, soll die Operation T BS xx nur von BS 60 bis 63 gehen. (Tabelenheft Best-Nr.: 6ES5997-3UA12, A02). Im Buch von Hans Berger "Automatisieren mit Simatic S5-155U sind aber die Transferfunktionen gelistet mit "T BS 0 bis 255".

Also ausprobieren, sollte es nicht direkt gehen gehts vielleicht noch über den Umweg der B - Operationen.

Wenn du keinen Platz mehr im Speicher hast und die Kiste nicht stoppen darf, brauchst du ja auch kein Anlauf-Programm. Also lösch die ganzen Anlauf-OBs mit all den PBs, FBs die NUR über diese OBs aufgerufen werden, mach deine Tests mit dem jetzt verfügbaren Speicher und spiel das Zeug am ende wieder drauf.

Viel Erfolg
Corrado
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Vielleicht hilft dir das Weiter

Wir haben bei uns dieselbe CPU. Irgendwann habe ich einmal urlöchen und die Daten neu übertragen müssen. Das hat nach der Anleitung im Anhang funktioniert. Probier es doch mal ab Punkt 5

Viel spass dabei
 

Anhänge

  • AG_Urlöschen.jpg
    AG_Urlöschen.jpg
    90,2 KB · Aufrufe: 67
Ich probiere es mal aus

Danke Jonny für Deinen Tipp. Ich werde die nächsten Tage einen Termin beim Kunden machen und mal sehen, ob's klappt. Ich werde hier dann berichten ...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Ich poste mal meinen FB135 mit dem ich das verschieben in das interne
DB-RAM erledige:

Code:
Netzwerk 1                   DB's in das DB-RAM verschieben
Name :DBRAM                                      DB's in das interne DB-RAM
 
     :UN  S    0.0
     :S   S    0.0
     :L   KF +255                                Konstante 255 laden
     :T   MB 252                                 nach MB 252 transferieren
M002 :L   BS  34                                 Basisadressliste DB-Adressen
     :L   MB 252                                 Lade MB 252
     :+F                                         addieren
     :LIR      1                                 Anfangsadresse des DB laden,
     :L   KH 0000                                dessen Nr. im MB 252 steht
     :!=F
     :SPB =M001                                  Wenn Anfangsadresse = 0
     :TAK                                        dann springe --> M001
     :L   KH 8000
     :>F                                         Wenn Anfangsadresse > 8000H
     :SPB =M001                                  dh.DB ist schon im DB-RAM
     :L   MB 252                                 dann springe --> M001
     :L   KH 0100
     :OW                                         DB, dessen Nr.im MB 252 steht,
     :SPA OB 255                                 wird in's DB-RAM verschoben
M001 :L   MB 252
     :D        1                                 ------------------------------>
     :T   MB 252                                 MB 252:=MB252-1
     :L   KB 0                                   ------------------------------>
     :><F                                        Wenn MB 252 noch nicht = 0,
     :SPB =M002
     :R   S    0.0                               dann springe --> M002
     :BE


OB 255   = OB 255                    Datenbausteine ins DB-RAM kopieren

Der FB wird in den Anlauf-OB's aufgerufen

Pylades
 
Zuletzt bearbeitet:
Wenn du den zu ändernden Baustein aus dem AG löschst, dann kanst du ihn normal übertragen. Aber Ich vermute, dafür muss die Anlage stehen. Mit ein bischen glück nur 10min. Aber das wäre der einfachste weg.
 
Zuletzt bearbeitet:
Die Lösung!!!

Hallo @all,
vielen Dank für Eure Tipps. Die haben mir alle sehr geholfen!

Damit auch andere davon profitieren können, nachfolgend die von mir genutzte Lösung. Eines vorweg: ganz ohne CPU-Stop geht es nicht, aber das konnte ich mit dem Kunden klären. Insgesamt war die SPS ca. 15 Minuten im Stop.
Ich habe die "manuelle" Lösung und nicht die programmtechnische gewählt, da ich sonst am ursprünglichen Programm hätte löschen und ändern müssen, was ich nicht unbedingt machen wollte.
Nachfolgende Schritte habe ich alle mit STEP5/ST Version 7.01 durchgeführt:

1. CPU stoppen: Menü: "AG / AG stoppen" oder "Shift+F12"

2. Bit 0 im BS144 setzen: Menü "AG / AG Speicherinhalte ausgeben ...".
Ausgabe ab Adresse "EA90" eingeben und Ausgabe auf Bildschirm anklicken.
Wenn die ersten Werte sichtbar werden <ESC> drücken.
In der nachfolgenden Abfrage <Korrektur> anklicken.
Den Wert bei der Adresse EA90 mit "0001" (Null-Null-Null-Eins) überschreiben.
<ESC> drücken.
Die nun erscheinende Abfrage "Geänderte Adressen verwerfen" mit <Nein> beantworten.
Nächste Abfrage "Geänderte Adressen im AG übernehmen" mit <Ja> beantworten.
Nun wird die aktuelle Einstellung angezeigt.
Das Menü mit <ESC> verlassen.

3. die DBs in der SPS löschen (vorher eine Sicherung machen !!!). Dies geht bei allen DBs mit Ausnahme des DB0.

4. die DBs neu vom PG in die SPS laden. Hierbei kann man bei Aufruf des Speicherausbaus erkennen, dass die Speicherplatzbelegung trotz hochladen von DBs nicht zunimmt.

5. Evtl. nochmals Speicherplatz komprimieren mit Menü "AG / AG Speicher komprimieren" oder mit "Ctrl+Shift+F2".

6. CPU starten mit Menü: "AG / AG starten" oder "Shift+F11".

Fertig. Das wars.

Wichtiger Hinweis: Beim Urlöschen der SPS geht die Einstellung im BS144 verloren und muss ggfs. nach oben stehender Anweisung erneut durchgeführt werden!

Ich hoffe, ich konnte mich verständlich ausdrücken. Falls Fragen sind, einfach melden.

Viele Grüße
Volker
 
95u

Wenn ein Baustein ersetzt werden soll, muss (nach Komprimieren)
noch genügend Platz für den Baustein vorhanden sein.
Ist dies nicht der Fall, so hilft u.U. noch folgendes:

1. AG STOP
2. Baustein im AG löschen
3. Komprimieren
4. Baustein übertragen (PG->AG)
 
Zurück
Oben