Linux Embarqué - Linux Temps Réel Projet Soft PLC sur Linux / RTAI
CIO Informatique Industrielle Société d'ingénierie en informatique industrielle et technique Au service de nos clients depuis 1990 Une équipe de 15 spécialistes pour accompagner les projets industriels ou militaires La culture des systèmes ouverts et normalisés L'expertise de l'embarqué et du temps réel Investissement sur Linux depuis 2000 Siège à St Etienne Agence à Marseille
Le projet : SoftPLC sur Linux/RTAI Concept de Soft PLC Permettre une programmation en langage automate sur base informatique Divers produits sur le marché, CIO Value Added Reseller d'isagraf Architecture similaire à une Virtual Machine Java : interprétation d'un code intermédiaire Kit de portage sur hardware et software de son choix Buts du projet Disposer d'une solution ISaGRAF basée sur Linux : Aspects économiques pour des automates bas coût Grande variété de plateforme hardware sous tendues Acquisition de compétences interne pour des projets futurs à destination de clients industriels
Les contraintes du projet Nécessité d'un déterminisme temps réel Evaluation des solutions compatibles avec les attentes d'un automaticien Masquage des aspects informatiques de la solution Pas de processus d'installation complexe Résistance aux coupures brutales Stabilité des solutions retenues
Les choix de design Projet démarré début 2001 Déterminisme Evaluation des solutions possibles : patches du kernel, RTLinux, RTAI Patches disponibles permettent seulement du soft temps réel, insuffisant RTAI plus riche au niveau API que RTLinux, retenu Robustesse Eviter les corruptions de File System dûes aux arrêts brutaux (pas encore de File System journalisé) File System monté en Ram Disk Une partie minimale du File System sur disque dur pour mise à jour du code programme Installation Installation de l'os et de l'applicatif en 1 seule passe (3 disquettes d'installation)
Les difficultés rencontrées Compléxité dûe à RTAI Développement en mode kernel Pas de protection mémoire (similaire à certains OS temps réel) Debug plus difficile Possibilité de plantage complet du système Design de l'application réparti entre Linux et RTAI Communication avec l'extérieur sous Linux Moteur automatisme sous RTAI Absence de drivers RTAI Migration des drivers Linux vers RTAI
Les difficultés rencontrées Allocateur mémoire RTAI Nécessité d'allouer dynamiquement de la mémoire partagée entre Linux et RTAI RTAI propose 2 allocateurs Allocateur dynamique pour mémoire interne à RTAI Allocateur non dynamique pour mémoire partagée entre RTAI et Linux CIO crée un nouvel allocateur, synthèse des 2 allocateurs existant Illustration concrète des avantages de l'open Source Documentation pas toujours à jour
Les aspects positifs Solution réellement temps réel : temps de cycle automate de 1ms strictement respecté Solution facilement embarquable Empreinte disque inférieure à 3 Mo Empreinte mémoire de l'ordre de quelques Mo Possibilité de déploiement sur architectures variées : X86, PowerPC déjà fait ARM en perspective Accéssibilité des sources de la plateforme système Possibilité de correction de bugs bloquants Possibilité de customisation pour besoins propres (nouvel allocateur)
Les aspects positifs Bon support depuis les mailing lists Constantes améliorations des bases logicielles (Linux & RTAI) Ex : trap de certaines fautes dans RTAI pour ne plus planter le PC mais arrêter proprement la tâche fautive Arrivée rapide de nouveaux environnements de développement Source Navigator puis Kdevelop, Eclipse etc... Richesse des outils de génie logiciel liés au monde Linux Doxygen pour la documentation CVS pour gestion de version etc... Gratuité des outils de développement issus du monde libre
Les aspects positifs Solution effectivement déployée chez plusieurs clients industriels: Machine d'usinage Installations logistiques à base de réseaux de convoyeurs Machines d'embouteillage
La gestion des évolutions Projet démarré en kernel 2.2.17 + RTAI 1.7 Portage en kernel 2.4.18 et RTAI 24.1.9 réalisé Report de patches propres à CIO nécessaire Prévision de portage en kernel 2.6.x et RTAI 3.3 Politique de versions : Attendre des versions de kernel mineure > 15 Geler au maximum une version validée, et n'en changer qu'en cas de bug bloquant
Synthèse Intérêt de l'open Source pour la possibilité d'accès aux sources Compréhension / mise au point, corrections etc... Ne pas tomber dans une analyse exhaustive du source (un industriel n'est pas une université!!!) Déplacement des coûts de l'acquisition d'outils à l'acquisition de compétences Fort potentiel technique des solutions, dynanisme du développement Phase d'apprentissage à prévoir : ne pas réinventer la roue, support différent du modèle traditionnel etc... Absence d'interlocuteur central, mais possibilité d'appui par la communauté ou des sociétés spécialisées telle CIO Une plateforme technique arrivée à maturité Pour l'embarqué Pour le temps réel, mais au prix de l'utilisation d'extensions
Quelques autres projets concrets Machine d'usinage par électro érosion : Soft PLC + tâches en C sous Linux 2.4 + RTAI Solution de redondance Ethernet transparente pour les applications : Boîtier Intel ou PowerPC basé Linux 2.4, adaptation des drivers Ethernet et application de gestion des trames Application de Contrôle Commande pour le milieu militaire : Rack Compact PCI avec cartes d'e/s, portage de VxWorks à Linux Boîtier enregistreur pour l'industrie automobile : CPU PC104 + carte DSP + carte CAN sous Linux 2.4 + RTAI, portage des drivers + squelette applicatif
Quelques autres projets concrets Appareil d'analyse médicale : CPU ARM, Linux 2.6 + librairies graphiques légères, génération et installation de l'environnement, automatisation de la création de l'image Gestion SNMP d'un équipement industriel Portage de OS9 vers Linux 2.4 sur base Intel, puis XScale
Pour aller plus loin Pour toute information complémentaire : Rencontrez nous sur le salon stand ISIT (F34) Visitez notre site Web http://www.cioinfoindus.fr Contactez nous : Tél : 04 95 05 19 41 Mail : mailto:christian.charreyre@cioinfoindus.fr