alberto rosso Inserito: 18 gennaio 2008 Segnala Share Inserito: 18 gennaio 2008 Saluti a tutti. Approfitto della vostra sapienza magna per illuminarmi su un noioso problema che ho incontrato implementando un rudimentale sistema di camme elettroniche su S7-200.La CPU è una 224XP collegata a un encoder incrementale 360 impulsi/giro con impulso di reset impegnato con un contatore veloce.Tramite un TP posso impostare il valore di ON e OFF di due uscite e tramite il programma confronto questi valori che siano <= o => del valore di HSC.(tradotto dal ladder per facilità di trascrizione.)LD sempre(condizioni per attivare il controllo)ALDLPSAW>= encoder, TP_OFFEUR OUT_SU, 1S OUT_GIU, 1LPPAW>= encoder, TP_ONEUS OUT_SU, 1R OUT_GIU, 1dove encoder=HSC0OUT_SU: bobina valvola pneumatica 5/2 bistabileOUT_GIU: bobina valvola pneumatica 5/2 bistabileTP_ON: valore di contatore per avere il segnale di camma altoTP_OFF: idem come sopra ma segnale di camma basso.Contemporaneamente controllo la temperatura di due fusori hot melt tramite il modulo termocoppie e relativo controllore PID fornito con lo STEP7 Micro/win più altre menate di logica macchina molto elementari tipo marcia arresto e supervisione segnali da bordo macchina.La cosa funziona senza grossi problemi visto che le tolleranze di funzionamento sono mostruosamente accomodanti.Ma. C'è il "Ma". Non me ne sarei mai accorto (visto che in prossimità dello zero, per come è costruita la macchina, non ho praticamente mai posizioni di ON o OFF delle uscite) se per provare non avessi messo il punto di attivazione di un'uscita sullo zero. Mettendo in marcia la macchina ho notato che sistematicamente il PLC non mi rilevava il fronte di salita della camma in maniera regolare con un intervallo di circa 20 sec. Prova che ti prova ho notato che questo corrisponde al tempo di ciclo del PID. Disabilitando il PID magicamente la cosa torna a funzionare su tutti i cicli. Ora, nonostante sia un problema che potrebbe non uscire mai, per la nota legge di Murphy vorrei sapere perché succede una cosa simile e se c'è un sistema per ovviare alla faccenda.Grazie a tutti. Link al commento Condividi su altri siti More sharing options...
salvatori74 Inserita: 19 febbraio 2008 Segnala Share Inserita: 19 febbraio 2008 ciao forse dico una boiata, però prima ti chiedo se è corretto 20 secondi per il tempo ciclo saranno 20 msec comunque secondo me il problema è il carico delle operazioni che sono da fare e quindi il tempo di ciclo si allunga troppo e il plc che nel normale funzionamento acquisisce gli ingressi elabora e aggiorna le uscite ha una dinamica che "zoppica un pò" hai provato con un a legare il tutto con un interrup a tempo e a forzare le uscite?Spero di esserti stato utile.Ciao. Link al commento Condividi su altri siti More sharing options...
alberto rosso Inserita: 16 maggio 2008 Autore Segnala Share Inserita: 16 maggio 2008 Non credo di aver capito bene che cosa mi consigli. Potresti essere più chiaro?Comunque il tempodel PID di termoregolazione è 20 secondi, anche perchè il "movimento" della temperatura è lento per cui non mi serve una acquisizione della variabile da controllare così rapida. Caricherei solo il PID con dei valori inutili senza reali benefici.Temo che sia un problema di interrupt che si sovrappongono: il ciclo PID, che se non erro funziona con una INTERRUPT a tempo calibrata sul tempo di ciclo, e la funzione di zero del contatore che probabilmente arriva dopo il PID.Boh.Si fa accademia, speriamo che arrivi un prof bravo. 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