Retrofit petite Realmeca avec cartes MESA

  • Auteur de la discussion Laurent_CNC
  • Date de début
M

matt07600

Apprenti
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.
 
M

matt07600

Apprenti
Je le place où stp, à la place de if ( coltc(j) ) { touch( ((Line_Select+1)*(j+1)-1) ) = 1; }?
 
M

matt07600

Apprenti
nickel cncserv, ça marche, ou je peut trouver des infos sur ce langage?
@+
 
M

matt07600

Apprenti
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:
G

gaston48

Compagnon
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:
V

vres

Compagnon
((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.
 
G

gaston48

Compagnon
Ah oui en effet, j'ai fait des produit en croix, en partant de 8 x 11, ça va pas du tout ...
 
M

matt07600

Apprenti
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
 
M

matt07600

Apprenti
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...
 
G

gaston48

Compagnon
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:
G

gaston48

Compagnon
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:
M

matt07600

Apprenti
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.
 
G

gaston48

Compagnon
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:
V

vres

Compagnon
Il doit y avoir une erreur dans la conversion
C'est OK en adaptant l'ordre d'initialisation du tableau aussi ? c'est pas normal
quand même .

Non ce n'est pas normal, ce qui est surprenant c'est que l'override soit bon.
 
M

matt07600

Apprenti
Bonjour, ce matin j'ai connecté les Leds, elles clignotent toutes, sauf celle qui devrait s'allumer qui reste éteinte.
bon dimanche
 
G

gaston48

Compagnon
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:
M

matt07600

Apprenti
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).
@+
 
G

gaston48

Compagnon
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
 
V

vres

Compagnon
Pour allumer une Led il faut activer une ligne et une colonne.
 
G

gaston48

Compagnon
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

D
Réponses
33
Affichages
823
dh42
P
Réponses
51
Affichages
2 728
pro-ms
P
esloch
Réponses
52
Affichages
1 866
esloch
esloch
furynick
Général Peugeot PSE20
Réponses
61
Affichages
2 304
midodiy
midodiy
R
Réponses
1
Affichages
983
Hales
Hales
Haut