iceman78 Inserito: 21 febbraio 2006 Segnala Inserito: 21 febbraio 2006 salve a tuttidopo aver lungamente sbattuto per costruirmi un algoritmo pid mi sono accorto della presenza di un assistente per la compilazione.premetto che uso S7-200 CPU 216, step7 versione 2.12 (1998................un pò vecchiotta lo so!!!!).Il problema arriva quando vado a immettere la variabile di processo (di default AIW0), che nel mio processo è la lettura di un contatore veloce HC1 trsferita in VD238......(si tratta della misura di un encoder incrementale 0->5v).Sia mai che l'assistente PID in questione accetti solo ingressi analogici?????Nel caso accettasse solo informazioni analogiche, c'è un modo per covertire la lettura del contatore.......in modo da non infastidire troppo l'assistente PID?vi ringrazio tutti anticipatamenteciao.
Livio Orsini Inserita: 21 febbraio 2006 Segnala Inserita: 21 febbraio 2006 (modificato) A parte la vetustà del compilatore, ora siamo alla MW4 con SP3, il PID integrato è adatto più a processi lenti come i termoregolatori. Non ne sono sicuro ma credo che il PID non faccia differenze sul tipo di variabile in ingresso; essendo esso stupido legge una word senza riconoscere se è il risultato di una conversione A/D o di una lettura di HSC.PS farsi un PID, richiamato dal timer di sistema, non è un'impresa tremenda, ancora anni fa con MW2.x e CPU 224 facevo posizionamenti con PID richiamato a 10ms Modificato: 21 febbraio 2006 da Livio Orsini
Gabriele Corrieri Inserita: 21 febbraio 2006 Segnala Inserita: 21 febbraio 2006 (modificato) Ciaoovviamente se dai in pasto una VD (32bit) dove si richiede una VW (16bit) è molto facile che non ti venga accettata Ciao Modificato: 21 febbraio 2006 da Gabriele Corrieri
iceman78 Inserita: 22 febbraio 2006 Autore Segnala Inserita: 22 febbraio 2006 grazie Gabriele.......in effetti non è molto contento dell'in che gli dò.c'è un modo di convertire vd in vw tenendo presente che la versione di step7 è vecchissima (2.12). se non sbaglio le versioni più recenti utilizzano di_i ma questa?grazie
Livio Orsini Inserita: 22 febbraio 2006 Segnala Inserita: 22 febbraio 2006 Converite una word in una double word è semplice, il viceversa è....impossibile. Devi risolvere il problema in modo surrettizio. Se vuoi usare il contatore come ingresso al PID devi fare in modo che il conteggio non superi mai la lunghezza della word (65535) e poi dare in pasto al PID solo la parte bassa del contatore. Ci sono diverese tecniche per fare questo, dipende dall'applicazione.Io insito nel consiglio: fatti un tuoi PID, che lavori in real, così eviterai un sacco di guai.
Gabriele Corrieri Inserita: 22 febbraio 2006 Segnala Inserita: 22 febbraio 2006 Ciaoc'è da dire che la soluzione di Livio, che seppure non è semplice, è quella che propone MicroWin fin dalla release 3, con i numeri reali.Anche se il tuo setpoint non è un numero reale, ma un doppio intero, ti farebbe comodo un PID a 32 bit ... Soluzioni di stringere un DINT in un INT sono tutte molto poco utili, ti perdi 16 bit, a meno che la tua regolazione sia "resizable" a 16 bit, nel senso, sgangi il PID, poi l'asse in posizione, circa, agganci il PID e gli comunichi che quello è lo zero, e da lì lui mantiene, però attenzione che se esci dai 16 bit succede un po' di casotto, nulla di impossibile, comunque visto tutto, o è una cosa qusi hobbystica, e allora puoi tribolare per la soluzione, altrimenti l'ultima release di MicroWin in poco tempo ti risolve quel problema e tanti altri.Ciao
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