Garzo Inserito: 29 maggio 2018 Segnala Share Inserito: 29 maggio 2018 Salve a tutti, è la terza volta che scrivo una discussione inerente a questo mio software, che tra l'altro ho (quasi) definitivamente completato. Solo che: la mia "cassettiera" dispone di 35 celle, in cui per ognuna ho assegnato le proprie quote corrispettive per due motori (X e Y), quindi se mettendo esempio io stia alla Cell 10 con quota 5000 per X, e devo andare alla Cell 15 che ha una quota di 10.000 (supponiamo) io faccio fare la differenza tra la posizione in cui si trova e gli step che deve effettuare. Quindi avrà un moto di 5.000 Hz. Ma nel caso inverso, cioè i movimenti in negativo, alcune volte lo effettua ed altre mi da problemi. Con l'istruzione @PLS2, possiamo decidere se effettuare un moto relativo o assoluto... quindi, #0100 o @0110 (CW o CCW) per il relativo e @0101 per l'assoluto. Adesso, perchè il PLC NON mi da modo di muovermi in assoluto? Bensì solo in relativo ... EDIT: Pensandoci, un'altra soluzione sarebbe mettere due PLS2 in sequenza OR, uno in CW ed uno in CCW. Se il risultato del calcolo è >0 , allora muovo in positivo, se è <0 in CCW. Adesso però, se il mio risultato sarà di -1.000 (supponiamo) vado in CCW, ma alla memoria devo assegnare un valore positivo. Con quale istruzione converte il mio -1.000 in +1.000 prima di spostarlo nel Target del PLS2? Grazie a tutti in anticipo per le risposte Link al commento Condividi su altri siti More sharing options...
Ctec Inserita: 29 maggio 2018 Segnala Share Inserita: 29 maggio 2018 Se nelle impostazioni dell'uscita a treno di impulsi non hai messo Mantenimento ma Non Definito, mi pare proprio che senza aver fatto l'azzeramento (ORG) non può fare calcoli assoluti, ma solo relativi. Controlla un poco. Lavorare in assoluto semplifica tantissimo le cose, fa tutto lui... E mai avuto un problema. L'istruzione per cambiare segno (a parte la moltiplicazione per -1) è la NEG (NEGL per valori DINT) Link al commento Condividi su altri siti More sharing options...
Garzo Inserita: 29 maggio 2018 Autore Segnala Share Inserita: 29 maggio 2018 Avevo inserito Mantenimento, forse sono gli extra-corsa il problema? Devo mettere NO? (Normally Open) P.S. Lo so che moltiplicando per -1 cambia segno, infatti mi interessava l'istruzione vera e propria xD ho tutto in sequenze OR P.S. l'homing la faccio io manualmente con varie istruzioni, non uso ORG Link al commento Condividi su altri siti More sharing options...
Ctec Inserita: 29 maggio 2018 Segnala Share Inserita: 29 maggio 2018 No, i limiti, se rovesci, impediscono qualsiasi movimento. Ma lo fai l'azzeramento (ORG)? Altrimenti non può avere un riferimento assoluto. Vedo che nelle impostazioni non l'hai attivato (ricerca origine) per cui dubito. Se non ha un riferimento, qualsiasi esso sia, che dica al controllo "sei qui" almeno una volta, non può fare i calcoli di posizionamento, e quindi accetta solo moti relativi, dove i calcoli li fai te. Link al commento Condividi su altri siti More sharing options...
Garzo Inserita: 29 maggio 2018 Autore Segnala Share Inserita: 29 maggio 2018 5 ore fa, Ctec scrisse: Ma lo fai l'azzeramento (ORG)? Altrimenti non può avere un riferimento assoluto. Vedo che nelle impostazioni non l'hai attivato (ricerca origine) per cui dubito. Per essere in condizione di poter fare l'homing con ORG, che impostazioni devo modificare sulle uscite ad impulsi? (0 e 1) io ho gli extra corsa per X e Y, in questo caso sono 0.00 e 0.02 ... come faccio a dire al PLC quando si trova su di essi? ed impostarla come origine? Link al commento Condividi su altri siti More sharing options...
Garzo Inserita: 29 maggio 2018 Autore Segnala Share Inserita: 29 maggio 2018 EDIT: NEG non può essere usata per le DINT (NEGL) non esiste proprio il comando. Moltiplicando invece, il risultato per -1, non mi trasferisce il risultato negativo. Link al commento Condividi su altri siti More sharing options...
Garzo Inserita: 29 maggio 2018 Autore Segnala Share Inserita: 29 maggio 2018 Ragazzi abbiamo bisogno solo del comando che mi converte il valore della memoria di segno. Esempio da -5000 a +5000, o comunque una operazione che me lo permetta. (NEG fa un'altra cosa da come diceva Ctec) ho provato a moltiplicare per -1, non mi manda il risultato. Link al commento Condividi su altri siti More sharing options...
Ctec Inserita: 29 maggio 2018 Segnala Share Inserita: 29 maggio 2018 Già, il CP1E (che non uso proprio mai, troppo segalitico) non ha la NEGL, contrariamente ai CP1L e superiori. E chi se lo ricordava. Qui vedi come fare la moltiplicazione per -1, simulata su un CP1E-NA Il discorso sulla ORG è lunghetto, dai un'occhiata al manuale prima... Link al commento Condividi su altri siti More sharing options...
Ctec Inserita: 29 maggio 2018 Segnala Share Inserita: 29 maggio 2018 E qui faccio vedere che la NEG funziona, ma su valori INT (1 word) Link al commento Condividi su altri siti More sharing options...
Garzo Inserita: 30 maggio 2018 Autore Segnala Share Inserita: 30 maggio 2018 16 ore fa, Ctec scrisse: Già, il CP1E (che non uso proprio mai, troppo segalitico) non ha la NEGL, contrariamente ai CP1L e superiori. E chi se lo ricordava. Qui vedi come fare la moltiplicazione per -1, simulata su un CP1E-NA Buongiorno Ctec e grazie mille per le risposte ! Quindi, se non ho capito bene, devo moltiplicare la mia DINT per -1 e impostare una LINT come risultato ? E poi muovere il valore della LINT nella DINT iniziale, con cui ho eseguito la moltiplicazione? Perchè mettendo il risultato in una Doppia word (ho provato anche a mettere il risultato in se stesso) non mi da modo di effettuarla. Già che ci siamo, come hai messo la visualizzazione delle istruzioni in orizzontale? xD With best regards -Fede RE-EDIT: La mia situazione attuale è questa ... Link al commento Condividi su altri siti More sharing options...
Ctec Inserita: 30 maggio 2018 Segnala Share Inserita: 30 maggio 2018 Si, definiscila come LINT. L'opzione orizzontale la trovi in Strumenti -> Opzioni... e poi spunta Mostra Istruzioni Output Orizzontalmente Molto più carino, e leggibile, vero? Link al commento Condividi su altri siti More sharing options...
Garzo Inserita: 30 maggio 2018 Autore Segnala Share Inserita: 30 maggio 2018 Si così è mooolto meglio ! Comunque, ho provato ad inviarti un MP ma penso te abbia disattivato l'opzione ... per cui, se ne hai voglia riattivala oppure inviami un indirizzo e-mail dove posso scriverti, vorrei proporti una cosa! P.S. Perchè -5000 è maggiore di 0? ... non capisco ....😱😱😱 Link al commento Condividi su altri siti More sharing options...
Ctec Inserita: 30 maggio 2018 Segnala Share Inserita: 30 maggio 2018 Perché per numeri interi non negativi, -5000 è invece un numero mooolto alto, decisamente superiore a 0. Se devi confrontare due interi con segno (che siano a 16, 32 o 64 bit) devi specificare il confronto con segno, Quindi invece di >L devi usare >SL (la S sta per Signed) PS: forse ho la casella piena, dopo guardo Link al commento Condividi su altri siti More sharing options...
Garzo Inserita: 31 maggio 2018 Autore Segnala Share Inserita: 31 maggio 2018 Buongiorno a tutti, riguardo l'homing ... ho letto quasi tutto il cap.12 del manuale, ma ho ancora un dubbio: Usare la ORG è abbastanza scomodA e poco flessibile (per i miei gusti) per cui mi sono creato un riposizionamento "manuale" ... il problema è che volendo adoperare un moto assoluto per i motori devo dire al software almeno una volta "ti trovi all'origine" con la lettura degli extra-corsa in modo che la prende come riferimento (altrimenti non effettua il moto). Ciò è possibile senza l'utilizzo della ORG? Devo usare la INI con trasfrimento PV su porta #2? Se non ho capito male ... Link al commento Condividi su altri siti More sharing options...
Ctec Inserita: 31 maggio 2018 Segnala Share Inserita: 31 maggio 2018 Si, usi la INI, con P= #0 o #1 rispettivamente per asse 0 e 1, C= #2 (cambia valore) e PV= valore in impulsi della posizione (DINT) Link al commento Condividi su altri siti More sharing options...
Garzo Inserita: 1 giugno 2018 Autore Segnala Share Inserita: 1 giugno 2018 A me interessa solamente assegnare ai motori una posizione di 0, una volta sola, in modo da poter eseguire il moto assoluto. 20 ore fa, Ctec scrisse: Si, usi la INI, con P= #0 o #1 rispettivamente per asse 0 e 1, C= #2 (cambia valore) e PV= valore in impulsi della posizione (DINT) Ho provato in questo modo ma nulla, non effettua comunque nessun modo anche dopo il riposizionamento e la @INI. Sembra che questi motori ce l'abbiano proprio con me ... Link al commento Condividi su altri siti More sharing options...
Ctec Inserita: 1 giugno 2018 Segnala Share Inserita: 1 giugno 2018 Oggi sono straincasinato, spero nel fine settimana di riuscire a darti un aiuto Link al commento Condividi su altri siti More sharing options...
Garzo Inserita: 1 giugno 2018 Autore Segnala Share Inserita: 1 giugno 2018 1 ora fa, Ctec scrisse: Oggi sono straincasinato, spero nel fine settimana di riuscire a darti un aiuto Figurati, anch'io ho tantissime cose da fare 🤣. Mi farebbe molto piacere! Data l'evenienza porto il PC a casa, sabato e dom siamo chiusi 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