In S5 Datenbausteine aus dem Programmablauf heraus löschen?

N

NetPirate

Guest
Zuviel Werbung?
->Hier kostenlos registrieren
Hallo,
es gibt die Möglichkeit im Programmablauf einen Datenbaustein (DB/DX) mit E DBx bzw EX DXx zu erstellen.
Kennt jemand eine Möglichkeit einen DB oder DX zur Laufzeit in der CPU zu löschen?
Würde mir wirklich sehr helfen. Dann könnte ich ganz einfach einen DB oder DX einfach verlängern ohne das die CPU gestoppt werden müsste oder dabei die Daten nicht mehr aktuell wären.
 

Onkel Dagobert

Well-known member
Beiträge
4.823
Punkte Reaktionen
874
Hallo NetPirate,

es gibt unter den Systemfunktionsbausteinen einen FB239 mit dem man Bausteine löschen kann. Dieser FB löscht den DB allerdings nicht wirklich, sondern kennzeichnet ihn lediglich als ungültig. Daher solltest du nach dem Löschen den Anwenderspeicher mit dem FB238 komprimieren! Sollte während des Komprimierens ein Spannungsausfall eintreten, folgt eine Urlöschanforderung!

Gruß, Onkel
 
OP
A

Anonymous

Guest
Zuviel Werbung?
->Hier kostenlos registrieren
Danke für die schnelle Hilfe!
Werde hoffentlich am Montag dazu kommen es zu testen und werde dann eine Rückmeldung geben.
Schönes Wochenende!
 
OP
N

NetPirate

Guest
Hallo Onkel Dagobert,
letztendlich habe ich es dann doch anders gelöst:
OB124 löscht einen Baustein.
Mit OB181 kann man feststellen, ob der Baustein existiert und wie seine länge ist.
Aber trotzdem nochmal vielen Dank!

NP
 

Onkel Dagobert

Well-known member
Beiträge
4.823
Punkte Reaktionen
874
Hallo NetPirate,

demnach verwendest du eine CPU948? Falls dieses Löschen/Anlegen öfters erfolgt, dann denke daran, den Arbeitsspeicher zu komprimieren. Bei den kleineren S5-en wäre es notwendig, bei den größeren kenne ich mich nicht so aus.


Gruß, Onkel
 
OP
N

NetPirate

Guest
Zuviel Werbung?
->Hier kostenlos registrieren
Hallo Onkel Dagobert,
getestet habe ich das Programm auf einer 928B und es scheint immer wieder der selbe Speicher benutzt zu werden. Ich konnte das aber noch nicht näher untersuchen. Es ist ja auch nur dazu gedacht einmalig aufgerufen zu werden um folgende Aktionen auszuführen:
  1. Eventuell vorhandenen Temporären Datenbaustein löschen
  2. Temp.-DB mit der länge des Quell-DB erstellen
  3. Die Aktualwerte des Quell-DB im Temp-DB sichern
  4. Den Quell-DB löschen
  5. Den Quell-DB mit der neuen Länge erstellen
  6. Die Aktualwerte zurück in den Quell-DB schieben
und sollte dann auch auf einer 948 laufen.
Wenn jemand eine solche Funktion benötigt, könnte ich die S5D-Datei auf Anfrage zusenden.

Gruß
NetPirate
 
Oben