xfiless Inserito: 20 febbraio 2010 Segnala Share Inserito: 20 febbraio 2010 (modificato) Salve il mio quesito è questo:devo far comparire su un tabellone gigante una produzione totale di tre o piu linee di produzione, l'incremento del numero viene effettuato ad ogni volta che si chiude un contatto ,ho pensato di utilizzare un vecchio plc S5 utilizzare gli ingressi per le linee e un uscita per la somma di tutte le linee ,mi date un aiuto poichè il problema nasce nel momento in cui tutte le linee contemporaneamente danno gli ingressi . Grazie . Modificato: 20 febbraio 2010 da xfiless Link al commento Condividi su altri siti More sharing options...
batta Inserita: 20 febbraio 2010 Segnala Share Inserita: 20 febbraio 2010 Semplice, devi gestire contapezzi separati per ogni linea, incrementando una word (o Dword, secondo i limiti raggiungibili) sul fronte di salita dei singoli segnali.Poi sommi i singoli contapezzi in un'unica variabile da visualizzare sul pannello. Link al commento Condividi su altri siti More sharing options...
xfiless Inserita: 22 febbraio 2010 Autore Segnala Share Inserita: 22 febbraio 2010 Ciao flavio ,e grazie per avermi risposto ,l'uscita deve essere un bit esempio A0.0posso avere es. 2 ingressi (E0.0;E0.1)che vengono trasferiti in 2 mw o dword differenti sommo le 2 mw ma non so poi come avere un impulso di A0.0 quanto sono la somma dei 2 ingressi.Grazie dell'aiuto. Link al commento Condividi su altri siti More sharing options...
xfiless Inserita: 24 febbraio 2010 Autore Segnala Share Inserita: 24 febbraio 2010 ho utilizzato un ingresso ciascuno per l'incremento di in contatori (z1 e z2)che trasferiscono in 2 mword differenti mw200 e mword 100 le ho sommate (mw4)come in questo :L MW100L MW200+FT MW4 L MW4 L Z0+FUM 50.0 (mi sono creato un lampeggio )zr z0 (conto indietro )U M 50.0=A 1.6 ,mi date un aiuto?Grazie, Enzo. Link al commento Condividi su altri siti More sharing options...
xfiless Inserita: 1 marzo 2010 Autore Segnala Share Inserita: 1 marzo 2010 Perdonatemi, se insisto ma mi sono bloccato,come faccio una volta sommato le 2 variabili in mw4 a trasferire nell'uscita A1.6.il valore del contatore Zx può è essere trasferito nella Mw, ma non posso trasferire il valore della mw nel contatore Zx,grazie . Link al commento Condividi su altri siti More sharing options...
batta Inserita: 2 marzo 2010 Segnala Share Inserita: 2 marzo 2010 Ciao flavio ,e grazie per avermi risposto ,l'uscita deve essere un bit esempio A0.0Perdonatemi, se insisto ma mi sono bloccato,come faccio una volta sommato le 2 variabili in mw4 a trasferire nell'uscita A1.6.il valore del contatore Zx può è essere trasferito nella Mw, ma non posso trasferire il valore della mw nel contatore Zx,grazie .Scusa, ma proprio non riesco a capire cosa intendi.Se vuoi trasferire il valore del conteggio in una uscita digitale, è chiaro che ciò non è possibile.Una uscita digitale può assumere valori 0 oppure 1, e nient'altro.Poi non capisco a cosa ti serva il contatore, come non capisco come tu voglia visualizzare il conteggio totale sul tabellone.Questo tabellone comunica con il plc tramite seriale, oppure dispone solo di ingressi digitali?Se dispone solo di ingressi digitali, come avviane la codifica per la visualizzazione del numero?Cosa devi fare con l'unica uscita digitale che citi nei tuoi post?Spiegati meglio, perché così proprio non si capisce nulla. Link al commento Condividi su altri siti More sharing options...
xfiless Inserita: 2 marzo 2010 Autore Segnala Share Inserita: 2 marzo 2010 il conteggio totale del tabellone viene incrementato ad ogni impulso che glia arriva tramite un contatto di un rele ,la mia uscita dovrebbe pilotare questo rele ,che deve dare tanti impulsi quanti ne sono la somma degli impulsi degli ingressi.E scusami per la mia poco chiarezza. Link al commento Condividi su altri siti More sharing options...
batta Inserita: 2 marzo 2010 Segnala Share Inserita: 2 marzo 2010 Quindi quello di cui avresti bisogno è semplicemente di memorizzare gli impulsi in ingresso (che potrebbero anche essere simultanei) per generare impulsi in uscita separati.Direi che i sistemi possono essere più di uno.Potresti gestire un registro utilizzando le istruzioni di shift.Per ogni impulso in ingresso effettui uno shift a sinistra della variabile e imposti alto l'ultimo bit a destra.Se gestito correttamente, nel caso di tre impulsi simultanei in ingresso ti troveresti con i tre bit a destra alti.Per l'attivazione dell'uscita devi solo controllare lo stato del bit a destra.Se questo bit è alto, attivi l'uscita per un certo tempo. Trascorso questo tempo disattivi l'uscita. Fai partire un altro timer per essere sicuro che l'uscita rimanga bassa per un po' (se la riattivi subito il pannello rileva un solo impulso). Trascorso questo secondo tempo effettui uno shift a destra della variabile.In questo modo avresti creato un registro di tipo LIFO (Last In First Out).Lo stesso identico gioco lo puoi fare, invece che con lo shift, incrementando e decrementando il valore della variabile, e attivando l'uscita se il valore è maggiore di zero. Link al commento Condividi su altri siti More sharing options...
xfiless Inserita: 2 marzo 2010 Autore Segnala Share Inserita: 2 marzo 2010 Grazie ,per l'aiuto. Link al commento Condividi su altri siti More sharing options...
xfiless Inserita: 4 marzo 2010 Autore Segnala Share Inserita: 4 marzo 2010 Salve, ho utilizzato 2 ingressi separati per incrementare 2 mw che poi le ho sommate in un unica mwL MW100L MW200+FT MW2ho :U E 0.0 ; :UN M 0.0 ; := M 0.1 ; :U E 0.0 := M 0.0 : :UN M 0.1 ; se non c'e' l'impulso... :BEB ; ferma qui. :L MW 2 ; altrimenti carica la word MW10 :SRW 1 ; scorri a destra di un posto :T MW 2 ; la salvo :U E 0.1 ; := M 10.7 ; assegna a M10.7 :BEse controllo la variabile mw2 dovrei vedere scorrere i bit non capisco dove commetto l'errore. Link al commento Condividi su altri siti More sharing options...
batta Inserita: 5 marzo 2010 Segnala Share Inserita: 5 marzo 2010 Devi decidere se utilizzare il sistema con scorrimento destra/sinistra oppure con incremento/decremento.Uno esclude l'altro. Link al commento Condividi su altri siti More sharing options...
xfiless Inserita: 5 marzo 2010 Autore Segnala Share Inserita: 5 marzo 2010 il fatto che vorrei fare il sistema a scorrimento sx dx ma propio non mi è riuscito! Link al commento Condividi su altri siti More sharing options...
batta Inserita: 6 marzo 2010 Segnala Share Inserita: 6 marzo 2010 Allora, vediamo di spiegare passo per passo cosa dovresti fare.1) rilevamento fronti di salita dei segnali provenienti dalle linee (e fin qui ci siamo)2) sul fronte di salita del segnale della linea 1 esegui le seguenti operazioni:- scorrimento a sinistra della variabile con l'istruzione SLW 1- set del bit meno significativo (quello più a destra) della variabile. Attenzione che Siemens ordina i byte secondo lo standard Motorola. in una variabile da 16 bit (2 byte) il primo byte è quello a sinistra, ed il secondo è quello a destra. Esempio: se la tua variabile è MW10, questa sarà formata dai byte MB10 (byte più significativo, quello cioè a sinistra) e MB11 (byte meno significativo, quello cioè a destra). Per settare il bit meno significativo (quello a destra) dovrai settare il merker M11.0, e non M10.0.Per semplificare un po', se sei sicuro che un registro di soli 8 bit è sufficiente (credo proprio di sì, dato che le linee sono 3) puoi lavorare con un solo byte, invece che con una word.In questo caso, essendo il byte uno solo, non c'è il problema di considerare come sono disposti i byte.Il codice per eseguire queste operazioni potrebbe essere il seguente (faccio l'esempio con la WORD MW10, poi vedi tu):L MW10 //Carica nell'accumulatore MW10SLW 1 //Effettua lo scorrimento a sx di un bitT MW10 //Scrivi il risultato in MW10UN M11.0 //Questa istruzione potrebbe essere omessaS M11.0 //SET del bit meno significativo di MW103) sul fronte di salita del segnale della linea 2 ripeti le stesse identiche operazioni del punto 2.4) sul fronte di salita della linea N ripeti le stesse identiche operazioni del punto 2.Nota: ripetendo le operazioni, nel caso arrivassero dalle linee impulsi simultanei, verrebbero comunque registrati tutti.5) controlli lo stato del bit meno significativo della word (nell'esempio M11.0) e, se è alto, attivi un timer (esempio T10)6) trascorso il tempo di T10, attivi T117) se M11.0 è alto e T10 è basso (non è ancora trascorso tutto il tempo) attivi l'uscita per dare l'impulso al tabellone8) trascorso anche il tempo T11 resetti T10 ed effettui lo shift a destra della variabile Link al commento Condividi su altri siti More sharing options...
xfiless Inserita: 8 marzo 2010 Autore Segnala Share Inserita: 8 marzo 2010 (modificato) innanzitutto flavio grazie infinite della tua pazienza!ho eseguito in questo modo1) rilevamento fronti di salita dei segnali provenienti dalle lineeU E0.0 // ingresso linea1UN M0.0 //appoggio= M0.1 f.salita linea 1U E0.1 // ingresso linea1UN M0.2 //appoggio= M0.3 //f.salita linea 2_________________________________________________sul fronte di salita del segnale della linea 1 esegui le seguenti operazioni:- scorrimento a sinistra della variabile con l'istruzione SLW 1U M0.1 linea 1L MW10 SLW 1 //Effettua lo scorrimento a sx di un bitT MW10 //Scrivi il risultato in MW10UN M11.0S M11.0 //questo merker va a 1 per attimo e rimane sempre a zero anche quando M0.1 è 1,come anche il m10.7 e il m11.1 sono a zero(chiedo perchè nello stato della variabile non vedo i bit che scorrono?)U M0.3 linea 2L MW10 SLW 1 //Effettua lo scorrimento a sx di un bitT MW10 //Scrivi il risultato in MW10UN M11.0S M11.0 controlli lo stato del bit meno significativo della word (nell'esempio M11.0) e, se è alto, attivi un timer (esempio T10)6) trascorso il tempo di T10, attivi T117) se M11.0 è alto e T10 è basso (non è ancora trascorso tutto il tempo) attivi l'uscita per dare l'impulso al tabellone8) trascorso anche il tempo T11 resetti T10 ed effettui lo shift a destra della variabileU M11.OLKT 035.1SE T10U T10LKT 035.1SE T11U M11.0UN T 10= A1.1 // USCITA X TABELLONEU T11R T10L MW10SRW1 T MW10 Modificato: 8 marzo 2010 da xfiless 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