Mach4 oder SIM CNC
-
- Beiträge: 4
- Registriert: 09.02.2022, 16:10
Mach4 oder SIM CNC
Ich habe eine Mikron mit CSMIO-A die ich aber auf S umbauen möchte. Die Maßstäbe machen immer Probleme und darum der Wechsel auf die S, damit ich die Maßstäbe rauswerfen kann. An den Achsen sind schon spielfreie Kugelrollspindeln verbaut.
Jetzt stellt sich mir die Frage, ob ich von MACH 3 auf SIM oder MACH4 wechseln kann und der Gangwechsel weiterhin funzt.
Wie setzte ich den Gangwechsel von MACH3 auf MACH4 bzw. SIM CNC um?
Was läuft besser? MACH4 oder SIM CNC?
Ich habe einen FU sowie Pneumatikzylinder an den Schalthebeln verbaut.
Die Ausgänge schalten die Ventile für die Zylinder und der FU hat einen Eingang mit Festdrehzahl, der sich mit geringer Drehzahl dreht, damit die Gänge leichter reingehen.
Mein aktuelles Script in MACH3 sieht so aus und FUNZT auch:
' Getriebeschaltung MACH3 Mikron WF3DP
'Spannungsversorgung Ventile EIN
SetOutbit(90,14)
rpm = GetRPM()
'If rpm = 0 Then
'rpm = InputBox("RPM?")
'End If
If rpm <= 335 Then
Call Gang1
ElseIf rpm <= 1319 Then
Call Gang2
ElseIf rpm <= 2239 Then
Call Gang3
ElseIf rpm <= 3150 Then
Call Gang4
Else
' Message "Gewählte Drehzahl zu hoch"
' DOOEMButton (1003)
End If
SetSpinSpeed (rpm)
' Gänge
' 1: output 90, 11/13 input 91, 1/3
' 2: output 90, 11/12 input 91, 1/4
' 3: output 90, 10/13 input 91, 2/3
' 4: output 90, 10/12 input 91, 2/4
' Spindle Festdrehzahl output 90, 2 + DoSpinCW()
'
Sub Gang1
SetPulley(1)
' Positonsschalter Gangstellung abfragen
If GetInBit(91,1) And GetInBit(91,3) Then
Message "Gang 1 war schon eingelegt"
Exit Sub
End If
' Motor ein Festdrehzahl ein und Spannungsversorung SERVO ein
DoSpinCW()
SetOutbit(90,2)
SetOutbit(90,14)
' Hebel mitte schalten
Sleep 1500
ResetOutbit(90,10)
SetOutbit(90,11)
Sleep 1500
' Gangestellung abfragen
If GetInBit(91,1)=0 Then
Message "Stellung Hebel mitte nicht erreicht " & Time & " " & GetInBit(91,1)
SLEEP 1500
ResetOutbit(90,10)
SetOutbit(90,11)
SLEEP 1500
If GetInBit(91,1)=0 Then
Message " Hebel mitte für Gang1 kann nicht eingelegt werden"
' Befehl Stop
DOOEMButton (1003)
End If
End If
'Hebel rechts schalten
ResetOutbit(90,12)
SetOutbit(90,13)
Sleep 1500
' Gangestellung abfragen
If GetInBit(91,3)=0 Then
Message "Stellung Hebel rechts nicht erreicht " & Time & " " & GetInBit(91,1)
SLEEP 1500
ResetOutbit(90,12)
SetOutbit(90,13)
SLEEP 1500
If GetInBit(91,3)=0 Then
Message "Hebel rechts für Gang1 kann nicht eingelegt werden"
' Befehl Stop
DOOEMButton (1003)
End If
End If
' Motor Festdrehzahl und Spannungsversorung aus
ResetOutbit(90,10)
ResetOutbit(90,11)
ResetOutbit(90,12)
ResetOutbit(90,13)
DoSpinStop()
ResetOutbit(90,2)
Message "Gang 1 eingelegt"
End Sub
Sub Gang2
SetPulley(2)
' Positonsschalter Gangstellung abfragen
If GetInBit(91,1) And GetInBit(91,4) Then
Message "Gang 2 war schon eingelegt"
Exit Sub
End If
' Motor ein Festdrehzahl ein und Spannungsversorung SERVO ein
DoSpinCW()
SetOutbit(90,2)
SetOutbit(90,14)
' Hebel mitte schalten
Sleep 1500
ResetOutbit(90,10)
SetOutbit(90,11)
Sleep 1500
' Gangestellung abfragen
If GetInBit(91,1)=0 Then
Message "Stellung Hebel mitte nicht erreicht " & Time & " " & GetInBit(91,1)
SLEEP 1500
ResetOutbit(90,10)
SetOutbit(90,11)
SLEEP 1500
If GetInBit(91,1)=0 Then
Message " Hebel mitte für Gang 2 kann nicht eingelegt werden"
' Befehl Stop
DOOEMButton (1003)
End If
End If
'Hebel rechts schalten
ResetOutbit(90,13)
SetOutbit(90,12)
Sleep 1500
' Gangestellung abfragen
If GetInBit(91,4)=0 Then
Message "Stellung Hebel rechts nicht erreicht " & Time & " " & GetInBit(91,1)
SLEEP 1500
ResetOutbit(90,13)
SetOutbit(90,12)
SLEEP 1500
If GetInBit(91,4)=0 Then
Message "Hebel rechts für Gang 2 kann nicht eingelegt werden"
' Befehl Stop
DOOEMButton (1003)
End If
End If
' Motor Festdrehzahl und Spannungsversorung aus
ResetOutbit(90,10)
ResetOutbit(90,11)
ResetOutbit(90,12)
ResetOutbit(90,13)
DoSpinStop()
ResetOutbit(90,2)
Message "Gang 2 eingelegt"
End Sub
Sub Gang3
SetPulley(3)
' Positonsschalter Gangstellung abfragen
If GetInBit(91,2) And GetInBit(91,3) Then
Message "Gang 3 war schon eingelegt"
Exit Sub
End If
' Motor ein Festdrehzahl ein und Spannungsversorung SERVO ein
DoSpinCW()
SetOutbit(90,2)
SetOutbit(90,14)
' Hebel mitte schalten
Sleep 1500
ResetOutbit(90,11)
SetOutbit(90,10)
Sleep 1500
' Gangestellung abfragen
If GetInBit(91,2)=0 Then
Message "Stellung Hebel mitte nicht erreicht " & Time & " " & GetInBit(91,1)
SLEEP 1500
ResetOutbit(90,11)
SetOutbit(90,10)
SLEEP 1500
If GetInBit(91,2)=0 Then
Message " Hebel mitte für Gang 3 kann nicht eingelegt werden"
' Befehl Stop
DOOEMButton (1003)
End If
End If
'Hebel rechts schalten
ResetOutbit(90,12)
SetOutbit(90,13)
Sleep 1500
' Gangestellung abfragen
If GetInBit(91,3)=0 Then
Message "Stellung Hebel rechts nicht erreicht " & Time & " " & GetInBit(91,1)
SLEEP 1500
ResetOutbit(90,12)
SetOutbit(90,13)
SLEEP 1500
If GetInBit(91,3)=0 Then
Message "Hebel rechts für Gang 3 kann nicht eingelegt werden"
' Befehl Stop
DOOEMButton (1003)
End If
End If
' Motor Festdrehzahl und Spannungsversorung aus
ResetOutbit(90,10)
ResetOutbit(90,11)
ResetOutbit(90,12)
ResetOutbit(90,13)
DoSpinStop()
ResetOutbit(90,2)
Message "Gang 3 eingelegt"
End Sub
Sub Gang4
SetPulley(4)
' Positonsschalter Gangstellung abfragen
If GetInBit(91,2) And GetInBit(91,4) Then
Message "Gang 4 war schon eingelegt"
Exit Sub
End If
' Motor ein Festdrehzahl ein und Spannungsversorung SERVO ein
DoSpinCW()
SetOutbit(90,2)
SetOutbit(90,14)
' Hebel mitte schalten
Sleep 1500
ResetOutbit(90,11)
SetOutbit(90,10)
Sleep 1500
' Gangestellung abfragen
If GetInBit(91,2)=0 Then
Message "Stellung Hebel mitte nicht erreicht " & Time & " " & GetInBit(91,1)
SLEEP 1500
ResetOutbit(90,11)
SetOutbit(90,10)
SLEEP 1500
If GetInBit(91,2)=0 Then
Message " Hebel mitte für Gang 4 kann nicht eingelegt werden"
' Befehl Stop
DOOEMButton (1003)
End If
End If
'Hebel rechts schalten
ResetOutbit(90,13)
SetOutbit(90,12)
Sleep 1500
' Gangestellung abfragen
If GetInBit(91,4)=0 Then
Message "Stellung Hebel rechts nicht erreicht " & Time & " " & GetInBit(91,4)
SLEEP 1500
ResetOutbit(90,13)
SetOutbit(90,12)
SLEEP 1500
If GetInBit(91,4)=0 Then
Message "Hebel rechts für Gang 4 kann nicht eingelegt werden"
' Befehl Stop
DOOEMButton (1003)
End If
End If
' Motor Festdrehzahl und Spannungsversorung aus
ResetOutbit(90,10)
ResetOutbit(90,11)
ResetOutbit(90,12)
ResetOutbit(90,13)
DoSpinStop()
ResetOutbit(90,2)
Message "Gang 4 eingelegt"
End Sub
Jetzt stellt sich mir die Frage, ob ich von MACH 3 auf SIM oder MACH4 wechseln kann und der Gangwechsel weiterhin funzt.
Wie setzte ich den Gangwechsel von MACH3 auf MACH4 bzw. SIM CNC um?
Was läuft besser? MACH4 oder SIM CNC?
Ich habe einen FU sowie Pneumatikzylinder an den Schalthebeln verbaut.
Die Ausgänge schalten die Ventile für die Zylinder und der FU hat einen Eingang mit Festdrehzahl, der sich mit geringer Drehzahl dreht, damit die Gänge leichter reingehen.
Mein aktuelles Script in MACH3 sieht so aus und FUNZT auch:
' Getriebeschaltung MACH3 Mikron WF3DP
'Spannungsversorgung Ventile EIN
SetOutbit(90,14)
rpm = GetRPM()
'If rpm = 0 Then
'rpm = InputBox("RPM?")
'End If
If rpm <= 335 Then
Call Gang1
ElseIf rpm <= 1319 Then
Call Gang2
ElseIf rpm <= 2239 Then
Call Gang3
ElseIf rpm <= 3150 Then
Call Gang4
Else
' Message "Gewählte Drehzahl zu hoch"
' DOOEMButton (1003)
End If
SetSpinSpeed (rpm)
' Gänge
' 1: output 90, 11/13 input 91, 1/3
' 2: output 90, 11/12 input 91, 1/4
' 3: output 90, 10/13 input 91, 2/3
' 4: output 90, 10/12 input 91, 2/4
' Spindle Festdrehzahl output 90, 2 + DoSpinCW()
'
Sub Gang1
SetPulley(1)
' Positonsschalter Gangstellung abfragen
If GetInBit(91,1) And GetInBit(91,3) Then
Message "Gang 1 war schon eingelegt"
Exit Sub
End If
' Motor ein Festdrehzahl ein und Spannungsversorung SERVO ein
DoSpinCW()
SetOutbit(90,2)
SetOutbit(90,14)
' Hebel mitte schalten
Sleep 1500
ResetOutbit(90,10)
SetOutbit(90,11)
Sleep 1500
' Gangestellung abfragen
If GetInBit(91,1)=0 Then
Message "Stellung Hebel mitte nicht erreicht " & Time & " " & GetInBit(91,1)
SLEEP 1500
ResetOutbit(90,10)
SetOutbit(90,11)
SLEEP 1500
If GetInBit(91,1)=0 Then
Message " Hebel mitte für Gang1 kann nicht eingelegt werden"
' Befehl Stop
DOOEMButton (1003)
End If
End If
'Hebel rechts schalten
ResetOutbit(90,12)
SetOutbit(90,13)
Sleep 1500
' Gangestellung abfragen
If GetInBit(91,3)=0 Then
Message "Stellung Hebel rechts nicht erreicht " & Time & " " & GetInBit(91,1)
SLEEP 1500
ResetOutbit(90,12)
SetOutbit(90,13)
SLEEP 1500
If GetInBit(91,3)=0 Then
Message "Hebel rechts für Gang1 kann nicht eingelegt werden"
' Befehl Stop
DOOEMButton (1003)
End If
End If
' Motor Festdrehzahl und Spannungsversorung aus
ResetOutbit(90,10)
ResetOutbit(90,11)
ResetOutbit(90,12)
ResetOutbit(90,13)
DoSpinStop()
ResetOutbit(90,2)
Message "Gang 1 eingelegt"
End Sub
Sub Gang2
SetPulley(2)
' Positonsschalter Gangstellung abfragen
If GetInBit(91,1) And GetInBit(91,4) Then
Message "Gang 2 war schon eingelegt"
Exit Sub
End If
' Motor ein Festdrehzahl ein und Spannungsversorung SERVO ein
DoSpinCW()
SetOutbit(90,2)
SetOutbit(90,14)
' Hebel mitte schalten
Sleep 1500
ResetOutbit(90,10)
SetOutbit(90,11)
Sleep 1500
' Gangestellung abfragen
If GetInBit(91,1)=0 Then
Message "Stellung Hebel mitte nicht erreicht " & Time & " " & GetInBit(91,1)
SLEEP 1500
ResetOutbit(90,10)
SetOutbit(90,11)
SLEEP 1500
If GetInBit(91,1)=0 Then
Message " Hebel mitte für Gang 2 kann nicht eingelegt werden"
' Befehl Stop
DOOEMButton (1003)
End If
End If
'Hebel rechts schalten
ResetOutbit(90,13)
SetOutbit(90,12)
Sleep 1500
' Gangestellung abfragen
If GetInBit(91,4)=0 Then
Message "Stellung Hebel rechts nicht erreicht " & Time & " " & GetInBit(91,1)
SLEEP 1500
ResetOutbit(90,13)
SetOutbit(90,12)
SLEEP 1500
If GetInBit(91,4)=0 Then
Message "Hebel rechts für Gang 2 kann nicht eingelegt werden"
' Befehl Stop
DOOEMButton (1003)
End If
End If
' Motor Festdrehzahl und Spannungsversorung aus
ResetOutbit(90,10)
ResetOutbit(90,11)
ResetOutbit(90,12)
ResetOutbit(90,13)
DoSpinStop()
ResetOutbit(90,2)
Message "Gang 2 eingelegt"
End Sub
Sub Gang3
SetPulley(3)
' Positonsschalter Gangstellung abfragen
If GetInBit(91,2) And GetInBit(91,3) Then
Message "Gang 3 war schon eingelegt"
Exit Sub
End If
' Motor ein Festdrehzahl ein und Spannungsversorung SERVO ein
DoSpinCW()
SetOutbit(90,2)
SetOutbit(90,14)
' Hebel mitte schalten
Sleep 1500
ResetOutbit(90,11)
SetOutbit(90,10)
Sleep 1500
' Gangestellung abfragen
If GetInBit(91,2)=0 Then
Message "Stellung Hebel mitte nicht erreicht " & Time & " " & GetInBit(91,1)
SLEEP 1500
ResetOutbit(90,11)
SetOutbit(90,10)
SLEEP 1500
If GetInBit(91,2)=0 Then
Message " Hebel mitte für Gang 3 kann nicht eingelegt werden"
' Befehl Stop
DOOEMButton (1003)
End If
End If
'Hebel rechts schalten
ResetOutbit(90,12)
SetOutbit(90,13)
Sleep 1500
' Gangestellung abfragen
If GetInBit(91,3)=0 Then
Message "Stellung Hebel rechts nicht erreicht " & Time & " " & GetInBit(91,1)
SLEEP 1500
ResetOutbit(90,12)
SetOutbit(90,13)
SLEEP 1500
If GetInBit(91,3)=0 Then
Message "Hebel rechts für Gang 3 kann nicht eingelegt werden"
' Befehl Stop
DOOEMButton (1003)
End If
End If
' Motor Festdrehzahl und Spannungsversorung aus
ResetOutbit(90,10)
ResetOutbit(90,11)
ResetOutbit(90,12)
ResetOutbit(90,13)
DoSpinStop()
ResetOutbit(90,2)
Message "Gang 3 eingelegt"
End Sub
Sub Gang4
SetPulley(4)
' Positonsschalter Gangstellung abfragen
If GetInBit(91,2) And GetInBit(91,4) Then
Message "Gang 4 war schon eingelegt"
Exit Sub
End If
' Motor ein Festdrehzahl ein und Spannungsversorung SERVO ein
DoSpinCW()
SetOutbit(90,2)
SetOutbit(90,14)
' Hebel mitte schalten
Sleep 1500
ResetOutbit(90,11)
SetOutbit(90,10)
Sleep 1500
' Gangestellung abfragen
If GetInBit(91,2)=0 Then
Message "Stellung Hebel mitte nicht erreicht " & Time & " " & GetInBit(91,1)
SLEEP 1500
ResetOutbit(90,11)
SetOutbit(90,10)
SLEEP 1500
If GetInBit(91,2)=0 Then
Message " Hebel mitte für Gang 4 kann nicht eingelegt werden"
' Befehl Stop
DOOEMButton (1003)
End If
End If
'Hebel rechts schalten
ResetOutbit(90,13)
SetOutbit(90,12)
Sleep 1500
' Gangestellung abfragen
If GetInBit(91,4)=0 Then
Message "Stellung Hebel rechts nicht erreicht " & Time & " " & GetInBit(91,4)
SLEEP 1500
ResetOutbit(90,13)
SetOutbit(90,12)
SLEEP 1500
If GetInBit(91,4)=0 Then
Message "Hebel rechts für Gang 4 kann nicht eingelegt werden"
' Befehl Stop
DOOEMButton (1003)
End If
End If
' Motor Festdrehzahl und Spannungsversorung aus
ResetOutbit(90,10)
ResetOutbit(90,11)
ResetOutbit(90,12)
ResetOutbit(90,13)
DoSpinStop()
ResetOutbit(90,2)
Message "Gang 4 eingelegt"
End Sub
Re: Mach4 oder SIM CNC
Mach3 arbeitet mit Visual Basic und Mach4 mit LUA, kannst also nichts übernehmen. Mach4 hat übrigens mit Mach3 garnichts mehr gemeinsam. Wie es bei SimCNC ist weiß ich nicht, ich nutze Mach4 mit meiner csmio/ip-s und bin zufrieden.
Gruß
Olli
Gruß
Olli
Re: Mach4 oder SIM CNC
Hi,
Bei der simCNC werden die Scripte in Python erstellt. Es ist sehr angenehm die zu erstellen falls es die erste Programmiersprache ist.
Bei der simCNC werden die Scripte in Python erstellt. Es ist sehr angenehm die zu erstellen falls es die erste Programmiersprache ist.
-
- Beiträge: 4
- Registriert: 09.02.2022, 16:10
Re: Mach4 oder SIM CNC
Mit ist klar, dass sich die Programmiersprache von MACH3 unterscheidet.
Die Frage ist, ob so eine Getriebschaltung überhaupt in SIM bzw MACH4 umsetzbar ist.
Hab zwar die Handbücher überflogen, aber nichts gefunden.
Vemutlich geht es eher mit MACH4 als mit SIM. Das Script oben werde ich schon irgenwie in LUA oder Python hinbiegen können.
Nachdem ich mit dem Wechsel von CSMIO A zu S eh alles umbasteln muss, wäre das der Zeitpunkt für einen Softwaretausch.
Aber wenn es dann mit der neuen Software nicht klappt muss ich nomal beisteigen und auf MACH3 zurückgehen.
Die Frage ist, ob so eine Getriebschaltung überhaupt in SIM bzw MACH4 umsetzbar ist.
Hab zwar die Handbücher überflogen, aber nichts gefunden.
Vemutlich geht es eher mit MACH4 als mit SIM. Das Script oben werde ich schon irgenwie in LUA oder Python hinbiegen können.
Nachdem ich mit dem Wechsel von CSMIO A zu S eh alles umbasteln muss, wäre das der Zeitpunkt für einen Softwaretausch.
Aber wenn es dann mit der neuen Software nicht klappt muss ich nomal beisteigen und auf MACH3 zurückgehen.
Zuletzt geändert von gravedigger am 10.02.2022, 11:50, insgesamt 1-mal geändert.
Re: Mach4 oder SIM CNC
Meiner Meinung nach wird es sich nicht unterscheiden, wenn es auf der Mach3 gelaufen ist, wird es auch unter simCnc laufen. Ich bin auch von der Mach3 umgestiegen und bereue es nicht. Die Lizenz für simCNC gibt es günstig bei ebay.
Grüße
Sebastian
Grüße
Sebastian
Re: Mach4 oder SIM CNC
und ich sehe keinerlei Probleme das das auf Mach4 nicht laufen sollte
-
- Beiträge: 4
- Registriert: 09.02.2022, 16:10
Re: Mach4 oder SIM CNC
Zumindest kann man in MACH4 den M3 Befehl überschreiben/ändern.
https://www.machsupport.com/forum/index ... #msg289283
Aber mir noch nicht ganz klar wo und wie das geht.
Edit:
In Profil /Macros muss man wohl eine Datei M3/4 anlegen.
https://www.machsupport.com/forum/index ... #msg289283
Aber mir noch nicht ganz klar wo und wie das geht.
Edit:
In Profil /Macros muss man wohl eine Datei M3/4 anlegen.
Zuletzt geändert von gravedigger am 10.02.2022, 12:02, insgesamt 1-mal geändert.
-
- Beiträge: 4
- Registriert: 09.02.2022, 16:10
Re: Mach4 oder SIM CNC
Kann man in SIM den M3/4 befehl überlagern/ändern/ergänzen?
Re: Mach4 oder SIM CNC
Ja, es ist möglich. So wird das delay bei dem Spindel Hochlauf realisiert. Du kannst dir die simCNC downloaden und virtuell testen was möglich ist.
Wer ist online?
Mitglieder in diesem Forum: Google [Bot] und 16 Gäste