Cómo utilizar plc para implementar pid de circuito cerrado
Presentación del método del PLC Siemens para implementar el control PID.
1 Introducción
En la producción industrial, a menudo es necesario utilizar métodos de control de circuito cerrado para lograr un control analógico de temperatura, presión, flujo, etc. que cambia continuamente. Ya sea un sistema de control analógico que utiliza un controlador analógico o un sistema de control digital que utiliza una computadora (incluido PLC), el control PID se ha utilizado ampliamente.
El controlador PID es la abreviatura de control proporcional-integral-derivativo, que tiene las siguientes características:
(1) no requiere un modelo matemático preciso del sistema de control;
p>
(2) Tiene una gran flexibilidad y adaptabilidad;
(3) Tiene las ventajas de una estructura típica, programación simple, implementación de ingeniería sencilla y ajuste de parámetros conveniente. El control integral puede eliminar el error estático del sistema y el control diferencial puede mejorar la velocidad de respuesta dinámica del sistema. La combinación efectiva de proporción, integral y diferencial puede cumplir con diferentes requisitos de control.
2 Implementación PLC del método de control PID
2.1 Módulo de control de procesos PID
El programa de control PID de este módulo está diseñado por el fabricante del PLC y almacenado en In El módulo, los usuarios deben configurar algunos parámetros cuando usan la secuencia de sincronización, lo cual es muy conveniente de usar. Un módulo puede controlar varios o incluso docenas de circuitos de circuito cerrado.
2.2 Instrucciones de función PID
Muchos PLC ahora tienen instrucciones de función para el control PID, como las instrucciones PID del S7-200. En realidad, son subrutinas para control PID. Si se usan junto con módulos de entrada/salida analógica, se pueden obtener efectos similares al uso de módulos de control de procesos PID.
2.3 Utilizar programas autoescritos para implementar el control de bucle cerrado PID
Algunos PLC no cuentan con módulos de control de procesos PID ni instrucciones funcionales para el control PID, aunque en ocasiones las instrucciones de control PID sí pueden. utilizar, todavía desea utilizar algún algoritmo de control PID mejorado. En los casos anteriores, el usuario necesita compilar el programa de control PID por sí mismo.
3 Implementación del controlador PLC-PID
Este artículo toma como ejemplo el Siemens S7-200PLC para explicar el principio del control PID y el uso de las instrucciones de función PID del PLC y la realización de la función de control.
3.1 Digitalización del controlador PID
El diseño del controlador PID PLC se basa en la ley de control PID del sistema continuo, la cual se escribe digitalmente en una ecuación de control PID discreta, y luego Diseñar programas de control basados en ecuaciones discretas.
En un sistema continuo, en la Figura 1 se muestra un sistema de control de circuito cerrado PID típico. En la Figura 1, sp(t) es el valor dado, pv(t) es la cantidad de retroalimentación y c(t) es la cantidad de salida del sistema. La relación entrada-salida del control PID es:
En la fórmula:
M(t)—la salida del controlador, M0 es el valor inicial de la salida;
e(t)=sp(t)- pv(t): señal de error;
KC coeficiente proporcional;
TI - constante de tiempo integral
TD - constante de tiempo diferencial.
Figura 1 Diagrama de bloques de un sistema de control continuo de circuito cerrado
Los primeros tres términos en el lado derecho de la ecuación (1) son las partes proporcional, integral y diferencial, que son relacionados con el error, la integral y el diferencial del error respectivamente. Si tomas uno o dos de ellos, puedes formar un controlador P, PD o PI.
Supongamos que el período de muestreo es TS, el momento en que el sistema comienza a funcionar es t=0, use la integral rectangular para aproximar la integral exacta, use la diferencia para aproximar el diferencial exacto, discretice la Fórmula 1 y el controlador en el enésimo muestreo La salida del ;
coeficiente diferencial KD.
El sistema de control de lazo cerrado basado en PLC se muestra en la Figura 2. La parte de la línea de puntos en la figura está dentro del PLC.
Entre ellos, spn, pvn, en y Mn son las cantidades digitales de la cantidad analógica en el enésimo muestreo de sp(t), pv(t), e(t) y M(t), respectivamente.
Figura 2 Diagrama de bloques del sistema de control de circuito cerrado PLC
En muchos sistemas de control, es posible que solo se necesiten uno o dos tipos de control entre P, I y D. Si solo se requiere control proporcional o control proporcional e integral, el tipo de control del bucle se puede seleccionar configurando parámetros.
3.2 Conversión de variables de entrada y salida
El control PID tiene dos cantidades de entrada: valor dado (sp) y variable de proceso (pv). La mayoría de los procesos requieren que el valor dado sea un valor fijo, como el valor dado de la temperatura del horno de calentamiento. La variable de proceso es el valor medido real de la cantidad controlada obtenida después de la conversión y el cálculo A/D, como el valor medido de la temperatura del horno de calentamiento. Tanto los valores dados como las variables de proceso son valores relacionados con el objeto controlado. Para diferentes sistemas, su tamaño, rango y unidades de ingeniería son muy diferentes. Antes de utilizar las instrucciones PID del PLC para operar con estas cantidades, se deben convertir en números de coma flotante estandarizados (números reales).
Del mismo modo, la salida de la instrucción PID también debe convertirse antes de enviarla al convertidor D/A.
3.3 Conversión de entrada en bucle
El primer paso de la conversión es convertir el valor dado o el valor entero obtenido después de la conversión A/D de un entero de 16 bits a un número de punto flotante. Puede utilizar lo siguiente El programa implementa esta conversión:
XORD AC0, ACO
//Limpiar el acumulador
MOVW AIWO, AC0
.// Almacena el valor analógico a convertir en el acumulador
LDW>= AC0, 0
//Si el valor analógico es positivo
JMP 0
//Convertir directamente a un número real
ORD 16#FFFF0000, ACO
//Extender la extensión de signo del valor en AC0 a un Número negativo de 32 bits
LBL 0
DTR AC0, AC0
//Convierte el entero de 32 bits en un número real
El siguiente paso en la conversión es convertir aún más el número real a 0,0. Para números reales estandarizados entre ~1,0, se puede utilizar la siguiente fórmula (3) para estandarizar el valor dado y la variable de proceso:
RNorm =(RRaw/Span) Offset (3)
En la fórmula:
RNorm - valor real normalizado
RRaw - valor antes de la normalización
Compensación: compensación, 0,0 para variables unipolares, para variables bipolares, es 0,5;
El rango de valores de intervalo es igual al valor máximo de la variable menos el valor mínimo de. la variable unipolar es 32.000 y el valor típico de la variable bipolar es 64.000.
El siguiente programa convierte el número real bipolar en AC0 (su Span=64000) obtenido después de la conversión anterior en un número real entre 0.0~1.0:
/R 64000.0, AC0
//Normalización de números reales en el acumulador
+R 0.5, AC0
//Agregar valor de compensación para que esté entre 0.0~1.0
MOVR ACO, VD100
//El valor normalizado se almacena en la tabla de bucle
3.4 Conversión de salida de bucle
La salida del bucle es la salida del controlador PID, que es un número real estandarizado entre 0,0 y 1,0. Antes de enviar la salida del bucle al convertidor D/A, se debe convertir a un entero binario de 16 bits. Este proceso es el proceso inverso de convertir pv y sp en valores estandarizados. Utilice la siguiente fórmula para convertir la salida del bucle en un número real:
RScal=(Mn-Offset)×Span (4)
En la fórmula, RScal es el valor real correspondiente a la salida del bucle, Mn es el valor real normalizado de la salida del bucle.
El siguiente programa se utiliza para convertir la salida del bucle al número real correspondiente:
MOVR VD108, AC0
//Enviar la salida del bucle al acumulador
p>-R 0.5, AC0
//Esta declaración solo está disponible para números bipolares
*R 64000.0, AC0
//Multiplica la variable de polaridad por 32000.0
Utiliza las siguientes instrucciones para convertir el número real que representa la salida del bucle en un entero de 16 bits:
ROUND AC0, AC0
//Convertir Convierte números reales a enteros de 32 bits
MOVW AC0, AQW0
//Escribe enteros de 16 bits en el registro de salida analógica (D/A)
3.5 Instrucciones PID y tabla de bucle
La instrucción PID del S7-200 se muestra en la Figura 3:
Figura 3 Instrucción PID
TBL en la instrucción es la dirección inicial de la tabla de bucle, LOOP es el número de bucle. Durante la compilación, si la dirección inicial o el número de bucle de la tabla de bucle especificada por la instrucción excede el rango, la CPU generará un error de compilación (. 4 ejemplos de programación de instrucciones PID
El agua en un determinado tanque de agua fluye a una velocidad variable y un convertidor de frecuencia La bomba de agua impulsada por el controlador bombea agua al tanque de agua para mantener el nivel del agua en el tanque al 75% del nivel total del agua. La variable del proceso es proporcionada por el agua. instrumento de medición de nivel flotando en el agua, y el valor de salida del controlador PID se utiliza como el valor de velocidad dado del convertidor de frecuencia. Las variables del proceso y la salida del bucle son cantidades analógicas unipolares, con un rango de valores de 0,0 ~ 1,0. /p>
Este ejemplo utiliza un controlador PI, el valor dado es 0,75 y el valor inicial de los parámetros del controlador seleccionados es: KC=0,25, TS=0,1s, TI=30min.
La programación es la siguiente:
//Programa principal (OBI)
LD SM0.1 //Al escanear por primera vez
LLAMADA 0 // Llama a la subrutina de inicialización
p>//Subrutina
LD SM0.0
MOVR 0.75, VD104 //Carga el valor dado 75%
MOVR 0.25, VD112 //Ganancia de bucle de carga 0.25
MOVR 0.10, VD116 //Tiempo de muestreo de carga 0.1s
MOVR 30.0 VD120 //Tiempo de integración de carga 30min
MOVR 0.0, VD124 //Desactivar el efecto diferencial
MOVB 100, SMB34
//Establecer el intervalo de tiempo de interrupción programada de 0 a 100 ms
ATCH 0, 10
//Establece una interrupción temporizada para ejecutar la instrucción PID
ENI
//Habilita la interrupción, la subrutina 0 finaliza
// Programa de interrupción 0
LD SM0.0
LTD AIW0, AC0
//El valor analógico unipolar se almacena en el acumulador después Conversión A/D
DTR AC0, AC0
//Convierte un entero de 32 bits en un número real
/R 32000.0, AC0
//En el número real del acumulador normalizado
MOVR AC0, VD100 //Guardar en tabla de bucle
LD 10.0
//En modo automático, ejecutar PID instrucción
PID VB100, 0
//La dirección inicial de la tabla de bucle es VB100 y el número de bucle es 0
LD SM0.0 p>
MOVB VD108, AC0
//El valor de salida del controlador PID se envía al acumulador
*R 32000.0 AC0
// Normalizar el valor en el acumulador
ROUND AC0, AC0
//Convertir números reales a enteros de 32 bits
DTI AC0, AQW0
//Escribe números enteros de 16 bits en un registro de salida cuantitativa (D/A) analógico
5 Conclusión
Hay muchas formas de implementar el control PID en la aplicación directa de PID. Las instrucciones para implementar el control PID basado en PLC es un método fácil de implementar, económico y práctico.