Device Application, CANopen slave, SDO mapping (V3.5.14.0)

sgronchi
2020-01-27
2020-03-11
  • sgronchi - 2020-01-27

    My application structure (showing only nodes relevant to the problem) is like the following:

    Device
    |
    + Application1
    | |
    | + Application1_Params (Persistent variables)
    |
    + Application2
    |
    + Device Application
    |
    + CANbus
    Β  |
    Β  + CANopen Device
    

    I would like to map SDO objects to some variables inside Application1_Params, but when clicking on the variable mapping field in CANopen Device -> Object Dictionary, only global symbols defined under Device Application are reported whereas, when mapping PDO objects, globals defined in any application are available.
    When not using device applications, instead, global applications objects are shown. Is there a way to make this work?

    Also, no "Persistent variable configuration" (see "Creating device application" topic in Codesys Help) is available under Device Application -> Add Object.

     
  • DavidBo - 2020-01-28

    I have never heard about SDO mapping I use CIA405.SDO_READ4 to read SDO and CiA405.SDO_WRITE4 to read and write SDO's.
    PDO are used to automatically and regularly read or write certain values. SDO is supposed to be used only when needed in order not to saturate the CAN bus.

     
  • sgronchi - 2020-01-29

    You use SDO FBs when you act as a master (have you seen the "CANopen slave" in the title?). And yes, I know the difference between PDO and SDO communication.
    When you are implementing a slave, Object Dictionary objects could be mapped to specific variables. However, when using Device Applications, it seems that is not the case, but why?

     
  • DavidBo - 2020-01-29

    I see. Now I also want to know.

     
  • sgronchi - 2020-03-11

    Is there anyone who knows?

     
  • sgronchi - 2020-03-11

    So you advise against using "Device Applications"? What is their purpose, then?

     

Log in to post a comment.