Vai al contenuto
PLC Forum


Retta Analogica non regolare


Spiddy1

Messaggi consigliati

Buon giorno,

Da Hmi passo un valore che va da 0.0 a 22.0 e lo devo convertire in una analogica 0-32767.

Ho uitlizzato il Normal_X e lo Scale_X ma ho notato che l'analogica non e una retta regolare..

So solo che 0 corrisponde a 0 e 22 corrisponde 32767,come posso crearmi la curva ?

 

Grazie mille

Link al commento
Condividi su altri siti


Dipende dalla precisione richiesta, ma comunque mi sa che devi fartela a mano con n punti. Oppure chi ti ha venduto l'apparecchiatura che sta collegata alla analogica ha qualcosa di pronto.

Link al commento
Condividi su altri siti

56 minuti fa, Spiddy1 ha scritto:

Ho uitlizzato il Normal_X e lo Scale_X ma ho notato che l'analogica non e una retta regolare..

 

Tutti i DAChanno errori di non linearità, infatti le specifiche dei convertitori danno un diagramma con 3 rette: quella centrale è la retta teorica, mentre la retta superiore e quella inferiore rappresentano i limiti di non linearità.

 

Inoltre, se non ricordo male, Siemens per le uscite analogiche non ha f.s. di 32767, ma 27xxx (il valore preciso lo trovi sul manuale) quindi la tua retta sarà determinata dalla equazione x = (27xxx * n) / 22 dove n è il valore impostato nello HMI, x è il valore dei counts da impostare nel DAC.

Link al commento
Condividi su altri siti

11 minuti fa, Spiddy1 ha scritto:

Livio ma la mia retta non e regolare come posso fare?

 

Tu hai una variabile di ingresso dove a 0.0 corrispondono 0V ed a 22.0 corrispondono 10V; è così?

Dove non è regolare? Ad esempio 11.0 corrisponde a 5V o no?

Devi spiegare cosa intendi per non regolare.

 

Se è una retta segue l'equanzione della retta.

Se è una curva può avere la sua equazione in funzione del tipo di curva.

Se è una spezzata bisogna cono scere i le coppie significative.

 

Oppure intendi che per la medesima variazione di counts non si ha la medesima variazione di tensione?

Link al commento
Condividi su altri siti

4 ore fa, Spiddy1 ha scritto:

So solo che 0 corrisponde a 0 e 22 corrisponde 32767,come posso crearmi la curva ?

Spiegati meglio, cos'è che non è regolare?
Non è regolare la conversione 0..22 --> 0..32767, o non è regolare il segnale fisico misurato sull'uscita analogica?
Se non è regolare la conversione, significa che hai sbagliato qualcosa, ma è impossibile dirti cosa senza vedere il programma.
Se non è regolare il valore misurato, è semplicemente perché nei PLC Siemens il valore digitale che corrisponde al 100% del valore del canale analogico non è 32767, ma 27648 (6C00 Hex).

 

Link al commento
Condividi su altri siti

Scusate forse non mi sono spiegato bene,il valore di uscita e un'analogica digitale,non va su un modulo di uscita ma tutto tramite profinet su valore 0-32767..

Non e lineare perche il dispositivo che sto comandando ha un avalore che va da 0.0 a 22.0 real...rispetto ad una analogica 0-32767..

Il problema che noto che se do 11 con valore 11383 non vedo arrivare 11al dispositivo ma bensi esempio 12.1..

Ho sentito il fornitore che mi ha detto che la retta non e porpozionale .....

Quindi cercavo se esisteva una funzione che rispettivamente a tot punti esmpio

 

0    0

4   valore calcolato perce esca 4 sul dispositivo

8   valore calcolato perce esca 8 sul dispositivo

10   valore calcolato perce esca 10 sul dispositivo

12  valore calcolato perce esca 12 sul dispositivo

14  valore calcolato perce esca 14 sul dispositivo

16  valore calcolato perce esca 16 sul dispositivo

18  valore calcolato perce esca 18 sul dispositivo

20  valore calcolato perce esca 20 sul dispositivo

22  32767

 

cosi da fare che se metto 12.3 sull'hmi arrivi 12.3 anche al dispositivo

 

Grazie

 

Link al commento
Condividi su altri siti

1 ora fa, Spiddy1 ha scritto:

problema che noto che se do 11 con valore 11383 non vedo arrivare 11al dispositivo

Beh.. 11 è la metà di 22 quindi seguendo il tuo ragionamento dovresti scrivere 32767/2 .....16384 non 11383...  Che poi sia real o int... Non fa differenza.  Comunque dovrebbe essere il fornitore a darti la retta/curva di quel coso. Sennò devi ricavartelo tu più o meno empiricamente. Che se sei da solo su un isola deserta puoi anche fare, ma nel 2022 mi sembra ridicolo.

Link al commento
Condividi su altri siti

10 ore fa, Spiddy1 ha scritto:

Ho sentito il fornitore che mi ha detto che la retta non e porpozionale .....

 

Prima cosa: perchè non dici di che dispositivo si tratta? Eforse un segreto milatere?

Seconda cosa: il fornitore o ti mette a disposizione la funzione di trasferimento o ti da una tabella dove corrisponde un valore real ad una precisa tensione di ingresso.

Quando avrai questi dati disponibili ti crei una tabella di corrispondenza con "n" coppie tensione-dato, consideri lineari i tratti tra due punti,quindi ti basta risolvere l'equazione della retta tra i 2 punti.

 

 

 

Link al commento
Condividi su altri siti

potresti mettere uno screenshot del software?, almeno si riesce ad aiutarti.

 

In ogni caso io toglierei norm_x e scale_x e userei una proporzione normalissima, nel tuo caso ti basta scrivere

 

analogica := (<valore_HMI> / 22.0) * 32768.0;

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