Wago automatisme et iPhone

| Wagolink | WagoML | Description | Test | link-wagolink | Maker-fr | Maker-en | PLUG in SSI |

Wagolink

version 1.8

wago, pautex jf 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

wagolink, pautex     wagolink, pautex

NOTE :

Sommaire des pages disponibles

Principe de la supervision

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.

Cas simple : iPhone sur le réseau local

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.

iPhone sur le réseau public

NOTE : N'oubliez pas de modifier le mot de passe de l'automate.

a - Avec un serveur disponible

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.

b - Sans serveur

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&amp;VALUE1=%d&amp;FORMAT1=%d</wagolink>

Songez à utiliser un mot de passe personnel, et utilisez votre IP publique dans les scripts WagoML.

Spécifications de WagoML 1.0

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.

Installation

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.

Etape 1

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.

Etape 2

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.

Etape 3

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.

pautex, iPhone WagoLink

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.

pautex, iPhone WagoLink pautex, iPhone WagoLink
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.

Note :

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".

Verrouillage de l'interface

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.


Divers

Lecture directe de l'automate

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.

Lecture de l'automate via un serveur

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.

Ecriture d'une variable dans 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

Version

Wagolink et PLCLink sur Internet

plclink, pautex jf

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



Autres applications pour iPhone et iPod et iPad

HORSEAUS QRCode Book carte pautex jf HORSEAUS switch pautex Photo Sender pautex Hue color sender colorpicker pautex Code Bar sender pautex
PLClink QRCodeBook Carte Horseaus Switch Photo Sender Color sender Code sender

Valid XHTML 1.0 Transitional