Linux et l’Open Source dans l’automation

Christian Charreyre, chef de projet chez CIO Informatique industrielle, une entreprise de 15 personnes consacrée au développement d’applications en informatique industrielle pour l’industrie ou la défense, se rappelle " nous livrons des logiciels sur cahier des charges, pour des applications temps réel embarquées depuis 1990, notre société a entamé un changement de cap vers Linux dès 2000. Auparavant, nos produits utilisaient les OS " traditionnels " : Windows pour les IHM et des RTOS (Real Time Operating System) classiques comme 0S9, VxWorks ou encore QNX ".

" Linux nous a séduit par sa " taille " réduite et sa capacité à autoriser des développements croisés. Ces deux critères s’avèrent fondamentaux pour nos produits destinés à l’embarqué et/ou au temps réel. Pour vous donner un ordre d’idée, le chiffre d’affaires issu des produits équipés de Linux représentait 3 % du chiffre d’affaires total en 2002, et près de 70 % en 2006. Ceci peut s’expliquer par le remplacement (relativement) aisé d’OS spéciaux et/ou propriétaires d’architecture 68K ou PowerPC par du Linux sur x86. Par son ouverture, le noyau Linux autorise plus de souplesse de programmation pour le constructeur et l’utilisateur. Chez nous, les projets qui ont le vent en poupe concernent les applications temps réel avec extension RTAI et Xenomai pour du temps réel dur ".

 

Le pingouin s’embarque en temps réel

L’un des objectifs majeurs de Xenomai est de permettre la migration d’applications issues d’un environnement RTOS traditionnel vers un système GNU/Linux, son architecture repose sur un nano-kernel. (Précisons que le kernel est la partie fondamentale d’un système d’exploitation, véritable gestionnaire des ressources machine, qui permet aux éléments matériels et logiciels de fonctionner ensemble).

Xenomai propose une API [rappelons qu’en matière d’OS, une API (Application Program Interface) est le langage utilisé par un programme applicatif pour communiquer avec le système d’exploitation ou un autre programme de contrôle] neutre qui utilise les bases communes des différentes API des RTOS classiques. Il est donc en mesure d’émuler des interfaces de programmation, en particulier celles des RTOS " traditionnels " tels que : VxWorks,VRTX… De plus, il a la capacité de définir sa propre interface contenant des classes de service dédiées à la gestion de tâches, les I/O, l’allocation mémoire, la gestion des alarmes, les interruptions…

Parmi les expériences, Christian Charreyre cite l’un des premiers projets datant de 2001, une application de contrôle/commande de machines sous Linux/RTAI. " Celle-ci étant dédiée à du contrôle d’axes, nous avions des spécifications strictes au niveau du déterminisme et donc l’impératif d’un fonctionnement en temps réel dur ". Linux servant ‘d’hôte’ au nano-kernel RTAI, la criticité devait se gérer sur ce dernier pour ensuite repasser la main à Linux. " Au final, nous parvenons à une solution avec des temps de cycle de l’ordre de la milliseconde, et une solution facilement " embarquable " présentant une empreinte disque de 3 Mo ! " s’enthousiasme Christian Charreyre.

Dans un autre cas, pour un équipement avec redondance Ethernet, le client désirait du matériel fondé sur Linux. " Ethernet est synonyme de matériel transparent autorisant une certaine modularité. Pour ce projet, le client voulait l’ensemble du code source (système+applicatif), la possibilité du choix de CPU parmi Intel, PPC ou Arm, ainsi que la large couverture de chipsets compatibles Ethernet. Nous avons donc proposé plusieurs produits. Par exemple, sur une architecture PowerQuick(PPC), notre CPU disposait de trois ports Ethernet. Pour ne pas être " vu " sur le réseau et autoriser un remplacement en cas de panne sans aucune modification, notre équipement était dépourvu d’adresse IP. Quant à la connexion au réseau Ethernet, nous avons utilisé des drivers comme Intel EtherExpress Pro ".

Une telle solution permet la mise en route en moins de quinze secondes entre le démarrage de Linux et de l’applicatif. Christian Charreyre dresse une synthèse des systèmes Open Source en milieu industriel : " une des problématiques récurrentes de la part des clients finaux est de vouloir geler au maximum une version validée d’une application. Au pire, changer de version qu’en cas de bug réellement bloquant. Voilà ce qui différencie Linux des autres OS : la possibilité d’éradiquer le bug de façon sélective par l’application de patch et de conserver la version en cours. Ensuite, les outils logiciels dédiés à Linux sont d’une grande richesse, comme doxygen pour la génération d’une documentation du code source, ou CVS pour la gestion de version. Il en résulte une réelle dynamique pour le développement. Un autre avantage repose sur la taille des applications, critère décisif pour l’ingénierie embarquée. Parfois, 8Mo de flash et 16Mo de RAM peuvent suffire ! Pour les nouveaux axes de développements et les dépannages, l’aspect communautaire est également d’un grand recours. Dans ce contexte, on note un déplacement des coûts d’acquisition matérielle vers des acquisitions de compétences ".

Un des autres atouts de Linux provient des technologies et des applications d’échanges de données industriels : OPC (OLE for Process Control). OPC répond à l’indéracinable Microsoft DCOM (Distributed Component Objet Model) qui tourne uniquement sur les machines équipées de Windows. Jusqu’à récemment, il n’y avait pas d’autres alternatives pour les utilisateurs désireux d’utiliser OPC que de se munir de systèmes Windows.

Mais, avec l’arrivée d’OPC XML-DA sur Linux, on peut dorénavant compter sur une nouvelle pièce de l’échiquier du service d’échange de données, OPC XML-DA peut être implémenté sur des systèmes embarqués qui supportent à la fois le XML et le HTTP.

Dorénavant, avec OPC XML-DA ou –UA, il n’y a plus de raison de discréditer Linux pour des applications de Web Services dédiées aux échanges de données.

 

Les automates programmables aussi

Les constructeurs d’automates programmables surfent également sur la vague. Un exemple avec UXP " avec nos systèmes fondés sur Linux, nous sommes présents dans trois domaines de l’automation : nos PC industriels-API, la communication et les IHM pour le reporting par exemple " relate Robert Jay, directeur technique.

D’abord, sur un PC déjà équipé de Linux, les parties automatismes et IHM peuvent cohabiter en tant que tâches indépendantes et coopérantes sur un même système. Ensuite, pour les électroniques dédiées métiers et/ou embarquées, le constructeur propose des processeurs Arm 7 ou 9, ou d’autres microcontrôleurs supportant Linux. Enfin, UXP a développé Opral, un processeur d’automatisme temps réel qui se décline en deux versions. Connecté sur le bus PCI, il décharge le PC des aspects automatismes. " Celui-ci peut alors se consacrer aux parties IHM/supervision, base de données, sous Linux ou Windows " nous précise Robert Jay.

Tandis qu’avec la seconde version Opral Box, le processeur devenu autonome se connecte via Ethernet à n’importe quel PC, sous Linux ou Windows. Robert Jay, conclut en nous livrant quelques informations techniques : " Pour le traitement des signaux, nos systèmes sont dotés du noyau Linux 2.6 avec le micro kernel RTAI, ce qui garantit des temps de latence répondant aux impératifs du temps réel dur ".

Autre cas d’école, 3S Smart Software Solutions, le concepteur du système de programmation IEC 61131-3, CoDeSys. Cette entreprise propose un ordinateur industriel dédié aux applications embarquées, pourvu de CoDeSys, avec un bus CAN intégré, le tout fonctionnant sous Linux. En utilisant le serveur Web intégré, le masque de visualisation créé dans l’outil de programmation peut être chargé dans le contrôleur et affiché par des browsers Web. En outre, des fonctionnalités " motion " peuvent s’ajouter, configurables par l’Automate Programmable Industriel.

Enfin, les PAC (contrôleurs d’automatisme programmable) ne sont pas oubliés avec la société UEI (United Electronic Industries). L’une des différences entre les API et les PAC réside dans la programmation, les seconds ayant la capacité d’être programmés en langages C ou Visual Basic. La firme américaine annonce une nouvelle gamme d’automate type PAC : UEIPAC. Ils embarquent deux ports Ethernet, un port série, une interface pour carte SD. Livrés d’origine avec un OS Linux 2.6x, la programmation s’effectue directement en C avec un PC équipé d’un environnement Linux ou nécessite Cygwin sous Windows.

 

Et même la vision industrielle

La vision industrielle n’est pas insensible au charme de " l’OS manchot ", qui n’a apparemment de manchot que l’image de marque. Certains constructeurs n’hésitent plus à embarquer des operating system Linux au cœur de leurs caméras " intelligentes ". D’un point de vue constructeur, il en résulte une totale adéquation de l’OS avec la partie matérielle de la caméra.

Comme le précise Jean Ferret, manager général chez MatrixVision, " nous concevons et vendons nos propres caméras. Afin de créer une intelligence logicielle la plus adaptée à notre électronique, nous avons opté pour un OS Linux. Ainsi, un de nos produits phare, la MVBlueLynx, intègre un kernel Linux 2.6 avec notre intelligence maison. Par rapport à nos exigences, nos architectures ne disposent pas de micro kernel type RTAI. Les performances du noyau natif suffisent ". Les interventions des constructeurs peuvent aller au-delà de la " simple " mise en conformité de l’OS vis à vis du matériel. " La compilation du programme s’effectue au bureau d’étude. Nous pouvons ajouter des fonctionnalités additionnelles pour des besoins spécifiques. Par exemple, nous pouvons tout à fait développer des serveurs WEB ou un protocole UDP pour la sécurité des transactions de données " détaille Jean Ferret.

D’un point de vue utilisateur, la personnalisation du matériel de vision pour une application propriétaire est mis en exergue. " Proposer au client une ouverture au niveau du code confère une plus-value indéniable aux produits. Le client peut très bien implémenter sa propre application, son savoir-faire. Prenez par exemple la vidéosurveillance que l’on retrouve communément pour des applications de trafic routier : celle-ci comprend des gestions évènementielles, de comptage ou autres. Grâce à cette ouverture, une partie de l’intelligence de l’application peut s’embarquer sur l’OS. Qui plus est, la programmation du noyau s’effectuant en C/C++, la main d’œuvre qualifiée ne manque pas ".

Par ailleurs, d’un point de vue performance, chez MatrixVision : " il n’y a pas d’intervention du CPU dans la prise d’image, celle-ci transite uniquement par le bus mémoire. Notre matériel est en mesure d’assurer des performances de 15 frames par seconde et au-delà. " explique Jean Ferret.

" Finalement, Linux permet à une intelligence, issue du concepteur de la caméra ou propriétaire, de s’embarquer dans un système de vision industrielle. Nous capitalisons sur ce phénomène. Il y a même possibilité pour le client de récupérer notre base, la caméra et l’électronique, implémenter son savoir-faire et revendre le tout tel quel. C’est ici que réside notre principale différence " termine Jean Ferret.

 

Open Source dans l’industrie

A l’instar de Linux, l’Open Source a également sa place dans l’industrie, comme Anyware Technologies qui édite des solutions logicielles basées sur la fondation Eclipse. Son concept Topcased est un atelier de génie logiciel pour les systèmes embarqués temps réel, développé avec le soutien de partenaires comme TNI-Software, le CNES, Airbus. David Sciamma, chef de projet, nous décrit ses objectifs : " Avant de concevoir Topcased, nous nous sommes penchés sur une problématique logicielle majeure, notamment dans les industries automobiles et aéronautiques ".

Pour ce type d’industriels, les temps de mise en service demeurent longs, au moins une dizaine d’années pour l’automobile et voire une trentaine pour l’aéronautique. David Sciamma soulève le problème d’une potentielle obsolescence d’un logiciel : " En cas de panne de mon application embarquée, que puis-je faire si la version du logiciel avec laquelle j’ai travaillé 10 ou 20 ans auparavant n’est pas compatible avec l’actuelle ? Ou tout simplement si l’éditeur a disparu. Selon nos sources, les applications embarquées représentent environ 30 % de l’investissement total du développement d’un véhicule ou d’un aéronef moderne ".

Devant cette nécessité de perpétuer les outils logiciels, le but majeur d’un outil comme Topcased est d’assurer leur pérennité. " Par son approche open source, il permet la création d’une communauté autour du logiciel en question. Avec cette mutualisation de développement, les bénéfices se trouvent au niveau de la validation, et bien évidemment de la maintenance " relève David Sciamma.

Plusieurs types de logiciels sont concernés et disponibles, " actuellement, nous travaillons sur l’intégration de Matlab, Simulink et Scade ". Et les utilisateurs pourront profiter de l’utilisation de la fondation Eclipse. " Avec la fondation Eclipse, un logiciel autorise la réutilisation des projets et des outils de celle-ci. Avec près de 1000 plug-in disponibles par défaut, les coûts de développements diminueront obligatoirement. Ensuite, la fondation propose des mises à jour automatiques en termes de fonctionnalités pour le développement ou le déploiement ".