Mach3 WZL Sensor über Input anstatt über Probe Port
Mach3 WZL Sensor über Input anstatt über Probe Port
Hallo an Alle,
es freut mich meine erste Frage hier stellen zu dürfen.
Ich habe an meiner Fräse einen 3d Kantentaster über den Probe Port laufen. Messung klappt wunderbar. Nun möchte ich meinen Sensor für die Werkzeuglängenmessung (z Achse) auch anschließen. Leider kann ich die beiden Sensoren nicht über den selben Port laufen lassen, da die Sensoren anderes gebaut sind. 3d Taster PNP und WZL Sensor ein Zweidraht.
Nun habe ich den WZL Sensor an einen Input Port angeschlossen. Funktioniert. Nur ist mein Problem, wie ich im Script für die Messung den Input Port anspreche und nicht den Probe Port. Quasi ein normales Script für die WZL Messung der Z Achse mit Signal vom Input Port 4 anstatt Probe Port.
Ich hoffe das mir jemand helfen kann.
es freut mich meine erste Frage hier stellen zu dürfen.
Ich habe an meiner Fräse einen 3d Kantentaster über den Probe Port laufen. Messung klappt wunderbar. Nun möchte ich meinen Sensor für die Werkzeuglängenmessung (z Achse) auch anschließen. Leider kann ich die beiden Sensoren nicht über den selben Port laufen lassen, da die Sensoren anderes gebaut sind. 3d Taster PNP und WZL Sensor ein Zweidraht.
Nun habe ich den WZL Sensor an einen Input Port angeschlossen. Funktioniert. Nur ist mein Problem, wie ich im Script für die Messung den Input Port anspreche und nicht den Probe Port. Quasi ein normales Script für die WZL Messung der Z Achse mit Signal vom Input Port 4 anstatt Probe Port.
Ich hoffe das mir jemand helfen kann.
Re: Mach3 WZL Sensor über Input anstatt über Probe Port
Das sollte kein Problem sein.
Aber ob das so Sinn macht ist eine andere Frage. Normalerweise kann über eine ev. elektrisch notwendige Verschaltung beide Sensoren an einem Port betreiben. Gib uns doch mal mehr Details zu den verwendeten Sensoren und die Scripte, die Du verwenden willst.
Aber ob das so Sinn macht ist eine andere Frage. Normalerweise kann über eine ev. elektrisch notwendige Verschaltung beide Sensoren an einem Port betreiben. Gib uns doch mal mehr Details zu den verwendeten Sensoren und die Scripte, die Du verwenden willst.
-
- Beiträge: 498
- Registriert: 28.08.2017, 14:33
Re: Mach3 WZL Sensor über Input anstatt über Probe Port
Der Kantentaster ist ein PNP? Zur not kann man die PNP Logik in NPN Logik wandeln. Wenn das nicht im umgekehrten schon der Fall ist.
Welche Kantentaster ist es denn?
Welche Kantentaster ist es denn?
Re: Mach3 WZL Sensor über Input anstatt über Probe Port
Hallo,
kurz ein paar Worte zum System: Wird über die letzte Mach3 Version betrieben. Es sind zwei parallel laufende Interface Advance Pro verbaut. Eine läuft davon über eine spezielle LPT Erweiterungskarte. 2,2 KW Spindel über Mach3 gesteuert. Induktive Endschalter PNP in Reihe geschaltet.
Der 3d Taster ist von Topcom. Bin durch ein Zufall auf diesen gestoßen. Läuft funktioniert soweit. Typ: PNP
https://topcom.cz/dig3d/
WZL Sensor ist von Ali.
Zwei Drähte für den "Messschließer" und zwei für den Notaus, falls die Z Achse nicht stoppen sollte.
https://de.aliexpress.com/item/33015203 ... 9d9c4234-0
Das Script, welches überhaupt nicht zwingend dieses sein muss. Hatte es früher für den Taster laufen.
SaveFR = GetOemDRO(818) 'Speichere Feddrate
Code "F" & FeedWW
code "g31 z-30 f200" ' Fahre Z mit 200 mm/min an aktueller Stelle nach unten auf Meßblock
While IsMoving()
Wend
code "g31 g0 z" & GetOEMDRO(85)+1 ' Fahre Z 1mm hoch
While IsMoving()
Wend
code "g31 z-30 f50" ' Fahre mit 50 mm/min auf Meßblock
While IsMoving()
Wend
Zneu=-63 ' Höhe Messblock 10mm= -22.7712 9mm = -21.7712 20mm= -32.7712
SetDro (2, Zneu) 'Setze Z Null
Code "G4 P0.25" 'Warte bis Werte übernommen
Code "G00 G53 Z0" ' Fahre Z hoch bis auf Maschinennull
Code "(Z-Achse auf Null gesetzt)" ' Melde Null in der Statuszeile
Code "F" &SaveFR ' Setze alte Feddrate
Habe an so etwas in der Art gedacht. Läuft natürlich nicht.... aber die Richtung könnte es sein.
code "g31 z-30 f70" ' Fahre Z mit 200 mm/min an aktueller Stelle nach unten auf Meßblock
While IsActive(INPUT4)
Wend
code "g31 g0 z" & GetOEMDRO(85)+1 ' Fahre Z 1mm hoch
While IsActive(INPUT4)
Wend
Oder noch besser, wie man in Mach3 ein Probe2 einrichtet.
Freue mich schon auf eure Antworten. Würde mich sehr freuen, wenn wir es zum laufen bekommen. Denn die nächste OP steht an. Servos wollen verbaut werden und die alten Schrittmotoren raus.
Wenn ich gerade dabei bin, noch eine andere Frage. Habe bei Topcom noch dieses "Doppelstecker" bestellt. Man kann bis zu 4 Sensoren über einen Input Port am Interface anschließen. Nun machen die grade Urlaub. Wo kann ich son "Doppelstecker" noch bestellen?
https://topcom.cz/sigmer4/
kurz ein paar Worte zum System: Wird über die letzte Mach3 Version betrieben. Es sind zwei parallel laufende Interface Advance Pro verbaut. Eine läuft davon über eine spezielle LPT Erweiterungskarte. 2,2 KW Spindel über Mach3 gesteuert. Induktive Endschalter PNP in Reihe geschaltet.
Der 3d Taster ist von Topcom. Bin durch ein Zufall auf diesen gestoßen. Läuft funktioniert soweit. Typ: PNP
https://topcom.cz/dig3d/
WZL Sensor ist von Ali.
Zwei Drähte für den "Messschließer" und zwei für den Notaus, falls die Z Achse nicht stoppen sollte.
https://de.aliexpress.com/item/33015203 ... 9d9c4234-0
Das Script, welches überhaupt nicht zwingend dieses sein muss. Hatte es früher für den Taster laufen.
SaveFR = GetOemDRO(818) 'Speichere Feddrate
Code "F" & FeedWW
code "g31 z-30 f200" ' Fahre Z mit 200 mm/min an aktueller Stelle nach unten auf Meßblock
While IsMoving()
Wend
code "g31 g0 z" & GetOEMDRO(85)+1 ' Fahre Z 1mm hoch
While IsMoving()
Wend
code "g31 z-30 f50" ' Fahre mit 50 mm/min auf Meßblock
While IsMoving()
Wend
Zneu=-63 ' Höhe Messblock 10mm= -22.7712 9mm = -21.7712 20mm= -32.7712
SetDro (2, Zneu) 'Setze Z Null
Code "G4 P0.25" 'Warte bis Werte übernommen
Code "G00 G53 Z0" ' Fahre Z hoch bis auf Maschinennull
Code "(Z-Achse auf Null gesetzt)" ' Melde Null in der Statuszeile
Code "F" &SaveFR ' Setze alte Feddrate
Habe an so etwas in der Art gedacht. Läuft natürlich nicht.... aber die Richtung könnte es sein.
code "g31 z-30 f70" ' Fahre Z mit 200 mm/min an aktueller Stelle nach unten auf Meßblock
While IsActive(INPUT4)
Wend
code "g31 g0 z" & GetOEMDRO(85)+1 ' Fahre Z 1mm hoch
While IsActive(INPUT4)
Wend
Oder noch besser, wie man in Mach3 ein Probe2 einrichtet.
Freue mich schon auf eure Antworten. Würde mich sehr freuen, wenn wir es zum laufen bekommen. Denn die nächste OP steht an. Servos wollen verbaut werden und die alten Schrittmotoren raus.
Wenn ich gerade dabei bin, noch eine andere Frage. Habe bei Topcom noch dieses "Doppelstecker" bestellt. Man kann bis zu 4 Sensoren über einen Input Port am Interface anschließen. Nun machen die grade Urlaub. Wo kann ich son "Doppelstecker" noch bestellen?
https://topcom.cz/sigmer4/
Re: Mach3 WZL Sensor über Input anstatt über Probe Port
Wo sind denn jetzt die Experten?
Re: Mach3 WZL Sensor über Input anstatt über Probe Port
ich bin hier eigentlich raus, da ich von Deinem Wunsch nach einer Softwarelösung nichts halte.
Ich würde immer eine Hardwarelösung nehmen.
Es gibt ein paar Hinweise im WEB das G31 und Abfragen innerhalb einer IsMoving-Schleife sich nicht immer vertragen.
Du kannst Ja mal versuchen:
Es ist auf alle Fälle Hilfreich sich mal die Befehlsreferenz von Mach3 anzuschauen.
Ich kann das nicht testen, da ich keine Lust habe meine Hardware umzufrickeln.
Ich würde immer eine Hardwarelösung nehmen.
Es gibt ein paar Hinweise im WEB das G31 und Abfragen innerhalb einer IsMoving-Schleife sich nicht immer vertragen.
Du kannst Ja mal versuchen:
Code: Alles auswählen
While IsMoving()
If ((INPUT4) = True) Then
......
End If
Sleep(5)
Wend
Ich kann das nicht testen, da ich keine Lust habe meine Hardware umzufrickeln.
Re: Mach3 WZL Sensor über Input anstatt über Probe Port
Hallo,
wenn es noch hilft:
Ich halte gar nichts von einer Software Lösung, die wird vermutlich auch zu träge sein, wenn man nicht unendlich langsam fährt.
Ich habe einen "16 zu 1 HW-Multiplexer" verwendet. Die vier Eingänge zur Eingangswahl steuere ich mit vier Outputs im Skript.
Frage damit:
- 3D Taster
- Werkzeuglängentaster
- fliegenden Taser
- Vorhandensein der Werkzeuge im WZW
ab.
Die Logik aller Taster muss natürlich trotzdem identisch sein, bzw. vor dem Multiplexer in der HW gedreht werden.
Vermutlich könnte man auch per Script die Logik des Probe Eingangs ändern (dann vermutlich auch diesen auf einen anderen Eingang umlegen?). Aber da hört mein Wissen auf...
Gruß, Dirk
wenn es noch hilft:
Ich halte gar nichts von einer Software Lösung, die wird vermutlich auch zu träge sein, wenn man nicht unendlich langsam fährt.
Ich habe einen "16 zu 1 HW-Multiplexer" verwendet. Die vier Eingänge zur Eingangswahl steuere ich mit vier Outputs im Skript.
Frage damit:
- 3D Taster
- Werkzeuglängentaster
- fliegenden Taser
- Vorhandensein der Werkzeuge im WZW
ab.
Die Logik aller Taster muss natürlich trotzdem identisch sein, bzw. vor dem Multiplexer in der HW gedreht werden.
Vermutlich könnte man auch per Script die Logik des Probe Eingangs ändern (dann vermutlich auch diesen auf einen anderen Eingang umlegen?). Aber da hört mein Wissen auf...
Gruß, Dirk
Re: Mach3 WZL Sensor über Input anstatt über Probe Port
Hallo,
Hardwarelösung möchte er ja nicht. Vielleicht meldet er sich ja noch einmal.
Hardwarelösung möchte er ja nicht. Vielleicht meldet er sich ja noch einmal.
Re: Mach3 WZL Sensor über Input anstatt über Probe Port
Es steht doch dort das man entweder oder machen kann .
NPN – switch to GND
— or —
PNP – switch to power supply
Also sollte es eigentlich kein Problem geben mit PNP und NPN.
NPN – switch to GND
— or —
PNP – switch to power supply
Also sollte es eigentlich kein Problem geben mit PNP und NPN.
Re: Mach3 WZL Sensor über Input anstatt über Probe Port
Moin
ich verstehe den Rummel über Hardwarelösung oder Softwarelösung nicht.
Die Abfrage von G31 geschieht doch schon Software seitig. Da kann man vor dem Probe-Eingang veranstalten was man will, die Abfrage bleibt Software seitig.
Eine Abfrage "normaler" Inputs ist möglich, jedoch langsamer als die G31 abfrage und somit ungenauer.
Hier ein kleiner Vergleich beider Methoden:
G31 Methode
Input Methode
Wenn man sich die Verzögerung/Ungenauigkeit ermittelt hat, kann man die im weiteren Verlauf auch verrechnen.
Ich persönlich nutze auch eine Hardwarelösung mittels Arduino.
Früher hatte ich aus Unwissenheit NC/NO Relais benutzt. Das hat auch gut funktioniert. Die schalten halt nur sehr langsam.
Im Netz gib es zu diesem Problem einige Lösungen. Unter anderem mit Transistorschaltungen ect.
Die Sofware seitige Abfrage sollte aber über G31 gemacht werden.
Entgegen einiger hier vorherrschender Meinungen, wird G31 nicht in eine Schleife abgefragt.
Mach3 hält selber an, wenn ein High/Low am Probe-Eingang anliegt.
Wenn man nicht gerade während des Antastens weitere Abfragen tätigt, gibt man dem Prozessor ein "Sleep" und wartet auf das Signal.
Da wird immer FALSE rauskommen.
So sieht das richtiger aus:
Gruß
Robert
ich verstehe den Rummel über Hardwarelösung oder Softwarelösung nicht.
Die Abfrage von G31 geschieht doch schon Software seitig. Da kann man vor dem Probe-Eingang veranstalten was man will, die Abfrage bleibt Software seitig.
Eine Abfrage "normaler" Inputs ist möglich, jedoch langsamer als die G31 abfrage und somit ungenauer.
Hier ein kleiner Vergleich beider Methoden:
G31 Methode
Code: Alles auswählen
===================
G31_Test
===================
0.0045
0.006
0.0075
0.009
0.0065
0.008
0.0055
0.007
0.0085
0.006
Maschinenachse = Z
Vorschub = F200
Wiederholungen = 10
Min = 0.0045
Max = 0.009
Diff Min/Max = 0.0045
Mittelwert = 0.00685
-------------------
Code: Alles auswählen
===================
Input_Test
===================
-0.1505
-0.124
-0.1015
-0.0835
-0.0565
-0.0385
-0.0115
-0.335
-0.334
-0.3115
Maschinenachse = Z
Vorschub = F200
Wiederholungen = 10
Min = -0.335
Max = -0.0115
Diff Min/Max = 0.3235
Mittelwert = -0.15465
-------------------
Ich persönlich nutze auch eine Hardwarelösung mittels Arduino.
Früher hatte ich aus Unwissenheit NC/NO Relais benutzt. Das hat auch gut funktioniert. Die schalten halt nur sehr langsam.
Im Netz gib es zu diesem Problem einige Lösungen. Unter anderem mit Transistorschaltungen ect.
Die Sofware seitige Abfrage sollte aber über G31 gemacht werden.
Entgegen einiger hier vorherrschender Meinungen, wird G31 nicht in eine Schleife abgefragt.
Code: Alles auswählen
Code("G31 Z-10 F200")
While IsMoving()
Sleep(50) ' um den Prozessor auf mal eine Pause zu gönnen
Wend
Das kann ich nicht bestätigen.
Wenn man nicht gerade während des Antastens weitere Abfragen tätigt, gibt man dem Prozessor ein "Sleep" und wartet auf das Signal.
Du vergleichst eine Mach3 Constante - die den Wert 21 hat - auf TRUE?WF55 hat geschrieben: ↑22.07.2021, 16:21[...][...]Code: Alles auswählen
While IsMoving() If ((INPUT4) = True) Then ...... End If Sleep(5) Wend
Da wird immer FALSE rauskommen.
So sieht das richtiger aus:
Code: Alles auswählen
While not IsActive(INPUT4)
Sleep(5)
Wend
... musst du auch nicht. Lediglich die o.g. Methode - angewendet auf den Probe-Eingang - führt zum Ergebnis.
Das rate ich dir auch ganz dringend.
Gruß
Robert
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 15 Gäste