Vai al contenuto
PLC Forum


Creare un posizionatore


slevin96

Messaggi consigliati

Buongiorno a tutti,

 

mi sto imbattendo ad effettuare dei controlli di posizione, sia per motori elettrici che per assi oleodinamici. Al giorno d'oggi ci sono tutte le funzioni che semplificano il lavoro, imposti velocità, acc, dec, ecc. e con qualche regolazione/parametrizzazione si riesce a fare un buon posizionamento. Anni fa però non era così e mi stavo domandando che se dovessi fare tutto da zero farei fatica a crearne uno equivalente a quelli già utilizzati (es. OT siemens). 

 

La mia domanda è questa: innanzitutto si può fare un posizionatore "generico" che valga per diversi tipi di applicazione? 

Poi quello che mi chiedo principalmente è: se ad HMI ipotesi, si può impostare accelerazione, decelerazione, velocità, diverse quote di lavoro (limitandoci a questo) come si può realizzare un posizionatore? Da dove si parte? Crearsi le rampe ed arrivare ad una posizione precisa?

 

 

Grazie e buona giornata

Link al commento
Condividi su altri siti


In passato mi ero creato una funzione di posizionamento.
In accelerazione, incrementavo la velocità con accelerazione costante.
Per il posizionamento, calcolavo la velocità in funzione della distanza dal traguardo, con la formula
V =  SQRT(2as)

dove "V" è la velocità, "a" l'accelerazione, e "s" lo spazio che, in questo caso è, come detto, la distanza dal traguardo.

Sia chiaro, non ho inventato nulla, si tratta solo della trasformazione della formula del moto uniformemente accelerato s = 0,5at2.


Con questa funzione mi sono levato parecchie soddisfazioni perché, una volta impostati correttamente i parametri di velocità massima dell'asse e alcuni correttivi (cut-off e correzione punto inizio decelerazione), il posizionamento era sempre costante, a tutte le velocità.
Oggi però, con quanto messo a disposizione dalle moderne cpu, non mi sognerei mai di rispolverare quella mia vecchia funzione.
Lo scopo potrebbe essere solo didattico ma, trattandosi di una funzione sviluppata interamente in AWL, ed essendo AWL un linguaggio che la stessa Siemens sta accantonando, anche da un punto di vista didattico la vedo di scarsissima utilità.

Link al commento
Condividi su altri siti

Quando usavo i PLC io non ho mai usato le funzioni di libreria, ho sempre usato alcune mie funzioni.

Nel caso di posizzionamento la funzione che mi ha risolto il 95% delle applicazioni ò una funzione che non ha bisogno di alcuna taratura e si autoottimiza per eseguire sempre il posizionamento alla massima velocità possibile.

Se leggi il mio tutorial su controlli e regolazioni, negli esempi oltra alla spiegazione trovi la funzione codificata in pseudo "C", facile da comprendere ed, eventualmente, tradurre in lòinguaggio strutturato.

Link al commento
Condividi su altri siti

Sono completamente d'accordo con quanto detto da Batta, ormai sviluppare un posizionatore da zero è utile solo per didattica. Ti consiglio di dare un occhiata al link girato da Livio, io per didattica ho fatto un FB in Scl sviluppato sulla base del codice in C fatto da Livio e ti assicuro che funziona perfettamente.. Tra l'altro avevo sviluppato quello col feed forward ed ero stato veramente soddisfatto del risultato. Purtroppo sono riuscito a testarlo solo su assi elettrici e non su assi idraulici, mi sarebbe piaciuto vedere come si comportava, anche se là, è molto più complesso perché mi sono imbattuto spesso in comandi di assi idraulici e il fai da te non è mai una buona idea.. Ho sempre optato per schede asse ad esempio Rexroth che prendono in pasto setpoint e valori dinamici e si autogesticono i feedback.

Link al commento
Condividi su altri siti

Vi ringrazio per le risposte. Ho letto a grandi linee il tutorial ma dovrò rileggerlo meglio.

Si, chiaro che la mia è solo una curiosità ma giusto per avere una conoscenza a pieno, poi quando si lavora non si ha mai la possibilità di provare perché si è sempre di fretta. Di recente ho avuto modo di utilizzare per posizionare un asse oleodinamico un posizionatore fatto da esterni, non so bene come funziona ed è giustamente bloccato da password, ci smanetto un po' ma comunque non so cosa fa tutto quello che c'è dentro.. (sia chiaro,non ho rubato niente,loro lo sanno 😁) per questo era nata l'idea di provare a farne uno autonomamente 

Link al commento
Condividi su altri siti

17 ore fa, Slayer90 ha scritto:

Purtroppo sono riuscito a testarlo solo su assi elettrici e non su assi idraulici, mi sarebbe piaciuto vedere come si comportava, anche se là

 

Nel 1991 feci una cesoia volante azionata da un asse idraulico ed il posiionatore andava a meraviglia, tanto che per un secondo impianto, dove tutto era Reliance leader proprio nelle applicazioni per celoie volanti, il cliente finale volle che fosse mantenuto proprio quel controllo idraulico con il mio posizionatore.

 

Oggi partire da zero a farsi un posizionatore non ha molto senso, se non in casi molto particolari. però se uno si ritrova con librerie personali stracollaudate e funzionanti, è ancora una soluzione più che valida.

 

17 ore fa, Slayer90 ha scritto:

io per didattica ho fatto un FB in Scl sviluppato sulla base del codice in C fatto da Livio e ti assicuro che funziona perfettamente.

 

Pensa che quel sistema di posizionamento è nato quando son nate le prime decadi di conteggio, quindi stiamo parlando di oltre mezzo secola fa. fatto in Hw con integrati SSI, occupava uno spazio abbastanza grande, ma quello era lo stato dell'arte.

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