Lux78 Inserito: 17 settembre 2010 Segnala Share Inserito: 17 settembre 2010 Salve a tutti,vi espongo un problema che mi è recentemente capitato.Ho un'applicazione scritta in .NET (2008) che sfrutta CX Server Lite tramite ActiveX.L'applicazione deve recuperare dei valori accedendo a get_DM per poi registrarli su un database.I problemi sono 2:1. Seguendo il seguente procedimentocomms.OpenPLC -> tutti i get_DM -> comms->ClosePLCil processo cdmsrv20 ha un'occupazione di memoria in costante crescita, partendo da circa 10MB fino ad arrivare oltre 80MB in pochi minuti.Se invece apro e chiudo il PLC ad ogni chiamata l'occupazione di memoria sale molto meno (ma continua a salire), inoltre si dilatano i tempi di esecuzione di ciascuna ciclo (ogni ciclo prevede numerose letture dal get_DM).2. Dopo un po' che è in esecuzione noto che i tempi di esecuzione del get_DM crescono notevolmente, spesse volte rimanendo in attesa dalle 17 del pomeriggio fino alle 6 del mattino dopo.Ho aggiunto svariati log per monitorare i tempi di esecuzione di ciascuna operazione.Il problema sembra non si presentasse con la versione sviluppata in VB6.Preciso che tra una chiamata e l'altra del get_DM eseguo uno Sleep di 50 millisecondi.La versione del CX Server Lite utilizzata è la 1.21.Provando a sfruttare la versione .NET e non l'activeX non ho trovato i metodi per accedere ai registri di memoria DM, ma solamente i Read e GetData che prevedono dei Point definiti sullo strumento, strada che non è praticabile.Sapete dirmi come fare per rendere stabile e affidabile l'accesso ai registri di memoria?Esiste forse una versione più aggiornata che risolve dei bug?Oppure vi sono procedure particolari per accedere ai dati?Grazie,Max Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora