Prośba o pomoc w napisaniu makra

Dyskusje dotyczące najpopularniejszego programu sterującego maszynami CNC

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

#21

Post napisał: qqaz » 01 sty 2013, 13:24

Po RS komunikację obsłużysz wyłącznie pluginem - były jakieś odwołania o nim tu na forum że ktoś coś robił. Raczej nie ma to sensu wobec prostoty Twojej potrzeby. Tu powyżej już wszystko jest napisane.
Reszta o której dopisuje kol Dziabi3 jest zabezpieczeniami na wszelki wypadek - w dobrym tonie dodatkami w eleganckim potraktowaniu programu.
( popatrz na makro do czujnika narzędzi które masz - początek to kontrola warunków aby makro nie poszło w buraki bo brak pozycji, albo narzędzie ,albo korekta..., dopiero parę końcowych linijek jest faktycznym programem)
Ale na surowo bez nich też przystawkę uruchomisz.
Przypilnuj tylko czy realizacja będzie na podstawie synchroniazacji czasowej - masz 100ms aby zobaczyć że start - czy w oparciu o sekwencję stanów na danym wyjściu/wejściu ( moim zdaniem łatwiej i pewniej) z watchdog'iem dla buczka.

[ Dodano: 2013-01-01, 13:28 ]
Z wieszaniem nie ma problemu - bo właśnie brak sleep w pętli dla warunku isActive jest głównym sprawcą zwałki systemu który tylko młóci wejście i nie ma czasu na nic innego.
Napisz te parę linijek w Mxx i puść z palca tak jak w ręcznym wywołujesz zwykłe polecenia Gxx.

Najlepszego w Nowym roku :wink:



Tagi:


Autor tematu
kamil1986
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 7
Posty: 316
Rejestracja: 10 cze 2007, 15:09
Lokalizacja: Ostrów

#22

Post napisał: kamil1986 » 01 sty 2013, 14:18

Co do czujnika narzędzia to że tak powiem jeszcze się nie dorobiłem dopiero co ukończyłem maszynę ale nie ukrywam że makro do obsługo czujnika też by się przydało.


dziabi3
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 5
Posty: 874
Rejestracja: 13 sie 2009, 16:15
Lokalizacja: xxx

#23

Post napisał: dziabi3 » 01 sty 2013, 16:12

QQAZ zgadza sie ze pusta petla muli komp przekonalem sie o tym

Poprostu procek nie wyrabia i nie potrafi odswierzyc portow w lpt i wychodzi kupa

Dlatego trzeba pisac tak

Do Until isActive(oemtrig1)

(tu kontrola przekroczenia czqsu)
sleep(1)
Loop

To daje 1khz odczytu portu i 0%obciazenia procka
Mach3 + CSMIO = :-) :-) :-)

Awatar użytkownika

k-m-r1
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 2
Posty: 1418
Rejestracja: 23 cze 2008, 10:38
Lokalizacja: OOL lub DW
Kontakt:

#24

Post napisał: k-m-r1 » 01 sty 2013, 22:45

ale Panowie po co takie brednie?

w logice ustawiamy sobie i ładnie sam sprawdza bez zamulanie kiedy zmieniła siw wartośc na danym wejsciu zadnych petli

sleep(1) to za mało
przynajmniej 100 z mojego doświadczenia
MACH3 cncTworzenie Makr do palników magazynków THC OHC inneEKRANY dla firm producentów maszyn Budowa sprzedaż wypalarki plazma gaz obrotnice Elektrodrążarki Frezarki Tokarki Giętarki3D inne wg zlecenia 888 703 196 Tomek Komor [email protected]


dziabi3
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 5
Posty: 874
Rejestracja: 13 sie 2009, 16:15
Lokalizacja: xxx

#25

Post napisał: dziabi3 » 02 sty 2013, 21:27

sleep(1) to 1khz i nie zamula nawet kompa z Prockiem 1.6ghz sprawdź to sobie :mrgreen:

nie czaje o co ci biega z tą logiką



A tak wygląda ubogie ale poprawne makro na to co chce właściciel tematu

Można tu jak najbardziej dodać obsługę błędu przystawki na podstawie np 2 krótkich impulsów po 50 czy 100 ms świadczących o awaria przystawki czy co tam właściciel tematu sobie uroi :razz:

Można dodać np jakiś parametr konfiguracyjny parametry w środku makra z g codu np M12 P100 Q300 R4 niema problemu hulaj dusza

Const x = Output1 'tu wpisać output
Const y = Input1 'tu wpisac input lub Oemtrig
Const delay = 10 'dopuszczalny czas pracy przystawki <<<<<<<"w sekundach "
Const ImpSTART = 200 'czast trwania impulsu startu przystawki <<<"w ms"

Dim curenttime As Single

'--------------------------------------------------------------------------------------------------

Sub Main

ActivateSignal(x)
Sleep(ImpulsSTART)
DeActivateSignal(x)



curenttime = Timer

Do Until isActive(y)


If Timer > curenttime + delay Then
If Not GetOEMLed(800) Then
DoOEMButton(1021)
Sleep(150)
End If

Message"Przekroczono czas pracy przystawki"
End
End If

Sleep(1)
Loop

Message"Komunikacja OK"

End Sub

niestety forum nie obsługuje tabulatorów i brzydko to wygląda , dlatego dodaje plik makra m12
Załączniki
M12.rar
(459 Bajtów) Pobrany 163 razy
Mach3 + CSMIO = :-) :-) :-)

ODPOWIEDZ Poprzedni tematNastępny temat

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