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

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

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