Buen dia, Habr!

Desarrollo de un controlador industrial con una pantalla para recopilar y analizar datos, así como para gestionar cargas agrupadas. A quién le importa lo que salió de eso, por favor, debajo del gato.
El tema de los controladores industriales se ha desarrollado durante mucho tiempo para su uso en sistemas de control automatizado (ACS). Cuando veo el próximo controlador de Siemens, ViewPAC o cualquier otro fabricante, solo veo una tableta grande (escribo sobre este factor de forma, es decir, no las opciones de montaje en bastidor) con software especializado en el interior, pero esto es solo a primera vista. De hecho, la mayoría de las veces, solo la apariencia desde el lado de la pantalla es similar, pero el panel posterior tiene conectores de interfaz, compartimentos para conectar módulos de expansión, sensores, medios de almacenamiento externo, etc. Existen controladores industriales universales y altamente especializados, es decir, diseñados para realizar un conjunto de tareas, la mayoría de las veces del mismo tipo.
Fue un controlador (altamente especializado) que desarrollamos. Para empezar, algunas palabras sobre la implementación. A nivel mundial, el dispositivo se divide en dos partes. El primero es el módulo en el iMX6D, que desarrollamos solo para la implementación de tales tareas, el segundo es el microcontrolador STM32F103RBT7. Como escribí anteriormente (en artículos anteriores), es el sistema de bloques (modular) que le permite implementar rápidamente proyectos complejos. En dicho sistema, la mayoría del complejo de hardware y software ya está depurado, y solo queda coordinarlo con otros módulos y modificarlo para el cliente final.
iMX6DUn módulo de procesador completo (dos núcleos a 1 GHz), que se ocupa de una serie de tareas para interactuar con el usuario:
- salida de datos en el procesamiento de pantalla / pantalla táctil;
- Ethernet 10/100/1000;
- sincronización de tiempo;
- almacenamiento de registros de eventos;
- interfaz web + actualización;
- almacenamiento de datos de perfil;
- cálculos complejos para el microcontrolador.
Y esta no es una lista completa de lo que hace el módulo.
Fig.1. Módulo procesadorLa interfaz basada en la web repite casi por completo la imagen de la pantalla, lo que facilita a los usuarios navegar y cambiar rápidamente la configuración. La implementación, como en proyectos anteriores, se basa en el motor de 11 partes. Dado que el microcontrolador realiza la mayor parte de las tareas, se hizo necesario actualizar su firmware (así como el principal) a través de la web. Esta tarea fue especialmente aguda, ya que el cliente planeaba actualizar los dispositivos para expandir la funcionalidad. El módulo del procesador está conectado al microcontrolador a través de UART (este último también se muestra a través de él).
STM32El microcontrolador en este proyecto es muy importante. En primer lugar, su uso permitió paralelizar tareas para programadores y distinguir dos áreas principales:
- Interacción del usuario.
- Recopilación, procesamiento y gestión de datos.
En segundo lugar, un sistema modular es más conveniente para depurar, probar y ampliar la funcionalidad.
Este controlador industrial (en lo sucesivo, PC) permite el mantenimiento de cuatro salas (grupos) independientes con una gran cantidad de sensores de elementos de accionamiento.
Específicamente para este proyecto para cada grupo están disponibles:
- 6 sensores de temperatura combinados en una sola entidad para determinar el promedio;
- 2 sensores de temperatura independientes;
- 2 sensores de humedad;
- 1 sensor de CO2;
- 12 canales de control para actuadores externos.
También varios sensores de calle:
- 2 sensores de temperatura independientes;
- 2 sensores de humedad.
En total, resulta que el microcontrolador recopila datos de 48 sensores y controla 48 actuadores. Todos los sensores de temperatura son analógicos. Los sensores de humedad y CO2 tienen una interfaz de corriente de 4-20 mA.
Ahora un pequeño circuito. Para cambiar los sensores, se decidió utilizar los multiplexores analógicos HCF4051 (tienen un retraso de conmutación, pero esto no fue crítico para nuestra tarea). Es esta serie la que ya ha sido descontinuada, su diferencia, por ejemplo, del CD4051 solo en la velocidad de conmutación (bueno, en el fabricante). Hay seis de estos multiplexores en el controlador. La conmutación de todos los multiplexores ocurre simultáneamente (por las mismas patas del microcontrolador), lo que reduce significativamente los recursos y el tiempo de lectura. En el microcontrolador, respectivamente, están involucrados seis canales ADC.
Fig.2. Circuito de conmutación multiplexorPara cada sensor de temperatura, se utiliza una fuente de referencia de voltaje TL431 separada (en el paquete SOT-23), por lo tanto, con un cortocircuito en uno de los sensores, los otros continúan funcionando como antes. Para suministrar energía a todos los oporniku utilizamos LM1117 3.3V. La placa se alimenta de una fuente externa DC24V, por lo tanto, para la fuente de alimentación secundaria, se usan dos TPS54560DDAR DC / DC idénticos (formando 12V y 5V), ya que no los uso en el primer proyecto. 3.3V se obtiene de 5V usando el ST1S10.
Fig.3. Ubicación de alimentadores en el tableroPara controlar las cargas externas, generalmente se usan relés, activados por el suministro de corriente alterna de 24V. Por lo tanto, AC24V se suministra a cada grupo, que se conmuta por BT138-600 triacs a través del aislamiento del optoacoplador. El esquema se presenta a continuación. Todo funciona de manera estable.
Fig.4. Circuito de control triac
Fig.5. Grupo de sensores y conectores de control en el tableroLos programas de gestión se almacenan en una EEPROM separada conectada al microcontrolador. Los parámetros iniciales durante el arranque en caliente y el último estado de todo el sistema se almacenan allí (para que el programa pueda continuar ejecutándose).
Está claro que el microcontrolador no tiene suficiente GPIO para controlar tantos optoacopladores (y no es humano arrastrar tantos cables por el tablero), por lo que se utilizan los expansores de puerto TCA6424ARGJR, uno para dos grupos y un sistema (procesando varias señales de entrada, procesando botones del sistema, Indicadores LED, etc.).
El relé, que es claramente visible en la figura 5. (uno para cada grupo), se utiliza para determinar la presencia del voltaje de entrada AC24V y la salud del fusible para cada grupo. Cuando se activa, envía una señal al microcontrolador, que, a su vez, notifica un mal funcionamiento.
El tiempo se sincroniza usando el protocolo NTP, pero también hay un chip RTC PCF8523 (también usado repetidamente) para calcular el tiempo en ausencia de un voltaje de suministro.
Fig.6. Circuito RTCDisplayEl control de la PC se realiza rápidamente mediante una pantalla táctil y de forma remota a través de la web. Como dije, la interfaz del navegador (esta funcionalidad aún se está finalizando) repite la pantalla. Por el momento, una aplicación está escrita en Qt, que se comunica con una PC directamente a través de mqtt y está lo más cerca posible de la realidad. En la web, en este momento, hay configuraciones generales del dispositivo, organización de acceso y actualizaciones de software.
Fig.7. Mostrar datos en la aplicación en Qt
Fig.8. Mostrar datosEstos tipos de controladores le permiten construir ACS completos para complejos industriales. La funcionalidad y un conjunto de sensores, por regla general, son diferentes y corresponden a las tareas requeridas, pero el propósito es el mismo: monitoreo y / o control. Para sistemas grandes, puede aumentar el número de controladores unidos por una tarea. El controlador puede no contener una pantalla, pero puede controlarse a través de una red (Ethernet).
Fig.9. Pequeña fiestaGracias y hasta pronto!