Vai al contenuto
PLC Forum


Perchè 27648 - analogiche


Messaggi consigliati

Inserito:

Da neofita e pollo

Perchè si usa il numero 27648 per convertire una lettura su porte analogiche Siemens e non il 32767 che corrisponde ai canonici 15 bit di risoluzione scheda ?


emanuele.croci
Inserita:

Credo (ma non sono sicuro...) per darti un po' di margine oltre i 10 volt o oltre quello che è il tuo fondoscala analogico.

Ad esempio, potresti leggere 10.5 VDC = 28500.

(Il 32767, se mai dovessi leggerlo, è da interpretare come errore)

Ciao, Emanuele

Inserita:

... e nello stesso tempo e' un numero che in binario si esprime con i soli 5 bit piu' significativi diversi da zero:

110110000000000

puo' quindi essere rappresentato anche nelle schede con convertitore A/D a bassa risoluzione che poi spostano le cifre a sinistra riempiendo a destra con gli zeri necessari.

Inserita: (modificato)

Dunque, in S7 i valori analogici usano la rappresentazione binaria in complemento a due.

Il valore e' positivo se il bit N. 15 = 0 e negativo se = 1.

Se la risoluzione del modulo analogico e minore da 15 bits allora il valore analogico viene scritto nel accumulatore "left-justified".Le posizioni per i bits meno significativi non usati vengono riempiti con valori zero.

Per la scheda SM332 AO 8 x 12 bits ad esempio, i valori bipolari hanno una risoluzione 11 bits + segno e quelli unipolari a 12 bits.

Il range adottato per questi valori analogici hanno la seguente forma seguendo le specifiche del costruttore:

Bipolar values

RANGE            DEC                   HEX                -/+10 V                   -/+20 mA      
-------------------------------------------------------------------------------------------------------
Overflow        +32767                 7FFF               0.0000                    0.000
Overrange       +27649 <-> +32511      6C01 <-> 7EFF     +10.0004 <-> +11.7589     +20.0007 <-> +23.515
Nominal range   -27647 <-> +27648      9400 <-> 6C00     -10.00   <-> +10.00       -20.000  <-> +20.000 
Underrange      -27649 <-> -32512      8100 <-> 93FF     -10.0004 <-> -11.7589     -20.000  <-> -23.515
Underflow       -32648                 8000               0.0000                     0.000

Unipolar values

RANGE            DEC                   HEX                0 to 10 V                   4 to 20 mA      
-------------------------------------------------------------------------------------------------------
Overflow        +32767                 7FFF               0.0000                    0.000
Overrange       +27649 <-> +32511      6C01 <-> 7EFF     +10.0004 <-> +11.7589     +20.0005 <-> +22.818
Nominal range        0 <-> +27648         0 <-> 6C00       0      <-> +10.00       + 4.000  <-> +20.000 
Underrange          -1 <->  -6912      FFFF <-> E500     -0.0000  <->  0.0000      + 3.9995 <->   0.000
Underflow       -32648                 8000               0.0000                     0.000

Modificato: da Savino
Inserita:

Non ho capito molto se magari fai un esempio il più banale possibile

Ma vale anche per le schede di input analogiche sm...331-7k....ecc

Inserita: (modificato)

Mettiamo che vuoi leggere un valore anlogico di un segnale in 4-20mA

   0,00%                  50,00%                  100,00%
   +------------------------+------------------------+  percentage range
   0                      13824                    27648
   +------------------------+------------------------+  S7 system units
   4mA                     12mA                     20mA
   +------------------------+------------------------+   input range
Inp_%Val [%]= PEW_Val * 100 / 27648;                  // ricava il valore percentuale del segnale. 

InpAnalogVal [mA] = ( Inp_%Val * 16 / 100 )  +  4     // 16 = 20 - 4  ( limite max - limite min) 
                                                      // => 16 mA = 100%

Esempio:

PEW = 20736 units (valore in input ricavato dal canale analogico della scheda)

Inp_%Val=75%

InpAnalogVal = 16 mA .

Poi il range 16 mA potrebbe essere sostituito per una variabile di proccesso in corrispondenza, tipo temperatura, pressione...

Questo e' per darti una idea di massima di come usare il 27648 ... potresti usare anche altri metodi, algoritmi semplificati, roba del genere..etc.

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