Befehlsverarbeitung auf der SIMOTION

Draco Malfoy

Level-1
Beiträge
1.168
Reaktionspunkte
82
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen

Wenn ich einen Befehl _movePathLinear oder _movePathCircular oder irgendeinen Move-Befehl abesetze, dann geht die Programmabarbeitung in diesen Befehl, und kommt erst wieder, wenn der dieser vollendet oder abgebrochen wurde. Siemens empfiehlt im Handbuch, eine MotionTask zu nutzen. Ich begreife das Ganze noch nicht so ganz. Folgende Fragen stellen sich einem logisch und lassen mich nachts nicht schlafen:

1) Die Befehle zur Achsensteuerung wie _Move oder _Pos folgen dieser Systematik nicht. Die lassen sich in einem Zykluswechsel absetzen. Nur die Bahnbefehle. Warum ? Kann man dieses Verhalten irgendwie steuern ?
2) Ist irgendwo beschrieben, welche Befehle einer zyklischen und welche einer azyklischen Systematik folgen ?
3) Firma Siemens bringt ja selber recht interessante Bibliotheken heraus. Zum Beispiel, SIMOTION JogPath, oder Handling Basic, oder Handling advanced.

https://support.industry.siemens.com/cs/document/109481919/simotion-jog-path?dti=0&dl=en&lc=de-WW

In diesen Bibliotheken und Beispielen wird allerdings nirgends irgendeine MotionTask genutzt, sondern immer nur die Background Task. Was zum Satan mache ich also falsch ? Soll man davon ausehen, daß innerhalb dieser Bibliotheken mit nicht öffentlich deklarierten Befehlen gearbeitet wird, oder gibt es irgend eine Möglichkeit, Bahnbefehle aus einer Background Task heraus programmflußverträglich abzusetzen ?
 
Ok, problem gelöst. Problem saß vor dem Monitor und hat übergebene Parameter nicht hinreichend überprüft.

Die Befehlssteuerung wird bei Simotion Technologiebefehlen in folgender Weise realisert:

Param = nextCommand

Angabe der Befehls-Weiterschaltbedingung. Diese definiert den Zeitpunkt der Rueckkehr des Befehls in das Programm, das den Befehl abgesetzt hat. Dadurch sind synchron und asynchron abgesetzte Befehle moeglich. Bei IMMEDIATELY wird unmittelbar weitergeschaltet. Bei WHEN_BUFFER_READY wird nach dem Eintragen in die Befehlsqueue weitergeschaltet. Bei AT_MOTION_START erfolgt die Weiterschaltung mit dem Start der Interpolation. Bei WHEN_ACCELERATION_DONE erfolgt die Weiterschaltung mit dem Ende der Beschleunigungsphase. Bei AT_DECELERATION_START erfolgt die Weiterschaltung mit dem Beginn der Verzoegerungsphase. Bei WHEN_INTERPOLATION_DONE erfolgt die Weiterschaltung mit dem Ende der Sollwertinterpolation. Bei WHEN_MOTION_DONE erfolgt die Weiterschaltung, wenn die Bewegung zuende ausgefuehrt oder auf andere Weise gestoppt wird.
 
Zurück
Oben