Echtzeitsteuerug mit C

  • Liebe Forengemeinde,
    auf der Suche nach Informationen bin ich auf euer Forum gestoßen und hab auch gleich ein paar Fragen.


    Bevor ich diese loswerde, hier die Daten des Mitsubishi-Roboters um den es geht (ich hoffe die Angaben reichen. Falls nicht, reich ich notwendige Informationen nach.):
    Model: RV-2AJ-S12
    Controller: CR1-571-S12


    Mein Ziel ist es mit einem echtzeitfähigem C-Programm den Roboter Bewegungen ausführen zu lassen.
    Das einzige Dokument, was ich zu dem Roboter besitze ist das "Instruction Manual" für den Controller. Darin ist beschrieben wie der Roboter mittels MELFA-BASIC IV programmiert werden kann. Für mich wäre es aber interessant inwiefern das gute Teil auch über C programmierbar ist.


    Was ich hier im Forum gefunden habe, ist die Möglichkeit von einem PC über eine Ethernet-Verbindung Befehle an den Roboter zu senden, welcher durch die "MXT-Anweisung" auf externe Befehle wartet.
    Besteht diese Möglichkeit grundsätzlich für den angegebenen Roboter und gibt es irgendwo Dokumente, in denen dieses Verfahren beschrieben wurde? Ich besitze derzeit leider nur das Instruction Manual zum Controller mit den Beschreibungen der einzelnen MELFA-BASIC IV Befehle (der MXT Befehl ist nicht aufgeführt).


    Gibt es - außer der Lösung mit MXT - noch weitere Möglichkeiten der Echtzeitsteuerung? Also könnte ein in VxWorks entwickeltes Echtzeit-Programm direkt auf den Roboter gebracht werden, sodass Bewegungsbefehle nicht einzeln erst gesendet werden müssen?



    Antworten auf diese Fragen würden mich schon einen riesigen Schritt weiterbringen.
    Daher schonmal vielen Dank im Voraus.



    Beste Grüße

  • ANZEIGE
  • Hallo


    und willkommen im Forum.



    Model: RV-2AJ-S12
    Controller: CR1-571-S12


    Die komplizierte Antwort habe ich gleich zu Anfang. ;)


    Also, obwohl ich beruflich sehr viel mit dieser Echtzeitsteuerung zu tun habe, bin ich mir hier nicht sicher. Der Grund dafür ist, dass dieser Roboter ein 5-Achser ist. In älteren Handbüchern steht explizit, dass die Echtzeitsteuerung nur mit den 4- und 6-Achsern geht. Allerdings habe ich später schon mal von Mitsubishi Mitarbeitern gehört, im Prinzip ginge es auch mit den 5-Achsern. In neueren Handbüchern steht nichts mehr von dieser Einschränkung, es werden derzeit aber auch gar keine 5-Achser mehr angeboten.


    Wenn es technisch geht, gibt es auf jeden Fall noch ein paar mathematische Hindernisse, weil die 5-Achser da einige Besonderheiten bezüglich der Winkel in der Roboterposition haben.


    Man sollte zu dieser Frage eventuell den Hersteller befragen. Es kann sein, dass der Roboter ein Betriebssystem-Update braucht, um das zu unterstützen.



    und gibt es irgendwo Dokumente, in denen dieses Verfahren beschrieben wurde? Ich besitze derzeit leider nur das Instruction Manual zum Controller mit den Beschreibungen der einzelnen MELFA-BASIC IV Befehle (der MXT Befehl ist nicht aufgeführt).


    Für diesen Robotertyp sollte es im Handbuch der Ethernetkarte beschrieben sein. Man kann aber auch in ein neueres Melfa Basic 5 Handbuch schauen, der Mxt-Befehl hat sich im Prinzip nicht geändert.
    Die Handbücher gibt es hier:
    https://de3a.mitsubishielectric.com/fa/de/service/download



    Gibt es - außer der Lösung mit MXT - noch weitere Möglichkeiten der Echtzeitsteuerung? Also könnte ein in VxWorks entwickeltes Echtzeit-Programm direkt auf den Roboter gebracht werden, sodass Bewegungsbefehle nicht einzeln erst gesendet werden müssen?


    Jein.


    Eigene VxWorks Programmierung ist nur bei den Modellen mit einem Q in der Typbezeichnung möglich. Man müsste z.B. den aktuellen RV-2FQ statt des RV-2AJ nehmen. Für diesen braucht man ein zusätzliches CPU-Modul und ein SDK, das die Programmierung über Eclipse ermöglicht. Allerdings ist diese Steuerungsvariante recht teuer. In der Regel ist es erheblich günstiger über Mxt zu gehen.


    Es gibt auch noch die Lösung für die ganz harten. Man kann statt dem Robotercontroller eine Mitsubishi SPS mit Motion CPU und VxWorks CPU und einen Satz Servoverstärker nehmen. Dann hat man den Preis des Roboters etwa verdreifacht, kann ihn aber auch in einem Echtzeittakt von 0,88 ms steuern.


    Grüße


    Urmel

    Einmal editiert, zuletzt von Urmel ()


  • In älteren Handbüchern steht explizit, dass die Echtzeitsteuerung nur mit den 4- und 6-Achsern geht.


    Nachtrag: Ich habe das mal in einem alten Handbuch nachgeschlagen. Dort steht nur, dass die Variante für die alte Movemaster Command Sprache nur auf bestimmten Robotern geht.


    Die Antwort lautet also, ja, es sollte auch mit dem RV-2AJ gehen, wenn er eine Ethernetkarte eingebaut hat.

  • Urmel, vielen Dank für deine schnelle Antwort.



    Eigene VxWorks Programmierung ist nur bei den Modellen mit einem Q in der Typbezeichnung möglich. Man müsste z.B. den aktuellen RV-2FQ statt des RV-2AJ nehmen. Für diesen braucht man ein zusätzliches CPU-Modul und ein SDK, das die Programmierung über Eclipse ermöglicht. Allerdings ist diese Steuerungsvariante recht teuer. In der Regel ist es erheblich günstiger über Mxt zu gehen.


    Sowas habe ich schon geahnt. Der Roboter wurde mir sozusagen vorgesetzt. Da entfällt leider die Möglichkeit der Beschaffung eines, für die Variante geeigneteren Robotertypen.



    Die Antwort lautet also, ja, es sollte auch mit dem RV-2AJ gehen, wenn er eine Ethernetkarte eingebaut hat.


    Das werde ich dann mal im Laufe der nächsten Woche versuchen in Erfahrung zu bringen. Komme leider (vorerst) nicht immer direkt an den Roboter ran.



    Für diesen Robotertyp sollte es im Handbuch der Ethernetkarte beschrieben sein. Man kann aber auch in ein neueres Melfa Basic 5 Handbuch schauen, der Mxt-Befehl hat sich im Prinzip nicht geändert.


    Hab' ein Dokument für "Ethernet Interface CRn-500 series" gefunden, was ja für meinen Roboter gültig sein müsste. Darin taucht auch der MXT-Befehl auf.



    Wenn es technisch geht, gibt es auf jeden Fall noch ein paar mathematische Hindernisse, weil die 5-Achser da einige Besonderheiten bezüglich der Winkel in der Roboterposition haben.


    Sind die mathematischen Hindernisse auch bei vorerst einfachen Bewegungen zu beachten?



    Ich werde mal schauen, ob eine Ethernetkarte vorhanden ist. Dann geht es erstmal darum, eine einfache Verbindung aufzubauen.
    Wenn ich Ergebnisse habe, melde ich mich sicherlich nochmal. Bestimmt kommt auch noch die ein oder andere Frage auf. ;)


    Grüße & ein schönes Wochenende


  • Da entfällt leider die Möglichkeit der Beschaffung eines, für die Variante geeigneteren Robotertypen.


    Selbst bei einer Neubeschaffung würde ich nur zu der VxWorks-Variante greifen, wenn Mxt auf keinen Fall in Frage kommt. Die zusätzliche VxWorks CPU hat die halbe Rechenleistung eines Raspberry Pi und kostet das hundertfache von dem. Dafür kann man sich einen sehr ordentlichen externen Rechner für die Mxt-Steuerung leisten.
    https://de3a.mitsubishielectri…lcq/items/cpu/#pageUnit04



    Ich werde mal schauen, ob eine Ethernetkarte vorhanden ist.


    Das kann man beim CR1 ganz einfach erkennen. Der hat im Gegensatz zu den größeren Steuerungen standardmäßig gar keine Erweiterungssteckplätze. Auf einer Seite muss das Gehäuse, etwa zu einem Drittel, aus der Expansion-Box bestehen. Darin sitzt die Ethernetkarte, ähnlich wie eine PC-Steckkarte. Ist gar keine Expansion-Box angeschraubt, hat sich das Thema sowieso erledigt. Dann bleibt bei diesem Roboter nur die serielle Schnittstelle auf der Frontseite.



    Sind die mathematischen Hindernisse auch bei vorerst einfachen Bewegungen zu beachten?


    Wenn man die Stellung der Hand beibehält (möglichst nach unten zeigend) und den Arm nur in X,Y,Z verfährt (ohne Orientierungsänderung), dann sollte es nichts ausmachen.


    Ansonsten läuft eigentlich jede Echtzeitbewegung darauf hinaus, dass man in jedem 7 Millisekunden-Schritt, die vom Roboter im (X, Y, Z, A, B, C) Format kommende Position erstmal in Matrizendarstellung bringt, den nächsten Schritt berechnet und dann das ganze zurückwandelt und zurückschickt.


    Die zugehörige Mathematik, hier für Kuka beschrieben, für Mitsubishi sind nur A und C vertauscht
    http://www.roboterforum.de/rob…erator/msg13660/#msg13660
    geht aber meist von 6-Achsen aus. Für 5-Achsen müsste man den ganzen Formelkram erstmal entsprechend herleiten.


    Grüße


    Urmel

    Einmal editiert, zuletzt von Urmel ()

  • Nochmals Danke Urmel für die Infos.


    Es gibt ein paar Neuigkeiten.
    Ethernetverbindung scheint möglich zu sein. Der Roboter war bisher per Programm "Cosirop" steuerbar.
    Damit wollte ich einfach mal ein paar Testbewegungen durchführen. Dies ging nur leider nicht, weil die Puffer-Batterien leer sind.
    Sobald diese ausgetauscht sind, kann ich hoffentlich mal ein paar Bewegungen des Roboters wagen. :)


    Grüße

Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren

Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können

Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen
Anmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden