Vai al contenuto
PLC Forum


Suggerimenti Per Demultiplexer ?


setecastronomy

Messaggi consigliati

setecastronomy

In un slc 500 ultima generazione non riesco a trovare una soluzione soddisfacente per realizzare quello che sostanzialmente è un demultiplexer.

Semplificando la descrizione ho 19 lampade collegate alle uscite del plc e due variabili (supponiamo N7:1 e N7:2) contenenti gli indici delle lampade che devono essere accese.

Un modo perfettamente funzionante di realizzare la cosa è il seguente:

equ(N7:1, 1) oppure equ (N7:2, 1) allora attiva la lampadada 1

...

equ(N7:1, 19) oppure equ (N7:2, 19) allora attiva la lampadada 19

Questa soluzione è però troppo prolissa per i miei gusti per cui avevo pensato di utilizzare l'indirizzamento indiretto sull'istruzione di attivazione dell'uscita. Il bit da attivare sulla parola di uscita sarebbe scelto in base a [N7:1] ovvero al valore di quella variabile.

Mi basterebbero due sole righe, ma ci sono i seguenti problemi:

- il valore delle variabili N7 può cambiare, utilizzando l'indirizzamento indiretto non mi andrebbero a zero le uscite che sono state precedentemente eccitate. Avrei perciò bisogno di un azzeramento preventivo di tutte le uscite e successiva abilitazione solo delle due attualmente selezionate.

- nelle condizioni iniziali nessuna lampada deve essere accesa. E' l'operatore che seleziona prima l'una e poi l'altra. Con l'indirizzamento indiretto si gestisce molto male la condizione in cui è stata effettuata una sola selezione in quanto, se il valore di default di N7:2 è pari al valore attuale di N7:1, c'è un conflitto sullo stato dell'uscita.

Esiste una soluzione elegante al problema oppure devo arrendermi a scrivere quelle 19 brutte righe dell'inizio ?

Aggiungo un altro piccolo rompicapo. Le lampade sono disposte in cerchio con la 1 e la 19 che sono quindi vicine.

Le lampade da selezionare sono adesso 3 e non c'è alcuna restrizione sull'ordine in cui le selezioni sono effettuate

Mi serve della logica per stabilire se le tre lampade sono adiacenti (5 4 6 va bene perchè l'ordine non conta).

Non ho trovato nulla di meglio che elencare tutte le soluzioni corrette

1 e 2 e 3

oppure

2 e 3 e 4

oppure

3 e 4 e 5

...

19 e 1 e 2

Lavorando solo sui contenuti di N7:1, N7:2 ed N7:3 senza imporre che siano ordinate in senso crescente mi sembra che la soluzione sia oltremodo complicata.

Grazie

Filippo

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