Hoy vamos a ver un poco por encima cómo realizar faceplates con Qt-Designer.
Es algo similar a lo que sería un plugin. De hecho es básicamente lo mismo, solo que lo que solemos entender como Faceplates tienen varios elementos inteligentes juntos (botones, campos de texto...)
La estructura del proceso de creación
El proceso como tal no es complejo:
- Crear la plantilla gráfica: crear un widget con los botones, textos, campos numéricos.. lo que necesite.
- Crear la clase en Python: dar inteligencia a cada elemento para que todo funcione. Es la parte más laboriosa, pero que no es para nada complicado si sobre todo usas soluciones como la plantilla que se usa en el curso de Python y Qt-Designer.
- Realizar las llamadas necesarias: en este caso, en ventanas emergentes, pero podría ser directamente en el formulario, o en un QDialog... hay varias alternativas. En este caso los he cargado en un QMainwindow. Pero hay varias alternativas.
Del PLC a Python
En el lado del PLC básicamente lo que hay que hacer es un UDT con la estructura de los datos que vas a usar.
En el caso del ejemplo, es una serie de bits de mando y una consigna en forma de número real, y unos estados (modos de trabajo, velocidad real...)
En definitiva, es crear una estrutura con todos los datos de lectura y de escritura necesarios.
Pero ¿cómo manejamos estas variables en el lado de Python?
Para hacer la lectura/escritura de variables del UDT:
- Definimos una variable de tipo puntero que abarque el área que se usa. En el ejemplo que vamos a ver son 14 bytes.
- En la clase en python deshacemos el ovillo, pasando cada parte de ese puntero a la variable que corresponda.
- A la hora de escribir, hacemos básicamente lo mismo. Introducimos los valores que quedemos escribir en el área del puntero, y mandamos escribir las palabras de mando en el PLC.
El vídeo
Lo mejor es verlo en el siguiente vídeo.
¿Qué te ha parecido?
Espero que te haya parecido interesante. Como ves es bastante versátil y una vez lo tienes programado, puedes reutilizarlo tantas veces como lo necesites.
Si además, tienes el motor de comunicación entre python y el PLC como vemos en el curso de HMI con Python y Qt-Designerahorras mucho tiempo de programación.
El ejemplo lógicamente lo subiré a este curso dentro de los anexos.

Comentarios (3)