Mach3 - makro do magazynu "parasolka"

Dyskusje dotyczące najpopularniejszego programu sterującego maszynami CNC

Autor tematu
gozdd
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 8
Posty: 842
Rejestracja: 02 gru 2013, 19:21
Lokalizacja: Częstochowa

Mach3 - makro do magazynu "parasolka"

#1

Post napisał: gozdd » 24 lis 2020, 13:47

Cześć wszystkim

Poszukuję makro do Mach3 do obsługi magazynu typu "parasolka / umbrella". Magazyn obrotowy, wyjazd na siłowniku pneumatycznym.
Widział ktoś gdzieś takiego "gotowca"? Jeśli ktoś chciałby udostępnić płatnie też będę zainteresowany.




Autor tematu
gozdd
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 8
Posty: 842
Rejestracja: 02 gru 2013, 19:21
Lokalizacja: Częstochowa

Re: Mach3 - makro do magazynu "parasolka"

#2

Post napisał: gozdd » 27 lis 2020, 07:50

Okay, makro powoli się pisze, ale natrafiłem na jeden problem.
Włączam silnik obrotu magazynu i czekam na sygnał z czujnika aby silnik wyłączyć. To znaczy chciałbym tak zrobić, ale nie do końca to działa. Próbowałem też z SystemWaitFor i efekt podobny. Czasami zamiast np. 5 razy obróci 4. Sleep dodałem, aby krzywka zdążyła zjechać z czujnika.
Macie jakieś pomysły?

Kod: Zaznacz cały

	
While MagPos <> Tool
ActivateSignal(OUTPUT9) 'Motor CW
Sleep(500)
	While IsActive(Input4)
	Sleep(100)
	Wend
	DeActivateSignal(OUTPUT9)
	MagPos = MagPos + 1
		If MagPos = 17 Then
		MagPos = 1
		End If
Wend


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

Re: Mach3 - makro do magazynu "parasolka"

#3

Post napisał: lepi » 27 lis 2020, 09:20

Zamiast poziomu sygnału musisz wykrywać zbocze narastające. Zamiast dodawać sleep na zjazd wykrywać zbocze opadające.
Dlaczego zatrzymujesz silnik wewnątrz pętli?


Autor tematu
gozdd
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 8
Posty: 842
Rejestracja: 02 gru 2013, 19:21
Lokalizacja: Częstochowa

Re: Mach3 - makro do magazynu "parasolka"

#4

Post napisał: gozdd » 27 lis 2020, 10:30

Fakt, zatrzymanie silnika można wywalić poza pętle.
Ale Googlam za wykrywaniem zbocza w Mach'u i cisza. Podpowiesz jak to zrobić?


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

Re: Mach3 - makro do magazynu "parasolka"

#5

Post napisał: lepi » 27 lis 2020, 10:37

Programowo. Porównujesz stan bieżący ze stanem z poprzedniej iteracji pętli.
I wywal wtedy sleep(500), w tym czasie to można przekręcić magazyn o kilka pozycji 😜


Autor tematu
gozdd
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 8
Posty: 842
Rejestracja: 02 gru 2013, 19:21
Lokalizacja: Częstochowa

Re: Mach3 - makro do magazynu "parasolka"

#6

Post napisał: gozdd » 27 lis 2020, 13:15

Teraz ma to sens?

Kod: Zaznacz cały

While MagPos <> Tool
ActivateSignal(OUTPUT9)
	If Input4 = False Then
	Sleep(50)
		If Input4 = True Then
		MagPos = MagPos + 1
			If MagPos = 17 Then
			MagPos = 1
			End If
		End If
	End If
Wend
DeActivateSignal(OUTPUT9)


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

Re: Mach3 - makro do magazynu "parasolka"

#7

Post napisał: lepi » 27 lis 2020, 13:45

Nie ma. Zmienna Input4 nigdy nie jest ustawiana a i to nie wszystko.


Autor tematu
gozdd
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 8
Posty: 842
Rejestracja: 02 gru 2013, 19:21
Lokalizacja: Częstochowa

Re: Mach3 - makro do magazynu "parasolka"

#8

Post napisał: gozdd » 27 lis 2020, 19:05

Oczywiście Input jest wejściem, gdzie ma być ustawiany?


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

Re: Mach3 - makro do magazynu "parasolka"

#9

Post napisał: lepi » 27 lis 2020, 20:06

Jak już pisałem, musisz w zmiennej zapamiętać poprzedni stan wejścia. Poprzedni oznacza stan z poprzedniej iteracji pętli. Inaczej mówiąc np w ostatniej linii pętli.


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

Re: Mach3 - makro do magazynu "parasolka"

#10

Post napisał: qqaz » 29 lis 2020, 11:31

Co do samego makra.
wcześniej masz wyznaczone Gkodem oczekiwane narzędzie - TOOL
Z magazynu wiesz że nr narzędzia MagPos wymaga zmiany pozycji magazynu.
Bo MagPos <> TOOL.
Więc uruchamiasz swoje makro

While MagPos <> TOOL
.
.
.
.
wend

i chodzi ta pętla w kółko bez szans na zakończenie działania.

Bo jeżeli warunek while pozwolił je uruchomić to w trakcie działania (tam gdzie kropki) nie ma jak zmienić wartości MagPos i TOOL i petla zawsze ma zezwolenie na kolejne uruchomienie.
Jakim cudem talerz obrócił Ci się raz 4x a immym 5x?
Jakiś brak kontaktu na kablach, przerwa w zasilaniu od drgań sprzętu?
Bo z pewnoscia nie na skutek działania makra.

Druga sprawa
Uruchamiasz silnik - bo narzędzie niezgodne z TOOL
czekasz na własciwą pozycję

While MagPos <> TOOL
MagPos= aktualna wartość
wend

i tyle, po prostu czekasz ale w treści petli aktualizuj wartość MagPOs odczytując jej wartość na bierząco.
Jak ją odczytujesz, gdzie jest dostępna to tego nie opisałeś.
Ale kiedyś bedzie miała taką wartość żę wętla się skończy.

a dalej już z górki
-wyłacz silnik
-zarygluj talerz
sprawdż na wszelki wypadek czy to co zaryglowałeć jest oczekiwanym narzędziem( jszcze raz )

-IF MagPos=TOOL
-message="Talerz na pozycji"
else
( jakieś działąnie obsługi błędu pozycji talerza)
-end if

-wymień narzędzie

i makro bedzie działać.
Makro, nie magazyn bo ten jeszcze musi odpowiednio się zatrzymać, a może i cofnąć silnikiem do siłowego zaryglowania
Opisz co i jak dzieje się w mechanice talerza bo na razie ten opis gwarantuje niedziałanie magazynu

ODPOWIEDZ Poprzedni tematNastępny temat

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