habe Mal ein paar Sachen geändert. Bitte Test und screenshot von History.
Sub Main()
DoSpinStop() 'TPS nur um sicherzustellen, das die Spindel wirklich aus ist
SpinS = GetRPM()
If SpinS < 200 Then
SetPulley(1)
Call Gear1ON
End If
If SpinS > 201 And spin < 600 Then
SetPulley(2)
Call Gear2ON
End If
If SpinS > 601 And spin < 1400 Then
SetPulley(3)
Call Gear3ON
End If
If SpinS > 1401 And spin < 4000 Then
SetPulley(4)
Call Gear4ON
End If
End Sub
Sub Gear1ON()
' der erste Gang ist bereits drin, also nichts zu tun
If IsActive(OEMTRIG12) Then
Message "erster Gang bereits eingelegt"
Sleep(200)
Exit Sub
End If
'alle anderen Ventile ausschalten
DeActivateSignal(OUTPUT8)
DeActivateSignal(OUTPUT9)
DeActivateSignal(OUTPUT10)
'Ausgang zum schalten der 1ten Gang's aktivieren
ActivateSignal(OUTPUT7)
message "Ausgang für 1. Gang eingeschaltet -> warte auf Eingang."
'auf den Eingang warten
While IsActive(OEMTRI12) = False
Sleep(10)
Wend
Sleep(50)
Message "erster Gang eingelegt Spindel einschalten"
DeActivateSignal(OUTPUT7) 'Ausgang für 1. Gang ausschalten
DoSpinCW() 'this is what was in the M3 macro
End Sub
Sub Gear2ON()
' der zweite Gang ist bereits drin, also nichts zu tun
If IsActive(OEMTRIG13) Then
Message "zweiter Gang bereits eingelegt"
Sleep(200)
Exit Sub
End If
'alle anderen Ventile ausschalten
DeActivateSignal(OUTPUT7)
DeActivateSignal(OUTPUT9)
DeActivateSignal(OUTPUT10)
'Ausgang zum schalten der 2ten Gang's aktivieren
ActivateSignal(OUTPUT8)
message "Ausgang für 2. Gang eingeschaltet -> warte auf Eingang."
'auf den Eingang warten
While IsActive(OEMTRIG13) = False
Sleep(10)
Wend
Sleep(50)
Message "zweiter Gang eingelegt Spindel einschalten"
DeActivateSignal(OUTPUT8) 'Ausgang für 2. Gang ausschalten
DoSpinCW() 'this is what was in the M3 macro
End Sub
Sub Gear3ON()
' der dritte Gang ist bereits drin, also nichts zu tun
If IsActive(OEMTRIG14) Then
Message "dritter Gang bereits eingelegt"
Sleep(200)
Exit Sub
End If
'alle anderen Ventile ausschalten
DeActivateSignal(OUTPUT7)
DeActivateSignal(OUTPUT8)
DeActivateSignal(OUTPUT10)
'Ausgang zum schalten der 3ten Gang's aktivieren
ActivateSignal(OUTPUT9)
message "Ausgang für 3. Gang eingeschaltet -> warte auf Eingang."
'auf den Eingang warten
While IsActive(OEMTRIG14) = False
Sleep(10)
Wend
Sleep(50)
Message "dritter Gang eingelegt Spindel einschalten"
DeActivateSignal(OUTPUT9) 'Ausgang für 3. Gang ausschalten
DoSpinCW() 'this is what was in the M3 macro
End Sub
Sub Gear4ON()
' der vierte Gang ist bereits drin, also nichts zu tun
If IsActive(OEMTRIG15) Then
Message "vierter Gang bereits eingelegt"
Sleep(200)
Exit Sub
End If
'alle anderen Ventile ausschalten
DeActivateSignal(OUTPUT7)
DeActivateSignal(OUTPUT8)
DeActivateSignal(OUTPUT9)
'Ausgang zum schalten der 4ten Gang's aktivieren
ActivateSignal(OUTPUT10)
message "Ausgang für 4. Gang eingeschaltet -> warte auf Eingang."
'auf den Eingang warten
While IsActive(OEMTRIG15) = False
Sleep(10)
Wend
Sleep(50)
Message "vierter Gang eingelegt Spindel einschalten"
DeActivateSignal(OUTPUT10) 'Ausgang für 4. Gang ausschalten
DoSpinCW() 'this is what was in the M3 macro
End Sub