Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




Mancato Funzionamento Timer Sfb4


Messaggi consigliati

Inserito:

Ciao a tutti,

ho riscontrato un problema sul funzionamento del timer SFB4. Di solito ne uso diversi dichiarati in area STAT di blocchi funzione FB e li richiamo con la CALL del timer all'interno dell'FB che viene sempre percorsa.

A volte e senza ragione apparente il timer si rifiuta di funzionare: la variabile miotimer.IN cambia stato da 0 a 1 ma il timer non conta e non attiva quindi l'uscita.

Ho verificato quanto segue:

- il tempo miotimer.PT contiene un tempo valido;

- la CALL del timer e' sempre percorsa ad ogni ciclo del PLC;

Non conosco il significato del valore STATE (visibile aprendo la DB di istanza della funzione), ma ho notato che qui vengono scritti dei valori. Immagino sia una diagnostica, ma non so interpretare i codici che restituisce e nella documentazione "STEP 7 - Funzioni standard e di sistema per S7-300 e S7-400" paragrafo 25.2 non viene descritto nulla.

Sono riuscito a rilevare che nello stato di malfunzionamento del timer la variabile STATE valeva B#16#3F.

Per risolvere il problema mi basta trasferire l'intera DB di istanza dal progetto al PLC, ma senza avere un'idea precisa sulla causa temo che si possa bloccare nuovamente e magari nel momento sbagliato creando danni al cliente.

La cpu su cui gira il programma e' una VIPA 315 2AG12.

Grazie in anticipo per eventuali consigli!


Inserita: (modificato)

prova ad utilizzarli in multiistanza , cioe dichiarati come statici all'interno dell' FB main che li ospita

Capita talvolta che step7 fa dei casini con i DB di istanza di FB a tal punto che devi cancellarli online dalla cpu , riscriverli , rigenerarli e ricaricarli

Mi era capitato diverse volte con db di istanza di fb poderosi come PID control , e cosi mi sono riscritto in scl il pid con uscite anche digitali in pwm e con ingressi parametrizzati senza piu problemi

Se poi il plc e' vipa puo essere che il suo OS vada in tilt con istruzioni o dati compilati male .

Scrivetelo tu un timer con FB .Se hai lo start e non hai il reset , entrambe dichiarati come in , incrementi il tuo contatore sommando il tempo di scansione che prelevi da OB1 , cosi sei anche piu sincrono .

Quando il valore e' >= del preset dichiarato anch'esso come in , butti su il Done e fermi il conteggio con opportuni controlli per non eccedere o andare sotto lo zero .

Se hai l'ingresso reset azzeri il contatore .

Lo richiami e fai creare il tuo bel DB di istanza

Puoi anche farlo asincrono con il fronte di salita di un merker di clock

ciao

walter

Modificato: da walterword
Inserita:

Ciao e grazie della risposta.

prova ad utilizzarli in multiistanza , cioe dichiarati come statici all'interno dell' FB main che li ospita

Si, li sto gia' usando cosi'.

Provero' a crearmi un timer personalizzato, pero' speravo che i blocchi di sistema fossero piu' affidabili...

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