Vai al contenuto
PLC Forum


Numero Divisioni Cpu S7-314C-2 Dn/Dp


R1k0

Messaggi consigliati

Salve,

per la mia tesi di laurea devo programmare una CPU S7-300 modello 314C-2 DN/DP;

in particolare ho la necessità capire come convertire due ingressi analogici (4-20mA) in numeri reali. Più precisamente so come fare e so che la risoluzione di questa CPU è di 12bit (11+ 1 bit di segno) solo che non riesco a trovare qual'è il numero di divisioni per i valori accettabili e qual'è la zona fuori "scala".

Qualcuno sa indicarmi all'interno dei manuali questo parametro come viene nominato oppure se il range è standard per tutte le CPU?(qualsiasi altro suggerimento è più che ben accetto)

Modificato: da R1k0
Link al commento
Condividi su altri siti


Basta un poco di pazienza per fare una ricerca nelle discussioni di questa sezione. Questo argomento è stato pluritrattato; ci sono parecchie risposte di "Batta" che spiegano piuttosto bene come va eseguita la scalatura.

Link al commento
Condividi su altri siti

Chiedo scusa ma forse mi sono espresso male.

Non mi occorre una guida sulla scalatura ma un modo per capire in quante divisioni la CPU in questione divide il range 4-20mA. e di queste quali sono quelle relative ai valori letti e quali indicano la presenza di un malfuzionamento.

Link al commento
Condividi su altri siti

Avevo capito meglio la tua domanda al primo post, nel secondo mi è un pò più confusa.

Comunque, se intendi la risoluzione dell'ingresso, è una semplice espressione matematica:

16 mA / 4095 = 0,0039 mA, il valore di variazione più piccolo che l'ingresso riesce a leggere in risoluzione 12 bit (4095 parti, appunto).

Poi viene quello che non riesco a comprendere, data quella che sembra una risposta ovvia:

e di queste quali sono quelle relative ai valori letti e quali indicano la presenza di un malfuzionamento.

Tutto quello compreso all'interno del range 4-20 è lecito e quindi letto ed elaborato nel processo; quello che sta sopra non è indice di malfunzionamento ma over range e sotto, se non è abilitato il parametro di rilevazione filo interrotto, è considerato zero.

Poi dipende anche da come parametrizzi la tua scheda ingressi.

Modificato: da busanela
Link al commento
Condividi su altri siti

Mi riferivo appunto a quali valori sono considerati Over Range.

Cerco di spiegarmi meglio.

Di queste 4095 divisioni vengono utilizzate tutte per la scalatura del del sagnale o ad esempio le prime 10 indicano un valore inferiore ai 4mA e le ultime 10 indicano che ci sono più di 20mA in ingresso alla scheda?

Modificato: da R1k0
Link al commento
Condividi su altri siti

Mi riferivo appunto a quali valori sono considerati Over Range.

Appunto! Come ti ho scritto nel messaggio #2 è un argomento pluritrattato.

Link al commento
Condividi su altri siti

Scusate se torno sull'argomento ma in rete ho trovato questa tabella che farebbe al caso mio peccato che è di CPU a 16 bit invece che a 12. sapete dove posso trovare la tabella esatta o nel caso convertire questi valori? Oppure ad esempio il numero di valori di Overrange e Overflow sono costanti?

rangeingressianalogici1.png

Link al commento
Condividi su altri siti

Oppure ad esempio il numero di valori di Overrange e Overflow sono costanti?

E' proprio così. I valori della tabella sono sempre validi.

Da un ingresso analogico non leggerai tutti i valori. La lettura sarà a gradini, più o meno grandi, secondo il numero di bit del canale analogico.

Ma i valori limite saranno sempre uguali, indipendentemente dal numero di bit del modulo.

Link al commento
Condividi su altri siti

Quindi se ho capito bene i valori negativi fanno tutti parte dei range di Undershoot e Underflow;

e poi devo dividere 18.96mA (22.96-4) per 2047 divisioni (2^11). Cosi da ottenere poi i range Rated, Overshoot e Overflow. Esatto?

Modificato: da R1k0
Link al commento
Condividi su altri siti

e poi devo dividere 18.96mA (22.96-4) per 2047 divisioni (2^11). Cosi da ottenere poi i range Rated, Overshoot e Overflow. Esatto?

No.

Perché vuoi complicarti la vita?

Di solito non interessa più di tanto conoscere il valore reale in mA del segnale.

Quello che interessa è conoscere il valore della grandezza che si sta misurando.

Supponiamo, solo per fare un esempio, che al tuo ingresso analogico ci sia collegato un trasduttore di pressione 4..20 mA con campo di misura da 0 a 10 bar.

Se hai configurato il canale analogico per segnale 4..20 mA, troverai che:

- con pressione di 0 bar il trasduttore genera un segnale di 4 mA, e il valore del canale analogico sarà 0.

- con pressione di 10 bar il trasduttore genera un segnale di 20 ma, e il valore del canale analogico sarà 27648 (6C00 Hex)

Dovrai quindi occuparti solo di convertire i valori 0..27648 in 0..10 bar.

A tuo piacere scegliere se fare un semplice calcolo o se utilizzare la funzione di libreria Siemens FC105 "SCALE".

Link al commento
Condividi su altri siti

Giusto per aggiungere un piccolo dettaglio a quello che ha già detto "batta" ...se vuoi sapere quando uno dei tuoi canali analogici legge un valore fuori scala basta che ti controlli il valore in punti che ricevi....solitamente nel settaggio standard quando il circuito è interrotto ( es. cavo tagliato o non collegato in maniera esatta) la scheda ti da un valore +/- 32767.........

Link al commento
Condividi su altri siti

Perfetto ho capito tutto.

L'unico problema che mi resta è che i valori che voi mi indicate sono per CPU a 16 bit giusto?

Mentre la mia CPU è a 12 bit quindi non arriverà mai a 27648 (6C00 Hex), ne tanto meno a +/- 32767...

Voglio capire proprio quali sono questi valori per le CPU a 12 Bit.

O meglio immagino che il corrispettivo di +/- 32767 sia */- 2048 ma non so proprio come capire qual'è il corrispettivo 27648.

Link al commento
Condividi su altri siti

Scusa la tua è una CPU 6ES7 314 1AG14 - 0AB0 ???

comunque per toglierti tutti i dubbi...controlla cosa leggi in punti sull'ingresso analogico quando non c'è collegato niente....pero' prima controlla anche la conf hardware della tua scheda analogica.Perché li' è possibile settare cosa visualizzare in caso di rottura cavo.

Link al commento
Condividi su altri siti

NO la mia CPU è 314C-2 DN/DP e la scheda analogica è integrata all'interno poichè è una CPU Compatta. Il problema è che sul manuale della CPU non riesco a trovare indicazioni utili.:(

Link al commento
Condividi su altri siti

L'unico problema che mi resta è che i valori che voi mi indicate sono per CPU a 16 bit giusto?

Mentre la mia CPU è a 12 bit quindi non arriverà mai a 27648 (6C00 Hex), ne tanto meno a +/- 32767...

Noooooo!!!!

Rileggi quello che ho scritto nel post #10.

E poi, nella tabella che hai pubblicato nel post #9, vedi forse un riferimento al numero di bit del modulo analogico?

Non pensi che se i valori pubblicati fossero legati alla risoluzione del modulo, da qualche parte sarebbe stato specificato?

Le cose a volte sono più semplici di quello che pensiamo,

Perché ci vogliamo, a tutti i costi, complicare la vita?

Con un modulo a 15 bit leggi tutti i valori da 0 a 27648 (per restare nei limiti normali del campo di misura): 0, 1, 2 ,3 4, ....

Con un modulo a 14 bit leggerai sempre da 0 a 27648, ma la lettura sarà a gradini di 2: 0, 2, 4, 6, 8...

Con un modulo a 13 bit leggerai sempre da 0 a 27648, ma la lettura sarà a gradini di 4: 0, 4, 8, 12, 16...

In alcuni PLC (di altre marche, intendo) i limiti di lettura dei canali analogici dipendono dalla risoluzione del modulo.

Nei PLC Siemens (e in molti altri) invece, i limiti restano invariati, indipendentemente dalla risoluzione del modulo.

Una bella semplificazione per il programmatore, che non si deve preoccupare di dover fare scalature diverse secondo il modulo utilizzato.

Dimenticavo...

Voglio capire proprio quali sono questi valori per le CPU a 12 Bit.

Non è la CPU a 12 bit, ma il convertitore A/D dell'ingresso analogico.

La CPU di cui disponi (come quasi tutte le CPU Siemens) ha due accumulatori a 32 bit.

Modificato: da batta
Link al commento
Condividi su altri siti

In alcuni PLC (di altre marche, intendo) i limiti di lettura dei canali analogici dipendono dalla risoluzione del modulo.

Nei PLC Siemens (e in molti altri) invece, i limiti restano invariati, indipendentemente dalla risoluzione del modulo.

E' solo dovuto a come sono memorizzati i dati: se con giustificazione a dx (corrispondenza con risoluzione dell'A/D converter), se a sx (larghezza di dato fisso e variazione della quantizzazione).

Modificato: da Livio Orsini
Link al commento
Condividi su altri siti

GRAZIE Batta...Finalmente sono venuto a capo della questione (anche se la tabella l'ho presa da un manuale di una CPU a 16 bit).

Ancora grazie per l'aiuto a tutti quelli che sono intervenuti.

Link al commento
Condividi su altri siti

(anche se la tabella l'ho presa da un manuale di una CPU a 16 bit)

Cosa vuol dire "una cpu a 16 bit"?

Ripeto quanto già scritto nel post precedente: la CPU in questione dispone di due accumulatori a 32 bit.

La risoluzione riguarda gli ingressi e le uscite analogiche, non la cpu.

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