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