Hay muchas soluciones IoT SCADA para fábricas y otras necesidades de fabricación. Sin embargo, hay casos (y muchos) en los que necesita desarrollar su propio sistema SCADA para cubrir las necesidades específicas de su proyecto.
Artículo original -
Biblioteca del panel de IoT: visualice SCADA en un instante [Biblioteca de IoT gratuita]A menudo utilizamos un marco Qt increíble para implementar soluciones complejas de IoT. Para un montón de proyectos SCADA y similares a SCADA, encontramos la necesidad de una herramienta rápida para desarrollar paneles de dispositivos. Es por eso que desarrollamos una biblioteca Qt no oficial súper ligera. La biblioteca es de código abierto, personalizable y de uso gratuito bajo licencia MIT. También compartimos un pequeño conjunto de widgets desarrollados.
Disfruta y usa Qt;)
LÉAME : esta biblioteca está creada para proyectos de escritorio, móviles e integrados desarrollados en Qt. Para usarlo, debe conocer Qt / C ++ y QML.
Introduciendo QSimpleScada
Permítanos presentarle una biblioteca ingeniosa para sus proyectos de IoT. Creamos QSimpleScada para acelerar y simplificar la visualización de cualquier dato, para que nosotros (y usted) podamos concentrarnos en desarrollar algoritmos de automatización que funcionen.
Fue creado principalmente para acelerar y, en consecuencia, reducir el
costo de la solución IoT.¿Qué es QSimpleScada?
Es una biblioteca que maneja completamente la conexión y la edición de widgets. Con QSimpleScada, puede crear fácilmente una visualización de datos de IoT con el mouse y un pequeño código. Una vez que esté satisfecho con el diseño, guarde el archivo .xml generado y úselo en su proyecto.
La biblioteca se crea con Qt / C ++ y el widget básico se basa en C ++. Hay una interfaz para QML, por lo que puede crear de forma independiente widgets individuales en QML (como cuando se crean las UI clásicas de QML) y cargarlas en su aplicación sobre la marcha.
¿Por qué lo necesito?
Bueno, lo haces si eres un desarrollador de Qt o una empresa y:
- Tenga plazos estrictos y evaluaciones de datos complejas en su proyecto
- Necesidad de prototipos de proyectos de IoT móviles / integrados / de escritorio a menudo
- Necesita una herramienta única para diversos proyectos de Qt
- No quiero / tengo tiempo / recursos para desarrollar paneles desde cero
Si ninguna de las anteriores es sobre usted, entonces no lo hace.
¿Por qué construir paneles de IoT?
Bueno, puede sonar un poco redundante, así que siéntase libre de omitir esta sección si esta pregunta es evidente para usted. De lo contrario, hay bastantes razones para visualizar la información que obtuvo de Internet of Things.
Es el componente básico HMI (Interfaz hombre-máquina) para literalmente cualquier IoT o sistema de control. Mucho mejor que el enfoque textual si desea que los usuarios vean datos relevantes sobre la marcha. Eso se aplica tanto a los proyectos clásicos de SCADA como a los de SCADA.
Por ejemplo, en nuestro UBreez usamos QSimpleScada para visualizar lecturas de aire. Compara la pantalla por ti mismo. Entonces, ¿qué se ve más ordenado y claro incluso cuando comprende muchos widgets de sensores? L

Con los paneles de control, puede resaltar de inmediato cualquier desviación de los estándares, determinar dónde se produce un mal funcionamiento, rastrear la ubicación en vivo, ver tendencias y cualquier otra información valiosa. Ahorra tiempo a los usuarios en la comprensión de los datos que recopila el sistema SCADA, y pueden responder y decidir cómo actuar más rápido.
Usando QSimpleScada
Estos son los pasos para integrar QSimpleScada versión 0.9.x en su proyecto:
Paso 1: instalar
Vía el administrador de paquetes:Si está creando soluciones inteligentes usando Qt, lo más probable es que use el administrador de paquetes qpm para que no se requiera más chit-chat. En caso de que no lo haga (todavía), descárguelo desde aquí
https://www.qpm.ioPara instalar a través de qpm, ejecute:
qpm
install com.indeema.qsimplescada
Y agregue:
include (../vendor/vendor.pri)
Al archivo * .pro de su proyecto.
Como beneficio adicional, pruebe nuestro preajuste de widgets:
qpm
install com.indeema.eeiot
De github:Para clonar el repositorio, vaya a:
https://github.com/IndeemaSoftware/QSimpleScadaPara agregar también widgets preconfigurados, clone:
https://github.com/IndeemaSoftware/EEIoTY agregue:
include($$PWD/com/indeema/QSimpleScada/com_indeema_QSimpleScada.pri)
include($$PWD/com/indeema/eeiot/com_indeema_eeiot.pri)
Al archivo * .pro.
Usando lanzamiento binario:https://github.com/IndeemaSoftware/QSimpleScada/releasesPaso 2: configurar
Una vez que descargue e instale la biblioteca en su proyecto:
1. Cree un nuevo dispositivo que se representará en su tablero. Déle un nombre y su dirección IP:
QScadaDeviceInfo *lDeviceInfo = new QScadaDeviceInfo();
lDeviceInfo->setName("Test Device");
lDeviceInfo->setIp(QHostAddress("127.0.0.1"));
2. Cree una clase de controlador que maneje todos los dispositivos posteriores y todas las placas que estén conectadas a los dispositivos:
QScadaBoardController *</code><code>mController</code><code> = new QScadaBoardController(); mController->appendDevice(lDeviceInfo)
3. Llame al método initBoardForDeviceIp para crear una nueva placa para el dispositivo ya agregado. Si no hay ningún dispositivo en una IP específica, la placa no se creará.
mController->initBoardForDeviceIp("127.0.0.1");
4. Configure el modo editable para su controlador para permitir crear, mover y cambiar el tamaño de los controladores.
mController->setEditingMode(true);
Si el modo de edición está habilitado, la ventana modal presentará un fondo punteado:

5. Agregue el diseño de cuadrícula en su widget y luego agregue su controlador a ese widget:
QGridLayout *
mainLayout
= new QGridLayout(ui->centralWidget);
mainLayout->addWidget(
mController
);
Trabajando con widgetsTambién hemos desarrollado una biblioteca EEIoT con un conjunto de widgets preconfigurados. Puede descargarlo en
https://github.com/IndeemaSoftware/EEIoT y probarlo como un comienzo.
Para usar una colección de widgets:
Llame a la función con url a recursos QML para que el controlador sepa la ubicación de los widgets QML:
QMLConfig::instance.appendQMLPath(:/com/indeema/eeiot/EEIoT/);
Singletone QMLConfig se encuentra en "qscadaconfig.h"
Aquí usamos EEIoT como grupo para todos los widgets dentro. Puede configurar 1 o más grupos.
Tenga en cuenta que si crea dos carpetas con el mismo nombre en diferentes ubicaciones, la segunda (creada más tarde) borrará la primera.
Puede acceder a todas las propiedades dinámicas que forman QML (mencionadas en una lista de metaData) desde QSimpleScada, para que pueda crear sus propios paneles complejos de forma rápida y fácil.
Paso 3: uso
Puede usar nuestro sencillo editor para crear su primer tablero
https://github.com/IndeemaSoftware/QSimpleScadaSampleLuego configure QScadaBoardController en su aplicación sin ningún dispositivo ni placa y llame:
mController->openProject(QString <file>)
donde <archivo> es una ruta completa a su archivo de proyecto (* .irp)
Por ejemplo:
mController->openProject(QString :/com/indeema/eeiot/EEIoT/)
Mira QSimpleScada en acción
Visite nuestro perfil de GitHub para explorar aplicaciones simples que muestran el trabajo de la biblioteca QSimpleScada:
Esta es una aplicación simple que visualiza datos relacionados con el clima de 3 widgets:
- Temperatura
- Humedad
- Presión
QSimpleScada y EEIoT se utilizan para manejar la pantalla y la conectividad del tablero. Todos los datos meteorológicos en tiempo real que recibimos de Openweathermap API. Puede descargar el código en
https://github.com/IndeemaSoftware/QSimpleScadaSamplePara ver las lecturas actuales de tu ciudad:
Ingrese su ciudad seguida de una coma y el código de país de la siguiente manera:
Kiev, uay haga clic en el botón
Enviar .
Esto actualizará la temperatura, la humedad y la presión de su región.

Aplicación de construcción
Un ejemplo más de cómo usar QSimpleScada es la aplicación Builder que nos da la posibilidad de crear nuestros paneles y guardarlos en archivos * .irp. Un editor de panel simple que usa QSimpleScada para crear el panel necesario con widgets EEIoT y guardar la configuración del panel para su uso posterior. En el ejemplo, creamos un tablero que se utilizó en la aplicación Weather mencionada anteriormente.
El código también está disponible en
https://github.com/IndeemaSoftware/QSimpleScadaSampleMás herramientas para ti
Descubrimos que la introducción de Internet de las cosas impacta a todas las industrias y redefine nuestro enfoque para usar la tecnología. Hemos analizado ese tema en detalle en
6 aplicaciones prometedoras para el artículo de
IoT industrial , y es un placer impulsar el progreso con la automatización que trae 4th Industrial Revolution.
Comprensión y contexto
Si todos los proyectos tuvieran especificaciones concretas, el mundo del desarrollo sería una utopía. Sin embargo, cuanto más claros sean el objetivo y los requisitos iniciales, y cuanto mejor los entienda todo el equipo, más racionalizado será un proyecto. Para profundizar su conocimiento sobre los detalles y las dificultades típicas que siguen a los proyectos de IoT, lea:
Spoiler : encuentre las plantillas para la documentación relacionada con el proyecto, de modo que pueda comunicar los requisitos y convertirlos en especificaciones procesables con menos esfuerzo.
Estimando el costo y el tiempo
Obtener una comprensión profunda del tiempo y los recursos que necesitará es casi imposible. Entonces, para prepararlo con una idea general de la complejidad (calculada en tiempo y costo), aquí hay una calculadora específica de IoT:

Herramientas de desarrollo
Al compartir nuestro kit de herramientas para un desarrollo más rápido y más eficiente del proyecto IoT, cargamos nuestros proyectos de código abierto relacionados con Qt e IoT en
https://github.com/IndeemaSoftware con Q al comienzo de los títulos de repositorio. También puede encontrar un montón de herramientas para el desarrollo de React, Android e iOS allí.

Recapitulación
En Indeema, estamos acostumbrados a plazos ajustados y proyectos desafiantes. Y, comprometidos con la creación de soluciones inteligentes, nos dimos cuenta gradualmente de que:
- La comprensión es lo primero.
Se curioso Aclara cada requisito, no importa cuán evidente creas que es. Asegúrate de entender. Debido a que puede diseñar una arquitectura lógica y escalable, escribir un código increíble y limpio, y aún así no transmitir el resultado deseado. El diablo está en los detalles (así que asegúrate de no dejar detalles desapercibidos).
- Reinventar la bicicleta es inútil.
Cada proyecto contiene desafíos únicos y requiere pensamientos listos para usar. Y no hay necesidad de desarrollar todo desde cero. Por qué Porque solo reducirá el tiempo que tiene para encontrar e implementar características, módulos y arquitectura realmente desafiantes.
- La calidad es un estándar .
Sé responsable de tu trabajo. Estás comprometido en hacer el futuro. Si es desarrollador, pruebe su código con las especificaciones, las mejores prácticas, el sentido común, la estabilidad del proyecto, etc. Y lo mismo se aplica a cualquier otro rol.
Gracias por leer y espero que hayas disfrutado este artículo. Suscríbase para recibir actualizaciones y háganos saber lo que le interesa.