Prośba o pomoc w napisaniu makra
-
Autor tematu - Specjalista poziom 2 (min. 300)
- Posty w temacie: 7
- Posty: 316
- Rejestracja: 10 cze 2007, 15:09
- Lokalizacja: Ostrów
Prośba o pomoc w napisaniu makra
Witam czy ktoś z bardziej doświadczonych kolegów mógłby mi pomóc w napisaniu prostego makra. Opiszę o co mi chodzi będzie to lepiej zrozumiałe jak makro ma działać. Wycinam małe aluminiowe ramki z arkuszy blach aluminiowych w tych ramkach są po dwa otwory które trzeba nagwintować, z arkusza wychodzi mi jakieś 60 ramek czyli 120 otworów, ręczne gwintowanie raczej mozolna praca więc skonstruowałem małą przystawkę go gwintowania która posiada własne sterowanie na uC. Zadaniem makra jest wysyłanie sygnału do mikrokontrolera w przystawce wtedy gdy gwintownik znajdzie się na otworem który ma być nagwintowany. Dokładnie ma wyglądać to tak mam gkod z pozycjami otworów maszyna jedzie nad otwór w momencie gdy w gkodzie pojawia się polecenie Z-1 makro wysyła sygnał na port lpt np uruchamia przekaźnik wtedy uruchamia się przystawka gwintuje otwór po zakończeniu gwintowania przystawka wysyła sygnał makro ma go odebrać i maszyna jedzie do następnego otworu i znowu makro wykrywa polecenie Z-1 wysyła sygnał do przystawki i tak w kółko aż nagwintuje wszystkie otwory.
Tagi:
-
- ELITA FORUM (min. 1000)
- Posty w temacie: 2
- Posty: 1037
- Rejestracja: 01 kwie 2006, 22:08
- Lokalizacja: Wroclaw
- Kontakt:
Najprostsza metoda byloby chyba uzycie M-kodow uzytkownika
np. M200 - zalaczenie portu 5.
w polaczeniu z funkcja Dwell ( G04 P5.0 - gdzie 5.0 - czas oczekiwania w sekundach). Czas oczywiscie trzeba dobrac tak aby byla pewnosc, ze przystawka nagwintuje otwor + jakas rezerwa.
Wowczas bedzie to wygladalo tak:
...
kod programu
.....
M200 ( port 5 aktywny - zalacz przystawke)
G04 P5.0 (czas na nagwinotwanie otworu)
M201 ( wylacz port 5)
....
kontynuacja programu
Albo z tego co sie zorientowalem mozna utoworzyc makro np M555.m1s, ktore sklada sie z tego:
activateSignal(OUTPUT3)
sleep 100
deactivateSignal(OUTPUT3)
While Not isActive(INPUT4)
sleep 100
Wend
W programi wyglada to wtedy tak:
X100 Y100 ; najazd na pozycje
M555 ; aktywowanie wyjscia 3 i oczekiwanie na wejscie nr 4
X200 Y200 ; kontynuacja programu, najazd na nowa pozycje
M555 ; kolejny otwor
np. M200 - zalaczenie portu 5.
w polaczeniu z funkcja Dwell ( G04 P5.0 - gdzie 5.0 - czas oczekiwania w sekundach). Czas oczywiscie trzeba dobrac tak aby byla pewnosc, ze przystawka nagwintuje otwor + jakas rezerwa.
Wowczas bedzie to wygladalo tak:
...
kod programu
.....
M200 ( port 5 aktywny - zalacz przystawke)
G04 P5.0 (czas na nagwinotwanie otworu)
M201 ( wylacz port 5)
....
kontynuacja programu
Albo z tego co sie zorientowalem mozna utoworzyc makro np M555.m1s, ktore sklada sie z tego:
activateSignal(OUTPUT3)
sleep 100
deactivateSignal(OUTPUT3)
While Not isActive(INPUT4)
sleep 100
Wend
W programi wyglada to wtedy tak:
X100 Y100 ; najazd na pozycje
M555 ; aktywowanie wyjscia 3 i oczekiwanie na wejscie nr 4
X200 Y200 ; kontynuacja programu, najazd na nowa pozycje
M555 ; kolejny otwor
>>>>>>>>>> GELO <<<<<<<<<<
-
- Lider FORUM (min. 2000)
- Posty w temacie: 5
- Posty: 2347
- Rejestracja: 28 sty 2007, 16:12
- Lokalizacja: Łódź
Jeżeli :gelo pisze:
activateSignal(OUTPUT3)
sleep 100
deactivateSignal(OUTPUT3)
While Not isActive(INPUT4)
sleep 100
Wend
sleep 100
wykonywana jest bezwarunkowo to czy może być tak ?
że:
activateSignal(OUTPUT3)
sleep 100 'przystawka startuje i szybko kończy
deactivateSignal(OUTPUT3)
While Not isActive(INPUT4)
sleep 100 'i się nie doczeka bo już wczesniej był impuls że skończyła
Wend[/b]
-
Autor tematu - Specjalista poziom 2 (min. 300)
- Posty w temacie: 7
- Posty: 316
- Rejestracja: 10 cze 2007, 15:09
- Lokalizacja: Ostrów
Dlaczego ma się nie doczekać nie testowałem makra ale dla mnie to będzie wyglądało tak:
M555 wywołanie makra
activateSignal(OUTPUT3)
sleep 100
deactivateSignal(OUTPUT3)
Na output3 pojawia się impuls trwający 100ms
przystawka startuje i po wykonaniu operacji wysyła impuls do macha który jest odbierany poleceniem :
While Not isActive(INPUT4)
sleep 100
Wend
Po odebraniu impulsu maszyna czeka 100ms i jedzie dalej aż do kolejnego wywołania makra. Jeśli źle rozumuję to proszę mnie poprawić.
M555 wywołanie makra
activateSignal(OUTPUT3)
sleep 100
deactivateSignal(OUTPUT3)
Na output3 pojawia się impuls trwający 100ms
przystawka startuje i po wykonaniu operacji wysyła impuls do macha który jest odbierany poleceniem :
While Not isActive(INPUT4)
sleep 100
Wend
Po odebraniu impulsu maszyna czeka 100ms i jedzie dalej aż do kolejnego wywołania makra. Jeśli źle rozumuję to proszę mnie poprawić.