Le principe général de conception d'une supervision web sur un automate Siemens est représenté sur la figure suivante avec les différentes étapes à réaliser :
|
Une fois que l'application web est lancée sur le navigateur, les échanges entre ce dernier et le programme automate passent par des DB comme sur le schéma suivant :
Le système qui va servir de base pour la mise en place du serveur web est le distributeur de boissons dont le fonctionnement est expliqué dans l'énoncé du TP7 du module AUTOM. Le but n'étant pas de reprogrammer le système, récupérez l'archive suivante et la décompresser à l'aide de TIA portal : TP2Etudiant.zap15_1
Le programme automate doit être complété avec une partie spécifique à la supervision par les pages web personnalisées. Cette partie va servir à créer des animations à partir de variables définies dans le programme.
web
et qui contiendra les variables suivantes (attention à l'orthographe !!!) :
Créer un FC qui sera nommé Supervision
qui effectuera les opérations suivantes :
web
indiquant les ingrédients choisis.web
indiquant le manque de produits pour la fabrication des boissons.web
indiquant l'état des différents actionneurs.info
du DB web
qui prendra les valeurs 0 ("Insérez votre pièce"), 1 ("Choisissez votre boisson"), 2 ("Boisson en préparation"), ou
3 ("Boisson prête").valSucre
, valCafe
, valLait
et valChoco
afin de gérer l'effet "bouton-poussoir" et d'éviter le redémarrage automatique.
valSucre
, valCafe
, valLait
et valChoco
dans les grafcets de choix de boissons et d'ingrédients.L'ensemble des fichiers nécessaires au bon fonctionnement de l'application web se situent dans le répertoire HTML du projet que vous avez désarchivé (figure ci-dessous).
Les pages permettant la supervision sont écrites pour une partie en langage HTML et pour la partie plus interactive en langage Javascript. Le langage HTML est un langage à balise dont les principales balises peuvent être vues ici.
La structure d'une page HTML se découpe de la manière suivante :
<head>
et </head>
se situe l'entête de la page autrement dit tout ce qui n'est pas le contenu de la page à proprement dit.
Dans ces balises on trouve la définition de plusieurs choses dont :
<style>
et </style>
les paramètres de style des différents objets graphiques qui composent la page (couleur, position, marge, ...).<script>
et </script>
On trouve les fonctions Javascript qui vont permettre de modifier l'état des éléments graphiques qui composent la page
en fonction de l'évolution des variables qui changent d'état dans le programme automate ou des clics sur les boutons.<body>
et </body>
se situe tout ce qui correspond au corps de la page et ce qui la composera. On trouvera donc la
création des champs texte, des boutons, l'insertion des images, .... C'est la partie visible de la page. Chacun des composants de la page doit être identifié de manière unique grâce à un id
Au niveau du Javascript, on utilisera 2 fonctions principales :
init()
qui sera executée à chaque chargement de la page et qui initialisera les composants graphiques.refresh()
qui sera appelée toutes les secondes et qui fera évoluer l'affichage en fonction de l'état des variables du programme automate.Le lien entre les variables automates et les pages web se fait grâce à des commandes AWP (Automation Web Programming). Ces commandes désignent une syntaxe de commandes spéciales permettant d'échanger des données entre la CPU et les pages utilisateur. Elles sont insérées en tant que commentaires HTML tout en haut du fichier. La liste des principales commandes AWP est données dans le tableau suivant :
Fonction | Représentation |
Lire des variables API | :=<Varname>: |
Ecrire des variables API | <!-- AWP_In_Variable Name='<Varname>' --> |
Lire des variables spéciales | <!-- AWP_Out_Variable Name='<Typ>:<Name>' --> |
Ecrire des variables spéciales | <!-- AWP_In_Variable Name='<Typ>:<Name>' --> |
Définir les types Enum | <!-- AWP_Enum_Def Name='<Name Enum-Typ>' Values='0:
"<Text_1>",1:"<Text_2>",...,x:"<Text_y>"' --> |
Affecter des variables à des types Enum | <!-- AWP_Enum_Ref Name='<Varname>' Enum='<Name Enum-Typ>' --> |
La structure de l'application est expliquée dans la figure ci-dessous.
L'application se compose de 2 pages :
distributeur.html
qui est la page principale et qui contient la supervision. Elle agit directement sur les
variables boutons-poussoirs du DB web
.varUpdate.html
qui s'occupe de rafraichir les variables en allant les lire toutes les secondes dans le DB web
.approvisionnement.html
qui est la page qui s'occupe du réapprovisionement des magasins.Le contenu du DB web
évolue en fonction du programme.
distributeur.html
à l'aide de Notepad++ et analyser le code (si besoin à l'aide de l'enseignant).web
dans une table de visualisation et
vérifier que cela correspond à vos souhaits sur la page HTML ouverte dans le navigateur.approvisionnement.html
et la compléter afin que les magasins soient remplis via l'interface et non plus en appuyant sur la combinaison de S0 et du bouton de la boisson à recharger.Si toutes les animations sont actives, vous devez obtenir une page web identique à l'image suivante :