Programy parametryczne i pętle

Dyskusje dotyczące najpopularniejszego programu sterującego maszynami CNC

Autor tematu
Cncgizmo
Nowy użytkownik, używaj wyszukiwarki
Nowy użytkownik, używaj wyszukiwarki
Posty w temacie: 5
Posty: 5
Rejestracja: 11 sie 2022, 14:47

Programy parametryczne i pętle

#1

Post napisał: Cncgizmo » 11 sie 2022, 15:10

Cześć,
Po instalacji programu Mach3 trochę się zawiodłem, program nie rozumie komend takich jak: WHILE, GOTO, IF, ELSE. Jestem bardzo przyzwyczajony do parametrycznego programowania maszyny i pisania własnych cykli, bo swoją karierę zaczynałem na mocno okrojonym FANUCU bez żadnych cykli.
Wyczytałem że można w Mach3 stworzyć własne macra i podstawiać pod Mcody lub otrzymać pętle za pomocą VBScripts.
Jak wygląda proces? jest może jakiś tutorial gdzieś?
Jak wygląda podział zmiennych w Mach3? które #X są globalne a które lokalne?
Z jakich zmiennych można pobrać długość narzędzi (jakie numery), a z jakich np. aktualny czas wyrażony w sekundach?

Będę wdzięczny za jakiekolwiek wskazówki.



Awatar użytkownika

adam Fx
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 1
Posty: 5544
Rejestracja: 04 lip 2004, 16:03
Lokalizacja: Gliwice

Re: Programy parametryczne i pętle

#2

Post napisał: adam Fx » 11 sie 2022, 15:25

Wiem że to nie odp. ale o mach3 nie wiem na tyle by pomóc z to z LinuxCNC zrobisz to czego oczekujesz.
sorki za wszystkie błędy ... (dyslektyk) :?
Zobacz moje filmy http://www.youtube.com/user/pokachontass/videos


Autor tematu
Cncgizmo
Nowy użytkownik, używaj wyszukiwarki
Nowy użytkownik, używaj wyszukiwarki
Posty w temacie: 5
Posty: 5
Rejestracja: 11 sie 2022, 14:47

Re: Programy parametryczne i pętle

#3

Post napisał: Cncgizmo » 11 sie 2022, 15:46

@adam Fx wiem zapoznałem się z LinuxCNC próbowałem go opanować przez 2tygodnie i zdecydowałem się przesiąść na mach3 - maszynka musi być mega intuicyjna dla operatorów.
PS: dzięki Adaś za Twoje filmiki bardzo mi pomogły w przerobieniu Avii FNF40P w bardzo precyzyjnego CNC'ka ;)


tomcat65
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 1
Posty: 1209
Rejestracja: 15 lis 2009, 02:46
Lokalizacja: Olsztyn
Kontakt:

Re: Programy parametryczne i pętle

#4

Post napisał: tomcat65 » 12 sie 2022, 17:14

Na stronie Artsoft'u w dziale pomocy znajdziesz kilka pdf-ów. Sporo czytania, mniej treści - jeśli już znasz zasady cnc i programowania.
Zmienne - nie ma podziału na lokalne i globalne (tym bardziej automatyczne ). Jedyne co je definiuje to nr.
Podprogramy - pętle itp - nie trzeba robić w makrach.
Podprogramy definiujesz jako o (nie zero, o duże czy małe bez znaczenia) i nr. Czyli:
o1
Kod...
....
...
M99

Po m99 koniecznie enter.

Wywołanie podprogramu to kod m98 Pxxx Lxxx, gdzie P to nr. wywoływanego podprogramu, L ilość powtórzeń.

Funkcje logiczne też są, ale znajdziesz opis w plikach pomocy.
Na razie tyle:).


qqaz
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 2
Posty: 1730
Rejestracja: 28 sty 2007, 16:12
Lokalizacja: Łódź

Re: Programy parametryczne i pętle

#5

Post napisał: qqaz » 18 sie 2022, 00:32

Cncgizmo pisze:Jak wygląda podział zmiennych w Mach3? które #X są globalne a które lokalne?

Mach to oprogramowanie dla pralki - robi kolejno co napisane. Wszelkie warianty warunkowe tylko w makrach Mxx. bo w samym Machu tylko iteracja podprogramu.
Ale można /trzeba stworzyć sobie bank pamięci z którego pobierasz wartości ustawione przez program lub wcześniejsze makro
Jakaś dodatkowa strona /ekran na którym umieszczasz swoje DRO dla wartości zmiennych i własne ledy zapalane jako ustawione bity. I jest dostęp do wszystkiego co sobie wymyślisz przez cały czas gdy Mach jest włączony. A niektóre są nawet zapisywane do odtworzenia w następnej sesji.
Vbasic jest na tyle prosty że bez problemu dasz sobie radę z makrami.
Jedyna uwaga to uwzględniaj czas działania - pod Windowsem są różne efekty gdy makro jest pędzone bez żadnych zwłok czasowych nie pozwalających na równoczesną pracę reszty z tła systemu.
Czyli często sleep(xxx) w treści makra.
Oraz fakt że dla Macha realizowany Gkod i uruchomione makro są równorzędne tyle że makra nie widać no i qq.


lepi
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 1
Posty: 1134
Rejestracja: 09 lip 2012, 20:34
Lokalizacja: Poznań

Re: Programy parametryczne i pętle

#6

Post napisał: lepi » 18 sie 2022, 17:02

qqaz pisze:
18 sie 2022, 00:32
Cncgizmo pisze:Jak wygląda podział zmiennych w Mach3? które #X są globalne a które lokalne?

Mach to oprogramowanie dla pralki - robi kolejno co napisane. Wszelkie warianty warunkowe tylko w makrach Mxx. bo w samym Machu tylko iteracja podprogramu.
Ale można /trzeba stworzyć sobie bank pamięci z którego pobierasz wartości ustawione przez program lub wcześniejsze makro
Jakaś dodatkowa strona /ekran na którym umieszczasz swoje DRO dla wartości zmiennych i własne ledy zapalane jako ustawione bity. I jest dostęp do wszystkiego co sobie wymyślisz przez cały czas gdy Mach jest włączony. A niektóre są nawet zapisywane do odtworzenia w następnej sesji.
Vbasic jest na tyle prosty że bez problemu dasz sobie radę z makrami.
Jedyna uwaga to uwzględniaj czas działania - pod Windowsem są różne efekty gdy makro jest pędzone bez żadnych zwłok czasowych nie pozwalających na równoczesną pracę reszty z tła systemu.
Czyli często sleep(xxx) w treści makra.
Oraz fakt że dla Macha realizowany Gkod i uruchomione makro są równorzędne tyle że makra nie widać no i qq.
Qq może zrobić programista a nie program. Sleep zwykle jest maskowaniem problemu a nie jego rozwiązaniem. Ale jest łatwy, prawda?


Autor tematu
Cncgizmo
Nowy użytkownik, używaj wyszukiwarki
Nowy użytkownik, używaj wyszukiwarki
Posty w temacie: 5
Posty: 5
Rejestracja: 11 sie 2022, 14:47

Re: Programy parametryczne i pętle

#7

Post napisał: Cncgizmo » 07 wrz 2022, 09:10

Nie za bardzo wiem jak to ugryźć i jak to wygląda...
@tomcat65 Ok czyli podprogram można stosować jak pętle while. Część obliczeniową programu musimy przenieść do programu głównego aby wyliczyć ilość przejść a następnie zapisać L#XXX. Jak i gdzie mam mieć zapisane programy aby zostały prawidłowo wczytane? Czy nazwa pliku txt. ma znaczenie?

@qqaz Czy byłbyś w stanie mi pomóc zrobić pierwszy program w oparciu o makra lub pokazał jakiś prosty program abym zobaczył jak to działa?

Mój przykładowy cykl: Fazowanie ze zmienną powierzchnią
(Zaimplementowałem tutaj dla fun'u generator liczb losowych bazujący na godzinie podanej w sekundach #3012 dla Fanuca)

Kod: Zaznacz cały

O0720(FAZOWANIE ZE ZMIENNA POWIERCHNIA)(MADE BY PAWEL BLASZCZYK. ALL RIGHTS RESERVED) 
 
G54

#100=30 (SREDNICA MINIMALNA FAZOWNIKA)
#101=30 (KAT FAZOWNIKA)
#102=5 (WYSOKOSC PLYTKI FAZOWNIKA)
#104=50 (SREDNICA FAZOWANIA)
#105=-100 (POCZATEK W OSI z)
#106=0,5 (GLEBOKOSC FAZY W OSI z)
#107=0 (DOJAZD I OBROBKA 0-WEWNETRZNA 1-ZEWNETRZNA)
#108=100 (POSOW)
#109=1000 (OBROTY)
#110=5 (NUMER NARZEDZIA)
#111=5 (ODLEGLOSC BEZPIECZNA)
#199=10 (ILOSC LICZB MOZLIWYCH DO WYLOSOWANIA)

(OBLICZENIA LICZBA LOSOWA)

#198=#3012MOD#199 (WYLOSOWANA LICZBA)

(OBLICZENIA PROGRAMOWE)

#126=#[1300+#110] (KOMPENSACJA PROMIENIA NARZEDZIA)
#122=0 (ZMIENNA DLA DOJAZDU I OBROTU)
#116=0,1 (DOKLADNOSC PODANA W WARTOSCI KATOWEJ)
#114=0 (CHWILOWY KAT PODCZAS CYKLU/KAT POCZATKOWY)
#103=[TAN[#101]*#102] (SZEROKOSC PLYTKI FAZOWANIKA)
#102=#102-[0,1*#102] (ZMNIEJSZENIE WYSOKOSCI PLYTKI ZE WZGLEDU NA NIEDOKLADNOSCI POMIAROWE)
#103=#103-[0,1*#103] (ZMNIEJSZENIE SZEROKOSCI PLYTKI ZE WZGLEDU NA NIEDOKLADNOSCI POMIAROWE)
#102=[#102/#199] (MINIMALNE PRZESUNIECIE WYSOKOSCI)
#103=[#103/#199] (MINIMALNE PRZESUNIECIE SZEROKOSCI)
#102=[#102*#198] (PRZESUNIECIE LOSOWE WYSOKOSCI)
#103=[#103*#198] (PRZESUNIECIE LOSOWE SZEROKOSCI)
#126=[#126+#103] (KOMPENSACJA PROMIENIA NARZEDZIA SKORYGOWANA O PRZESUNIECIE LOSOWE)
#106=[#106+#102] (GLEBOKOSC FAZY SKORYGOWANA O PRZESUNIECIE LOSOWE)

(ALARMY I ZALOZENIA LOGICZNE)

IF[#100LE0]THEN#3000=1(ZLA SREDNICA MINIMALNA #100)
IF[#101LE0]OR[#101GE90]THEN#3000=1(ZLY KAT FAZOWNIKA #101)
IF[#102LE0]THEN#3000=1(ZLA WYSOKOSC PLYTKI FAZOWNIKA #102)
IF[#104LE0]THEN#3000=1(ZLA SREDNICA FAZOWANIA #104)
IF[#106LE0]OR[#106GE#102]THEN#3000=1(ZLA GLEBOKOSC FAZY #106)
IF[#107LT0]OR[#107GT1]THEN#3000=1(ZLY RODZAJ DOJAZDU I OBROBKI #107)
IF[#108LE0]THEN#3000=1(ZLY POSOW #108)
IF[#109LE0]THEN#3000=1(ZLE OBROTY #109)
IF[#110LE0]OR[#110GT60]THEN#3000=1(ZLY NUMER NARZEDZIA #110)
IF[#111LE0]THEN#3000=1(ZLA ODLEGLOSC BEZPIECZNA #111)
IF[#199LE0]THEN#3000=1(ZLA ILOSC LICZB DO WYLOSOWANIA #199)
IF[#107EQ0]THEN#122=-1 
IF[#107EQ1]THEN#122=1

(WLASCIWY PROGRAM)

G0G54G90T#110M06
G43#110X0Y0Z200
G0X[[[#104/2]+[#126*#122]*COS[#114]]Y[[[#104/2]+[#126*#122]*SIN[#114]]Z[#105+#111]
M01
M10
G01Z[#105-#106]M03F#108S#109
WHILE[#114LT360]DO1
G01X[[[#104/2]+[#126*#122]*COS[#114]]Y[[[#104/2]+[#126*#122]*SIN[#114]]
#114=[#114+#116]
END1
G01Z[#105+#111+10]
G00Z200
G00X0Y0
M05
M11
M01
M99
Byłem operatorem (prawie) "jednego cyklu" mam cykl który jest bardzo rozbudowany, można warunkować masę rzeczy opcji frezowania w interpolacji stożkowej i bardzo bym chciał go przepisać na Mach3

Awatar użytkownika

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

Re: Programy parametryczne i pętle

#8

Post napisał: tuxcnc » 07 wrz 2022, 10:27

Cncgizmo pisze:
11 sie 2022, 15:46
zapoznałem się z LinuxCNC próbowałem go opanować przez 2tygodnie i zdecydowałem się przesiąść na mach3 - maszynka musi być mega intuicyjna dla operatorów.
Na głupotę nie ma lekarstwa...


dudziak4
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 1
Posty: 665
Rejestracja: 06 wrz 2007, 13:30
Lokalizacja: Bielawa

Re: Programy parametryczne i pętle

#9

Post napisał: dudziak4 » 07 wrz 2022, 11:29

Masz rację głupotą by było brać cię za jakikolwiek autorytet.

Awatar użytkownika

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

Re: Programy parametryczne i pętle

#10

Post napisał: tuxcnc » 07 wrz 2022, 12:21

dudziak4 pisze:
07 wrz 2022, 11:29
Masz rację głupotą by było brać cię za jakikolwiek autorytet.
Jeżeli masz nadzieję że twoja opinia robi na mnie jakiekolwiek wrażenie, to jesteś w błędzie...
A tak w ogóle to nie chodzi tutaj o mnie, tylko o autora tematu, który nie poradził sobie tam gdzie mógłby sobie poradzić, więc się przesiadł na program o którym nie ma zielonego pojęcia, z którym nie poradzi sobie nigdy i pisze że to po to, żeby było łatwiej...
Powyższe to obiektywna ocena i nie ma żadnego związku z tym, że nie lubię ludzi którzy proszą innych o poświęcenie za darmo kawałka własnego życia, a sami zaczynają swoje dzieła od "ALL RIGHTS RESERVED"...

ODPOWIEDZ Poprzedni tematNastępny temat

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