Table des matières
1 EMC2 et HAL
Voir également les pages motion(9) et iocontrol(1) du manuel.
1.1 motion (realtime)
Ces pins, paramètres et fonctions sont créés par le module temps réel “motmod”.
1.1.1 Pins
- motion.adaptive-feed IN float
- Quand la vitesse est placée en mode adaptatif avec M52 P1 la vitesse commandée est multipliée par cette valeur. Cet effet est multiplicatif avec motion.feed-hold et la valeur du correcteur de vitesse du niveau NML.
- motion.digital-out-NN OUT bit
- Ces pins sont controlées par les mots M62 jusqu'à M65.
- motion.enable IN bit
- Si ce bit devient FALSE, les mouvements s'arrêtent, la machine est placée dans l'état “machine arrêtée” et un message est affiché pour l'opérateur. Pour un fonctionnement normal, ce bit sera TRUE.
- motion.feed-hold IN bit
- Quand la vitesse est placée en mode arrêt contrôlé avec M53 P1 et que ce bit est TRUE, la vitesse est fixée à 0.
- motion.motion-inpos OUT bit
- TRUE si la machine est en position.
- motion.probe-input IN bit
- G38.x utilise la valeur de cette pin pour déterminer quand la sonde de mesure entre en contact. TRUE le contact de la sonde est fermé (touche), FALSE le contact de la sonde est ouvert.
- motion.spindle-brake OUT bit
- TRUE quand le frein de broche doit être activé.
- motion.spindle-forward OUT bit
- TRUE quand la broche doit tourner en sens horaire.
- motion.spindle-reverse OUT bit
- TRUE quand la broche doit tourner en sens anti-horaire.
- motion.spindle-on OUT bit
- TRUE quand la broche doit tourner.
- motion.spindle-speed-out OUT float
- Consigne de vitesse de rotation de la broche, exprimée en tours par minute.
- motion.spindle-index-enable I/O bit
- Pour les mouvements avec broche synchronisée, ce signal doit être raccordé à la broche “index-enable” du codeur de broche.
- motion.spindle-revs IN float
- Pour les mouvements avec broche synchronisée, ce signal doit être raccordé à la broche “position” du codeur de broche.
1.1.2 Paramètres
Beaucoup de ces paramètres servent d'aide au déboguage et sont sujets aux changements ou au retrait à tout moment.
- motion.coord-error
- TRUE quand le mouvement est en erreur, ex: dépasser une limite soft.
- motion.coord-mode
- TRUE quand le mouvement est en “mode coordonnées” par opposistion au “mode téléopération”.
- motion.in-position
- Identique à la pin: motion.motion-inpos.
- motion.motion-enabled
- TRUE quand le mouvement est activé.
- motion.servo.last-period
- Le nombre de cycle du processeur entre les invoquations du thread servo. Typiquement, ce nombre divisé par la vitesse du processeur donne un temps en secondes. Il peut être utilisé pour determiner si le contrôleur de mouvement en temps réel respecte ses contraintes de timing.
- motion.servo.overruns
- En voyant de grandes différences entre les valeurs successives de motion.servo.last-period, le contrôleur de mouvement peut déterminer qu'il a eu un échec pour respecter ses contraintes de timing. Chaque fois qu'une erreur est détectée, cette valeur est incrémentée.
- motion.debug-bit-0
- motion.debug-bit-1
- motion.debug-float-0
- motion.debug-float-1
- Ces valeurs sont utilisées pour le déboguage.
1.1.3 Fonctions
Généralement, ces fonctions sont toutes les deux ajoutées à servo-thread dans l'ordre suivant:
- motion-command-handler
- Processus des commandes de mouvement provenant de l'interface utilisateur.
- motion-controller
- Lance le contrôleur de mouvement d'emc.
1.2 axis.N (temps réel)
Ces pins et paramètres sont créés par le module temps réel “motmod”. Ce sont en fait des valeurs d'articulations, mais les pins et les paramètres sont toujours appelés “axis.N”.1 Ils sont lus et mis à jour par la fonction motion-controller.
1.2.1 Pins
- axis.N.amp-enable-out OUT bit
- TRUE si l'ampli de cet axe doit être activé.
- axis.N.amp-fault-in IN bit
- Doit être mis TRUE si une erreur externe est détectée sur l'ampli de cet axe.
- axis.N.home-sw-in IN bit
- Doit être mis TRUE si le contact d'origine de cet axe est pressé.
- axis.N.homing OUT bit
- TRUE si la prise d'origine de cette axe a été faite.
- axis.N.pos-lim-sw-in IN bit
- Doit être mis TRUE si le fin de course de limite positive de cet axe est activé.
- axis.N.neg-lim-sw-in IN bit
- Doit être mis TRUE si le fin de course de limite négative de cet axe est activé.
- axis.N.index-enable IO BIT
- Doit être reliée à la broche “index-enable” du codeur de cet axe pour activer la prise d'origine sur l'impulsion d'index.
- axis.N.jog-counts IN s32
- Connection à la broche “counts” d'un codeur externe utilisé comme manivelle.
- axis.N.jog-enable IN bit
- Quand elle est TRUE (et en mode manuel), tout changement dans “jog-counts” se traduira par un mouvement. Quand elle est FALSE, “jog-counts” sera ignoré.
- axis.N.jog-scale IN float
- Fixe la distance, en unités machine, du déplacement pour chaque évolution de “jog-counts”.
- axis.N.jog-vel-mode IN bit
- Quand elle est FALSE (par défaut), la manivelle fonctionne en mode position. L'axe se déplace exactement selon l'incrément de jog sélectionné pour chaque impulsion, sans s'occuper du temps que prendra le mouvement. Quand elle est TRUE, la manivelle fonctionne en mode vitesse. Le mouvement s'arrête quand la manivelle s'arrête, même si le mouvement commandé n'est pas achevé.
- axis.N.motor-pos-cmd OUT float
- La position commandée pour cet axe.
- axis.N.motor-pos-fb IN float
- La position actuelle de cet axe.
- axis.N.joint-pos-cmd
- Position commandée de l'axe (par opposition à celle du moteur). Il peut y avoir un décalage entre la position de l'axe et celle du moteur, par exemple, le processus de prise d'origine peut ajuster cet écart.
- axis.N.joint-pos-fb
- Le retour de position (par opposition à celui du moteur).
1.2.2 Paramètres
Beaucoup de ces paramètres servent d'aide au déboguage et sont sujets aux changements ou au retrait à tout moment.
- axis.N.active
- TRUE quand cet axe est actif.
- axis.N.backlash-corr
- Valeur brute de ratrappage de jeu.
- axis.N.backlash-filt
- Valeur filtrée de ratrappage de jeu (respect des limites de mouvement).
- axis.N.backlash-vel
- Vitesse de ratrappage de jeu.
- axis.N.coarse-pos-cmd
- axis.N.error
- TRUE quand une erreur ce produit sur cet axe, ex: une limite de course est atteinte.
- axis.N.f-error
- Erreur de suivi actuelle.
- axis.N.f-error-lim
- Limite d'erreurs de suivi.
- axis.N.f-errored
- TRUE quand cet axe à dépassé la limite d'erreurs de suivi.
- axis.N.free-pos-cmd
- Position commandée en “free planner” pour cet axe.
- axis.N.free-tp-enable
- TRUE quand le “free planner” est activé pour cet axe.
- axis.N.free-vel-lim
- Vitesse limite en “free planner”.
- axis.N.home-state
- Refète l'étape de la prise d'origine en cours actuellement.
- axis.N.homed
- TRUE si la prise d'origine de cet axe a bien été réalisée.
- axis.N.in-position
- TRUE si cet axe, utilisant le “free planner”, a atteint un arrêt.
- axis.N.joint-vel-cmd
- Vitesse commandée des axes.
- axis.N.neg-hard-limit
- Fin de course de limite d'axe négative.
- axis.N.neg-soft-limit
- Limite soft négative de cet axe.
- axis.N.pos-hard-limit
- Fin de course de limite d'axe positive.
- axis.N.pos-soft-limit
- Limite soft positive de cet axe.
1.3 iocontrol (espace utilisateur)
Ces pins sont créées par le contrôleur d'entrées/sorties de l'espace utilisateur, habituellement appelé “io”.
1.3.1 Pins
- iocontrol.0.coolant-flood
- TRUE quand l'arrosage est demandé.
- iocontrol.0.coolant-mist
- TRUE quand le brouillard est demandé.
- iocontrol.0.emc-enable-in
- Doit être mise FALSE quand un arrêt d'urgence externe est enfoncé.
- iocontrol.0.lube
- TRUE quand le graissage centralisé est commandé.
- iocontrol.0.lube_level
- Doit être mise TRUE quand le niveau d'huile est assez haut.
- iocontrol.0.tool-change
- TRUE quand un changement d'outil est demandé.
- iocontrol.0.tool-changed
- Doit être mise TRUE quand le changement d'outil est terminé.
- iocontrol.0.tool-prep-number
- Numéro du prochain outil, donné dans le mot T selon RS274NGC.
- iocontrol.0.tool-prepare
- TRUE quand une préparation d'outil est demandée.
- iocontrol.0.tool-prepared
- Doit être mise TRUE quand une préparation d'outil est terminée.
- iocontrol.0.user-enable-out
- FALSE quand un arrêt d'urgence interne est enfoncé.
- iocontrol.0.user-request-enable
- TRUE quand l'utilisateur relâche l'arrêt d'urgence.
Index
Pieds de page
1
Dans une machine à “cinématique triviale”, il y a correspondance une pour une, entre les articulations et les axes.
NDT: nous utilisons dans cette traduction le terme “axe”, dans le cas d'une cinématique non triviale il devra être remplacé par le terme “articulation” (joint). Retour