ros-industrial / ros_canopen

CANopen driver framework for ROS (http://wiki.ros.org/ros_canopen)
GNU Lesser General Public License v3.0
340 stars 272 forks source link

PDO value does not update till driver is shutdown and restarted #385

Closed srsidd closed 4 years ago

srsidd commented 4 years ago

Hi,

I'm trying to read and write values using the canopen_chain_node to a Beckhoff Can Terminal. I've had success writing values to the bus, however I'm having trouble with analogue reads.

I have probed the BUS terminal and I can see the voltage changing, however the /driver/get_object service returns the same value. Upon killing and restarting the process and initializing the can driver, the obj is updated to the correct value, but again doesn't change.

I don't see this behaviour writing analogue values and am able to write different voltages no problem. This sounds like a bug, and do you have any pointers on debugging this?

srsidd commented 4 years ago

It turns the Beckhoff suppresses event driven communication by using a default global interrupt enable set to false. We were able to get updated values after using synchronous communication. Closing this since it's not an issue with the driver.