Strona 1 z 2

Mach3 - makro do magazynu "parasolka"

: 24 lis 2020, 13:47
autor: gozdd
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.

Re: Mach3 - makro do magazynu "parasolka"

: 27 lis 2020, 07:50
autor: gozdd
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

Re: Mach3 - makro do magazynu "parasolka"

: 27 lis 2020, 09:20
autor: lepi
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?

Re: Mach3 - makro do magazynu "parasolka"

: 27 lis 2020, 10:30
autor: gozdd
Fakt, zatrzymanie silnika można wywalić poza pętle.
Ale Googlam za wykrywaniem zbocza w Mach'u i cisza. Podpowiesz jak to zrobić?

Re: Mach3 - makro do magazynu "parasolka"

: 27 lis 2020, 10:37
autor: lepi
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 😜

Re: Mach3 - makro do magazynu "parasolka"

: 27 lis 2020, 13:15
autor: gozdd
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)

Re: Mach3 - makro do magazynu "parasolka"

: 27 lis 2020, 13:45
autor: lepi
Nie ma. Zmienna Input4 nigdy nie jest ustawiana a i to nie wszystko.

Re: Mach3 - makro do magazynu "parasolka"

: 27 lis 2020, 19:05
autor: gozdd
Oczywiście Input jest wejściem, gdzie ma być ustawiany?

Re: Mach3 - makro do magazynu "parasolka"

: 27 lis 2020, 20:06
autor: lepi
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.

Re: Mach3 - makro do magazynu "parasolka"

: 29 lis 2020, 11:31
autor: qqaz
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