daniele__32 Inserito: 21 aprile 2020 Segnala Share Inserito: 21 aprile 2020 Ciao a tutti, ho un sistema con un asse lineare gestito dal suo motore brushless e quindi dal suo driver. sul sistema e' stato inoltre installato un secondo encoder ssi assoluto che avrebbe la funzione di ridondare il sistema, ovvero di controllare sempre che non ci sia divergenza fra i valori di posizione dati dal resolver del motore e l encoder ssi. questo ssi lo sto gestendo tramite una scheda TposInput controllata da una cpu 1500 safety il controllo di errore di inseguimento deve essere quindi implementato nel plc. la domanda o meglio i dubbi che ho sono: Homing sistema: andando a cercare il sensore di homing il driver del motore setta la quota zero sulla posizione attuale. ma sull encoder assoluto come faccio a scrivere ZERO in caso di homing? ovviamente serve piu al resolver l homing che all SSI in quanto assoluto. ma almeno la prima volta alla prima accensione devono poter avere la quota ZERO sul sensore di riferimento Conteggio spazio percorso ..l albero del motore e' dotato di riduttore con un sistema cinghia ruote dentate per muovere linearmente l asse L encoder ssi e' calettato su uno svolgitore a filo, e l estremo del filo e' fissato sulla parte mobile del sistema che si muove. In caso in cui la slitta parta da quota Zero, quindi dopo aver intercettato il sensore di homing, il valore di conteggio (actual position) dei due trasduttori ( resolver sul brushless ed encoder SSI) mi daranno fuori esatamente lo stesso valore? o a livello meccanico bisogna capire e valutare se ci sono da fare delle scalature. Spero di essere stato chiaro e spero di poter avere feedback.. grazie mille a tutti Link al commento Condividi su altri siti More sharing options...
luigi69 Inserita: 21 aprile 2020 Segnala Share Inserita: 21 aprile 2020 Ciao Daniele, non scrivere la stessa domanda in più sottoforum , se qualcuno sa risponderti, crei solo confusione Link al commento Condividi su altri siti More sharing options...
incus Inserita: 21 aprile 2020 Segnala Share Inserita: 21 aprile 2020 37 minuti fa, daniele__32 ha scritto: encoder assoluto come faccio a scrivere ZERO solitamente gli encoder SSI hanno un ingresso digitale per impostare lo zero, vedi sul manuale dell'encoder. 37 minuti fa, daniele__32 ha scritto: livello meccanico bisogna capire e valutare se ci sono da fare delle scalature è così, non è detto che tirino fuori lo stesso valore, anzi molto poco probabile! Che io sappia gli encoder SSI sono solo assoluti, di conseguenza devi convertire il valore da gradi in posizione lineare ciao Link al commento Condividi su altri siti More sharing options...
incus Inserita: 22 aprile 2020 Segnala Share Inserita: 22 aprile 2020 (modificato) 21 ore fa, incus ha scritto: SSI hanno un ingresso digitale per impostare lo zero se la comunicazione è tramite ingressi ed uscite digitali, se è con bus di campo solitamente è un bit ad impostare lo zero, ma la risposta sta sempre nel manuale dell'encoder stesso Modificato: 22 aprile 2020 da incus Link al commento Condividi su altri siti More sharing options...
daniele__32 Inserita: 23 aprile 2020 Autore Segnala Share Inserita: 23 aprile 2020 incus, da manuale dell encoder ce un pin dedicato per lo zero..io pero il mio encoder lo sto gestendo tramite oggetto tecnologico SSi Abs Encoder tramite una scheda TposInput Link al commento Condividi su altri siti More sharing options...
incus Inserita: 24 aprile 2020 Segnala Share Inserita: 24 aprile 2020 15 ore fa, daniele__32 ha scritto: io pero il mio encoder lo sto gestendo tramite oggetto tecnologico SSi Abs Encoder tramite una scheda TposInput e fino a qui ci siamo, tramite l'interfaccia di parametrizzazione imposti una delle due uscite disponibili sulla scheda come "Use by use program" In questo modo puoi comandare la relativa uscita, in questo caso la DQ0, tramite il programma utente andando ad interagire sulle seguenti variabili della DB di istanza dell'oggetto tecnologico: Fatto questo colleghi il pin del tuo encoder per impostare lo zero all'uscita di cui sopra ed il gioco è fatto. Link al commento Condividi su altri siti More sharing options...
batta Inserita: 24 aprile 2020 Segnala Share Inserita: 24 aprile 2020 (modificato) 18 ore fa, daniele__32 ha scritto: da manuale dell encoder ce un pin dedicato per lo zero..io pero il mio encoder lo sto gestendo tramite oggetto tecnologico SSi Abs Encoder tramite una scheda TposInput Indipendentemente da come tu gestisca l'encoder, lo zero viene fatto tramite quel pin. Puoi usare un'uscita del PLC che attivi quando MC_Home dell'asse ti dà il Done. Oppure, puoi fare una sola volta, manualmente, l'azzeramento dell'encoder. O, forse, non ti serve nemmeno: trattandosi di un encoder a filo, probabilmente esce dalla fabbrica già azzerato. Poi, per far coincidere il conteggio dell'encoder sul motore e quello dell'encoder a filo, se sei sicuro che l'encoder a filo non scavalla mai oltre lo zero o oltre il massimo, sul Done di MC_Home, anziché azzerare l'encoder, puoi calcolare un offset, e poi calcolare la posizione fornita dall'encoder a filo tenendo conto di questo offset. Esempio: IF inst_MC_Home.Done THEN #offset := #TO_AxisActPos - #SSI_ActRawPos; END_IF; #SSI_ActPos := #SSI_ActRawPos + #offset; In questo modo potresti anche allineare la posizione dell'encoder a filo con quella dell'encoder sul motore in qualsiasi istante: con un comando da HMI, con il segnale di homing dell'asse, o come meglio credi. Occhio ad impostare correttamente, nel modulo TM_PosInput, i bit dell'encoder, come indicato nel manuale dell'encoder stesso. Modificato: 24 aprile 2020 da batta Link al commento Condividi su altri siti More sharing options...
daniele__32 Inserita: 24 aprile 2020 Autore Segnala Share Inserita: 24 aprile 2020 (modificato) grazie mille per le risposte...bene..allora diciamo che posso usare o la DQ0 del modulo TOPosInput che forse viene piu facilmente ( soluzione di batta e' piu elegante ) ma tanto mi basta assegnarli lo zero una volta sola sull SSI essendo assoluto..diciamo quindi che DQ0 impegnata per funzione di ZERO encoder ssi. Diciamo Quindi che per il discorso ZERO....ok Secondo Punto ( il piu delicato) nella mia applicazione, devo essere in grado di verificare costantemente che il valore di posizione letto dal driver dell'asse mobile sia lo stesso di quello letto dall'encoder SSI. Stavo pensando di usare questa logica: NewReferenceValue0 = ActualPosition Axis – Offset (valore letto dal resolver) NewReferenceValue1 = ActualPosition Axis + Offset (valore letto dal resolver) e poi confrontare sempre NewReferenceValue0 <ActualPos_EncSSI <NewReferenceValue1 dove NewReferenceValu 0,1 sono i 2 limiti inferiore e superiore e in caso di confronto non coerente ( overo che ce uno sfasamento fuori Limite fra Resolver e SSI causa uno slittamento per esempio) generare un allarme come Errore di inseguimento Puo essere fattibile? grazie mille ancora Modificato: 24 aprile 2020 da daniele__32 Link al commento Condividi su altri siti More sharing options...
batta Inserita: 24 aprile 2020 Segnala Share Inserita: 24 aprile 2020 Sì, ma non fai prima a fare la differenza tra la posizione indicata dal resolver e la posizione indicata dall'encoder SSI, e controllare che il valore assoluto non superi il limite consentito? Esempio: posDifference = TO_actAxisPos - actPos_SSI; if ABS(posDifference) > errorThreshold THEN ... ... END_IF; Link al commento Condividi su altri siti More sharing options...
daniele__32 Inserita: 27 aprile 2020 Autore Segnala Share Inserita: 27 aprile 2020 di sicuro faccio prima e con meno problemi..volevo capire se tramite la scheda si poteva fare.. Link al commento Condividi su altri siti More sharing options...
daniele__32 Inserita: 27 aprile 2020 Autore Segnala Share Inserita: 27 aprile 2020 dal manuale del oggetto tecnologico leggevo anch che l fb di richiamo per gestire l encoder...bisognerebbe chiamarla nell OB61.. 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