Vai al contenuto
PLC Forum


Esercizio Plc


devilmaycry24

Messaggi consigliati

Salve a tutti e chiedo scusa per la mia ignoranza.

avrei un esercizio che mi sta facendo perdere la ragione, e cerco aiuto.

In pratica ho un pulsante con il quale devo accendere varie luci in questa maniera:

Premo una volta e si accende la luce 1

premo la seconda volta, si spegne la 1 e si accende la 2

premo una terza volta, si spengono 1 e 2 ma si accende la 3

premo una quarta volta, si spengono 1 2 e 3 ma sia accede la 4

premo una quinta volta, si accendono tutte

premo la sesta volta e si spegono tutte.

qualcuno sa darmi una spiegazione per farlo? io ho pensato ad un set reset ma poi mi blocco.

grazie mille a chi puo darmi un aiuto.

andrea

  

Link al commento
Condividi su altri siti


Per prima cosa è previsto espressamente l'uso di un PLC 1200? Perchè questa sezione è dedicata esclusivamente a questo tipo di PLC.

 

Il tuo problema.

Ci sono parecchi modi per risolverlo.

A me viene in mente subito di contare le pigiate del pulsante. A ogni nuova pressione si incrementa un contatore. Quando il conteggio è uguale a 6 spegni tutto e azzeri il contatore.

Associ ad ogni valore di conteggio la corrispettiva configurazione delle lampade.

Link al commento
Condividi su altri siti

2 ore fa, devilmaycry24 ha scritto:

ma con un counter non riesco a fare tutti i passaggi che mi servono

 

Ma non è vero!

Figurati, ci saranno migliaia di applicazioni che funzionano in questo modo oppure con uno shift register come ha suggerito Ifach.

Ragionaci e sforzati un poco. Fatti un diagramma di flusso o scriviti la sequenza logicaper ragionare sul meccanismo.

Link al commento
Condividi su altri siti

non è uno schema complicato e puoi farlo in molti modi uno dei quali è appunto lo shift register. Come esempio ti mando una generica logica a stati (10.00, 20.00 etc) gestita da un Flip FLop comandato dal tuo pulsante (io uso Keep ma va bene anche usare Set Reset) che si può adattare facilmente al tuo PLC. Ricordati di aggiungere la sezione delle uscite che non ho messo, facendo attenzione ad evitare duplicazioni ovviamente. 

2022-02-15 134551.jpg

Link al commento
Condividi su altri siti

1 ora fa, _gian ha scritto:

Come esempio ti mando una generica logica

 

Non hai fatto un gran favore a devilmaycry24.

Essendo un esercizio per una persona che sta imparando non è una cosa buona per lui ritrovarsi un listato quasi pronto.

Se si vuol fare un favore ad un principiante ch sta imparando, bisogna cercare di farlo ragionare guidandolo verso la soluzione, non fornigliela.

Copiare i compiti dal compagno può servire magari per ottenere una suffcienza, ma non si impara niente. Questo l'ho appreso a mie spese, ai tempi della scuola.🙂

Link al commento
Condividi su altri siti

Ciao, esistono tanti modi per farlo il primo passo è riconosce il fronte del pulsante, puoi usare un riconoscimento di fronte o costruirtelo da te, poi devi fare "qualcosa" con questo fronte.

In alternativa a quanto ti hanno già suggerito io ti propongo di usare un array di byte ( meglio ancora di un tipo di dato che ti sei definito ) dove ogni elemento costituisce lo stato delle uscite per ogni step.

La pressione del pulsante incrementa una variabile che usi come indice per il suddetto array, l'elemento indicizzato aggiorna lo stato delle tue uscite.

In questo modo ti sei esercitato sia sui fronti che sugli array e la logica di funzionamento è chiara, se domati ti chiedono di estendere il numero di stati o variare la mappatura diventa un giochetto semplice.

 

 

Link al commento
Condividi su altri siti

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