Endschalter werden überfahren

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • Endschalter werden überfahren

      Hallo
      Ich arbeite mich gerade in Linuxcnc ein und aktuell bin ich beim Thema der homingswitches. Ich habe 3 Endschalter für Homing und referenz. Das Problem ist das er bei der Z-achse die ich aktuell einrichten will einfach immer drüberfährt und ich abstoppen muss sonst fährt er einfach weiter. Der Endschalter wird aktiviert wenn die Achse drüberfährt (lampe geht an) und auch in Halshow sieht man wie da der Status wechselt. Was mach ich da falsch?

      verkürzte Hal

      # --- BOTH-HOME-Z ---
      net both-home-z <= hm2_7i76e.0.7i76.0.0.input-10 (in hal show steht der Endschalter auf -not ,wenn ich mit metall gegenhalte sehe ich auch wie er dann wechselt)
      AXIS Z
      # ---setup home / limit switch signals---
      net home-z => axis.2.home-sw-in
      net z-neg-limit => axis.2.neg-lim-sw-in
      net z-pos-limit => axis.2.pos-lim-sw-in

      verkürzte ini
      HOME = 0.0
      MIN_LIMIT = -100.0 (nur zum austesten die werte)
      MAX_LIMIT = 0.01
      HOME_OFFSET = 0.000000
      HOME_SEARCH_VEL = 1.000000
      HOME_LATCH_VEL = 0.500000
      HOME_FINAL_VEL = 0.000000
      HOME_USE_INDEX = NO
      HOME_SEQUENCE = 0

      Habe schon mehrere Ansätze versucht. Input auf -10-not umgeschrieben oder auf -10-in. Auch min limit und max limit getauscht oder offset kleinen wert eingetragen. Das war alles egal er fährt einfach trotz aktiviertem Endschalter drüber. Die Tage hatte das noch funktioniert als ich mit Hand auf den Schalter gefahren bin musste ich den Stecker ziehen vom Endschalter damit ich wieder runterfahren konnte. Dann habe ich einen Typischen anfängerfehler gemacht und den Wizzard nochmal benutzt....was dann passiert ist wissen wohl alle. Also nochmal von vorne angefangen..aber jetzt ist irgendetwas anders nur was?
      Gruß
      Michael

      The post was edited 3 times, last by DC67 ().

    • Adhoc hätte ich mal ein paar Vorzeichen vertauscht:

      Auszug aus meiner INI für Z (Achtung: LinuxCNC 2.8 (Master))
      [AXIS_Z]
      MAX_VELOCITY = 125.00
      MAX_ACCELERATION = 750.0
      MIN_LIMIT = -165
      MAX_LIMIT = 0.01

      [JOINT_2]
      TYPE = LINEAR
      HOME = 0.0
      MIN_LIMIT = -165

      MAX_LIMIT = 0.01
      HOME_OFFSET = 4.00000
      HOME_SEARCH_VEL = -8.000000
      HOME_LATCH_VEL = -0.500000
      HOME_FINAL_VEL = -0.500000
      HOME_USE_INDEX = NO
      HOME_SEQUENCE = 0
      HOME_IGNORE_LIMITS = YES

      HAL:
      # --- HOME-Z ---
      net min-home-z <= hm2_7i76e.0.7i76.0.0.input-15
      net neg-lim-z <= hm2_7i76e.0.7i76.0.0.input-15-not
      net neg-lim-z joint.2.neg-lim-sw-in

      net min-home-z => joint.2.home-sw-in
      Viele Grüße
      Guido

      The post was edited 3 times, last by GuiHue: Information ergänzt ().

    • Hi
      Dein altes Posting mit den Endstops habe ich mir schon durchgelesen. Du hattest? da ja auch 1 Endstop pro Achse für Home und Limit genutzt. Ich habe heute nix anderes gemacht wie alles was ich gefunden habe auszuprobieren aber es hat nix gebracht. Jetzt habe ich aber vorhin in Linuxcnc forum ein Posting gefunden mit einem der hatte das auch. So wies es aussieht ist das ein Wizzard Bug von Linuxcnc ? Will jetzt hier keinen Link zu einem anderen Forum reinstellen , werde das morgen Vormittag ausprobieren und dann berichten. Die Endstops Funktionieren wenn man nur Max oder Min Home macht aber sobald man Home Both nimmt gibts da ein Problem wenn das über den Wizzard gemacht wird.
      Gruß
      Michael
    • Hallo Michael,

      ich bin gerade etwas verwirrt und vermute, dass ich deinen Aufbau nicht verstehe.

      Meine Config:
      Je Achse habe ich einen Schalter. Dieser wird sowohl als Limit (X, Y als min; Z als max) als auch als Home genutzt. Dies reflektiert meine Config, inkl. Abrücken vom Schalter für Home. Obiges Beispiel ist explizit Z - das ist wichtig, da hier die Vorzeichen etwas anders sind.

      Was genau hast du jetzt für Schalter? Zu Both-home-X findet man quasi keine Posts und gar Einträge ins Manual.


      Zum Wizard: Einfach Finger weg... außer für die einmalige, initiale Basis Config.
      Viele Grüße
      Guido
    • Genau so mach ich es auch ..habe 3 Endstopps . Der Wizzard hatte hier mehrere eingaben zur auswahl . Home Max,Home Min, und Both Home. Das soll für Limit und Home sein. Als Schalter nutze ich den Sensor als Schließer. Für mich ist das noch Neuland und ich versuche mich da einzuarbeiten. Das beste ist ich hatte schon eine Hal - Config mit einigen ext Schalter die wunderbar funktionierten. Hat mein Junior erstellt und ich dödel habe den Wizzard nochmal gestartet weil man ja eine Config nochmal reinladen kann um was abzuändern ....was ist passiert? Die Hal wurde dadurch neu geschrieben (da fehlte mir der hinweis das das passiert) grml...tja mein Junior ist jetzt weit weg weil er Studiert und ich sitz hier und bekomm noch mehr graue Haare :)
      Gruß
      Michael

      The post was edited 3 times, last by DC67 ().

    • Mit frischem Koffein fällt mir auf, dass du die PINS gar nicht verbunden hast.

      # --- BOTH-HOME-Z ---
      net both-home-z <= hm2_7i76e.0.7i76.0.0.input-10
      hier bindest du das Signal von der 7i76e in den Pin both-home-z
      AXIS Z
      net home-z => axis.2.home-sw-in
      net z-neg-limit => axis.2.neg-lim-sw-in
      net z-pos-limit => axis.2.pos-lim-sw-in

      Hier bindest du drei Pins an die relevanten Pins in axis (das ist letztlich die Logik in Programstruktur von LXCNC im Hintergrund). Diese Pins haben aber - soweit dein HAL-Ausschnitt dies zeigt - nichts miteinander zu tun. Ist das für X,Y auch so gebastelt? Oder bist du so weit gar nicht gekommen?

      Spontan müsste es so aussehen:

      net home-z <= hm2_7i76e.0.7i76.0.0.input-10
      net neg-lim-z <= hm2_7i76e.0.7i76.0.0.input-10
      net home-z => axis.2.home-sw-in
      net neg-lim-z => axis.2.neg-lim-sw-in

      INI:
      HOME = 0.0
      MIN_LIMIT = -100
      MAX_LIMIT = 0.01
      HOME_OFFSET = 4.00000
      HOME_SEARCH_VEL = -1.000000
      HOME_LATCH_VEL = 0.500000
      HOME_FINAL_VEL = 0.500000
      HOME_USE_INDEX = NO
      HOME_SEQUENCE = 0
      HOME_IGNORE_LIMITS = YES

      Bitte - wie immer bei fremden Code - nur mit Hand am Notaus testen:). Nicht, dass es am Ende "Bumm" macht.
      Viele Grüße
      Guido
    • Hallo

      Ich habe den Code abgeändert wie es der andere User beschrieben hatte bzw du auch hier. Die Maschine hält jetzt am Endschalter an ,bringt mir aber noch eine Fehlermeldung mit "Referenzpunkt erreicht" . Home Ignore Limits habe ich auf No muss mal schauen ob das mein Fehler ist bzw in der INI noch ein Wert nicht stimmt.
      Gruß
      Michael
    • Wenn ich LinuxCNC richtig verstanden habe, dann überfährt er ja Home erst einmal. Setzt dann zurück und fährt ggf. noch einmal an. Wenn Home = Limit dann triggert er aber auch den Limitschalter und darf nicht mehr weiterfahren;).

      Ich bin mir in der obigen Aufstellung aber noch unsicher welches Signal ggf. invertiert werden muss. Im Gegensatz zu dir habe ich Öffner (also NC Schalter) und musste dazu eines der Signale umdrehen. Dies habe ich eben nicht übernommen. Dies solltest du ggf. ausprobieren.

      Kopf hoch - wird schon!
      Viele Grüße
      Guido
    • Aktuell schaut die INI für Z (mit der teste ich) so aus

      #********************
      # Axis Z
      #********************
      [AXIS_2]
      TYPE = LINEAR
      HOME = 0.0
      FERROR = 10.0
      MIN_FERROR = 1.0
      MAX_VELOCITY = 166.666666667
      MAX_ACCELERATION = 1000
      # The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
      # If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
      STEPGEN_MAXVEL = 180
      STEPGEN_MAXACCEL = 1500

      # these are in nanoseconds
      DIRSETUP = 2500
      DIRHOLD = 2500
      STEPLEN = 2500
      STEPSPACE = 2500
      STEP_SCALE = 640.0
      MIN_LIMIT = -100.0
      MAX_LIMIT = 0.01
      HOME_OFFSET = -0.500000
      HOME_SEARCH_VEL = 1.000000
      HOME_LATCH_VEL = -0.500000
      HOME_FINAL_VEL = -0.500000
      HOME_USE_INDEX = no
      HOME_IS_SHARED = yes

      Wenn ich Home bleibt er stehen am Endschalter mit dem Fehler. Mein Endschalter sitzt ca 5 mm vor Ende der Linearschiene.
      Gruß
      Michael

      The post was edited 2 times, last by DC67 ().

    • Wie genau fährt er? Erst von unten (negatives Z) hoch in Richtung des Schalters vermutlich. Was passiert dann genau? Du hast ja alle Werte gesetzt. Er muss also einmal auf den Schalter drauf, dann runterfahren und dann noch einmal langsam drauf. Als letztes fährt er zum Home Offset. Wann genau löst der Fehler aus? Und warum hast Du auf das HOME_IGNORE_LIMITS = YES verzichtet?

      Ansonsten: Z fährt richtig herum? (D.h. wenn du in GMOCCAPY auf z+ gehst fährt die Achse hoch?
      Viele Grüße
      Guido
    • Z fährt mit + GMOCCAPY oben. Wenn ich Home drücke fährt er nach oben bis er Endstop erreicht und sobald er ihn erreicht bzw er aufleuchtet bleibt er sofort stehen mit der Meldung . Wenn ich da auf YES stelle bei HOME_IGNORE_LIMITS ignoriert er doch das Endstopsignal oder habe ich da was falsch verstanden?
      Gruß
      Michael
    • Hi,

      da haste was falsch verstanden.
      Ich zitiere einfach mal die Dokumentation, das sollte es am besten erklären.
      "If you do not have a separate home switch set this to YES and case connect the limit switch signal to the home switch input in HAL.
      LinuxCNC will ignore the limit switch input for this axis while homing"

      Er ignoriert also nich das Home-Signal, sondern nur das Limit-Signal bzw ignoriert dass beim Homen auch ein Limit Signal getriggerd
      wird (da Home = Limit Switch in diesem Fall)