Retrofit petite Realmeca avec cartes MESA

  • Auteur de la discussion Auteur de la discussion Laurent_CNC
  • Date de début Date de début
Bonjour Gaston, avec le halscope je vois les changements d'états pour les colonnes mais pas pour les touches,
Je n'arrive pas à être certain de la coordonné programme d'une touche, je crois comprendre que ça se passe ici:
if ( coltc(j) ) { touch( ((Line_Select+1)*(j+1)-1) ) = 1 ; } mais je comprends pas trop, j'en ai scruté plusieurs sans résultat.
 
Merci Cncserv,
J'ai donc toutes mes touches qui fonctionnent à l'exception de celles qui sont sur la colonne 8, je vois pourtant le changement d'état de cette colonne (realkbcs.0.coltc7) dans le halscope.
 
Dernière édition:
Bonsoir,
cncserv, le loup c'est le fait de ne pas avoir initialisé la touche à 0 avec le else ?
ou il manquait une parenthèse
 
Dernière édition:
((Line_Select+1)*(j+1)-1)


C'est ce calcul que je n'ai pas compris, l'indexation du tableau n'est pas bonne:

pour la ligne 1 et la colonne 2 ça donne( (0+1 )* ( 1+1) -1= 1

pour la ligne 2 et la colonne 1 ça donne( (1+1 )* ( 0+1) -1= 1 aussi

Et effectivement la touche n'était pas initialisée à zéro si coltc(j) est faux.
 
Bonjour, j'ai donc toutes les touches qui fonctionnent, pour que le résultat des commutateurs corresponde avec le pupitre j'ai dut mettre:
// récupération de la position du commutateur 1
Index_Commut1 = ((int)coltc(4)) + ((int)coltc(5)<<1) + ((int)coltc(6)<<2) + ((int)coltc(7)<<3);
// récupération de la position du commutateur 2
Index_Commut2 = ((int)coltc(0)) + ((int)coltc(1)<<1) + ((int)coltc(2)<<2) + ((int)coltc(3)<<3);

puis:
float Tab_Value_Manivelle[16] = {100,0,0,0,0,0,0,0,1,0,0,0,0,0,0,10};
float Tab_Value_Increment[16] = {0,0,1e6,10000,10,0,0,1,0,0,11,100,1000,0,0,0};

je ne sais pas si il faut faire comme ça mais je n'ai pas trouvé d'autre solution.
on a donc les touches et les commutateurs qui fonctionnent, reste plus que les Leds, on a bien avancé.
bon week end
 
Non, tout est ok maintenant.
Je suis en train d'essayer d'exploiter des touches avec des entrées "halui" sans succès pour le moment, je te tiens au courant...
 
C'est OK en adaptant l'ordre d'initialisation du tableau aussi ? c'est pas normal
quand même .
Concernant les touches de clavier, il n'est pas exclu qu'on soit obligé aussi d'inclure
un code pour supprimer les anti-rebond.
Il y a un composant tout fait mais il est très complexe, on peut difficilement copier
le code.
http://git.linuxcnc.org/gitweb?p=li...70a9a6dc4f84e1e354d8f8869b2bc388c1ea0;hb=HEAD

Pour halui tu peux travailler sur la commande on off machine avec le retour led on

Machine
halui.machine.is-on (bit, out) - indicates machine on
halui.machine.off (bit, in) - pin for requesting machine of
halui.machine.on (bit, in) - pin for requesting machine on

Si ta commande est exécuté par une seule touche il faudra intercaler un toggle
avec ce composant:
http://linuxcnc.org/docs/2.7/html/man/man9/toggle2nist.9.html
 
Dernière édition:
Ah bon, qu'est ce qu'il a ce premier commutateur alors ?

Mon exemple précédent halui n'etait peut être pas une bonne idée pour débuter,
cette commande halui est déjà un flip flop (j'ai corrigé)
halui.machine.off (bit, in) - pin for requesting machine off est une entrée reset
halui.machine.on (bit, in) - pin for requesting machine on est une entrée set
un impulsion suffit pour ON (set) mais pour arrêter il faut obligatoirement une impulsion
sur OFF (reset).
 
Dernière édition:
pour le moment j'ai ça qui fonctionne:
net realtouch52 halui.mode.mdi <= realkbcs.0.touch52
net realtouch53 halui.mode.manual <= realkbcs.0.touch53
j'ai fait des essais pour les touches de mouvements d'axes mais je penses qu'il y a plusieurs choses a déclarer,puis il y a les rapides, la prise en compte de l'override...
meme pour le lubrifiant je n'y arrive pas.
 
L'arrosage, c'est pareil, ce sont 2 commandes flip flop.
Avec une seule touche il faut donc passer par le composant suivant;
http://linuxcnc.org/docs/2.7/html/man/man9/toggle2nist.9.html

mais attention aux rebonds d'un touche.
Avec ce composant:
http://linuxcnc.org/docs/2.7/html/man/man9/toggle.9.html
on a un code de debounce plus simple qu'on pourrait intégrer dans realkbcs

http://git.linuxcnc.org/gitweb?p=li...231580036d6edc146a28665de91ba31a16a0d;hb=HEAD

http://wiki.linuxcnc.org/cgi-bin/wiki.pl?One_Button_Run/Resume
 
Dernière édition:
Bonjour, ce matin j'ai connecté les Leds, elles clignotent toutes, sauf celle qui devrait s'allumer qui reste éteinte.
bon dimanche
 
Bonjour,
Ah ça c'est une bonne nouvelle!
sauf erreur, il faut mettre à 1 ces 3 lignes
Tout dépend si on considère la commande de la base du "collecteur ouvert"
ou la tension de sortie au collecteur. #224

colld(0) = 0;
colld(1) = 0;
colld(2) = 0;

Bon dimanche à toi aussi !
 
Dernière édition:
les Leds ne clignotent plus mais elles ne s'allument pas non plus , pour tester j'ai mis:net realled12 halui.mode.is-manual => realkbcs.0.led12. toute a l'heure avec cette ligne j'avais une Led qui resté éteinte (j'avais éssayé avec plusieur no de Led).
@+
 
Essaye d'abord d'activer directement une led:
setp realkbcs.0.led12 = 1

mais si tout a été allumé, c'est que le "courant passe" entre les gpio
 
remet # 323 à 0 alors
et teste si la led12 ou une autre est bien éteinte sélectivement setp realkbcs.0.led12 1
pour être certain que l’adressage fonctionne
 

Sujets similaires

L
Réponses
55
Affichages
2 211
rabotnuc
R
V
Réponses
12
Affichages
1 016
vibram
V
Castor24
Réponses
4
Affichages
615
Castor24
Castor24
part's-and-co
Réponses
22
Affichages
2 446
part's-and-co
part's-and-co
Retour
Haut