Strona 1 z 1

Linux CNC, bazowanie i limity

: 28 wrz 2015, 11:12
autor: meriones
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

: 28 wrz 2015, 15:42
autor: steff.k
A maszynę włączasz na krańcówce czy wrzeciono jest gdzieś po środku osi?

: 28 wrz 2015, 21:26
autor: syntetyczny
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.

: 29 wrz 2015, 01:08
autor: meriones
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.

: 29 wrz 2015, 07:09
autor: szary11
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

: 29 wrz 2015, 20:16
autor: syntetyczny
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.

: 30 wrz 2015, 18:16
autor: tschaya
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).

: 30 wrz 2015, 19:32
autor: syntetyczny
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.