creer une macro d attente avec condition

  • Auteur de la discussion v tec
  • Date de début
V

v tec

Compagnon
bonjour a tous, pour ceux qui en aurait besoin, j essaye de trouver comment ecrire une macro d attente de l etat d une entrée, et donné des conditions de sortie, valentin m aide car je n y connais rien


exemple:

vous voulez creer un gcode m70 que vous inserer dans votre gcode


je dit une betise vous voulez verifier que avant de faire un changement d outil, votre fraise est bien presente dans le mandrin avant de palper, ou que votre fraise n est pas trop longue


car moi ca m est arrivé de mettre une fraise en butée trop longue, et comme dans le script du palpeur, je lui dit de rapprocher la broche du palpeur vertcalement avant de palper, pour gagner un peu de temps, et bien, ma fraise a taper contre le palpeur



donc il suffirait de mettre un capteur de proximité que vous regler en hauteur, vous le metter en lateral,et vous faites passer votre outil a coté, si il est trop long il sera detecté, sinon il poursuit son chemin



donc la macro dirait:

lire l etat de du capteur outil
si le capteur detecte rien, on continue le programme
si il detecte quelque chose, on met le programme en pause, et on active un buzzer

traduction:

Do
If IsActive(INPUT1) Then
Exit sub
End If
Message "probleme longueur d outil avant palpage"
ActivateSignal(OUTPUT1)
code"m1"
Loop
deactivatesignal(output1)



en l etat cette macro marche, mais pas longtemps, car au bout de quelques secondes mach3 bug, car il n aime pas la boucle
 
V

v tec

Compagnon
voici la solution pour eviter de faire buger

Do
If IsActive(INPUT1) Then
Exit sub
End If
Message "probleme longueur d outil avant palpage"
ActivateSignal(OUTPUT1)
sleep(1000)
code"m1"
Loop
deactivatesignal(output1)
 
V

v tec

Compagnon
donc maintenant imaginons une autre macro qui partirait de celle ci, mais pas sur une fraiseuse mais sur un automate



imaginons que j ai un prehenseur qui doit attraper une piece sur un convoyeur, le convoyeur est autonome, et en marche permanente



je gere mon prehenseur sur un axe numerique verticale


je souhaite donc mettre mon robot en attente d un objet dessous, et mettre une condition qui dit, que si le robot attend trop longtemps 5 secondes, c est que peut etre un objet est coincé sur le convoyeur, et que l on met en pause



donc la macro ferait:

Do
while isactive(input1)
wend
loop (avec une condition de temps maximum de 5 secondes)
Exit sub
End If
Message "probleme convoyeur bloquer"
ActivateSignal(OUTPUT1)
sleep(1000)
code"m1"
Loop
deactivatesignal(output1)



il faut juste arriver a ecrire la condition de temps max
 
V

v tec

Compagnon
Private Sub CommandButton1_Click()
Dim bInputOk As Boolean
Dim bQuitLoop As Boolean
Dim totalTime As Integer

bQuitLoop = False
bInputOk = False
totalTime = 0

While bQuitLoop = False
bInputOk = IsActive(input1)
If bInputOk = True Then
bQuitLoop = True
End If
If totalTime > 2500 Then
bQuitLoop = True
End If
sleep(100)
totalTime = totalTime + 100
Wend

If bInputOk = False Then
message "probleme fermeture verin entrée convoyeur"
ActivateSignal (output1)
code "m1"
Exit Sub
End If
DeActivateSignal (output1)
message "verin entrée convoyeur bien fermé"
End Sub
 

Sujets similaires

V
Réponses
8
Affichages
2 002
wika58
F
Réponses
13
Affichages
5 596
François B
F
J
Réponses
1
Affichages
1 786
pro-ms
P
misty soul
Réponses
7
Affichages
2 810
rabotnuc
R
W
Réponses
58
Affichages
10 925
Doctor_itchy
D
A
Réponses
6
Affichages
4 946
Alex44600
A
aschamba
Réponses
0
Affichages
1 385
aschamba
aschamba
taratata
Réponses
4
Affichages
4 687
taratata
taratata
Haut