Hello Guest it is March 29, 2024, 02:11:04 AM

Author Topic: Getriebestufenwechsel Mach3 / CSMIO IP-A  (Read 3756 times)

0 Members and 1 Guest are viewing this topic.

Offline TPS

*
  •  2,501 2,501
    • View Profile
Re: Getriebestufenwechsel Mach3 / CSMIO IP-A
« Reply #10 on: January 13, 2021, 05:13:25 AM »
habe Mal ein paar Sachen geändert. Bitte Test und screenshot von History.

Code: [Select]
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
anything is possible, just try to do it.
if you find some mistakes, in my bad bavarian english,they are yours.

Offline TPS

*
  •  2,501 2,501
    • View Profile
Re: Getriebestufenwechsel Mach3 / CSMIO IP-A
« Reply #11 on: January 13, 2021, 05:19:28 AM »
da waren auch noch Schreibfehler bei den OEMTRIG drin

Code: [Select]
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(OEMTRIG12) = 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
anything is possible, just try to do it.
if you find some mistakes, in my bad bavarian english,they are yours.
Re: Getriebestufenwechsel Mach3 / CSMIO IP-A
« Reply #12 on: January 13, 2021, 05:43:52 AM »
@Tom, danke mal...ich kann es erst morgen Nachmittag testen, melde mich dann.
Vielen Dank und Gruss

Offline TPS

*
  •  2,501 2,501
    • View Profile
Re: Getriebestufenwechsel Mach3 / CSMIO IP-A
« Reply #13 on: January 16, 2021, 05:03:48 AM »
Hat das jetzt geklappt?
anything is possible, just try to do it.
if you find some mistakes, in my bad bavarian english,they are yours.
Re: Getriebestufenwechsel Mach3 / CSMIO IP-A
« Reply #14 on: January 16, 2021, 03:15:42 PM »
Servus,
sorry für die späte Rückmeldung.
Die Ausgänge werden jetzt einwandfrei geschaltet. Für die Eingänge habe ich einen kleinen Simulator gebaut der die Signale von dem Frequenzumrichter simuliert, damit in der Testphase das Getriebe nicht beschädigt wird.

Die Meldungen (Messages) dienen auch sehr gut dem ganzen Ablauf.

Das Programm das die Getriebestufen schaltet (Frequenzumrichter) wird erst nächste Woche von einem Techniker eingespielt.

Falls noch etwas wäre melde ich mich  :)

@TPS, jetzt schon herzlichen Dank für deine klasse Unterstützung!!!

Gruss
Steve
« Last Edit: January 16, 2021, 03:21:20 PM by MacSteve »
Re: Getriebestufenwechsel Mach3 / CSMIO IP-A
« Reply #15 on: January 27, 2021, 03:59:28 AM »
Hallo,
habe nun doch noch eine Kleinigkeit:
Wenn ich z.B. M3 S100 eingebe und die erste Getriebestufe schon eingelegt ist, startet die Spindel nicht, sondern bringt die Meldung „erste Getriebestufe bereits eingelegt“. Ich kann dann nur über den „M3“ Button die Spindel starten.

Ich denke das liegt daran, dass der Befehl „DoSpinCW() 'this is what was in the M3 macro“ nicht angesprochen wird, wenn der Gang schon eingelegt ist.
Nur wo soll ich diesen Befehl einfügen? Wäre das so richtig?

   ' der erste Gang ist bereits drin, also nichts zu tun   
If IsActive(OEMTRIG12) Then           
Message "erster Gang bereits eingelegt"       
Sleep(200) 
DoSpinCW() 'this is what was in the M3 macro       
Exit Sub       End If

danke und Gruss
Steve

Offline TPS

*
  •  2,501 2,501
    • View Profile
Re: Getriebestufenwechsel Mach3 / CSMIO IP-A
« Reply #16 on: January 27, 2021, 08:49:52 AM »
das sollte so passen

Code: [Select]
   ' der erste Gang ist bereits drin, also nichts zu tun
   If IsActive(OEMTRIG12) Then   
      Message "erster Gang bereits eingelegt"
      Sleep(200) 
      DoSpinCW()
      Exit Sub   
   End If 
anything is possible, just try to do it.
if you find some mistakes, in my bad bavarian english,they are yours.
Re: Getriebestufenwechsel Mach3 / CSMIO IP-A
« Reply #17 on: January 29, 2021, 07:10:00 AM »
jetzt geht alles einwandfrei :)

Vielen Dank nochmals!