S120, Servo, Verfahrsatz - Auftrag wird nicht immer angenommen

TheLevel

Level-2
Beiträge
208
Reaktionspunkte
79
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich habe hier folgendes Problem: Ich muss Verfahrsätze zeitlich sehr knapp hintereinander starten. Ich starte nur, wenn das Bit "Auftrag aktiv" negativ und das Bit "Achse steht" positiv ist. Manchmal reicht das aber nicht und der Auftrag wird nicht übernommen. Nehme ich das Bit "Achse in Position" als Verriegelung dazu, funktioniert es. Aber gibt es einen Trick, dass es mit "kein Auftrag aktiv" auch zuverlässig geht? Ich kommuniziere mit Telegramm 111 und von dieser Eigenart abgesehen läuft alles wie gewünscht.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hilft es denn, wenn nach "kein Auftrag aktiv" noch 1 Zyklus lang bis zur Ausgabe des nächsten Auftrags gewartet wird?
Leider nein. Ich habe mir das an einer anderen Achse angeschaut, wo ich keinen crash fahren kann. Hier müssen es viele Zyklen sein (>100ms) bis es wieder geht. Auf dem Scope sieht man, dass die Bits "Achse fährt positiv" und "Auftrag aktiv" von 1 auf 0 wechseln, während die Achse noch am Fahren ist. Das "In Position" Bit kommt später. Der Zeitunterschied ist natürlich abhängig von Rampe, Lageregler, Aber ich hätte eben gerne ein "Auftrag abgeschlossen" Bit erst dann, wenn auch ein neuer angenommen werden kann....
 
Gab es da nicht auch ein Bit "Neuer Fahrauftrag erlaubt"?, das anzeigt, dass man wieder starten kann?
 
Gab es da nicht auch ein Bit "Neuer Fahrauftrag erlaubt"?, das anzeigt, dass man wieder starten kann?
Leider kann ich genau das nicht finden und ich war der naiven Meinung, dass "Auftrag aktiv" negiert genau das aussagt....

Die Verriegelung mit "in Position" funktioniert. Das Bit kommt tatsächlich signifikant später als das "Auftrag aktiv" geht.

Aber bei einem Takt von 160/Minuten und zwei Achsen die sich mit mehr als 1m/s gegenseitig jagen kommt es hier auf jeden Zyklus an... Und es bleibt das ungute Gefühl, es nicht richtig gemacht zu haben und doch mal ein Auftrag verschluckt wird.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
...zur Not p2048 an der Control Unit hochsetzen (z.B. auf 9ms). Aber eigentlich hört sich das nach einem sauberen Handshake an, was Du da umgesetzt hast. Am besten r2683 und r2684, r2090 und r2666 tracen. Da reicht dann auch der Endlos- Trace mit 2ms Abtastzeit. Ggf. siehst Du dann ob in bestimmten Situationen das Bit r2090.6 zu früh kommt. Wenn das sauber ausschaut, dann ist das ein Thema für die Hotline.

Aber nehme gleich die Betriebsart MDI. Da kannst Du praktisch immer wieder Sollwerte neu nachtriggern (bzw. sogar stetig übernehmen lassen).
 
Zuletzt bearbeitet:
... vielleicht mal p2048 auf 9ms stellen. Scheint ja ein Timing- Thema zu sein. Aber ich hätte jetzt auch erwartet dass das so funktioniert wie Du es machst, aber wenn ggf mal dein SPS Zyklus schon <4ms zeitweise sein kann?
Man könnte noch taktsynchron anbinden - OB61 ... aber da müsstest Du aufs PAA direkt schreiben.
Aber ich würde so eine Aufgabe ohnehin mit MDI umsetzen. Da kann man praktisch in jeden Zyklus einen neuen Auftrag nachschieben.
Ich bekomme den p2048 gar nicht angezeigt, aber ich denke das Problem liegt woanders. Bei einer langsameren Achse mit langer Rampe habe ich das getestet und bei einer Zykluszeit um die 10ms hat es erst mit einer Verzögerung um 150ms gepasst. Ich vermute, die Drehzahl- oder Positionsabweichung sind bei "Auftrag aktiv" und der prinzipiellen Bereitschaft, einen neuen Auftrag anzunehmen, unterschiedlich.
Bisher hatte ich weder mit Fahrsätzen noch mit der Problematik, so schnell hintereinander neue Fahrbefehle an die gleiche Achse absetzen zu müssen, zu tun. Meine Wahl wäre auch MDI gewesen, aber es mussten Fahrsätze sein (Kundenvorgabe). Prinzipiell funktioniert das auch, aber der Programmieraufwand war um ein vielfaches größer und eben dieses "kleine" Detail, weswegen ich diesen Thread gestartet habe...
 
Änderst Du die Verfahrsätze über azkl. Aufträge? Aber trace doch mal die oben genannten Konnektoren.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Änderst Du die Verfahrsätze über azkl. Aufträge? Aber trace doch mal die oben genannten Konnektoren.
Die Anwahl passiert zyklisch über Telegramm 111. Die Inhalte der Fahrsätze können azyklisch angepasst werden, das passiert aber nicht während des Verfahrens. Anbei ein Scope. Man sieht, dass der Auftrag abgeschlossen ist, bevor der Motor steht. Und in Position kommt später. Das Bit 6 ist das Auftrag aktivieren Bit.


EPOS.jpg
 
Zurück
Oben