Limit the transmission of RPDO data

spfeif
2009-04-21
2009-04-22
  • spfeif - 2009-04-21

    I have a DS401 device that is configured under the 3S CANopen Master stack that I need to send data on RPDO2 every 500msec. Is this possible using the CANopen stack? I looked through the 3S CANopen Runtime and there appears to be no way to stop the 3S CANopen stack from transmitting data to a device. The stack appears to always work on change of state. I have done this in the past with CAN_Layer2 FB but not using the CANopen stack. Is it possible? Is there anything like a DS401 inhibit timer or event timer in the 3S stack to inhibit transmissions? Does the event timer of the RPDO work on the 3S stack instead of on the device?

     
  • spfeif - 2009-04-22

    It does state in the 3S CANopen documentation the following:

    Transmitting PDOs: master transmits to slaves (slave = node, device)

    Event-controlled (i.e. in case of a change), time-controlled (RepeatTimer) and as synchronous PDOs, i.e. always when a SYNC was transmitted by the master. An external SYNC source can also be used to initiate transmission of synchronous PDOs.

    So I found it in the online PDO array of the pCanOpenPDO_Tx (see included screen shot).

    How do you use them? How do you get them to work? Do I need to write them at runtime or can I do this at design time?

    IMG: RepeatTimer.JPG

     
  • spfeif - 2009-04-22

    I was able to make this work by writing directly to the pCanOpenPDO_Tx:

    pCanOpenPDO_Tx[1].RepeatTimer.IN := TRUE;

    pCanOpenPDO_Tx[1].RepeatTimer.PT := T#500ms;

    I would still like to know how to set these at design time instead of run time or if it is possible?

     

    Related

    Talk.ru: 1


Log in to post a comment.