macro rotation tourelle

  • Auteur de la discussion adriboss
  • Date de début
A

adriboss

Ouvrier
bonjour

pour le retrofit de mon tour je calle sur la macro pour la tourelle.

la tourelle est pilotée par un moteur 24v dc et il y a 2 switch, 1 pour la ref et l'autre s'active a chaque passage d'outil (comptage) et ensuite petit retour dans l'autre sens pour bien calé la tourelle contre la butée mecanique.

comment peut on faire dans mach3?

il faudrait que la tourelle tourne pour prendre sa ref et ensuite elle tourne pour choisir l'outil voulu.

si outil 2 par exemple il faudrait que le switch de comptage se declenche 2 fois

j'arrive a faire la ref et a faire une indexation mais des que le switch de comtage est activé je ne peut plus rien faire.
il faudrait que le switch s'active, incremente un compteur ,se desactive et rotation tourelle pour une indexation de plus et rebelotte.

du genre


active signal outpout 1 'rotation tourelle pour ref
jusque input 1 actif 'ref tourelle

outil voulu =2 par expemple

active outpout 1 rotation tourelle
jusque signal input 1
increment comteur de +1

ect


quelqu'un aurait une idee
IMG_20170925_184310.jpg
 
A

adriboss

Ouvrier
personne ?

quel code faut il envoyer pour incrementer un compteur?
 
D

dh42

Compagnon
Salut,

Je suppose que tu peux utiliser une variable interne de Mach3 comme compteur et utiliser SetVar et GetVar pour lire écrire ta variable.

Sub SetVar(VarNum As Integer, Val As Double)

ex, supposons que tu utilise une variable n° 1200

SetVar(1200,0) mettra 0 dans ta variable.

GetVar(1200) retournera la valeur de la variable 1200

SetVar(1200, GetVar(1200) + 1)

Ajoutera 1 à la valeur de var 1200

Comme il y a un nb fini d'outil, tu peux utiliser l'opérateur modulo ; par exemple modulo 4 autorisera les valeurs de 0 à 3, et si tu ajoute encore 1, au lieu d'avoir 4, tu retourne à 0, ce qui évite de faire un test sur la valeur maxi et une remise à zéro pour retomber sur le bon n° d'outil.

ex:

setvar(1200, getvar(1200) +1) 'ajoute 1 à la valeur de la var 1200 puis met le résultat dans var 1200

setvar(1200, getvar(1200) Mod 4) ' effectue un modulo 4 et retourne la valeur dans var 1200 ; si elle était inférieur à 4, pas de changement, sinon le modulo est appliqué.

bien sûr, tu peux écrire ça en une seule ligne.

setvar(1200, (getvar(1200) +1) Mod 4)

++
David
 
A

adriboss

Ouvrier
OK je fais regarder tout ça. Merci en tout cas
 
S

savantfou

Nouveau
Bonjour Adriboss
j'ai la meme machine que toi as tu resolut ton probleme ?
 
A

adriboss

Ouvrier
Salut. Du coup j'ai prévu une rotation tourelle avec un moteur pas à pas au lieu du moteur DC. C'est bien plus simple à gérer.
La macro se résume à
G1 A... F...
 
S

savantfou

Nouveau
Salut
excuse moi mais
je n'ai pas compris ta réponse
a bientot
 

Sujets similaires

P
Réponses
9
Affichages
707
pro-ms
P
Bilturn
Réponses
6
Affichages
1 192
O
J
Réponses
3
Affichages
833
lolo
J
Réponses
13
Affichages
1 553
Jeannotv6
J
J
Réponses
7
Affichages
490
JLuc69
JLuc69
N
Réponses
32
Affichages
2 819
Coyote94
Coyote94
141.R.1944
Réponses
10
Affichages
967
141.R.1944
141.R.1944
J
Réponses
41
Affichages
6 135
metalux
M
Papygraines
Réponses
23
Affichages
10 742
Papygraines
Papygraines
B
Réponses
8
Affichages
642
BERTHOUD
B
Haut