SCADA "BortX" avec prise en charge du langage de contrôle ANSI / ISA-88 pour ESP8266

Honnêtement, j'aime vraiment les microcontrôleurs modernes. En particulier, produit par le fabricant chinois Espressif Systems avec une interface Wi-Fi. Bien sûr, nous parlons des ESP8266 et ESP32 , qui ont un grand potentiel dans le contexte éducatif.



image



Bien sûr, ils ont leurs inconvénients. Mais le prix. C'est un miracle. En particulier, si vous achetez le "Witty Cloud" conditionnel pour trois dollars, dans lequel vous n'avez même pas à vous soucier de la nutrition et de la programmation. Le champ d'application de l'IoT vous permet de créer vos propres projets d'automatisation de différentes manières - de manière classique: en écrivant du code et en travaillant dans un IDE. Ou par le même FLProg. Cependant, comme toujours, il existe des nuances qui ralentissent quelque peu la représentation du travail dans le cadre d'une application typique de l'ESP8266 comme base matérielle. Et le problème ne réside pas du tout dans la connexion réseau effectuée au réseau local domestique / professionnel avec accès Internet via un routeur.Les appareils fonctionnent avec diligence et peuvent agir en tant que coordinateurs Zigbee avec une certaine configuration.



L'ESP8266 / ESP32 peut fonctionner à la fois comme point d'accès et comme station d'extrémité. Pendant le fonctionnement normal du LAN, l'ESP8266 se configure en mode point final. Pour ce faire, l'appareil doit définir le SSID du réseau Wi-Fi et, dans les réseaux fermés, le mot de passe d'accès. Le mode point d'accès est utile pour la configuration initiale de ces paramètres. En mode point d'accès, l'appareil est visible lors d'une recherche réseau standard dans les tablettes et les ordinateurs. Il reste à se connecter à l'appareil, ouvrir la page de configuration HTML et définir les paramètres réseau. Après cela, l'appareil se connectera normalement au réseau local en mode terminal.



La gestion et la visualisation des données en temps réel est une tâche importante.Cependant, un démarrage rapide dans cette entreprise n'est pas toujours disponible. Mais après cela, leur analyse est nécessaire. Le rôle de la ligne de temps sur le graphique est également important - pour montrer la fréquence et l'uniformité des mesures. L'historique du processus est nécessaire pour l'analyse et le diagnostic. Sans les connaissances et l'analyse nécessaires, le plein potentiel des données reste sous-utilisé, ce qui est une faille et nécessite un outil capable de rendre les chiffres et les pourcentages significatifs et de rendre les données plus faciles à comprendre et à interpréter. Cela est nécessaire dans le domaine de l'expérience scientifique et dans le processus de production.



Outils de visualisation de données en lignesont la réponse appropriée à ce défi du temps. La combinaison de données, c'est-à-dire la synthèse d'informations, semble être une tâche distincte. Mise à l'échelle dans le temps, sélection de la fenêtre d'affichage, mise à l'échelle le long de l'axe Y, décalage le long de l'axe Y - ce sont tous les attributs nécessaires des outils de visualisation, grâce auxquels même les graphiques et les graphiques les plus complexes, que vous visualisez dans le tableau de bord, seront clairs et compréhensibles. L'une des options de visualisation des données en ligne avec prise en charge SCADA est le nouveau projet BortX .



Je crois que la familiarisation avec elle vous aidera à mener des expériences en temps réel (par exemple, dans la simple mise en œuvre de vos idées dans le processus éducatif). Pour travailler, il vous suffit de coudre le croquis Spoutnik sur votre ESP8266. Vous pouvez vous familiariser avec son code enlien . Une modification à votre discrétion est une condition préalable au fonctionnement: saisissez le SSID et le mot de passe pour connecter l'ESP à votre routeur. À propos, le projet pilote de satellite est situé à .



Après avoir téléchargé le croquis, le microprocesseur envoie les informations sur Internet sous la forme d'une page Web. L'enregistrement n'est pas obligatoire, car chaque microprocesseur a un numéro unique et ce numéro est utilisé pour l'accès via Internet. L'ID lui-même peut être trouvé en ouvrant la fenêtre d'état du port COM dans l'IDE Arduino (115kbaud / s):



image



Par défaut, le port TCP 6110 vautilise le protocole de contrôle de transmission. TCP est l'un des principaux protocoles des réseaux TCP / IP. TCP est un protocole orienté connexion et nécessite un établissement de liaison pour établir une communication de bout en bout. Ce n'est qu'après l'établissement de la connexion que les données utilisateur peuvent être envoyées dans les deux sens. Il est possible de définir un mot de passe pour une page, etc. Mais l'élément le plus important de ce «système» est le support conditionnel du langage de contrôle de l'APCS.



Le langage de contrôle BS-88 est basé sur la norme ISA S-88... Un exemple d'analogue graphique est le SFC. Le langage de contrôle permet à l'ESP de prendre des décisions de stratégie de contrôle en fonction des conditions actuelles et permet d'ordonner le contrôle de l'ESP en fonction des besoins de certaines actions. Ce langage est différent des langages de programmation traditionnels. La raison en est que le langage décrit les actions pour contrôler le processus de fabrication.



Conformément à BS-88, le processus de fabrication consiste en des opérations qui peuvent se produire simultanément, telles que le chauffage de l'eau et la préparation des composants de la solution.

Les opérations, à leur tour, se composent de phases qui sont exécutées séquentiellement. Il n'existe que deux types d'opérateurs de langage de contrôle:



  1. Opérateurs actifs.
  2. Opérateurs de transition (avec ou sans condition) (transition).


Par exemple, le fonctionnement de l'eau de chauffage:

Phase 1: ouvrir la vanne d'eau;

lorsque le capteur de niveau est déclenché, passer à la phase 2

Phase 2: fermer la vanne d'eau;

allumer le radiateur ;;

lorsque la température atteint 60 degrés, passage à la phase 3

Phase 3: éteindre le chauffage;

Arrêtez;

Supposons qu'une vanne d'eau est connectée à DO, un capteur de niveau d'eau est connecté à D5, un réchauffeur est connecté à D1 et A0 est un capteur de température.



Le script ressemble à ceci:



1: $ D0 = 1; // phase1
if($D1 = 1) trans {2}; // wait_for_D5_become_ "on"
2: $ D0 = 0; // phase2
$D2 = 1;
if($0 >= 60) trans {3}; // wait_for_tempeature
3: $D2 = 0;
stop; // end_of_script


Le langage utilise l'écriture de variables, comme c'est habituel pour arduino, mais sur le panneau, les variables peuvent avoir un nom différent, par exemple: Uakk, Set_Ux, Set_temp. La substitution de nom est possible dans l'éditeur de configuration. Pour accéder à l'éditeur, cliquez sur l'icône d'engrenage dans le panneau. Il existe également des variables pour les calculs internes ou la mémoire $ X0- $ X9. Ils n'ont pas leurs propres champs à afficher, mais vous pouvez les voir lorsque nous définissons leurs valeurs pour la variable.



$X9 = $ X9 + 1; //  
$ S3 = $ X9; //  $ X9   S3  .


Une instruction plus complète sur la langue de contrôle de l'APCS est publiée sur le site Web. En mode de configuration en ligne, directement depuis le site, vous pouvez définir des scripts de travail:



image



Et définir (modifier) ​​les noms des variables de broches:



image



All Articles