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
IActuator
interface. 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 leIActuator
documentation à 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
StepBase
bloc fonctionnel. Cela fournit toutes les implémentations de base nécessaires duIProgramSequenceStep
interface. Voir leIActuator
documentation à la bibliothèque. Lors de l'utilisation de la classe de baseStepBase
, il suffit alors d'implémenterExecute
méthode. Ce dernier est alors appelé cycliquement par le déroulement du programme jusqu'à ce que la variablexDone
de la classe de base est défini surTRUE
. De plus, pour un bon fonctionnement, le drapeauxActive
doit être réglé surTRUE
tant 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 OMACFigure 67. Module:MovableBarrier
Le module
MovableBarrier
est mis en œuvre de la manière suivante : Le bloc fonction correspondantMovableBarrier
implémente l'interface crééeIMovableBarrier
. Cette dernière interface définit les méthodes de déplacement d'une barrière, alors queIMovableBarrier
implémente lui-même l'interfaceIActuator
, de sorte que le moduleMovableBarrier
est insérable comme actionneur dans l'arborescence des modules sous une unité mécatronique :Figure 68. Implémentation du moduleMovableBarrier
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 moduleMoveBarrierForTime
Le module implémentant le bloc fonctionnel
MoveBarrierForTime
dérive simplement du bloc fonctionnel de base contenu dans la bibliothèqueAC_MEC.StepBase
. Par là, le bloc fonctionnelMoveBarrierForTime
implémente déjà l'interfaceIProgramSequenceStep
. Par conséquent le moduleMoveBarrierForTime
est insérable comme pas de séquence sous une séquence de programme. La mise en œuvre fonctionnelle du bloc fonctionMoveBarrierForTime
est la suivante : en définissant un emplacement de référence pour le moduleMoveBarrierForTime
, pouvant recevoir un actionneur mettant en oeuvre l'interfaceIMovableBarrier
, on obtient une connexion à un actionneur "MovableBarrier" existant. Le mouvement de cet actionneur se fait finalement dans leExecute
fonction de laMoveBarrierForTime
bloc 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 œuvreIMovableBarrier
. De plus la propriétéDone
et la variablexActive
sont couplés à un TON, de sorte que les appels répétés aux fonctions de déplacement deIMovableBarrier
sont effectués jusqu'à ce qu'un certain temps (TON) se soit écoulé, après quoiDone
est défini sur TRUE etxActive
à FAUX. La propriétéDone
fait partie de l'interfaceIProgramSequenceStep
et 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.library
fournit é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 étapeBranchOnBool
est 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èqueAC_Mechatronics.library
contient des étapes de flux pour les flux parallèles, des sauts conditionnels ou des étapes d'attente simples et bien d'autres tâches.