How are interrupts being generated between the CAN controller on the PLC and CoDeSys?
Here is an example. If I have a PLC configured as the CANOpen master with a DS 401 I/O module, assume the IO module has 1 TPDO and 1 RPDO. If the master PLC doesn't use/call/implement any of the IO module's exposed IEC variable data from the eds file then any TX PDO's generated by the module will not cause an interrupt in the PLC? I am assuming the CAN controller will filter the PDO's based on whether the PLC is using the data so that not all PDO's defined in the PLC configuration from all mastered modules will not be accepted and cause interrupts.
Boy I hope that was clear?
Steve
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
When you stated LATER what exactly did that mean? I am assuming you are talking about later like the start of the PLC cycle when the inputs and CAN data are read?
Can you clearify what WHEN THERE IS NO NEED FOR IT? What causes a need? Anything that is defined in the PLC configuration under CANOpen?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
How are interrupts being generated between the CAN controller on the PLC and CoDeSys?
Here is an example. If I have a PLC configured as the CANOpen master with a DS 401 I/O module, assume the IO module has 1 TPDO and 1 RPDO. If the master PLC doesn't use/call/implement any of the IO module's exposed IEC variable data from the eds file then any TX PDO's generated by the module will not cause an interrupt in the PLC? I am assuming the CAN controller will filter the PDO's based on whether the PLC is using the data so that not all PDO's defined in the PLC configuration from all mastered modules will not be accepted and cause interrupts.
Boy I hope that was clear?
Steve
Hello,
if you are using our CanOpenMaster library, the master will configure the can controller to accept all messages.
That means, if the system we are talking about is using an interrupt to receive messages, every single canmessage will cause an interrupt.
Later, when the message is found in the queue, the master will discard it, when there's no need for it.
That's how it works.
Normally a master on this Can-net has to know all messages.
If there's more traffic that is not from or dedicated to the master, this is a special case, which may lead to a performance problem.
Regards,
A. Fauter
Thank you Andreas,
When you stated LATER what exactly did that mean? I am assuming you are talking about later like the start of the PLC cycle when the inputs and CAN data are read?
Can you clearify what WHEN THERE IS NO NEED FOR IT? What causes a need? Anything that is defined in the PLC configuration under CANOpen?