Wie im Betreff ersichtlich, hätte ich eine Frage zum Thema Watchlisten speichern und laden.
Ist es möglich Watchlisten direkt aus dem Codesys-programm heraus zu speichern und zu laden?
Bisher war es mir nur möglich, dies über einen Button mit dem Befehl "Savewatch" und "Loadwatch" zu realisieren.
Hintergrund:
Ich habe eine Steuerung, auf der im Hintergrund Windows CE läuft. Um meine Parameter/Rezepturen zu speichern, möchte ich gerne die Watchlisten speichern und laden.
Ich habe dies bereits auch versucht über Retainvariablen zu realisieren, was auch gut klappt. Jedoch sobald ich irgendetwas an den Retainvariablen verändere und dem Kunden ein Update zukommen lasse, kann er seine alten Parameter nicht wieder in die neue Version laden.
Realisiere ich das speichern der Variablen über eine Watchliste, ist nur eine bestimmte Anzahl an Variablen pro Watchliste möglich (sonst werden die nicht in der .wtc gespiechert) und ich muss mehrere Watchlisten anlegen. Diese muss ich dann über Buttons einzeln abspeichern und auch wieder einzeln laden, da Windows CE anscheinend Probleme damit hat, über einen Button mehrere Befehle auszuführen, was dann somit sehr umständlich ist (vor allem für den Kunden).
Nun würde ich gerne über Betätigung von nur einem Button "Speichern" (am besten über einen Aufruf innerhalb meines Programms) alle Watchlisten mit einem vordefinierten Namen in einem vordefiniertem Pfad speichern und mit klick auf Button "Laden" dann auch wieder laden.
Ich konnte bisher leider nichts in Handbüchern oder Foren finden, was mir helfen könnte.
Über Ihre Hilfe wäre ich sehr Dankbar.
Gruß
Chris
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
ich war nicht ganz untätig und hab bis jetzt einiges herausgefunden.
Ich brauche natürlich die SysLibTargetVisu.lib
Ich kann direkt über das Programm z.B. folgende Funktionen aufrufen:
IFxDefineReceiptTHEN
  ExecuteCommand(stCommand:=sReceiptname, nType:=DEFINERECEIPT);
  xDefineReceipt :=FALSE;END_IFIFxReadReceiptTHEN
  ExecuteCommand(stCommand:=sReceiptname, nType:=READRECEIPT);
  xReadReceipt :=FALSE;END_IFIFxWriteReceiptTHEN
  ExecuteCommand(stCommand:=sReceiptname, nType:=WRITERECEIPT);
  xWriteReceipt :=FALSE;END_IFIFxLoadWatchTHEN
  ExecuteCommand(stCommand:='', nType:=LOADWATCH);
  xLoadWatch :=FALSE;END_IFIFxSaveWatchTHEN
  ExecuteCommand(stCommand:='', nType:=SAVEWATCH);
  xSaveWatch :=FALSE;END_IF
wobei ich folgende defines machen muss:
VAR_GLOBALCONSTANTÂ Â PRINTÂ Â Â Â Â :INT:=23;Â Â DEFINERECEIPT:INT:=34;Â Â READRECEIPTÂ Â :INT:=35;Â Â WRITERECEIPTÂ :INT:=36;Â Â SAVEWATCHÂ Â Â :INT:=37;Â Â LOADWATCHÂ Â Â :INT:=38;END_VAR
somit hätte ich einen Großteil meines Problems gelöst.
Jetzt tritt ein weiteres Problem auf... Ich möchte die aktuellen Werte meiner Watchliste speichern und nicht die vordefinierten. Dies möchte ich mit "READRECEIPT" und anschließendes "SAVEWATCH" machen. So würde ich ja die aktuellen Werte in die Watchliste übertragen und diese dann als .wtc-file speichern. Über meine Codesys Visualisierung hat das auch wunderbar funktioniert, leider aber weder über die Webvisu noch über die Targetvisu, die direkt auf meiner Steuerung läuft (Touchpanel).
Hier funktioniert leider der Befehl READRECEIPT nicht... warum auch immer... laut Handbuch müsste dieser Befehl auch in der Webvisu und Targetvisu funktionieren... Hat jemand ne Idee oder ne alternative?
Wäre toll wenn mir jemand helfen könnte...
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hallo liebe CoDeSys Liebhaber
Wie im Betreff ersichtlich, hätte ich eine Frage zum Thema Watchlisten speichern und laden.
Ist es möglich Watchlisten direkt aus dem Codesys-programm heraus zu speichern und zu laden?
Bisher war es mir nur möglich, dies über einen Button mit dem Befehl "Savewatch" und "Loadwatch" zu realisieren.
Hintergrund:
Ich habe eine Steuerung, auf der im Hintergrund Windows CE läuft. Um meine Parameter/Rezepturen zu speichern, möchte ich gerne die Watchlisten speichern und laden.
Ich habe dies bereits auch versucht über Retainvariablen zu realisieren, was auch gut klappt. Jedoch sobald ich irgendetwas an den Retainvariablen verändere und dem Kunden ein Update zukommen lasse, kann er seine alten Parameter nicht wieder in die neue Version laden.
Realisiere ich das speichern der Variablen über eine Watchliste, ist nur eine bestimmte Anzahl an Variablen pro Watchliste möglich (sonst werden die nicht in der .wtc gespiechert) und ich muss mehrere Watchlisten anlegen. Diese muss ich dann über Buttons einzeln abspeichern und auch wieder einzeln laden, da Windows CE anscheinend Probleme damit hat, über einen Button mehrere Befehle auszuführen, was dann somit sehr umständlich ist (vor allem für den Kunden).
Nun würde ich gerne über Betätigung von nur einem Button "Speichern" (am besten über einen Aufruf innerhalb meines Programms) alle Watchlisten mit einem vordefinierten Namen in einem vordefiniertem Pfad speichern und mit klick auf Button "Laden" dann auch wieder laden.
Ich konnte bisher leider nichts in Handbüchern oder Foren finden, was mir helfen könnte.
Über Ihre Hilfe wäre ich sehr Dankbar.
Gruß
Chris
Hallo nochmal,
ich war nicht ganz untätig und hab bis jetzt einiges herausgefunden.
Ich brauche natürlich die SysLibTargetVisu.lib
Ich kann direkt über das Programm z.B. folgende Funktionen aufrufen:
wobei ich folgende defines machen muss:
somit hätte ich einen Großteil meines Problems gelöst.
Jetzt tritt ein weiteres Problem auf... Ich möchte die aktuellen Werte meiner Watchliste speichern und nicht die vordefinierten. Dies möchte ich mit "READRECEIPT" und anschließendes "SAVEWATCH" machen. So würde ich ja die aktuellen Werte in die Watchliste übertragen und diese dann als .wtc-file speichern. Über meine Codesys Visualisierung hat das auch wunderbar funktioniert, leider aber weder über die Webvisu noch über die Targetvisu, die direkt auf meiner Steuerung läuft (Touchpanel).
Hier funktioniert leider der Befehl READRECEIPT nicht... warum auch immer... laut Handbuch müsste dieser Befehl auch in der Webvisu und Targetvisu funktionieren... Hat jemand ne Idee oder ne alternative?
Wäre toll wenn mir jemand helfen könnte...