Marco00 Inserito: martedì alle 13:48 Segnala Inserito: martedì alle 13:48 #A := #GRADIENTE * #T; IF ((#E - #SET) >= #T) THEN #E := #E - #T; ELSIF ((#E - #SET) <= - #T) THEN #E := #ERDP + #T; ELSIF ((#E - #SET) < #A) AND ((#E - #SET) > - #A) THEN #E := #SET; END_IF; #OUT_E := #E; Descrizione: GRADIENTE : è il tasso di variazione massima del segnale E, è una potenza/unità di tempo (il segnale E poi andrà ad un PID) rampa sempre. SET: è il set point della potenza T: è il tempo ciclo dell'OB 30 dove è richiamato il tutto, vale 0,01 sec E: uscita del PID che viene dopo Ho tutto il codice e sto facendo reverse engineering ma questo passaggio proprio non lo capisco. Ho provato a farlo girare singolarmente ma non capisco ne l'utilità ne il funzionamento PS nelle macchine gira molto bene... Grazie Mille!
Marco00 Inserita: mercoledì alle 15:27 Autore Segnala Inserita: mercoledì alle 15:27 L'ho capito, è un limitatore del valore E (il gradiente * tempo ciclo) è il passo più piccolo. Il passo più piccolo viene sommato o sottratto del passo, ad ogni ciclo, se il confronto SET con E è maggiore o minore del passo E. Se la differenza sta nell'intorno +/- del passo E allora E = SET. E' come una rampa. L'unica cosa, perchè è stato deciso il passo E := GRADIENTE * tempo ciclo OB30 ? poteva essere semplicemente un numero impostabile da HMI o una % del gradiente
pigroplc Inserita: mercoledì alle 16:15 Segnala Inserita: mercoledì alle 16:15 45 minuti fa, Marco00 ha scritto: perchè è stato deciso il passo E := GRADIENTE * tempo ciclo OB30 ? poteva essere semplicemente un numero impostabile da HMI o una % del gradiente senza vedere la macchina né capire cosa sta facendo è come tirare i dadi. quello che mi risulta strano è l'OB30 che gira a 10 millisecondi, che regolazione hai per necessitare un aggiornamento ogni 10 ms? Fosse un controllo di temperatura mi pare troppo poco, se invece è una posizione mi pare troppo......
Livio Orsini Inserita: giovedì alle 05:48 Segnala Inserita: giovedì alle 05:48 13 ore fa, pigroplc ha scritto: se invece è una posizione mi pare troppo.... No è un tempo più che adatto per un posizionamento e non solo. È un tempo di clock adatto al controllo di quasi tutti i processi di controllo di organi meccanici.
pigroplc Inserita: 6 ore fa Segnala Inserita: 6 ore fa Il 18/09/2025 alle 05:48 , Livio Orsini ha scritto: No è un tempo più che adatto per un posizionamento e non solo. È un tempo di clock adatto al controllo di quasi tutti i processi di controllo di organi meccanici. eh eh dipende dal tipo di macchina, se parli di macchine da 250 a 500 battute al minuto con assi in camma devi scendere al millisecondo, se invece si tratta di posizionamenti di qualche secondo allora sono d'accordo con te, 10 ms sono più che sufficienti. Siccome ultimamente mi imbatto in queste macchine infernali che ad occhio non riesci a vedere come funzionano mi è venuto da dire che 10ms sono troppi..... 😀
Livio Orsini Inserita: 2 ore fa Segnala Inserita: 2 ore fa 4 ore fa, pigroplc ha scritto: h eh dipende dal tipo di macchina, Appunto! Quando si parla di posizionamenti generici, si intende sempre la missione di posizionamento di un un asse, quindi il tempo di campionamento deve essere adeguato alla massima velocità lineare dell'asse. Comunque 500 bpm corrisponde a 8,33 batute al secondo, qindi in 10ms fai 0,0833 battute, ne hai di tempo.
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