programación avanzada

53
Programación avanzada de un PLC Ing. Paul Gálvez Fernández Esta es una guía referencial como apoyo para estructurar un programa de PLC con técnicas de un automatismo avanzado [email protected]

Upload: paul-galvez-fernandez

Post on 22-Jun-2015

316 views

Category:

Engineering


2 download

DESCRIPTION

Lazos de Control, PID, Sintonización.

TRANSCRIPT

Page 1: Programación avanzada

Programación avanzadade un PLC

Ing. Paul Gálvez Fernández

Esta es una guía referencial como apoyo para estructurar un programa de PLC con técnicas de un automatismo avanzado

[email protected]

Page 2: Programación avanzada

Técnicas de ProgramaciónImplementación

El algoritmo PID está programado en los controladores del DCS o PLC’s

4 – 20 mA

Armario de control

Módulos de entrada / salida

Módulos de control

Ing. Paul Gálvez Fernández

Page 3: Programación avanzada

Técnicas de Programación

Instrumentos demedida y regulaciónrepresentados porcírculos connúmeros y letras

Unidades de procesoy actuadoresrepresentados consimbolos especiales

LT102

LC102

Ing. Paul Gálvez Fernández

Page 4: Programación avanzada

Técnicas de Programación

ProcesoControlador

Transmisor

Actuadorw u y

4-20 mA

4-20 mA

SP 45PV 45.5

4-20 mAdeltransmisor

4-20 mA alactuador

Lazo de Control

Ing. Paul Gálvez Fernández

Page 5: Programación avanzada

Técnicas de ProgramaciónSala de Control

4 – 20 mA

Campo

Operación

Ing. Paul Gálvez Fernández

Page 6: Programación avanzada

Técnicas de Programación

CRP_IN PV_NORM

DEADBAND

+-

%

PVPER_ON

0

1

ER

DEADB_W

PV

PV_PER

PV_IN

SP_INT

PV_FACPV_OFF

Función PID

Etapa 1: Para realizar la comparación entre la consigna y el valor real del proceso normalizado, y crear el error de regulación.

By P.G.F.

Etapas

Ing. Paul Gálvez Fernández

Page 7: Programación avanzada

Técnicas de Programación

INT

TI, INT, HOLD,I_ITL_ON,I_ITLVAL

DIF

TD, TM_LAG

I_SEL

P_SEL

D_SEL

+ +LMN_I

LMN_D

LMN_P

0

0

0

1

1

1

DISV

Función PID

Etapa 2: Para aplicar un tipo de regulador diferente (P, PI, PID) al error originado en la parte anterior, introducir los valores de los parámetros de cada uno, leer la salida que corresponde a cada parámetro y, teniendo en cuenta la perturbación DISV, originar la salida real del regulador.

By P.G.F.

Etapas

Ing. Paul Gálvez Fernández

Page 8: Programación avanzada

Técnicas de Programación

LMNLIMIT

LMN_HLM,LMN_LLM

LMN_NORM

LMN_FAC,LMN_OFF

CRP_OUT

%

LMN

LMN-PER

QLMN_HLM

QLMN_LLM

1

0

MAN_ON

MAN

Función PID

Etapa 3: Para utilizar la salida que origina el regulador manual o automáticamente, para establecer límites y preparar la salida definitiva en números reales (%) y en formato de periferia.

By P.G.F.

Etapas

Ing. Paul Gálvez Fernández

Page 9: Programación avanzada

Técnicas de Programación

CRP_IN PV_NORM

DEADBAND

+-

%

PVPER_ON

0

1

X

GAIN

ER

DEADB_W

PV

PV_PER

PV_IN

SP_INT

PV_FACPV_OFF

INT

TI, INT_HOLD,I_ITL_ON,I_ITLVAL

DIF

TD, TM_LAG

I_SEL

P_SEL

D_SEL

+ +LMN_I

LMN_D

LMN_P

0

0

0

1

1

1

DISV

LMNLIMIT

LMN_HLM,LMN_LLM

LMN_NORM

LMN_FAC,LMN_OFF

CRP_OUT

%

LMN

LMN-PER

QLMN_HLM

QLMN_LLM

1

0

MAN_ON

MAN

Comparación entre la consigna y elvalor real del proceso automatizado

Introducir parámetros del controlador y considerar perturbaciones

Establece límites y prepara la salida definitiva

Ing. Paul Gálvez Fernández

Page 10: Programación avanzada

Técnicas de Programación

CRP_IN PV_NORM

DEADBAND

+-

%

PVPER_ON

0

1

ER

DEADB_W

PV

PV_PER

PV_IN

SP_INT

PV_FACPV_OFF

Etapa 1

SP_INT: con este parámetro se fija la consigna del lazo de regulación; se tratará de un número real y, normalmente, de un porcentaje (del -100.0 % hasta el 100.0 %). De todas formas, se puede introducir directamente el valor de la magnitud física, por ejemplo, 0.45 Atm. si se trata de presión, o 75 lit. si se trata de nivel o volumen, o 1,2 l/s si se trata de caudal.

By P.G.F.

Etapas AL DETALLE

Ing. Paul Gálvez Fernández

Page 11: Programación avanzada

Técnicas de Programación

Etapa 1

PVPER_ON: mediante este parámetro binario definiremos el modo de lectura al valor del proceso (PV). Si es “0”, leeremos el valor del PV desde el parámetro PV_IN; si es “1”, se leerá desde el parámetro PV_PER, como de costumbre. Es un valor de lectura – escritura, y el inicial es “0”.

Etapas AL DETALLE

CRP_IN PV_NORM

DEADBAND

+-

%

0

1

ER

DEADB_W

PV

PV_PER

PV_IN

PV_FACPV_OFF By P.G.F.

PVPER_ONSP_INT

Ing. Paul Gálvez Fernández

Page 12: Programación avanzada

Técnicas de Programación

Etapa 1

PV_PER: en este parámetro recibiremos la información que nos proporcione directamente un sensor, es decir, el valor de la lectura de una tarjeta analógica. Así, este parámetro guardará la dirección de la entrada a la que está conectada el sensor (PEWXXX). Cuando el sensor sea de una única polaridad (0…10 V) y la medición se encuentre en rango nominal, el valor estará comprendido entre 0 y 27648 y, cuando sea bipolar, el valor se encontrará entre -27648 y 27648.

Etapas AL DETALLE

CRP_IN PV_NORM

DEADBAND

+-

%

0

1

ER

DEADB_W

PV

PV_IN

PV_FACPV_OFF By P.G.F.

SP_INT

PVPER_ON

PV_PER

Ing. Paul Gálvez Fernández

Page 13: Programación avanzada

Técnicas de Programación

Etapas AL DETALLE

CRP_IN PV_NORM

DEADBAND

+-

%

0

1

ER

DEADB_W

PV

PV_IN

PV_FACPV_OFF By P.G.F.

SP_INT

PVPER_ON

PV_PER

By P.G.F.

Ing. Paul Gálvez Fernández

Page 14: Programación avanzada

Técnicas de Programación

Etapa 1

CPR_IN: esta función convierte el valor entero que recibimos del sensor en valores reales entre el -100.0 % y el 100.0 % (realiza un escalado), aplicando la siguiente fórmula:

Etapas AL DETALLE

CRP_IN PV_NORM

DEADBAND

+-

%

0

1

ER

DEADB_W

PV

PV_IN

PV_FACPV_OFF By P.G.F.

SP_INT

PVPER_ON

𝐶𝑃 𝑅𝐼𝑁=𝑃𝑉 𝑃𝐸𝑅100

27648

PV_PER

Ing. Paul Gálvez Fernández

Page 15: Programación avanzada

Técnicas de Programación

Etapa 1

PV_NORM: esta función normaliza los porcentajes de los valores proporcionados por el sensor, adecuando los parámetros PV_FAC y PV_OFF, tal y como se puede apreciar en la siguiente fórmula:Etapas AL DETALLE

CRP_IN PV_NORM

DEADBAND

+-

%

0

1

ER

DEADB_W

PV

PV_IN

PV_FACPV_OFF By P.G.F.

SP_INT

PVPER_ON

𝑃𝑉𝑁𝑂𝑅𝑀 (𝑆𝑎𝑙𝑖𝑑𝑎)=𝐶𝑃𝑅𝐼𝑁 (𝑆𝑎𝑙𝑖𝑑𝑎)∗𝑃𝑉 𝐹𝐴𝐶+𝑃𝑉𝑂𝐹𝐹

PV_PER

Ing. Paul Gálvez Fernández

Page 16: Programación avanzada

Técnicas de Programación

Etapa 1

PV_FAC: factor del valor del proceso. Multiplica la salida de la función CPR_IN, para adaptar los valores proporcionados por el sensor a un nuevo rango. Su valor puede ser cualquier número real, pero normalmente será 1. Etapas AL DETALLE

CRP_IN PV_NORM

DEADBAND

+-

%

0

1

ER

DEADB_W

PV

PV_IN

PV_FACPV_OFF By P.G.F.

SP_INT

PVPER_ON

PV_PER

Ing. Paul Gálvez Fernández

Page 17: Programación avanzada

Técnicas de Programación

Etapa 1

PV_OFF: el offset del valor del proceso. Añade un valor a la salida de la función CPR_IN para adaptarlo al nuevo rango. Su valor puede ser cualquier número real, pero normalmente será 0. Etapas AL DETALLE

CRP_IN PV_NORM

DEADBAND

+-

%

0

1

ER

DEADB_W

PV

PV_IN

PV_FACPV_OFF By P.G.F.

SP_INT

PVPER_ON

PV_PER

Ing. Paul Gálvez Fernández

Page 18: Programación avanzada

Técnicas de Programación

Etapa 1

PV_OFF ejemplo 1: Supongamos que queremos controlar el nivel de un depósito, expresando la consigna en porcentajes. El valor del nivel (0 %... 100 %) nos lo da un sensor que nos proporciona 0…10 V.

En este caso deberá ser PV_FAC =1 y PV_OFF =0, ya que el valor del sensor está convertido al porcentaje en la función CPR_IN.

Etapas AL DETALLE

LCLT

Ing. Paul Gálvez Fernández

Page 19: Programación avanzada

Técnicas de Programación

Etapa 1

PV_OFF ejemplo 2: supongamos que el anterior depósito tiene una capacidad de 500 litros como máximo (10 V del sensor) y que, ahora, el control de la consigna no se hace en porcentajes sino en litros, por lo que el valor de la consigna a introducir no será de 0 a 100, sino de 0 a 500.

En este caso, se ajustarán PV_FAC =5 y PV_OFF =0, si se quiere obtener un valor máximo del sensor de 500 litros.

En cualquier caso, los valores que introducimos como consigna, así como los valores que recibimos de los parámetros PV_IN o PV_PER, tendrán que ser de la misma proporción en el punto de comparación, ya que, sino, estaríamos restando diferentes proporciones.

Etapas AL DETALLE

LCLT

Ing. Paul Gálvez Fernández

Page 20: Programación avanzada

Técnicas de Programación

Etapa 1

PV_IN: en cuanto a esta entrada, tendríamos que adaptar el valor entero que nos proporciona el sensor con las demás funciones del autómata para convertirlo en valor real, y para que, de este modo, la función realice una correcta comparación con SP_INT. Se utiliza cuando el valor del PV es real (entre el -100.0 % y el 100.0 %) o haya sido adaptado al valor de la magnitud física (en formato real DWORD).

Etapas AL DETALLE

CRP_IN PV_NORM

DEADBAND

+-

%

0

1

ER

DEADB_W

PVPV_FACPV_OFF By P.G.F.

SP_INT

PVPER_ON

PV_PER

PV_IN

Ing. Paul Gálvez Fernández

Page 21: Programación avanzada

Técnicas de Programación

Etapa 1

PV: la lectura del valor del proceso (PV) se guarda en este parámetro y estará en números reales, porcentajes (-100.0 % …0… 100.0 %) o en cualquier otra unidad. Es sólo de lectura. Etapas AL DETALLE

CRP_IN PV_NORM

DEADBAND

+-

%

0

1

ER

DEADB_W

PV_FACPV_OFF By P.G.F.

SP_INT

PVPER_ON

PV_PER

PV

PV_IN

Ing. Paul Gálvez Fernández

Page 22: Programación avanzada

Técnicas de Programación

Etapa 1

DEADB_W: después de realizar la comparación, podremos aplicar el DEAD_BAND a lo que vaya a ser el error. Por ejemplo, si se quiere eliminar las fluctuaciones o el “ruido” que puede provocar un sensor. Así pues, introduciendo el número real en este parámetro, definiremos la amplitud de esta banda. El valor inicial es 0.0 y eso significa que DEAD_BAND está desconectado.

Etapas AL DETALLE

CRP_IN PV_NORM

DEADBAND

+-

%

0

1

ER

DEADB_W

PV_FACPV_OFF By P.G.F.

SP_INT

PVPER_ON

PV_PER

PV

PV_IN

Ing. Paul Gálvez Fernández

Page 23: Programación avanzada

Técnicas de Programación

Etapa 1

DEADB_W: Cuanto más ancha sea esta banda, menos precisión tendrá la regulación, ya que, mientras el error no salga de esta banda, el regulador no se dará cuenta de que ha habido alguna variación en el error. La siguiente imagen nos muestra el gráfico que relaciona los parámetros de creación de error (ER), consigna, PV y DEAD_BAND.

Etapas AL DETALLE

DEADBAND

DEADB_W

By P.G.F.

DEADB_W

SP_INT-PV

ER

ER=(SP_INT-PV)+DEAD_W ER=(SP_INT-PV)-DEAD_W

Ing. Paul Gálvez Fernández

Page 24: Programación avanzada

Técnicas de Programación

Etapa 1

ER: error de regulación. Es sólo de lectura y hace referencia al error de lazo del proceso que estemos controlando en el momento. Su valor estará en números reales.

Etapas AL DETALLE

Ing. Paul Gálvez Fernández

Page 25: Programación avanzada

Técnicas de Programación

Etapas AL DETALLE

Etapa 2

A continuación se puede observar el diagrama de bloques correspondiente a los parámetros de configuración del algoritmo de regulación PID. La estructura del algoritmo PID trabaja en “posición” o en paralelo. Así, las acciones proporcional, integral y derivativa están colocadas en paralelo, por lo que cada acción se puede conectar y desconectar individualmente para obtener los reguladores P, I, PI, PD o PID.

INT

TI, INT_HOLD,I_ITL_ON,I_ITLVAL

DIF

TD, TM_LAG

I_SEL

P_SEL

D_SEL

+ +LMN_I

LMN_D

LMN_P

0

0

0

1

1

1

DISV

By P.G.F.

X

GAIN

Ing. Paul Gálvez Fernández

Page 26: Programación avanzada

Técnicas de Programación

Etapas AL DETALLE

Etapa 2

Su funcionamiento se basa en la siguiente fórmula:

𝐿𝑀𝑁 (𝑡 )=𝐺𝐴𝐼𝑁∗(𝐸𝑟+ 1𝑇𝑖∫𝐸𝑟 ∗ (𝑑𝑡 )+𝑇𝑑 𝑑 (𝐸𝑟 )

𝑑𝑡)

INT

TI, INT_HOLD,I_ITL_ON,I_ITLVAL

DIF

TD, TM_LAG

I_SEL

P_SEL

D_SEL

+ +LMN_I

LMN_D

LMN_P

0

0

0

1

1

1

DISV

By P.G.F.

X

GAIN

Ing. Paul Gálvez Fernández

Page 27: Programación avanzada

Técnicas de Programación

INT

TI, INT_HOLD,I_ITL_ON,I_ITLVAL

DIF

TD, TM_LAG

I_SEL

P_SEL

D_SEL

+ +LMN_I

LMN_D

LMN_P

0

0

0

1

1

1

DISV

By P.G.F.

Etapas AL DETALLE

Etapa 2

GAIN: La ganancia proporcional del regulador será (kp), y puede adquirir cualquier valor real positivo o negativo. Cuando se requiera una acción “directa” en la regulación del proceso, introduciremos valores positivos en este parámetro y, cuando se trate de una acción inversa, valores negativos.

X

GAIN

Ing. Paul Gálvez Fernández

Page 28: Programación avanzada

Técnicas de Programación

Etapas AL DETALLE

Acción directa/inversa

Direct acting controller Kp < 0 Reverse acting controller Kp > 0

u(t)=Kp(w-y) si aumenta y decrece u con Kp positiva

LT

considerar el tipo de válvula

LCLT

LC

Etapa 2

GAIN:

Ing. Paul Gálvez Fernández

Page 29: Programación avanzada

Técnicas de Programación

INT

TI, INT_HOLD,I_ITL_ON,I_ITLVAL

DIF

TD, TM_LAG

I_SEL

P_SEL

D_SEL

+ +LMN_I

LMN_D

LMN_P

0

0

0

1

1

1

DISV

By P.G.F.

Etapas AL DETALLE

Etapa 2 GAIN

Acción directa: supongamos que estemos controlando el caudal del agua que pasa por un tubo, controlando el abrir-cerrar de una válvula que hemos colocado o controlando la consigna de velocidad de una motobomba. Si sube el valor de la consigna para el control del caudal del agua, habrá que abrir más la válvula o subir la consigna de la velocidad de la motobomba. Por eso se le denomina acción directa, porque cuando se quiere incrementar el valor del PV del proceso, también incrementa la salida del regulador (existe relación directa).

X

GAIN

Ing. Paul Gálvez Fernández

Page 30: Programación avanzada

Técnicas de Programación

INT

TI, INT_HOLD,I_ITL_ON,I_ITLVAL

DIF

TD, TM_LAG

I_SEL

P_SEL

D_SEL

+ +LMN_I

LMN_D

LMN_P

0

0

0

1

1

1

DISV

By P.G.F.

Etapas AL DETALLE

Etapa 2 GAIN

Acción inversa: supongamos que queremos controlar la presión de gas de un depósito, controlando el abrir-cerrar de una válvula colocada en la salida. Como bien sabemos, si abriésemos la válvula, la presión de dicho depósito bajaría y, si la cerrásemos, subiría. Si el valor de la consigna del regulador para controlar la presión sube, la válvula deberá cerrarse. Por eso se le denomina acción inversa, porque cuando se quiere incrementar el valor del PV del proceso, la salida del regulador debe disminuir (existe una relación contraria o inversa).

X

GAIN

Ing. Paul Gálvez Fernández

Page 31: Programación avanzada

Técnicas de Programación

INT

TI, INT_HOLD,I_ITL_ON,I_ITLVAL

DIF

TD, TM_LAG

I_SEL

P_SEL

D_SEL

+ +LMN_I

LMN_D

LMN_P

0

0

0

1

1

1

DISV

By P.G.F.

Etapas AL DETALLE

Etapa 2

Función INT: Esta función nos da la salida del regulador correspondiente al efecto del integral, según los para metros Ti, IN_HOLD, I_ITL_ON, I_ITLVAL.

X

GAIN

Ing. Paul Gálvez Fernández

Page 32: Programación avanzada

Técnicas de Programación

INT

TI, INT_HOLD,I_ITL_ON,I_ITLVAL

DIF

TD, TM_LAG

I_SEL

P_SEL

D_SEL

+ +LMN_I

LMN_D

LMN_P

0

0

0

1

1

1

DISV

By P.G.F.

Etapas AL DETALLE

Etapa 2

Ti: Es el tiempo de la acción integral y su unidad se fijará en segundos. El valor mínimo de este parámetro está relacionado con el parámetro CYCLE (Ti >= CYCLE) y tendrá un valor inicial de 20 segundos (T#20S).

X

GAIN

Ing. Paul Gálvez Fernández

Page 33: Programación avanzada

Técnicas de Programación

INT

TI, INT_HOLD,I_ITL_ON,I_ITLVAL

DIF

TD, TM_LAG

I_SEL

P_SEL

D_SEL

+ +LMN_I

LMN_D

LMN_P

0

0

0

1

1

1

DISV

By P.G.F.

Etapas AL DETALLE

Etapa 2

INT_HOLD: cuando este parámetro binario se activa, la salida correspondiente al integrador se bloquea en el valor que tiene en el momento, independientemente de la evolución del error.

X

GAIN

Ing. Paul Gálvez Fernández

Page 34: Programación avanzada

Técnicas de Programación

INT

TI, INT_HOLD,I_ITL_ON,I_ITLVAL

DIF

TD, TM_LAG

I_SEL

P_SEL

D_SEL

+ +LMN_I

LMN_D

LMN_P

0

0

0

1

1

1

DISV

By P.G.F.

Etapas AL DETALLE

Etapa 2

I_ITLVAL: si al comienzo de la regulación, o en cualquier otro momento, queremos que el regulador tenga un porcentaje concreto en la salida, se lo indicaremos mediante este parámetro de número real. El valor inicial es 0.0. Este parámetro está relacionado con el parámetro I_ITL_ON.

X

GAIN

Ing. Paul Gálvez Fernández

Page 35: Programación avanzada

Técnicas de Programación

INT

TI, INT_HOLD,I_ITL_ON,I_ITLVAL

DIF

TD, TM_LAG

I_SEL

P_SEL

D_SEL

+ +LMN_I

LMN_D

LMN_P

0

0

0

1

1

1

DISV

By P.G.F.

Etapas AL DETALLE

Etapa 2

I_ITL_ON: para que el valor del integrador introducido en el parámetro I_ITLVAL pase a la salida del regulador, definiremos este valor binario en “1”.

X

GAIN

Ing. Paul Gálvez Fernández

Page 36: Programación avanzada

Técnicas de Programación

INT

TI, INT_HOLD,I_ITL_ON,I_ITLVAL

DIF

TD, TM_LAG

I_SEL

P_SEL

D_SEL

+ +LMN_I

LMN_D

LMN_P

0

0

0

1

1

1

DISV

By P.G.F.

Etapas AL DETALLE

Etapa 2

Función DIF: esta función nos da el valor de salida del regulador correspondiente a la acción derivada, según los parámetros Td y TM_LAG

X

GAIN

Ing. Paul Gálvez Fernández

Page 37: Programación avanzada

Técnicas de Programación

INT

TI, INT_HOLD,I_ITL_ON,I_ITLVAL

DIF

TD, TM_LAG

I_SEL

P_SEL

D_SEL

+ +LMN_I

LMN_D

LMN_P

0

0

0

1

1

1

DISV

By P.G.F.

Etapas AL DETALLE

Etapa 2

Td: el tiempo y la unidad de la acción derivada se fija en segundos. El valor mínimo de este parámetro está relacionado con el parámetro CYCLE (Td >= CYCLE) y tendrá un valor inicial de 10 segundos (T#10S).

X

GAIN

Ing. Paul Gálvez Fernández

Page 38: Programación avanzada

Técnicas de Programación

INT

TI, INT_HOLD,I_ITL_ON,I_ITLVAL

DIF

TD, TM_LAG

I_SEL

P_SEL

D_SEL

+ +LMN_I

LMN_D

LMN_P

0

0

0

1

1

1

DISV

By P.G.F.

Etapas AL DETALLE

Etapa 2

TM_LAG: el efecto de la acción derivada lo podemos retrasar mediante este parámetro, según el tiempo introducido en el mismo. El valor mínimo de este parámetro está relacionado con el parámetro CYCLE (TM_LAG >= CYCLE/2) y tendrá un retardo inicial de 2 segundos (T#2S).

X

GAIN

Ing. Paul Gálvez Fernández

Page 39: Programación avanzada

Técnicas de Programación

INT

TI, INT_HOLD,I_ITL_ON,I_ITLVAL

DIF

TD, TM_LAG

I_SEL

P_SEL

D_SEL

+ +LMN_I

LMN_D

LMN_P

0

0

0

1

1

1

DISV

By P.G.F.

Etapas AL DETALLE

Etapa 2

P_SEL, I_SEL y D_SEL: mediante estos parámetros binarios, podemos configurar diferentes tipos de reguladores de control del proceso (P, I, PI, PD o PID). Se debería examinar el proceso a controlar y elegir la estructura más adecuada. El regulador predeterminado en la configuración inicial es del tipo PI, por lo tanto, P_SEL = “1”, I_SEL = “1” y D_SEL = “0”.

X

GAIN

Ing. Paul Gálvez Fernández

Page 40: Programación avanzada

Técnicas de Programación

INT

TI, INT_HOLD,I_ITL_ON,I_ITLVAL

DIF

TD, TM_LAG

I_SEL

P_SEL

D_SEL

+ +LMN_I

LMN_D

LMN_P

0

0

0

1

1

1

DISV

By P.G.F.

Etapas AL DETALLE

Etapa 2

LMN_P, LMN_I, LMN_D: estos parámetros reales que son sólo de lectura hacen referencia a la proporción que las constantes P, I y D tienen en toda la salida del regulador.

X

GAIN

Ing. Paul Gálvez Fernández

Page 41: Programación avanzada

Técnicas de Programación

INT

TI, INT_HOLD,I_ITL_ON,I_ITLVAL

DIF

TD, TM_LAG

I_SEL

P_SEL

D_SEL

+ +LMN_I

LMN_D

LMN_P

0

0

0

1

1

1

DISV

By P.G.F.

Etapas AL DETALLE

Etapa 2

DISV: para simular una perturbación en el proceso, este parámetro nos permite añadir o restar un valor a la salida que origina el regulador.

X

GAIN

Ing. Paul Gálvez Fernández

Page 42: Programación avanzada

Técnicas de Programación

Etapas AL DETALLE

Etapa 3

Por último, aparecerán los parámetros de configuración de la salida originada por el regulador, para utilizarlas manual o automáticamente, para establecer límites y preparar la salida provisional en porcentajes, números reales y en formato de periferia.

LMNLIMIT

LMN_HLM,LMN_LLM

LMN_NORM

LMN_FAC,LMN_OFF

CRP_OUT

%

LMN

LMN-PER

QLMN_HLM

QLMN_LLM

1

0

MAN_ON

MAN

By P.G.F.

Ing. Paul Gálvez Fernández

Page 43: Programación avanzada

Técnicas de Programación

Etapas AL DETALLE

Etapa 3

MAN_ON: todos los reguladores pueden funcionar manual o automáticamente. Así, si este bit fuese un “1”, el valor escrito en el parámetro MAN se transferiría a la salida del regulador. Por ejemplo, si escribimos MAN = 50.0, en la salida tendríamos 5 V. Cuando el parámetro MAN_ON es “0”, el regulador estará calculando la salida automáticamente, según la fórmula

LMNLIMIT

LMN_HLM,LMN_LLM

LMN_NORM

LMN_FAC,LMN_OFF

CRP_OUT

%

LMN

LMN-PER

QLMN_HLM

QLMN_LLM

1

0

MAN_ON

MAN

By P.G.F.

Ing. Paul Gálvez Fernández

Page 44: Programación avanzada

Técnicas de Programación

Etapas AL DETALLE

Etapa 3

Función LMNLIMIT: a veces, conviene fijar unos límites a la salida que genera el regulador, por ejemplo, cuando no es conveniente abrir o cerrar del todo una válvula (por problemas de seguridad). Dichos límites se definen mediante los siguientes parámetros: LMN_HLM y LMN_LLM.

LMNLIMIT

LMN_HLM,LMN_LLM

LMN_NORM

LMN_FAC,LMN_OFF

CRP_OUT

%

LMN

LMN-PER

QLMN_HLM

QLMN_LLM

1

0

MAN_ON

MAN

By P.G.F.

Ing. Paul Gálvez Fernández

Page 45: Programación avanzada

Técnicas de Programación

Etapas AL DETALLE

Etapa 3

LMN_HLM: es el límite superior que generará el regulador. Funcionando tanto manual como automáticamente, este límite no se podrá superar nunca. Supongamos las siguientes características: LMN_HLM = 70.0 %, el regulador fijado en modo manual y MAN = 80.0 %. En este caso, la salida máxima sería del 70 %, es decir, de 7 V en caso de (0…10V).

LMNLIMIT

LMN_HLM,LMN_LLM

LMN_NORM

LMN_FAC,LMN_OFF

CRP_OUT

%

LMN

LMN-PER

QLMN_HLM

QLMN_LLM

1

0

MAN_ON

MAN

By P.G.F.

Ing. Paul Gálvez Fernández

Page 46: Programación avanzada

Técnicas de Programación

Etapas AL DETALLE

Etapa 3

LMN_LLM: es el límite inferior que generará el regulador. Funcionando tanto manual como automáticamente, el límite de salida nunca será menor que el parámetro LMN_LLM. Supongamos las siguientes características: LMN_LLM = 20.0 %, el regulador fijado en modo manual y MAN = 10.0 %. En este caso, la salida máxima también sería del 20 %, es decir, de 2 V en caso de (0…10V).

LMNLIMIT

LMN_HLM,LMN_LLM

LMN_NORM

LMN_FAC,LMN_OFF

CRP_OUT

%

LMN

LMN-PER

QLMN_HLM

QLMN_LLM

1

0

MAN_ON

MAN

By P.G.F.

Ing. Paul Gálvez Fernández

Page 47: Programación avanzada

Técnicas de Programación

Etapas AL DETALLE

Etapa 3

Función LMN_NORM: se utilizará para normalizar la salida originada por el regulador y convertirlo en porcentajes, según la función de entrada PV_NORM, conforme a la siguiente fórmula:

LMNLIMIT

LMN_HLM,LMN_LLM

LMN_NORM

LMN_FAC,LMN_OFF

CRP_OUT

%

LMN

LMN-PER

QLMN_HLM

QLMN_LLM

1

0

MAN_ON

MAN

By P.G.F.

𝐿𝑀𝑁=𝐿𝑀𝑁𝐿𝐼𝑀𝐼𝑇∗𝐿𝑀𝑁 𝐹𝐴𝐶+𝐿𝑀𝑁𝑂𝐹𝐹

Ing. Paul Gálvez Fernández

Page 48: Programación avanzada

Técnicas de Programación

Etapas AL DETALLE

Etapa 3

LMN_FAC: este parámetro multiplicará la salida del regulador. LMN_OFF: este parámetro añadirá un offset a la salida. Los dos

son números reales. LMN: es la salida de la función LMN_NORM, y nos proporciona

la salida definitiva en porcentajes (sólo de lectura).

LMNLIMIT

LMN_HLM,LMN_LLM

LMN_NORM

LMN_FAC,LMN_OFF

CRP_OUT

%

LMN

LMN-PER

QLMN_HLM

QLMN_LLM

1

0

MAN_ON

MAN

By P.G.F.

Ing. Paul Gálvez Fernández

Page 49: Programación avanzada

Técnicas de Programación

Etapas AL DETALLE

Etapa 3

Función CPR_OUT : convierte automáticamente el valor real de salida en número entero, aplicando la función Uneskale, y el resultado lo deja en el parámetro LMN_PER, según la siguiente fórmula:

LMNLIMIT

LMN_HLM,LMN_LLM

LMN_NORM

LMN_FAC,LMN_OFF

CRP_OUT

%

LMN

LMN-PER

QLMN_HLM

QLMN_LLM

1

0

MAN_ON

MAN

By P.G.F.

𝐿𝑀𝑁 𝑃𝐸𝑅=𝐿𝑀𝑁26748100

Ing. Paul Gálvez Fernández

Page 50: Programación avanzada

Técnicas de Programación

Etapas AL DETALLE

Etapa 3

Función CPR_OUT : Normalmente, a este parámetro se le adjudicará la dirección de la salida analógica a la que está conectado el actuador (PAWXXX).

Recordemos las relaciones de los valores de salida en porcentajes, números enteros (periféricos) y valores analógicos.

By P.G.F.

0% ……….. 0 ..…. 0 V / 4mA

50%.........13824 …5 V / 12 mA

100%.......27648 …10 V / 20 mA

Ing. Paul Gálvez Fernández

Page 51: Programación avanzada

Técnicas de Programación

Etapas AL DETALLE

Consideraciones claves

CYCLE : es el tiempo de muestreo. Este parámetro define la frecuencia con el que se realiza la llamada al bloque FB41.

N° de lazos : El número de lazos programables con la función FB41 en una determinada CPU se determina conforme a la siguiente fórmula:

Supongamos que en una CPU se deben programar 70 lazos PID; en ese caso, la memoria mínima requerida por la CPU sería la siguiente:

𝐶 𝑃𝑈𝑀𝑒𝑚=𝑚𝑒𝑚𝑜𝑟𝑖𝑎𝑟𝑒𝑞𝑢𝑒𝑟𝑖𝑑𝑎𝑝𝑜𝑟𝑒𝑙 𝐹𝐵+𝑛°𝑑𝑒 𝑙𝑙𝑎𝑚𝑎𝑑𝑎𝑠∗𝑡𝑎𝑚𝑎ñ 𝑜𝑑𝑒𝑙𝐷𝐵

𝑀𝑒𝑚𝑜𝑟𝑖𝑎 (𝐵𝑦𝑡𝑒 )=2,5𝑘𝑏𝑦𝑡𝑒 (𝐹𝐵41 )+70∗125 (𝐵𝑦𝑡𝑒 )=𝟏𝟏𝟑𝟏𝟎𝐁𝐲𝐭𝐞𝐬

Ing. Paul Gálvez Fernández

Page 52: Programación avanzada

Técnicas de Programación

Etapas AL DETALLE

Consideraciones claves

Cálculo del tiempo mínimo de muestreo CYCLE :

Cuando aparte de la memoria, el nº de PID a programar sea grande, el mencionado parámetro CYCLE será muy relevante, y habrá que estimar su valor adecuadamente.

En las CPU de la gama S7300, para realizar la misma función FB41, se requiere entre ≈ 1.1 ms y 1.63 ms, y en las CPU de la gama S7400, entre ≈ 54 μs y 185 μs, según la versión de la CPU.

Se deben realizar los bloques FB cíclicamente. Por lo tanto, cuando se trate de CPUs S7300 se programarán en OB25 y, cuando se trate de CPUs S7400 en bloques OB32, OB33, OB24 y OB35.

Ing. Paul Gálvez Fernández

Page 53: Programación avanzada

MUCHAS GRACIAS gentileza P.G.F.!!!

Ing. Paul Gálvez Fernández