mach3+enkoder

zatrzymanie posuwu na podstawie odczytu z enkodera

Dyskusje dotyczące najpopularniejszego programu sterującego maszynami CNC

Autor tematu
schody.sek
Sympatyk forum poziom 1 (min. 40)
Sympatyk forum poziom 1 (min. 40)
Posty w temacie: 26
Posty: 48
Rejestracja: 17 cze 2012, 00:46
Lokalizacja: zach pom
Kontakt:

Re: mach3+enkoder

#51

Post napisał: schody.sek » 19 mar 2019, 18:23

i tu się mylisz- makro qqaza działa. ty też miałeś troche racji bo pokrycia odczytów od czasu do czasu się rozjeżdzają o setke. podczas realizacji programu mam na myśli gcody- pojawia się co jakiś czas odchył o 0,01 ale po jakimś czasie jeden licznik dogania drugi i wskazania się pokrywają. i tak cały czas pier__li.jedyne co jest kłopotliwe to fakt zę jeżeli zatrzymasz program gdy jest odchyłka (ta jedna setka) to kasująć licznik zera materiału na liczniku enkodera zostaje błąd w postaci tej jednej setki. trzeba więc pilnować obu liczników .można to też załatwić programowo ale to jest już inny temat. kłopotliwe jest również to zę jak się zgubi krok to nie idzie skasować błędu bo macro pump prubkóje i wyżóca błąd. myślałem też nad tym żeby wywoływać i kończyć prace makra gcodem zeby działało tylko kiedy frezuje ale to nie jest profesjonalne rozwiązanie. jeszcze jedna uwaga jeżeli ustawisz enkoder w fazie z silnikiem to rozbieżności odczytów zdażają sie bardzo żadko. trzeba go ruszyć o piczy kłak i już cieszy oko. po co tak niepotrzebnie rozbudowywać program który działa i to dobrze.po co komu pozycja macha i pozycja enkodera stan zabazowania osi? włanczasz macha zerujesz liczniki i frezujesz. qqaza makro pilnuje dopuszczalnego błędu odchyłów -który sam określasz. można się popisywać pisząc macro tylko po co jak sprawdzają się proste rozwiązania. trzeba przyznać że masz fantazje. gdy byś ty napisał to makro to nikt by się nie połapał jak działa. qqaz zrobił to tak że nawet jak potafie przełożyć je na normalny język. na razie co prawda bawiłem się jadną osią, ale z pozostałymi nie będzie problemu. a teraz zabawie się w adwokata qqaza. możesz go poprasić o adres i wysłąć mu tą obiecaną skrzynke- bo to jemu należy się nagroda za pomysł i prostotę w realizacji założonego celu. a zapomiałem - ty nie dotrzymujesz słowa

Dodane 1 godzina 35 minuty 53 sekundy:
i te programy które mi podesłałeś miały ci pomóc skąpletować te obowiązkowe dane? to ciekawe




Autor tematu
schody.sek
Sympatyk forum poziom 1 (min. 40)
Sympatyk forum poziom 1 (min. 40)
Posty w temacie: 26
Posty: 48
Rejestracja: 17 cze 2012, 00:46
Lokalizacja: zach pom
Kontakt:

Re: mach3+enkoder

#52

Post napisał: schody.sek » 21 mar 2019, 15:23

lepi nasz racje makro musi być bardziej rozbudowane. ubzdurałem sobie że kod musi być prosty i bezrozumnie się tego trzymałem. nie dopuszczałem innej ewentualności.za awanturę przepraszam.


qqaz
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 11
Posty: 2111
Rejestracja: 28 sty 2007, 16:12
Lokalizacja: Łódź

Re: mach3+enkoder

#53

Post napisał: qqaz » 21 mar 2019, 23:28

Trochę lepiej

widziałbym to tak

1) Po właczeniu należy maszynę zahołmować
Koniecznie z klawisza ekranu gdyż w nim będzie zaszyta procedura zerowania enkodera osi

2)Usermled(1001)-ma zapamiętać że pozycjonowanie nastąpiło i odczyt enkodera jest prawidłowy
Zapamiętanie stanu jako zapalenie jakiegoś kontrolnego leda np userled(1001) dla osi x
Następne userled(1002) (1003)..(1009) dla następnych osi.

3) Userled(1011) - wprowadzić kontrolę zgodności wszystkich osi
to będzie wskaźnik dla użytkownika

4) Userled(1012) kontrola zezwolenia od strony użytkownika
Zapalisz leda to działa, zgasisz to zadziałanie makra jest wstrzymane
Można zrobić to tak że uruchomienie RUN z automatu załącza aktywność leda i makro program będzie mogło zatrzymać o ile w trakcie realizacji nie wyłaczysz go klawiszem na ekranie.
Klawisz może być typu toogle - przełącza swieci/nie świeci.

5) klawisz ręcznej synchronizacji licznika enkodera z licznikiem osi
Naciskasz i na enkoderze masz wpisany stan osi - proste wymuszenie zgodności w każdym momencie.

Co wpisać:
do ekranu maszyny wstaw odpowiednie ledy (pkt 2,3,4) i DRO enkoderów.
Wstaw własne klawisze (pkt 4,5) i popraw treść hołma.

6) klawisz Refallhome zawiera:
DoButton( 24 )
DoButton( 23 )
DoButton( 22 )
DoButton( 25 )

dopisz między linijkami odpowiednio:

DoButton( 24 )' pozycjonowanie osi Z

if getoemled(809) then ' led osi Z świeci na zielono
SetOEMDro(31,0)' wyzerowanie enkodera osi Z
Setuserled(1003,1)' led synchro osi Z świeci
end if



DoButton( 23 ) - odpowiednio dla X
.
.
.
DoButton( 22 ) - odpowiednio dla Y
.
.
.
DoButton( 25 )

klawisz hołma poprawiony.



7) Wstaw klawisz z pkt 5) - ręczne zsynchronizowanie

treść klawisza:
a=getoemdro(83) ' odczytanie wartości maszynowej osi X
setoemdro(29,a) ' wpisanie wartości do licznika enkodera - jest zgodność
setuserled(1001,1) ' zapalenie leda bo jest oś X zsynchronizowana

tak samo dla Y i Z

klawisz ręcznej synchronizacji zrobiony


Wstaw klawisz z pkt 4) - zezwolenie działania

treść klawisza:
if getuserled(1012) then ' led pali/nie pali
setuserled(1012,0) ' zgaś leda
else
setuserled(1012,1) ' zapal leda
end if

klawisz przełaczania zezwolenia na działąnie makra zrobiony.
Chyba będzie działął również podczas wykonywania Gkodu - nie wiem, sprawdzisz.


8.) Teraz treść makropump

uchyb= stała ( albo wartość ze swojego wstawionego jakiegoś DRO na ekranie którego zawartość możęsz przecież edytować tak jak każdą oś)

if getuserled(1001) and getuserled(1002) and getuserled(1003) then
setuserled(1011,1) 'wszystkie osie OK
else
setuserled(1011,0)
end if ' nie wiem po co to powyżej ale będzie widać na ekranie ...


if getuserled(1012) then ' można sprawdzać

a=getoemdro(29)
b=getoemdro(83)
c=a-b
if Abs(c)>uchyb then
dooembutton(1003)
setuserled(1001,0) ' zgaś leda Xsynchro bo się rozjechało
message("no i du**")
sleep 1000
end if ' C

if.... dla następnej osi.
.
end if ' C
if.... dla następnej osi
.
end if ' C

end if '(1012)

chyba wszystko, doceń, półgodziny pisałem.


Autor tematu
schody.sek
Sympatyk forum poziom 1 (min. 40)
Sympatyk forum poziom 1 (min. 40)
Posty w temacie: 26
Posty: 48
Rejestracja: 17 cze 2012, 00:46
Lokalizacja: zach pom
Kontakt:

Re: mach3+enkoder

#54

Post napisał: schody.sek » 22 mar 2019, 10:49

qqaz dziękuje ci bardzo za makro, wyślij mi proszę swój adres na pw. lepi naprawde mi głupio że tak to wyszło. do tej pory oczy przecieram
jak patrze na kod qqaza.


Autor tematu
schody.sek
Sympatyk forum poziom 1 (min. 40)
Sympatyk forum poziom 1 (min. 40)
Posty w temacie: 26
Posty: 48
Rejestracja: 17 cze 2012, 00:46
Lokalizacja: zach pom
Kontakt:

Re: mach3+enkoder

#55

Post napisał: schody.sek » 04 lut 2023, 12:56

działające i sprawdzone macro

uchyb= 0.2 'tutaj wstaw dopuszczalną wartość błedu

If getuserled(1001) And getuserled(1002) And getuserled(1003) Then
setuserled (1011,1)
Else
setuserled(1011,0)
end if

If getuserled(1012) Then ' mozna sprawdzić

a=getoemdro(29) ' - x enkoder
b=getoemdro(178) ' - offset x
c=a-b
If Abs(c) > uchyb Then 'warunek
dooembutton( 1003) ' przyciśnij guzik
setuserled(1001,0)
message("oś x zgubiła krok") ' wyświetl komunikat
Else
setuserled(1001,1)

End If

d=getoemdro(30) ' - y enkoder
e=getoemdro(179) ' - offset y
f=d-e 'warunek
If Abs(f) > uchyb Then
dooembutton( 1003)
setuserled(1002,0)
message("os y zgubiła krok")
Else
setuserled(1002,1)
End If

g=getoemdro(31) ' - z enkoder
h=getoemdro (180) ' - offset z
i=g-h 'warunek
If Abs(i) > uchyb Then
dooembutton( 1003)
setuserled(1003,0)
message("os z zgubiła krok")
Else
setuserled(1003,1)
End If

End If

zerowanie liczników


a= getoemdro( 83 )
setoemdro( 29,a )
setuserled( 1001,1 )


d=getoemdro ( 84 )
setoemdro( 30,d )
setuserled( 1002,1)


g= getoemdro( 85 )
setoemdro( 31,g)
setuserled( 1003,1 )

If getuserled(1001) And getuserled(1002) And getuserled(1003) Then

setuserled(1011,1)
message("")
End If

ważne!!!!! kable od enkoderów puściłem osobnym prowadnikiem przewodów bo gdy szły razem z kablami od silników nie działało
cała elektronika od enkoderów jest w odrębnej skrzynce. gdy sterowanie silników i enkoderów było w jednej skrzynce nie działało.


qqaz
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 11
Posty: 2111
Rejestracja: 28 sty 2007, 16:12
Lokalizacja: Łódź

Re: mach3+enkoder

#56

Post napisał: qqaz » 04 lut 2023, 13:56

Radzisz sobie i jest efekt. O to biega.
Ale podejrzewam że enkodery z wyjściem OC podłączyłeś bezpośrednio do wejść Macha, ewentualnie jeszcze jakiś opornik. Dlatego łapał zakłócenia.
Wszelkie takie powinny być łączone linią różnicową. Nawet gdy poziom zakłóceń jest wysoki i jeszcze się ujawnia to wtedy ładuje się 2x większy prąd w połączeniu i już nic nie przeszkadza. A w linię można też i 1A puścić - ciekawe co by być musiało aby taki sygnał zneutralizować . Przy zainstalowanych mocach maszyny te kilka watów więcej...
We frezarce połączenie głowicy - silnik wrzeciona na falowniku, napęd osi Z czyli silnik prądu stałego i jego enkoder (UHU tym steruje), krańcówki góra/dół i home idą razem w jednym prowadniku łańcuchowym. I nic, żadnych zakłóceń ani gadania że falownik "trudny"
I pod Machem2 już 15 lat chodzi.

Awatar użytkownika

tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 1
Posty: 7861
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Re: mach3+enkoder

#57

Post napisał: tuxcnc » 04 lut 2023, 14:51

qqaz pisze:
04 lut 2023, 13:56
Wszelkie takie powinny być łączone linią różnicową. Nawet gdy poziom zakłóceń jest wysoki i jeszcze się ujawnia to wtedy ładuje się 2x większy prąd w połączeniu i już nic nie przeszkadza. A w linię można też i 1A puścić - ciekawe co by być musiało aby taki sygnał zneutralizować . Przy zainstalowanych mocach maszyny te kilka watów więcej...
Zakłócenia indukują się na WSZYSTKICH przewodach, więc także na zasilaniu i masie. Żadne linie różnicowe, ani zwiększanie prądu nie pomoże, kiedy czujnik dostaje zakłócenia po zasilaniu i od tego głupieje.
Poza tym masz rację.


Autor tematu
schody.sek
Sympatyk forum poziom 1 (min. 40)
Sympatyk forum poziom 1 (min. 40)
Posty w temacie: 26
Posty: 48
Rejestracja: 17 cze 2012, 00:46
Lokalizacja: zach pom
Kontakt:

Re: mach3+enkoder

#58

Post napisał: schody.sek » 05 lut 2023, 12:11

nie wiem co zakłucało czy kable zasilające krokowce, czy kabel zasilający wrzeciono, czy też zasilanie z jednego źródła - sterowania i
enkoderów. teraz enkodery mają swój własny zasilacz i skrzynke a kable odrębny prowadnik przewodów - i działa.

Dodane 12 minuty 17 sekundy:
jezeli krańcówki będą działały na rozwarcie to zakłucenia nie będą im przeszkadzać, ale jeżeli stan wysoki będzie rozłanczał posówy to będzie pier...ić. przerabiałem temat stawania posuwów bez "przyczyny".


qqaz
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 11
Posty: 2111
Rejestracja: 28 sty 2007, 16:12
Lokalizacja: Łódź

Re: mach3+enkoder

#59

Post napisał: qqaz » 08 lut 2023, 22:35

Pewnie teraz to może być irytujące ale te kalambury rebusów z makrem mogą być zastąpione kilkoma linijkami w tzw "mózgu" Macha - coś jak PLC ala drabinkowy.
Qq polega na tym że jest DRO które wprost udostępnia na bieżąco gotową różnicę pomiędzy wskazanymi licznikami. Tylko sprawdzić czy nie jest większe niż i wtedy...


Autor tematu
schody.sek
Sympatyk forum poziom 1 (min. 40)
Sympatyk forum poziom 1 (min. 40)
Posty w temacie: 26
Posty: 48
Rejestracja: 17 cze 2012, 00:46
Lokalizacja: zach pom
Kontakt:

Re: mach3+enkoder

#60

Post napisał: schody.sek » 15 lut 2023, 21:05

a jest możliwość wyciągnięcia na pulpit "włącznika mózgu"?

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Mach 2 / 3 / 4 (ArtSoft software)”