TIA TIA Portal DB Laden ohne reinitialisieren

Ich sehe schon die ersten Programme die diverse Reserve-Variablen beinhalten, die aber dann bei Verwendung nicht mehr umbenannt werden um kein Laden der DBs zu benötigen. D.h. Reserve ist dann keine Reserve mehr.

wir machen es für 1500 so:
- nur nichtoptimierte DBs verwenden
- genügend Reserve-Variablen in dem DB anlegen
- der DB enthält eine Bool-Variable zur Erkennung einer Reinitialisierung (wird FALSE wenn DB reinitialisiert wird)
- zusätzlich zu diesem DB gibt es einen "Rettungs-DB", der genügend groß ist.
- am Ende des OB1 wird der DB immer per UBLKMOVE in den Rettungs-DB kopiert
- am Anfang des OB1 wird der Rettung-DB per UBLKMOVE in den DB rückkopiert, wenn die Reinitialisirungserkennung angesprochen hat

somit sind Namensänderungen von Reservevariablen im laufenden Betrieb stoßfrei möglich!

Die Reinitialisierungserkennung erfolgt folgendermaßen: es gibt in den DBs ein BOOL, dessen Startwert=FALSE ist. Im OB1 wird diese Variable auf TRUE gesetzt. Wenn eine Reinitialisierung des DB erfolgte, ist diese Variable wieder FALSE und der Rettungsmechanismus wird ausgelöst.

Für unsere Belange hier, funktioniert das Ganze! Man benötigt aber halt für jeden DB noch einen gleich großen "Rettungs-DB"...

Gruß.
PS: theoretisch wäre es mit dieser Methode auch moeglich, Variablen am Ende des DB stossfrei hinzuzufügen...
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Wir versuchen das Thema zu umgehen indem wir sich wechselnde Werte in separate DB packen wo die Wahrscheinlichkeit einer änderung ziemlich gering ist. Spätestens bei Auslieferung sollte sich daran nichts mehr Ändern. Alle anderen FBs können sich somit Ändern. Allerdings bevorzuge ich auch Codesys. Da ist stoßfrei laden schon immer mögliche solange nur Programmcode geändert wurde.

Gesendet von meinem SM-G930F mit Tapatalk
 
Ich erwische mich auch immer öfter dabei gewisse Daten auf separate Dbs auszulagern und eher klein zu halten sodass wenigstens nur ein Anlagenteil betroffen ist.Hin und wieder lagere ich wichtige Instanzen aus der Multiinstanz in globale Instanzen aus. Bei sowas denk ich mir dann immer meinen Teil...

@ducati: Bei der UBLKMOV-Sache, gliedert TIA/1500 die neuen Dbs eigentlich sicher außerhalb des Zyklus ein?
Wundern würde michs nicht wenn dss auch mittendrin passiert.
Wird aber so sein, sonst wär dir das sicher aufgefallen.
 
Sicher weiss ichs nicht... Waere ja ein generelles Problem, wenn geaenderte DBs nicht im Zykluskontrollpunkt eingegliedert wuerden... Aber geprüft hab ichs nicht, wuesste auch nicht wie. Ein Problem ist mir aber auch nicht aufgefallen...
Gruss
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Und nebenbei sind wir hier an dem Punkt, wo die grottenschlechte Umsetzung der OOP- Strategie vom TIA diese ad absurdum fuehrt, da Änderungen im laufenden Betrieb nicht moeglich sind, was aber fuer viele IndustrieAnlagen zwingend notwendig ist!
Von daher: back to the roots -> FCs und Merker und S5-Timer!!! ;)
 
Zurück
Oben