G31 en info daaromtrent
Moderator: Moderators
G31 en info daaromtrent
Ik ben bezig met enkele macro's die gebruikmaken van G31 op een machine Mach3 R3.043.066 met een CS-lab Mio-P.
Nu verwacht ik dat bv G31 X10.0 na 10 mm zonder probe detectie stopt met de X-beweging en op een of andere manier een foutmelding geeft. Niets van dit alles, de machine blijft rustig doorlopen.
1- Hoe kan je als operator een lopende macro onderbreken zonder noodstop?
2- Hoe kan je in een macro de al dan niet goede afloop van een functie (in dit geval G31) detecteren zodat je gepast actie kan ondernemen?
3- Waar kan ik een -volledige- lijst van Mach3 systeem variabelen terugvinden?
Nu verwacht ik dat bv G31 X10.0 na 10 mm zonder probe detectie stopt met de X-beweging en op een of andere manier een foutmelding geeft. Niets van dit alles, de machine blijft rustig doorlopen.
1- Hoe kan je als operator een lopende macro onderbreken zonder noodstop?
2- Hoe kan je in een macro de al dan niet goede afloop van een functie (in dit geval G31) detecteren zodat je gepast actie kan ondernemen?
3- Waar kan ik een -volledige- lijst van Mach3 systeem variabelen terugvinden?
Het is het recht van ieder individu om zijn eigen fouten te maken (al zijn ze nog zo stom).
Re: G31 en info daaromtrent
1) Gewone stopknop op je beeldscherm?
2) Je kan in je macro iets zetten wat controleert of die probe ingang actief is geworden na de beweging.
Bijvoorbeeld:
3) https://forum.strojirenstvi.cz/download ... p?id=56730 <-- programmers reference
https://www.machsupport.com/forum/index ... tach=27839 <-- Alle DRO's buttons, led's etc
2) Je kan in je macro iets zetten wat controleert of die probe ingang actief is geworden na de beweging.
Bijvoorbeeld:
Code: Selecteer alles
Code "G31 X10.0 F100"
While Ismoving()
Wend
If Not GetOemLED(825) Then
Msg1 = "Probing niet gelukt"
Style1 = 16
Title1 = "Error"
Response = MsgBox(msg1, Style1, Title1)
Exit Sub
End If
https://www.machsupport.com/forum/index ... tach=27839 <-- Alle DRO's buttons, led's etc
Re: G31 en info daaromtrent
Bedankt voor de info.
Met de stopknop kan je wel de momentele beweging stoppen, maar de macro wordt niet afgebroken.
Je zou er inderdaad van alles kunnen rondbreien maar waarom? De functie zelf detecteert de ala dan niet juiste afloop en geeft ongetwijfeld ergens een return waarde. Als programmeur wil je die toch gaan gebruiken?
De 2 documenten die je aangeeft had ik nog niet gevonden. Persoonlijk vind ik de site van Newfangled wat dat betreft niet zo ordentelijk.
Ondertussen heb ik verder gegoogled met verontrustend resultaat. Er zouden verschillende ernstige problemen zijn met de combinatie CSmio en Mach3. Ook is het zeker niet gegarandeerd dat de CS "foutloos" werkt met een ander scherm dan het originele 1024.
Een van de gekende problemen was -en is vlgs mij- G31. In die mate dat ze een "M31" gebouwd hebben om die te vervazngen (en die capteert wèl de verkeerde afloop van de probecyclus). Ik heb die net geprobeerd en onderweg krijg ik een foutmelding "Buffer error. Call Brian". Leuk is anders. Ik weet uit ervaring dat info vragen bij CS een lijdensweg is.
Ik krijg de indruk dat ik met -wellicht heel mooie- rotzooi opgescheept zit.
Het ergste is dan nog wel dat ik dat materiaal sterk aangeraden heb bij een kennis die nu dus ook in de problemen zal zitten. Scheisse!
Met de stopknop kan je wel de momentele beweging stoppen, maar de macro wordt niet afgebroken.
Je zou er inderdaad van alles kunnen rondbreien maar waarom? De functie zelf detecteert de ala dan niet juiste afloop en geeft ongetwijfeld ergens een return waarde. Als programmeur wil je die toch gaan gebruiken?
De 2 documenten die je aangeeft had ik nog niet gevonden. Persoonlijk vind ik de site van Newfangled wat dat betreft niet zo ordentelijk.
Ondertussen heb ik verder gegoogled met verontrustend resultaat. Er zouden verschillende ernstige problemen zijn met de combinatie CSmio en Mach3. Ook is het zeker niet gegarandeerd dat de CS "foutloos" werkt met een ander scherm dan het originele 1024.
Een van de gekende problemen was -en is vlgs mij- G31. In die mate dat ze een "M31" gebouwd hebben om die te vervazngen (en die capteert wèl de verkeerde afloop van de probecyclus). Ik heb die net geprobeerd en onderweg krijg ik een foutmelding "Buffer error. Call Brian". Leuk is anders. Ik weet uit ervaring dat info vragen bij CS een lijdensweg is.
Ik krijg de indruk dat ik met -wellicht heel mooie- rotzooi opgescheept zit.
Het ergste is dan nog wel dat ik dat materiaal sterk aangeraden heb bij een kennis die nu dus ook in de problemen zal zitten. Scheisse!
Het is het recht van ieder individu om zijn eigen fouten te maken (al zijn ze nog zo stom).
Re: G31 en info daaromtrent
..
Laatst gewijzigd door boutje op 09 okt 2018 16:57, 1 keer totaal gewijzigd.
Re: G31 en info daaromtrent
Dan zet je in de While IsMoving loop tijdens de G31 een If stopknop then exit sub.
Code: Selecteer alles
Code "G31 X10.0 F100"
While Ismoving()
If GetOemButton(1003) then
Exit Sub
End If
Wend
If Not GetOemLED(825) Then
Msg1 = "Probing niet gelukt"
Style1 = 16
Title1 = "Error"
Response = MsgBox(msg1, Style1, Title1)
Exit Sub
End If
Re: G31 en info daaromtrent
Hoe kan je van een bestaande screenset voor een button, LED of DRO achterhalen welk nummer eraan verbonden is? In Machscreen is er wel een lijst beschikbaar maar (behalve de coördinaten) is er geen link met het ontwerp. Kan je in ontwerpwiew niet op een of andere manier alle info rechtstreeks bekijken?
Het is het recht van ieder individu om zijn eigen fouten te maken (al zijn ze nog zo stom).
Re: G31 en info daaromtrent
ja, als je machscreen download kun je alles zien zodra je iets aanklikt.
Re: G31 en info daaromtrent
Bedankt voor de info tot zover!
Ik heb een probleempje dat mij nogal bizar lijkt. Ik heb een laptop waarop Mach draait die ik gebruik om vanalles uit te proberen vooraleer ik naar de machine ga.
Beide hebben dezelfde configurtaie en op allebei gebruik ik -momenteel- het standaard 1024.set scherm.
Welnu: in het "offset" scherm kan je linksboven in een DRO (1000) een dikte voor een voelerplaat ingeven. Op de laptop gaat dat probleemloos maar op de machine wordt de ingegeven waarde (ingeven lukt dus wel) bij het indrukken van de enter toets dierct met 0.000 overschreven.
Ik heb al een copie van de laptop 1024.set op de machine gezet, zelfde resultaat. Wat kan er de ingave blokkeren?
Ik heb een probleempje dat mij nogal bizar lijkt. Ik heb een laptop waarop Mach draait die ik gebruik om vanalles uit te proberen vooraleer ik naar de machine ga.
Beide hebben dezelfde configurtaie en op allebei gebruik ik -momenteel- het standaard 1024.set scherm.
Welnu: in het "offset" scherm kan je linksboven in een DRO (1000) een dikte voor een voelerplaat ingeven. Op de laptop gaat dat probleemloos maar op de machine wordt de ingegeven waarde (ingeven lukt dus wel) bij het indrukken van de enter toets dierct met 0.000 overschreven.
Ik heb al een copie van de laptop 1024.set op de machine gezet, zelfde resultaat. Wat kan er de ingave blokkeren?
Het is het recht van ieder individu om zijn eigen fouten te maken (al zijn ze nog zo stom).
Re: G31 en info daaromtrent
Volgens mij is er een knop waarmee je tussen machine coordinaten en tussen werkstuk coordinaten kan wisselen.
Machine coordinaten kun je zelf niet aanpassen, alleen met homen, maar niet door een waarde in de DRO te stoppen.
Maar ik weet niet hoe die 1024 screenset werkt, die heb ik gelijk gedelete en mijn eigen gemaakt.
Machine coordinaten kun je zelf niet aanpassen, alleen met homen, maar niet door een waarde in de DRO te stoppen.
Maar ik weet niet hoe die 1024 screenset werkt, die heb ik gelijk gedelete en mijn eigen gemaakt.
Re: G31 en info daaromtrent
Neen, Skillalot, het is gewoon een DRO waar een waarde in gezet wordt die dan in een macro voor het nullen van de Z-as gebruikt wordt.
Maar in feite is de vraag: waarom kan ik in die DRO op de ene PC wel een waarde ingeven en op de andere niet? Beide schermen zijn identiek. Wat is er nog meer dat daarop van invloed kan zijn?
Bestaat er een manier om een "cross reference" lijst te maken van alle elementen (DRO, Button, variabelen) die door mach in een gegeven configuratie gebruikt worden? Of ben je hiervoor afhankelijk van de goede wil tot dokumenteren van de ontwerper(s)?
Maar in feite is de vraag: waarom kan ik in die DRO op de ene PC wel een waarde ingeven en op de andere niet? Beide schermen zijn identiek. Wat is er nog meer dat daarop van invloed kan zijn?
Bestaat er een manier om een "cross reference" lijst te maken van alle elementen (DRO, Button, variabelen) die door mach in een gegeven configuratie gebruikt worden? Of ben je hiervoor afhankelijk van de goede wil tot dokumenteren van de ontwerper(s)?
Het is het recht van ieder individu om zijn eigen fouten te maken (al zijn ze nog zo stom).
Re: G31 en info daaromtrent
Oh, mijn fout, ik had er te snel overheen gelezen. Ik dach dat het een standaard DRO was.
Het kan zijn dat er vanuit een brain of vanuit de macropump die dro constant overschreven wordt.
Disable alle brains en schakel je macropump eens uit, en kijk dan nog eens of dat verschil maakt?
Het kan zijn dat er vanuit een brain of vanuit de macropump die dro constant overschreven wordt.
Disable alle brains en schakel je macropump eens uit, en kijk dan nog eens of dat verschil maakt?
Re: G31 en info daaromtrent
..
Laatst gewijzigd door boutje op 09 okt 2018 16:57, 1 keer totaal gewijzigd.
Re: G31 en info daaromtrent
Ik ben een tijd met andere dingen bezig geweest. Vandaar...
Neen, Mijn DRO's staan niet gelockt. Ik het probleem omzeild Door DRO's 1000 en 1002 te gebruiken, die willen wel meewerken.
Nu ben ik zo goed als klaar met mijn macro's en stoot ik op het volgende:
Waar loopt het hier verkeerd? Binnenin de macro wordt wel over en weer geschakeld tussen absoluut en incrementeel.
Neen, Mijn DRO's staan niet gelockt. Ik het probleem omzeild Door DRO's 1000 en 1002 te gebruiken, die willen wel meewerken.
Nu ben ik zo goed als klaar met mijn macro's en stoot ik op het volgende:
- Sub Main()
.....
CurrentAbsInc = GetOemLED(48) 'Get the current G90/G91 state
CurrentGmode = GetOemDRO(819) 'Get the current G0/G1 state
......
Call ReturnG90G91State()
End Sub
Sub ReturnG90G91State()
If CurrentAbsInc = 0 Then 'if G91 was in effect before then return to it
Code "G91"
End If
If CurrentGMode = 0 Then 'if G0 was in effect before then return to it
Code "G0"
End If
End Sub
Waar loopt het hier verkeerd? Binnenin de macro wordt wel over en weer geschakeld tussen absoluut en incrementeel.
Het is het recht van ieder individu om zijn eigen fouten te maken (al zijn ze nog zo stom).