He querido invitar a Eugenio Argaiz para que nos muestre cómo se puede simular perfectamente un ejemplo de PID con Factory IO. La verdad es que es muy esclarecedor.
Espero que os guste. Os dejo con él…
Un poco de mi.
Hola que tal, buenas tardes…., en esta ocasión les voy a comentar lo que he realizado en este nuevo video….
Así más o menos comienzan los videos que realizo sobre programas para PLCs Siemens.
Me presento: soy Eugenio Argaiz Ruiz, en la actualidad soy profesor de Simulación de Sistemas Mecatrónicos en el Instituto Inventor Cosme García de Logroño.
Hace tiempo descubrí este canal realizado por Iñigo, y me puse a seguir lo que hacía. Aprendí mucho más que lo que se puede aprender por los métodos tradicionales.
Esta mañana Iñigo me transmitió la posibilidad de comentar algún programa de los que realizo… y ¡cómo no!
Mi duda era qué programa comentaros… ¡son tantos los programas que realizo últimamente!
Tengo que admitir, que los últimos son de los que más satisfecho estoy. Cuanto más sabe uno, más sabe lo poco que sabe, y más quiere saber. Igual que un montañero que siente pasión por subir cumbres, cuando sube una… ya bajando va pensando en subir una más alta.
Bueno, no les voy a trasladar como subir la cumbre más alta, porque si no se está acostumbrado, se puede sucumbir en el intento.
Ejemplo de PID con Factory IO
Aprovechando la nueva versión de Factory I/O os voy a comentar un programa que he realizado hace un par de días, el tema es el regulador PID, y lo aplico al control de una variable de nivel, (cm), y como señal modificadora del mismo una válvula proporcional (0..10V). Podéis ver la realización en los siguientes vídeos:
Siempre que realizo un programa lo hago en base a funciones, es decir, primero pienso en las funciones que se necesitan, que datos entran…, que resultados deben ofrecer…, que estructura de llamadas debe existir, etc.
Es lo que en ajedrez llamamos la estrategia, y después dejo pasar un par de días por si se me ocurre otra estrategia mejor (una vez que se marca la estrategia todo va condicionado a la misma, un error en la estrategia equivale a perder la partida o lo que es lo mismo a “un churro de programa”).
Vista la estrategia me centro en la táctica, es decir, en realizar cada una de las funciones, normalmente prefiero programar en SCL (es más potente, me cuesta menos hacer un programa y permite logros imposibles desde los otros entornos de programación). Bien es cierto que programo así por mi formación, (normalmente los alumnos suelen preferir cualquier otro lenguaje, KOP; FUP; GRAPH; por economía).
En este caso es sencillo, necesitamos un control manual del depósito, y un control PID, (en realidad ambos controles son automáticos).
Una vez estructurado el programa, pienso en las entradas y salidas necesarias. En este caso Factory I/O es genial, la tenemos la tabla conforme hacemos la máquina. Como podéis observar renombro las variables con el mismo nombre que recibirán en la tabla de variables del programa.
Realizar la máquina no es costoso si se tiene un poco de experiencia.
La tabla de variables la tenemos aquí:
Seguidamente, empezamos con la táctica… ¡la programación de funciones¡¡
Ssi se tienen buenas librerías, no cuesta mucho hacer programas, pero tener buenas librerías implica un trabajo previo.
Desde el Main, llamo a las funciones necesarias. Como veis no he programado el estado de emergencia. Esto se queda como tarea vuestra.
Para manual, hacemos una función (insisto, no es manual, es un control comparativo):
Y para automático hago lo propio… otra función:
El PID lo llamo desde un OB de interrupción cíclica:
Después configuramos el PID y lo ajustamos:
Y ya está.
Después de ajustar el PID, toca probar cómo funciona nuestro “invento”. Os puedo asegurar que en este momento disfruto, ver que funciona conforme lo he pensado es muy satisfactorio.
Hay veces que un regulador PI es más que suficiente, (la mayor parte de las veces), y la labor teórica como es la configuración con el autotuning suele ser suficiente, si no es suficiente, lo que suelo hacer es calcular los parámetros para diferentes “setpoints”.
Posteriormente con un Case, ajusto los parámetros adecuados. Mi experiencia me dice que un PID funciona bien solo para el entorno próximo al SETPOINT, pero… podemos establecer diferentes ajustes para distintos tramos,…
El reto que planteo a los lectores del blog es realizar sobre esa misma máquina dos PIDs de nivel con las válvulas de llenado y vaciado…, (se complica bastante).
Bueno, pues nada más… espero que disfruten de la programación, espero que os haya motivado en el desarrollo, se esfuercen para conseguir logros, y levantemos a este bonito país que es España de esta crisis económica y en muchos casos de valores, en la que estamos inmersos.
Saludos, Eugenio Argaiz Ruiz
Está bien esto del
Está bien esto del ejemplo de PID con Factory IO ¿eh?
Ya estoy de vuelta.
En primer lugar, agradecer a Eugenio su participación en el blog. Siempre está bien tener visiones diferentes, y soluciones diferentes que compartir.
Hemos visto con esta entrada, la versatilidad de programar en SCL, y una pequeña parte de lo que nos puede ofrecer Factory IO
Enseño a programar PLC de Siemens a través de mis cursos.
Más información sobre mi aquí
Puedes seguirme en cualquiera de las siguientes redes sociales.
4 Comentarios
La verdad que lo sigo a Eugenio desde hace tiempo, y me parecen muy buenos todos los vídeos que sube, se aprende mucho con él ya que no son los típicos vídeos que puedes encontrar por internet.
saludos
Sí, sí, Eugenio se lo curra. Hace ejemplos muy potentes.
Saludos y gracias por comentar, que seguro que lo leerá y le gustará el feedback.
Cordial saludo
Soy nuevo en el uso de esta herramienta y en la incursión de procesos de automatización. Tengo un trabajo en el cual debo hacer uso de una planta de factor io y asociarla a TIA portal, me gustaría contar con su ayuda, esta planta debe tener mínimo dos entradas análogas y n digitales.
Agradezco su atención y su colaboración.
Lo siento, pero no resuelvo problemas de proyectos para estudiantes.
Se trata de que lo resuelvas tu, y aprendas, no yo.
Seguro que el tutor que tengáis para la materia os podrá ayudar en las dudas puntuales que podáis tener.
Saludos