Inicio > Foro > Programación IEC 61131 (LogicLab) > Gestión de histéresis en el control del calentador
- Este tema tiene 5 respuestas, 2 participantes y se actualizó por última vez 8 años, hace 2 meses da Sergio Bertana.
-
autorPublicación
-
Noviembre 18, 2015 en 2: 19 pm #35879Anonimoinactivo
Creé un sencillo programa de escalera que gestiona el comando de un calentador en la adquisición de temperatura desde Pt100. Para evitar oscilaciones en el control del calentador, logré una histéresis en el valor de la temperatura.
No es muy práctico en lenguaje ST, siguiendo lo que se informa en este tema Lo hice todo en escalera, aquí está captura de pantalla del programa. Me preguntaba si era posible tener un ejemplo en ST, por lo que también puede ser útil para acercarse al uso del lenguaje.
Noviembre 18, 2015 en 2: 30 pm #39195Sergio BertanaAdministrador del foroDado que la gestión de la histéresis que ha realizado es correcta, el esquema que ha creado no tiene nada de ladder y es más adecuado para el lenguaje FBD (Captura de pantalla). Tanto es así que en la nueva versión de LogicLab 4 el editor de escalera ha sido revisado para "costringere“El desarrollador debe seguir las reglas dictadas por la norma IEC 61131. Pero no se preocupe, siempre es posible seguir usando la retrocompatibilidad con el editor actual. Ahora veamos cómo escribir el programa en ST.
AnInp.Address:=0; (* Module address *)
AnInp.Channel:=0; (* Module channel *)
AnInp.Mode:=AD_VOLT_0_10_COMMON; (* Acquisition mode *)
AnInp(); (* Execute the analog acquisistion *)IF (AnInp.Value < Minimum) THEN Heating:=TRUE; END_IF; (* If the value drops below minimum set the command *)
IF (AnInp.Value >= Maximum) THEN Heating:=FALSE; END_IF; (* If the value reach the maximum reset the command *)
IF (AnInp.Fault) THEN Heating:=FALSE; END_IF; (* On FB fault reset the command *)Incluso para aquellos que no tienen experiencia en la programación en lenguaje ST, creo que el programa es legible, en la primera parte se gestiona la adquisición. Luego, el valor adquirido se compara con la instrucción IF con los valores mínimo y máximo y si la condición es verdadera, se realizan las operaciones escritas después del ENTONCES.
Noviembre 18, 2015 en 3: 40 pm #39196Sergio BertanaAdministrador del foroPor supuesto, es conveniente crear una función para gestionar la histéresis. En este programa (prensa) He creado dos funciones para la gestión de la histéresis, una escrita en ST y la otra en FBD (Descargar programa).
Noviembre 20, 2015 en 2: 00 pm #39198AnonimoinactivoDebería verificar que:
Temperatura <de SetPoint -> válvula abierta A (calor)
Temperatura> de SetPoint -> válvula abierta B (frío)
-2 ° desde el punto de ajuste> temperatura <+ 2 ° desde el punto de ajuste -> cierre las válvulas A y BDe esta forma, si el flujo de calor o frío (para bombas o válvulas sobredimensionadas) es demasiado, detenerlas antes del set point no tiende a superarlo.
Noviembre 20, 2015 en 2: 15 pm #39199Sergio BertanaAdministrador del foroMientras tanto, digamos que con una regulación On / Off es difícil evitar sobreimpulsos, el sistema siempre tiende a sobrepasar un poco los valores del set point, solo una regulación PID permite evitar este problema. Pero para hacer un control PID debe tener bombas y / o válvulas que se puedan gestionar analógicamente (velocidad / caudal variable).
Sin embargo, es una buena solución crear una banda muerta alrededor del valor de SetPoint (ha fijado ± 2 grados) pero puede tener un valor variable que se establecerá experimentalmente basándose en las pruebas reales del sistema. Al aumentar la banda muerta, puede detener la acción antes de alcanzar el punto de ajuste, dejando a la inercia térmica la tarea de llevar la temperatura al valor del punto de ajuste sin sobrepasar.
Aquí está captura de pantalla Simulación de un simple calentador de doble efecto con banda muerta en SimuLab (Descargar programa).
Febrero 3, 2016 en 8: 15 am #39330Sergio BertanaAdministrador del foroAdjunto el FB OnOffRegulation que he hecho para gestionar el ajuste de los calentadores de la unidad en la empresa. El FB maneja el umbral de temperatura con una banda muerta para evitar los péndulos en el comando (prensa, biblioteca).
-
autorPublicación
- Debe iniciar sesión para responder a este tema.