Vai al contenuto
PLC Forum


Temporizzatori - Problema con gli SFB4 (TON)


nick.kelevra

Messaggi consigliati

Ciao a tutti,

ho il seguente problema: in un blocco funzionale, il blocco FB2, ho dichiarato come variabile STAT un timer di tipo SFB4, ritardato all'eccitazione. Ho collegato direttamente un ingresso del blocco FB all'ingresso IN nel richiamo dell'SFB4. Il tempo PT è fisso ed impostato a T#10S. Il mio problema è che non fa quello che deve fare, si comporta impostando l'uscita subito dopo che l'ingresso è salito senza attendere i 10 secondi. L'ingresso EN della chiamata del SFB4 è sempre a 1, quindi il blocco viene sempre richiamato. Ora ho due dubbi:

1. Il problema è nel PLCSIM (In questo momento non ho a disposizione una cpu per testare il blocco)

2. Il problema è che non ho inizialzzato il blocco. Non ho capito bene se bisogna per forza inizializzare questo blocco per il suo corretto funzionamento. E comunque non saprei come fare.

C'è qualcuno che può darmi qualche dritta perchè non riesco a spiegarmi l'anomalo comportamento.

La cpu che PLCSIM sta simulando è una 315-2DP.

Thanks

Link al commento
Condividi su altri siti


...domanda sciocca.... hai associato un'area di istanza univoca, giusto? intendo: CALL SFB4,DB4 dove DB4 non è usato da nessun'altra parte, giusto?

Prova ad incollare il codice che vediamo un po'... io di solito uso SFB4 e 5 sia con DB che in multiistanza, mai avuto problemi... a parte qualche sporadico caso come ti dicevo poco sopra! :-)

Link al commento
Condividi su altri siti

E' un problema di PLCSIM 5.3 SP1, risolto con un hot fix (HF1), purtroppo non mi ricordo il link per

questo aggiornamento, chiedi alla Siemens HF1 per il PLCSIM.

ciao

wally

Link al commento
Condividi su altri siti

Ciao, scusate il ritardo.

Adesso non posso contattare Siemens per l' Hot Fix 1 del PLCSim, ma se non riesco a risolvere tenterò anche questa soluzione, grazie wally.

Per quanto riguarda il codice è semplicissimo, una chiamata così:

A #IN_INCREASE

= L 0.0

BLD 103

CALL #T_TIMER

IN:=L0.0

PT:=T#10S

Q :=#M_TIMER

ET:=

NOP 0

dove IN_INCREASE è il bool in ingresso a FB2, T_TIMER una variabile STAT dell'FB2 di tipo SFB4 (TON) e M_TIMER un timer che poi viene copiato nella bobina di uscita.

Confesso supertony che non ho capito bene la storia della chiamata con DB4, io ero convinto che con questi timer non si dovesse creare un DB apposta ma solamente dichiararli e richiamarli come ho fatto.

Se puoi spiegarmi un po' meglio perchè in realtà non ci sono mai riuscito.

Grazie.

P.S. Da lunedì sarò via qualche giorno, perciò non so se potrò rispondervi subito. Scusate.

Link al commento
Condividi su altri siti

Mi riferivo all'uso esterno, rispetto ad un FB di istanza. Tu hai giustamente richiamato SFB4 dopo averlo dichiarato come STAT all'interno di un FB, che naturalmente richiamerai poi per esempio dall'OB1 associandogli un DB di istanza.

Supponiamo che ti serva sporadicamente solo un timer, potresti, direttamente magari anche in OB1, scrivere qualcosa del tipo CALL SFB4,DB4 dove il DB4 sarà generato automaticamente e conterrà le variabili di cui l'SFB4 necessita per il funzionamento. :-)

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