alan_ford444 Inserito: 30 settembre 2009 Segnala Inserito: 30 settembre 2009 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!
walterword Inserita: 30 settembre 2009 Segnala Inserita: 30 settembre 2009 (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: 30 settembre 2009 da walterword
alan_ford444 Inserita: 30 settembre 2009 Autore Segnala Inserita: 30 settembre 2009 Ciao e grazie della risposta.prova ad utilizzarli in multiistanza , cioe dichiarati come statici all'interno dell' FB main che li ospitaSi, li sto gia' usando cosi'.Provero' a crearmi un timer personalizzato, pero' speravo che i blocchi di sistema fossero piu' affidabili...
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora