recherche script

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

v tec

Compagnon
Et je pourrais meme dire ds le m512

Si il ne detecte plus de bouteille il envoi un m58 (referencement qui desactive les drivers apres)
 
D

dh42

Compagnon
Salut,

Pour une mise à zéro au départ, oui, tu peux utiliser une macro séparée, et tu peu même faire en sorte qu'elle soit lancée au démarrage de mach3, puis après chaque reset.

une fois ta macro faite, ajoute la à la chaine d'initialisation, et coche "use init string on all reset"

mach3_init_string.jpg


une autre option, c'est que si tu utilise une UserDro comme dans mon code pour stocker la valeur du compteur au lieu d'une variable interne de mach3 (genre #xxx), rien ne t’empêche de la créer à l'écran pour afficher le comptage ... et de faire un bouton RAZ pour remettre cette UserDro à 0.

++
David
 
V

v tec

Compagnon
donc en gros a la fin de ma macro de referencement (car je demarre toujours un referencement avant de commencer un programme


je marque genre


set oemdro(2000)=0

puis m511


sub main(m511)

deactivatesignal (output4)
if get oemdro(2000)=0 then

activatesignal(output4)
sleep(500)
deactivatesignal(output4)
sleep(3000)
activatesignal(output4)
sleep(500)
deactivatesignal(output4)
set oemdro(2000)+1
exit sub
else
exit sub
end if
end sub



et m512




et m512
sub main(512)
deactivatesignal (output4)
if get oemdro(2000)=1 then

activatesignal(output4)
sleep(500)
deactivatesignal(output4)
exit sub
else
exit sub
end if
end sub
 
V

v tec

Compagnon
Desole j ai ecrit a l arrache mais depuis ce matin je depanne une usine je suis naze et je dors a l hotel je peu rien essayer
 
D

dh42

Compagnon
re

set oemdro(2000)=0

erreur de syntaxe -> SetUserDro(2000,0)

il n'y a pas d'OEMdro 2000 et avec la fonction set, on n'utilise pas = :wink:
----------
setoemdro(2000)+1

marche pas non plus, mauvaise syntaxe (pas seulement parce qu'il n'y a pas d'OEM dro 2000)

utilise
SetUserDro(2000, GetUserDro(2000)+1)

ou si tu préfère la version longue.

dim ct as long
ct = GetUserDro(2000)
ct=ct+1
SetUserDro(2000, ct)


++
David
 
V

v tec

Compagnon
bon voila un debut de code avec une tempo

ma question est


comment puis je faire


if then

condition 1

condition2

condition 3

end if?
 
V

v tec

Compagnon
donc voila le code

If getoemDro(2000)=0 Then
While getoemled(844)=false 'etat 0->1
sleep(500)
Wend
While getoemled(844)=true 'etat 1->0 c est compté
sleep(500)
Wend
sleep(100)
activatesignal(output4) 'active le verin
sleep(500)
deactivatesignal(output4) 'desactive le verin
While getoemled(844)=false
sleep(500)
Wend
While getoemled(844)=true
sleep(500)
Wend
sleep(5000)
activatesignal(output4)
sleep(500)
deactivatesignal(output4)
setoemdro(2000,1) 'premier cycle fini
Exit Sub
Else


'si getoemdro(2000)=1


duree_maxi = 10000
Ok = false
t1=Timer()

bQuitLoop = False
bInputOk = False
totalTime = 0
message""
While bQuitLoop = False
If getoemled(844)=true Then
bQuitLoop = True
End If
If totalTime > duree_maxi Then
bQuitLoop = True
End If
sleep(100)
totalTime = totalTime + 100
Wend

If getoemled(844)=false Then 'si le temps est dépassé et que la sonde ne detecte toujours rien
message "temps dépassé"
setoemdro(2000,2) 'on passe en condition fin de cycle
Exit Sub
End If
While getoemled(844)=true
sleep(100)
Wend
sleep(100)
activatesignal(output4)
sleep(500)
deactivatesignal(output4)
Exit Sub



'derniere condition
'si getoemdro(2000)=2
'code"m58" 'referencement puis arret d urgence et remise a 0 des compteurs
'exit sub


End If
 
D

dh42

Compagnon
v tec a dit:
bon voila un debut de code avec une tempo

ma question est


comment puis je faire


if then

condition 1

condition2

condition 3

end if?


Salut,

Il te faut utiliser les instructions Select/Case

voici un exemple de code (testé sur un bouton dans Mach3) qui demande une valeur et exécute une des 5 conditions prévues (4 valeurs possible et bouton annulation), et qui gère les valeur hors plage.


https://msdn.microsoft.com/fr-fr/library/cy37t14y.aspx

++
David
 
Dernière édition par un modérateur:
V

v tec

Compagnon
slt nein c etait ca que je voulais

'Setoemdro(2000,0)
If getoemDro(2000)=0 Then
While getoemled(844)=false
sleep(500)
Wend
While getoemled(844)=false
sleep(500)
Wend
sleep(100)
activatesignal(output4)
sleep(500)
deactivatesignal(output4)
While getoemled(844)=false
sleep(500)
Wend
sleep(9000)
activatesignal(output4)
sleep(500)
deactivatesignal(output4)
setoemdro(2000,1)
Exit Sub
End If

If getoemdro(2000)=1 Then
duree_maxi = 8000
Ok = false
t1=Timer()

bQuitLoop = False
bInputOk = False
totalTime = 0
message""
While bQuitLoop = False
If getoemled(844)=true Then
bQuitLoop = True
End If
If totalTime > duree_maxi Then
bQuitLoop = True
End If
sleep(100)
totalTime = totalTime + 100
Wend

If getoemled(844)=false Then
message "temps dépassé"
setoemdro(2000,2)
Exit Sub
End If
While getoemled(844)=false
sleep(100)
Wend
sleep(100)
activatesignal(output4)
sleep(500)
deactivatesignal(output4)
setoemdro(2000,1)
Exit Sub
End If
If getoemdro(2000)=2 Then
duree_maxi =100000
Ok = false
t1=Timer()

bQuitLoop = False
bInputOk = False
totalTime = 0
message""
While bQuitLoop = False
If getoemled(844)=true Then
bQuitLoop = True
End If
If totalTime > duree_maxi Then
bQuitLoop = True
End If
sleep(100)
totalTime = totalTime + 100
Wend

If getoemled(844)=false Then
message "temps dépassé"
setoemdro(2000,0)
code"m512"
Exit Sub
End If
While getoemled(844)=false
sleep(100)
Wend
sleep(100)
activatesignal(output4)
sleep(500)
deactivatesignal(output4)
setoemdro(2000,0)
Exit Sub
End If





edit: ca marche
 
V

v tec

Compagnon
donc ca marche impec


paér contre je vais ajouter une dro au jeu d ecran pour voir ou j en suis

et je vais mettre une dro quicompte le nombre de cycle et tout les 50 ou 100 bouteille je reference les axes


et je vais rajouter une verification de la led de referencement apres chaque axes parce que des fois il saute un axe


setoemdro(2000,0)
code"g01X-2.96 Y-5.44 Z2.01 A4.01 B-1.84 C0 F500"
Dim Msg, Style, Title, Help, Ctxt, Response, MyString
Msg = "Vérifier si l'interrupteur ORIGINE est sur ON, cliquez sur ok quand fait" ' Define message.
Style = 0 ' Define buttons.
Title = "ATTENTION" ' Define title.
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then ' User chose Yes.
MyString = "Yes" ' Perform some action.
Else ' User chose No.
MyString = "No" ' Perform some action.
End If
While ismoving()
sleep(100)
Wend
dooembutton(1022)
While ismoving()
sleep(100)
Wend
sleep(1000)
if getoemled(807)=true then
Msg = "Probleme referencement axe X, faire referencement manuellement" ' Define message.
Style = 16 ' Define buttons.
Title = "PROBLEME" ' Define title.
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then ' User chose Yes.
MyString = "Yes" ' Perform some action.
exit sub
Else ' User chose No.
MyString = "No" ' Perform some action.
exit sub
End If
end if
While ismoving()
sleep(100)
Wend
code"g01X-2.96"
While ismoving()
sleep(100)
wend
if getoemled(807)=true then
Msg = "Probleme referencement axe X, faire referencement manuellement" ' Define message.
Style = 16 ' Define buttons.
Title = "PROBLEME" ' Define title.
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then ' User chose Yes.
MyString = "Yes" ' Perform some action.
exit sub
Else ' User chose No.
MyString = "No" ' Perform some action.
exit sub
End If
end if
While ismoving()
sleep(100)
Wend
dooembutton(1023)
While ismoving()
sleep(100)
Wend
sleep(1000)
if getoemled(808)=true then
Msg = "Probleme referencement axe Y, faire referencement manuellement" ' Define message.
Style = 16 ' Define buttons.
Title = "PROBLEME" ' Define title.
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then ' User chose Yes.
MyString = "Yes" ' Perform some action.
exit sub
Else ' User chose No.
MyString = "No" ' Perform some action.
exit sub
End If
end if
While ismoving()
sleep(100)
Wend
dooembutton(1024)
While ismoving()
sleep(100)
Wend
sleep(1000)
if getoemled(809)=true then
Msg = "Probleme referencement axe Z, faire referencement manuellement" ' Define message.
Style = 16 ' Define buttons.
Title = "PROBLEME" ' Define title.
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then ' User chose Yes.
MyString = "Yes" ' Perform some action.
exit sub
Else ' User chose No.
MyString = "No" ' Perform some action.
exit sub
End If
end if
While ismoving()
sleep(100)
Wend
dooembutton(1025)
While ismoving()
sleep(100)
Wend
sleep(1000)
if getoemled(810)=true then
Msg = "Probleme referencement axe A, faire referencement manuellement" ' Define message.
Style = 16 ' Define buttons.
Title = "PROBLEME" ' Define title.
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then ' User chose Yes.
MyString = "Yes" ' Perform some action.
exit sub
Else ' User chose No.
MyString = "No" ' Perform some action.
exit sub
End If
end if
While ismoving()
sleep(100)
Wend
dooembutton(1026)
While ismoving()
sleep(100)
Wend
sleep(1000)
if getoemled(811)=true then
Msg = "Probleme referencement axe B, faire referencement manuellement" ' Define message.
Style = 16 ' Define buttons.
Title = "PROBLEME" ' Define title.
Response = MsgBox(Msg, Style, Title, Help, Ctxt)
If Response = vbYes Then ' User chose Yes.
MyString = "Yes" ' Perform some action.
exit sub
Else ' User chose No.
MyString = "No" ' Perform some action.
exit sub
End If
end if
While ismoving()
sleep(100)
Wend
code"g01X-2.96 Y-5.44 Z2.01 A4.01 B-1.84 C0 F500"
While ismoving()
sleep(100)
Wend
sleep(3000)
code"XXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
while ismoving()
sleep(100)
wend
dooembutton(1021)
while ismoving()
sleep(100)
wend
dooembutton(1002)
exit sub
 

Sujets similaires

Haut