Cia 402 Controlword read only

Sani

Level-1
Beiträge
4
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich arbeite im Rahmen eines Praktikums mit einer Rexroth CSH02-Steuerung und einem Synchronmotor. ich bin noch relativ neu in dem Thema und arbeite mich noch ein.

Bisher wurde der Motor über das IndraWorks DS Diagnose-Tool betrieben. Ich möchte diesen über Python ansteuern um ihn in ein Komplettsystem zu integrieren. Es soll nur das Drehmoment gesteuert werden und Statuswerte ausgelesen werden.

Dafür habe ich zwei Ansätze verfolgt:

1. Über EtherCAT Cia402 Coe in Kombination mit TwinCAT und ADS (mittels PyADS-Bibliothek)

2. Über Ethernet/IP

Mit der ersten Variante (EtherCAT + TwinCAT + ADS) konnte ich bereits die PDOs des Antriebs über Python auslesen und beschreiben( Statusword, Target torque).

Allerdings habe ich aktuell Schwierigkeiten bei der Ansteuerung, da das Controlword in meiner PDO-Zuordnung als Read-Only deklariert ist. Nach meinem bisherigen Verständnis müsste ich durch das gezielte Setzen einzelner Bits im Controlword die verschiedenen Zustände des Antriebs (z.B. “Shutdown”, “Switch On”, “Enable Operation”) ansteuern können.

Wie/wo kann ich die Zugriffsrechte ändern?
Macht es überhaupt Sinn die Prozessdaten direkt zu beschreiben?

Die Manuelle Ansteuerung über Twincat über das Nc online funktioniert auch noch nicht, da ich den Antrieb nicht freigeben kann.

Mit der zweiten Variante (Ethernet/IP) konnte ich bereits erfolgreich eine Verbindung herstellen und sowohl Lese- als auch Schreibzugriffe auf den Antrieb durchführen. Allerdings finde ich bislang nicht die notwendigen CIP-Klassen, Instanzen und Attribute, die für die gezielte Steuerung bzw. Zustandsübergänge des Antriebs erforderlich wären.

Ich würde mich sehr über Tipps oder Erfahrungen freuen, insbesondere zum Controlword oder den Cip.

Vielen Dank im Voraus!
 
SPS-Systeme als Gateway zu benutzen und mittels Slow-Performance Interpretor-Sprachen Echtzeit zu interpolieren ist grundsätzlich der falsche Ansatz. Das mag für einen Einzelantrieb funktionieren, aber sobald die Abläufe leicht komplexer werden, gerät das System schnell an die Grenzen.

Der richtige Aufbau ist folgender: Du bindest den Rexroth CSH02 als NC-Achse eine. Das geht vollautomatisch bereits mit dem Scan der Hardware. Einfach alle Fragen beim Scan mit "Ja" beantworten.
1742536184938.png

Dann schreibst Du Dir ein kleines SPS-Programm, bei dem Du den Antrieb mit den Bausteinen aus der TC2_MC2 Bibliothek steuerst.
MC_Power zum Einschalten, MC_TorqueControl für die Drehmomentensteuerung allerdings sind dafür möglicherweise noch ein paar zusätzliche Einstellungen im Prozessabbild notwendig.

Die Baustein steuernden Variablen, die Du selbst festlegen muss, bilden dann Deine Schnittstelle ins HMI-System, in Deinem Fall Python.

Wenn das manuelle Einschalten über den NC noch nicht funktioniert, hast Du die Schnittstelle manuell verändert? Am besten lässt man die erst mal so, wie die vom TwinCAT beim Scan eingerichtet wird. Zeigt der Umrichter irgendwelche Fehlermeldungen? Welche Fehlermeldung kommt vom NC?
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Das wäre auch mein Ansatz gewesen. Erst mal sehen, dass die Achse in TwinCat manuell bedient werden kann und anschließend ein kleines Programm schreiben dass die MC-Funktionen verwendet. Die Anbindung an das übergeordnete System dann über eine klar definierte Schnittstelle fahren, mit entsprechenden Handshake-Mechanismen.

Du wirst aber zusätzlich noch eine Lizenz für MotionControl benötigen.

Beim festlegen einer Automatisierungsarchitektur ist es wichtig darauf zu achten, dass die Komponenten entsprechend ihrer Fähigkeiten ausgewählt werden. SPS macht Echtzeitsachen, Leitsystem macht Datensachen usw. und dann muss man die Dinge so verknüpfen dass alle Teile die Informationen haben die sie zum arbeiten benötigen und die Ergebnisse zurück liefern können.
 
Vielen Dank für die schnelle Unterstützung.
Ich habe nun ein neues Projekt erstellt und die Hardware erfolgreich per Scan eingebunden.
Derzeit versuche ich, den Motor manuell anzusteuern.


Der Positionswert wird im Status korrekt angezeigt und ändert sich auch, wenn ich den Motor manuell drehe.
Ich kann die Reglerfreigabe setzen, aber sobald ich versuche, eine Bewegung auszuführen, erhalte ich den Fehler 4225: "Antrieb ist nicht betriebsbereit für eine Positionierung." ->Antrieb ist nicht freigegeben?


Die Leistungsfreigabe ist aktiviert, und sowohl EtherCAT-Master als auch -Slave befinden sich im OP-Modus.
Im IndraWorks Diagnose-Tool wird allerdings angezeigt, dass der Antrieb noch nicht freigegeben ist und dass keine Sollwertvorgabe über die Führungskommunikation erfolgt(Fehler E4005).

Ich habe das Controlword ausgelesen, und das Freigabe-Bit ist gesetzt.
Ich vermute, dass die Steuerung die Freigabe dennoch nicht erteilt, weil kein Sollwert anliegt laut Steuerung.
Ich habe bereits versucht, im NC-Tab manuell Sollwerte zu setzen, jedoch ohne Erfolg.

Vielen Dank nochmal für die Hilfe.
 
Hast Du schon hier auf "Setzen" und dann "Alle" geklickt ?

1742547663649.png

Unter "Freigaben" müssen alle Häckchen gesetzt sein.

Schau mal in der Fehlerliste des Visual Studios nach, da stehen oft nützliche Zusatzinformationen, wie: Geschwindigkeit kann nicht 0 sein oder Geschwindigkeit kann nicht größer als Max sein oder was anderes.

1742547748302.png
 

Anhänge

  • 1742547532100.png
    1742547532100.png
    17,4 KB · Aufrufe: 3
Zuviel Werbung?
-> Hier kostenlos registrieren
Twincat_Screenshot.PNG
Freigabe und Override sind gesetzt. Ich habe versucht über die Buttons zu steuern und über die wert Vorgabe. Die Soll Geschwindigkeit oben ändert sich nicht.
Fehlerliste beinhaltet nur den Fehler 4225.
Links das Diagnosetool Indraworks ds.
 
Mir fällt auf, das der Geber noch nicht referenziert ist. Leider habe ich eher selten mit Bosch-Antrieben gearbeitet.
Ist ein Absolutwertgeber verbaut? Wenn nein, wie referenziert ihr den Antrieb mit dem IndraWorks DS Diagnose-Tool? Wenn ja, ist möglicherweise eine Einstellung falsch, weil Absolutwertgeber sind per default referenziert.
 
Bei Siemens gibt es die "Steuerhoheit" mit der Antriebe manuell freigegeben werden können.. schau mal im Twincat.. da sollte es was zu geben..



Indraworks ist echt nicht sooo leicht zu durchblicken.. auch weils Rexroth immer seine Dokumente etwas geheim hält..
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Bei Siemens gibt es die "Steuerhoheit"
Das ist beim TwinCAT nur ähnlich. Die Freigaben können manuell nur gesetzt werden, solange keine SPS verknüpft ist. Ab dem Moment, wo die SPS übernimmt, hat man keine Möglichkeit mehr, die Freigaben zu setzen oder zu löschen, weil die SPS das sofort überschreibt.
Wenn man diese Funktion "Steuerhoheit übernehmen" sucht, muss man eher im Intraworks suchen.
Der Unterschied zu Siemens ist, dass man dort oft alles manuell macht, d.h. Steuerwort selbst schreiben, Statuswort selbst bewerten, Position und Geschwindigkeit selbst lesen und schreiben usw. Da ist die NC-Achse schon eher eine Zusatzkomponente, die zwischen der SPS und dem Umrichter angeordnet ist. Die genormte Schittstelle macht dann die SPS antriebsunabhängig. Ein unschätzbarer Vorteil.
 
Vielen Dank für den Input!

Paar Infos zum Aufbau:
Der Motor wird nicht zur klassischen Positionierung verwendet. Er dient als Last für einen Testmotor welcher über eine Messsachse verbunden ist.
Hauptaufgabe ist die Drehmoment Steuerung der Last(Rexroth Motor) um verschiedene Versuche und Messungen am Testmotor durchzuführen.
Mir fällt auf, das der Geber noch nicht referenziert ist. Leider habe ich eher selten mit Bosch-Antrieben gearbeitet.
Ist ein Absolutwertgeber verbaut? Wenn nein, wie referenziert ihr den Antrieb mit dem IndraWorks DS Diagnose-Tool? Wenn ja, ist möglicherweise eine Einstellung falsch, weil Absolutwertgeber sind per default referenziert.
Es handelt sich um einen singleturn Absolutwertgeber. Ich muss mir die Geber Einstellungen mal anschauen, habe die immer übersprungen da eine genaue Positionierung nie notwendig war.


Bei Siemens gibt es die "Steuerhoheit" mit der Antriebe manuell freigegeben werden können.. schau mal im Twincat.. da sollte es was zu geben..



Indraworks ist echt nicht sooo leicht zu durchblicken.. auch weils Rexroth immer seine Dokumente etwas geheim hält..
Ich schaue mir das nochmal an, Danke. Die Beckhoff Dokumentation ist sehr umfangreich

Das ist beim TwinCAT nur ähnlich. Die Freigaben können manuell nur gesetzt werden, solange keine SPS verknüpft ist. Ab dem Moment, wo die SPS übernimmt, hat man keine Möglichkeit mehr, die Freigaben zu setzen oder zu löschen, weil die SPS das sofort überschreibt.
Wenn man diese Funktion "Steuerhoheit übernehmen" sucht, muss man eher im Intraworks suchen.
Der Unterschied zu Siemens ist, dass man dort oft alles manuell macht, d.h. Steuerwort selbst schreiben, Statuswort selbst bewerten, Position und Geschwindigkeit selbst lesen und schreiben usw. Da ist die NC-Achse schon eher eine Zusatzkomponente, die zwischen der SPS und dem Umrichter angeordnet ist. Die genormte Schittstelle macht dann die SPS antriebsunabhängig. Ein unschätzbarer Vorteil.

Ich werde die Parametrierung im IndraWorks nochmal durchgehen und parallel versuchen, den Antrieb über ein kleines SPS-Programm in TwinCAT direkt anzusteuern – vielleicht erhalte ich dabei noch weitere Fehlermeldungen oder Hinweise.
Das Indraworks ist nicht besonders Intuitiv, daher die Suche nach einer besseren Lösung.
 
Ich werde die Parametrierung im IndraWorks nochmal durchgehen und parallel versuchen, den Antrieb über ein kleines SPS-Programm in TwinCAT direkt anzusteuern – vielleicht erhalte ich dabei noch weitere Fehlermeldungen oder Hinweise.

Hier musst du ansetzen, bei der Konfiguration vom Geber:
Mir fällt auf, das der Geber noch nicht referenziert ist. Leider habe ich eher selten mit Bosch-Antrieben gearbeitet.
Ist ein Absolutwertgeber verbaut? Wenn nein, wie referenziert ihr den Antrieb mit dem IndraWorks DS Diagnose-Tool? Wenn ja, ist möglicherweise eine Einstellung falsch, weil Absolutwertgeber sind per default referenziert.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
den Antrieb über ein kleines SPS-Programm in TwinCAT direkt anzusteuern
So lange das in der NC-Ansicht nicht funktioniert, brauchst Du kein SPS-Programm versuchen. Die NC-Achse ist nur ein Zwischenelement zwischen der SPS und dem Antrieb. Das Zwischenelement muss zuerst problemlos funktionieren. Der MC_Power z.B. macht auch nichts anderes als die Freigaben im NC zu setzen.
 
Zurück
Oben