Makro M31 – alternatywa dla G31

Od wersji plugin 2.200 (2014-02-13) istnieje możliwość wykonania sondowania także za pomocą makra M31. Jak każdy się orientuje program Mach3 posiada funkcję G31, która służy do wykonywania sondowania (probingu). Za pomocą tej funkcji można wykonywać precyzyjny pomiar długości narzędzia lub określić położenie krawędzi detalu na stole roboczym. Od wersji plugin 2.200 (2014-02-13) istnieje możliwość wykonania sondowania także za pomocą makra M31.

Macro for automatic lubrication system Pobierz makro M31

Sondowanie wykonane za pomocą makra M31 jest realizowane głównie przez kontroler CSMIO/IP jako jego funkcja wewnętrzna. Makro M31 może być dowolnie rozbudowywane i modyfikowane według własnego uznania, co daje użytkownikowi ogromne możliwości. Aby było to możliwe i łatwe do wykonania opiszę tu zasadę działania i budowę makra M31.

całe makro

Zasada działania makra M31

Zasada działania makra jest bardzo prosta, polega na przekazaniu  parametrów „P”, „Q” i „R” do plugin’a a następnie oczekiwaniu na zakończenie sondowania.

Budowa makra M31

Budowę makra opiszemy kolejno w punktach w celu lepszego zrozumienia i ewentualnego późniejszego wykorzystania we własnych projektach.

1) Deklaracja zmiennych lokalnych

deklaracja zmiennych

2) Odczyt parametrów „P”, „Q” i „R” przekazywanych przez funkcje „Param” do makra.

odczyt z funkcji Param

Funkcja „Param” ma za zadanie  pobrać z linii „MDI” lub g-kodu parametry „P”, „Q” i „R” i przekazać je do makra, a konkretnie do zmiennych „Parg, Qarg, Rarg”.

Dokładny opis funkcji „Param” można odnaleźć w tym dokumencie:
http://www.machsupport.com/wp-content/uploads/2013/02/Mach3_V3.x_Macro_Prog_Ref.pdf
strony 58-59.

3) Wyświetlenie wiadomości „M31 START” w linii „STATUS” programu Mach3.

komunikat startu

4) Przekazanie wartości zmiennych „Parg, Qarg, Rarg” do plugin’a za pośrednictwem UserDRO 1511, 1512 i 1513. (Pamiętaj, aby nie wykorzystywać wyżej wymienionych UserDRO do innych celów, gdyż może to spowodować nieprzewidziane zachowania funkcji sondowania.)
przekazanie do userdro

5) Wydanie polecenia startu sondowania dla plugin.

start pomiaru

6) Wyzerowanie UserDRO 1510 i oczekiwanie na koniec sondowania w pętli „While”.

UserDro 1510 zostało wykorzystane do informowania makra przez plugin o etapie wykonywanego obecnie sondowania.

Gdy UserDro 1510 jest równe 0, to oznacza to, że sondowanie ciągle trwa i makro oczekuje na zakończenie sondowania w pętli „While”.

oczekiwanie na koniec pomiaru

7) Gdy UserDro 1510 przyjmie wartość 1 to oznacza to, że sondowanie zakończyło się sukcesem a oczekiwanie w pętli „While” zostaje przerwane. Efektem tego jest wyświetlenie w linii „STATUS” programu Mach3 informacji „M31 Probe hit.”, która to będzie się wyświetlać przez 1 sekundę.

pomiar zakonczony powodzeniem

8) Gdy UserDro 1510 przyjmie wartość 2 to oznacza to, że sondowanie zakończyło się niepowodzeniem a oczekiwanie w pętli „While” zostaje przerwane. Efektem tego jest wyświetlenie w linii „STATUS” programu Mach3 informacji „M31 Probe end. (no hit)” i zakończenie się makra.

pomiar zakonczony niepowodzeniem

9) Odczyt wyniku sondowania ze zmiennych systemowych Var i przekazanie ich do zmiennych lokalnych X_SENS, Y_SENS i Z_SENS (CSMIO/IP wykorzystuje te same zmienne systemowe Var do przechowywania wyniku sondowania co funkcja G31).

Odczyt pomiaru

10) Wyświetlenie w linii „STATU” programu Mach3 wiadomości przedstawiającej wyniki sondowania.

wynik pomiaRU

Konfiguracja parametrów pracy makraVB

Macro M31 dysponuje czterema parametrami, którymi możemy określić sposób działania sondowania.

M31 P… Q… R… F…

 

P – dystans (inkrementalny), który może pokonać oś X podczas sondowania

Q – dystans  (inkrementalny), który może pokonać oś Y podczas sondowania

R – dystans (inkrementalny), który może pokonać oś Z podczas sondowania

F – prędkość posuwu sondowania.

Podczas opisywania parametrów użyłem określenia inkrementalny, a to dlatego że makro M31 w przeciwieństwie do G31 wykonuje sondowanie na określonym dystansie.

Przykładowo, jeśli chcemy dokonać sondowania w osi Z na dystansie 50 mm w kierunku ujemnym osi to parametry makra musimy skonfigurować następująco:  M31 P0 Q0 R-50 F100.

 

Zauważ, że parametry P i Q posiadają wartość 0, co dla ruchu inkrementalnego oznacza, że te osie nie wykonają żadnego ruchu. Parametr R posiada wartość -50, a to oznacza, że tylko oś Z wykona sondowanie na dystansie 50mm w kierunku ujemnym osi.

14 czerwca 2016