Spiddy1 Inserito: 6 dicembre 2022 Segnala Share Inserito: 6 dicembre 2022 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 More sharing options...
drn5 Inserita: 6 dicembre 2022 Segnala Share Inserita: 6 dicembre 2022 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 More sharing options...
Spiddy1 Inserita: 6 dicembre 2022 Autore Segnala Share Inserita: 6 dicembre 2022 Qualche esempio da cui posso iniziare? Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 6 dicembre 2022 Segnala Share Inserita: 6 dicembre 2022 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 More sharing options...
Spiddy1 Inserita: 6 dicembre 2022 Autore Segnala Share Inserita: 6 dicembre 2022 Grazie Livio ma la mia retta non e regolare come posso fare? Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 6 dicembre 2022 Segnala Share Inserita: 6 dicembre 2022 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 More sharing options...
drn5 Inserita: 6 dicembre 2022 Segnala Share Inserita: 6 dicembre 2022 1 ora fa, Livio Orsini ha scritto: a 27xxx (il 27648 Link al commento Condividi su altri siti More sharing options...
batta Inserita: 6 dicembre 2022 Segnala Share Inserita: 6 dicembre 2022 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 More sharing options...
Spiddy1 Inserita: 6 dicembre 2022 Autore Segnala Share Inserita: 6 dicembre 2022 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 More sharing options...
drn5 Inserita: 6 dicembre 2022 Segnala Share Inserita: 6 dicembre 2022 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 More sharing options...
Livio Orsini Inserita: 7 dicembre 2022 Segnala Share Inserita: 7 dicembre 2022 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 More sharing options...
Mattia Spoldi Inserita: 7 dicembre 2022 Segnala Share Inserita: 7 dicembre 2022 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 More sharing options...
Messaggi consigliati
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 accountAccedi
Hai già un account? Accedi qui.
Accedi ora