Linux CNC, bazowanie i limity

Dyskusje dotyczące działania obsługi programu LinuxCNC

Autor tematu
meriones
Czytelnik forum poziom 2 (min. 20)
Czytelnik forum poziom 2 (min. 20)
Posty w temacie: 2
Posty: 20
Rejestracja: 07 sie 2015, 10:07
Lokalizacja: dębica

Linux CNC, bazowanie i limity

#1

Post napisał: meriones » 28 wrz 2015, 11:12

Dzień dobry,

Jestem posiadaczem frezarki CNC XYZA z ruchomym stołem w osi X.

Frezarka działa pod kontrolą LinuxCNC 2.6.4, całkiem nieźle zresztą.

Irytuje mnie jedynie jeden mankament.
Mianowicie, nie działa bazowanie osi X oraz Y.

Dzieje się dokładnie to:
Obrazek

Czyli po naciśnięciu bazowania, otrzymuję komunikat o wciśniętej krańcówce i program się zatrzymuje.

Proszę o pomoc w rozwiązaniu tego problemu, najlepiej o podanie możliwych przyczyn.

Zastanawiające jest, dlaczego bazowanie osi Z działa poprawnie tj. wciska krańcówkę, odjeżdża i szuka z drugą zadaną prędkością, potem odjeżdża na zadany 1mm.
Jest to moja pierwsza frezarka, próbowalem zmieniać położenie pkt. 0, prędkości i różne mozliwości bazowania ale chyba coś źle robię :)

Wszystkie 6 krańcówek XYZ są podłączone identycznie tj. pod dwie krańcówki z których jedna jest bazująca, każda działa poprawnie (podłaczone są równolegle NO, działąnie sprawdzane programem pyvcp).

W załączniku plik .hal i .ini

ustawienia bazowania:

Kod: Zaznacz cały

[AXIS_0]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 71.2502850011
MAX_ACCELERATION = 750.0
STEPGEN_MAXACCEL = 937.5
SCALE = 160.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -0.001
MAX_LIMIT = 200.0
HOME_OFFSET = 1.000000
HOME_SEARCH_VEL = 5.000000
HOME_LATCH_VEL = 3.125000
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 1

[AXIS_1]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 71.2502850011
MAX_ACCELERATION = 750.0
STEPGEN_MAXACCEL = 937.5
SCALE = 160.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -0.001
MAX_LIMIT = 200.0
HOME_OFFSET = 1.000000
HOME_SEARCH_VEL = 5.000000
HOME_LATCH_VEL = 3.125000
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 2

[AXIS_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 50.0
MAX_ACCELERATION = 750.0
STEPGEN_MAXACCEL = 937.5
SCALE = 160.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -0.001
MAX_LIMIT = 100.0
HOME_OFFSET = 1.000000
HOME_SEARCH_VEL = 5.000000
HOME_LATCH_VEL = 3.125000
HOME_IGNORE_LIMITS = YES
HOME_SEQUENCE = 0
Załączniki
hal.txt
(4.11 KiB) Pobrany 234 razy
ini.txt
(2.48 KiB) Pobrany 205 razy



Tagi:


steff.k
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 1
Posty: 529
Rejestracja: 07 paź 2013, 20:12
Lokalizacja: Kraków/Kraśnik

#2

Post napisał: steff.k » 28 wrz 2015, 15:42

A maszynę włączasz na krańcówce czy wrzeciono jest gdzieś po środku osi?

Awatar użytkownika

syntetyczny
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 3
Posty: 2696
Rejestracja: 08 gru 2009, 22:33
Lokalizacja: Elbląg
Kontakt:

#3

Post napisał: syntetyczny » 28 wrz 2015, 21:26

Zobaczy kolega, czy krańcówka w ogóle reaguje, w LinuxCNC jest narzędzie pozwalające na podglądanie zmiany stanu konkretnego pina. W zakładce machine. Tylko nie pamiętam, czy to pomiar hal jest czy jakoś tak.
Kto pyta, nie błądzi. Eppur si muove
Kreatura CNC
Modernizacja plotera megaplot


Autor tematu
meriones
Czytelnik forum poziom 2 (min. 20)
Czytelnik forum poziom 2 (min. 20)
Posty w temacie: 2
Posty: 20
Rejestracja: 07 sie 2015, 10:07
Lokalizacja: dębica

#4

Post napisał: meriones » 29 wrz 2015, 01:08

Krańcówki reagują, sprawdzane próbówką i programowo, program nazywa się pyvcp.
W LinuxCNC także jest wykrywane każde naciśnięcie - powoduje błąd i wyłączenie zasilania.
W najbliższym czasie posprawdzam oscyloskopem, może tu jest problem, chociaż z tego co czytałem debouncing jest dobrze zrealizowany a przed sterownikiem jest filtracja.

Maszynę włączam na wyłączonych krańcówkach - wrzeciono w obszarze pola roboczego.

Czy może to byś spowodowane dosyć dużymi pikami w latency-test?
Normalnie jest w granicach 9ms, pik 60-70ms jest skorelowany z odczytem HDD więc pewnie system na pendriva muszę przerzucić. Prędkość bazowania jest bardzo niska bo 5mm/s, chociaż w tym wypadku nie była by bazowana oś Z.

Może coś źle robię w ustawieniach tj. ustawiam pkt bazowania na 0.0, przy bazowaniu prędkość "HOME_SEARCH_VEL = 5.000000 " jest dodatnia, czyli szukamy z x do 0, czyli w linuxie pokazuje mi pozycję osi jako ujemną, dojeżdża do krańcówki, naciska ją i zamiast się cofać wyłącza zasilanie i pokazuje błąd.

Pole robocze to 200x200x100, na krańcach są krańcówki (limity). Po wpisaniu do stepconf tych danych pin oczywiście skonfigurowany jako wejście z both_limits+home, konfiguracja wygląda jak w 1 poście tj. max limit 200, min -0.001, i teoretycznie ma ignorować limity.


szary11
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 1
Posty: 377
Rejestracja: 16 lut 2011, 22:44
Lokalizacja: Tarnogród

#5

Post napisał: szary11 » 29 wrz 2015, 07:09

nie jestem asem od Linuxcnc, ale jeżeli dobrze widzę to w hal-u masz zdefiniowane cztery osie, a w ini trzy

wyrzuć /zakomentuj może pomoże
setp stepgen.3.position-scale [AXIS_3]SCALE
setp stepgen.3.steplen 1
setp stepgen.3.stepspace 0
setp stepgen.3.dirhold 60000
setp stepgen.3.dirsetup 60000
setp stepgen.3.maxaccel [AXIS_3]STEPGEN_MAXACCEL
net apos-cmd axis.3.motor-pos-cmd => stepgen.3.position-cmd
net apos-fb stepgen.3.position-fb => axis.3.motor-pos-fb
net astep <= stepgen.3.step
net adir <= stepgen.3.dir
net aenable axis.3.amp-enable-out => stepgen.3.enable

Awatar użytkownika

syntetyczny
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 3
Posty: 2696
Rejestracja: 08 gru 2009, 22:33
Lokalizacja: Elbląg
Kontakt:

#6

Post napisał: syntetyczny » 29 wrz 2015, 20:16

meriones pisze: W LinuxCNC także jest wykrywane każde naciśnięcie - powoduje błąd i wyłączenie zasilania.
Raczej powinien być komunikat triggered limit, bez wyłączania zasilania.
Kto pyta, nie błądzi. Eppur si muove
Kreatura CNC
Modernizacja plotera megaplot


tschaya
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 1
Posty: 101
Rejestracja: 10 sie 2004, 23:50
Lokalizacja: Grudzi?dz

#7

Post napisał: tschaya » 30 wrz 2015, 18:16

Ja tam ekspertem nie jestem i w prąd nie wierze, ale może to połączenie równoległe jest przyczyną błędu (kup sobie kartę z drugim portem i połącz krańcówki osobno ;).
Czy jesteś pewny, że oś Z, po zabazowaniu, zjeżdża z krancówki i nie pozostaje ona wciśnięta (piszesz że 1 mm - to nie za mało)?

Czy sprawdziłeś działanie krańcówek w: Maszyna - Pokaż konfigurację HAL - Pins - parport - Watch? Bo może jednak wystarczy zanegować sygnał którejś krańcówki?

I na koniec: spróbuj zmienić kolejność HOME_SEQUENCE = dla osi w pliku ini. Sprawdź czy błąd wystąpi tak samo dla innej konfiguracji bazownia. Tylko tu proszę ostrożnie, żeby nie uszkodzić maszyny (czyli najpierw Z do góry a potem np. bazowanie X,Z,Y).

Awatar użytkownika

syntetyczny
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 3
Posty: 2696
Rejestracja: 08 gru 2009, 22:33
Lokalizacja: Elbląg
Kontakt:

#8

Post napisał: syntetyczny » 30 wrz 2015, 19:32

Sekwencja bazowania jest taka:
1. Krańcowy wyłącznik nie wciśnięty
- maszyna najeżdża na oś szybko
- maszyna zjeżdża z osi szybko
- maszyna najeżdża na oś powoli

2. Krańcowy wyłącznik wciśnięty
- maszyna zjeżdża z wyłącznika szybko
- maszyna najeżdża na oś powoli

W obu przypadkach, maszyna zjeżdża na home position, która zazwyczaj jest tam, gdzie krańcówka.
Kto pyta, nie błądzi. Eppur si muove
Kreatura CNC
Modernizacja plotera megaplot

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „LinuxCNC (dawniej EMC2)”