Siemens
Siemens

Digital Industries, Motion Control, Machine Tool Systems

Genauhalt umgehen

Beitrag 09.02.2022, 14:12 Uhr
FrostNRost
FrostNRost
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 26.02.2018
Beiträge: 3
Hallo,

habe folgende Problemstellung:
Auf unserer CNC fahren wir in x/y-Ebene nacheinander sehr viele Positionen an.
An jeder Position wird ein Ausgang Ein- oder Ausgeschaltet per $A_Out(40)=0, bzw. ...=1.
Dadurch macht die Maschine immer einen Genauhalt und fährt somit "stotternd".
In den Handbüchern habe ich herausgefunden, dass der Befehl $A_Out.... zwangsläufig zu einem Genauhalt führt.

Kennt jemand eine Lösung, wie wir das umgehen können, sodass die Positionen "überschliffen" werden?

Habe schon versucht, die Befehle in Unterprogramme einzubauen und diese als Quick Use aufzurufen wie folgt:
M=QU(99) bzw. M=QU(98)

Hier ein Beispiel:
...
N20 ; ### Beginn der 1. Reihe ###
N21 G41 G00 X-5665.12 Y-2303.64 Z32.7 C-30.1
N22 G01 Z16.2
N23 G01 X-5662.59 Y-2299.77 C-30.1 $A_Out(40)=1
N24 G01 X-5660.07 Y-2295.9 C-30.1 $A_Out(40)=0
N25 G01 X-5657.54 Y-2292.03 C-30.1 $A_Out(40)=1
N26 G01 X-5655.01 Y-2288.17 C-30.1 $A_Out(40)=0
N27 G01 X-5652.49 Y-2284.3 C-30.1 $A_Out(40)=1
N28 G01 X-5649.96 Y-2280.43 C-30.1 $A_Out(40)=0
...
N37 G00 Z32.7
N38 ; ### Ende der 1. Reihe ###
...


Die Maschine ist eine 5-achs CNC mit Siemens 840d sl


Vielen Dank im Voraus!
   
Beitrag 09.02.2022, 19:28 Uhr
FrostNRost
FrostNRost
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 26.02.2018
Beiträge: 3
...korrigiere, es ist eine 840d Powerline.

Der Beitrag wurde von FrostNRost bearbeitet: 09.02.2022, 19:29 Uhr
   
Beitrag 10.02.2022, 10:55 Uhr
CaptainFu
CaptainFu
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 09.09.2019
Beiträge: 49
QUOTE (FrostNRost @ 09.02.2022, 16:12 Uhr) *
Hallo,

habe folgende Problemstellung:
Auf unserer CNC fahren wir in x/y-Ebene nacheinander sehr viele Positionen an.
An jeder Position wird ein Ausgang Ein- oder Ausgeschaltet per $A_Out(40)=0, bzw. ...=1.
Dadurch macht die Maschine immer einen Genauhalt und fährt somit "stotternd".
In den Handbüchern habe ich herausgefunden, dass der Befehl $A_Out.... zwangsläufig zu einem Genauhalt führt.

Kennt jemand eine Lösung, wie wir das umgehen können, sodass die Positionen "überschliffen" werden?

Habe schon versucht, die Befehle in Unterprogramme einzubauen und diese als Quick Use aufzurufen wie folgt:
M=QU(99) bzw. M=QU(98)

Hier ein Beispiel:
...
N20 ; ### Beginn der 1. Reihe ###
N21 G41 G00 X-5665.12 Y-2303.64 Z32.7 C-30.1
N22 G01 Z16.2
N23 G01 X-5662.59 Y-2299.77 C-30.1 $A_Out(40)=1
N24 G01 X-5660.07 Y-2295.9 C-30.1 $A_Out(40)=0
N25 G01 X-5657.54 Y-2292.03 C-30.1 $A_Out(40)=1
N26 G01 X-5655.01 Y-2288.17 C-30.1 $A_Out(40)=0
N27 G01 X-5652.49 Y-2284.3 C-30.1 $A_Out(40)=1
N28 G01 X-5649.96 Y-2280.43 C-30.1 $A_Out(40)=0
...
N37 G00 Z32.7
N38 ; ### Ende der 1. Reihe ###
...


Die Maschine ist eine 5-achs CNC mit Siemens 840d sl


Vielen Dank im Voraus!


Falls noch kein G64 aktiv ist würde ich das noch hier miteinfügen
N22 G64 G01 Z16.2

und dann den Ausgang über eine Synchronaktion triggern, was dann dafür sorgt, dass das Schreiben auf den Ausgang
parallel mit der Ausführung des nächsten Hauptlaufsatzes erfolgt, also in diesem Fall der darauffolgende Verfahrsatz.
Damit sollte es zu keinem Genauhalt mehr kommen.
Bsp.:

When True Do $A_Out[40]=1
G01 X-5662.59 Y-2299.77 C-30.1
When True Do $A_Out[40]=0
G01 X-5660.07 Y-2295.9 C-30.1
When True Do $A_Out[40]=1
G01 X-5657.54 Y-2292.03 C-30.1
When True Do $A_Out[40]=0
G01 X-5655.01 Y-2288.17 C-30.1

usw. usw.
   
Beitrag 23.02.2022, 16:01 Uhr
FrostNRost
FrostNRost
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 26.02.2018
Beiträge: 3
QUOTE (CaptainFu @ 10.02.2022, 10:55 Uhr) *
Falls noch kein G64 aktiv ist würde ich das noch hier miteinfügen
N22 G64 G01 Z16.2

und dann den Ausgang über eine Synchronaktion triggern, was dann dafür sorgt, dass das Schreiben auf den Ausgang
parallel mit der Ausführung des nächsten Hauptlaufsatzes erfolgt, also in diesem Fall der darauffolgende Verfahrsatz.
Damit sollte es zu keinem Genauhalt mehr kommen.
Bsp.:

When True Do $A_Out[40]=1
G01 X-5662.59 Y-2299.77 C-30.1
When True Do $A_Out[40]=0
G01 X-5660.07 Y-2295.9 C-30.1
When True Do $A_Out[40]=1
G01 X-5657.54 Y-2292.03 C-30.1
When True Do $A_Out[40]=0
G01 X-5655.01 Y-2288.17 C-30.1

usw. usw.


Es funktioniert!

Merci!
   
1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: