Jump to content

Suggerimenti Per Demultiplexer ?


Recommended Posts

setecastronomy
Posted

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...