Werkzeuglängenmesser + Kantentaster an 2 Ports der MESA 7i96S

More
2 years 11 months ago #284265 by Jensner
Hallo Leute,

im Rahmen meines Upgrades auf Closed Loop, Mesa 7i96s bin ich nun auf das Problem gestoßen, dass ich an der Mesa je einen Eingänge für den Werkzeuglängensensor und den Kantentaster benötige, LinuxCNC jedoch nur einen verwalten kann.
(Beide arbeiten als Öffner)

Habe ich das richtig verstanden, dass man in der HAL z.B. abhängig vom aktuellen Werkzeug oder M-Befehl (ich verwende M600 aus der Routine von ToolTall18T (Youtube) unter Probe Basic, den Eingang für das jeweilige Probing Tool aktivieren oder deaktivieren kann?

Am EInfachsten wäre es ja mit dem Werkzeug.
Wenn 99 (Kantentaster) eingelegt ist, soll er den Werkzeuglängensensor verwenden, andernfalls den Werkzeuglängensensor.
Kann mir da jemand weiter helfen, denn die HAL ist für mich ein Buch mit sieben Siegeln...

Viele Grüße
Jens   
 

Please Log in to join the conversation.

More
2 years 11 months ago #284312 by TooTall18T
Ist einer der Beiden steckbar?
Wenn nicht kannst du die Eingänge UND oder ODER verknüpfen. Das UND- oder das ODER-Signal geht dann auf den ProbePin in der HAL.
Wie die Syntax dafür ist kann ich dir aber erst heute Abend schreiben.

Please Log in to join the conversation.

More
2 years 11 months ago #284359 by TooTall18T
Wenn sowohl der Werkzeugtaster als auch der 3D-Taster immer angeschlossen sind, kannst du dies in deine HAL einfügen. Es müssen jeweils die negierten Eingänge genutzt werden.

loadrt or2 count=1
addf or2.0 servo-thread
net probe-tool or2.0.in0 <= #Eingang1.negiert
net probe-3d or2.0.in1 <= #Eingang2.negiert
net probe-in motion.probe-input <= or2.0.out

Solltest du bereits ODER-Verknüpfungen in deinen HALs haben muss es noch etwas angepasst werden.

Hier auch noch etwas zum Lesen dazu: linuxcnc.org/docs/devel/html/de/hal/basi...hal-logic-components

Please Log in to join the conversation.

More
2 years 11 months ago #284360 by Jensner
Hi,

der Kantentaster ist schon steckbar, aber ich würde das lieber mit einer entsprechenden Logik lösen.
So wie Du schon vorgeschlagen hast, mit einer ODER-Verknüpfung.
Alternativ habe ich auch gelesen, dass man wohl anhand des M-Befehls Eingänge aktivieren oder deaktivieren kann.
Leider steige ich bzgl. der Syntax nicht wirklich durch, obwohl es nicht wirklich komplex ist.
Aber mir fehlen da leider die Basics..

Vielen Dank schon mal 
Gruß Jens

PS: Das Problem mit dem Fehler bei der Mess-Routine hat sich offensichtlich im Zuge der Neuinstallation gelöst.
Läuft mittlerweile hervorragend und ohne Fehlermeldung! TOP 

Please Log in to join the conversation.

More
2 years 11 months ago #284361 by Jensner
Hey...
mega cool.
Das teste ich am Wochenende gleich mal.

Vielen Dank

Please Log in to join the conversation.

More
2 years 11 months ago #284366 by TooTall18T
Ob man Eingänge per M-Befehlt de-/aktivieren kann weiß ich nicht. Ausgänge aber schon.

Man könnte mittels UND-ODER-Verknüpfungen und M-Befehl den Kantentaster hinzuschalten. Aber wenn man den M-Befehl vergisst einzuschalten ist die Spitze schnell weg.

Ich schalte bei mir mittels Relais und Schalter zwischen Werkzeugtaster und 3D-Taster um. So bekommt der 3D-Taster dann auch erst Spannung und die LED leuchtet. So weiß ich, dass der AN ist.

Ok, kann ich den Problemfall bei Github also schließen?

Please Log in to join the conversation.

More
2 years 11 months ago #284370 by chris@cnc
Ja man kann Eingäne mit einem M-Befehl aktivieren. Ich mache es da mein Tischsensor so sensibel ist und sporadisch bei Vibrationen auslöst.
So kannst du auch zwischen 2 Tastern umschalten. Und das ganze in ein Unterprogramm tasten schreiben so geht nicht verloren.
Für die User M-codes musst du den Befehl der sonst in der hal steht in eine separate Datei schreiben -> mit "chmod a+x" (google fragen) -> ausführbar machen -> und den Path der Datei in der RS274NGC Section in der ini festlegen. 
Doku User M-code  hal
linuxcnc.org/docs/stable/html/gcode/m-code.html#mcode:m100-m199
ini
linuxcnc.org/docs/stable/html/config/ini...l#gcode:ini-features
hier Beispiel ein
Code:
#! /bin/bash #---- M100 Taster 1 ein ----------- halcmd net probe-in   <=  (dein Taster eingang)  =>  motion.probe-input   sleep 1 exit 0
Code:
#! /bin/bash #---- M101 Taster 1 aus ----------- halcmd unlinkp (dein Taster eingang)   sleep 1 exit 0
hier ini
Code:
[RS274NGC] PARAMETER_FILE = variablen-3-achsen.var SUBROUTINE_PATH = ncsubroutines:/home/ich/Programme/unterprogramme/ USER_M_PATH = /home/ich/Programme/unterprogramme
hier Messprogramm
Code:
O9000 (Messprogramm Tischsensor) G49 G90 (Absolute mode) M112 G53 G00 Z-100 G53 G00 X20 Y20        (Absolutposition X, Y auf Tisch) G4 P1 G91                 ( relative mode for probing) G38.2 Z-250 F1000   ( Werkzeugspitze suchen) G1 Z3                ( Werkzeug frei fahren) G4 P1 G38.2 Z-5 F80        ( Werkzeug mit Tastvorschub tasten) G28.1                ( setzt aktuelle Maschinenposition in #5161-#5166)  #500=[272.85+#5163]    ( Werkzeuglänge Verrechnen) G1 Z40 F1000          ( Werkzeug frei fahren) G10 L1 P1 Z#500        ( Werkzeuglaenge setzten) G43 H1                (Werkzeuglaenge aufrufen) o1 if [#5070 EQ 1] (DEBUG, %.2f Werkzeuglange gesetzt #500) o1 else (MSG, Werkzeug nicht erkannt) o1 endif G90 G53 G00 X150  M113 M99

 

Please Log in to join the conversation.

More
2 years 11 months ago #284372 by Jensner
Danke Dir für Deine Unterstützung.
Ja, den Problemfall kannst Du schließen.

Viele Grüße

Please Log in to join the conversation.

More
2 years 11 months ago #284373 by Jensner
@chris@cnc,
Wow, das ist mal ganz großes Tennis.
Ich hatte tatsächlich anfangs auch das Problem, dass mein 3D-Taster durch Vibration der Spindel ausgelöst hatte.
Ich hatte das mit einer Lage Filzstoff gelöst.

Gruß Jens

Please Log in to join the conversation.

More
2 years 11 months ago #285153 by Jensner

Wenn sowohl der Werkzeugtaster als auch der 3D-Taster immer angeschlossen sind, kannst du dies in deine HAL einfügen. Es müssen jeweils die negierten Eingänge genutzt werden.

loadrt or2 count=1
addf or2.0 servo-thread
net probe-tool or2.0.in0 <= #Eingang1.negiert
net probe-3d or2.0.in1 <= #Eingang2.negiert
net probe-in motion.probe-input <= or2.0.out

Solltest du bereits ODER-Verknüpfungen in deinen HALs haben muss es noch etwas angepasst werden.

Hier auch noch etwas zum Lesen dazu: linuxcnc.org/docs/devel/html/de/hal/basi...hal-logic-components
 
Hallo,

es hat nun doch etwas gedauert bis ich dazu gekommen bin.
Dein Code hat hervorragend funktioniert.
ich musste zwar noch ein "debounce" mit rein nehmen, da mein 3D-Taster etwas zu empfindlich ist, aber nun klappt alles bestens.
Gruß Jens

Please Log in to join the conversation.

Time to create page: 0.106 seconds
Powered by Kunena Forum