Vai al contenuto
PLC Forum


Non capisco cosa fa questa parte di codice


Messaggi consigliati

Inserito:

    #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!


Inserita:

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

 

Inserita:

 

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

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

Inserita:
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..... 😀

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

Inserita:

Ottimo Livio! infatti è un posizionamento di un servomotore (cilindro-pistone) oleodinamico. E' il regolatore di velocità di una turbina idraulica.

Inserita:
1 ora fa, Marco00 ha scritto:

infatti è un posizionamento di un servomotore (cilindro-pistone) oleodinamico.

 

Bisogneebbe sapere i tempi di risposta di quell'attuatore.

Per le mie esperienze 10 ms di tempo di clock per fa funzione di posizionamento (PID?) di un attuatore oleodinamico sono sempre stati un tempo ottimo. Però potrebbe essere un attuatore con piccole corese e con risposte estremamente rapide. In questi casi bisogna scendere di un ordine di grandezza, ovvero a 1ms.

Però di questi attuatori io non ne ho mai visto alcuno, anche ne ho sentito parlare da un mio amico specialista in oleodinamica con cui feci parecchi lavori di automazione.

Inserita:
27 minuti fa, Livio Orsini ha scritto:

Bisogneebbe sapere i tempi di risposta di quell'attuatore.

il tutto dipende dalla caratteristiche del circuito oleodinamico, es. distanza dalla valvola all'attuatore, dimensionamento della valvola nei confronti delle camere del cilindro ecc. Nel caso delle presse che ho sempre visto un bel 4 ms è un tempo decisamente accettabile per ciò che dovevo fare.

Inserita:
5 minuti fa, pigroplc ha scritto:

Nel caso delle presse che ho sempre visto un bel 4 ms è un tempo decisamente accettabile per ciò che dovevo fare.

 

Ne ho fatte con 20ms senza alcun problema,

Non confondiamo il tempo di reazione del cassetto della valvola con il tempo di reazione pistone dell'attuatore

Per il posizionatore della valvola, quelle più performanti, si hanno tempi di aggiornamento anche inferiori ad 1 ms.

Inserita:
Il 25/09/2025 alle 15:27 , Livio Orsini ha scritto:

 

Bisogneebbe sapere i tempi di risposta di quell'attuatore.

Per le mie esperienze 10 ms di tempo di clock per fa funzione di posizionamento (PID?) di un attuatore oleodinamico sono sempre stati un tempo ottimo. Però potrebbe essere un attuatore con piccole corese e con risposte estremamente rapide. In questi casi bisogna scendere di un ordine di grandezza, ovvero a 1ms.

Però di questi attuatori io non ne ho mai visto alcuno, anche ne ho sentito parlare da un mio amico specialista in oleodinamica con cui feci parecchi lavori di automazione.

Si 10 ms è il tempo di clock per far funzionare il PID il posizionatore. Visto che si siamo mi piacerebbe sentire il vostro parere circa l'anello di posizione.

Descrivo qui sotto:

il regolatore PID di potenza, ha il set point di potenza richiesta e il feedback una potenza il segnale viene elaborato dal PID e l'uscita va al posizionatore. Il posizionatore non è un PID ma solo un P, come feedback entra la posizione del servo-cilindro che comanda il distributore (rubinetto acqua) come set point di posizione è il set point del primo pid di  potenza.

Io anche il secondo regolatore metterei il PI e non solo P (mi è stato risposto che si introduce un polo nell'origine come integrale e genera instabilità) il polo mi torna ma sulla stabilità dipende a che frequenza si piazza quel polo.

Come la vedete?

ah la valvola che comanda il servo cilindro ha il suo drive PID è di tipo lineare a centri chiusi. quindi quando si sposta un po' oltre 12 mA non c'è alcun effetto 12,xx inizia a muovere o 11,xx inizia a muovere.

 

grazie

Inserita: (modificato)

Fai uno schema a blocchi della regolazione completa.

Da quello che scrivi sembrerebbe che ci sia sempre un errore di posizione perchè se è un proporzionale puro non corregge pienamente l'errore.

Però spesso negli anelli di posizione si usa solo la correzione proporzionale perchè c'è un integratore naturale come, ad esempio, un sommatore.

Modificato: da Livio Orsini
Inserita:
Il 25/09/2025 alle 15:27 , Livio Orsini ha scritto:

 

Bisogneebbe sapere i tempi di risposta di quell'attuatore.

Per le mie esperienze 10 ms di tempo di clock per fa funzione di posizionamento (PID?) di un attuatore oleodinamico sono sempre stati un tempo ottimo. Però potrebbe essere un attuatore con piccole corese e con risposte estremamente rapide. In questi casi bisogna scendere di un ordine di grandezza, ovvero a 1ms.

Però di questi attuatori io non ne ho mai visto alcuno, anche ne ho sentito parlare da un mio amico specialista in oleodinamica con cui feci parecchi lavori di automazione.

Si 10 ms è il tempo di clock per far funzionare il PID il posizionatore. Visto che si siamo mi piacerebbe sentire il vostro parere circa l'anello di posizione.

Descrivo qui sotto:

il regolatore PID di potenza, ha il set point di potenza richiesta e il feedback una potenza il segnale viene elaborato dal PID e l'uscita va al posizionatore. Il posizionatore non è un PID ma solo un P, come feedback entra la posizione del servo-cilindro che comanda il distributore (rubinetto acqua) come set point di posizione è il set point del primo pid di  potenza.

Io anche il secondo regolatore metterei il PI e non solo P (mi è stato risposto che si introduce un polo nell'origine come integrale e genera instabilità) il polo mi torna ma sulla stabilità dipende a che frequenza si piazza quel polo.

Come la vedete?

ah la valvola che comanda il servo cilindro ha il suo drive PID è di tipo lineare a centri chiusi. quindi quando si sposta un po' oltre 12 mA non c'è alcun effetto 12,xx inizia a muovere o 11,xx inizia a muovere.

 

grazie

 

 

Sotto allego lo schema di regolazione.

La macchina regola la potenza quindi c'è un pid di potenza ma che integra anche un secondo pid di frequenza in quanto fa regolazione primaria ovvero sulla rete nazionale quando si accende un carico la frequenza cala, quando si toglie un carico essa cresce per cui le macchine hanno una curva frequenza potenza, detta caratteristica statica (statismo) la macchina a un certo grado di statismo che ne consegue una energia regolante.

 

La cosa che non capisco perchè nel pid di posizione del servo-cilindro c'è solo un proporzionale io avrei messo anche li un integrale (su quelli che facevo io lo mettevo) la risposta è stata con integrale si mette un polo nell'origine e si fa instabilità ma questo non mi torna.

 

Regolatore.png

Regolatore.thumb.png.9f138e91cf4c18da1d3fc39b80d5c879.png

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