La LED de code OEM 54 retourne l'état CV on ou off.
Le bouton existe aussi sous le code OEM 247 (toggle CV)
PS si tu utilise l'interface de Mach3FR, le bouton existe déjà mais il a migré sur l'écran Réglages ; tu peux simplement le copier/coller d'un écran à l'autre si tu veux le ramener sur l'écran principal.
ce que je veux, c est dire allez a une coordonnée, et pendant son mouvement, si une entrée est activé, il stop, et met la coordonnée de travail a 0, mais un g28.1 ou g31
Logique ; le test IsActive n'est effectué qu'une seule fois ; il faudrait qu'il se trouve dans une boucle.
je te met une code qui marche
je lance un déplacement en mode MDI, je clique sur le bouton auquel est accroché le script pour le lancer, puis je clique le micro sur l'entrée 1 (dans mon cas, en émulation clavier)
je viens de la tester ca marche parfaitement, merci
la je cherche a faire une fonction de comptage
en francais, on compte X fois l entrée 1, au bout de la x éme fois on active la sortie 1
si le compte dure plus de X seconde, on met en pause m1, et on active l alarme output2
j ai deja un code sur lequel je peux m appuyer que un pote m a fait
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 "BUG : input1 jamais actif"
ActivateSignal (output1)
code "m1"
Exit Sub
End If
DeActivateSignal (output1)
message "tout s est bien passé"
End Sub
c est juste que je trouve pas la fonction comptage en vb script
Ah oui, rien à voir avec une fraiseuse ... je n'avais même pas pensé qu'on pouvait se servir de Mach3 pour autre chose qu'un tour ou une fraiseuse (ou apparenté)
alors j ai testé, je comprend le raisonnement, mais elle ne marche pas dans mach3
je l ai mise sur un bouton, je clique, j attend plus de 10 secondes rien ne se passe
je recommence, je clique, j active 1 fois l entrée 1, et la sortie 1 s active
j ai refait different essai en adaptant certain truc:
Sub Main()
Dim nbmax_input As Long 'nb total d'entrée à compter avant déclenchment
Dim duree_maxi As Long 'nb de secondes maxi avant echec
Dim nbinput As Long 'nb d'entrées comptées
Dim Ok As Boolean 'a true si tout s'est bien passé
Do While GetTimer(1) < duree_maxi 'boucler tant que le temps n'est pas dépassé
If IsActive(input1) Then 'si entrée active, ajoute 1 au compteur
nbinput = nbinput + 1
sleep(100) 'évite un comptage multiple par rebond du contact (ou si reste trop longtemps enfoncé)
End If
If nbinput = nbmax_input Then 'nb d'entrée attendues atteint
Ok = true
ActivateSignal (output3)
ActivateSignal (output4)
Exit Do 'sort de la boucle
End If
sleep(10)
Loop
'affichage.
If Ok = false Then
code "M1"
ActivateSignal (output1)
message "temps dépassé"
Else
message "ok, ça roule"
End If
End Sub
donc, le nombre d entrée est un coup 3 un coup 4, je sais pas pourquoi
et le temps pour sortir de la boucle est 1mn, selon cette macro
alors pour le nombre d entrée hasardeuse j ai trouvé, le temps que tu a mis pour eviter les entrée "rebond", etait trop courte, je l ai mis a 500, et la ca marche