roberto8303 Inserito: 20 novembre 2009 Segnala Share Inserito: 20 novembre 2009 Devo incrementare la dw10 ogni secondo, per far cio ho messo un temporizzatore che mi da l impulso ogni secondo,ho fatto cosi, solo che non funziona! con il contatto negato t37 ogni secondo il contatore si azzera ma non mi da l impulso al primo segmento!! come posso fare?LD I0.3A T37EU+D 1, VD10LD I0.4AN T37TON T37, 10 Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 20 novembre 2009 Autore Segnala Share Inserita: 20 novembre 2009 ho risolto non poteva funzionare forse perche non avevo fatto questo passaggioLD T37= M0.0e poi cosi LD I0.4AN M0.0TON T37, 10noto pero, che i secondi non scorrono in modo uniforme, dipende quindi dal tempo di scansione della cpu che lo passa per elaborare il programma?e se faccio 4 contatori del genere, avro molta impricisione nel conteggio? Link al commento Condividi su altri siti More sharing options...
busanela Inserita: 21 novembre 2009 Segnala Share Inserita: 21 novembre 2009 (modificato) i secondi non scorrono in modo uniforme, dipende quindi dal tempo di scansione della cpu che lo passa per elaborare il programma?Potrebbe essere; così come potrebbe dipendere dalla velocità che hai impostata nella comunicazione dell'interfaccia PPI, prova ad aumentarla.Altra strada per risolvere il tuo problema, potrebbe essere l'utilizzazione del bit di clock dello special merker byte SMB0, bit SM0.5, che fornisce un'impulso di clock di 1 secondo (0,5 sec. off, 0,5 sec. on) che incrementa un contatore. Modificato: 21 novembre 2009 da busanela Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 21 novembre 2009 Autore Segnala Share Inserita: 21 novembre 2009 Ciao busanela! ho provato con L Sm0.5 e va bene lo stesso, in effetti il tempo si trova, mi andava a scatti nella tabella di stato in real time, ma contando con l orologio alla mano si trova.Mi serve per gestire l alternanza di tre motori, che devono lavorare lo stesso tempo per ''uniformare'' l usura...quindi conto il tempo di lavoro di ognuno con la risoluzione di un secondo.ora pero stavo cercando di capire quanti confronti servono per stabilire la partenza del motore che ha meno secondi ''contati'' nella propia Dword.Solo che ho paura siccome, ancora non ho provato, che tre confronti soltanto non bastano per sapere chi dei tre ha lavorato meno, e stavo pensando di implementare una piccola formula matematica di A B C ( motore 1 -2-3 quindi A B C) e stabilire secondo il risultato che vien fuori cioè chi ha lavorato meno. Link al commento Condividi su altri siti More sharing options...
busanela Inserita: 21 novembre 2009 Segnala Share Inserita: 21 novembre 2009 tre confronti soltanto non bastano per sapere chi dei tre ha lavorato meno, e stavo pensando di implementare una piccola formula matematica di A B C ( motore 1 -2-3 quindi A B C) e stabilire secondo il risultato che vien fuori cioè chi ha lavorato meno.Di confronti te ne occorrono tre e non conosco nessun algoritmo di calcolo che renda il confronto più semplice.devi semplicemente utilizzare dei salti nei casi che le condizioni di confronto siano o vere o false: se DW1>DW2 ( altrimenti ...)e se DW2>DW3 (altrimenti ...) e anche se DW1>DW3 (altrimenti ...) allora la pompa 3 ha il minor tempo lavoro. Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 22 novembre 2009 Autore Segnala Share Inserita: 22 novembre 2009 Perfetto grazie, il mio problema era all inizio, utilizzando il semplice confronto quando tutti i tre tempi erano uguali non partiva nessuno! invece con il tuo consiglio di usare la condizione ''if ed else'' , posso predisporre anche il motore che sara sempre per primo a partire se non sono verificate le condizioni di ore lavorative! grazie busanela! Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 24 novembre 2009 Autore Segnala Share Inserita: 24 novembre 2009 Ho messo in funzione i tre motori con il programma di alternanza, un mio collaboratore mi faceva notare questo.il programma che ho fatto funziona cosiparte prima Aappena si ferma parte Bappena si ferma B parte C faccio un esempio con i numeriA= 5 oresi ferma con il tasto stop o galleggiante A , parte B e inizia a fare ad esempio 3 ore se rifermo con il galleggiante, e riparto subito, riparte sempre B perche era a 3 ore e il sistema non si predispone su C finche B non supera le 5 ore che ha fatto A. quindi B se non viene fermato puo superare le 5 ore e arrivare tipo a 10 ore finche non viene rifermato.chiedo: è normale secondo voi che C che parte da 0 ore e deve recuperare tutte le 10 ore? cioe anche se nell arco delle 10ore interviente il galleggiante piu volte, riparte sempre C ? oppure ad ogni fermata (stato galleggiante) si deve far girare il motore con il numero piu basso di ore lavorative?non so se sono riuscito a spiegare bene Link al commento Condividi su altri siti More sharing options...
busanela Inserita: 25 novembre 2009 Segnala Share Inserita: 25 novembre 2009 è normale secondo voi che C che parte da 0 ore e deve recuperare tutte le 10 ore? cioe anche se nell arco delle 10ore interviente il galleggiante piu volte, riparte sempre C ?Se la pompa C ha il minor numero di ore lavorate, partirà sempre lei fino a chè non supera il numero di tempo lavoro di A o di B. Se per cambiare C deve superare il tempo di B senza valutare se A ha un tempo minore, c'è qualche cosa da rivedere nel ciclo impostato. Link al commento Condividi su altri siti More sharing options...
roberto8303 Inserita: 26 novembre 2009 Autore Segnala Share Inserita: 26 novembre 2009 anche secondo me c è qualcosa che non va, ho fatto solo tre confronti, all inizio pero devo per forza stabilire chi deve partire prima.parte A , poi si ferma A=5oregia da adesso come faccio a stabilire se non con una sequenza logica se deve partire B o C in quanto entrambi sono a 0 ore! Link al commento Condividi su altri siti More sharing options...
busanela Inserita: 27 novembre 2009 Segnala Share Inserita: 27 novembre 2009 gia da adesso come faccio a stabilire se non con una sequenza logica se deve partire B o C in quanto entrambi sono a 0 ore!Poni in un confronto anche il segno di "=": per es., se A<=B (else ...)e se B<C (else ...) e se C<A (else ...) fai partire la pompa A, (else ...). In questo caso, all'avviamento o quando per coincidenza le pompe avranno lo stesso numero di ore, partirà sempre la pompa A. 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