Esta semana te traigo la presentación del nuevo curso que voy a realizar dedicado a crear HMI con Python y Qt Designer.
Contenido
¿Por qué Python?
La razón de elegir Python es que es un lenguaje que cada vez se usa más en entornos industriales. No será por tanto que tengas que lidiar con este lenguaje antes o después.
Además es un lenguaje sencillo de aprender al se de muy alto nivel.
Si has programado en otros lenguajes le pillarás el punto enseguida. Si no has programado nunca, desde luego es un magnífico lenguaje para empezar.
Tiene una comunidad gigantesca detrás y lo puedes usar en la plataforma que desees ya que hay intérpretes de Python de todos los colores.
¿Por qué Qt?
Si vas a trabajar con Python para realizar determinadas tareas, seguramente vas a necesitar un entorno gráfico en el que apoyarte.
El entorno de ventanas es en lo que más he buscado para decantarme por uno.
Si bien es cierto que hay multitud de fórmulas para crear un entorno de ventanas, he elegido Qt por varias razones:
- Qt es ampliamente usado en la creación de entorno de ventanas. En Linux, el escritorio KDE está basado en Qt y hay aplicaciones como VLC o Telegram desktop que usan Qt.
- Detrás de Qt está The Qt Company lo cual siempre es una garantía mayor que haya una empresa detrás desarrollándolo y sobre todo, manteniéndolo.
- Existe un GUI para pinchar y arrastrar fácil de usar como es Qt Designer.
Por otro lado, las licencias de todo el software con el que vamos a trabajar son gratuitas y libres de uso comercial. Es decir, podrás desarrollar tus aplicaciones sin problema y sin coste.
¿Qué más vamos a necesitar?
Además de lo ya comentado, necesitamos dos herramientas más:
- Snap7 para conectarnos a los PLC de Siemens
- PySide6 que haga de pasarela entre Qt Designer y Python
La primera está clara: para conectarnos con los PLC de Siemens necesitamos una librería que lo permita. En el caso de Python Snap7 es nuestra aliada. Como ya vimos en el caso del registro rapidito es rápida y funciona perfectamente.
Por si solos Python y Qt no se entienden. Necesitamos un puente entre ambos mundos. Ahí es donde entra PySide6.
En este punto hay que aclarar una cosa. Existe otra herramienta que es PyQt5 que es muy similar a PySide6.
Ambas son muy parecidas en el uso, y pasar de usar una a la otra es sencillo una vez que te familiarizas con una de ellas.
La razón de elegir PySide6, y no PyQt5 es que The Qt Company de forma oficial soporta PySide6, y si bien PyQt5 es muy utilizada, lo suyo a medio y largo plazo es acostumbrarse a PySide, que es la que está soportada oficialmente.
Además, en tema de licencias PySide6 es menos restrictiva que PyQt5 a la hora del uso comercial.
Presentación del curso de HMI con Python y Qt
He de decir, antes de pasar con el vídeo, que no se trata de un curso donde aprender Python o a usar en profundidad Qt Designer.
Lo usaremos, y aprenderemos lo necesario para crear la plantilla que te voy a presentar y ver cómo está creada para poderla usar.
Finalmente te dejo con un vídeo donde te muestro lo que vamos a aprender en el curso.
¿Qué te parece?
La idea del curso por tanto es complementar la programación en Python de toda índole con un entorno gráfico como es Qt de tal forma que una vez tengas realizada la plantilla te sea mucho más fácil realizar el entorno gráfico además de ser escalable y reutilizable para otros proyectos.
Es decir, no tener que empezar desde cero cada proyecto sino que tengas una plantilla limpia con la que comenzar rápidamente.
Además podrás crear nuevos controles que vayan alimentando la plantilla de cara a que cada vez tengas que invertir menos tiempo ya que la trabajas una vez, la incluyes en la plantilla y lo tienes para siempre.
¿Qué te parece esta nueva andadura? ¡Espero tus comentarios!
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.
19 Comentarios
Me parece perfecto que en el ámbito industrial se vayan introduciendo desarrollos en Software Libre.
Es un camino de avance complementario o incluso alternativo, si es necesario, al que nos ofrecen las aplicaciones privativas, que pueden estar muy bien, pero son una trampa.
Estoy de acuerdo contigo Pablo. En muchos casos, no es necesario adquirir software privativo porque simplemente, no le sacas partido a dicho software.
Además, y lo digo por experiencia, si vas a usar finalmente un PC para desarrollar la aplicación porque así lo requiere, a la larga puede ser un problema ya que la migración a otros SO más modernos se hace muy difícil o simplemente no compensa y sale más a cuenta realizar el HMI/Scada desde cero.
En cambio, el uso de herramientas abiertas (no necesariamente gratuitas), y lógicamente teniendo el código, da pie a mantenimientos, ampliaciones y migraciones más sencillas.
Mientras que tenemos verdaderos problemas para actualizar PC de hace 15-20 años con mochilas de hardware en el puerto paralelo, no tenemos tantos problemas para migrar aplicaciones realizadas en .NET de las cuales tenemos el código fuente.
Ahora bien, luego ya hay aplicaciones que no tienen sentido hacerlas en un PC y lo suyo es una pantalla táctil comercial como las que puede tener Siemes u otros fabricantes.
Cada cosa, para lo que es.
Muy interesante, gracias por la motivación y natural way por tu parte, cada día nos sorprendes sencillamente.
Un saludo y con impaciencia a esperar.
Excelente, Recomendado para ver temas de operación en la planta además de poder operar !
Gracias Juan!
Hola Iñigo, que precio tendrá esta formación y de cuantas horas prevé que sea?
Muchas gracias.
Aún lo estoy preparando. Cuando lo tenga más avanzado, os daré más detalles.
Saludos!
Saludos me parece interesante está herramienta, soy especialista en Allen Bradley, por casualidad sabrá usted si existe una herramienta como la SNAP7 pero para Allen Bradley
Existe, porque la he visto funcionar, pero no la he usado.
Hola Iñigo,
Estoy muy interesado en este curso. Espero con entusiasmo a empezar este curso.
Saludos,
Excelente Ingeniero, no dejas de sorprendernos .
Gracias Héctor!
Genial Iñigo, cada día aprendemos mas contigo.
Buenos días Iñigo,
Antes de nada, muchas gracias por todo el contenido que subes a la web, ya que es muy interesante para los que trabajamos en el mundillo.
Tenía una duda respecto a las licencias de Qt, ya que no sé hasta qué punto son gratuitas. Siempre he tenido dudas de si usar el Qt Designer con Pyside sería libre de uso comercial y nunca he encontrado información clara al respecto. ¿La has encontrado tú? ¿Podrías compartirla?
Un saludo y gracias.
Qt-desiger se instala cuando instalas PySide6. No hay que hacer nada, ya que estás disponible sin bajarte nada adicional.
En Pypi está la documentación: https://pypi.org/project/PySide6/
Al final del todo está la licencia que dice:
PySide6 is available under both Open Source (LGPLv3/GPLv2) and commercial license. Using PyPi is the recommended installation source, because the content of the wheels is valid for both cases. For more information, refer to the Qt Licensing page.
Piensa que Qt-Designer no es necesario para usar Pyside6 ya que podrías desarrollar TODO picando el código pertinente. El hecho de que venga con ello, y no te pida nada, ya es síntoma de que lo puedes usar sin limitaciones.
Por su parte, Qt: https://doc.qt.io/qt-6/licensing.html
Finalmente tienes las licencias que usa Qt: https://doc.qt.io/qt-6/licenses-used-in-qt.html
Como ves, ya la propia Qt usa muchas cosas que son GPL, y están por tanto obligados a que lo sigan siendo.
Otra cosa ya es Qt-Creator y Studio, que son harina de otro costal. Esas si que llevan sus licencias y hay que pasar por caja.
Pero por usar Pyside6, no. Al menos, a día de hoy.
Desconocía que Qt Designer viniera con Pyside6, yo lo descargaba por separado. Me queda claro así, muchas gracias!
Sí, está dentro de Lib/site-packages/Pyside6.
También lo puedes invocar una vez instalado Pyside6 desde un terminal de windows con pyside6-designer
Buenas Iñigo
¿Hay alguna pantalla HMI en que se puede instalar la aplicación Qt o solo se podría ejecutar desde un entorno de escritorio Windows? En las pantallas DOP de DELTA, hay una pegatina de Qt. Entiendo que se podrán integrar ahí.
Un saludo.
Desconozco si es posible en algún tipo de pantalla industrial. En las de Siemens hasta donde yo conozco, no. En un PC puedes hacerlo en Windows o Linux.