[Lancelot] Mode asynchrone un peu plus synchrone

 :: CFAO :: Lancelot

Aller en bas

[Lancelot] Mode asynchrone un peu plus synchrone

Message par Patrick82 le Mar 10 Avr 2018, 15:49

Ça faisait un moment que c'était dans les tuyaux, le suivi temps-réel à l'écran des mouvements de la machine est dans la mise à jour actuellement sur le site, datée d'aujourd'hui 22/11/2017.

Quelques mots d'explication : les contrôleurs CNC modernes ont une zone de mémoire locale qui peut contenir une pile d'instructions à exécuter, en général des vecteurs de mouvement. Au lieu d'envoyer chaque vecteur puis attendre qu'il soit exécuté puis acquitté avant d'envoyer le vecteur suivant, ce qui induit des temps morts et par conséquent des tracés saccadés, surtout en courbes, Galaad travaille en mode asynchrone, c'est-à-dire qu'il envoie la purée sur le port et le contrôleur les stocke dans cette mémoire tout en les exécutant pendant qu'il reçoit les suivants. Le résultat est un mouvement global fluide quel que soit le tracé, avec le calcul cinématique pour veiller à ce qu'on ne sorte pas de la route.

L'inconvénient du mode asynchrone est que Galaad sait quel vecteur il est en train d'envoyer, mais il ne sait pas quel vecteur précédent la machine est en train d'exécuter, d'où un curseur à l'écran qui avance par bonds et s'arrête quand la mémoire locale est pleine et qu'il faut attendre que son niveau baisse.

S'il n'y a pas de buffer de mémoire, c'est plus simple, le mouvement est saccadé mais l'affichage est synchrone puisque Galaad simule le mouvement à l'écran en attendant le retour de chaque acquittement.

Dans cette nouvelle mise à jour, Galaad utilise, par-dessus la communication normale, des fonctions spéciales de lecture immédiate des registres de position, afin de rafraîchir l'écran (curseur sur le dessin et coordonnées en bas). "Temps-réel" est un mot douteux puisque le monde de l'informatique est discontinu et tout est question de période de rafraîchissement. Alors justement, cette période est réglable pour ne pas surcharger la communication normale, ce qui induirait un bourrage et donc des saccades, exactement comme une vidéo qui va plus vite qu'elle n'est téléchargée. Priorité aux vecteurs, pas à l'opérateur qui n'a rien de mieux à faire que de reluquer son écran. On peut d'ailleurs la régler en fonction de la vitesse d'avance du tracé à usiner.

La vitesse du PC est sans importance ; c'est la vitesse de la communication avec la machine qui compte.

La mauvaise nouvelle est que cette fonction n'est active que sur les contrôleurs qui permettent une lecture immédiate des positions par-dessus la gestion du buffer, c'est-à-dire les AxeMotion NxtG (ou ceux plus anciens mais avec firmware 13.05 minimum) et les Soprolec InterpCNC-2 (pas les 1.5 désolé).

Dans les paramètres complets de la machine, onglet "Commande numérique", vous cliquez en haut sur l'option "Buffer mémoire locale..." (rappel : en appuyant sur [Ctrl] pour ne pas avoir à cliquer deux fois). Ça ouvre une sous-fenêtre avec de nouveaux réglages :

[Vous devez être inscrit et connecté pour voir cette image]

Les entrées critiques sont l'ouverture d'un capot de sécurité (tout le monde dans la salle en a un, n'est-ce pas ?) et d'autres éléments vitaux pour les torches à plasma, genre détection d'arc éteint, de buse en collision avec la tôle ou de THC qui part en rock'n roll. Les entrées normales ne sont pas concernées même si elles sont rafraîchies par la même occasion. Mais s'il n'y a pas d'entrée critique à surveiller, alors cette lecture ne se fait pas puisqu'elle ne sert à rien.

La lecture de position, qui nous intéresse ici, se fait un peu après le départ du buffer, pour ne pas lui piquer de la bande passante et lui laisser le temps de se remplir. Ce "un peu" est par défaut 1 seconde, pendant laquelle vous ne verrez pas bouger le curseur à l'écran. Mais comme c'est l'axe Z qui est en train de descendre à ce moment-là, c'est pas scandaleux.

L'intervalle de lecture ne peut pas être inférieur à 20 ms. De toute façon, Windows a une granulosité de 16 ms sur les timers usuels, donc ça ne servirait à rien et vous ne verriez pas la différence à l'écran, vos yeux ne sont pas aussi rapides. Si vous mettez 0 ms aux deux valeurs de lecture de position, alors il n'y aura pas de suivi temps-réel à l'écran et vous êtes alors dans le mode classique utilisé jusqu'à présent : le curseur et les coordonnées suivent la transmission.

Testé sur AxeMotion iMC-M/P, AxeMotion PulseBox/PulseMaker NxtG et Soprolec InterpCNC 2.1 sans problème. Enfin si, plein de problèmes, mais résolus un par un. C'est beaucoup plus agréable à l'œil, c'est un fait. Que ça ne vous retienne pas devant votre écran : Galaad est censé usiner pendant que vous êtes parti uriner.

avatar
Patrick82
Admin

Messages : 49
Date d'inscription : 21/03/2018
Age : 36
Localisation : LABASTIDETTE

Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 :: CFAO :: Lancelot

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum