Step 7 Sinumerik 840D R-Parameter aus der PLC beschalten.

pavel2005

Level-1
Beiträge
3
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,


ich arbeite im Moment an der Zykluszeitoptimierung einer CNC-Läppmaschine.
Um bestimmte Zustände aus der PLC auszulesen dauert mir nicht flüssig genug.


Wie kann ich stattdessen einen bestimmten Zustand, z.B den Wert der $A_IN[27] schneller im Programm auslesen oder den Wert am besten direkt einem R-Parameter übergeben.


Wer hat da eine gute Idee dazu.

Muss zugeben habe noch nicht sonderlich viel Erfahrung mit Programmieren.
 
In welchem Programm willst du den $A_IN[] schneller lesen? in der NC oder in der PLC? Und was bedeutet schneller?
In der NC kannst du den Eingang z.B. mit einer Synchronaktion direkt in deinen R-Parameter schreiben. Du kannst den aber genauso gut direkt abfragen. Ich sehe da keinen praktischen Unterschied.
Wenn du einen schnellen Eingang benötigst, dann frag ihn doch direkt in der NC ab. Musst du nur in den Maschinendaten definieren wo dein Eingang angeschlossen ist.

Grüße Bill Hearts
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Bill,

erstmal ein Dankeschön für die schnelle Antwort.

Ich werde mein Problem etwas genauer beschreiben.

Ich frage den $A_IN[] im MPF-File in einer Schleife ab, diese soll so oft durchlaufen bis der Wert sich ändert.

Beispiel:

WHILE $A_IN[]==0
g0 G64... ; Abwärtsbewegung
g1 G64... ; Aufwärtsbewegung
ENDWHILE

Jedes Mal wenn die WHILE-Abfrage stattfindet bleibt meine Achse kurz stehen, dies möchte ich vermeiden.
In einem Anderen Programm nutze ich ebenfalls WHILE schleife und frage aber R-Parameter ab, da gibt es keine Verzögerungen.

Kannst du mir einen Beispiel zeigen wie ich die $A_IN[]-Variable direkt auf ein R-Parameter legen könnte?

Danke im Voraus

Pavel
 
Hallo Pavel2005,
hier mal ein Beispiel wie dein Programm aussehen könnte. Ob das aber eine verbesserte Laufzeit bringt kann ich dir nicht sagen.
Wie das mit den Synchronaktionen funktioniert kannst du in der DocOnCD nachschauen, da gibt es ein eigenes Handbuch dafür.

Beispiel:
ID=1 DO $R90=A_IN[27]

WHILE R90==0
g0 G64... ; Abwärtsbewegung
g1 G64... ; Aufwärtsbewegung
ENDWHILE

CANCEL(1)

Grüße BillHearts
 
So wie Bill das geschrieben hat wird es keine Verzögerung geben
Da ein lesen der $A_IN[] in einer Synchronaktion keinen Vorlauf Stop auslöst , ohne Synchronaktion löst das lesen ein VL Stop aus.
 
Zurück
Oben