Crystal1995 Inserito: 9 giugno 2022 Segnala Inserito: 9 giugno 2022 Buongiorno, vi descrivo un problema che è sorto durante un collaudo di una macchina. Nella mia stazione è presente un asse S210 che esegue un orientamento montato su un cartesiano di altra marca. Il mio tipo di programmazione è gestito a fasi quindi, in fase 1 do il via a un posizionamento assoluto, attendo il termine tramite il done e passo alla fase successiva. Ho notato che, comandare due posizionamenti in due fasi successive l'S210 non riesce ad eseguire il posizionamento e mi da il Done del MC_MOVEABSOLUTE. Aggiungendo un ritardo di 30MS il tutto è risolto. E' sicuramente un problema di tempi di comunicazione, come è possibile risolverlo? Tempo OB MC_SERVO 5ms Tempo ciclo CPU 11MS Grazie
batta Inserita: 9 giugno 2022 Segnala Inserita: 9 giugno 2022 Se dai nuovamente l'execute con la nuova quota, dovrebbe andare alla nuova quota anche se non ha terminato il posizionamento precedente. Importante che sia visto un fronte di salita di Execute. O, in altre parole, che per almeno un ciclo l'execute venga visto basso. Probabilmente (mia supposizione) tu tieni alto l'execute per tutto il ciclo, e quei 30 ms di ritardo ti servono per rilevare il successivo fronte. Ma, come detto, un nuovo fronte di execute lancia il nuovo posizionamento anche se quello precedente non era finito. Inoltre, non è necessario che Execute rimanga alto, basta, appunto, il fronte per lanciare il posizionamento.
Crystal1995 Inserita: 9 giugno 2022 Autore Segnala Inserita: 9 giugno 2022 In realtà essendo in due fasi diverse cui terminano con un BEA e la gestione del MC AbSOLUTE è in un altro blocco dovrebbe eccome vedere il fronte
batta Inserita: 9 giugno 2022 Segnala Inserita: 9 giugno 2022 7 ore fa, Crystal1995 ha scritto: In realtà essendo in due fasi diverse cui terminano con un BEA e la gestione del MC AbSOLUTE è in un altro blocco dovrebbe eccome vedere il fronte Non so come sia fatto il programma, ma non basta questo per essere certi che execute venga visto basso per almeno un richiamo di MC_xxxx. Ma fai presto per accertarlo: dove richiami MC_xxxx incrementi una variabile con il fronte di Execute.
Crystal1995 Inserita: 10 giugno 2022 Autore Segnala Inserita: 10 giugno 2022 Ciao Batta ho scoperto il problema, C'era attiva la limitazione di coppia con l'errore di inseguimento disattivato quindi, l'asse non riuscendo a muoversi per la coppia bassa l'MC Move absolute rimaneva in Busy senza dare l'errore di inseguimento. Nella DB dell'oggetto tecnologico vedevo l'errore di inseguimento aumentare. Grazie
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