Vai al contenuto
PLC Forum


Uso Timer In Fb - dubbio sul funzionamento


macro

Messaggi consigliati

un mio collega ha creato un fb collegato ad un db d'istanza per il comando di numerose elettrovalvole presenti in un impianto.

il mio problema è questo lui ha usato 2 timer all'interno dell'fb per definire i timeout del movimento ma io credo non sia corretto, o meglio non sono sicuro se i timer funzionano correttamente.

avete una risposta in merito?

io avrei fatto un contatore appoggiando un impulso di clock in ingresso al mio Fb comparandolo poi con un valore fisso o variabile. in questo modo nel mio db d'istanza si dovrebbe creare anche un a voce dove c'è l'accumulatore del conteggio e l'eventuale confronto.

ciao a tutti macro

Link al commento
Condividi su altri siti


un mio collega ha creato un fb collegato ad un db d'istanza per il comando di numerose elettrovalvole presenti in un impianto.

il mio problema è questo lui ha usato 2 timer all'interno dell'fb per definire i timeout del movimento ma io credo non sia corretto, o meglio non sono sicuro se i timer funzionano correttamente.

Se ha scirtto bene il programma e' corretto ;)

I blocchi associati ad un DB di istanza , sono detti FB con multiistanza.

Dove non esistono delle variabili assolute come nei blocchi comuni , ma delle variabili che possono essere associate a valori assoluti di ingressi uscite timers ecc. via via che vengono richiamati nell'interfaccia del blocco.

Esempio:

// Controllo timer 1

CALL FB1 , DB1 // chiama sottoprogr. FB1 associato alla DB istanza DB1

"Ingresso" := E0.1// variabile IN

"Uscita" := A1.0// variabile OUT oppure IN/OUT

"Timer" := T10 // Variabile IN

// Controllo timer 2

CALL FB1 , DB1 // chiama sottoprogr. FB1 associato alla DB istanza DB1

"Ingresso" := E0.2// variabile IN

"Uscita" := A1.1// variabile OUT oppure IN/OUT

"Timer" := T11 // Variabile IN

Nel blocco FB1 troverai scritto

U #Ingresso

Ls5T#1s

SE #Timer

U #Timer

=#Uscita

In questo modo , richiamando piu' volte lo stesso FB (che fara' sempre le lmedesime operazioni), associandogli via via diversi valori all'interfaccia , risparmierai tempo a scriverti diversi FB che poi farebbero la stesa cosa , e risparmieresti memoria.

Ciao

Ivan

Modificato: da kamikaze
Link al commento
Condividi su altri siti

no quello scritto è qualcosa del tipo:

// Controllo timer 1

CALL FB1 , DB1 // chiama sottoprogr. FB1 associato alla DB istanza DB1

"Ingresso" := E0.1// variabile IN

"Uscita" := A1.0// variabile OUT oppure IN/OUT

// Controllo timer 2

CALL FB1 , DB1 // chiama sottoprogr. FB1 associato alla DB istanza DB1

"Ingresso" := E0.2// variabile IN

"Uscita" := A1.1// variabile OUT oppure IN/OUT

Nel blocco FB1 trovo scritt0

U #Ingresso

Ls5T#1s

SE t10

U t10

=#Uscita

Link al commento
Condividi su altri siti

Si..... non e' proprio correttissimo <_< .

Il nome di un timer deve essere univoco all'interno del programma.

Beh, non e' che hai un errore crtico, ma solo rischi che il timer abbia un funzionamento imprevisto.

Deve associare il nome di un timer alla variabile tipo IN--->Tipo del dato TIMER da inserire nell'interfaccia di chiamata del blocco.

Ivan

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