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




Registri Di Scorrimento


Messaggi consigliati

Inserito:

Salve a tutti e scusate se vi rompo di nuovo...è un bel po di giorni che adesso mi rompo la testa su sti cavolo di registri di scorrimento...devo svolgere un esercizio il quale ho 10 lampadine e devo farle scorrere ma non riesco a capire veramente come si fa! vi prego datemi una mano


Inserita:

Per prima cosa devi mettere il titolo alla discussione perchè tu hai messo solo un punto. Ora l'ho messo io, ma attenzione..... ;)

Ammettiamo che tu abbia sol 8 lampadine corrispondenti ad 8 uscite.

Alla partenza son tutte spente, poi si accende la prima, poi si spegne la prima e si accende la seconda, e via elencando.

E' questo che vuoi fare?

Cominciamo con questo poi vediamo tutte le varianti in quantità e modalità.

Io suggerirei di farti un temporizzatore che richiama la funzione di scorrimento a tempo fisso.

Entri nella funzione e verifichi 3 condizioni:

  1. Nessuna uscita comandata: metti a 1 il bit 0 ed esci
  2. E' comandata l'uscita 7: resetti l'uscita 7, setti l'uscita 0 ed esci
  3. Non è verificata nessuna delle 2 precedenti condizioni : shift a sx di un passo ed eseci.

Questo è un modo per risolverlo. Se fin qui è chiaro poi vediamo come fare per usare più di 8 uscite.

Inserita:

ah scusa lo avevo messo ho sbagliato a scrivere si vede...a dirti la verità non ho capito :SS

Inserita: (modificato)

A dire il vero neanche io ho capito il messaggio #3 :smile:

Comunque quello che ha scritto Livio mi sembra abbastanza chiaro.

Imposti un tempo di clock ed ogni volta che ricevi un implso fai esattamente quanto indicato da livio che consiste:

- al primo ciclo setti il bit 0;

- se hai su on un bit diverso dal 7 fai uno scorrimento a sinistra di una posizione;

- se hai il bit 7 su on lo resetti e setti il bit 0;

Esattamente come ha indicato Livio.

Modificato: da elettrix01
Inserita:

sisi quello lo ho capito però non riesco a capire come farlo in linguaggio kop in microwin.

Inserita:

Il comando si chiama SHL_* dove al posto di asterisco ci può essere B, W o D a seconda se vuoi far scorrere un byte, una word o una doppiaword.

Esiste anche SHR (scorrimento a destra) ed i comandi di rotazione (ROL e ROR)

Se vuoi usare il registro di scorrimento allora c'è la funzione SHRB sul cui utilizzo ti rimando alla guida in linea (tasto F1 su microwin)

Inserita:

si quelle cose le so però non riesco a farlo funzionare cioè non riesco a capire come costruire il programma con step 7 microwin

Inserita:
non riesco a capire come costruire il programma con step 7 microwin

Rileggi il mio #2; devi solo tradurre in AWL o in KOP quello che ho scritto.

Inserita: (modificato)

Ma come traduco il entra ed esci?

Modificato: da Enrico Ghisla
Inserita: (modificato)

Scusa ma non hai ancora imparato a chiamare le sub?

Oppure metti i serie un contatto aperto o chiuso che ticondiziona l'esecuzione di una riga.

Modificato: da Livio Orsini
Inserita:

Tra i tantissimi sistemi per fare quanto ti occorre, ne esiste uno molto semplice ma che non ti permette di fare pratica con gli shift register: se è questo il compito che si propone il tuo insegnante, prendilo solo come approfondimento personale.

E' possibile trasferire al byte d'uscita direttamente il valore che tu vuoi caricare: per es. se vuoi accendere l'uscita A1.0 puoi farlo trasferendo al byte AB1 il valore 1; se vuoi accendere A1.1, trasferisci il valore 2, etc.

In questa ottica, con la cadenza che decidi (clock di temporizzazione, tempo di conteggio, ...) non devi fare altro che caricare al tuo byte d'uscita i valori 1, 2, 4, 8, 16, 32, 64, 128, 256, ... e così via.

L'operazione di trasferimento byte in MicroWin è MOV_B, prima che tu lo chieda.

Inserita:

per livio: si le sub le ho imparate a chiamare..busanela io questo esercizio lo ho già fatto in questo modo, era solo per imparare gli shiftò..poi sono autodidatta non ho insegnanti di plc :D

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