Initialisierung in "Struct" von FBDim_Single_Button lässt sich nicht verändern

sebo_232

Level-1
Beiträge
7
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen, Ich habe die WagoAppBuilding geladen und möchte den FB_DimSingleButton
verwenden.


Dieser funktioniert auch tadellos.

Ich arbeite mit E-Cockpit und pfc200 eco
Wenn ich allerdings an den angelegten Variablen den Initialisierungswert verändere, so hat das keine Auswirkungen.

Meine Frage wäre:
1. Ist meine Deklaration korrekt?
Ich habe 2 persistent/Retain-Variablen, die an 2 Stellen deklariert sind.
Einmal unter Persistent Vars und einmal lokal.

Wo ist der Initialisierungswert zu ändern?
Unter persistent Vars oder im Programm beim FB-Aufruf?

Habe schon viele Kombinationen getestet, ohne Erfolg.

Die Werte, die ich in typconfigparameter/typconfigdim verändert habe, werden,
wenn ich eine Simulation starte immer mit den Defaultwerten überschrieben.

Ebenso die rsetrecovery wird nicht mit dem angegebenen Wert initialisiert.

Was mache ich falsch?


Hier mein Programm:

WhatsApp Image 2019-07-22 at 23.20.51.jpg

Anhang anzeigen DimmSingleButton - 001.zip
 
Zuletzt bearbeitet:
Sieht auf einen schnellen Blick richtig aus. Ich vermute mal, Du hast die Änderungen per Online Change eingespielt. Da werden die Variablen natürlich nicht neu initialisiert.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
hallo sebo
So wie du das machst ist es ungünstig und hat mehrere Nachteile.
1. müsstest du die Reihenfolge der Instanzierung vorgeben damit nicht die default Werte genommen werden.
2. Bist du später unflexibel bei der Änderung bzw. Vorgabe über eine Variable der Visu.
3. Wenn du eine Variable der Structur Persistent setzt, wird die gesamte Struktur Persisten. Du hättest bei deiner Version bereits 32 Byte verbraucht.
Ich habe mal dein Programm angepasst.
DimSingle.jpg
Wo ist der Initialisierungswert zu ändern?
Unter "persistent Vars" liegt nur ein Verweis zu deiner Variablen. Es wäre also egal wo du sie änderst.
Holger
 
Zuletzt bearbeitet:
Hallo Holger,
Super Vorschlag Danke.

Ich hab dein Beispiel umgesetzt,
habe allerdings festgestellt, dass die Initialisierungswerte in der Deklaration auch bei
deinem Beispiel keine Wirkung haben.
Allerdings konnte ich, nach dem Online-gehen in die Spalte"Vorbereiteter Wert"
einen Eintrag machen, der dann mit "Debug/schreiben oder STRG+F7 gesetzt wurde.
Jedenfalls kann dieses Thema Dank dir als gelöst betrachtet werden.
gracias!!

Unbenannt.jpg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
habe allerdings festgestellt, dass die Initialisierungswerte in der Deklaration auch bei
deinem Beispiel keine Wirkung haben.
Beim ersten Download auf den Controller (oder Simulation) wird die Variable initialisiert. Im Beispiel mit 10s.
Danach kannst du eintragen was du willst. Es wird immer der Wert aus dem persistent Speicher genommen.
Das ist ja gerade der Sinn von persistent Variablen das sie eben nicht neu initialisiert werden.

Holger
 
Evtl. reden wir aneinander vorbei.
Ich versuche mich nochmal zu verklären:
Meine Vorgehensweise:

1. Deklaration wie in deinem Beispiel mit 10S,
2. Download auf den Controller
3. Controller auf RUN.
4. Test, ob die 10S wirklich am Controller angekommen sind.
5. Test negativ, Defaultwerte waren alle noch da.
6. Dann einen Wert in Spalte"Vorbereiteter Wert" eingetragen und auf "schreiben"
7. Test positiiv, Wert wurde von Default auf Neuen Wert gesetzt.

Mein Ziel war es, nur einmalig die Werte zu verändern, die ursprünglich eingetragen waren.
Diese Werte sollten dann immer persistent sein / Bestand haben.
Das habe ich Dank dir auch geschafft.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,
Punkt 5 sollte eigentlich nicht sein.:confused:
aufpassen:
Persistente Variablen

PERSISTENT-Variablen behalten wie die RETAIN-Variablen ihre Werte bei einem Reset kalt, bei einem erneuten Download der Applikation und bei einem Reset warm (deshalb entspricht VAR PERSISTENT immer einer VAR PERSISTENT RETAIN bzw. VAR RETAIN PERSISTENT Deklaration) CODESYS initialisiert PERSISTENT-Variablen somit nur bei Reset Ursprung neu.

Gruß
 
Hallo,
Es geht um den ersten Download auf einen nackten Controller. Da hätte die Variable initialisiert werden müssen.

bist Du sicher?

Er schreibt ja im ersten Post

Dieser funktioniert auch tadellos.

Ich arbeite mit E-Cockpit und pfc200 eco
Wenn ich allerdings an den angelegten Variablen den Initialisierungswert verändere, so hat das keine Auswirkungen.
Da gehe ich davon aus, daß er mindestens einmal zuvor das Programm schon in die Steuerung geladen und gestertet hat. Danach hat er bestimmt kein Kaltreset/Urlöschen gemacht bevor er das geänderte Programm neu aufgespielt hat.

Gruß

EDIT: Gerade gesehen daß Du in dem Beitrag von erstem Download gesprochen hast. Das wird er hier aber nicht gemacht haben, da daß Programm ja bereits schon einmal drauf war.
 
Zuletzt bearbeitet:
Zurück
Oben