MC_CustomJob

Description fonctionnelle

Ce bloc fonction permet de contrôler un axe via un algorithme personnalisé qui calcule les valeurs cycliques de la position, la vitesse et l'accélération de l'axe dans le code de l'automate.

Le bloc fonction que vous avez créé pour programmer un profil de mouvement doit étendre FB_CustomJobBase de la bibliothèque MotionInterface. Alors le bloc fonction est fourni sous l'entrée CustomJob.

Nom de bibliothèque et espace de noms

Nom de la bibliothèque : PLCopen MC part 1

Espace de noms : PLCO

Représentation graphique

G-SE-0076976.1.gif-high.gif

 

 

Entrées

Entrée

Type de données

Description

Master

Axis_Ref

Référence à l'axe pour lequel le bloc fonction doit être exécuté.

Peut rester non attribué si la tâche personnalisée (fournie à l'entrée CustomJob) n'utilise pas un axe maître.

Si un axe est attribué, le rappel du bloc fonction utilisateur pour définir le profil de mouvement permet d'obtenir les valeurs de mouvement de l'axe maître. Sinon, les valeurs indiquées pour le mouvement de l'axe maître sont égales à zéro.

Axis

Axis_Ref

Référence à l'axe pour lequel le bloc fonction doit être exécuté.

Execute

BOOL

Plage de valeurs : FALSE, TRUE.

Valeur par défaut : FALSE.

Un front montant de l'entrée Execute démarre le bloc fonction. Le bloc fonction poursuit son exécution et la sortie Busy prend la valeur TRUE.

Ce bloc fonction peut être redémarré en cours d'exécution. Les valeurs cibles sont remplacées par de nouvelles valeurs lorsque se produit le front montant.

BufferMode

MC_Buffer_Mode

Les valeurs cibles (position, vitesse, accélération) de l'axe sont remplacées par les nouvelles valeurs dans le cycle de tâche de mouvement lorsque le bloc fonction est activé sur l'axe.

Valeur par défaut : Aborting

Mode de tampon.

Valeurs possibles :

oValeur Aborting

oValeur Buffered

Voir la description des valeurs dans MC_Buffer_Mode.

CustomJob

MOIN.FB_CustomJobBase

Instance de bloc fonction créé par l'utilisateur qui doit être dérivé de FB_CustomJobBase. Vous pouvez configurer l'instance de bloc fonction avec des paramètres supplémentaires (par exemple : position cible, vitesse, accélération, jigue, etc.) selon les exigences de l'algorithme utilisé par la tâche personnalisée.

Remplacer les méthodes suivantes :

oCalculateMovement

oPrepare

oResetJob

Ne remplacez-pas les autres méthodes de ce bloc fonction.

Sorties

Sortie

Type de données

Description

InSteadyState

BOOL

Plage de valeurs : FALSE, TRUE.

Valeur par défaut : FALSE, comme indiqué par la tâche personnalisée

oFALSE : l'état stable n'est pas encore atteint ou une erreur a été détectée.

oTRUE : état stable atteint. De cette façon, la tâche personnalisée signale qu'une tâche en mémoire tampon peut devenir active.

Busy

BOOL

Plage de valeurs : FALSE, TRUE.

Valeur par défaut : FALSE, comme indiqué par la tâche personnalisée

oFALSE : le bloc fonction n'est pas exécuté.

oTRUE : le bloc fonction est en cours d'exécution.

Active

BOOL

Plage de valeurs : FALSE, TRUE.

Valeur par défaut : FALSE.

oFALSE : le bloc fonction ne contrôle pas le mouvement de l'axe.

oTRUE : le bloc fonction contrôle le mouvement de l'axe.

CommandAborted

BOOL

Plage de valeurs : FALSE, TRUE.

Valeur par défaut : FALSE.

oFALSE : l'exécution n'a pas été interrompue.

oTRUE : l'exécution a été interrompue par un autre bloc fonction.

Error

BOOL

Plage de valeurs : FALSE, TRUE.

Valeur par défaut : FALSE.

oFALSE : bloc fonction en cours d'exécution, aucune erreur détectée durant l'exécution.

oTRUE : une erreur a été détectée pendant l'exécution du bloc fonction.

ErrorID

ET_Result

Cette énumération fournit des informations de diagnostic.

Remarques

Si un axe est fourni pour l'entrée maître, les nouvelles valeurs cibles ou les valeurs de référence de l'axe maître du cycle temps réel sont calculées avant le déclenchement de MC_CustomJob. Cela signifie que l'implémentation de la tâche personnalisée obtient des valeurs mises à jour (recalculées du cycle temps réel) à partir de l'axe maître lorsqu'il est appelé pour calculer les valeurs de l'axe esclave.

Valeurs possibles de ET_Result

ErrorId

Cause

Correctif

AxisInErrorStop

Le bloc fonction ne peut pas être exécuté car une erreur d'axe a été détectée et l'axe est à l'état ErrorStop.

Vérifiez que l'axe n'est pas à l'état ErrorStop lors de la tentative de lancement d'un nouveau bloc fonction.

AxisIsDisabled

Le bloc fonction ne peut pas être exécuté car l'axe est à l'état Disabled.

Vérifiez que l'axe n'est pas à l'état Disabled lors de la tentative de lancement d'un nouveau bloc fonction.

AxisIsStopping

Le bloc fonction ne peut pas être exécuté car un bloc fonction MC_Stop est actif et l'axe est à l'état Stopping.

Vérifiez que l'axe n'est pas à l'état Stopping lors de la tentative de lancement d'un nouveau bloc fonction.

AxisNotHomed

L'axe n'est pas en position d'origine (indicateur xHomed de l'axe : FALSE).

Mettez l'axe en position d'origine pour obtenir un point zéro valide pour démarrer un mouvement par rapport au point zéro.

BufferModeInvalid

Une valeur différente de MC_Buffer_Mode.Aborting ou MC_Buffer_ModeBuffered a été fournie à l'entrée BufferMode.

Indiquez la valeur BufferModeInput pour MC_Buffer_Mode.Aborting ou MC_Buffer_Mode.Buffered (si aucune valeur n'a été fournie, MC_Buffer_Mode.Aborting est utilisé).

BufferSaturated

Le nombre maximal de blocs fonction pouvant être placé en mémoire tampon pour l'axe est atteint.

Mettez en mémoire cache un seul bloc pour un axe en tout point dans le temps.

InternalErrorInCyclicCalculation

FB_CustomJobBAse a renvoyé une valeur LREAL non valide.

Corrigez votre implémentation de FB_CustomJobBAse afin qu'il ne renvoie pas de valeur LREAL non valide (l'infini et NaN (Not a Number) ne sont pas des valeurs LREAL valides).

NoBusCommunication

Le bus de terrain n'est pas à l'état Operational (Sercos : phase 4).

Vérifiez que le bus de terrain est à l'état Operational (Sercos : phase 4) au front montant de l'entrée Execute et durant l'exécution.

NotSupportedWithFeedbackAxis

Commande non autorisée durant l'exécution de travail personnalisé.

Implémentez les fonctions pour MC_CustomJob dans l'application du contrôleur de mouvement (Motion Controller).

OutOfMemory

Mémoire insuffisante pour la commande de mouvement.

Réduisez la mémoire requise par votre application.

UnexpectedReturnValue

Valeur de retour du système indéterminable.

Contactez le représentant Schneider Electric.