Darbai pajudėjo,
padaryti žingsninių variklių laikikliai:

Sutvarkytas įrankių keitiklis
Pridedu Mach3 makrosą ir signalų aprašymą
Gal kam prireiks
INPUT1,2,3 Įrankio pozicija
INPUT4 sinchronizacija (pozicija nuskaitoma tik tuomet kai šis signalas aktyvus).
OEMTrig1 Irankio priveržimo jutiklis, aktyvuojasi tuomet kai reversuotas variklis tinkamai prispaudžia instrumentą.
Output1 Įrankių keitiklio variklio įjungimas
Output14 Įrankių keitiklio variklio reversavimas
_____________________________________________
'M6Start.M1s
' Remember Lathe tools are called from the code/mdi T0606 M6 (for tool 6, offset 6) then M6.
Sub Main()
NewTool = GetSelectedTool()
OldTool = GetCurrentTool()
MaxToolNum = 6 'Max number of tools for the changer
While NewTool > MaxToolNum
NewTool = Question ("Enter New Tool Number up to " & MaxToolNum)
Wend
If NewTool = OldTool Or NewTool = 0 Then
Exit Sub
End If
If OldTool <> NewTool Then
While Slot <> NewTool
ActivateSignal(OUTPUT1) 'start rotating forward
If IsActive(INPUT1) And Not IsActive(INPUT2) And Not IsActive(INPUT3) And IsActive (INPUT4) Then
Slot = 1
End If
If Not IsActive(INPUT1) And IsActive(INPUT2) And Not IsActive(INPUT3) And IsActive (INPUT4) Then
Slot = 2
End If
If IsActive(INPUT1) And IsActive(INPUT2) And Not IsActive(INPUT3) And IsActive (INPUT4) Then
Slot = 3
End If
If Not IsActive(INPUT1) And Not IsActive(INPUT2) And IsActive(INPUT3) And IsActive (INPUT4) Then
Slot = 4
End If
If IsActive(INPUT1) And Not IsActive(INPUT2) And IsActive(INPUT3) And IsActive (INPUT4) Then
Slot = 5
End If
If Not IsActive(INPUT1) And IsActive(INPUT2) And IsActive(INPUT3) And IsActive (INPUT4) Then
Slot = 6
End If
Wend
Sleep(100)
DeActivateSignal(OUTPUT1) 'stop rotating forward, rotate backward now
End If
Sleep(500)
ActivateSignal(OUTPUT14) 'perjungiam rele sukimuisi atgal
Sleep(500)
While IsActive(OEMTrig1) 'Laukiam kol suveiks jungiklis kuris patvirtina kad pasirinktas instrumentas užsifiksavo
ActivateSignal(OUTPUT1)
Wend
DeActivateSignal(OUTPUT1)
Sleep(500)
DeActivateSignal(OUTPUT14)
SetOEMDRO(824,NewTool)
End Sub
Main
'Pabaiga
____________________________________________________
P.S. Žinau galimą kai ką supaprastint, bet kolkas toks variantas veikia, tobulinsiu vėliau.