Contrôleur industriel. Système de collecte de données. ACS

Bonjour, Habr!



Développement d'un contrôleur industriel avec afficheur pour la collecte et l'analyse des données, ainsi que pour la gestion des charges groupées. Peu importe ce qui en est ressorti, sous chat.

Le sujet des contrôleurs industriels se développe depuis longtemps pour être utilisé dans les systèmes de contrôle automatisés (ACS). Lorsque je vois le prochain contrôleur de Siemens, ViewPAC ou de tout autre fabricant, je ne vois qu'une grande tablette (j'écris sur ce facteur de forme, c'est-à-dire pas sur les options de montage en rack) avec un logiciel spécialisé à l'intérieur, mais ce n'est qu'à première vue. En fait, le plus souvent, seule l'apparence sur le côté de l'écran est similaire, mais le panneau arrière a des connecteurs d'interface, des compartiments pour connecter des modules d'extension, des capteurs, des supports de stockage externes, etc. Il existe des contrôleurs industriels universels et hautement spécialisés, c'est-à-dire conçus pour effectuer un ensemble de tâches, le plus souvent du même type.

C'était un tel contrôleur (hautement spécialisé) que nous avons développé. Pour commencer, quelques mots sur la mise en œuvre. Globalement, l'appareil est divisé en deux parties. Le premier est le module sur l'iMX6D, que nous avons développé juste pour l'implémentation de telles tâches, le second est le microcontrôleur STM32F103RBT7. Comme je l'ai écrit plus tôt (dans les articles précédents), c'est le système de blocs (modulaire) qui vous permet d'implémenter rapidement des projets complexes. Dans un tel système, la majeure partie du complexe matériel-logiciel est déjà déboguée, et il ne reste plus qu'à le coordonner avec d'autres modules et à le modifier pour le client final.

iMX6D

Un module processeur à part entière (deux cœurs à 1 GHz), qui gère un certain nombre de tâches pour interagir avec l'utilisateur:

  • sortie de données sur le traitement de l'écran / écran tactile;
  • Ethernet 10/100/1000;
  • synchronisation de l'heure;
  • stockage des journaux d'événements;
  • interface web + mise à jour;
  • stockage des données de profil;
  • calculs complexes pour le microcontrôleur.


Et ce n'est pas une liste complète de ce que fait le module.



Fig.1. Module processeur

L'interface Web répète presque complètement l'image de l'écran, ce qui permet aux utilisateurs de naviguer facilement et de modifier rapidement les paramètres. La mise en œuvre, comme dans les projets précédents, est basée sur le moteur en 11 parties. Étant donné que le microcontrôleur effectue la part du lion des tâches, il est devenu nécessaire de mettre à jour son micrologiciel (ainsi que le principal) via le Web. Cette tâche était particulièrement aiguë, car le client prévoyait de mettre à niveau les appareils pour étendre les fonctionnalités. Le module processeur est connecté au microcontrôleur via UART (ce dernier est également flashé à travers lui).

STM32

Le microcontrôleur de ce projet est très important. Tout d'abord, son utilisation a permis de paralléliser les tâches des programmeurs et de distinguer deux domaines principaux:

  • Interaction avec l'utilisateur.
  • Collecte, traitement et gestion des données.


Deuxièmement, un système modulaire est plus pratique pour déboguer, tester et étendre les fonctionnalités.

Ce contrôleur industriel (ci-après dénommé PC) permet de desservir quatre salles (groupes) indépendantes avec un grand nombre de capteurs d'éléments d'actionnement.

Spécifiquement pour ce projet pour chaque groupe sont disponibles:

  • 6 capteurs de température combinés en une seule entité pour déterminer la moyenne;
  • 2 capteurs de température indépendants;
  • 2 capteurs d'humidité;
  • 1 capteur de CO2;
  • 12 canaux de commande pour actionneurs externes.


Aussi plusieurs capteurs de rue:

  • 2 capteurs de température indépendants;
  • 2 capteurs d'humidité.


Au total, il s'avère que le microcontrôleur collecte les données de 48 capteurs et contrôle 48 actionneurs. Tous les capteurs de température sont analogiques. Les capteurs d'humidité et de CO2 ont une interface de courant 4-20mA.

Maintenant, un petit circuit. Pour les capteurs de commutation, il a été décidé d'utiliser les multiplexeurs analogiques HCF4051 (ils ont un retard de commutation, mais ce n'était pas critique pour notre tâche). C'est cette série qui a déjà été abandonnée, sa différence, par exemple, par rapport au CD4051 uniquement en vitesse de commutation (enfin, chez le constructeur). Il y a six de ces multiplexeurs dans le contrôleur. La commutation de tous les multiplexeurs se produit simultanément (par les mêmes jambes du microcontrôleur), ce qui réduit considérablement les ressources et le temps de lecture. Sur le microcontrôleur, respectivement, six canaux ADC sont impliqués.



Fig.2. Circuit de commutation multiplexeur

Pour chaque capteur de température, une source de référence de tension TL431 distincte (dans le boîtier SOT-23) est utilisée.Ainsi, avec un court-circuit sur l'un des capteurs, les autres continuent de fonctionner comme auparavant. Pour alimenter tous les oporniku utilisé LM1117 3.3V. La carte est alimentée par une source externe DC24V, par conséquent, pour l'alimentation secondaire, deux DC / DC TPS54560DDAR identiques sont utilisés (formant 12V et 5V), car je ne les utilise pas dans le premier projet. 3,3 V est obtenu à partir de 5 V en utilisant le ST1S10.



Fig.3. Emplacement des départs sur la carte

Pour contrôler les charges externes, des relais sont généralement utilisés, déclenchés par la fourniture de courant alternatif 24V. Par conséquent, AC24V est fourni à chaque groupe, qui est commuté par des triacs BT138-600 via une isolation par optocoupleur. Le schéma est présenté ci-dessous. Tout fonctionne de manière stable.



Fig.4. Circuit de commande triac



Fig.5. Groupe de capteurs et connecteurs de contrôle sur la carte

Les programmes de gestion sont stockés sur une EEPROM distincte connectée au microcontrôleur. Les paramètres initiaux lors du démarrage à chaud et le dernier état de l'ensemble du système y sont stockés (afin que le programme puisse continuer à être exécuté).

Il est clair que le microcontrôleur n'a pas assez de GPIO pour contrôler autant d'optocoupleurs (et il n'est pas humain de faire glisser autant de fils sur la carte), donc les extenseurs de port TCA6424ARGJR sont utilisés, un pour deux groupes et un système (traitement de plusieurs signaux d'entrée, traitement des boutons du système, Indicateurs LED, etc.).

Le relais, clairement visible sur la Fig.5. (un pour chaque groupe), est utilisé pour déterminer la présence de la tension d'entrée AC24V et la santé du fusible pour chaque groupe. Lorsqu'il est déclenché, il envoie un signal au microcontrôleur, qui, à son tour, signale un dysfonctionnement.

L'heure est synchronisée à l'aide du protocole NTP, mais il existe également une puce RTC PCF8523 (également utilisée à plusieurs reprises) pour calculer l'heure en l'absence de tension d'alimentation.



Fig.6. Circuit RTC

Affichage

Le contrôle du PC s'effectue rapidement à l'aide d'un écran tactile et à distance via le web. Comme je l'ai dit, l'interface du navigateur (cette fonctionnalité est encore en cours de finalisation) répète l'écran. À l'heure actuelle, une application est écrite en Qt, qui communique directement avec un PC via mqtt et est aussi proche de la réalité que possible. Sur le Web, il y a actuellement les paramètres généraux de l'appareil, l'organisation de l'accès et les mises à jour logicielles.



Fig.7. Afficher les données dans l'application sur Qt



Fig.8. Afficher les données

Ces types de contrôleurs vous permettent de construire un ACS complet pour les complexes industriels. La fonctionnalité et un ensemble de capteurs, en règle générale, sont différents et correspondent aux tâches requises, mais le but est le même - surveillance et / ou contrôle. Pour les grands systèmes, vous pouvez augmenter le nombre de contrôleurs unis par une tâche. Le contrôleur peut ne pas contenir d'affichage, mais peut être contrôlé via un réseau (Ethernet).



Fig.9. Petite fête

Merci et à bientôt!

Source: https://habr.com/ru/post/fr469037/


All Articles