On se propose de faire de la supervision et donc lire et écrire des informations numériques sur un automate WAGO via une application WagoLink développée spécifiquement pour l'iPhone ou
ipod touch, l'usage ira de la domotique à la supervision industrielle.
On utilisera le protocole http: sur le port 80 uniquement.
(JAVA, utilisé habituellement n'est pas disponible sur l'iPhone)
Un contrôleur WAGO ETHERNET 750-841 sera utilisé dans la suite de la description sans être absolument exclusif, le microcontrôleur MBED est aussi exploitable.
la page suivante donne des détails.
L'automate est supposé accessible via le réseau Internet et dispose donc d'un IP public, dans le cas contraire on utilisera un serveur qui fera l'intercalaire avec l'automate. Les deux cas sont envisagés par la suite, WagoLink intègre l'écriture directe des paramètres dans l'automate via l'usage des plug-in SSI.
La limitation d'écriture porte sur la nature de la variable, en effet il est impossible de modifier directement les variables d'entrée ou de sortie, vous devez utiliser une variable mémoire (MX,MW,MD) intermédiaire dans votre programmation CoDeSys.
WagoLink est capable de présenter à l'utilisateur certaines informations utiles disponibles dans l'automate.
Pour cela un fichier XML est à charger par ftp dans celui-ci.
Ce fichier complété par l'automate comporte les informations nécessaires à la réalisation de l'écran de présentation.
Un automate non programmé est utilisable une sorte de mode :"out of the box", il faut toutefois régler l'IP de l'automate. Ce mode permet la lecture et l'écriture directement dans les sorties, QX0.0, QX0.1 etc...
Wagolink se greffe sur une installation existante en état de marche et n'est d'aucun secours pour la programmation de l'automate.
La version actuelle (1.6.1) est uniquement disponible sur l'AppStore
NOTE :
Un fichier de type "wagoml" est introduit dans l'automate par l'intégrateur de la solution, ce fichier sera appelé régulièrement par une méthode http sur port 80 pour affichage comme le ferait votre navigateur pour lire une page web.
La définition de WagoML comporte les spécifications des tags xml utilisés dans ce fichier ainsi que la DTD du protocole.
Dans ce cas l'application Wagolink dans l'iPhone accède directement à l'automate car il est situé sur le même réseau. Dans les préférences de Wagolink on placera l'IP de l'automate. Cette configuration devra être testée pour réaliser complètement le fichier wagoMl à inclure dans l'automate, l'étape suivante de l'installation consistera à régler l'accès pour l'iPhone sur un réseau externe, il faudra l'aide d'un ordinateur local qui sera le serveur programmé en PHP par exemple.
NOTE : N'oubliez pas de modifier le mot de passe de l'automate.
L'iPhone n'accède pas à l'automate, en effet le réseau local n'est pas routé vers le réseau public. Vous devez utiliser une machine (le serveur) sur le réseau
local qui assurera le transfert vers l'automate. Le port 80 entrant est routé vers le serveur par un mappage de port (à régler sur l'interface
de configuration du routeur).
Le serveur local est un serveur classique (Apache) avec PHP pour la programmation. Un simple routage de la demande en provenance de l'iPhone
sur le réseau public transmet la demande vers l'automate. Dans la configuration de Wagolink c'est l'IP public du routeur qu'il faut indiquer.
Dans le fichier wagoml les liens de retour d'écriture (switchs, boutons et sliders) pointent aussi sur l'IP public vers une procédure en PHP sur le serveur.
- Un autre langage de programmation comme PERL ou PYTHON est parfaitement envisageable, les exemples suivants sont réalisés avec PHP.
Pour éviter l'usage d'un serveur, il serait aussi possible de transférer le port 80 directement vers l'IP de l'automate.
Un autre port comme le 8080 serait plus pratique. Voir avec votre routeur réseau comment transférer un port vers une cible et conserver le port 80 sur cette cible.
On retrouve ainsi le cas précédent. Ce port utilisé n'est plus disponible dans le réseau "local" pour un autre usage, utiliser
un autre port est possible mais vous devez adapter les url utilisés.
<wagolink>http://IP_Public:8080/WRITEPI?ADR1=MW0&VALUE1=%d&FORMAT1=%d</wagolink>
Songez à utiliser un mot de passe personnel, et utilisez votre IP publique dans les scripts WagoML.
Les spécifications techniques de wagoML sont décrites sur cette page : WagoMl : Les spécifications
WagoML est un langage descriptif des variables de l'automate dans le but de les présenter sur l'écran de l'iPhone.
Une aide à la réalisation d'un fichier WagoML est en ligne ici.
Vous devez disposez d'une installation avec un automate en état de marche, la programmation est souvent réalisée avec CoDeSys ainsi que de l'accès
par FTP à l'automate.
L'application iPhone "WagoLink" lis dans l'automate un fichier XML spécifique qu'il faut réaliser et incorporer par FTP dans l'automate. Ce fichier comporte les éléments
nécessaires pour afficher une valeur numérique sur un espace réservé. Le nom de la variable, sa valeur, la mise à l'échelle et l'unité sont nécessaires.
Sur une installation importante avec beaucoup de paramètres on pourra utiliser plusieurs fichiers xml, on limitera l'affichage aux valeurs essentielles.
Réaliser le fichier xml, voir si besoin cette page : l'exemple sur cette page.
La page d'aide à la construction et le test sommaire d'un fichier wagoMl est ici sur le simulateur.
Note : La cause la plus fréquente d'erreur est l'usage d'un éditeur de texte qui ne sauve pas comme fichier UTF-8, ou une erreur dans la syntaxe, voir la validation avec le site de validation XML ci-contre.
Transférer le fichier réalisé dans le dossier "/webserv" de l'automate avec un client FTP, voir la documentation ou l'administrateur pour la connexion FTP avec l'automate.
Sur l'application iPhone/iPod "WagoLink" faire une nouvelle ligne '+', pour ajouter un nouvel automate. On constatera qu'un automate virtuel de test
est implémenté par défaut.
Ajustez ensuite l'url du fichier xxx.xml réalisé, le user et le password d'utilisation de l'automate, utilisez les valeurs par défaut de
WAGO si vous ne les avez pas modifiés.
Sur l'écran des réglages, placer un nom pour votre automate (choix libre) et l'adresse IP du fichier xml chargé préalablement dans le dossier /webserv, et faire "OK" pour enregistrer les modifications. Il est conseillé d'utiliser un navigateur pour tester la lisibilité de ce fichier et sa conformité avec la norme wagoml. L'adresse finale comporte l'IP de l'automate et le nom du fichier xml. (ne pas ajouter /webserv)
Exemple : http://nom_automate_IP/monFichier.xml (Vous ne devez pas indiquer dans l'url le nom du dossier /vebserv)
Un Test de lisibilité de l'url est possible via WagoLink (bouton Test), le résultat est immédiatement affiché sur la zone de réception (Photo 2), vous chargez ainsi le fichier Wagoml réalisé plus haut, via le serveur web de l'automate.
Les champs <IW> du fichier Wagoml sont complétés par l'automate pour affichage s'ils comportent une directive READPI.
Photo 2 et 3
Retourner sur l'écran précédant et choisir la ligne composée. Vous visualisez une représentation du fichier Wagoml retourné par l'automate, voir ci-dessus (Photo 3).
Chaque <item> provoque l'affichage d'une ligne avec le texte d'une valeur numérique avec son unité ou d'un bouton, d'un switch ou d'un slider.
Le réseau de l'iPod (WiFi) ou de l'iPhone (3G ou WiFi) doit vous permettre d'accéder à l'adresse de l'automate. S'il est dans un réseau
privé, il vous faut être sur ce même réseau avec l'iPhone ou soit passer par un serveur qui fera une redirection, soit rediriger
le port 80 (ou un autre) sur l'automate via les réglages sur l'interface de votre "box".
La liste des automates ou des process est personnalisable. Il est possible de bloquer divers éléments. Le réglage est à effectuer via les préférences globales, item "Wagolink" dans les préférences système.
Il n'est pas nécessaire de redémarrer complètement l'application pour une prise en compte d'un nouveau réglage, une manipulation simple rétablira l'affichage correct.
La sonorisation des actions est activable sur la plus recente verion.
Il est fort probable que votre automate ne soit pas accessible en lecture sans une authentification. C'est le rôle du "User" et du "Password" que vous avez renseigné sur la page des réglages.
En cas d'accès indirect à l'automate (via un serveur) c'est le serveur qui interroge l'automate, vous indiquez l'url du serveur, le user et le password ne sont utiles que
si vous placez une authentification sur le serveur par des fichiers .htaccess et .htpasswd.
Le serveur vous retournera un contenu par redirection du fichier WagoML.
Dans le serveur, un programme wrappeur en PHP fera le transfert du fichier vers l'appelant, exemple :
<?php echo file_get_contents("http://user:password@IP_automate/param.xml"); ?>
Ce code en php repasse le contenu du fichier WagoML vers l'appelant. Le user et le password de l'automate ne sont connu que du serveur.
Si vous ne l'avez pas modifié, utilisez le user et le password par défaut de l'automate.
Vous devez implanter un code PHP beaucoup plus complet pour réaliser l'écriture vers l'automate.
L'écriture via un serveur est plus délicate, WAGO décrit la méthode par l'usage d'un formulaire et de la méthode "POST". Vous devez donc implémenter sur le serveur la réponse par POST à un formulaire virtuel. Un formulation en php sur le serveur est réalisable
Le positionnement de certaines variables mémoire via WagoLink est possible.
Les entrées (IXx.x) ne peuvent pas être modifiées par cette procédure, les sorties (QX) impliquées dans des actions ne sont pas directement modifiables. Vous devez donc implémenter dans la programmation de l'automate l'usage de certaines valeurs mémoire que vous définissez pour interagir avec votre process.
Avec CoDeSys vous affectez une variable mémoire qui fait le relais vers une sortie physique :
QX0.0 := MX0.0;
La modification de MX0.0 affectera la sortie QX0.0.
Votre programmation interne utilisera la nouvelle valeur mémoire pour agir sur une sortie.
On déclenchera l'écriture uniquement si l'item comporte un lien <link> ou <wagolink>.
Il vous faut tester via un formulaire avec les instructions WAGO sur le serveur web local de l'automate avant de compléter le fichier WagoMl.
Voir des détails sur cette page : Test d'écriture sur un automate
PLCLink est une variante plus puissante de Wagolink, la présentation est cloisonnée en "room" qui est plus pratique pour un regroupement logique des commandes. PLCLink est capable d'utiliser aussi les transfert en ModBus TCP ce qui le rend plus universel et utilisable sur une plus large gamme d'automates ModBus.
contact : Twitter email : Pautex JF