Vai al contenuto
PLC Forum


Interruttore Bcd


Messaggi consigliati

Inserito:

Ciao a tutti,

sono un novello del s7-200 e vorrei una spiegazione sommaria visto che sarò un pò vago:

possiedo un interruttore rotativo bcd a 16 posizioni.Vorrei sapere come i pin A-B-C-D una volta collegati agli ingressi possono essere gestiti in un plc.

Ad ogni posizione vorrei far corrispondere un'uscita e fin qui lo posso fare anche con i contatti (credo!!) ma volevo sapere se ci sono delle operazioni dedicate appositamente per questo tipo di applicazioni.

Ho sentito parlare di accumulatori (AC0,AC1...),sono fuori strada?

Anticipatamente ringrazio


Inserita:

Non l'ho mai usata ma dovrebbe essere adatta l'istruzione DECO.

Se non ricordo male basta passare in ingresso una word i cui 4 bit meno significativi vengono decodificati in modo da settare uno solo dei 16 bit in uscita.

AC0 e AC1 sono dei registri a 32 bit che puoi usare per appoggiare temporaneamente delle variabili senza sprecare quelle dell'area M o V, inoltre possono essere usati anche come puntatore (ma questo non è il caso di approfondirlo se sei un "novellino").

Inserita: (modificato)
..possiedo un interruttore rotativo bcd a 16 posizioni.Vorrei sapere come i pin A-B-C-D una volta collegati agli ingressi possono essere gestiti in un plc.
Dunque, il codice BCD è quindi un codice a 4 bit.

Per rappresentare una cifra decimale si richiedeno 4 cifre binarie. Allora nella rappresentazione di 2 cifre decimali ( 0<->15 ) per ogniuna delle cifre decimali ti ci vorra' da quattro cifre binarie(tetrade).

Pos      BCD

0             0000 
1             0001 
2             0010 
3             0011 
4             0100 
5             0101 
6             0110 
7             0111 
8             1000 
9             1001 
10       0001 0000
11       0001 0001
12       0001 0010
13       0001 0011
14       0001 0100
15       0001 0101
Se il tuo interruttore 16 pos. ha solo 4 pin, allora sarebbe un selettore binario piuttosto.
Pos Bin

0 0000 
1 0001 
2 0010 
3 0011 
4 0100 
5 0101 
6 0110 
7 0111 
8 1000 
9 1001 
10 1010 
11 1011 
12 1100 
13 1101 
14 1110 
15 1111
Ad ogni posizione vorrei far corrispondere un'uscita
Per esempio se colleghi il pin A all'indirizzo 0.0, B a 0.1, C a 0.2 e D a 0.3,di una scheda digitale, ti basterebbero queste poche righe in Ladder.
 
      D       C       B       A
+---------+-------+-------+--------+---------------

|   E 0.3   E 0.2    E 0.1  E 0.0   A 0.0
+----[/]-----[/]-----[/]-----[/]-----( )---+   // 0
|
|
|   E 0.3   E 0.2    E 0.1  E 0.0   A 0.1
+----[/]-----[/]-----[/]-----[ ]-----( )---+   // 1    
|
|
|   E 0.3   E 0.2    E 0.1  E 0.0   A 0.2
+----[/]-----[/]-----[ ]-----[/]-----( )---+   // 2
|
|
|   E 0.3   E 0.2    E 0.1  E 0.0   A 0.3
+----[/]-----[/]-----[ ]-----[ ]-----( )---+   // 3
|
|
|   E 0.3   E 0.2    E 0.1  E 0.0   A 0.4
+----[/]-----[ ]-----[/]-----[/]-----( )---+   // 4
|
|
|   E 0.3   E 0.2    E 0.1  E 0.0   A 0.5
+----[/]-----[ ]-----[/]-----[ ]-----( )---+   // 5
|
|
|   E 0.3   E 0.2    E 0.1  E 0.0   A 0.6
+----[ ]-----[ ]-----[/]-----[/]-----( )---+   // 6    
|
|
|   E 0.3   E 0.2    E 0.1  E 0.0   A 0.7
+----[/]-----[ ]-----[ ]-----[ ]-----( )---+   // 7
|
|
|   E 0.3   E 0.2    E 0.1  E 0.0   A 1.0
+----[ ]-----[/]-----[/]-----[/]-----( )---+   // 8
|
|
|   E 0.3   E 0.2    E 0.1  E 0.0   A 1.1
+----[ ]-----[/]-----[/]-----[ ]-----( )---+   // 9
|
|
|   E 0.3   E 0.2    E 0.1  E 0.0   A 1.2
+----[ ]-----[/]-----[ ]-----[/]-----( )---+   // 10
|
|
|   E 0.3   E 0.2    E 0.1  E 0.0   A 1.3
+----[ ]-----[/]-----[ ]-----[ ]-----( )---+   // 11
|  
|
|   E 0.3   E 0.2    E 0.1  E 0.0   A 1.4
+----[ ]-----[ ]-----[/]-----[/]-----( )---+   // 12
|
|
|   E 0.3   E 0.2    E 0.1  E 0.0   A 1.5
+----[ ]-----[ ]-----[/]-----[ ]-----( )---+   // 13
|
|
|   E 0.3   E 0.2    E 0.1  E 0.0   A 1.6
+----[ ]-----[ ]-----[ ]-----[/]-----( )---+   // 14
|
|
|   E 0.3   E 0.2    E 0.1  E 0.0   A 1.7
+----[ ]-----[ ]-----[ ]-----[ ]-----( )---+   // 15

Dovresti fare attenzione quando imposti il selettore.. visto che passando da una posizione all'atra, potresti processare una codifica errata, dovuto alla lunghezza non fissa del codice stesso..

Vedi codice GRAY.

Modificato: da Savino

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