G31 en info daaromtrent

Alle vragen die betrekking hebben over Mach cnc controllers

Moderator: Moderators

Plaats reactie
RikV
Berichten: 110
Lid geworden op: 05 nov 2011 09:47
Locatie: Kortrijk (België)

G31 en info daaromtrent

Bericht door RikV »

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?
Het is het recht van ieder individu om zijn eigen fouten te maken (al zijn ze nog zo stom).
skillalot
Donateur
Berichten: 3251
Lid geworden op: 19 apr 2007 19:04
Locatie: Nijmegen
Contacteer:

Re: G31 en info daaromtrent

Bericht door skillalot »

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:

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
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
RikV
Berichten: 110
Lid geworden op: 05 nov 2011 09:47
Locatie: Kortrijk (België)

Re: G31 en info daaromtrent

Bericht door RikV »

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!
Het is het recht van ieder individu om zijn eigen fouten te maken (al zijn ze nog zo stom).
Gebruikersavatar
boutje
Berichten: 939
Lid geworden op: 22 jan 2007 00:13
Locatie: spaarnwoude
Contacteer:

Re: G31 en info daaromtrent

Bericht door boutje »

..
Laatst gewijzigd door boutje op 09 okt 2018 16:57, 1 keer totaal gewijzigd.
skillalot
Donateur
Berichten: 3251
Lid geworden op: 19 apr 2007 19:04
Locatie: Nijmegen
Contacteer:

Re: G31 en info daaromtrent

Bericht door skillalot »

RikV schreef: 24 apr 2018 16:14 Bedankt voor de info.
Met de stopknop kan je wel de momentele beweging stoppen, maar de macro wordt niet afgebroken.
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
RikV
Berichten: 110
Lid geworden op: 05 nov 2011 09:47
Locatie: Kortrijk (België)

Re: G31 en info daaromtrent

Bericht door RikV »

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).
skillalot
Donateur
Berichten: 3251
Lid geworden op: 19 apr 2007 19:04
Locatie: Nijmegen
Contacteer:

Re: G31 en info daaromtrent

Bericht door skillalot »

ja, als je machscreen download kun je alles zien zodra je iets aanklikt.
RikV
Berichten: 110
Lid geworden op: 05 nov 2011 09:47
Locatie: Kortrijk (België)

Re: G31 en info daaromtrent

Bericht door RikV »

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?
Het is het recht van ieder individu om zijn eigen fouten te maken (al zijn ze nog zo stom).
skillalot
Donateur
Berichten: 3251
Lid geworden op: 19 apr 2007 19:04
Locatie: Nijmegen
Contacteer:

Re: G31 en info daaromtrent

Bericht door skillalot »

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.
RikV
Berichten: 110
Lid geworden op: 05 nov 2011 09:47
Locatie: Kortrijk (België)

Re: G31 en info daaromtrent

Bericht door RikV »

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)?
Het is het recht van ieder individu om zijn eigen fouten te maken (al zijn ze nog zo stom).
skillalot
Donateur
Berichten: 3251
Lid geworden op: 19 apr 2007 19:04
Locatie: Nijmegen
Contacteer:

Re: G31 en info daaromtrent

Bericht door skillalot »

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?
Gebruikersavatar
boutje
Berichten: 939
Lid geworden op: 22 jan 2007 00:13
Locatie: spaarnwoude
Contacteer:

Re: G31 en info daaromtrent

Bericht door boutje »

..
Laatst gewijzigd door boutje op 09 okt 2018 16:57, 1 keer totaal gewijzigd.
RikV
Berichten: 110
Lid geworden op: 05 nov 2011 09:47
Locatie: Kortrijk (België)

Re: G31 en info daaromtrent

Bericht door RikV »

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:
  • 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
Ik begin aan de routine met G90 en toch maakt de subroutine op het einde er G91 van?

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).
Plaats reactie