bluetooth Inserito: 21 maggio 2007 Segnala Inserito: 21 maggio 2007 Ciao a tutti,ringrazio anticipatamente per la vostra disponibilità che mi avete sempre dimostrato.Vi illustro il mio problema:devo creare una funzione d'isteresi, avevo pensato ad una FC. Utilizzo un siemens s7300.Come ingressi ho pensato: T° attuale T° soglia sup T° soglia inffunzionamento manuale/automatico(digitale)se sono in manuale faccio questo controllo, leggo questi ingressi e scrivo su queste uscite:on-off manuale sotto(digitale)on-off manuale sopra(digitale)on-off manuale in finestra(digitale)uscite:(digitale)in finestrasotto soglia sopra sogliaFin qui tutto ok mi sembra;In automatico ho fatto un pò di confusione:faccio i miei confronti tra T° attuale,T° soglia sup, T° soglia inf e comando le mie uscite, vi chiedo se è opportuno usare un conteggio o un db di appoggio per verificare se conteggio=temp_intervallo, prima di effettuare le mie comparazioni e quindi comandare le mie uscite?Aspetto vostri suggerimenti in proposito, esempi, miglioramenti ...... Saluti Luca.
luigi69 Inserita: 21 maggio 2007 Segnala Inserita: 21 maggio 2007 Ciao Lucaperchè vuoi fare una distinzione fra automatico e manuale ? il campo di isteresi deve esserere diverso ?io farei cosicreo un blocco dati di appoggiose immetto la temperatura tramite un pannello operatore, assegno quel valore tramite una variabilees. db1.dbd0 ( usae una dbd può esere fin esagerato...comunque )la tua temperatura es. 40 gradi è contenuta nella db1.dbdo, e lo verifichi anche tramite una VATvuoi ottenere una tolleranza superiore-inferiore di 5 gradi ?L 5T db1.dbd4 adesso il valore 5 è contenuto nella dbi.dbd4la tolleranza nefgativa la ottieni facendo L db1.dbd0l db1.dbd4-Rt db1.dbd8nella dbd8 ti trovi il valore 35 gradila tolleranza positiva in vece la ottieni con +ra questo punto se la temperatura che tu leggi tramite un ingresso analogico, sempre appoggiata in una db è maggiore della db8 (tolleranza positiva ) l'uscita di riscaldo deve essere off, se minore della tolleranza negativa deve essere onspero di averti dato uno spunto di lavorofacci sapere ciao
bluetooth Inserita: 21 maggio 2007 Autore Segnala Inserita: 21 maggio 2007 Ciao Luigi,la distinzione fra automatico e manuale è presente perchè il cliente deve poter comandare le elettrovalvole(o altro) a suo piacere indipendentemente dal mio controllo automatico. Quello che mi dici è ok concordo in pieno, però ti chiedo mi conviene usare un FB con il suo db d'istanza e non un FC perchè i valori non sono ritentivi giusto?Altrimenti dovrei usare un db globale che mi gestisce la mia FC, vero?Grazie saluti Luca.
Ecup Inserita: 22 maggio 2007 Segnala Inserita: 22 maggio 2007 la distinzione fra automatico e manuale è presente perchè il cliente deve poter comandare le elettrovalvole(o altro) a suo piacere indipendentemente dal mio controllo automatico.Questo, secondo me, ha poco a che fare con il discorso dell'isteresi... avrai un comando "automatico" di controllo della valvola che deriva dai calcoli fatti considwerando l'isteresi, e un comando "manuale" che lavora in parallelo a quello automatico. Per esemplificare:U modo_autoU cmd_autoOUN modo_autoU cmd_man= EVciao
bluetooth Inserita: 22 maggio 2007 Autore Segnala Inserita: 22 maggio 2007 Questo, secondo me, ha poco a che fare con il discorso dell'isteresi... avrai un comando "automatico" di controllo della valvola che deriva dai calcoli fatti considwerando l'isteresi, e un comando "manuale" che lavora in parallelo a quello automatico. Per esemplificare:U modo_autoU cmd_autoOUN modo_autoU cmd_man= EVCiao Ecup, è giusto quello che dici ed è proprio quello che ho fatto io.Saluti Luca
dulby82 Inserita: 9 ottobre 2012 Segnala Inserita: 9 ottobre 2012 Ciao a tutti, ho un problema simile ma stavolta si tratta di isteresi di sonde, ad esempio un sensore di livello. Vorrei creare una funzione "globale" dove passare: In ingresso: 1) Stato del sensore 2) Ritardo su sensore attivo per rilevare l'effettiva "accensione" del sensore. 3) Ritardo su sensore disattivo per rilevare l'effettivo "spegnimento" del sensore. In uscita: Stato del sensore "filtrato". Il problema è che i due tempi di ritardo posso essere millisecondi o centesimi o secondi. Vorrei inoltre sfruttare meno risorse possibile in termini di timers da utilizzare ecc. Però, come faccio a gestire i tempi in maniera locale dentro la mia FC senza utilizzate timers di tipo T e in modo che possa richiamare la mia FC da piu' parti? Non so se sono stato chiaro....!
JumpMan Inserita: 9 ottobre 2012 Segnala Inserita: 9 ottobre 2012 Però, come faccio a gestire i tempi in maniera locale dentro la mia FC senza utilizzate timers di tipo T e in modo che possa richiamare la mia FC da piu' parti? Devi passare all'FC una word contenente il valore OB1_PREV_CYCLE (tempo scansione precedente OB1 in ms) così la usi per incrementare un contatore interno all'FC (una double-word) ... se usi un FB il contatore lo metti in una STAT e sei a posto, altrimenti lo devi mettere in una variabile IN-OUT e allocare (dichiarare) una variabile diversa ad ogni richiamo dell'FC... Spero di essermi spiegato bene... ciao
dulby82 Inserita: 10 ottobre 2012 Segnala Inserita: 10 ottobre 2012 Devi passare all'FC una word contenente il valore OB1_PREV_CYCLE (tempo scansione precedente OB1 in ms) così la usi per incrementare un contatore interno all'FC (una double-word) ... se usi un FB il contatore lo metti in una STAT e sei a posto, altrimenti lo devi mettere in una variabile IN-OUT e allocare (dichiarare) una variabile diversa ad ogni richiamo dell'FC... Spero di essermi spiegato bene... ciao Grazie per il suggerimento, provo e poi ti faccio sapere
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