PLC - automatisme et iPhone

PLCLink 2.0 pour iOS10..iOS14 avec PUSH

Introduction

plclink, pautex jf PLCLink permet de faire de la supervision avec un iPhone sur divers dispositifs d'automatisme connectés sur Internet. Les PLC Ethernet WAGO sont totalement compatibles et souvent utilisés par la suite. C'est une application pour utilisateur final, particulièrement adapté comme télécommande domotique. La version iOS6 est très fortement conseillée.
Inversement l'automate est capable d'alerter l'utilisateur de PLCLink avec un appel en mode PUSH.
Les transferts : ModBus TCP et HTTP
- Les transferts sont réalisés via le protocole "http://" sur le port 80 ou en ModBus (port 502), la plupart les automates acceptent les commandes ModBus TCP.
- Le ModBus est disponible en lecture/écriture vers des variables 'bit (X)' ou 'word (W)' avec certaines restrictions. Un mode synchrone est disponible, il permet d'attendre la réponse avant la prochaine demande (Schneider), voir la note.

Le dispositif commandé 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 ou un routage de port sur le modem ADSL. PLCLink dispose de 3 méthodes pour lire ou écrire une variable.
Ecriture et lecture par ModBus, l'usage des plug-in SSI (Wago principalement) et le transfert par adresse URL exemple avec la commande RPC d'un MBED.

PLCLink présente à l'utilisateur les informations disponibles via un fichier wagoML de configuration, analogie avec le fichier html pour le navigateur. Pour cela un fichier XML (en WagoML) descriptif sera réalisé et chargé par ftp dans l'automate, dans un serveur ou conservé dans l'application.
On trouvera donc ci-après deux méthodes d'installation chacune avec avec un icon spécifique.

PLCLink permet l'enregistrement vers un fichier .csv des valeurs, avec un export vers Excel ou Numbers, voir la note.

PUSH alertes Avec une notification PUSH, une alerte est ainsi affichée sur votre iPhone même si l'application PLCLink n'est pas en service. Vous devez choisir un numéro d'appel quelconque à 10 chiffres et lancer un appel par simple lecture d'un URL spécifique avec l'automate ou un autre dispositif. Votre appel sera transmis vers l'iPhone ou iPad enregistré avec le même numéro sous forme d'un message visible. Notifications PUSH.

PLCLink utilise une installation existante en état de marche. En service l'application est autonome et n'utilise aucun autre transfert que vers les adresses IP désignées.

Installation : deux solutions

PLCLink I - Installation distante

PLCLink install Vous pouvez vous reporter pour les détails de l'installation de "WagoLink" qui présente des fonctions similaires.

Le fichier wagoML est toutefois plus complet que pour WagoLink, il utilise la notion de "room" pour un cloisonnement des informations par pièces. On trouvera ici le maker du fichier wagoML spécifique.
Sur cette installation le fichier descriptif en wagoML est à charger dans l'automate ce qui permet un accès SSI aux variables, (dans ce mode le serveur remplace l'information dans le fichier XML à l'emplacement d'une balise spécifique) Par exemple en PHP avec le RaspBerry PI, un fichier de ce type est facile à produire. voir la descriptif.


PLCLink more

  1. Réaliser et tester un fichier WagoML pour PLCLink : wagoML Maker
  2. Transférez le fichier dans l'automate, dans le dossier /vebserv sur un WAGO avec un client FTP.
  3. Faites une entrée sur PLClink avec l'url du fichier wagoml (sans indiquer /webserv) ajouter aussi user et password de l'automate.
  4. Adapté au Raspberry PI, les balises seront des variables PHP

Notes :

PLCLink II - Installation locale

PLCLink install
Dans cette installation le fichier wagoML descriptif sera chargé dans l'iPhone, les transferts seront en ModBus (port 502) pour écriture et lecture de variable.
Le formulaire SSI (balise <wagolink>) en HTTP port 80 est utilisable pour l'écriture d'une variable ou une commande par url.
Vous devez consulter la documentation de votre automate pour les limitations des droits sur les accès ModBus TCP, certaines variables ne sont pas accessibles en écriture si un autre processus intervient.
Cette installation est la plus rapide de mise en oeuvre, sur l'iPad un éditeur est disponible.

PLCLink more

Comment introduire le fichier dans PLCLink ?

Fichier WagoML

Le fichier comporte sa référence il s'enregistre en mémoire avec une entrée nouvelle sur la fenêtre principale. Le nom peut être identique avec une entrée déjà existante.
PLCLink utilise l'extension du fichier : .xml
Le type "xml" est bien intégré dans iOS5 et affiché par le navigateur le mail ou DropBox, une option est toujours présente pour le transfert vers une application comme PLClink qui apparaît dans la liste des destinataires s'il est installé.

Présentation

 PLCLink more

Les fichiers WagoML

Descriptif

Un fichier WagoML est un fichier descriptif de la représentation d'un groupe de variables.
Ce fichier est l'analogue de la page html pour un navigateur.
Ce fichier est soit situé dans l'automate (qui sera donc le serveur) soit dans l'iPhone, il est réalisé par le Maker disponible ici ou avec un éditeur de texte (format UTF-8).

PLCLink more

Cloisonnement en "rooms"

L'aspect primaire est le cloisonnement logique en groupe de variables, une 'room' représente l'ensemble des variables dans un groupement logique pour vous.
Le passage d'une 'room' vers une autre est classiquement réalisé par un balayage sur l'écran de l'iPhone. Des indicateurs (flèches) montrent si une autre room est présente.

Les appels réseau ne sont réalisés que pour la room active, les appel ModBus sont donc groupés également par room, ils sont soit asynchrone (mode normal) tout les appels puis attente des réponses, soit synchrones, attente de la réponse avant l'appel suivant.

Code PIN d'une "room"

Un code PIN est disponible pour la protection d'une room, vous devez ajouter la ligne suivante dans la définition de la room ou dans la définition d'un item
      <pin>CODE</pin>
Le CODE est numérique sans limite de taille. La room ou l'item seront activés dès que le code est saisi.
Sans le code les autres rooms sont disponibles normalement.
Le code est valide pour la session, il vous faut revenir sur l'écran de la liste de base pour invalider le code pin.
Sur le fichier exemple de base, la dernière room est protégée par le code : 123

Code PIN d'un item

Certains items acceptent un code PIN voir le tableau des éléments.
Le code PIN sur un item laisse apparaître un cadenas rouge. La demande de code apparaît lors de l'activation du bouton. Ensuite le cadenas vert indique que la fonction est disponible durant 30 secondes.

Fonction Auto-reset

Certains items disposent de la fonction auto-reset. La valeur est replacée à zéro au bout d'un temps déterminé. Exemple avec le mode d'affichage = "key" sur cette page, le temps en secondes est dans le tag "minimum", cette fonction permet de ne pas conserver la valeur dans un texte visible. Application aux codes de sécurité, à la réalisation de boutons temporaires, ouverture de portes, etc...

Email une cellule

IFTTT

Vous pouvez envoyer le contenu d'une cellule vers un email, on ouvre ainsi une solution de trig de IFTTT Ce réseau permet une interaction avec la plupart des réseaux sociaux. Un mail vers votre Gmail et vous pouvez déclancher une autre action.

Ajouter la balise <email>votre mail</email> dans un item pour obtenir l'icon permettant d'envoyer la valeur de la cellule par email.

Validation du fichier XML

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.

Objets de représentation

Cette page liste les divers représentations d'une variable de l'automate avec un exemple de code source pour le fichier WagoML. Ces petits symboles peuvent être des boutons, leur état représente la variable associée.

La balise <affichage> décide du mode de representation dans la cellule.

PLCLink more

Icons boutons

PLCLink shutter PLCLink cadena PLCLink light PLCLink door PLCLink lock PLCLink shutter PLCLink porte PLCLink poral PLCLink robinet PLCLink fan PLCLink fan

Un icon représente l'état d'une variable lue avec une commande dans <IW> ou dans <IB>, un lien de retour vers cette variable peut être associé pour modifier la valeur comme l'action d'un switch. Le lien est détecté par le présence d'une balise <link> ou <wagolink> ou <OB>.

La présence du lien de retour en fait le bouton actif, la variable change de valeur et la commande est envoyée lors de l'activation, l'icon aussi change de représentation, un léger délai est nécessaire.

Vidéo, images et webcam

L'option pour affichage = video, image ou iframe associés avec <url> ouvre l'espace pour affichage de la vidéo d'une webcam et d'une image.
Pour afficher une vidéo vous devez disposer d'un flux vidéo H264 ou au moins compatible avec la vidéo actuelle sur iPhone. A partir d'une webcam de l'ordinateur ou d'une webcam USB il vous faudra un logiciel compresseur qui donnera un flux vidéo. Pour l'image fixe, il est fréquent de rencontrer le mode "STILL image" de la webcam, une nouvelle image est relus à chaque appel, c'est le mode le plus pratique à l'usage. La page donne quelques détails : détails sur la vidéo et l'image de webcam
Vous devez trouver l'url du flux vidéo réel de votre webcam H264 ou de l'image fixe dans la documentation de la webcam.

Bugs et ajout de fonctions

Les versions PLCLink

Problèmes fréquents

Applications domotique

Réalisez des petits capteurs divers pour le Wago

PLCLink sur Internet

Démonstrations

Test de trois cartes relais 750-512 en commande directe via ModBus TCP.

Contacts

plclink, RCCode QR code de PLCLink sur ce site, permet d'accéder facilement au lien de chargement sur iTunes.

contact : Twitter email : Pautex JF



Autres application iPhone/iPad disponibles :

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