CANopen mit Nanotec SMCI36

malteb
2016-03-01
2016-03-04
  • malteb - 2016-03-01

    Hallo,

    ich stehe vor einem Problem:
    Ich möchte einen 6-achsigen Roboter mit Softmotion über den Raspberry Pi betreiben. Die Motorsteuerung ist eine Nanotec SMCI36 und über CANopen (PICAN Modul am Raspberry) angebunden.
    Codesys zeigt mir die SMCI36 als laufend an, die anhängende SM_Drive_GenericDSP402-Achse wird allerdings mit mehreren Fehlermeldungen angezeigt.
    Der Aufbau und die Fehlermeldungen sind im angehängten Screenshot zu sehen.
    Der Status der Achse sagt "Konfigurationsfehler".
    Ich bräuchte nun einen Denkanstoß, wo ich den Fehler suchen kann. Die Karte ist über die .eds-Dateien von nanotec in die Geräterepository eingepflegt.

    Vielen Dank

    IMG: softmotion.JPG

     
  • eschwellinger

    eschwellinger - 2016-03-01

    Hi,
    puhh... so viele Achsen, des wird schwierig werden... schau erst mal ins SPS log welche SDO's schief gehen beim Startup.
    mit SM3_BASIC_LOG_ACYCLIC_COM als Compile Schalter auf der Applikation setzen.
    1020 bedeutet das beim SDO schreiben beim Hochlauf im State 20 was schief geht.

    Grüße
    Edwin

     
  • malteb - 2016-03-04

    ok,
    ich habe nun das ganze mal etwas aufgeräumt, nur eine Achse dringelassen und die Baudrate reduziert.
    Die fehler sind aber gleich geblieben.
    In der "/tmp/codesyscontrol.log" auf dem Raspberry (ich hoffe, das ist auch die richtige Log-Datei) finden sich etliche Male die Fehler:
    CMD_Send[837]: write can0: Resource temporarily unavailable
    und
    RxThread[483]: can read error: no message handle available

    Wo finde ich SM3_BASIC_LOG_ACYCLIC_COM? Als FB und in den Bibliotheken habe ich nichts passendes gefunden...

     
  • eschwellinger

    eschwellinger - 2016-03-04

    Hi,

    ui das ist ja der SMCI36, puh... was ist denn der Unterschied zumSMCI47S?
    Ich würde mal den SMCI47 Treiber der mit CODESYS ausgeliefert für einen Test verwenden...
    befürchte der SMCI36 kann auch nur den DS402 Mode 7 und dann geht der Generic4O2 Treiber nicht
    da dieser nur den Cyclic Sync Mode 8 unterstützt.
    Das loggen musst du auf der Application mit rechtsclick Eigenschaften-Compiler defindes einstellen.
    Dann noch ein paar generelle Dinge für SoftMotion brauch man "Echtzeit" d.h du musst einen RT_Preempt gepatchten Kernel verwenden....
    sonst wird es vermutlich nicht gehen.

    CMD_Send[837]: write can0: Resource temporarily unavailable
    RxThread[483]: can read error: no message handle available
    des hört sich so an als würde der CAN nicht richtig funktionieren,
    allerdings wundert mich das nicht, weil diese SPI Anbindung ist auch wirklich mit Vorsicht zu genießen.

    Grüße
    Edwin

    IMG: logasyclic.jpg

     

Log in to post a comment.