Journal Nouvelles de "Ada for Automation"

Posté par (page perso) . Licence CC by-sa
Tags :
21
9
déc.
2013

Bonjour,

Je vous ai déjà présenté succinctement dans ces mêmes colonnes le résultat de ma gymnastique cérébrale, Ada for Automation.

Je profite de l'occasion qui m'est offerte ici, je remercie bien les tenanciers de cet espace de liberté, pour faire un peu de publicité de lumière sur ce projet et vous tenir informés de l'état d'avancement.

Vous le savez, je l'ai déjà dit, "Ada for Automation" (A4A en version courte) est donc un cadre applicatif, ou framework, pour la conception d’applications d’automatisme industriel dans le langage Ada.

Vous pouvez à mon sens créer toutes sortes d'applications, dans tous les domaines industriels, mais pourquoi pas ailleurs.

Je suis curieux de connaître vos réticences si vous en avez. N'hésitez pas à m'en faire part.

Afin d'illustrer son utilisation j'ai mis en oeuvre ce cadriciel dans une application d'arrosage automatique, fictive pour le moment.
Comme je n'ai pas de partie opérative, une application de simulation est également disponible, ce qui constitue un type d'applications candidates.

J'ai décrit ceci dans deux articles :
A4A : Exemple d’application app1
A4A : app1 – Spécifications Fonctionnelles

Bien sûr, la documentation s'est étoffée et est disponible au format HTML ou PDF. Elle est également présente dans les sources chez Gitorious.
http://slo-ist.fr/ada4autom/documentation

En images :

A4A-APP1-Syno-00

Enfin, un forum a été mis en place pour répondre à vos nombreuses questions, critiques ou suggestions :
Forum

J'espère ne pas avoir abusé. N'hésitez pas à me le faire savoir.

Cordialement,
Stéphane

  • # Objectifs ?

    Posté par (page perso) . Évalué à 2.

    les tenanciers de cet espace

    Tu veux dire qu'ici c'est le bordel ?

    .

    Je n'ai pas compris l'objectif poursuivi. La page de blog ne m'apporte pas d'info pertinentes, ni la page officielle.
    Dans le domaine de l'automatisme, on est très lié au matériel à piloter. On est coincé avec les méthodes plus ou moins bonnes (surtout moins) fournies par les constructeurs pour piloter leurs appareils. Le problème de base se situe là. Avec en plus des tarifs si élevés que ça montre que la rétention d'information est la clef de la rentabilité.

    • [^] # Re: Objectifs ?

      Posté par . Évalué à 2.

      Tu veux dire qu'ici c'est le bordel ?

      Tenancier ne signifie pas forcément bordel.

      http://www.cnrtl.fr/definition/tenancier

    • [^] # Re: Objectifs ?

      Posté par (page perso) . Évalué à 2.

      Je n'ai pas compris l'objectif poursuivi. La page de blog ne m'apporte pas d'info pertinentes, ni la page officielle.

      tout est quand même expliqué en détail ici :
      http://slo-ist.fr/A4A/Documentation/A4A-Book-fr.html#_objectifs

      Dans le domaine de l'automatisme, on est très lié au matériel à piloter.

      Visiblement, A4A est prévu pour s'interfacer à une certaine catégorie de matériel supportant modbus :
      https://fr.wikipedia.org/wiki/Modbus

      Si du matériel est complètement verrouillé, j'imagine que A4A ne pourra rien pour lui…

      « I approve of any development that makes it more difficult for governments and criminals to monopolize the use of force. » Eric Raymond

    • [^] # Re: Objectifs ?

      Posté par (page perso) . Évalué à 4.

      Bonjour Kerro,

      http://fr.wiktionary.org/wiki/tenancier

      Le quatrième sens est celui qui convient à mon propos.

      Je n'ai pas compris l'objectif poursuivi. La page de blog ne m'apporte pas d'info pertinentes, ni la page officielle.

      J'en suis navré. Ce n'est pas faute d'essayer…

      Est-ce que ce lien est utile ?
      http://slo-ist.fr/A4A/Documentation/A4A-Book-fr.html#General_Architecture

      J'ai aussi posté ceci sur le forum :
      "Un automate, c'est souvent un matériel dédié, un atelier de développement également dédié et des langages plus ou moins conformes à la norme IEC 61131-3. L'automate déroule une boucle acquisition des signaux, traitements du programme utilisateur (combinatoire, séquentiel, calcul, asservissement, régulation) et pilotage des sorties.
      Accessoirement, du diagnostic, du déboguage, de la redondance, etc…

      Le framework "Ada for Automation" propose une solution logicielle, s'exécutant sur du matériel standard, sur les principales plates-formes et OS, un atelier de développement libre, le langage Ada tant pour le framework que pour le programme utilisateur, une boucle de traitement similaire à celle d'un automate, la tâche principale, ainsi qu'une bibliothèque de fonctions et d'objets standards en automatisme. L'acquisition des entrées et le pilotage des sorties est réalisé au travers du protocole Modbus RTU ou TCP, ou via des cartes de communication Hilscher pour tous les protocoles standards du marché de l'automatisme."

      Dans le domaine de l'automatisme, on est très lié au matériel à piloter.

      Pas plus qu'en informatique je crois. Si l'on essaye de s'affranchir des solutions enfermantes on y parvient sans trop de peine. Il y a des protocoles standardisés, des profils d'équipements également standardisés. Bien sûr, il ne faut pas attendre des éditeurs ou fabricants de matériels qu'ils scient la branche sur laquelle ils sont installés. Je pense que le gars qui écrit un pilote pour un composant ou un périphérique informatique quelconque est également très lié au matériel, à l'OS pour lequel il écrit ce pilote, au langage en général utilisé pour ce genre de tâches.

      On est coincé avec les méthodes plus ou moins bonnes (surtout moins) fournies par les constructeurs pour piloter leurs appareils. Le problème de base se situe là. Avec en plus des tarifs si élevés que ça montre que la rétention d'information est la clef de la rentabilité.

      On parle des contrôleurs là ? C'est ce que je dis en introduction dans le pseudo livre / documentation.
      C'est justement l'objectif de "Ada for Automation" que de fournir un environnement qui permette de créer son propre contrôleur, écrire son programme de contrôle - commande, le tout dans le même langage, Ada, un langage généraliste qui autorise toutes sortes d'évolutions. Avec en prime un outillage libre et disponible sous Windows ou Linux.

      De base, "Ada for Automation" fournit un serveur et un client Modbus TCP, grâce à libmodbus, ce qui permet d'accéder à beaucoup de matériel déjà et de créer nombre d'applications intéressantes.
      Avec les cartes de communication Hilscher, je ne cache pas que je travaille en tant que support technique chez Hilscher France, c'est tous les protocoles standard du marché qui vous sont accessibles et que vous pouvez panacher selon la combinaison qui convient le mieux à votre application.

      Nos clients sont des fabricants de matériel, des intégrateurs, des fabricants de bancs de test. Leurs besoins sont variés et les solutions mises en oeuvre vont du matériel (FPGA/DSP), micro-contrôleur avec ou sans OS, au Soft PLC en passant par le C / C++. Je me suis dit que Ada pouvait également figurer dans ce panel en bonne place car à la fois accessible aux informaticiens et avec un peu d'effort aux automaticiens un peu "doués".

      A très bientôt sur le forum !

      Je suis sur Lyon si des personnes peuvent être intéressées par une démo.
      En tant que membre de l'ALDIL, il y a peut-être moyen de prévoir cela un Jeudi bidouille par exemple.

      Cordialement,
      Stéphane

  • # Mini cibles

    Posté par (page perso) . Évalué à 0. Dernière modification le 12/12/13 à 21:12.

    Bonjour,

    Avez-vous pensé à développer sur la base d'Arduino une sorte de pseudo PLC avec lequel votre framework pourrait interagir ?
    Une autre idée pourrait être de créer un soft qui tourne sur PC et émulerait (pour des applications non critiques en terme de temps de réponse) un PLC via une carte pas cher possédant des entrées/sorties numériques (Labjack U12 par exemple).

    IRAI (Automgen) fait ce genre de choses… et ça me semble une bonne idée.
    Il y a même un projet sur SourceForge
    http://automgenruntime.sourceforge.net/
    mais ça date un peu

    Cordialement

    • [^] # Re: Mini cibles

      Posté par (page perso) . Évalué à 1.

      Bonjour,

      Mon dada c'est Ada. S'il existe une chaîne de compilation Ada pour votre carte Arduino alors il doit être possible de jouer avec les E/S de la carte, voire davantage, mais j'ignore tout de celle-ci.

      Pour le cas PC, c'est la cible de choix pour "Ada for Automation". Pour les cartes "pas cher" permettant de raccorder des modules d'E/S je propose les cartes Hilscher. ;-)
      Pour du temps réel mou, les OS d'aujourd'hui ne sont pas si mauvais et je pense que l'on doit obtenir des performances plus que satisfaisantes pour bon nombre d'applications.
      Entre 50 et 100 ms de temps de cycle on peut piloter plein de choses. C'est beaucoup mieux que la plupart des automates de il y a peu, voire même d'aujourd'hui, ça dépend lesquels.

      Après il y a Linux avec les patches de OSADL qui doit pouvoir fournir de meilleures performances temps réel.

      Je pense également à MarteOS ou RTEMS pour ce qui est du libre mais c'est une autre histoire.

      Il y a aussi VxWorks, pour lequel Hilscher fournit un pilote et AdaCore un runtime Ada. Mais il faut des sous+++.

      Après il faut savoir ce que l'on veut et y passer du temps ou de l'argent, le plus souvent les deux.

      Cordialement,
      Stéphane

      • [^] # Re: Mini cibles

        Posté par (page perso) . Évalué à 1.

        Voici quelques infos concernant ADA pour Arduino
        http://playground.arduino.cc/Code/AVR-Ada

        Je comprend bien votre engouement pour vendre votre matériel mais Arduino (et Raspberry Pi)
        sont actuellement dans la communauté libre et la communauté DIY 2 cartes très en vogue.

        Cordialement

        • [^] # Re: Mini cibles

          Posté par (page perso) . Évalué à 1.

          Bonjour,

          Les puristes / intégristes vous diraient que l'on écrit Ada et non ADA mais je n'en suis pas un, tout juste un apprenti.

          Merci pour le lien.
          Il semble bien possible donc de faire tourner une version de "Ada for Automation" sur votre / vos cartes.

          Je dis une version car de base "Ada for Automation" est prévu pour gérer une communication Modbus TCP Client pour les IO, Server pour y connecter un SCADA, et ce avec libmodbus, TCP/IP…, mais ce n'est nullement une obligation et il est tout à fait possible d'envisager d'autres solutions.

          Je ne sais pas d'autre part si le runtime est complet, s'il gère les tâches par exemple.

          Je ne connaissais pas LabJack. Je vois que des pilotes pour linux sont disponibles. Il faudra d'abord porter ceux-ci, si le code est disponible, ça peut ne pas être trivial, en C ou en Ada.
          Je suis ouvert à vos contributions que j'espère nombreuses.

          Pour tout dire, je ne suis même pas opposé à accueillir les contributions permettant l'utilisation de produits concurrents. Après tout c'est aussi ça le libre. Chacun sa bonbonne et courage !

          Quant à vendre notre matériel, je suis support technique et accessoirement développeur et ce n'est donc pas trop ma vocation que la vente. Cependant, je ne déteste pas défendre nos solutions, voire les promouvoir. Par les temps qui courent, c'est juste une question d'intérêt bien compris.

          Cordialement,
          Stéphane

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.