Proszę o pomoc w kilku sprawach:
1. Bazowanie osi chciałbym zrobić na dwa dojazdy, znalazłem na forum fajny skrypt, jednak moja maszyna ma problem z częścią w której odchodzi 15mm od krańcówki przed dokładnym bazowaniem. Maszyna odjeżdża jednak baaardzo wolno, czy można ten skrypt poprawić aby dało się wpisać wartość odjazdu?
SetParam ("ZRefPer",15) '<---TO JEST KOMENDA ZMIANY PARAMETRU BAZOWANIA na 15%
Sleep 200
DoOEMButton (1024) 'bazowanie na 15%
While IsMoving()
Wend
Code "G53 Z-15" 'zjedź z krańcówki na 15mm (chodzi o tą część)
While IsMoving()
Wend
SetParam ("ZRefPer",1) '<---TO JEST KOMENDA ZMIANY PARAMETRU BAZOWANIA na 1%
Sleep 200
DoOEMButton (1024) 'bazowanie na 1%
While IsMoving()
Wend
SetParam ("ZRefPer",15) '<---TO JEST KOMENDA ZMIANY PARAMETRU BAZOWANIA na 15%
2. Mam na płytce wyjście 5VDC max 120mA chcę pod to podpiąć czujnik długości narzędzia i wpuścić w wejście 5VDC 7mA, jednak chyba muszę użyć opornika, gdyż jedno takie wejście wczoraj spaliłem puszczając bezpośrednio, czy ktoś wie jaki rezystor użyć?
3. Mam skrypt do czujnika narzędzia, jednak mam problem z przerobieniem go aby oś Z zjechała na -120mm (0 mam gdy frez jest maksymalnie uniesiony, a wszystkie inne położenia są ujemne), gdy wstawiam -120 w miejscu -20, maszyna robi cuda

Dim X,Y,Z,px,py,pz,wx,wy,wz,d,zpoz
Dim tool,Hits,zs,zn,Hitn
Dim w
'"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
' Poniższe zmienne wymagają deklaracji przez użytkownika
'"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
wx= 10 ' Tutaj podajemy położenie punktu wymiany narzędzia w odniesieniu do krańcówek bazujących ( współrzędne maszynowe )
wy= 10
wz= 10 'wz - określa na jakiej wysokości ma ustawić się wrzeciono przy wymianie
px = 11 ' Tutajokreślamy punkt pomiaru narzędzia, również w odniesieniu do krańcówek bazujących
py = 11 ' (współrzędne maszynowe)
pz = 11 ' wysokość przejazdowa ( wysokość na jakiej odbywają się przejazdy na punkt pomiaru oraz wymiany
'pownna być jak najwyższa, tak aby narzędzie nie zachaczyło o obrabiany element, czy mocowanie
'""""""""""""""""""""""
'Koniec definicji
'""""""""""""""""""""""""""""
'"""""""""""""""""""""""""""""""""""""""
'Właściwy program
'"""""""""""""""""""""""""""""""
'zapamiętanie współrzędnych punktu wyjściowego
X = GetoemDRO( 83 )
Y = GetoemDRO( 84 )
zm=getoemdro(85)
Z = GetoemDRO( 180)
'message( (px)&(" , ")& (py)&(" , ")& (pz))
MsgBox ("Teraz nastąpi przejazd do spółrzędnych czujnika pomiaru narzędzia. Po czym jeżeli wrzeciono jest uruchamiane ręcznie, wyłącz je, a następnie kliknij ok") ' wyświetlenie komunikatu
Code "g53 G00 Z" & pz 'podniesienie Z na wysokość przelotową
While IsMoving()
Wend
w=Getoemled(11) ' zapamiętanie, czy wrzeciono było uruchomione
Code"m5" ' wyłączenie wrzeciona
Code " g53 G00 X" & px & "Y" & py 'szybki przejazd na pozycje czujnika
While IsMoving()
Wend
Message ("Teraz nastąpi pierwszy pomiar") ' komunkat o rozpoczęciu pomiaru
' pomiar podzielony jest na dwa etapy, w opuszczenie może być dość szybkie; po wykryciu czujnika, następuje podniesienie o 2mm
' a nstępnie ponowny pomiar - tutaj prędkość powinna być miejsza, pozowli to na osiągnięcie większej precyzji pomiaru
Code "G31 Z-20 F50" 'opuszczenie osi Z do współrzędnej -20 ( Z-20) - w tym czasie powinna nastąpić aktywacja czujnika
While IsMoving() ' Tutaj możemy zmienić prędkość pierwszego pomiaru - Wartość przy parametrze F, 50 oznacza 50mm/min
Wend
Code "G91 Z2 F50" 'podniesienie osi Z o 2 mm
While IsMoving() ' Tutaj możemy zmienić prędkość oraz drogę o ile ma się podnieść - podniesienie powinno spowodować wyłączenie czujnika
Wend
code "g90"
Code "G31 Z-20 F10" 'opuszczenie osi Z do współrzędnej -20 ( Z-20) - w tym czasie powinna nastąpić aktywacja czujnika
While IsMoving() ' Tutaj możemy zmienić prędkość drugiego pomiaru - Wartość przy parametrze F, 10 oznacza 10mm/min
Wend
Hits = GetVar(2002) 'przechwycenie wysokości na jakiej zadziałał czujnik przy "starym" narzędziu
Code "G53 G00 Z" & pz 'podniesienie osi Z na wysokość przelotową
While IsMoving()
Wend
MsgBox ("Teraz nastąpi przejazd do współrzędnych wymiany narzędzia") ' komunikat o przelocie na punkt wymiany
Code "g53 G00 X" & wx & "Y" & wy 'przejazd na pozycje wymiany
While IsMoving()
Wend
Code "g53 G00 Z" & wz 'ustawienie osi Z na wysokości wymiany
While IsMoving()
Wend
MsgBox ("Wymień narzędzie i kliknij OK, Po czym nastąpi przejazd do spółrzędnych czujnika pomiaru narzędzia") ' komunikat
Code "g53 G00 Z" & pz 'podniesienie Z na wysokość przelotową
While IsMoving()
Wend
Code " g53 G00 X" & px & "Y" & py 'przejazd na pozycje czujnika
While IsMoving()
Wend
MsgBox ("Teraz nastąpi drugi pomiar")'komunikato pomiarze drugiego narzędzia
Code "G31 Z-20 F50" 'opuszczenie osi Z do współrzędnej -20 ( Z-20) - w tym czasie powinna nastąpić aktywacja czujnika W tym miejscu chcę wpisać -120 i maszyna nie wykonuje polecenia
While IsMoving() ' Tutaj możemy zmienić prędkość pierwszego pomiaru - Wartość przy parametrze F, 50 oznacza 50mm/min
Wend
Code "G91 Z2 F50" 'podniesienie osi Z o 2 mm
While IsMoving() ' Tutaj możemy zmienić prędkość oraz drogę o ile ma się podnieść - podniesienie powinno spowodować wyłączenie czujnika
Wend
code "g90"
Code "G31 Z-20 F10" 'opuszczenie osi Z do współrzędnej -20 ( Z-20) - w tym czasie powinna nastąpić aktywacja czujnika
While IsMoving() ' Tutaj możemy zmienić prędkość drugiego pomiaru - Wartość przy parametrze F, 10 oznacza 10mm/min
Wend
Hitn = GetVar(2002) 'przechwycenie wysokości na jakiej zadziałał czujnik przy "nowym" narzędziu
Code "G53 G00 Z" & pz 'podniesienie Z na wysokość przelotową
While IsMoving()
Wend
d= Hits- Hitn ' obliczanie różnicy długości
d =Abs(d)
'message(Hits)
'message(Hitn)
'message(d)
zpoz=0
If Hits < Hitn Then zpoz=zm+d ' na podstawie wysokości zadziałań czujnika przy pomiarach obliczana jest wartość współczynnika korekcji wysokości osi Z
If Hits > Hitn Then zpoz=zm-d
Code "G53 G00 X" & X & "Y" & Y 'przejazd na współrzędne punktu wyjściowego ( ten w którym zostało wywołane makro )
While IsMoving()
Wend
MsgBox ("włącz wrzeciono i kliknij OK") ' komunikat o włączeniu wrzeciona - w przypadku gdy włączamy je ręcznie
Code "G0 g53 Z" & zpoz ' opuszczenie narzędzia - jego koniec powinien znaleźć się tam gdzi przed wywyołaniem makra
While IsMoving()
Wend
Call setdro(2,z) ' ustawienie wspłrzędnych - ofset
If w = true Then Code"m3" ' automatyczne włączenie wrzeciona jeżeli było uruchomine przed pomiarem.
End
Maszyna to chińczyk i używa Mach3, jeżeli to ma znaczenie

Przepraszam też jeżeli moje pytania są oczywiste czy głupie, dopiero zaczynam swoją przygodę.