In my application I monitor the status of all configured CANopen devices (I/O slaves) and when all slaves are in state 5 (operational) I execute som logic..
The problem is when the system starts and all slaves are entering the operational state it seems that the slaves havent sent their PDO:s and the master executes logic with "faulty" inputs. Can i detect that the slave(s) have transfered their RX PDO:s (inputs) in CoDeSys?
/Hasse
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Yes I also had this trobles with a CanOpen certified Node. I solved this problems by conecting a output to a input and created by this way an event to get the PDO.
You can try to send a Remoterequest to this frames PDO's maybe they are answering.
Depending on your application maybe changing transmition type to "syncronous" or "asyncrounous - RTR-only" and polling the node will help you to get the nodes status.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
You might either want to read the data from the OD through an SDO read to determine the correct status or set the event timer to something other than zero. This will cause the device to transmit periodically if there is no COS (Change of State). Then maybe you need to check that new data arrived after the device went operational to determine if it were good.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hello,
I've got a question about CANopen and RX PDO:s.
In my application I monitor the status of all configured CANopen devices (I/O slaves) and when all slaves are in state 5 (operational) I execute som logic..
The problem is when the system starts and all slaves are entering the operational state it seems that the slaves havent sent their PDO:s and the master executes logic with "faulty" inputs. Can i detect that the slave(s) have transfered their RX PDO:s (inputs) in CoDeSys?
/Hasse
Hello,
Yes I also had this trobles with a CanOpen certified Node. I solved this problems by conecting a output to a input and created by this way an event to get the PDO.
You can try to send a Remoterequest to this frames PDO's maybe they are answering.
Depending on your application maybe changing transmition type to "syncronous" or "asyncrounous - RTR-only" and polling the node will help you to get the nodes status.
You might either want to read the data from the OD through an SDO read to determine the correct status or set the event timer to something other than zero. This will cause the device to transmit periodically if there is no COS (Change of State). Then maybe you need to check that new data arrived after the device went operational to determine if it were good.