This documentation is no longer maintained. For documentation of the current version of emc2, please see http://www.linuxcnc.org/docview/html

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