MOVIDRIVE-Ansteuerung
Mmhh, ich hatte diesen Fehler noch nie, arbeite aber auch wie gesagt auf einem PXI und nicht in Windows. Abhilfe könnte vielleicht ein selteneres Senden der PDO's schaffen?! Sync erhöhen?
Ok, was mir an deinenm Bild 1 aufgefallen ist:
Die Zuweisung von NodeID+COB macht LV automatisch, wenn du dort 0 übergibst. Hier können sich also nur Fehler einschleichen... Am besten hier 0 angeben und gut.
Und was ist mit Buffer-Size? Dein Fehler deutet ja auch einen zu kleinen Buffer hin. Schonmal versucht, das hochzusetzen? Nur so eine Idee...
Wenn das nicht hilft: Kann es sein, dein Antrieb die PDOs gar nicht akzeptiert und damit dein Buffer überhaupt nicht leer wird?
Generell: Ich würde den Error als Shift-Register in die äußere Schleife geben... Mit normalen Tunnels liegt sonst am Schleifenbeginn immer "Kein Fehler" an, egal, ob der letzte Status der State-Machine einen Error produziert hat, oder nicht. Vielleicht gehen dir damit schon wichtige Informationen verloren, die jetzt beim Debugging helfen könnten.
Mal noch was ganz anderes: Wenn ich mir anschaue, was ich gestern produziert habe, dann wirkt deine Befehlsübergabe wahnsinnig einfach. Musst du denn den Antrieb gar nicht konfigurieren? Wenn ich z.B. eine Geschwindigkeit fahren will, muss ich erst den Motor in den Velocity-Mode wechseln, dann die Ziel-Geschwindigkeit übergeben, dann den Antrieb freischalten. Für ein Wechseln in den Positionsmodus müsste ich zumindest die Operation disablen, Modus wechseln, neue Ziel-Position übergeben und dann wieder freischalten. Du machst das alles in einem Schritt mit einem einzigen PDO... Wundert mich etwas.
EDIT: Was mir gerade noch auffällt: Versuche mal, alles mit Sync rauszuhauen. Da du sowieso nur einen Antrieb hast und nur Daten in eine Richtung schaufelst, bruachst du ja nichts zu synchronisieren. Vielleicht hilft das ja - Sende-PDOs scheinen nämlich mit Sync nix zu tun zu haben, wie ich gerade entdeckt habe. Dein Sync-Puls ist also völlig nutzlos...
|