Vai al contenuto
PLC Forum


Cx Server Lite - Problema Accesso Registri Di Memoria


Messaggi consigliati

Inserito:

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 procedimento

comms.OpenPLC -> tutti i get_DM -> comms->ClosePLC

il 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


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 account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...