Vai al contenuto
PLC Forum


Controllo Pid, Ob35 E Dubbi - Sul tempo di campionamento...


messjah

Messaggi consigliati

Ciao a tutti,

chiedo a voi esperti una spiegazione su un concetto che non riesco a far chiaro nella mia testa.

Provengo infatti dalla programmazione full OBJ-Oriented per cui alcuni dettagli dei listati AWL mi lasciano perplesso.

Il mio problema in sintesi è questo:

Devo fare una semplice regolazione di rapporto tra due fluidi. Sto usando il classico metodo di leggere la portata dal primo materiale non regolato e variare quella del secondo con anello di controllo trasduttore + valvola proporzionale. Tutto il baracchino fatto in analogico funziona. Il mio dubbio sorge adesso che ho trasportato su S7-300.

Per la regolazione ho utilizzato OB35 che parte ogni 100ms. All'interno di OB35 mi sono messo un po' di contatori in modo tale da ricavarmi "zone" della OB35 con aggiornamento ogni 200ms, 1secondo e 2secondi.

Ho impostato la FB41 a 100ms con la funzione SCALE per dare un ingresso ottimale. Tutto funziona bene ma non riesco a capire come gestire i segnali dal campo. Se infatti leggo (come vedo in alcune discussioni) la PEW su OB1 ad inizio ciclo, e poi la appoggio in DB e quindi la passo ogni 100ms a FB41 non ho problemi con il campionamento?!? Mi spiego meglio: OB1 cicla diciamo ogni 130ms, OB35 ogni 100ms. Potrei aver problemi di stabilità nell'avere lettura PEW dal campo e gestione effettiva della PEW del PID asincroni? Voi gestite le PEW (anche per le protezioni di sicurezza) direttamente su OB35 oppure conviene sempre passate per OB1?

Scusate se sono stato prolisso e poco chiaro.

Grazie mille a tutti per la pazienza,

Stefano.

Link al commento
Condividi su altri siti


L'ideale, ovviamente, sarebbe leggere la PEW direttamente in OB35.

Fare un richiamo di FB41 in OB35 e poi passargli dati non aggiornati, introduce sicuramente un errore.

Bisogna però considerare il tipo di regolazione che si sta facendo per capire se questo errore è accettabile o meno.

Se stai facendo un posizionamento (nel qual caso anche i 100ms di default di OB35 sono troppi), non ti puoi assolutamente permettere errori di questo tipo.

Se stai regolando una temperatura, un errore temporale nella lettura della variabile di processo di 50-100ms è irrilevante.

Domanda: parli di scansione di 130ms. E' un dato buttato lì solo come esempio, oppure ti trovi davvero con un tempo di scansione così lungo?

Se il tempo è reale, significa che c'è qualcosa da rivedere nella programmazione.

Di default il watchdog è impostato a 150ms. Se il tempo di scansione supera questo limite, la cpu va in stop.

Link al commento
Condividi su altri siti

Ti ringrazio moltissimo della risposta.

Mi hai chiarito molte cose, infatti da neo programmatore PLC avevo questo dubbio sulle PEW asincrone tra OB1 e OB3X. :rolleyes: Il punto è che parlando con un programmatore qui delle mie parti questo problema secondo lui non esisteva nemmeno (...lui avrebbe piazzato pure FB41 in OB1 alla faccia del tempo di campionamento costante! :blink: ).

Grazie ancora,

Stefano.

P.S.: Il tempo di 130ms era messo li solo per fare un esempio. :thumb_yello:

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