Vai al contenuto
PLC Forum

Partecipa anche tu alla Live su Youtube martedì 28/01/2025 per festeggiare i 24 anni di PLC Forum

Per ulteriori informazioni leggi questa discussione: https://www.plcforum.it/f/topic/326513-28012025




Scorrimento Numeri Su Display Bcd


Messaggi consigliati

Inserito:

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.


Inserita:

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

Inserita:

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.

Inserita:

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.

Inserita:

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.

Inserita:

Per un non programmatore non è semplicissimo ma ci proverò. Grazie

Inserita:

Ciao

Un 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 destro

proprieta 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 AB0

Così eviti di usare i puntatori che per un non programmatore sono un pò complicati.

Inserita:

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...:-)

Inserita:

Ciao

A 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.

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 account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...