E!Cockpit ResetApplicationWarm

sash583

Active member
Beiträge
32
Punkte Reaktionen
1
Zuviel Werbung?
->Hier kostenlos registrieren
Und wieder mal eine Frage an der ich gerade seit gefühlten Stunden hänge.

Ich rufe mit einer PFC200 aus einer MySQL Datenbank wichtige Daten ab, damit die Steuerung nach einem Neustart korrekt funktioniert. Dafür möchte ich aus dem Programm heraus einen ResetApplicationWarm() durchführen. Nur scheint meine Art der Implementation nicht zu funktionieren. Irgendwo habe ich was gelesen das die Application attached werden muss. Ich habe aber keine Ahnung wie. Kann mir jemand helfen?

Ich rufe die Methode folgendermaßen auf.

Reset.ResetApplicationWarm();


Danke!
 
Beiträge
44
Punkte Reaktionen
7
Hallo sash583,


du kannst über die Bibliothek CmpAppeinen WarmReset ausführen. Die Funktion dafür lautet AppReset
Beispiel:


VAR
pApp : POINTER TO APPLICATION;
Result : RTS_IEC_RESULT;
sApp1 : STRING := 'App1'; (*Name of the Application*)
xResetWarm : BOOL; (* Do a reset warm *)
END_VAR




pApp := AppFindApplicationByName(sApp2, ADR(Result));
IF xResetWarm THEN
xResetWarm := FALSE;
Result := AppReset(pApp, RESET_OPTION.RTS_RESET);
END_IF


Allerdings muss dann die Applikation wieder gestartet werden. Das kann zum Beispiel über ein Event ResetDone im Task Manager gemacht werden. Dort dann die Applikation starten:


VAR
pApp : POINTER TO APPLICATION;
Result : RTS_IEC_RESULT;
sApp1 : STRING := 'App1';
END_VAR


pApp := AppFindApplicationByName(sApp1, ADR(Result));
Result := AppStartApplication(pApp);
 
OP
S

sash583

Active member
Beiträge
32
Punkte Reaktionen
1
Zuviel Werbung?
->Hier kostenlos registrieren
Besten Dank für die Antwort!

Nun habe ich den Reset-Part mal eingebaut. Leider tut sich auch da überhaupt nichts, wenn ich den Trigger auslöse. Ich habe dann auch mal AppStopApplication ausprobiert um vielleicht eine andere Reaktion zu provozieren, aber auch da tat sich nichts. Kann es daran liegen, dass ich nicht erwähnt habe mit E!Cockpit zu programmieren?

Danke!
 
Beiträge
44
Punkte Reaktionen
7
Hallo sash583,

natürlich habe ich den Reset ebenfalls in e!COCKPIT getestet. Hast du den Namen der Applikation für dein Programm angepasst ('App1')?
 
OP
S

sash583

Active member
Beiträge
32
Punkte Reaktionen
1
Sehr gut, dann sollte das bei mir eigentlich ja auch funktionieren. Ja den Applikationsnamen habe ich angepasst. Über Nacht hat sich herausgestellt, dass mit Import der CmpApp Bibliothek die MySQL Bibliothek "zerstört / gestört" wurde. Plötzlich war die SQL-Syntax falsch. Die Zeichen "INSERT INTO" wurden zu Hieroglyphen und das Schreiben in die MySQL-DB unmöglich. Nach löschen der Bibliothek CmpApp, funktionierte alles wieder einwandfrei. Jetzt bin ich mir momentan nicht ganz sicher, ob ich mich an die CmpApp Bibliothek nochmal rantraue.

Grüße

Sascha
 

DerPaul

Active member
Beiträge
43
Punkte Reaktionen
0
Zuviel Werbung?
->Hier kostenlos registrieren
Hallo sash583,


du kannst über die Bibliothek CmpAppeinen WarmReset ausführen. Die Funktion dafür lautet AppReset
Beispiel:


VAR
pApp : POINTER TO APPLICATION;
Result : RTS_IEC_RESULT;
sApp1 : STRING := 'App1'; (*Name of the Application*)
xResetWarm : BOOL; (* Do a reset warm *)
END_VAR




pApp := AppFindApplicationByName(sApp2, ADR(Result));
IF xResetWarm THEN
xResetWarm := FALSE;
Result := AppReset(pApp, RESET_OPTION.RTS_RESET);
END_IF


Allerdings muss dann die Applikation wieder gestartet werden. Das kann zum Beispiel über ein Event ResetDone im Task Manager gemacht werden. Dort dann die Applikation starten:


VAR
pApp : POINTER TO APPLICATION;
Result : RTS_IEC_RESULT;
sApp1 : STRING := 'App1';
END_VAR


pApp := AppFindApplicationByName(sApp1, ADR(Result));
Result := AppStartApplication(pApp);
Ich wärme diesen Thread mal auf...

Ich habe mal versucht das ganze auf meiner PFC 200 nachzubauen, bekomme allerdings immer nach dem Anlegen des Events mehrere Fehlermeldungen (Siehe Anhang). Sobald ich ein Event im Taskmanager hinzufüge kommt beim Übersetzen dieser Fehler (Selbst bei einer leeren Funktion). Ich bräuchte da ein wenig hilfe....
 

Anhänge

  • Bild_2022-01-12_084814.png
    Bild_2022-01-12_084814.png
    23,7 KB · Aufrufe: 11
  • Bild_2022-01-12_084850.png
    Bild_2022-01-12_084850.png
    20,5 KB · Aufrufe: 11
  • Bild_2022-01-12_084958.png
    Bild_2022-01-12_084958.png
    8,6 KB · Aufrufe: 10
Beiträge
56
Punkte Reaktionen
19
Hallo DerPaul,

das Verhalten taucht bei dir auf, da du die Bibliothek WagoTypesEvent hinzugefügt hast.
Die Bibliothek wird nicht automatisch angezogen und erzwingt keinen Namensraum.
Du kannst entweder die Bibliothek löschen oder einen Namensraum erzwingen um das Verhalten zu lösen.
1641983248146.png
 
Oben