Jump to content

Recommended Posts

Hi All.

I am familiar with Modbus RTU having done a Unitronics to VSD project, and am familiar with CanOPEN having a few systems around the factory. I am doing a new project which is leading towards CanOPEN as it is the most common denominator, although it does scare me a little.

The fieldbus will consist of 4 servo drives and a safety controller (not for safety comms)

Basically was trying to get an understanding of comparisons such as:

a- Speed

b- Stability

c- Configuration ease.

Modbus does seem to be a little slow - in my project using PHR/RHR (3) due to to non contiguous registers, I get R/Write times of 43 ms, adding up to 2 seconds to update 50 registers.


Link to comment
Share on other sites


In general CanOpen is nerwer modern protocol.

CAN is a very robust bus and quite fast. If you are looking to develop something completely new, your own network, you can go with CAN.

check also the link below for detailed Comparison:


Thanks Ofir. I've seen that comparison, doesn't list canopen though?? Anyway will likely go with Can.

Link to comment
Share on other sites

  • 3 months later...

can is a one way open loop broadcast

modbus is a 2 way communication that uses a handshake to confirm that the information was sent adn received and both sides are aware of the result.

Can is faster, but you dont know if the message was received, unless you trigger some sort of return message, which would slow it down.

Can does have a heartbeat function that confirms the connection is live, if you use it.

It is possible to configure a canopen network with only one node and transmit data and receive no error or indication that no other node received the data.

This is not possible with modbus.

The heartbeat function is the "old style" can, and will slow down the can network.

You choice is fast or robust.

And you also might want to consider that Unitronics is a bit tricky with canopen communications.

The last time I used it (it could be better now) I found that the canopen function is asynchronous to the PLC ladder. The canopen function also contains pointers to data , the actual data is NOT loaded into a com buffer when the function is called.

So if the data changes during the scan that you call the canopen function, the data will be corrupted.

This led me to stop updating the data during the scan that a canopen function is activated.

This is also a time cost.

I needed fast and using two can nodes to talk back and forth was remarkably slow after all the limitations were dealt with.

The canopen hardware runs independent of the ladder, the data may be sent at any time during the scan.

  • Upvote 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...