Vai al contenuto
PLC Forum


Posizionamento Asse Con Cj1Mcpu21 E Encoder + Inverter


amedeoferoci

Messaggi consigliati

grazie harl per le informazioni, quindi tu dici che, per esempio, per impostare una dimensione di 263 mm, ci vorrebbero 263/0.5 = 526 impulsi? ho provato ad impostare un valore simile a questo nell'area DM602 (quota target) ma il calcolo (che il plc effettua in bcd) sembra sempre sballato... non riesco a capire ancora in che formato devo inserire la quota target....

per quanto riguarda precisione e giochi, il programma ha già alcune istruzioni per "recupero giochi" ed inoltre per me questo non sarebbe un elemento essenziale, in quanto anche attualmente, sull'intestatrice che uso, faccio tagliare il primo pezzo, che poi viene misurato con un calibro con la precisione al decimo di millimetro, quindi anche con questa macchina farei la stessa cosa, e cioè tagliare il primo pezzo e verificare la dimensione, questo ogni volta che si cambia dimensione, o dopo un certo numero di bancali di pezzi tagliati

pertanto a me basterebbe poter fare questo posizionamento automatico, che risulta dal confronto tra quota attuale e quota target... comunque provero' a modificare il programma, prendendo spunto dalla sezione "muove spalla manuale" e completando con le attivazioni delle bobine FINO A CHE le due quote (attuale e target) non siano uguali.... o qualcosa del genere! ;)

si, il programma nella parte "muove spalla manuale" ha le due velocità (apertura veloce - chiusura veloce / apertura lenta / chiusura lenta), infatti si attiva una dell 4 bobine nel momento in cui premo il rispettivo pulsante di comando... potrei prendere questo pezzo di programma e spostarlo nella sezione "muove spalla automatico", ma non mi è chiaro ancora come collegarlo.... ci devo studiare sopra un po'... grazie intanto! :thumb_yello:

Link al commento
Condividi su altri siti


io ho inventato i calcoli ei tu che devi vedere gli impulsi giro del tuo encoder facendogli fare un giro completo verifichi quanti impulsi ti da e quanti mm ha fatto ..........................................se tu sei a zero ed la muovi e si muove di 200 impulsi e ti fa 10 cm per fare 20 cm deve contare 400 impulsi è matematica questa non puoi sbagliare .

se da tastierino vuoi mettere dati in bcd ma i conti li fa in binario scrivi in una dm poi converti con il comndo bin per esempio o altre conversioni a te utili


non spostare il programma crea il tuo automatico gli metti le tue uscite sotto keep e poi quel comando lo metti in parallelo alle bobine

Link al commento
Condividi su altri siti

sono riuscito a fare la lettura della dimensione dalla lista di selezione, spostarla in un'area provvisoria, fare la trasformazione da ascii a bcd.... e le istruzioni successive, che già c'erano, fanno la comparazione tra la dimensione target e quella letta dalla macchina..... i valori sono omogenei e la comparazione funziona....quasi ci siamo ;)

ora che dovrei fare? dovrei attivare le bobine per lo spostamento ma..... ho provato a inserire nuovamente la stessa bobina per l'apertura veloce... compilo il programma ma cx-programmer mi dice che c'è un indirizzo duplicato (naturalmente la bobina che ho riscritto...)

come si fa in questo caso? che io sappia, l'indirizzo finale della bobina dovrebbe essere comunque sempre quello... o no?

che mi dite? vi pregherei con un esempio con istruzioni concrete.... :thumb_yello::worthy: se carico il programma modificato qui nel forum, potrebbe essere utile?


Link al commento
Condividi su altri siti

non devi duplicare la bobina, al posto della bobina duplica fai un altra uscita che so 1000.0 e poi prendi il contatto aperto di 1000.0 e lo inserisci nel ramo della bobina vera

Link al commento
Condividi su altri siti

se come dici tu va tutto bene prova a prendere 1455.0 e lo metti in parallelo sulla bobina apre spalla e uno su apre lento spalla praticamente quando il bit 1455.0 è on attiva uscita apre spalla e apre lento spalla

Link al commento
Condividi su altri siti

grazie harl, non ci avevo pensato! :smile:

solo che ora è apparso un altro problema <_< nella parte in cui si tratta il "recupero giochi" ... mi appare un errore all'indirizzo D608 e quindi il risultato del D610 (quota recupero giochi) è sempre zero, percio' nell'istruzione piu sotto (maggiore o uguale di L(326) ), la comparazione tra D600 e D610 non avviene in modo corretto....

devo capire se il recuper ogiochi effettivamente lo potrei togliere.... non mi serve, come già dicevo, in quanto misuro sempre il primo pezzo della serie con un calibro e aggiusto di conseguenza spostando leggermente un disco di taglio...

c'è ancora da rifgletterci un po'...

Link al commento
Condividi su altri siti

ho modificato il programma escludendo il recupero giochi ed ho messo una semplice comparazione tra quota target e quota reale. A seconda della posizione in cui si trova la macchina, se la quota target è minore o maggiore di quella reale, la macchina attiverà l'apertura o la chiusura della spalla. se la quota è uguale, il movimento si ferma.

tuttavia ho un dubbio: ho inserito due pulsanti sul pannello ns5, uno di start e uno di stop nella parte di comando automatico (per evitare che premendo dalla lista di selezione la misura voluta, la macchian si metta subito in moto), abbinando lo start al 1450.00 e lo stop al 1450.03 , così com'era già prima (il 1450.00 attiva il bit 1450.01 che va ad attivare la continuità nelle successive istruzioni di comparazione delle misure)

solo che non appena seleziono la quota target dalal lista, col simulator inizia subito l'accensione della bobina di apertura o chiusura, quindi la macchina dovrebbe muoversi subito senza altre conferme.....

mi potresti dare una dritta in questo punto harl? ;) come vedi ci sono quasi.... anche se al momento sposto la macchina con la velocità alta.... come si diceva qualche post prima, si potrebbe fare un programma che sposta veloce fino a quasi la quota target e nell'ultimo tratto sposta lento.... ma qui già siamo alle raffinatezze :P

ora carico il programma modificato, che sembrerebbe funzionare (e che domani probabilmente provero' nella macchina)... ma mi piacerebbe chiarire questo aspetto dei pulsanti start/stop che andrebbero effettivamente a consentire il movimento dopo aver scelto la quota target... spero di essere riuscito a spiegare!

Modificato: da amedeoferoci
Link al commento
Condividi su altri siti

a dire il vero li impazzisco anch'io , sto compilando un programma dove se prima non apri una valvola non fai partire una pompa .......................

al momento ho fatto una macro ovvero il pulsante pompa prima di andare on esegue un msg dove se si ok on uscita se no off uscita

crea una macro sul contatto off e compila questo dove al posto 2001,0 metti il tuo contatto

IF ($HB0==1);
$W101=MSGBOX(" HAI APERTO UNA VALVOLA DI SCARICO","TITOLO",H31);
ENDIF;
IF ($W101==3);
$HB0=0;
ENDIF;
WRITEHOSTB([sERIALA], 100, 2001, 0, $HB0,1);
rispetta virgole e punti vari
il pulsante crea unpulsante tipo 2-1 scrivi indirizzo interno memoria pannello $hb0 visualizza indirizzo 1 il tuo contatto nel mio caso 2001.0

non capisco bene come inserire le foto qui


snapsh10.png


snapsh11.png


snapsh12.png


fammi sapere se cosi va bene

Link al commento
Condividi su altri siti

idea al volo senza guardare i contatti inventati al volo cerca solo di capire il funzionamento, ho fatto due sottrazioni cosi il valore è sempre positivo coi valori negativi io litigo

se la differenza è maggiore vado col bit muovi veloce se la differenza è minore vado col bit in lenta prova e fammi sapere ciao

Link al commento
Condividi su altri siti

grazie harl, gentilissimo e geniale come sempre!! :thumb_yello:

solo che non riesco bene a leggere le ultime immagini.... potresti per favore caricare il file del programma, così come lo hai modificato tu? oppure delle immagini un po' piu' grandi... anche facendo lo zoom non riesco a leggere bene...

scusami, sono una vera seccatura ;)

Link al commento
Condividi su altri siti

  • 2 weeks later...

aggiornamento:

posso dire di aver risolto il problema, in ragione del 95% :thumb_yello:

Per arrivare a questo, ho anche trascorso momenti drammatici :superlol: , come quando (non so ancora nemmeno io il perchè) ho cancellato tutte le impostazioni in memoria del plc (segnatamente le aree di memoria CIO, D), ritrovandomi con la macchina completamente sballata (non si muoveva piu ne l'avanzamento, ne l'apertura-chiusura, anche se i due inverter ricevevano i comandi, ma non avendo i riferimenti di velocità e accelerazione.... tutto fermo!)

Al che, senza perdermi d'animo e supportato da harl (che ringrazio pubblicamente :clap: ) ho studiato approfonditamente per diversi giorni (e notti :wacko: ) il programma...

Ma alla fine sono riuscito! ho reimpostato tutte le aree di memoria cancellate, cioè i parametri essenziali per far funzionare la macchina... ed ho scoperto il sistema per eseguire l'apertura automatica.

Perchè dico che ho risolto al 95%? perchè potrei migliorare il programma (e lo faro') inserendo delle istruzioni in base alle quali l'apertura/chiusura automatica possa avvenire nel primo tratto ad una velocità piu' alta, poi quando la macchina arriva vicino alla quota desiderata, riduce la velocità al minimo per permettere un piu' preciso posizionamento....al momento vado in automatico a velocità bassa, proprio per permettere un posizionamento il piu' preciso possibile e per evitare che la macchina, per inerzia, prosegua oltre la quota stabilita, senza piu' fermarsi (è successo ;) )

Intanto con l'occasione ho capito molto meglio la macchina ed ho scoperto tutti i segreti che permettono una gestione totale. Questo è stato il vantaggio delle disavventure occorsemi.

Io vi ringrazio per l'attenzione e l'interesse, è stata una esperienza molto utile (specialmente in futuro, saro' particolarmente attento prima di cancellare la memoria del plc!!! :thumb_yello: )

Grazie e a presto!

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