Jump to content
PLC Forum


Pid Velocità Con Motore Ed Inverter


roberto8303
 Share

Recommended Posts

Sto facendo una prova con plc s7 1200 1212c inverter da 0,2kw con ingresso 0-10volt per variare la velocita di un motore asincrono da 0.09kw. Tempo di acc e dec sull inverter 0,2secondi. Il motore ha una tachimetrica collegata al motore, quando QW80 dà 10volt all inverter la tachimetrica me ne restituisce 9,2 circa. Ho aperto un nuovo OB ciclic interrupt ogni 10ms, in esso ho aperto la funzione pid come velocita, nell input c è la tensione della tacho IW64 e in uscita il segnale di ingresso 0-10v dell inverter. Ho fatto l auto taratura del pid con la rilevazione automatica dei valori del pid. Fin qui tutto ok, il motore è regolato bene, se tendo a frenarlo il segnale di input aumenta e riporta il motore alla velocita del setpoint impostato al 50%.

Ora sono rimasto a metà, ho chiuso la finestra per l autotaratura del pid, ma come faccio ad attivare il motore? cioe a farlo partire e quindi controllarlo con il pid creato? il box pid che si trova nel blocco cyclic interrupt come si fa a farlo funzionare sempre o almeno quando chiudo un contatto? se ci sono cose che non ho spiegato o non ho spiegato bene mi scuso e chiedete pure!! grazie

Link to comment
Share on other sites


Devi fare, nell'OB ciclico attivat da interrupt un richiamo del PID condizionato dall'avviamento del motore.

Link to comment
Share on other sites

mmm in parole pratiche? nel main quale funzione o box devo inserire per prendere il controllo del cyclic interrupt? :whistling:

Ciao,da come ho capito io Livio ti suggeriva di richiamare il box del pid dentro all OB di ciclic interrupt mettendo prima peró il contatto che fa partire il motore

Link to comment
Share on other sites

il motore parte con il riferimento di tensione del plc generato dal pid automatico...il box pid nel ob di interrupt si illumina verde ma non succede nulla.

Link to comment
Share on other sites

Ma non dai nessun comando di marcia?

L'arresto lo fai portando semplicemente a zero il riferimento? (sarebbe anche non a norma)

Verifica anche se il PID ha un flag di enable.

Link to comment
Share on other sites

Giuseppe Signorella

Hai verificato che il pid si trova in automatico?

Cosa gli passi in ingresso al parametro ManualEnable?

Cosa vedi nel parametro State ed error?

Dimenticavo, nella finestra della messa in servizio è selezionata la funzione "Disattiva regolatore".?

Edited by Giuseppe Signorella
Link to comment
Share on other sites

Ma non dai nessun comando di marcia?

L'arresto lo fai portando semplicemente a zero il riferimento? (sarebbe anche non a norma)

il comando di marcia per ora è il ponte sull inverter chiuso tra il comune ed marcia avanti.Ecco perche io mi aspettavo che il segnale del pid dove ora il set point è al 60% mi desse una tensione, e poi con un altra uscita del plc chiudevo il run dell inverter...

Hai verificato che il pid si trova in automatico?

Cosa gli passi in ingresso al parametro ManualEnable?

Cosa vedi nel parametro State ed error?

come si fa a vedere che si trova in automatico?

enable del box pid è collegato al ramo direttamente sul segmento del cyclic interrput che gira ogni 10ms

in state ed in error esce 0. secondo me il box pid anche se è illuminato verde anche il segmento enable non è in funzione...

comunque ho trovato questo video su youtube e nemmeno qui vedo come fanno ad attivare il pid fa vedere solo l ottimizzazione come l ho fatta io..

minuto 4 di questo video

Link to comment
Share on other sites

Selezionando il box "PID_Compact" e premendo F1 si apre la guida in linea.

Io consiglio sempre, prima di cercare di trovare la soluzione andando per tentativi, di leggere i manuali.

Nel caso specifico, si potrebbe scoprire che esiste il parametro "sRet.i_Mode", mediante il quale è possibile impostare il modo di funzionamento del PID.

I modi di funzionamento vanno da 0 a 4, e c'è più di una pagina dedicata a descrivere questi modi di funzionamento.

Credo che leggere, con una certa attenzione, tutta la parte della guida inerente il PID_Compact, non richieda più di un'ora. Un'ora sicuramente spesa bene.

Link to comment
Share on other sites

Prima che i parametri PID vengano ricalcolati, vengono salvati e possono essere riattivati con sPid_Cmpt.b_LoadBackUp.

Requisiti per l'ottimizzazione fine:


  • Non sono previste anomalie.

  • Il setpoint e il valore istantaneo sono compresi entro i limiti configurati.

  • Durante l'ottimizzazione fine il setpoint non può essere modificato.

  • ManualEnable = FALSE

  • Funzionamento automatico (State = 3), inattivo (State = 0) o manuale (State = 4)

    rispettivamente nelle modalità descritte di seguito:

    • Funzionamento automatico (State = 3)
      Per migliorare i parametri PID esistenti mediante un'ottimizzazione, avviare l'ottimizzazione fine dal modo di funzionamento automatico.
      PID_Comact esegue quindi la regolazione con i parametri PID esistenti finché il circuito di regolazione è assestato e sono soddisfatti i requisiti per l'ottimizzazione fine. Solo in seguito viene avviata l'ottimizzazione fine.

    • Funzionamento Inattivo (State = 0) o manuale (State = 4)
      Se sono soddisfatti i presupposti dell'ottimizzazione iniziale, viene avviata un'ottimizzazione iniziale. Viene quindi effettuata la regolazione con i parametri PID rilevati finché il circuito di regolazione è assestato e sono soddisfatti i requisiti per l'ottimizzazione fine. Solo in seguito viene avviata l'ottimizzazione fine. Se non è possibile eseguire l'ottimizzazione iniziale, PID_Compact passa al modo di funzionamento "Inattivo".
      Se il valore istantaneo per un'ottimizzazione iniziale si trova già troppo vicino al setpoint o se sPid_Calc.b_RunIn = TRUE, si tenta di raggiungere il setpoint con il valore di uscita minimo o massimo. Ciò può causare una maggiore sovraelongazione.

    Funzionamento automatico

    In funzionamento automatico PID_Compact regola il sistema regolato secondo i parametri preimpostati.

    Se è soddisfatta una delle seguenti condizioni si passa al funzionamento automatico:

    [*]

    Ottimizzazione iniziale conclusa correttamente

    [*]

    ottimizzazione fine conclusa correttamente

    [*]

    Modifica della variabile sRet.i_Mode sul valore 3.

    Se la CPU viene attivata o passa da STOP a RUN, PID_Compact si avvia nell'ultimo modo di funzionamento attivo. Per lasciare PID_Compact nel modo di funzionamento "Inattivo" impostare sb_RunModeByStartup = FALSE.

    dove si trova il parametro sRet i Mode? e dove si setta Il modo in sPid_Cmpt.b_LoadBackUp non lo trovo..

Link to comment
Share on other sites

aspettate ho trovato una differenza con il video abbastanza rilevante!! nella navigazione del progetto sotto al main nel video quando si crea il pid in automatico compare sia in oggetti tecnologici che in blocco di programma proprio sotto al main.video che ho allegato a 38secondi

Ecco quando lo creo io mi compare solo sotto in oggetti tecnologici come DB1 e sotto al main invece come blocco di programma non c è!!!perchè a me non lo mette??

Link to comment
Share on other sites

allora rieccomi per concludere, ho lasciato il pid sempre attivo dal main imposto il valore del set point a 0 quando apro il contatto run dell inverter, e poi quando chiudo il contatto run con l uscita q0.0 carico anche il valore del set point dal pannello hmi. Non richiamo nessun pid quindi, lo lascio sempre in funzione nel cyclic interrupt.

Link to comment
Share on other sites

Hai comunque un problema. in caso di stop e run molto ravvicinati rischi di avere l'integrale ancora carico.

Link to comment
Share on other sites

Non puo succedere, perche allo stop carico 0 in setpoint, e apro il run.

Allo start, chiudo il run ma il valore del set point è ancora a 0. dal pannello operatore bisogna inserire il valore di setpoint solo se il run è chiuso, ho solo notato che posso anche mettere 100 nel set point sempre con run gia chiuso, e il motore parte giustamente senza rampa...chissa se avessi la necissita di farlo partire con una rampa come potrei fare non ci ho pensato :whistling:

Link to comment
Share on other sites

la necissita di farlo partire con una rampa come potrei fare non ci ho pensato

Semplice! Il set point al PID non la dai diretto ma lo fai passare attraverso una rampa; fissi un differenziale di set point ed ogni volta che si attiva il PID verifica che il valore di set point sia minore di quello impostato nel Pannello operatore; se è mino re incrementa del valore di differenziale impostato, altrimenti copia il valore impostato. Idem, in sottrazione, per la fermata o la diminuzione di velocità.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...