Emanuele1992 Inserito: 15 febbraio 2023 Segnala Share Inserito: 15 febbraio 2023 Buongiorno a tutti, Avrei bisogno di un aiuto. Dispongo di un PLC siemens s71200 1212DC a cui ho collegato una ciabatta IO-link (IFM) per gestire un encoder assoluto (che monitora la rotazione di un elica), il quale mi rida direttamente un numero intero (ad 8 cifre) Dint nell'indirizzo %ID68. Vorrei convertire questo dato in gradi d'arco, cosi da capire a che angolo si trova la mia elica da 0° a 360°. C'è per caso qualche istruzione dedicata a questo? Altrimenti cosa mi consigliate di fare? grazie in anticipo! Link al commento Condividi su altri siti More sharing options...
batta Inserita: 15 febbraio 2023 Segnala Share Inserita: 15 febbraio 2023 (modificato) 1 ora fa, Emanuele1992 ha scritto: C'è per caso qualche istruzione dedicata a questo? Sì, c'è, è compresa nella matematica. Scusami, non te la prendere, ma si tratta solo di fare una moltiplicazione (o una divisione). Rifettici un attimo. Modificato: 15 febbraio 2023 da batta Link al commento Condividi su altri siti More sharing options...
Emanuele1992 Inserita: 15 febbraio 2023 Autore Segnala Share Inserita: 15 febbraio 2023 Grazie della risposta! No ci mancherebbe che me la prendo anzi, sono ancora novello nella programmazione quindi sono qui per imparare. Devo ancora trovare il mio metodo! Comunque ci rifletto, nel caso mi continuasse a sfuggire lo farò sapere! Grazie ancora Link al commento Condividi su altri siti More sharing options...
batta Inserita: 16 febbraio 2023 Segnala Share Inserita: 16 febbraio 2023 Non riguarda la programmazione, ma solo la matematica. Supponiamo che il tuo encoder ti dia 1000 impulsi per il giro completo (ovvero per 360 °). Supponiamo che tu legga dall'encoder 436 (numero a caso). A cosa corrisponde in gradi? Link al commento Condividi su altri siti More sharing options...
Emanuele1992 Inserita: 16 febbraio 2023 Autore Segnala Share Inserita: 16 febbraio 2023 (modificato) Buongiorno, dovrei fare 1000 impulsi diviso 360° e so quanti impulsi ho ogni grado, poi divido 436 per questo risultato ed ho i gradi, in questo caso verrebbe 156° (arrotondando per eccesso), giusto? Però continua a sfuggirmi come applicarlo nel mio caso. Ho gli impulsi ad un ipotetico 0° che sono 16704391. So che l'encoder ogni giro (360°) mi fa 4000 impulsi. se giro manualmente l'encoder verso destra fino a 90° mi da circa 1000 impulsi in più quindi 16705391, fino a qui ritorna. Ma come faccio a far fare in automatico al mio programma questa operazione ogni volta che cambia il valore degli impulsi? inoltre come faccio a dire al programma che ogni 11,11 (4000 diviso 360°) impulsi in più corrisponde ad 1° di movimento e quindi anche visualizzarlo? Modificato: 16 febbraio 2023 da Emanuele1992 Link al commento Condividi su altri siti More sharing options...
84paolo Inserita: 16 febbraio 2023 Segnala Share Inserita: 16 febbraio 2023 intanto l'encoder va configurato come ciclico, cioè che ad ogni giro riparte da 0. Poi definisci una posizione di zero e lo azzeri. Di li ogni ciclo avrai nmila impulsi e lo rapporti a 360° Link al commento Condividi su altri siti More sharing options...
Emanuele1992 Inserita: 16 febbraio 2023 Autore Segnala Share Inserita: 16 febbraio 2023 ciao 84paolo, scusa ma questo però non mi aiuta, nel senso che io ho una ciabatta io-link che mi gestisce l'encoder e mi riporta dei punti su una variabile. Però poi non saprei come gestirla per fare quello che chiedevo prima. Come dicevo sono un pò agli inizi della programmazione e quindi anche tipo creare una funzione che ad ogni giro mi riparte da 0 mi resta complicato. Vado un pò a tentativi a volte, ma spesso ancora trovo difficoltà. Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 16 febbraio 2023 Segnala Share Inserita: 16 febbraio 2023 (modificato) 1 ora fa, Emanuele1992 ha scritto: So che l'encoder ogni giro (360°) mi fa 4000 impulsi. Se l'encoder ha, come dovrebbe avere, la marca di zero usi quella per azzerare il contatore. Poi o fai coincidere meccanicamente la marca di zero con lo zero meccanico della tua elica, oppure prevedi un ciclo di zero all'inizio del processo. Una volta azzerato il tutto avrai un conteggio che varia tra zero e 4000; la posizione angolare sarà data dalla semplice proporzione 4000:360 = n: x, da cui x = n * 0,09. Ad esempio se conti 1000 impulsi l'angolo corrisponde a 90°. Modificato: 16 febbraio 2023 da Livio Orsini Link al commento Condividi su altri siti More sharing options...
Emanuele1992 Inserita: 16 febbraio 2023 Autore Segnala Share Inserita: 16 febbraio 2023 salve Livio, ok ho capito cosa mi dici, ora faccio qualche prova, nel caso riscrivo. Nel frattempo qualche altra dritta se avete piacere di scrivermela cosi mi faccio un quadro più chiaro sul metodo pratico per gestire queste cose! grazie ancora 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