PLC Web Monitoring

Ce qui me passionne actuellement est le web temps réel :
Le principe est d'afficher dans une page web, des informations qui évoluent régulièrement sans devoir forcer l'actualisation via F5 du navigateur.
Par ce projet, j'explore les possibilités de cette techno qui me semble prometteuse :
Directement exploitable par un navigateur web, multi terminal, multi-plateforme, multi utilisateurs et un seul code source à maintenir.

Le projet :

  • Il s'agit de faciliter un monde que je connais bien : La mise en service de projet d'automatisme.
  • L'idée est de voir ce qui ce passe dans un automate programmable sans logiciel particulier, mais via une page web.
  • Les technologies choisies sont GNU Linux Debian, Python et l'univers du web.
  • Le système de versioning est Git.
  • Les idées viennent au fur et à mesure et je n'hésite pas à me former pour atteindre mes objectifs.
  • Le défi est aussi de fusionner différentes technologies open source, de construire une application pérenne, maintenable, tout en réalisant projet utile dans ma vie professionnelle.
  • C'est un projet personnel, développé en dehors de mon temps de travail.

Présentation du projet

  • Le principe est de lire des données dans un automate programmable et de les diffuser en temps réel sur réseau LAN via un serveur web.
  • Pour visualiser ces informations en temps réel, il suffit de saisir l'adresse IP du serveur dans la zone URL d'un navigateur. Exemple: 192.168.1.230
  • Les clients peuvent être, un PC, un smartphone, une tablette.
  • Le serveur embarque des pages Responsive Web Design, dont la taille s'adapte automatiquement à la taille d'écran du client connecté.
  • Ce projet utilise des technologies 100% open source comme Python, HTML, JavaScript etc …
  • Pour ceux qui connaisse l'automatisme, il s'agit de VAT (Variable Animation Table) visible sans logiciel de programmation: Directement dans une page web.

Matériel

Schéma de principe

  • Ce diagramme montre le système connecté à des automates.
  • La liaison est un simple réseau LAN avec des abonnés en TCP/IP.
  • Le détail de l'application montre les sous parties technologiques :

Évolution du projet

  • La base du projet est issu d'un cours en ligne Django, TP de blog, où je me sent à l'aise.
  • Retrouver ici, les étapes marquantes de l'évolution du projet, tel un git log.

2018-10-15: Web temps réel

  • Il s'agit d'une première étude d'affichage en temps réel dans la page web.
  • L'idée est d'afficher en temps réel la charge CPU/Mémoire/Disque du serveur.
  • Intégration de Crossbar dans Django
  • Intégration HTML/JavaScript des jauges CPU dans Bootstrap.

018-10-31: Lecture d'une donnée automate et diffusion web

  • Une seule valeur est lue dans l'automate
  • Son adresse est, pour l'instant, en dur dans le code

2018-10-31: Lecture de plusieurs valeurs

  • Le détail de l'automate et les adresses des données sont en dur dans le code.
  • Les grilles HTML se dessinent dans la page dés que la communication PLC est établie. La technique web employée est la création des objets directement dans le DOM via JavaScript.

1ère version :

2ème version :

2018-11-01: Adresse PLC dans Database Django

  • Une structure de base de données est écrite dans l'ORM de Django
  • Les caractéristiques de l'automate.
  • Les adresses de l'automate à lire
  • Le principe est de copier coller les adresses automate depuis une VAT de TIA Portal vers un champs texte de Django (Ce principe évoluera par la suite).
  • Un parseur s'occupe de décrypter l'organisation du copier coller de TIA pour exploiter les adresses PLC.
Ces screens sont plus récent et contiennent quelques améliorations, je n'ai pas de screen de l'époque.

Table de donnée relative aux automate

Table de donnée relative aux adresses automate

2018-12-17: Création d'un Container Docker

2019-01-27: Double PLC et nouveau design

  • L'appli est capable de lire 2 automates.
  • La présentation a été retravaillé avec Sass et Compass.

2019-01-28: Ajout des progressbars

  • Les progressbars sont renseignés en mini/maxi à la suite des adresses automate

2019-01-30: Multi plc + page auto adaptative

  • La page est auto-adaptative en fonction de la taille du navigateur
  • Les grille automate se place en ligne ou en colonne en fonction de la largeur d'écran

Version normale

Version smartphone

2019-03-04: Container Docker intégré au LAN

Visible depuis le PC hôte

Visible depuis le smartphone en Wi-Fi

2019-03-13: Recherche dalle tactile

La pointeur tactile communique via liaison série. Le driver elotouch fonctionne sous Debian mais je n'ai pas encore réussi à intergrer l'étalonnage de la dalle dans l'environnement X11 du système. Retrouver le détail des investigations ici : Configuration de la dalle tactile

2019-03-30: De Docker vers LXC

Le PC tactile fonctionne en architecture 32bits. Hors Docker n'est pas compatible 32bits. Je m'oriente donc vers le gestionnaire de container LXC.
Retrouver l'installation et configuration ici : Configuration Système
Et le chapitre sur LXC Installation

2019-04-01: LXC autostart et suppression login

  • Mise en place du démarrage automatique de LXC au boot.
  • Suppression du login de lightdm d'XFCE pour un démarrage direct sur le bureau.

Les notes: lightdm_autologin

2019-04-02: Systemd : Crossbar et plc-monitoring

Ajout de Crossbar et plc-monitoring en tant que service Debian pour le launch auto au boot du container. demarrage_automatique

2019-04-05: Ecran tactil : Installation du support

Retrouver l'article Installation du support d'écran