Vai al contenuto
PLC Forum


Camme Elettroniche E Pid Su S7-200 - ovvero come sparisce un confronto di valori.


alberto rosso

Messaggi consigliati

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)

ALD

LPS

AW>= encoder, TP_OFF

EU

R OUT_SU, 1

S OUT_GIU, 1

LPP

AW>= encoder, TP_ON

EU

S OUT_SU, 1

R OUT_GIU, 1

dove encoder=HSC0

OUT_SU: bobina valvola pneumatica 5/2 bistabile

OUT_GIU: bobina valvola pneumatica 5/2 bistabile

TP_ON: valore di contatore per avere il segnale di camma alto

TP_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". :angry:

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. :blink:

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

  • 1 month later...

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

  • 2 months later...
alberto rosso

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. :rolleyes:

Link al commento
Condividi su altri siti

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...