rixio Inserito: 27 maggio 2010 Segnala Inserito: 27 maggio 2010 salve, ho il seguente problemaho creato diversi blocchi per ogni sottofunzione, poi inserendoli nell'ob1 come fc e facendo partire la simulazione iniziano a lampeggiare, come se le condizioni di enable diventassero vere e false ad ogni ciclo di scansione.ho fatto la seguenti ipotesi:- supero il tempo max di elaborazione delle funzioni ( anche se queste non sono affatto complesse circa 146 byte della memoria di lavoro)ringrazio a tutti sin da ora
Reverendo bit Inserita: 27 maggio 2010 Segnala Inserita: 27 maggio 2010 (modificato) Ciao rixioNon credi che dovresti dare più informazioni per far capire il problema?ho creato diversi blocchi per ogni sottofunzioneSpiega meglio cosa intendifacendo partire la simulazioneMa usi il plcsim o sei online con la CPU?Saluti Modificato: 27 maggio 2010 da Reverendo bit
rixio Inserita: 27 maggio 2010 Autore Segnala Inserita: 27 maggio 2010 semplicemente nell'ob1 ho richiamato diverse fc :tutte tranne 1 durante la simulazione (su pc )si illuminano di verde che rimane tratteggiata come non venisse eseguita ( ed in effetti non viene eseguita)nonostante l'enable all'ingresso dell'fc sia alto.Il codice è scritto correttamente, la mia ipotesi è essendo la funzione con diversi richiami a db, temporizzatori e comparatori troppo complessa e vada in una sorta di tempo limite per l'esecuzione, ma ciò mi sembra strano avendo scritto funzioni più complesse perfettamente funzionanti.
stilnovo Inserita: 28 maggio 2010 Segnala Inserita: 28 maggio 2010 Non esiste un tempo massimo di elaborazione per funzione, ma il controllo temporale è eseguito sull'intero programma utente. E comunque se lo sfori, di default, è previsto lo stop della CPU. Quindi, siccome in stop non ci vai.....Ricapitolando se enable è alto la funzione viene sicuramente richiamata. Come fai a dire il contrario ? Hai aperto la FC e sei andato in controllo stato e hai visto che non ciclava la banda verde in basso ? Nel post precedente parlavi di lampeggio, quindi veniva elaborata a fasi alterne, giusto ? Fai una cosa: sulla linea dell'enable, subito dopo le tue condizioni inserisci in serie un merker disponibile che ti abilita a sua volta una funzione di ADD su doppio intero. Poi fai lo stesso come primo segmento della funzione secondo te non elaborata, scegliendo lo stesso merker di abilitazione ma una DW di conteggio diversa. Prima di caricare il programma assicurati che il merker di abilitazione sia a 0 come pure le dword di conteggio. Solo a caricamento ultimato imposta a 1 il merker di abilitazione, e verificare i valori della dword, che dovrebbe essere sempre coincidenti. Facci sapere. Non è che ti sei lasciato ingannare dal colore del bordo della FC ??? Devi sapere che il fatto che sia tratteggiata e non colorata di verde non è indice di mancata elaborazione.
rixio Inserita: 28 maggio 2010 Autore Segnala Inserita: 28 maggio 2010 trovato il problema:un rung che ha più move per il reset di allarmi in una db, non permette la corretta esecuzione del blocco.los copo della linea di codice è sovrascrivere tutti i bit di una db e lo fa semplicemente con delle move di tutti zero, ho messo in allegato un immagine
stilnovo Inserita: 28 maggio 2010 Segnala Inserita: 28 maggio 2010 Premesso che starti dietro non è semplice, mi sembra di capire che il tuo problema derivasse dal fatto di entrare nella tua funzione dopo aver azzerato le word fino alla 4 ma prima di azzerare le word 6-8-10 e quindi avevi un funzionamento anomalo... giusto ?
rixio Inserita: 6 giugno 2010 Autore Segnala Inserita: 6 giugno 2010 Ho risolto il problema ricreando al funzione. Adesso tutto funziona, ho però un ulteriore problema con le vat , vorrei forzare un insieme di variabili circa 120 sul simulatore plcsim, le comando ma me ne forza solo quelle che vedo in schermata circa 20 , mentre le restanti non vengono coamdnate. anche se riesco a forzarle manualmente al ciclo successivo il simulatore me le resetta. C'è qualche emccanismo di prioirtà di plcsim sulle vat? Queste non dovrebebro avere la precedenza?
batta Inserita: 6 giugno 2010 Segnala Inserita: 6 giugno 2010 In una tabella VAT si effettuano scritture di variabili, da non confondere assolutamente con le forzature.Questo significa che tu scrivi il valore in un determinato istante e basta.Se nel programma ci sono poi istruzioni che scrivono nella variabile un altro valore, quello che tu hai scritto da VAT viene sovrascritto.
rixio Inserita: 7 giugno 2010 Autore Segnala Inserita: 7 giugno 2010 l'idea di fare era forzare una serie di ingressi dalle vat, invece di selezionarli manualmente uno ad uno da plcsim.Vorrei avere qualche idea da utilizzare per variarle rapidamente
batta Inserita: 8 giugno 2010 Segnala Inserita: 8 giugno 2010 (modificato) Gli ingressi e le uscite li puoi forzare, ma non nelle VAT.Nelle VAT fai sempre e solo scritture. Per le forzature devi, dalla VAT, aprire una tabella di forzamento (Variabile --> Forzamento). Modificato: 8 giugno 2010 da batta
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