Programy parametryczne i pętle
-
Autor tematu - Nowy użytkownik, używaj wyszukiwarki
- Posty w temacie: 5
- Posty: 5
- Rejestracja: 11 sie 2022, 14:47
Programy parametryczne i pętle
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.
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.
-
- Lider FORUM (min. 2000)
- Posty w temacie: 1
- Posty: 5597
- Rejestracja: 04 lip 2004, 16:03
- Lokalizacja: Gliwice
Re: Programy parametryczne i pętle
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

Zobacz moje filmy http://www.youtube.com/user/pokachontass/videos
-
Autor tematu - Nowy użytkownik, używaj wyszukiwarki
- Posty w temacie: 5
- Posty: 5
- Rejestracja: 11 sie 2022, 14:47
Re: Programy parametryczne i pętle
@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
PS: dzięki Adaś za Twoje filmiki bardzo mi pomogły w przerobieniu Avii FNF40P w bardzo precyzyjnego CNC'ka

-
- ELITA FORUM (min. 1000)
- Posty w temacie: 1
- Posty: 1242
- Rejestracja: 15 lis 2009, 02:46
- Lokalizacja: Olsztyn
- Kontakt:
Re: Programy parametryczne i pętle
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:).
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:).
-
- Lider FORUM (min. 2000)
- Posty w temacie: 2
- Posty: 2342
- Rejestracja: 28 sty 2007, 16:12
- Lokalizacja: Łódź
Re: Programy parametryczne i pętle
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.
-
- ELITA FORUM (min. 1000)
- Posty w temacie: 1
- Posty: 1563
- Rejestracja: 09 lip 2012, 20:34
- Lokalizacja: Poznań
Re: Programy parametryczne i pętle
Qq może zrobić programista a nie program. Sleep zwykle jest maskowaniem problemu a nie jego rozwiązaniem. Ale jest łatwy, prawda?qqaz pisze: ↑18 sie 2022, 00:32Cncgizmo 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.
-
Autor tematu - Nowy użytkownik, używaj wyszukiwarki
- Posty w temacie: 5
- Posty: 5
- Rejestracja: 11 sie 2022, 14:47
Re: Programy parametryczne i pętle
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)
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
@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
-
- Lider FORUM (min. 2000)
- Posty w temacie: 3
- Posty: 9290
- Rejestracja: 26 lut 2011, 23:24
- Lokalizacja: mazowieckie
Re: Programy parametryczne i pętle
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"...