ich benötige für einen Kaltstart den gesetzten Default-Wert einer, für jenen Zweck, frisch in ner DB erzeugten boolschen Variable.
Leider kann ich den Default-Wert in den Eigenschaften der Variable nicht setzen.
Defaultwerte kann man nur bei eigenen Datentypen festlegen.
Entschuldige die schwammige Beschreibung. Ich meine den normalen Start der Maschine beim einschalten.
Ich verstehe leider immer noch nicht, warum Du im ersten Post das Wort "Kaltstart" schreibst und warum Du den Defaultwert von Bool ändern willst. Ist das nicht egal, ob der Defaultwert False oder True ist? Wichtig ist doch nur, zu erkennen, ob der Wert einer Variable auf einen Startwert gesetzt wurde - notfalls mit negierter (negativer) Logik. Wenn der Standard-Defaultwert als Startwert nicht gefällt (Knoten im Gehirn?), dann kann man einen Startwert projektieren.
Ich vermute, Du brauchst einfach:
- einige Variablen sollen sich die Werte von vor dem Ausschalten der Maschine merken - diese Variablen müssen als "remanent" projektiert werden
- einige Variablen sollen sich keine Werte merken und sollen beim Einschalten (Anlauf) auf einen definierten Startwert gesetzt werden - diese Variablen müssen als "nicht remanent" projektiert werden, dann erhalten sie beim Anlauf den Defaultwert des Datentyps oder den extra zu projektierenden "Startwert".
Siehe die TIA-Hilfe Thema "Grundlagen zu Startwerten" (z.B. in
Beitrag #4):
Grundlagen zu Startwerten
Definition "Startwert"
Der Startwert einer Variablen ist ein von Ihnen definierter Wert, den die Variable nach einem Anlauf der CPU einnehmen soll.
Eine Sonderstellung nehmen die remanenten Variablen ein. Ihre Werte nehmen nur nach einem "Kaltstart" den definierten Startwert ein. Nach einem "Neustart (Warmstart)" bleiben ihre Werte erhalten und werden nicht auf den Startwert zurückgesetzt.
Definition "Defaultwert"
Die Struktur von Datenbausteinen kann von übergeordneten Elementen abgeleitet sein:
• Ein Instanz-Datenbaustein basiert z. B. auf der Schnittstelle eines übergeordneten Codebausteins.
• Ein globaler Datenbaustein kann auf einem vordefinierten PLC-Datentyp basieren.
In diesem Fall können Sie im übergeordneten Element einen Defaultwert für jede Variable definieren. Beim Anlegen des Datenbausteins werden diese Defaultwerte als Startwerte verwendet. Diese übernommenen Werte können Sie anschließend im Datenbaustein mit instanzspezifischen Startwerten ersetzen.
Die Angabe eines Startwerts ist optional. Wenn Sie keinen Wert festlegen, nimmt die Variable beim Anlauf den Defaultwert ein. Ist auch kein Defaultwert definiert, wird der für den Datentyp gültige Standardwert verwendet. Für BOOL ist z. B. der Standardwert "FALSE" festgelegt.
In Deinem ersten Beitrag hast Du eine Variable "Schmierung KALTSTART" mit Startwert 1
(wird von TIA gutwillig für schlampige Programmierer so akzeptiert). Die Variable ist als "nicht remanent" projektiert, d.h. die Variable bekommt bei jedem Anlauf den Startwert zugewiesen, ohne Unterschied ob das ein Warmstart oder Kaltstart war. Es kann also lediglich festgestellt werden, daß die CPU einen neuen Anlauf hatte - dafür kann man auch einfach den Systemmerker "FirstScan" auswerten.
- Soll tatsächlich ein Unterschied zwischen Warmstart und Kaltstart gemacht werden, dann muß man eine Variable als "remanent" projektieren und einen Startwert (für den Kaltstart) festlegen und im Programm dann einen vom Startwert abweichenden Wert zuweisen. Ein "Kaltstart" ist, wenn auch die remanenten Variablen auf den Defaultwert oder Startwert gesetzt wurden.
Sollte das nun immer noch nicht das sein, was Du brauchst, dann beschreibe für uns exakt ein Beispiel, was Du erreichen willst.
Harald