Problem mit Canopen SDO Write

mauskopf
2019-10-29
2019-10-31
  • mauskopf - 2019-10-29

    Guten Morgen,
    ich habe ein Problem mit Can Open.
    Ich Verwende El6751 und möchte ein SDO auf einem Slave schreiben.
    Dieses Objekt ist ein Int16. Die Funktion SDO_WRITE_DATA verwendet immer den Command Code 0x23 obwohl meine zu sendende Variable nur 2 Byte hat. Und deshalb müsste die Funktion den Commandcode 0x2b verwenden.
    Was mache ich falsch?

     
  • mauskopf - 2019-10-30

    Kann mir bitte jemand helfen?
    Danke
    Lg
    Peter

     
  • eschwellinger

    eschwellinger - 2019-10-30

    Hi,
    hm.. ohne "Codeschnipsel" von dir schwer zu helfen,
    kann es sein das Data Size Eingang nicht auf 2 Byte wurde?

    Grüße
    Edwin

     
  • mauskopf - 2019-10-30

    Edwin Schwellinger hat geschrieben:
    Hi,
    hm.. ohne "Codeschnipsel" von dir schwer zu helfen,
    kann es sein das Data Size Eingang nicht auf 2 Byte wurde?
    Grüße
    Edwin

    Hallo

    rollo_command:word;
    SDOWrite_mein         : CIA405.SDO_WRITE;
    IF gvl.xmeinsdoenable THEN
       tt:=tt+1;
       SDOWrite_mein(NETWORK:=1,ENABLE:= gvl.xmeinsdoenable,DEVICE:=6,INDEX:=16#4008,SUBINDEX:=0,DATALENGTH:=2,DATA:= ADR(GVL_Global.rollo_command));
       gvl.xmeinsdoenable := FALSE;
    END_IF
    

    Kannst du mit diesem Schnippsel was anfangen

     
  • eschwellinger

    eschwellinger - 2019-10-31

    Hi,

    Ich würde SDO_WRITE_DATA verwenden, Siehe Doku in dieser Bibliothek
    du rufst SDO_WRITE genau1 Zyklus auf und prüfst nie den Ausgang xDone.

    Grüsse
    Edwin

     

Log in to post a comment.