Vai al contenuto
PLC Forum


Problema con moto assoluto CP1E-NA


Garzo

Messaggi consigliati

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

Immagine.jpg

 

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


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

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

Immagine.jpg

 

P.S. l'homing la faccio io manualmente con varie istruzioni, non uso ORG

Link al commento
Condividi su altri siti

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

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

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

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

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

image.png.d0702244b7dc631aec50fdb9a8cf6fbf.png

 

Il discorso sulla ORG è lunghetto, dai un'occhiata al manuale prima...

Link al commento
Condividi su altri siti

 

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

Immagine.jpg

 

RE-EDIT: La mia situazione attuale è questa ...

 

Immagine.jpg

 

Link al commento
Condividi su altri siti

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

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

 

P.S.

Perchè -5000 è maggiore di 0? ... non capisco ....😱😱😱

Immagine.jpg

Link al commento
Condividi su altri siti

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

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

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

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

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