La figura seguente mostra il tipico circuito di un regolatore proporzionale multiloop.
Programmazione del circuito di regolazione
Per programmare questo esempio con Modular PID Control procedere nel modo seguente:
-
Programmare un FB regolatore per il regolatore pilota, ad es. PIDCTR_PV.
-
Programmare uno o più FB regolatori per i regolatori asserviti, ad es. RB_CTR_S.
-
Programmare una funzione nella quale richiamare e interconnettere i quattro regolatori.
Programmazione del regolatore pilota
Per programmare il regolatore pilota procedere nel modo seguente:
-
Programmare il regolatore pilota secondo le proprie esigenze, procedendo come descritto al capitolo Programmazione del blocco funzionale regolatore.
-
Dichiarare nell'FB regolatore, qui PIDCTR_PV, un parametro di uscita PV con tipo di dati "Real" in cui venga emesso il valore istantaneo trattato del regolatore pilota.
La figura seguente mostra l'interconnessione per il regolatore pilota sull'esempio dell'FB PIDCTR_PV.
Programmazione dei regolatori asserviti
Per programmare i regolatori asserviti procedere nel modo seguente:
-
Programmare il regolatore asservito secondo le proprie esigenze, procedendo come descritto al capitolo Programmazione del blocco funzionale regolatore.
-
Dichiarare nell'FB regolatore, qui RB_CTR_S, un parametro di ingresso RATIO_FAC con tipo di dati "Int". Il setpoint trattato del regolatore asservito, ad es. SCALE.OUTV, viene moltiplicato per questo valore.
La figura seguente mostra l'interconnessione per il regolatore asservito sull'esempio dell'FB RB_CTR_S.
Richiamo e interconnessione dei regolatori
Per richiamare e interconnettere il regolatore pilota e i regolatori asserviti procedere nel modo seguente:
-
Creare una funzione, ad es. FC50, con i parametri di ingresso COM_RST e CYCLE.
-
Nell'istruzione "LP_SCHED_M" richiamare la funzione.
-
Creare un Blocco dati globale DB_LOOP nel quale parametrizzare il numero del regolatore e i tempi del ciclo per il richiamo del regolatore pilota e del regolatore asservito.
I tempi di ciclo dei regolatori asserviti devono essere minori o uguali al tempo di ciclo del regolatore pilota.
-
Richiamare l'FB regolatore per il regolatore pilota, qui PIDCTR_PV se DB_LOOP.LOOP_DAT[1].ENABLE = TRUE.
-
Interconnettere DB_LOOP.LOOP_DAT[1].COM_RST e DB_LOOP.LOOP_DAT[1].CYCLE con i parametri di ingresso COM_RST e CYCLE del regolatore pilota.
-
Impostare DB_LOOP.LOOP_DAT[1].ENABLE = FALSE.
-
Richiamare l'FB regolatore per il primo regolatore asservito, qui RB_CTR_S, e DB_LOOP.LOOP_DAT[2].ENABLE = TRUE.
-
Interconnettere DB_LOOP.LOOP_DAT[2].COM_RST e DB_LOOP.LOOP_DAT[2].CYCLE con COM_RST e CYCLE del regolatore asservito.
-
Interconnettere il parametro di uscita PV del regolatore pilota con il parametro di ingresso SP_IN del regolatore asservito.
-
Impostare DB_LOOP.LOOP_DAT[2].ENABLE = FALSE.
-
Ripetere gli ultimi quattro passi per gli altri due regolatori asserviti. Incrementare per ogni regolatore il contatore dell'array.
-
Interconnettere i valori regolanti con le uscite della CPU.
-
Richiamare la funzione nell'OB 100 e nell'OB di schedulazione orologio.
La figura seguente mostra i richiami e l'interconnessione dei regolatori sull'esempio della funzione FC50.