Watchliste speichern Ueber Programmaufruf

Chris.O

Level-1
Beiträge
17
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo liebe Mitglieder,

ich habe ein Problem bei dem ich leider nicht weiterkomme.
Ich verwende Codesys V2.3.4.7 (ich weiss, ist alt aber aus Gruenden die ich jetzt nicht näher erklaeren will, muss ich das verwenden :) ) und ein Zielsystem, das mit Windows CE laeuft.
Ich moechte nun gerne meine Watchlisten exportieren.
Dies funktioniert ja generell ueber einen Programmaufruf in einem Button moeglich.

Aufruf sieht wie folgt aus: INTERN DEFINERECEIPT parameter_list;INTERN DELAY 10000;INTERN SAVEWATCH

Den Delay brauche ich, damit das im WinCE funktioniert...

Das funktioniert soweit auch. Leider aber nur, wenn ich meine Watchlisten in kleine Haeppchen aufteile, da es anscheinend ein Problem ist, wenn diese zu lang sind. Nun muesste ich 5 verschiedene Buttons druecken und jeden Speicherpfad wieder neue eingeben, um meine Watchlisten zu sichern.
Kennt jemand eine Moeglichkeit meine 5 Buttons vom Codesysprogramm aus (z.B. ueber eine Variable) zu starten und einen Standardpfad als Speicherpfad fuer meine Watchlisten zu hinterlegen?
Somit muesste ich nur einen Button betaetigen oder koennte es automatisch zu einer bestimmten Uhrzeit starten.

Waere schoen, wenn mir jemand weiterhelfen koennte.
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
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:
Code:
[/B]
IF xDefineReceipt THEN
   ExecuteCommand(stCommand:=sReceiptname, nType:=DEFINERECEIPT);
   xDefineReceipt := FALSE;
END_IF

IF xReadReceipt THEN
   ExecuteCommand(stCommand:=sReceiptname, nType:=READRECEIPT);
   xReadReceipt := FALSE;
END_IF

IF xWriteReceipt THEN
   ExecuteCommand(stCommand:=sReceiptname, nType:=WRITERECEIPT);
   xWriteReceipt := FALSE;
END_IF

IF xLoadWatch THEN
   ExecuteCommand(stCommand:='', nType:=LOADWATCH);
   xLoadWatch := FALSE;
END_IF

IF xSaveWatch THEN
   ExecuteCommand(stCommand:='', nType:=SAVEWATCH);
   xSaveWatch := FALSE;
END_IF

wobei ich folgende defines machen muss:
Code:
[/B]
VAR_GLOBAL CONSTANT
   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...
 
Zurück
Oben