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?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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?
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?
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