Hallo zusammen,
die Funktion Coords() wird in sps.sub aufgerufen und der Code funktioniert soweit einwandfrei aber ich habe ein Problem mit Anzahl von Paketen.
Der Roboter kommuniziert einen ProfiNet-Teilnehmer direkt (ohne Verlängerungskabel), welcher jede 500 µs (Zykluszeit) auf die Änderungen prüft. Sobald es eine Änderung auf der Schnittstelle gibt, werden die Daten von diesem Teilnehmer geholt.
Ziel ist 1000 Koordinaten/s (Je mehr desto besser).
Aktualisierungszeit von KUKA ProfiNet: 1ms
Ich habe einige Tests gemacht.
Wenn alle 6 Positionen (alle 6 Variablen) in die Schnittstelle geschrieben werden, liegt die Anzahl bei 170-180 Coords/s.
Wenn 3 Variablen, dann 275-300 Coords/s
Wenn nur eine Variable(egal welche), dann 650-720 Coord/s.
Meine Vermutung ist, dass die Zykluszeit sich deutlich erhöht, wenn mehrere Ausgänge getriggert werden, die mit ProfiNet gemappt sind.
Fragen und Ideen sind willkommen.
Vielen Dank euch.
Code.dat
GLOBAL SIGNAL doPosX $OUT[1] TO $OUT[32]
GLOBAL SIGNAL doPosY $OUT[33] TO $OUT[64]
GLOBAL SIGNAL doPosZ $OUT[65] TO $OUT[96]
GLOBAL SIGNAL doPosA $OUT[97] TO $OUT[128]
GLOBAL SIGNAL doPosB $OUT[129] TO $OUT[160]
GLOBAL SIGNAL doPosC $OUT[161] TO $OUT[192]
Code.src:
E6POS ActPos
GLOBAL DEF Coords()
ActPos = $POS_ACT
doPosX = (ActPos.X*1000)
doPosY = (ActPos.Y*1000)
doPosZ = (ActPos.Z*1000)
doPosA = (ActPos.A*1000)
doPosB = (ActPos.B*1000)
doPosC = (ActPos.C*1000)
END
Alles anzeigen