Bibliothèque : Mécatronique
Astuce
le Mechatronics bibliothèque est censée être un exemple d'implémentation simple (et non complète) d'une unité mécatronique à exécution séquentielle. Il ne répond pas à toutes les exigences qu'une application mécatronique complète pourrait avoir. Il est plutôt destiné à être un point d'entrée ou une base pour une application de ce type.
Le noyau essentiel du modèle mécatronique proposé repose sur la structure de module suivante :
Mechatronics
Ainsi toute machine est supposée posséder éventuellement plusieurs sous-ensembles mécatroniques (exemple : chacun représentant un préhenseur). Une telle sous-unité se décompose à nouveau en ses actionneurs (équivalant à l'unité mécanique elle-même, également sa mise en œuvre fonctionnelle ou la gestion des entrées/sorties) et un gestionnaire de programme. Le gestionnaire de programme est destiné à gérer les différents états d'un sous-ensemble mécatronique, par exemple son Idle ou Execute Etat. Finalement, ces états sont représentés par des séquences de programme contrôlant les actionneurs ou tout autre élément nécessaire à une exécution correcte.
À ce stade, les différentes parties seront brièvement décrites en détail. Lors de l'utilisation de la bibliothèque, dans de nombreux cas, il sera nécessaire d'implémenter vos propres actionneurs, étapes de flux ou séquences de programme, qui seront également expliqués ici.
- Actionneurs: Tous les modules qui doivent être des actionneurs doivent être implémentés par un bloc fonction qui implémente à son tour - IActuatorinterface. Cette interface n'a pas de méthodes ou de propriétés et n'est utilisée que pour la compatibilité des modules (voir le- IActuatordocumentation à la bibliothèque). Il n'y a pas de restrictions ou de règles données pour les implémentations d'actionneurs, de sorte que le mouvement ou l'activation d'un tel actionneur doit être effectué séparément. Normalement, cela se fait en mettant en œuvre un module d'étape de séquence, qui peut maintenir les actionneurs appropriés dans une fente de référence et ainsi déplacer ces derniers de la manière souhaitée (par exemple en utilisant des interfaces supplémentaires).
- Étapes de la séquence - Il est fortement recommandé d'exécuter l'implémentation des étapes de flux en tant que classes dérivées du - StepBasebloc fonctionnel. Cela fournit toutes les implémentations de base nécessaires du- IProgramSequenceStepinterface. Voir le- IActuatordocumentation à la bibliothèque. Lors de l'utilisation de la classe de base- StepBase, il suffit alors d'implémenter- Executeméthode. Ce dernier est alors appelé cycliquement par le déroulement du programme jusqu'à ce que la variable- xDonede la classe de base est défini sur- TRUE. De plus, pour un bon fonctionnement, le drapeau- xActivedoit être réglé sur- TRUEtant que l'étape est active. Cependant, la connexion aux actionneurs peut se faire de n'importe quelle manière, par exemple par les fentes de référence proposées (voir 1.).
- Séquence de programme et responsable de programme Une séquence de programme est un sous-module d'un gestionnaire de programme, qui représente un état. Ces états sont gérés sous la forme d'une machine à états OMAC. Ses implémentations reposent à nouveau sur une méthode "Execute" (pour plus de détails, voir l'implémentation dans la bibliothèque). Cependant, la mise en oeuvre d'un tel déroulement de programme par l'utilisateur n'est pas nécessaire dans la plupart des cas. Cependant, la manière dont le comportement de la machine d'état est mis en œuvre dans le gestionnaire de programme et exécute ainsi les séquences de programme doit être brièvement décrite ici : - Il existe deux types d'états : les états actifs (se terminant par "ing") et les états d'attente/duels (le reste). Les états d'attente sont terminés par des commandes externes, tandis que les états actifs sont automatiquement exécutés et terminés. Les commandes disponibles dépendent de l'état dans lequel se trouve actuellement le gestionnaire de programme. Un bref aperçu est donné dans le diagramme d'état OMAC : Figure 66. Diagramme OMAC Figure 67. Module: Figure 67. Module:- MovableBarrier - Le module - MovableBarrierest mis en œuvre de la manière suivante : Le bloc fonction correspondant- MovableBarrierimplémente l'interface créée- IMovableBarrier. Cette dernière interface définit les méthodes de déplacement d'une barrière, alors que- IMovableBarrierimplémente lui-même l'interface- IActuator, de sorte que le module- MovableBarrierest insérable comme actionneur dans l'arborescence des modules sous une unité mécatronique :Figure 68. Implémentation du module- MovableBarrier - Cependant, cet actionneur "MovableBarrier" est déplacé par le module d'étape de séquence - MoveBarrierForTime, qui est lui-même implémenté de la manière suivante :Figure 69. Implémentation du module- MoveBarrierForTime - Le module implémentant le bloc fonctionnel - MoveBarrierForTimedérive simplement du bloc fonctionnel de base contenu dans la bibliothèque- AC_MEC.StepBase. Par là, le bloc fonctionnel- MoveBarrierForTimeimplémente déjà l'interface- IProgramSequenceStep. Par conséquent le module- MoveBarrierForTimeest insérable comme pas de séquence sous une séquence de programme. La mise en œuvre fonctionnelle du bloc fonction- MoveBarrierForTimeest la suivante : en définissant un emplacement de référence pour le module- MoveBarrierForTime, pouvant recevoir un actionneur mettant en oeuvre l'interface- IMovableBarrier, on obtient une connexion à un actionneur "MovableBarrier" existant. Le mouvement de cet actionneur se fait finalement dans le- Executefonction de la- MoveBarrierForTimebloc fonction, qui appelle simplement la méthode de déplacement (pictural) du capot de protection. Cette méthode est fournie par l'actionneur référencé, qui met en œuvre- IMovableBarrier. De plus la propriété- Doneet la variable- xActivesont couplés à un TON, de sorte que les appels répétés aux fonctions de déplacement de- IMovableBarriersont effectués jusqu'à ce qu'un certain temps (TON) se soit écoulé, après quoi- Doneest défini sur TRUE et- xActiveà FAUX. La propriété- Donefait partie de l'interface- IProgramSequenceStepet indique ainsi à la séquence de programme supérieure que l'étape suivante de la séquence doit être exécutée.- En dehors de votre propre implémentation des étapes de séquence, le - AC_Mechatronics.libraryfournit également des étapes pré-implémentées, qui peuvent être utilisées pour des opérations logiques générales. Cela signifie par exemple une étape- BranchOnBoolest fourni, qui comporte deux sous-séquences / branches d'étapes, qui sont exécutées en fonction de la valeur d'une variable BOOL. Ces sous-étapes sont exécutées en fonction de la valeur d'une variable booléenne. Par ailleurs, la bibliothèque- AC_Mechatronics.librarycontient des étapes de flux pour les flux parallèles, des sauts conditionnels ou des étapes d'attente simples et bien d'autres tâches.