Entrambe le parti precedenti la revisioneRevisione precedenteProssima revisione | Revisione precedenteProssima revisioneEntrambe le parti successive la revisione |
ai-plc [2018/01/12 15:30] – [Ingressi analogici] admin | ai-plc [2018/01/14 18:36] – [Sensori con uscita analogica in tensione] admin |
---|
====== Ingressi analogici ====== | ====== Ingressi analogici ====== |
| |
===== Premessa ===== | ===== Sensori con uscita analogica in tensione ===== |
| |
Molti sensori forniscono un segnale analogico in uscita((questo non è sempre vero: esistono sensori con due soli stati - i finecorsa ad esempio - e sensori integrati con uscita digitale come il [[https://datasheets.maximintegrated.com/en/ds/DS18B20.pdf|18B20 della maxim integrated]])). Ad esempio un sensore di temperatura integrato come l'[[http://www.ti.com/lit/ds/symlink/lm35.pdf|LM35]] fornisce una tensione proporzionale alla temperatura (10mV per ogni grado centigrado). Per utilizzare un segnale di questo tipo in un dispositivo digitale come un PLC o un microcontrollore occorre prima di tutto condizionare il segnale per adattarlo all'ingresso del dispositivo che ne deve fare uso (0 - 10 Volt per il PLC S7-1200). Il condizionamento di solito è affidato a circuiti con amplificatori operazionali che, dato il range di temperatura previsto per l'applicazione, provvede a: | Molti sensori forniscono un segnale analogico in uscita((questo non è sempre vero: esistono sensori con due soli stati - i finecorsa ad esempio - e sensori integrati con uscita digitale come il [[https://datasheets.maximintegrated.com/en/ds/DS18B20.pdf|18B20 della maxim integrated]])). Ad esempio un sensore di temperatura integrato come l'[[http://www.ti.com/lit/ds/symlink/lm35.pdf|LM35]] fornisce una tensione proporzionale alla temperatura (10mV per ogni grado centigrado). Per utilizzare un segnale di questo tipo in un dispositivo digitale come un PLC o un microcontrollore occorre prima di tutto condizionare il segnale per adattarlo all'ingresso del dispositivo che ne deve fare uso (0 - 10 Volt per il PLC S7-1200). Il condizionamento di solito è affidato a circuiti con amplificatori operazionali che, dato il range di temperatura previsto per l'applicazione, provvede a: |
* eventualmente filtrare il segnale per eliminare i disturbi | * eventualmente filtrare il segnale per eliminare i disturbi |
| |
| Ad esempio se si intende sfruttare il sensore tra 0°C e 50°C si può usare un circuito come quello in figura: |
| |
| {{::condizionamento_lm35.png?400|condizionamento per LM35}} |
| |
| ===== Ingressi analogici ===== |
| |
| Il modello di CPU S7-1200 presente in laboratorio dispone di due ingressi analogici con queste caratteristiche: |
| * ingresso in tensione |
| * campo di valori in ingresso 0 ÷ 10 Volt |
| * valori corrispondente 0 ÷ 27648 (tipo int) |
| * risoluzione 10 bit |
| * resistenza di ingresso > 100 kΩ |
| |
| All'occorrenza è possibile collegare alla CPU moduli analogici con un numero maggiore di ingressi, risoluzione più elevata e che accettano segnali bipolari o in corrente. |
| |
| Gli ingressi analogici sono configurabili in TIA Portal dalle proprietà della CPU ma se si usano solo quelli integrati nel PLC le opzioni sono ridotte e non conviene modificare i valori di default. |
| |
| {{:configurazione_ai.png?400|configurazione ingressi analogici}} |
| |
| Come si vede nella figura sopra il valore numerico che rappresenta la tensione in ingresso è contenuto all'indirizzo ''IW64''. Questo valore è il risultato della conversione analogico digitale dell'ADC integrato nel PLC memorizzato con il tipo di dati ''int'' con un valore compreso tra 0 (0 Volt) e 27648 (10 Volt). Valori superiori sono ammessi ma indicano una condizione anomala (overshoot o overflow) dove la tensione in ingresso è maggiore di 10 Volt. |
| |
| Nel programma per PLC è possibile utilizzare il valore numerico contenuto nella word corrispondente ai due ingressi, ''IW64'' per il canale 0 e ''IW66'' per il canale 1, ma è preferibile normalizzare tale valore e riportarlo in un range che corrisponda alla grandezza acquisita dal trasduttore (tra 0 e 50 gradi centigradi, nell'esempio precedente col sensore LM35). Per far questo si usano le istruzioni ''NORM_X'' e ''SCALE_X'' disponibili tra le operazioni di conversione. |
| |
| L'istruzione ''NORM_X'' converte un intervallo di valori numerico (0 ÷ 27648 nel nostro caso) in un numero reale (a 32 bit) compreso tra 0,0 e 1,0. Oltre agli estremi del campo numerico in ingresso e alla variabile da convertire il blocco dispone di un ingresso di abilitazione. Le due uscite contengono il risultato della conversione (OUT) e un'ulteriore uscita che segnala errori nella conversione (il valore 0 indica l'errore). |
| |
| L'istruzione ''SCALE_X'' converte un valore normalizzato compreso tra 0,0 e 1,0 in un valore numerico in un intervallo specificato tramite gli ingressi ''MIN''e ''MAX''.Il risultato è disponibile nell'uscita ''OUT'' e anche in questo caso sono presenti un ingresso e un'uscita di abilitazione. |
===== Navigazione ===== | ===== Navigazione ===== |
| |