Siemens
Siemens

Digital Industries, Motion Control, Machine Tool Systems

$A_OUTA stoppt Achsbewegung

Beitrag 16.05.2019, 10:53 Uhr
ls2112
ls2112
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 16.05.2019
Beiträge: 3
Hallo zusammen,
ich bin aktuell an meiner Masterarbeit an einem Laserbearbeitungszentrum. Es geht um einen Auftragsschweißprozess, aber das ist ertmal zweitrangig. Der Laser wird über die Analogschnittstelle angesteuert. Wenn ich das mit den vorgesehenen G Befehlen / Trumpf befehlen Schalte, habe ich sehr lange Schaltzeiten, die mich stören.
Ich wollte es daher über:

$A_OUTA[1]=XXXX

probieren.
Das führt aber leider dazu, dass die Anlage die Bewegung unterbricht um den Befehl abzuarbeiten. Das hilft mir dann auch nicht weiter, da ich dann erstmal wieder 7cm fahren kann bis ich auf Geschwindigkeit bin. Gibt es eine Möglichkeit, dass die Achse bei nutztung des Befehls nicht angehalten werden?
   
Beitrag 16.05.2019, 12:08 Uhr
CNCFr
CNCFr
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 15.09.2002
Beiträge: 1.922
Ich nehme an, dass der Ausgabebefehl alleine in einem Satz steht. Dann ist das Verhalten auch völlig korrekt.
Du kannst versuchen, den Befehl mit in den Bewegungssatz zu schreiben. Dann sollten Bewegung und Analogausgabe parallel ablaufen.
   
Beitrag 16.05.2019, 12:40 Uhr
ls2112
ls2112
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 16.05.2019
Beiträge: 3
QUOTE (CNCFr @ 16.05.2019, 12:08 Uhr) *
Ich nehme an, dass der Ausgabebefehl alleine in einem Satz steht. Dann ist das Verhalten auch völlig korrekt.
Du kannst versuchen, den Befehl mit in den Bewegungssatz zu schreiben. Dann sollten Bewegung und Analogausgabe parallel ablaufen.

Danke schon mal für die Idee, ansonsten Verhält sich die Steuerung aber nicht so. Wenn ich 3 Sätze fahre
Relativ
Y-100
Y-100
Y-100
Macht die Steuerung eine Bewegung daraus. Wenn ich den Laser über den G-Befehl anschalte, hält die Anlage trotz einzelner Sätze auch nicht an.

Was ich erreichen möchte: Verfahren um die Achse auf Geschwindigkeit bringen und dann Laser an einem Punkt an um dann die Bahn mit der Geschwindigkeit und Laser an abzufahren. Das geht so mit den G Befehlen aber die Streuen unglaublich stark. Bei 40m/min geht der Laser manchmal nach 2mm an, und dann beim nächsten Versuch erst nach 35mm, Vielleicht gibt es da auch andere Ideen / Ansätze wie ich da etwas mehr Konstanz reinbringen kann?
   
Beitrag 16.05.2019, 13:01 Uhr
CNCFr
CNCFr
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 15.09.2002
Beiträge: 1.922
Drei Sätze mir reinen Fahrbefehlen sind auch etwas anderes als z.B
y-100
$A_OUTA[1]=1234
y-100

In diesem Beispiel sagst du, dass zwischen den beiden Verfahrsätzen ein weiterer Satz ausgeführt werden soll, in dem kein Verfahrbefehl steht. das bedeutet, dass die Bewegung vor diesem Satz zum Stillstand kommen muss.
Zu der Ungenauigeit bei der Steuerung über G-Befehle: Ich glaube nicht, dass das mit den G-Befehlen zu tun. Ich sehe nicht, wie es da zu einer derartigen Streuung kommen kann.
Ich vermute eher, dass dass der Ausgabebefehl nicht direkt an den Laser geht, sondern an die PLC. Da PLC und NC asynchron laufen, hast du eine volle PLC-Durchlaufzeit als zeitliche Unsicherheit.
Wenn das so sein sollte, hilft natürlich auch mein Vorschlag, Fahrbefehl und Ausgabebefehl in einem Satz zusammen zu fassen, nicht sehr viel weiter, da man dadurch an der Streuung nichts ändert. Es ist dann ein Verhalten wie mit den G-Codes zu erwarten.
Es gibt einige schnelle digitale Ausgänge, die direkt von der NC ausgegeben werden und nicht über die PLC laufen. Ob es auch entsprechende analoge Ausgänge gibt weiß ich nicht mit Sicherheit.
Noch ein allgemeiner Tipp: Wenn du sozusagen "fliegend" an bestimmten Stellen in einem Satz Aktionen auslösen willst, geht das mit sogenannten "Bewegungssynchronaktionen". Aber auch damit schafft man die zeitliche Unschärfe nicht aus der Welt, wenn irgendwelche Signale erst durch die PLC geschleift werden müssen.
   
Beitrag 16.05.2019, 13:27 Uhr
Karesus
Karesus
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 25.10.2018
Beiträge: 22
Eine alternative zu der von CNCFr vorgeschlagenen Methode wäre es, das Einschalten des Lasers aus einer Synchronaktion heraus.

Beispiel:

ID=210 EVERY $A_DBB[0]==1 DO $A_OUTA[1]=5000 $A_DBB[0]==2
ID=211 EVERY $A_DBB[0]==0 DO $A_OUTA[1]=0 $A_DBB[0]==2

Y-100
Y-100 $A_DBB[0]=1 ; 1=Laser an
Y-100
.
.
.
Y-100 $A_DBB[0]=0 ; 0=Laser aus


CANCEL(210,211)
M30

Ob das jedoch einen Unterschied ausmacht weiß ich nicht. Du solltest jedenfalls vor Benutzung der ID´s abklären,
welche ID-Adressen dir frei zu Verfügung stehen. Nicht das du evtl. eine bereits bestehende Synchronaktion des Maschinenherstellers überschreibst.
   
Beitrag 16.05.2019, 13:33 Uhr
CNCFr
CNCFr
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 15.09.2002
Beiträge: 1.922
Und noch ein Vorschlag:
Es gibt ein Funktionspaket "Taktunabhängige bahnsynchrone Schaltsignalausgabe", beschrieben in der Doku "Sonderfunktionen". Vielleicht ist da etwas dabei, was dir weiterhilft.
   
Beitrag 05.06.2019, 10:09 Uhr
ls2112
ls2112
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 16.05.2019
Beiträge: 3
Vielen Dank erstmal für die Beiträge!
Ein Update von meiner Seite:
Ich habe es via
Do $A_OUTA[1]= 10.0
geschafft, dass die Achse nicht stoppt wenn der Laser eingeschaltet wird. Leider treten die Streuungen weiterhin und in gleichem Maße auf.
Das Kapitel mit dem taktunabhängigen Schalten ist tatsächlich sehr interessant, allerdings verstehe ich das so, dass der Laser dazu ein einem bestimmten Digitalausgang der Maschine angeschlossen sein muss. Aktuell ist der an einem analogen Ausgang und die Leistungssteuerung erfolgt über die Spannung.
Wollte ich das Feature der Sinumerik nutzen müsste ich wohl an die Verkabelung der Anlage? Verstehe ich das richtig?
   
Beitrag 06.06.2019, 12:35 Uhr
CNCFr
CNCFr
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 15.09.2002
Beiträge: 1.922
Das relevante Maschindatum ist $NC_FASTIO_ANA_NUM_OUTPUTS
Dazu findet man in der Doku:

10310 $NC_FASTIO_ANA_NUM_OUTPUTS
- Anzahl der aktiven analogen NCK-Ausgänge

Mit diesem Maschinendatum wird die Anzahl der an der Steuerung nutzbaren analogen
NCK-Ausgänge festgelegt.
Nur diese analogen NCK-Ausgänge können vom NC-Teileprogramm angesprochen bzw.
NC-Funktionen zugeordnet werden.
Falls mit dem Maschinendatum mehr analoge NCK-Ausgänge definiert wurden als
hardwaremäßig an der Steuerung bestückt sind, erfolgt keine Alarmmeldung. Die
vom Teileprogramm vorgegebenen Analogwerte können von der PLC gelesen werden.


Ich nehme an, dass dein Problem durch die beiden fett hervorgehobenen Sätze beschrieben wird:
Die PLC liest die von der NC ausgegebnen Werte und gibt sie dann aus. Damit streuen die Ausgabezeitpunkte mindestens um die PLC-Durchlaufzeit.
   
1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: