ACOO Analyse, Conception et développement Orientés Objet de logiciels de commande
Thèmes abordés
• Architectures matérielles
– Types d’éléments à commander – Architectures centralisées – Architectures décentralisées
• Architectures logicielles, avantages et limites
– Automate programmable (API, SPS, PLC) – CNC
– Commandes de robot – Architectures ouvertes
• Position de la POO
– Applications dans le domaine de la commande de machines – Et ailleurs…
Architectures matérielles
Types d’éléments à commander - Capteurs
Systèmes de commande de machine 2
Capteur de présence inductif détecteur de fin de course
Information : 0/1
Thermocouple Capteur de température
Information analogique
Boutons de commande Interrupteurs à clés
Télémètre laser
Mesure de distance Capteur de force Capteur de niveau
Architectures matérielles
Types d’éléments à commander – Actuateurs simples
• Actuateurs simples
Vérin pneumatique Actuateur rotatif pneumatique
Pince pneumatique Préhenseur vacuum
Commande tout ou rien : 0 ou 1 logique
Types d’éléments à commander – Actuateurs intelligents
Systèmes de commande de machine 4
Servo moteur rotatif Servo moteur linéaire Unités de commande (motion controller)
Robot poly-articulé Robots cartésiens
Architectures matérielles
Types d’éléments à commander – Actuateurs intelligents
• Quelques principes de pilotage
– Envoi d’ordres à l’unité de commande
• Point to point – MoveTo – SetSpeed – Brake
• PVT (table de points Position Vitesse Temps) – Envoi de points à chaque contrôleur – Démarrage synchronisé
– Lecture de variables d’état
• EndMotion
• CurrentPosition
Architectures matérielles
Système de commande centralisé
Systèmes de commande de machine 6
Automate programmable autonome
Architectures matérielles
Système de commande distribué
Automate programmable ou module d’entrées sorties Commande d’axe numérique
Panel PC Commande centrale
Langages automate programmable (PLC)
Systèmes de commande de machine 8
SFC : Sequential Function Chart LD : Ladder Diagram FBD: Function Block Diagram
(* Load IN1 into the calculation register *) LD IN1
(* Subtract IN2 from that register, storing the result into that register *) SUB IN2
(* Perform the Absolute Value function on that register *) ABS
(* Store the value in the register into the variable called Error_Calc *) ST Error_Calc
IL: Instruction List
• 5 Langages de programmation
• Normalisés IEC 1131
ST: Structured Text
Architectures logicielles
Langages automate programmable (PLC)
• Avantages
– Normalisés.
– Répandus, donc rassurants.
– Démarrage très rapide du développement.
– Certains langages sont simples : Diagramme contact
• Inconvénients
– Très forte liaison à l’environnement de programmation propriétaire.
– Souvent même lié à un type de matériel !
– Inappropriés pour des applications complexes ou flexibles.
– Approche cyclique : programmation séquentielle très malcommode.
– Approche structurelle peu développée:
• Découpage en bibliothèques souvent délicat.
• Approche orientée objet peu ou mal supportée.
Systèmes de commande de machine 10 Pick
E
RobotPick.xExecute := TRUE ;
RobotPick() ;
RobotPick.xDone
Start laser cycle E
N = 0
DoLaserShot E
LaserShot.xExecute := TRUE ; N := N + 1
LaserShot() ;
Place E
RobotPlace.xExecute := TRUE ;
RobotPlace() ;
RobotPlace.xDone LaserShot.xDone
Next
N < 5
N = 5 DoLaserShot PlaceOnLaser E
RobotPlaceOnLaser.xExecute :=
TRUE ;
RobotPlaceOnLaser () ;
RobotPlaceOnLaser.xDone
IEC 1131 SFC (Grafcet) IEC1131 ST (Text language)
If Status = 1 then Pick(xExecute := TRUE);
Status = 2;
Elsif Status = 2 then Pick();
if Pick.xDone then Status = 3;
end_if
Elsif Status = 3 then
MoveOnLaserArea(xExecute := TRUE);
Status := 4;
Elsif Status = 4 then MoveOnLaserArea();
if MoveOnLaserArea.xDone then Status := 5;
end_if
Elsif Status = 5 then N := 0;
Status := 6;
Elsif Status = 6 then LaserShort(xExecute := TRUE);
Status := 7;
Elsif Status = 7 then LaserShort();
if LaserShot.xDone then N := N + 1;
if N < 5 then Status := 6;
else Status := 8 xDone := TRUE;
end_if End_if Exemple de séquence
pick();
move_on_laser_area();
for (i = 1; i <= 5; i++) laser_shot();
place();
Séquentiel Cyclique IEC1131 PLC
Architectures logicielles
Langages automate programmable (PLC)
• Conclusion
– Bien adaptés pour des petites applications.
– Gros risques pour le développement d’applications
• Séquentielles
• Complexes
– Forte dépendance au fournisseur de l’environnement – Inapproprié pour des applications complexes.
CNC (commande numérique pour l’usinage)
• CNC
– Commandes utilisées pour les machines d’usinage – Langage basé sur les code « G »
Systèmes de commande de machine 12
Architectures logicielles
Langages CNC (commande numérique pour l’usinage)
• Avantages
– Plus ou moins normalisés.
– Code généré automatiquement par les logiciels CFAO.
– Répandus, donc rassurants.
• Inconvénients
– Trop spécifiques à l’usinage: tournage, fraisage
– Mal adaptés à l’automatisation standard (souvent complétés par un PLC)
– Inappropriés pour les applications robotiques séquentielles.
– Aucune approche structurelle du logiciel – Langage archaïque, avec de fortes limitations
Architectures logicielles
Autres solutions
• Plateformes propriétaires
– Ex : plateformes des constructeurs de robots – Solutions très propriétaires
– Manque d’ouverture vers d’autres matériels
– Pensées trop spécifiquement pour un type d’application
• Conclusion
– Comment développer le logiciel de commande de machines complexes et flexibles ?
– Logiciel : assure l’intégration d’éléments matériels hétérogènes.
– Besoin d’une solution
• Ouverte vers toutes les technologies matérielles.
• Pensée pour supporter la complexité et la flexibilité des applications modernes.
Systèmes de commande de machine 14
Architectures logicielles
Architecture ouverte issue du génie logiciel
Langage de programmation Orienté objet, IDE
(C++)
Bibliothèques d’intégration Application
Framework
Accès au matériel
Fonctions de base pour l’automatisation
Architecture ouverte issue du génie logiciel
Systèmes de commande de machine 16
• Avantages
– Possibilités étendues de la programmation orientée objet.
– Ouvert vers tous types de matériel.
– Prise en compte efficace de la flexibilité et de la complexité.
– Normalisé ! Mais pas dans l’automatisation…
– Adaptable aux besoins spécifiques du métier.
– Très bien adapté aux applications séquentielles et cycliques.
– Approches structurelles efficaces: bibliothèques, POO.
• Inconvénients
– Moins répandus, exige donc plus d’effort de persuasion.
– Travail plus important avant de démarrer (vite amorti ensuite).
– Barrières culturelles.
Position de la Programmation Orientée Objet
• Commande de machine
– Potentiel d’innovation élevé
– Permet de répondre efficacement aux nouveaux défis
• Autres domaines d’applications industriels
– Logiciel embarqué
• Motion control
• Programmation de micro contrôleurs (>= 16 bits) – Exemple d’application
• La mise en œuvre du netX de Hilscher
Systèmes de commande de machine 18