Page 1 of 1

Macro Prozess muss manuell gekillt werden

Posted: Tue 5. Feb 2013, 13:00
by AndreasZ
Hallo,

wenn ich mein Macro laufen lasse (über Button mit Befehl: MacroFkt ) und diesen dann wieder beende, ist der Prozess nicht ganz weg. Ich sehe diesen noch unter "Werkzeuge->Status Display" und muss diesen manuall killen.

Das Problem hierbei ist, dass mein PCAN Explorer bzw weitere Skript-Starts nicht funktionieren weil schon zu viele Makros laufen.

Kann ich die Makros beim Stopen auch gleich killen? Durch einen Button oder ein Kommando im Skript evtl?

MfG

Andi

Re: Macro Prozess muss manuell gekillt werden

Posted: Tue 5. Feb 2013, 13:33
by PEAK-Support
Normalerweise wird das Macro durch den STOP Button sauber beendet. Senden Sie uns doch bitte die Seriennummer Ihrer PCAN-Explorer Version sowie, wenn möglich, das Macro. support@peak-system.com - wir schauen dann drüber und melden uns umgehend bei Ihnen.

Re: Macro Prozess muss manuell gekillt werden

Posted: Tue 5. Feb 2013, 16:45
by AndreasZ
Hallo,

Problem gelöst.

MyClient muss lokal angelegt werden. Wenn Global wird dieser nicht sauber getrennt und das Makrofile ist noch aktiv.
Muss dann auch mit "Sub SetCellMsg(MyClient) " an andere Funktionen übergeben werden.

Vielen Dank Hr. Wilhelm

Mfg

Re: Macro Prozess muss manuell gekillt werden

Posted: Wed 6. Feb 2013, 08:34
by PEAK-Support
Genau so ist es. Wenn Objekte nicht innerhalb von Subs erzeugt werden, dann werden diese nicht wieder freigegeben. Also bitte das Erzeugen von Objekten wie z.B.:

Code: Select all

Dim MyClient
Set MyClient = CreateObject("PCAN3.PCANClient")
bitte immer innerhalb einer Sub machen. Wenn man dann in anderen Funktionen das Client Objekt benötigt, kann man es ja als Parameter übergeben:

Code: Select all

Call MyOwnFunction(MyClient)
Damit ist sichergestellt, dass nach dem Beenden des Macros das Object von der internen VBS Engine freigegeben wird. Wenn man hingegen im globalen Teil das

Code: Select all

Dim MyClient
setzt, so wird das Objekt NICHT wieder freigegeben...und nach dem X-ten Aufruf geht nichts mehr (Ressourcenmangel - in diesem Fall können nur max. 32 Clients an einen Treiber angemeldet werden)