Neue Geschwindigkeit und neue Endposition
Die Funktion 'Neue Geschwindigkeit und neue Endposition' dient instantanen Änderung der Zielposition und, falls vorher die vom Benutzer gewünschte Sollgeschwindigkeit VOld nicht erreicht werden konnte, auch - falls das möglich ist - der instantanen Änderung der aktuellen internen Sollgeschwindigkeit in Richtung auf die vom Benutzer gewünschte Sollgeschwindigkeit VOld, als auch - nach Überfahren einer Aktivierungsposition APos - der (späteren) Änderung der Sollgeschwindigkeit der Achse. Die dabei angegebene Geschwindigkeit VNew in mm/s muss echt größer 0.0 sein und darf die Maximalgeschwindigkeit der Achse nicht überschreiten. Die neue Endposition EPos muss innerhalb der Software-Endschalter liegen. Die Funktion 'Neue Geschwindigkeit und neue Endposition' kann nicht aktiviert werden solange eine Positionskompensation vorgenommen wird.
Interner Ablauf: Aktivierungsposition
Bei der Anforderung: Neue Geschwindigkeit VNew mm/s, neue Endposition EPos mm, Aktivierungsposition APos mm
wird zuerst das Verhältnis der Positionen EPos, APos und der aktuellen Position Pos zueinander in Bezug auf die logische Richtung der der Positionierung bestimmt. Sei die logische Richtung positiv:
- gilt: Pos ≤ APos ≤ EPos, dann wird die neue Sollgeschwindigkeit NewV nach Überfahren der Position APos aktiviert,
- gilt : APos ≤ Pos ≤ EPos, dann ist die Aktivierungsposition schon überfahren worden und die Sollgeschwindigkeit NewV wird instantan aktiviert,
- gilt: APos ≤ EPos ≤ Pos, dann wird gestoppt und mit der alten Sollgeschwindigkeit VOld automatisch zurückgefahren,
- gilt: Pos ≤ EPos ≤ APos, dann wird nur die neue Endposition und die alte Sollgeschwindigkeit VOld , nicht aber die neue Sollgeschwindigkeit aktiviert,
- gilt: EPos ≤ APos ≤ Pos, dann wird gestoppt, mit der alten Sollgeschwindigkeit VOld auf die neue Endposition zurückgefahren (nicht implementiert: und bei Überschreiten der Aktivierungsposition die neue Sollgeschwindigkeit VNew aktiviert).
- gilt: EPos ≤ Pos ≤ APos, dann wird gestoppt und mit der alten (nicht implementiert: neuen) Sollgeschwindigkeit auf die neue Endposition zurückgefahren.
Analoges gilt für die logische Richtung negativ.
Bei der Anforderung 'Neue Geschwindigkeit und neue Zielposition' wird, wenn die Achse gestartet worden ist, hinterfragt, ob
- die Achse das neue Ziel überfahren hat, oder ob
- die Achse bis zum neuen Ziel nicht mehr anzuhalten ist.
In diesen Fällen wird die Achse intern per Stop angehalten und dann automatisch mit der passenden Sollgeschwindigkeit VOld (falls diese erreichbar ist) oder VNew (falls diese erreichbar ist) auf die gewünschte neue Zielposition zurückgefahren.
Interner Ablauf: Neue Geschwindigkeit
Muss nicht zurückgefahren werden und entweder die neue Sollgeschwindigkeit instantan angefordert oder die Aktivierungsposition überfahren, dann wird mit der neuen Sollgeschwindigkeit eine neue Laufzeittabelle berechnet. Ist aufgrund der Verhältnisse von Restweg und neuer Sollgeschwindigkeit die neue Sollgeschwindigkeit nicht erreichbar, dann wird iterativ die Sollgeschwindigkeit 7-8 mal runtergesetzt. Falls das zu keiner Lösung führt (ungünstige Szenarien sind: kleiner Restweg und/oder große neue Sollgeschwindigkeit - in Bezug auf die alte Sollgeschwindigkeit), wird die alte Laufzeittabelle beibehalten.
Besonderheiten
Im Gegensatz zur Funktion 'Neue Endposition' hat bei der Funktion 'Neue Geschwindigkeit und neue Zielposition' der Stop keine Priorität. Das bedingt, dass inkohärente kurz aufeinanderfolgende Instruktionen nicht zum Stopp der Achse führen müssen. Die Funktion 'Neue Geschwindigkeit und neue Zielposition' ist kompatibel zur Override-Funktion. Erfolgt die Anforderung in der Bremsphase, dann wird die instantane Instruktion, falls sie nicht instantan ausführbar ist, die spätere Aktion suspendiert und die instantane Aktion optimal verzögert durchgeführt und darauf die Suspendierung aufgehoben. Wird die Funktion mit instantaner (Ereignis1) und späterer Aktivierung (Ereignis2) zwischen Ereignis1 und Ereignis2 durch eine nur instantan wirkende Funktion unterbrochen (Ereignis3), dann wird die Aktivierung von Ereignis3 gelöscht. Wird die Funktion zwischen Ereignis1 und Ereignis2 durch eine wiederum instantan (Ereignis3) und später (Ereignis4) wirkende Funktion unterbrochen, dann wird die Ereignis4 anstelle von Ereignis3 gesetzt.