Règles générales propres aux blocs fonctionnels de contrôle du mouvement

Les règles générales propres aux Instructions de configuration d'axe Micro800 reposent sur les spécifications de contrôle des mouvements PLCopen.
Règles générales propres aux blocs fonctionnels de contrôle du mouvement
Règle applicable à
Règle
Paramètres d'entrée
Avec Execute : les paramètres sont utilisés avec le front montant de l'entrée d'exécution. Pour modifier un paramètre, changez le ou les paramètres d'entrée et déclenchez de nouveau le mouvement.
si l'instance d'un bloc fonctionnel reçoit une nouvelle commande Execute avant qu'elle ne se termine (dans le cadre d'une série de commandes sur la même instance), la nouvelle commande Execute n'est pas prise en compte, et l'exécution de l'instruction précédemment émise se poursuit.
Avec Enable : les paramètres sont utilisés avec le front montant de l'entrée d'activation et peuvent être constamment modifiés.
Paramètres d'entrée manquante
Les entrées manquantes sont capturées lors de la compilation de l'application utilisateur. Les erreurs propres aux entrées manquantes ne sont pas gérées au niveau du contrôleur.
Entrées dépassant les limites de l'application
Si un bloc de fonctions est commandé par des paramètres dont le résultat dépasse les limites de l'application, l'instance du bloc de fonctions génère une erreur. Dans ce cas, la sortie Error est activée et les informations propres à l'erreur sont indiquées par la sortie ErrorID. Dans la plupart des cas, le contrôleur reste en mode Exécuter et aucune erreur de mouvement n'est signalée en tant que défaut majeur du contrôleur.
Règles de signe pour les entrées
Les valeurs des entrées d'accélération, de décélération et de jerk sont toujours positives. Les entrées propres à la vitesse, à la position et à la distance, en revanche, peuvent correspondre à des valeurs positives et négatives.
Position et distance
La position est une valeur définie au sein d'un système de coordonnées. La distance, quant à elle, est une mesure relative exprimée en unités techniques. La distance correspond à la différence entre deux positions.
Entrée relative à la position/distance
Seuls les mouvements linéaires sont pris en charge sur les contrôleurs Micro800. Pour le bloc de fonctions MC_MoveAbsolute, l'entrée relative à la position correspond à l'emplacement absolu à transférer à l'axe. Pour le bloc de fonctions MC_MoveRelative, l'entrée relative à la distance correspond à l'emplacement relatif (en considérant que la position actuelle de l'axe est 0) par rapport à la position actuelle.
Entrée propre à la vitesse
La vitesse peut avoir une valeur signée mais vous pouvez aussi utiliser une entrée de direction pour définir le signe de la vitesse (vitesse négative x direction négative = vitesse positive). Pour des raisons de compatibilité, le paramètre « Direction » E s'applique à l'entrée et à la sortie propres à la vitesse.
Entrée propre à la direction
Pour les mouvements de distance (position) dont la position cible (absolue ou relative) est définie, la direction du mouvement est unique. L'entrée propre à la direction dans le cadre d'un mouvement de distance n'est pas prise en compte.
Pour les mouvements de vitesse, la valeur correspondant à l'entrée Direction peut être 1 (direction positive), 0 (direction actuelle) ou -1 (direction négative). Pour toute autre valeur, seul le signe est pris en compte. Par exemple, -3 représente une direction négative, +2 une direction positive, etc.
Pour des déplacements de vitesse (MC_MoveVelocity), le signe (vitesse x direction) détermine la direction réelle du mouvement si la valeur est différente de 0. Par exemple, si vélocité x direction = +300, la direction est positive.
Entrées propres à l'accélération, la décélération et le jerk
  • Il est recommandé d'attribuer une valeur positive aux entrées propres à la décélération ou à l'accélération. Si les valeurs de décélération et d'accélération ne sont pas positives, le bloc fonctionnel signale une erreur (ID de l'erreur: MC_FB_ERR_RANGE).
  • L'entrée Jerk doit avoir une valeur non-négative. Si la valeur de Jerk est négative, le bloc de fonctions signale une erreur (ID de l'erreur: MC_FB_ERR_RANGE).
  • Si la valeur maximale de jerk est définie sur zéro, tous les paramètres de jerk pour le bloc fonctionnel de mouvement doivent être définis sur zéro, y compris le paramètre de jerk MC_Stop. Dans le cas contraire, le bloc fonctionnel signale une erreur (ID de l'erreur : MC_FB_ERR_RANGE).
  • Si le paramètre de jerk est défini à une valeur non nulle, un profil Courbe en S est généré, alors que si ce paramètre est défini à 0, le profil généré est de type trapézoïdal.
  • La configuration du jerk d'origine ne se limite pas à la configuration du jerk maximal.
  • Si le moteur de mouvement ne parvient pas à générer le profil de mouvement prescrit par les paramètres d'entrée dynamiques, le bloc fonctionnel signale une erreur (ID de l'erreur : MC_FB_ERR_PROFILE).
Exclusivité de la sortie
Avec Execute : Lorsque Execute vaut Vrai, l'une des sorties Busy, Done, Error ou CommandAborted doit être également à TRUE. Les sorties sont mutuellement exclusives : seule l'une d'entre elles peut être TRUE dans un bloc fonctionnel.
Seule l'une des sorties Active, Error, Done et CommandAborted est définie à la fois.
Avec Enable : Les sorties Valid et Error sont mutuellement exclusives : seule l'une d'entre elles peut être TRUE dans un bloc fonctionnel.
État de la sortie
Avec Execute : Les sorties Done, Error, ErrorID et CommandAborted sont réinitialisées avec le front descendant de l'instruction Execute. Néanmoins, le front descendant de l'instruction Execute ne permet pas d'arrêter ni d'influencer l'exécution du bloc de fonctions réel. Même si l'instruction Execute est réinitialisée avant la fin du bloc de fonctions, les sorties correspondantes sont définies pour au moins un cycle.
Si l'instance d'un bloc de fonctions reçoit une nouvelle commande Execute avant qu'elle ne se termine (dans le cadre d'une série de commandes sur la même instance par exemple), la nouvelle commande Execute n'est pas prise en compte et l'exécution de l'instruction précédemment émise se poursuit.
Avec Enable : les sorties Valid, Enabled, Busy, Error et ErrorID sont réinitialisées dès que possible avec le front descendant de l'instruction Enable.
Comportement de la sortie Done
La sortie Done est définie lorsque l'action commandée s'est terminée avec succès.
Lorsque plusieurs blocs de fonctions sont actifs séquentiellement sur le même axe, la condition suivante s'applique :
Lorsqu'un mouvement sur un axe est interrompu par un autre mouvement sur le même axe avant qu'il ait atteint son objectif final, la sortie Done n'est pas définie sur le premier bloc fonctionnel.
Comportement de la sortie Busy
Chaque bloc de fonctions peut disposer d'une sortie Busy pour indiquer que son exécution n'est pas terminée (pour les blocs de fonctions disposant d'une entrée Execute) ou qu'elle ne fonctionne pas et que de nouvelles valeurs de sortie peuvent être générées (dans le cas d'une entrée Enable).
L'entrée Busy est définie au niveau du front montant de l'instruction Execute et réinitialisée lorsque l'une des sorties Done, Aborted ou Error est définie. Le bloc de fonctions doit demeurer dans la boucle active du programme d'application au moins aussi longtemps que l'entrée Busy est VRAI, car il est possible que les sorties subissent des modifications.
Les blocs de fonctions d'une même instance et qui sont Busy ne peuvent pas s'exécuter tant qu'elles sont Busy. Les blocs de fonctions d'instances différentes peuvent remplacer le bloc de fonction en cours d'exécution.
Comportement de la sortie CommandAborted
Cette sortie est définie lorsqu'un mouvement commandé est interrompu par une autre commande de mouvement.
Le comportement de réinitialisation de la sortie CommandAborted est identique à celui de la sortie Done. Lors de la génération de la sortie CommandAborted, d'autres signaux de sortie, comme InVelocity, sont réinitialisés.
Sortie Active
Cette sortie est requise pour les blocs de fonctions en mémoire tampon. Elle est définie au moment où le bloc de fonctions prend le contrôle du mouvement de l'axe correspondant.
Pour le mode hors mémoire tampon, les sorties Active et Busy peuvent avoir la même valeur.
Etats Enable et Valid
L'entrée Enable est couplée à une sortie Valid. L'entrée Enable dépend du niveau et la sortie Valid indique qu'un ensemble valide de sorties est disponible dans le bloc de fonctions.
La sortie Valid est VRAI tant qu'une valeur de sortie valide est disponible et que l'entrée Enable est VRAI. Il est possible d'actualiser la valeur de sortie correspondante tant que l'entrée Enable est VRAI.
Si une erreur survient au niveau du bloc de fonctions, la sortie n'est pas valide (la sortie Valid est définie sur FAUX). Lorsque la condition d'erreur disparaît, les valeurs réapparaissent et la sortie Valid est définie de nouveau.
Traitement des erreurs de sortie
Sorties utilisées pour définir les erreurs :
Tous les blocs disposent des deux sorties suivantes, qui sont utilisées pour les erreurs survenant lors de l'exécution :
  • Erreur : Le front montant « Erreur » indique qu'une erreur est survenue lors de l'exécution du bloc de fonctions.
  • ErrorID : Numéro de l'erreur.
les sorties Done et InVelocity sont utilisées pour une exécution réussie, elles excluent donc logiquement la sortie Error.
Les erreurs d'instance ne génèrent pas systématiquement une erreur au niveau de l'axe (elles attribuent l'état Arrêt suite à une erreur à l'axe).
Réinitialisation des sorties d'erreur :
  • Les sorties d'erreur des blocs de fonctions correspondants sont réinitialisées avec le front descendant des commandes Exécuter et Activer.
  • Les sorties d'erreur d'un bloc fonctionnel avec une commande Enable peuvent être réinitialisées lors de l'exécution, sans qu'une réinitialisation de la commande Enable ne soit nécessaire.
Types d'erreurs :
  • Logique des blocs fonctionnels (par exemple, paramètres hors limite, tentative d'infraction des machines à état, etc.)
  • Limites matérielles ou logicielles
  • Mécanisme/moteur
  • Variateur
Conventions de dénomination pour les types ENUM
En raison des contraintes de dénomination de la norme IEC au niveau de l'unicité des noms de variables, nous utiliserons la référence « mc » pour désigner l'espace de nom du contrôle de mouvement PLCopen pour les types ENUM.
De cette façon, nous sommes en mesure d'éviter un conflit au niveau de l'utilisation des types ENUM « positif » et « négatif » pour les instances disposant de variables portant ces noms dans le reste du projet puisque nous les appellerons mcPositive et mcNegative respectivement.
Fournir une réponse
Vous avez des questions ou des commentaires sur cette documentation ? Veuillez envoyer vos commentaires ici.
Normal