mardi 4 septembre 2012

Jump to the next curve

J'aime assez l'idée que nous sommes en avance sur les autres. Et cela est indéniable.

2 ans déjà que nous avons un serveur OPC-UA au coeur de notre produit Ignition. Les autres éditeurs et constructeurs commencent à suivre.
Mais nous sommes toujours les seuls à avoir une solution multi plateforme reposant sur un serveur web et les bases SQL. Et depuis la version 7.4, la modélisation objet permet d'aller encore plus loin, plus vite. Avec plus de qualité.

Le tout bien sûr avec un mode de licence qu'aucun autre confrère ne peut concurrencer.

Sommes nous des visionnaires ? Oui, je le pense sincèrement.

Pour l'anecdote, et pour les visionnaires, cet été, j'ai écouté une émission sur France Inter (on verra ça demain) ; celle du 10 aout était particulièrement intéressante : entre science et fiction, les visionnaires. Je vous invite à écouter le podcast Réecouter cette émission mais je vous livre ici une interview d'Arthur C. Clark datant de 1964 (à partir de 1'30) qui a particulièrement retenue mon attention :


Alors, attention, qu'on ne ne fasse pas dire ce que je n'ai pas dit. Je ne suis pas Arthur C. Clark.
Mais j'aime l'idée que nous sommes des visionnaires.

Jump to the next curve and reboot your brain en choisissant Ignition.


lundi 27 août 2012

Pourquoi j'aime Ignition

D'accord, ce n'est pas très objectif, mais quand même, je dois avouer que j'ai toujours tellement de plaisir à lancer Ignition™depuis n'importe où et faire des démonstrations et à (dé)montrer aux clients et prospects combien il est agréable de travailler avec un outil reposant sur 100% des standards informatiques. Ceux qui sont dans votre entreprise, que vos informaticiens maitrisent (et adorent) et que tout jeune diplômé ou non saura dompter très facilement.

Au cours de l'été, j'ai eu à faire des démonstrations (oui, même pendant les vacances, je ne peux pas résister à une démo ;)) et surtout récemment à aider un client en mise en service qui avait besoin d'une fonction simple pour suivre le fonctionnement de ses escalades d'alarmes : envoyer un email avec un destinataire en copie voire copie cachée.

Il existe bien une fonction standard Ignition (system.net.sendEmail) mais elle est relativement basique ; alors un coup de Google (send email python) et on tombe sur cela :

# Import smtplib to provide email functions
import smtplib

# Import the email modules
from email.mime.text import MIMEText

# Define email addresses to use
addr_to   = 'user1@example.com'
addr_from = 'user2@example.com'

# Define SMTP email server details
smtp_server = 'mail.example.com'
smtp_user   = 'test@example.com'
smtp_pass   = '1234567889'

# Construct email
msg = MIMEText('This is a test email')
msg['To'] = addr_to
msg['From'] = addr_from
msg['Subject'] = 'Test Email From RPi'

# Send the message via an SMTP server
s = smtplib.SMTP(smtp_server)
s.login(smtp_user,smtp_pass)
s.sendmail(addr_from, addr_to, msg.as_string())
s.quit()
Le code Python est simple et lisible et je décide de l'essayer en le modifiant avec ajout d'un destinataire en copie et message de type html. Là encore, une simple recherche sur la fonction SMTPLIB de Python me donne des tonnes d'informations : la documentation officielle de Python bien sûr et plein d'exemples simples ou plus complexes mais qui sont très faciles à adapter grâce à la simplicité de la syntaxe de Python.

Un test dans mon éditeur :

Et voilà l'email envoyé :
Il ne reste plus qu'a copier le code et à l'insérer dans un script Ignition™- en l'occurrence, sur changement d'état d'une synthèse d'alarme - pour être alerté en temps réel des évènements en plus de pouvoir prendre le contrôle du système à distance, car je le rappelle, Ignition™ est full web. Et uniquement full web.

On a coutume de dire qu'avec Ignition™, si vous pouvez l'imaginer, vous pouvez le réaliser. C'est ce sentiment de liberté qui fait la force de cet outil.

Le plus agréable dans tout cela ? l'email de remerciement du client et la satisfaction de l'avoir aidé en 2 requêtes Google ;) et moins de 5 minutes chrono.

Bonne rentrée à tous, elle sera chaude en ce qui nous concerne.

mardi 19 juin 2012

Mettre en place une application de TRS et Downtime full web en moins de 10 minutes ? C'est possible.
Voici comment.


Mais pourquoi mettre en place un TRS ?

La mise en place d'indicateurs normalisés de performances du type TRS et TRG est devenue une nécessité pour piloter avec efficacité la production.

Combinés au suivi des arrêts, ces indicateurs deviennent des éléments clés de l'amélioration de la productivité et une aide précieuse aux démarches LEAN et Six Sigma en permettant une collaboration efficace entre tous les départements (fonction scheduling).

Avec Ignition™ MES - OEE Downtime, la mise en place d'une solution de suivi du TRS et des arrêts n'a jamais été aussi simple ni aussi efficace.

Découvrez en quelques minutes les avantages d'Ignition™ et laissez vous convaincre :

  • TRS et Downtime en temps réel
  • planification des OFs
  • module de reporting intégré
  • module d'analyse avec drilldown, drill through... intégré
  • hmi, scada, mes avec le même serveur
  • accessible sur smartphones et tablettes
  • toutes les données (config, collecte) en base SQL ouverte
  • intégration ultra simple au SI (http/https, sql, java, python, opc-ua)
  • variables illimités
  • projets illimités
  • clients illimités
  • multi plateforme
  • full web


mardi 22 mai 2012

Services Web et Supervision Industrielle


Les services web sont un des moyens d’interfaçage entre systèmes informatiques. Ils servent à connaître la météo du lendemain, la valeur des actions en bourse ou d’un voyage en TGV…bref, tout un panel de services disponible publiquement ou non.
Mais dans le domaine de la supervision industrielle et du MES, les services web peuvent servir de middleware entre les ERP et la supervision.

Depuis un certain temps, nous avons réfléchi à l’intégration des services web dans Ignition™ mais nous avons buté sur 3 problèmes :

  1. Il existe plusieurs standards de services web. Trop.
  2. Le format des données est très variable et parfois complexe avec des imbrications de structures
  3. Les réponses peuvent comporter un nombre variable de données à chaque requête

Du point de vue Ignition™, comment traiter ces données complexes en quantité variable et les rendre aussi simple à utiliser et compatibles avec les SQLTags®, les SQLtag® History ou toute autre base de données ? Si vous y réfléchissez, vous verrez que le problème peut rapidement vous donner des cheveux blancs.

Nous avons récemment (Ignition™ version 7.4.2) trouvé une solution simple en intégrant la librairie

Python pour les web services : SUDS

En deux lignes de code Python, vous pouvez interagir avec tout service web reposant sur SOAP et qui fournit des fichiers WSDL. Mais en pratique, qu’est-ce que cela veut dire ?

Les services web démystifiés

Les services web ne sont rien d’autre que des pages web pour les machines. Imaginez un serveur web (comme celui qui héberge ce site), un client web (votre navigateur) et à votre place (vous qui contrôlez le navigateur web et interprétez le contenu), il y a un programme qui fait ce travail.

Le contenu d’une page web est décrit avec du code HTML (du texte), dans un service web il s’agit de XML (eXtensible Markup Language) qui est aussi du texte. HTML permet de décrire comment un contenu doit être affiché dans un navigateur (on parle de rendu), XML permet lui de décrire de manière structurée des données à échanger.

SOAP (Simple Object Access Protocol) est le protocole d’échange entre le serveur web et un client, le contrat entre le serveur et le client qui repose sur XML.

WSDL (Web Services Description Language) est la page web d’accueil (XML) que le serveur envoie en guise de réponse au client à la question « Comment puis-je te parler ? » et « qu’elles peuvent être tes réponses ? »

La libraire Python SUDS

La libraire Python SUDS peut interroger un serveur et analyser le fichier WSDL et afficher en clair comment poser les questions pour invoquer les méthodes. Par exemple, on pourra utiliser un service web pour retrouver un ordre de fabrication, renseigner l’OF avec l’état actuel de la production et le renvoyer à l’ERP.

Ce qui est incroyable avec la librairie SUDS, c’est que cela fonctionne ! Les autres librairies que nous avons essayées n’ont jamais été aussi simples et performantes.

Ce qu’il faut savoir, c’est que le format XML peut être structuré de manière arbitraire. Il existe donc plusieurs formats, chacun essayant de régner en maître, par exemple WSI-BP (Web Services Interoperability – Basic Profile). C’est probablement l’une des raisons des échecs de la plupart des librairies que nous avons testées. Excepté SUDS.


Si on regarde l’exemple ci-dessus, on voit SUDS en action dans le « script playground » d’Ignition™ :

  1. On importe d’abord la librairie
  2. On créer une instance cliente sur un serveur et on demande le contrat « calculator »
  3. On affiche la « traduction » de SUDS qui indique qu’il y a 4 méthodes (add, divide, multiply, subtract) qui chacune prennent 2 arguments de type float
  4. On utilise ces informations pour effectuer notre calcul à l’aide de l’instruction print client.service.divide(33.33, 11.11)
Le code (nécessite Ignition™ 7.4.2 minimum) :
from suds.client import Client
client = Client("http://soaptest.parasoft.com/calculator.wsdl")
print client
print client.service.divide(33.33,11.11)

4 lignes. C’est toute la beauté de SUDS.

Avec les fonctions de script Python d’Ignition™ - et si besoin l’appel de classes Java ;) - on peut utiliser très simplement les services web quel que soit le format des données.

SUDS est une librairie très riche, mais vous n’avez pas besoin de  beaucoup plus que ce que vous avez ici pour faire des choses magiques. Au cas où, la documentation SUDS ici et les PyDocs ici.

SUDS et Ignition™ en action

Mieux qu'un long discours, regardez l'exemple en images animées.

Vous voulez essayer, téléchargez Ignition™, installez-le en 2 minutes et voilà !

lundi 5 mars 2012

Ignition™ dans la revue l'Eau, l'Industrie et les Nuisances

"Smart metering : les besoins feront le marché..."

Ce n'est pas moi qui le dis, mais Corinne Drault-Pezard, Technoscope, dans un excellent article paru dans la non moins excellente revue L'eau, l'Industrie, les Nuisances (numéro 349, http://www.revue-ein.com/ce-mois-ci-dans-la-revue-EIN/).

Ce que j'en pense, c'est qu'aujourd'hui toutes les solutions techniques existent (ou à peu près) et qu'il faut les assembler. C'est là que le rôle de conseil de l'intégrateur prend tout son sens. 
Il doit sélectionner les solutions les plus pertinentes et les plus agiles pour le besoin ciblé ; plus la solution sera ouverte (éviter donc les solutions verticales), plus il y aura de voies d'évolutions et d'intégrations multi énergies voire multi services et plus le client final sera satisfait tout en ayant le sentiment de ne pas être lié à un constructeur et ni à un intégrateur.

Bien sûr, le facteur prix n'est pas étranger à l'équation surtout lorsque l'on multiplie les capteurs. Si pour la partie matérielle (les capteurs, les passerelles) il faut passer par un équipement/un prix, pour les aspects logiciels, il faut choisir une solution qui ne comptabilise ni le nombre de mesures ni le nombre d'utilisateurs. Et qui soit web... Deviner quoi...

Extraits de l'article (disponible sur demande ou mieux encore, en achetant le numéro...) :





GTC et Metering avec Ignition™

Miosmeter®, une solution de télé relève, multi énergies.

Cette nouvelle déclinaison de l'association Miosbox/Ignition confirme la parfaite complémentarité d'un hardware "intelligent" et d'une solution logicielle "agile".
Cela donne une solution innovante, génératrice de gains importants pour l'intégrateur et l'utilisateur final.

La solution a été présentée à Interclima-Elec 2012 (7-12 février 2012).

Miosmeter® en action (Ignition™ embarqué dans la miosbox)

Architecture Miosmeter®

Plus d'informations :
Site web Ignition™ : www.on-solution.net
Site web Mios : http://www.mios.fr/

mardi 31 janvier 2012

Mioswater® : Appliance pour les stations d'épuration

Mioswater® : la première solution embarquée de télégestion et de supervision


Depuis plusieurs mois, MIOS (13) et ON SOLUTION (13) mettent en commun savoir faire et volonté d'apporter des solutions innovantes pour les marchés de l'eau et l'environnement, du building et smart metering, ce que moi je qualifie de machines-to-cloud (j'aurai l'occasion d'en reparler).

Premier fruit de cette collaboration, la Mioswater® a reçu un excellent accueil lors de la 13ème édition du Carrefour des Gestions Locales de l'Eau, événement national de référence pour toutes les problématiques liées à l'eau (25 et 26 janvier 2012 à Rennes).

Mioswater® est l'association de deux solutions uniques sur le marché : la Miosbox, automate fédérateur multi protocoles et multi services et Ignition™, solution de supervision cross plateforme et web.

Avec Mioswater®, vous avez une solution tout-en-un pour toutes vos installations dans l'eau et l'environnement : automatisme, contrôle d'accès et supervision sont embarqué dans un matériel robuste, ouvert, communicant et autonome.

L'architecture permet d'évoluer d'une solution mono box (tout en un) vers une solution multi box avec serveur de supervision sur une machine dédiée ou vers une architecture machines-to-cloud plus orientée services (hébergement, location).

Plus d'informations : http://goo.gl/2NrYx
Site web Ignition™ : www.on-solution.net
Site web Mios : http://www.mios.fr/


Ignition + Mios = Mioswater®


mardi 17 janvier 2012

Modélisation objet avec Ignition 7.4


Il y a bien longtemps que je n'ai pas posté sur ce blog. Non pas que les sujets manquent, mais plutôt une activité de fin d'année intense pour nous.
Ce billet, je n'ai pas résisté à vous le faire partager tout de suite tellement je suis enthousiasmé par ce que j'ai pu voir.

Nous allons vous proposer, dans les prochains jours, la version 7.4 d'Ignition qui apportera comme nouveauté, la modélisation objet.
En 2012, Ignition, ça va roxer !

Vous avez Ignition, vous avez tout compris

OO Scada
La modélisation objet en supervision industrielle accélère le développement et la maintenance des applications, car les écrans et les objets sont dérivés de modèles. Si une modification est faite sur un modèle, celle-ci sera propagée à toutes les instances. Un gain de temps inestimable.
Ca, c'est pour l'aspect visuel des choses.

Mais un composant est aussi doté de données et de comportements (scripts, évènements...). La couche des données est donc naturellement mise au diapason pour cette approche objet. On parlera ici de UDTs (User Defined Type). Si on combine l'utilisation des modèles de composants à celle des UDTs, alors on accède à un tout nouvel étage de possibilité et de puissance.
En réalité, la productivité peut croitre de 10-100 fois comparée à un système classique.

Ignition 7.4 sera objet. Ce n'est pas le premier superviseur objet, j'en connais au moins un autre qui est top, mais ce sera surement le meilleur, ne vous y trompez pas.

Le fait est que nous écoutons toujours beaucoup nos utilisateurs. Le retour d'expérience des utilisateurs de systèmes scada dits objets nous ont bien mis en garde contre les implémentation boguées ou beaucoup trop complexes pour être réellement utilisables ou performantes.

Vous allez donc pouvoir découvrir ce nouveau paradigme avec Ignition 7.4 dès Février 2012 ;  et vous n'allez pas être déçu, comme toujours : ridiculement simple, extrêmement puissant et avec des outils de productivité que personne d'autre ne peut vous proposer. A ce prix en plus.
Le développement avec Ignition sera bien plus performant avec Ignition qu'avec n'importe quel autre outil du marché.

En conclusion, Ignition est un choix incontournable. Regardez simplement les points suivants :

  1. Modèle de licence par serveur, pas par client ni nombre de variables
  2. Installation sur tous les OS, en 2 minutes chrono, même Windows 8
  3. Développement ultra rapide
  4. Déploiement ultra simple et sécurisé sur tous clients PC ou mobile
Tous ces points sont des avantages compétitifs. Vous devez en tirer profit pour gagner plus de projets et surtout les rendre vraiment profitables.

Maintenant avec le développement objet, tous les points s'alignent pour donner une puissance de feu incroyable à tous ceux qui choisissent Ignition.

Qui sera le prochain à nous demander une offre ?