Zeussss Inserito: 15 gennaio 2012 Segnala Share Inserito: 15 gennaio 2012 (modificato) Praticamente voglio realizzare un asse elettrico con un Cj1m-cpu21.Con l'istruzione PRV(881) leggo la frequenza di un encoder, poi la voglio moltiplicare per una costante in virgola mobile (tipo 12,3677) che tiene conto dei rapporti meccanici, e spararla con l'uscita a treno d'impulsi sull'inverter tramite l'istruzione SPED(885).Il problema è che non so quali istruzioni usare per fare la moltiplicazione o meglio per farla non una costante che dovrò inserire manualmente nel software.Per esempio la funzione *D(847) esegue la moltiplicazione, ma il 12,3677 come glielo passo? Modificato: 15 gennaio 2012 da Zeussss Link al commento Condividi su altri siti More sharing options...
Ctec Inserita: 15 gennaio 2012 Segnala Share Inserita: 15 gennaio 2012 Allora, la PRV ti restituisce una doppia word. Supponiamo che il risultato sia in D10 (e D11).A quel punto, devi trasformare il risultato in virgola mobile e metterlo per esempio in D20 (e D22, i virgola mobile sono a 32bit) con la seguenteFLTL D10 D20Poi puoi effettuare la moltiplicazione in virgola mobile, mettendo per esempio il risultato in D30 (e D31, sempre virgola mobile) scrivendo*F D20 +12,3677 d30Ora puoi riconvertire il risultato (arrotondato all'intero) e metterlo in una doppia word D40 (e D41) che invierai alla SPED, scrivendoFIXL D30 D40Quindi, come parametro di impulsi, nella SPED metterai D40Occhio però che tu leggi la frequenza degli IMPULSI dell'encoder, quindi attenzione ai fattori moltiplicativi del numero di impulsi al giro e del moltiplicatore x4 spesso usato per gli ingressi di encoder incrementali. Se viaggi a 100rpm e hai un encoder da 1000 imp/giro, e moltiplichi per 4, leggerai una frequenza di 6667 Hz. La moltiplichi per la tua costante e ottieni 82455. Questo valore, se lo emetti come treno di impulsi, come lo leghi alla frequenza dell'inverter? E poi considera per esempio che molti modelli di inverte hanno una limitazione di frequenza di ingresso di 32kHz o 64kHz, per cui saresti già di fuori con più di 82kHz.Vedi bene cosa devi fare. Link al commento Condividi su altri siti More sharing options...
Zeussss Inserita: 16 gennaio 2012 Autore Segnala Share Inserita: 16 gennaio 2012 Grazie mille! non potevi essere più chiaro!unica cosa, come faccio a sapere se devo fare la moltiplicazione x4?il plc è un cj1m-cpu21... acquisisco da un encoder line driver. Link al commento Condividi su altri siti More sharing options...
Ctec Inserita: 17 gennaio 2012 Segnala Share Inserita: 17 gennaio 2012 La serie CJ1M-CPU2x ha i contatori a fasi differenziali sempre con moltiplicatore 4x, per cui se hai un encoder 100imp/giro, lo vedi come se fossero 400imp/giro.La specifica la trovi al par. 6.1.4 del manuale W395-IT2-03.Sui moduli esterni è possibile scegliere se avere il moltiplicatore oppure no Link al commento Condividi su altri siti More sharing options...
Zeussss Inserita: 18 gennaio 2012 Autore Segnala Share Inserita: 18 gennaio 2012 Ho ancora un dubbio da chiarire...Se uso l'istruzione *F D20 +12,3677 d30 quando scrivo la costante +12,3677 Cx-Programmer mi visualizza il seguente commento:+-0˜̃2047,IRx,--IRx,IRx++,DRx,IRxmentre se scrivo +12 il commento è:IEEE floating pointse invece inserisco +12.3677 dice:IEEE floating point e nella barra in basso ci viene scritto Formato virgola mobile IEEE non validoSembrerebbe che Cx-Programmer interpreti il numero che io inserisco un REAL solo nel caso +12 senza decimali.Commenti? Link al commento Condividi su altri siti More sharing options...
Ctec Inserita: 18 gennaio 2012 Segnala Share Inserita: 18 gennaio 2012 Attento a usare la virgola anzichè il punto. La versione italiana usa la virgola, siamo l'unico paese al mondo... Il punto non va bene e viene visto come errore.Infatti se te apri un software scritto su sistema operativo in italiano su un PC con sistema operativo straniero (sia inglese, ma anche tedesco o ebraico, lo so per esperienza), e provi a compilare avrai degli errori proprio per il fatto che in quei sistemi, invece, il separatore decimale è il punto. Link al commento Condividi su altri siti More sharing options...
Zeussss Inserita: 18 gennaio 2012 Autore Segnala Share Inserita: 18 gennaio 2012 Resta il fatto che se metto la virgola mi da i seguenti commenti:+-0˜̃2047,IRx,--IRx,IRx++,DRx,IRxsembrerebbe interpreti il numero come un indirizzamento indiretto... Link al commento Condividi su altri siti More sharing options...
Ctec Inserita: 18 gennaio 2012 Segnala Share Inserita: 18 gennaio 2012 no, solo che PUOI mettere un indirizzamento indiretto. Fidati.Io non immetto mai i valori andando nei dettagli, e soprattutto non mi fido troppo di quei messaggi.Se noti, infatti, cambia da prima a dopo che metti la virgola... 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