biondo Inserito: 17 dicembre 2009 Segnala Share Inserito: 17 dicembre 2009 Salve a tutti, sto sperimentando con successo il linguaggio ST dei blocchi funzione, ora pero' avrei bisogno di creare una sorta di inizializzazione del blocco ogni volta che riceve l'abilitazione EN=true.Utilizzando una versione un po' vecchiotta di CXONE (ver.1.1) non sono riuscito a trovare nel linguaggio St l'istruzione EDGE_POS che in altri plc esiste......Come posso crearmi un semplice programmino che ogni volta che l'FB riceve l'abilitazione (cioè EN passa da basso a alto) io all'interno del FB eseguo un reset di tutte le variabili interne per partire con una situazione "pulita".Qualcuno ha avuto modo di sperimentare qualcosa di simile ??Grazie per la collaborazione e l'aiuto Link al commento Condividi su altri siti More sharing options...
0.0 Inserita: 19 dicembre 2009 Segnala Share Inserita: 19 dicembre 2009 Qualcosa del genere dovrebbe funzionare (non ho CX-Programmer su questo computer, quindi mi scuso per eventuali errori di sintassi):IF EN == FALSE THEN tsEN := false;END IFIF (EN == TRUE) AND (tsEN == FALSE) THEN codice di reset .... tsEN := TRUE;END IFCiao. Link al commento Condividi su altri siti More sharing options...
biondo Inserita: 19 dicembre 2009 Autore Segnala Share Inserita: 19 dicembre 2009 Purtroppo non funziona per il semplice fatto che quando togli l'alimentazione al blocco funzione (EN=false) in realtà il blocco stesso non viene piu' eseguito, è come se fosse un Jump, e quindi la parteIF EN == FALSE THENtsEN := false;END IFnon viene eseguita........Forse potrei lasciare sempre alimentato il mio FB e poi con un ingresso ausiliario eseguire l'inizializzazione .....provo poi vi faccio sapere !!!! Link al commento Condividi su altri siti More sharing options...
biondo Inserita: 21 dicembre 2009 Autore Segnala Share Inserita: 21 dicembre 2009 Facendo così....funziona ...ho inserito negli ingressi un Input di tipo bool che quando va true mi resetta tutte le mie variabili e contatori vari....poi lascio sempre a On l'ingresso del mio FB e quando mi serve riinizializzarlo ,metto a true l'ingresso di reset ....e il gioco è fatto !!!Così facendo ho trovato si una scappatoia, ma il tempo ciclo ne soffre un po' in quando il mio FB è sempre "alimentato".......ci sarà pure un sistema......Qualche altra idea ?? Link al commento Condividi su altri siti More sharing options...
bonibellid Inserita: 31 dicembre 2009 Segnala Share Inserita: 31 dicembre 2009 Provo A Buttartela Lì....Se Inserisci Una Variabile BOOL Con Valore Iniziale FALSE Non MANTENUTA, Quando Abiliti Il Blocco Funzione Questa Variabile E' Sempre 0;Le Prime Righe Del Programma Devono Essere I Tuoi RESET Condizionati Da Un IF Con Variabile := FALSE;Dopo I Reset Metti La Variabile A TRUE, Questa Dovrebbe Rimanere Tale Fino Alla Disabilitazione Dell' EN.E' Da Provare Ma Per Me Funziona.Es:VARIABILI:1_Ciclo BOOL Non Mantenuta Valore_Iniziale FALSEVar_1Var_2Codice:(* Reset *)IF 1_Ciclo = FALSE THENVar_1 := FALSE;Var_2 := FALSE;END_IF;1_Ciclo := TRUE;(*Codice Programma FB Da Qui In Poi*)Sono Quasi Convinto Che FunzioniCiao Link al commento Condividi su altri siti More sharing options...
biondo Inserita: 31 dicembre 2009 Autore Segnala Share Inserita: 31 dicembre 2009 Grazie lo provero' al rientro....e buon 2010 !!!! Link al commento Condividi su altri siti More sharing options...
biondo Inserita: 16 gennaio 2010 Autore Segnala Share Inserita: 16 gennaio 2010 Non funziona...... forse il mio Cxone...è troppo vecchio ?? Ho inserito una variabile di tipo bool che all'inizio vale false, poi all'inizio del mio blocco ho inserito le seguenti righe :init BOOL 0 FALSE varaibile di inizializzazione INTERNAL 0 (* inizializzazione *)if init= false thentempo := 0,0;y := 0,0;val_analog := 0,0;init := true;end_if;da qui in poi se init = true.......e altre condizioni - inizio il mio ciclo...Ho notato che mettendo a true l'ingresso EN del blocco e poi rimettendolo a false la variabile init rimane sempre a true........ L'unico modo per "azzerare" la variabile è di andare in Programm con il CXONE e poi in monitor o run.....qualche altro suggerimento.......??? :blink: Link al commento Condividi su altri siti More sharing options...
RDA Inserita: 16 gennaio 2010 Segnala Share Inserita: 16 gennaio 2010 Per essere elaborato il blocco deve sempre essere attivo l'ingresso EN quindi puoi metti il bit di sempre, se viene disattivato il blocco resta in uno stato di "congelamento".Se ti serve avere in ingresso da elaborare, basta che ti crei nel blocco un altro ingresso al quale vai a connettere il tuo fronte di salita o altro.Saluti. Link al commento Condividi su altri siti More sharing options...
bonibellid Inserita: 16 gennaio 2010 Segnala Share Inserita: 16 gennaio 2010 Ho Provato Hai Ragione...Non C'è Di Pezza, Devi Per Forza Usare Un Ingresso Dell'FB Dedicato Alla Eseguzione Del Tuo Reset.Ciao Link al commento Condividi su altri siti More sharing options...
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