massimo278 Inserito: 21 luglio 2009 Segnala Inserito: 21 luglio 2009 Buongiorno, avrei bisogno di un aiuto per risolvere un problema che mi è stato chiesto di risolvere, e consiste nel programmare con linguaggio siemens ICE61131-3 un robot che si muove all'interno di una stanza (con limiti fissati). Questo robot governato da una function block che in ingresso ha la posizione di Xfinale; Yfinale; il tasto STOP E START, e in uscita la posizione X e Y. Sopra al robot c'è un osservatore anch'esso costituito da una function block con ingresso X; Y; e in uscita la Xfinale, Yfinale e se occorre i pulsanti di START e STOP. Le varie posizioni da far raggiungere al robottino vengono inserite tramite un array/vettore.Il compito dell'osservatore è quello di controllare la posizione, e verificare che il robottino abbia raggiunto la posizione richiesta o che almeno si trovi nell'intervallo di tolleranza voluto. Da considerare anche che il robottino ha una sua accelerrazione e una velocità massima. Posterò uno schema per farvi capire meglio il tutto. Vi chiedo solo una cosa, AIUTATEMI che di plc ne mastico davvero poco.
massimo278 Inserita: 21 luglio 2009 Autore Segnala Inserita: 21 luglio 2009 in allegato lo schema. si vede quel che si vede :s
Livio Orsini Inserita: 21 luglio 2009 Segnala Inserita: 21 luglio 2009 Se è ICE61131-3 è un linguaggio standard.A parte questo particolare quale aiuto ti serve? La parte relativa al linguaggio è l'ultima cosa. Prima devi tradurre le tue formule in una sequenza logica. Che tu usi "C" (p.e.) o ICE61131-3 poco cambia a questo livello.Dopo aver messo a punto un'analisi dettagliata, o un diagramma di flusso, o entrambi comincia il lavoro di codifica dove la conoscenza del linguaggio.Se invece i tuoi problemi non riguardano specificatamente il linguaggio, devi porre domande mirate se vuoi un aiuto che abbia senso.Da quello che scrivi sembrerebbe un classico problema di moto interpolato su due assi.
massimo278 Inserita: 21 luglio 2009 Autore Segnala Inserita: 21 luglio 2009 devo risolvere questo problema, appunto con un'analisi dettagliata, poi diagrammi di flusso e il programma da compilare.Se mi puoi essere di aiuto per questo problema, le posso lasciare la mail, cosi riusciamo a risolvere un poco tempo.
Livio Orsini Inserita: 22 luglio 2009 Segnala Inserita: 22 luglio 2009 Niente mail, non ho tempo per rispondere. E' sufficiente la discussione sul forum.Se poni delle domande su argomenti specifici vedrò cosa posso fare per aiutarti.
massimo278 Inserita: 23 luglio 2009 Autore Segnala Inserita: 23 luglio 2009 Poniamola cosi... come improntereste il problema? cosa andreste a considerare? cosa utilizzare? questo tanto per iniziare, sono uno studente e conosco ben poco di queste cose. Voglio capireee
Livio Orsini Inserita: 23 luglio 2009 Segnala Inserita: 23 luglio 2009 Prima dovresti dare le specifiche. Lo schema a blocchi che hai pubblicato riguarda solo la funzione di trasferimento della posizione e poco più.Prima di tutto: è un esercizio puramente teorico?Se è previsto un effettivo robot è necesario considerare sia la parte meccanica, sia i "muscoli" (azionamenti), sia il "cervello" (controllore).Comunque, anche in caso di pura teoria, è necessario porre alcuni vincoli iniziali.- Il sistema deve essere in grado di schivare eventuali ostacoli?- Il sistema raggiunge la posizione con moto coordinato (interpolazione X-Y), oppure no (posiziona X, poi posiziona Y, p.e.)- Qual'è il numero massimo di coppie X-Y che può essere memorizzato?- Completata una missione, qual'è la modalità di passaggio alla successiva? automatico? manuale? Altro?Comicia a risponderti a questi domande ed a renderle note, poi si potrà proseguire.
massimo278 Inserita: 23 luglio 2009 Autore Segnala Inserita: 23 luglio 2009 Allora, ti ringrazio fin da ora, quindi questo è un problema puramente teorico, è un esercizio che mi è stato dato in un corso di controlli all'università. Guardi, altre specifiche al riguardo non ne ho, tutto quello che ho pubblicato è tutto quello che mi è stato dato come dati di partenza, anche per questo mi trovo in difficoltà. Trattandosi di un esercizio puramente teorico ti riporto i vincoli richiesti:1)il sistema non deve schivare eventuali ostacoli, lo devo programmare per raggiungere la posizione voluta ipotizzando che la stanza sia vuota.2)si devo fare la interpolazione di X-Y raggiungere la posizione con una retta, niente curvature, dovrebbe rendere il problema molto più semplice.3)per le coppie da memorizzare posso metterne a piacimento, 5 credo che bastino, altrimenti se non ci sono vari problemi si può andare anche a 10;4)raggiunto il primo setpoint il robottino si deve fermare con un tasto esterno stop, e poi per raggiungere lo step successivo basta azionarlo con uno start (sempre pulsante esterno)Ho dato un occhiata a vari temi trattati su questo sito, per quanto riguarda la interpolazione lineare, e poi su didattica ho letto diversi post, articoli compreso quello scritto da lei, veramente ben fatto.
Livio Orsini Inserita: 23 luglio 2009 Segnala Inserita: 23 luglio 2009 Il problema è (quasi) estremamente semplice.Comincia ad organizzarti per l'analisi dividendo il tutto in due parti: la parte "gestionale" e la parte controllo movimento.La parte controllo movimento è una classica missione di intepolazione lineare. Imponi che y=f(x), dove y è la quota di un asse e x è la quota dell'altro asse. Ovviamente è necessario verificare che la massima velocità e accelerazione posibile per y sia compatibile con la velocità imposta ad x e con il rapporto di spazio, quindi di velocità, che si determina per il movimento coordinato.Questi controlli li esegue la parte gestionale.Se hai letto il mio tutorial avrai visto che questo movimento interpolato è assimilabile ad un asse elettrico con i raporti di spazio equivalenti al rapporto tra le quote x e y.In quanto all'osservatore mi sembra una parola grossa per quello che deve fare, stando alla tua descrizione. Uno dei parametri degli assi è l'errore massimo di posizionamento. Nel momento in cui l'asse raggiunge una posizione entro questo errore considera la missione conclusa e segnala l'avvenimento alzando un apposito flag. In questo caso determina anche la fermata ed abilita, sul successivo comando di start, la prossima coppia di parametri di posizione.Ti ho dato una panoramica succinta e veloce su come procedere nell'analisi, è quanto mi consente un messaggio. Comincia a ragionarci. Se hai dubbi o questioni particolari poni domande; se è possiible qualcuno ti rispnderà.PS Sul forum ci consideriamo amici e colleghi, pertanto l'amichevole pronome "tu" è più che sufficiente
massimo278 Inserita: 29 luglio 2009 Autore Segnala Inserita: 29 luglio 2009 mi trovo in difficoltà... nessuno che mi risolve questo problema? grazie amici
Luca Bettinelli Inserita: 29 luglio 2009 Segnala Inserita: 29 luglio 2009 mi pare che di riposte ne hai ricevute!
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