Contrôle de mouvement

Concept de tâche

Le contrôleur exécute l'application dans laquelle les blocs fonction de contrôle de mouvement sont appelés dans une tâche distincte de la tâche de mouvement en temps réel, où les profils de mouvement sont calculés et où s'effectue la communication Sercos. Ces deux tâches peuvent avoir différents temps de cycle. Le temps de cycle de la tâche de l'application utilisateur est en général de 10 ms, mais des cycles plus courts jusqu'à 1 ms sont possibles. La tâche temps réel fonctionne avec des temps de cycle de 1 ms, 2 ms ou 4 ms, selon le cycle de temps Sercos et la configuration de la machine (type de contrôleur, nombre d'axes, etc.).

Cette distinction apporte des avantages en termes d'amélioration des performances. L'application utilisateur peut être exécutée aussi lentement que possible, par exemple, pour permettre les opérations du système de fichier ou la communication réseau. Les tâches de gestion d'événements, de prise de décision, et de traitement des commandes de l'application (en général moins urgentes) peuvent être effectuées dans cette tâche plus lente. Cependant les modifications du profil de mouvement peuvent être effectuées à la vitesse maximale en exécutant et en mettant en mémoire tampon les blocs fonction à l'avance.

Cette méthode éprouvée est également utilisée par les systèmes Schneider Electric PacDrive.

Les programmeurs connaissant les systèmes tels que SoftMotion (qui exécutent l'application utilisateur dans le processus temps réel) et la programmation PLCopen standard devront revoir quelques pratiques courantes pour optimiser cette méthode. La méthode habituelle en programmation PLCopen est d'attendre qu'un bloc fonction se termine (par exemple, sorties Done, inVelocity, EndOfProfile, InGear) et utilise les signaux correspondants pour exécuter le bloc fonction suivant.

Pour obtenir le mouvement prévu sans sauts intempestifs (en particulier avec des valeurs de vitesse et/ou d'accélération différentes de zéro à la fin d'une tâche de mouvement), les blocs fonction doivent être exécutés à l'avance avec MC_Buffer_Mode défini sur Buffered. Ainsi le profil de mouvement d'un bloc fonction devient actif dans le même cycle temps réel où se termine un bloc fonction précédent.

Si vous déclenchez le démarrage (Execute) du bloc fonction suivant via, par exemple, le signal EndOfProfile du bloc fonction précédent au lieu de le mettre en mémoire tampon, après un ou plusieurs cycles de retard aucun bloc fonction n'est actif et l'axe reste immobile jusqu'à ce que le cycle de tâche d'application suivant démarre le bloc fonction suivant.

Axis_Ref

Comme défini par PLCopen, un Axis_Ref est utilisé comme entrée des blocs fonction de contrôle mouvement pour définir l'axe à utiliser comme axe maître ou axe esclave pour ce bloc fonction.

Le Modicon M262 Motion Controller fournit trois types d'implémentations pour le Axis_Ref :

  • Axe de variateur

    Axe de variateur fourni, notamment, par le variateur LXM32S ou l'objet équipement variateur Sercos générique. Il peut être accessible par exemple via DRV_X.Axis. Un axe de variateur peut être utilisé comme axe maître ou axe esclave pour tout bloc fonction avec une entrée correspondante. Les valeurs de position, de vitesse et/ou d'accélération d'un axe de variateur sont en général les valeurs cibles. L'unique exception est lorsque le Modicon M262 Motion Controller ne contrôle pas le mouvement de l'axe (par exemple, lors du placement en position d'origine, lors d'un arrêt autonome exécuté par le variateur, ou lorsque l'étage de puissance du variateur est désactivé). Dans ces conditions, la position de l'axe est la position de retour et les valeurs de vitesse et d'accélération sont calculées à partir de la position de retour. Un axe esclave peut suivre un axe maître même lorsque l'axe maître n'est pas contrôlé par le Modicon M262 Motion Controller.

  • Axe virtuel

    Un axe virtuel représente, par exemple, un arbre de machine virtuel, ou tout autre axe intermédiaire pour les relations complexes entre les axes maître et esclave. Un axe virtuel peut être créé en déclarant un VAR de type FB_ControlledAxis n'importe où dans l'application. Un axe virtuel peut être un axe maître ou un axe esclave pour tout bloc fonction avec l'entrée correspondante.

    Le Modicon M262 Motion Controller ne limite pas le nombre d'axes virtuels. Cependant, tenez compte de l'impact d’un axe virtuel sur les performances du Modicon M262 Motion Controller, comparable à un axe de variateur.

  • Axe d'entrée du codeur

    Un axe d'entrée de codeur est fourni par l'entrée du codeur intégré de Modicon M262 Motion Controller. Un axe d'entrée de codeur peut être utilisé comme axe maître uniquement, pas comme un axe d'esclave. Les valeurs de retour fournies par le codeur sont utilisées comme position de l’axe maître.

Si un axe maître devient indisponible (par exemple, le codeur est déconnecté ou inactif), tout axe esclave suivant ce maître passe à l'état de fonctionnement PLCopen ErrorStop. Pour arrêter les esclaves de façon synchrone dans ce cas, implémentez un axe virtuel intermédiaire entre les axes.

Si l'axe maître devient indisponible, l'axe virtuel intermédiaire passe à l'état de fonctionnement PLCopen ErrorStop. Les axes qui suivent l'axe intermédiaire restent à l'état de fonctionnement PLCopen SynchronizedMotion et continuent à suivre l'axe virtuel intermédiaire durant la rampe de décélération.

Configuration d'axe

Le Modicon M262 Motion Controller prend en charge les deux types d'axe requis pour PLCopen :

  • Axe modulo

  • Axe linéaire/fini (avec ou sans limites de mouvements)

Un axe est configuré en appelant la méthode correspondante de Axis_Ref.

Le modulo d'un axe défini comme axe modulo est pris en compte quel que soit l'état de la tâche ou de l'axe (par exemple, même lorsque l'axe est désactivé).

Il n'y a pas nécessairement une relation entre l'axe modulo et la période d'application de la came (dans le sens X ou Y), même si la came est lancée en mode absolu. Pour plus d'informations, consultez la description du bloc fonction.

La position de référence et la position sont du même côté du saut modulo. Par exemple, dans le cas du déplacement d'un axe vers l’avant avec le modulo 360, la valeur de la position peut être -2 (au lieu de 358) lorsque la position de référence est 1.

Position absolue, placement en position d'origine, mouvements absolus

Après un redémarrage, un axe de variateur ou un axe de codeur restaure sa position absolue à partir de la position stockée sur le codeur. Cela est obtenu en multipliant la position du codeur par le facteur de réduction du variateur et en rapportant la valeur à la position du modulo, si vous utilisez un axe modulo. Cependant, le contrôleur ne peut pas vérifier que cette position absolue restaurée est correcte. Il se peut que la position ne soit pas correcte si, par exemple, la position mécanique a été modifiée (par exemple : après remplacement du moteur, du codeur, et/ou du réducteur, ou en cas de mouvements manuels lors de la mise hors tension). De plus, l'amplitude de mouvement de l'axe doit être mécaniquement restreinte pour être inférieure à un débordement du codeur. Vous devez également sélectionner le rapport de réduction d'un réducteur mécanique et/ou le facteur de réduction du variateur de façon à permettre la résolution de la position du codeur de la période du codeur sur un multiple entier de la période d'application.

Pour éviter les conditions de positions absolues incorrectes, le Modicon M262 Motion Controller restaure la position absolue, mais ne considère pas automatiquement l'axe ou les axes en position d'origine. Un axe est considéré comme de retour à sa position d'origine après l'exécution correcte du bloc fonction MC_Home ou MC_SetPosition (avec Relative lorsque l’application du contrôleur règle l'indicateur isHomed sur TRUE.

 AVERTISSEMENT
FONCTIONNEMENT IMPREVU DE L'EQUIPEMENT
  • Vérifiez que l'axe a été correctement placé en position d'origine après chaque redémarrage et après chaque intervention manuelle, et avant d'exécuter tout mouvement.
  • Vérifiez que l'axe a été correctement placé en position d'origine avant d'exécuter tout type de mouvement absolu.
  • Ne réglez pas l'indicateur isHomed sur TRUE dans l'application du contrôleur sauf si vous avez effectué et vérifié par des moyens adéquats que la position absolue restaurée est correcte.
  • Lisez attentivement toute la documentation pertinente de chaque logiciel et équipement utilisé dans l'application ou le processus.
Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels.

Calcul de position et amplitude de mouvement avec nombres à virgule flottante

Le Modicon M262 Motion Controller utilise des nombres en virgule flottante pour les positions d'axe absolues. Pour les nombres en virgule flottante, la résolution (absolue) décroit au fur et à mesure que les nombres s'éloignent de zéro. D'autre part, la position d'un variateur est représentée par des nombres entiers (incréments codeur), donc la résolution reste constante, quel que soit l'éloignement du nombre par rapport à zéro. Au fil du temps, cela réduit la précision du contrôle, puis aboutit à l'arrêt de l'axe après détection d'une erreur, même si la résolution en virgule flottante reste suffisante.

 AVERTISSEMENT
FONCTIONNEMENT IMPREVU DE L'EQUIPEMENT
  • Utilisez le type modulo pour un axe qui se déplace dans une seule direction et incrémente continuellement sa position, par exemple l'axe d'un convoyeur.
  • N'utilisez le type d'axe linéaire/fini que pour les axes avec amplitudes de mouvement physiquement limitées, par exemple avec un commutateur de fin de course.
Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels.