suffede82 Inserito: 25 ottobre 2010 Segnala Inserito: 25 ottobre 2010 Ho un display in BCD gestito da 4 uscite plc che fanno le varie combinazioni di bit per la visualizzazione dei numeri. Avrei bisogno far scorrere questi numeri, visualizzandoli alternativamente, in caso di contemporaneità di 2 o più numeri. Qualcuno saprebbe indicarmi qualche soluzione, qualche funzione particolare di step7 che potrebbe fare al mio caso? Grazie anticipatamente.
pigroplc Inserita: 25 ottobre 2010 Segnala Inserita: 25 ottobre 2010 con 4 uscite del PLC puoi visualizzare un numero da 0 a 15 a meno di qualche strobe abbiuntivo. Di che display si tratta?pigroplc
mubeta Inserita: 25 ottobre 2010 Segnala Inserita: 25 ottobre 2010 Se hai solo un display, quindi un solo numero, molto semplicemente, con un timer, fai una scansione ciclica dei vari numeri da visualizzare e, con un indice, scegli il numero corretto, quindi aggiorni le quattro uscite. Non servono funzioni particolari. (Se ci fossero funzioni confezionate per un poco tutte le casualità, non immagino le dimensioni delle memorie PLC e dei PC stessi).Piuttosto, colui che dovrà intepretare tali numeri come farà a capire quando inizia la sequenza? Un piccolo tabellone ad una riga sarebbe più leggibile.
suffede82 Inserita: 26 ottobre 2010 Autore Segnala Inserita: 26 ottobre 2010 Il display è un 7 segmenti della Bear,quindi un solo numero. Praticamente deve segnalarmi delle condizioni di anomalia, ad ogni numero corrisponde un allarme. Quindi se mi trovo con più di una condizione di anomalia presente, devo far apparire i numeri in modo ciclico sul display con un intervallo di un paio di secondi. Io che mi arrangio con step7 ma non sono un programmatore sono riusciuto a combinare la contemporaneità di 2 numeri tramite dei timer che me li fanno apparire alternativamente, ma mi sembra un metodo diciamo un pò spartano e molto laborioso se ho diversi numeri da combinare.
mubeta Inserita: 26 ottobre 2010 Segnala Inserita: 26 ottobre 2010 Con un unico display poi, in BCD, visualizzare valori dal n. 0 al n. 9, (dieci valori).1) Crei una matrice di 10 interi, i valori da 0 a 9 coincidono col numero di allarme, i valori diversi, (magari negativi), stanno per nessun allarme.2) Al sopraggiungere di un nuovo allarme, con un loop, scrivi nemma prima cella libera il numero di allarme corrispondente.3) Con un timer che sarà il tuo tempo di scansione, incrementi un indice, se nella cella puntata c'è il valore da 0 a 9, lo visualizzi, altrimenti col relativo loop, continui ad incrementare. Dopo 10 incrementi, se non hai mai trovato valori utili, significa che non ci sono allarmi, e spegni il display.I loop si fanno tramite dei salti indietro e delle uscite per confronto numerico;Il timer è il solito;Il puntamento alla matrice, tramite indice, lo puoi fare usando i puntatori, o in modo più complesso, tramite i puntatori any.
suffede82 Inserita: 27 ottobre 2010 Autore Segnala Inserita: 27 ottobre 2010 Per un non programmatore non è semplicissimo ma ci proverò. Grazie
RickyM Inserita: 29 ottobre 2010 Segnala Inserita: 29 ottobre 2010 CiaoUn sistema più semplice ma meno elegante:Fai scorrere un bit di per esempio MW10 con la funzione SHL_W.L'ingresso EN sarà un impulso di clock, puoi usare anche quello di sistema in hardware, selezioni la cpu, tasto destroproprieta dell'oggetto>ciclo/merker di clock, nella casella byte di merker ci scrivi per esempio 12.Fai attenzione ad usare un byte libero, poi trasferisci l'hardware nella cpu.Ora puoi usare M12.7 seguito da un impulso (P) come clock.In SHL_W scrivi poi Mw10 nel campo In e OUT, nel campo N scrivi W#16#1.Poi usa la funzione CMP: se MW10 è = 0 setta M11.0. (il primo bit da shiftare).Ora fai un and tra M11.0 e il bit del primo allarme, come uscita un Move 1 in AB0 (uscita del display BDC)Poi M11.0 and not bit del primo allarme, come uscita reset M11.0 e set M11.1.e così via.Gli ultimi bit saranno inutilizzati percio M10.2 farà Move 0 in MW10.Se non hai allarmi Move 0 in AB0Così eviti di usare i puntatori che per un non programmatore sono un pò complicati.
suffede82 Inserita: 29 ottobre 2010 Autore Segnala Inserita: 29 ottobre 2010 Questo posso provare a farlo...e comunque è sempre molto più elegante di quello che ho usato io: usando solo merker e un timer e facendo tutte le varie combinazioni di allarmi. 21 segmenti ma funziona...:-)
RickyM Inserita: 30 ottobre 2010 Segnala Inserita: 30 ottobre 2010 CiaoA dire la verità si potrebbe migliorare: al posto di fare reset M11.0 e set M11.1 basta shiftare avanti.Setta per esempio M13.0 e mettila in parallelo al clock M12.7, poi resettala all'uscita della funzione SHL_W.
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