Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched. Close

CANopen Antrieb mit SoftMotion steuern

Foucault
2016-03-02
2016-03-21
  • Foucault - 2016-03-02

    Hallo,
    ich möchte einen nanotec Schrittmotor aus CoDeSys v3.5 via CANopen steuern. Ich habe mir also eine Peak-CAN-Karte besorgt, einen CANBus ins Projekt eingefügt, darunter einen CANManager und dann das CANRemoteDevice. Im ersten Schritt habe ich mittels der Low-Lewel-Funktionen aus der CAA.CIA405-Bibliothek (SDO_Write4) den Motor ansprechen können. Nun wäre es ganz schön, wenn ich unseren Studenten auch den Gebrauch der PLCopen-Bibliothek demonstrieren könnte. Ich habe also quasi im Blindflug ein Drive mit Softmotion_Lite eingefügt. Nun habe ich endlich auch eine Achse für die PLCopen-Bausteine. Aber leider bekomme ich den Bus bis zum Drive nicht zum Laufen. Ich habe mal ein Bild hinzugefügt. Ich habe auch etwas zum Thema Kompatibilität gelesen, allerdings ist mein Weg ein anderer, daher konnte ich das Projekt nicht nutzen.
    Ich stelle mir vor, mit MC_Power den Motor zu aktivieren und dann vielleicht noch einen Verfahrvorgang mit MC_MoveAbsolute durchzuführen.
    Ist das mit meiner Konfiguration überhaupt möglich?
    Vielen Dank für jede Info.

    IMG: Nanotec.png

     
  • eschwellinger

    eschwellinger - 2016-03-13

    Hi,
    ich versuche es mal zu erklären:

    1. In deinem Screenshot hast du nicht SoftMotion Light verwendet sondern SoftMotion.
      SoftMotion setzt eine "echtzeitfähige" SPS voraus da zyklisch Sollwerte gesendet werden
      Control Win kann das nicht - du solltest dafür Control RTE nehmen. (Für den Fall das du SoftMotion verwenden willst) dann mit dem SMCI47 SoftMotion Treiber (nicht generic)
      & dann aber nicht mit PEAK USB sondern ne PEAK PCI/PCI Expresskarte ist dafür notwendig oder aber alternativ Ethercat und EK1100/EL6751 über diese Klemme CANopen machen
    2. Control Win und SoftMotion Light:
      für den Nanotec bitte nicht den generischen DS402 Treiber der SoftMotion verwenden sondern den für SoftMotion Light
      siehe mein Screenshot: SML_Nano.jpg
      Für SoftMotion Light immer zuerst dieses Kompabilitäts Check Projekt ausführen: (Um zu prüfen ob es mit dem Antrieb geht)
      "c:\Program Files (x86)\3S CODESYS\CODESYS\Projects\SoftMotion\SoftMotionLight\SML_CompatibilityCheck_DS402.project"

    Grüße
    Edwin

    IMG: SML_Nanotec.jpg

    IMG: Nano.jpg

     
  • Foucault - 2016-03-15

    Hallo,
    und vielen Dank für die Infos. Ich bin allerdings nicht wirklich weiter gekommen. Trotzdem möchte ich noch einmal meine Situation beschreiben.
    Ich habe einen nanotec Schrittmotor PD4N. Dieser vereint Motor, Treiber und Controller in einem Gehäuse. Laut Fa. nanotec ist zur Steuerung des Motors eine Bibliothek (SMCI47S_SoftMotion) in CoDeSys vorhanden. Wie das gehen soll konnte (wollte) mir bei nanotec niemand sagen.
    Steuern möchte ich den Motor mit einem Standard-PC, also keinen Embedded Controller.
    Im PC steckt eine PEAK-PCI-Bus Karte, die ich im Konfigurationsfile "CODESYSControl.cfg" eingetragen habe.
    Nun setze ich das Projekt auf und wähle das Device "CODESYS Control Win V3" (ist das richtig?).
    Ich füge einen CANBus hinzu und wähle die richtige Baudrate.
    Ich füge einen CANopen Manager hinzu.
    Nun komme ich an einen Punkt, wo ich eigentlich nur noch den SMCI47S_SoftMotion Treiber von nanotec einfügen kann. Das ist auch möglich, allerdings bekomme ich damit keinen fehlerfreien Busbetrieb hin.
    Daher habe ich im Geräte Repository ein CANopen Device unter Angabe der zum Motor gehörenden EDS-Datei installiert. Das erscheint mir auch sinnvoll und richtig.
    Nun kann ich an den CANopen Manager das neue CANopen Device anhängen.
    Nach Angabe der Node ID läuft der Bus. Und wie oben schon beschrieben kann ich den Motor auch mit "SDO_Write4" steuern.


    Auf diese Art kann ich jedoch nicht die Bausteine der SML_Basic Lib verwenden. Hierzu bräuchte ich ein Achse ??
    Das Projekt zur Prüfung der Kompatibilität setzt, wenn ich das richtig sehe, einen EtherCat Bus voraus. Ich habe keine Beckhoff Komponenten. Wie soll ich das also prüfen?

    nochmals danke, und viele Grüße

     
  • eschwellinger

    eschwellinger - 2016-03-15

    Hallo,

    ich versuche es nochmals zu beschreiben welche Möglichkeiten du hast und häng dir die Projekte an:

    Option A mit SoftMotion und SoftMotion RTE:


    Für SoftMotion braucht man "Echtzeit" also musst du diese SPS verwenden(SoftMotion RTE):
    http://store.codesys.com/systeme/codesy ... te-sl.html
    RTE gibt's als 32Bit und als 64Bit Version
    Dann passt das alles mit Peak-PCI usw so wird es funktionieren!


    Option B mit SoftMotion Light und Control Win oder Control RTE // SoftMotion Light geht nur wenn das Drive kompatibel dafür ist!


    Für SoftMotion Light braucht keine "Echtzeit" also geht das auch mit Control Win
    sollte auch passen mit mit Peak-PCI.
    Für den Antrieb zuerst den Kompatibilitäts check machen!
    Dazu das TestProjekt abändern zu CAN.... bzw ich hänge das noch an.


    Grüße
    Edwin

    SML_CompatibilityCheck_DS402_NANO.projectarchive [8.01 MiB]

    StartupDriveSM.project [133.23 KiB]

     
  • Foucault - 2016-03-21

    Hallo Edwin,
    vielen Dank für die Infos. Ich habe nun das Control RTE V3 installiert und versucht dein Projekt zu starten. Mit der PLC kann ich mich verbinden. Allerdings findet das System den CANBus-Treiber nicht.
    Ich habe dann im Verzeichnis CODESYS Control RTE 3 in der Codesys Control.cfg wieder den Eintrag "Component.3=CmpPCANBasicDrv" hinzugefügt. In der PLC Configuration / Diagnostic wird dann folgendes angezeigt (siehe Bild).
    Bisher hat diese Einstellung genügt. Was fehlt ihm denn noch?

    Viele Grüße
    Manfred

    IMG: RTE_Diag.png

     
  • eschwellinger

    eschwellinger - 2016-03-21

    Hallo Manfred,

    der CmpPCANBasicDrv ist ausschließlich für Peak-USB und Control Win gedacht.
    Bei Control RTE müsstest du sowas wie CmpSJACanDrv finden und verwenden.

    Grüße
    Edwin

     
  • Foucault - 2016-03-21

    Hallo Edwin,
    Erfolgsmeldung! Der Motor läuft. Vielen Dank für die vielen Infos. Jetzt fehlt mir nur noch die Lizenz.

    Viele Grüße
    Manfred

     

Log in to post a comment.