SDO & PDO Hilfe gesucht

bonatus
2008-05-21
2009-03-27
  • bonatus - 2008-05-21

    Hallo,

    ich bin relativ neu bei der Programmierung von CoDeSys. Ich benutze eine Moeller XC100 und versuche verzweifelt über CANopen verschiedene Teilnehmer einzubinden (Bosch-Ventilträgersystem, Balluff-Messsystem, SEW-Bus,...). Wie schon erwähnt verzweifele ich daran.

    Bei jedem Teilnehmer blinkt die Busfehler-LED.

    Als erstes würde es mir helfen wenn ich ein Beispiel zum senden eines SDO-Befehles hätte. Das Mappen von PDO-Daten funktioniert, jedoch bleiben die Eingänge auf Null stehen und die Ausgänge werden nicht geschalten.

    Was mache ich falsch? Gibt es eine grundsätzliche Herangehensweise für CANopen Teilnehmer?

    gruß bonatus

     
  • Erik Böhm - 2008-05-21

    Moin

    Ich würde das so angehen:

    Gibts einen CanOpen Master von Möller ? Ich vermute mal ja.

    Diesen in die Steuerungskonfig einhängen und Baudrate konfigurieren.

    Die zugehörigen CanOpenMaster.lib , CanOpenManager.lib und 3sCanDrv.lib einbinden. Beispiel: siehe Screenshot.

    Von den anzusteuernden Geräten die *.eds Files besorgen (vom Hersteller erhältlich) und diese als Unterelement anhängen.

    Schwupp -> alle Kommunikationsprobleme sind gelöst.

    (Zumindest in der Theorie )

    Gruss

    Erik

    IMG: CanOpenMaster.JPG

     
  • bonatus - 2008-05-21

    Hallo,

    so weit zur Theorie, ich bin jetzt an einem Punkt wo die automatische Initialisierung beim Status 3 anhält.

    Die Einbindung in die Konfiguration habe ich schon hinbekommen aber jetzt gehts halt nichts los?

    Ich habe jetzt auch nur noch einen Teilnehmer im Bus.

    gruß bonatus

    IMG: COBId.jpg

     
  • Erik Böhm - 2008-05-21

    Hi

    Das heisst, du machst das bereits über den CanOpenMaster wie beschrieben, oder 'von Hand' ?

    Ein Beispiel zum senden eines SDO-Befehls hab ich.

    Das geht über den CanOpenSendSDO FB aus der CanOpenManager.lib.

    Aber wenn du ein korrektes *.eds File hast, dann musst du kein einziges SDO selbst verschicken.

    Du kannst mir auch ne Mail schicken, dann kriegst meine Tel. Nr.

    Gruss

    Erik

     
  • Erik Böhm - 2008-05-21

    Hi nochmal

    Hab den Screenshot erst nach der Anmeldung gesehen...

    Schick mir doch mal ne Mail, dann kriegst du meine Tel. Nr.

    Ein Wort sagt mehr als tausend Bilder... oder so.

    Gruss

    Erik

     
  • Anonymous - 2009-03-25

    Originally created by: mno*

    Hallo,

    ich beschäfftige mich gerade mit dem versenden von SDO.

    Habe dies auch mithilfe der Beiträge hier über den Baustein "CanOpenSendSDO" hinbekommen.

    Würde aber gerne noch wissen wie die Aussage:

    "Aber wenn du ein korrektes *.eds File hast, dann musst du kein einziges SDO selbst verschicken. " zu verstehen ist.

    Gibt es noch andere Möglichkeiten SDO zu versenden?

    Denn ich muss sehr viele SDO versenden.

    Gruss Matthias

     
  • controllfreak - 2009-03-25

    Naja, wenn Du ein korrektes eds File einbindest brauchst DU dich um das versenden von SDO`s zur Parametrierung des Gerätes nicht zu kümmern.

    Jedoch sind mir so einige Geräte insbesondere Frequenzumrichter untergekommen bei denen Sollwerte über SDO's versendet werden.

     
  • Anonymous - 2009-03-26

    Originally created by: mno*

    Hallo,

    Das ist richtig. Ich habe eines sehr komplexen Regler bei den jede menge Einstellungen möglich sind die ich aber über SDO's versenden muss.

    Dachte es gibt vielleicht eine eleganter Methode um diese zu versenden.

    Vielleicht hat ja auch jemand eine idee wie man das Programmtechnisch gut lösen kann.

    Gruss Matthias

     
  • bonatus - 2009-03-26

    Hallo,

    die SDO musst du nicht verschicken, wenn du in den Service Data Objects(SDO) die Einstellungen eingibst werden sie bei jeder Initialisierung des Teilnehmers geschrieben. Schwieriger ist natürlich das senden der SDO´s aus dem Programm heraus, wenn du die Einstellungen permanent ändern möchtest. Da musst du zunächst den Teilnehmer in den Pre-Op Zustand versetzen um SDO´s Daten senden zu könnnen und anschließend nach erfolgreichen senden, den Teilnehmer wieder in OP versetzen.

    Für solche permanenten Einstellungen sollten aber eigentlich die PDO Daten vom Hersteller vorgesehen sein, mit diesen muss der Teilnehmer nicht in den Pre-OP Zustand versetzt werden. Diese können zyklisch gesendet werden.

    gruß bonatus

     
  • Anonymous - 2009-03-26

    Originally created by: mno*

    Hallo,

    ist es möglich die Werte der SDO's über Variablen festzulegen?

    Ich Möchte nicht, wenn ich im laufenden Betrieb die Werte über den Baustein CanOpenSendSDO verändert habe,

    das nach einem Neustart (Stromausfall) die Anfangswerte wieder geladen werden.

    Gruss Matthias

     
  • Anonymous - 2009-03-27

    Originally created by: Stephanie Kreutz

    @bonatus:

    Der SDO-Transfer von/zu CAN-Teilnehmern ist auch im NMT-Operational-Zustand möglich (siehe CiA DS301).

    Jedenfalls benutze ich den Baustein CanOpenSendSDO innerhalb des Programms während der Teilnehmer NMT-Operational ist.

    Die Benutzung ist zwar nicht so richtig komfortabel oder intuitiv, aber doch immerhin möglich

    Gruß Steffi

     
  • bonatus - 2009-03-27

    Hallo

    @ Stephanie

    Ich konnte das senden von SDO´s nur im Pre-OP machen.

    gruß bonatus

     
  • Anonymous - 2009-03-27

    Originally created by: Stephanie Kreutz

    Gibt der Baustein eine Fehlermeldung aus?

    Ich benutze jedenfalls den FB CanOpenSendSDO aus der 3S-CANOpenManager.lib

    Sonst poste doch mal einen Screenshot von deinem Baustein.. vielleicht ist ja an den Eingängen etwas krumm

    Gruß Steffi

     
  • bonatus - 2009-03-27

    Hallo,

    das Problem mit dem Senden von SDO´s ist bei mir nicht mehr aktuell.

    gruß bonatus

     

Log in to post a comment.