Jump to content

canopen limit 8 bytes x 4 PDOs


Recommended Posts

Is the limit 4 PDOs per node?

At 8 bytes per PDO that is 32 Bytes of data sent to each node. Is this the maximum limit of data that can be sent to one node?

Is there some way to increase this number?

I realize I could play some tricks and shuffle data into a set of transfer bytes,( I could even increment down a row in a data table and put the row data into a transfer array and then send it, but this would be multiplexing and slow and would confuse the receiving node as well, some receiving array would need to be set up in the node and then parse the data using one of the pieces of data as an index or control word.)

Direct transfer with canopen and Visilogics is tricky enough though.

Just wondering where the limits are.

I guess ethernet would be easier with 50 variables per message. or am I missing something?

Link to comment
Share on other sites

Hi,

Unitronics CANOPEN supports PDOs 1,2,3 and 4 so basically for each node you can send/receive these 4 PDOs.

PDO is built to transfer specific data (Which can be configured by the user in most cases) and indeed its size is 8bytes which cannot be increased.

Another way of reading/writing data with CANOPEN is using SDO.

You have 2 types of SDO functions, SDO download (for writing parameters to third party device) and SDO upload(for reading parameters from third party device).

Using SDOs in a matter of request & reply you will be able to handle vector of data.

Please note that usually SDOs are used for programing and PDOs for exchanging data with the device but there are also users which use SDOs for exchanging data.

Actually the memory mapping is determined by the CANOPEN slave device so using Unitronics PLC you can choose your options for handling the data either by PDO or SDO.

VisiLogic offers also other functions for mapping the received/sent data in easy way. (For example the function Map Register bytes)

Which third party device are you communicating with? Does it support MODBUS TCP?

If indeed it supports MODBUS TCP and the registers you wish to read/write are continues then indeed using MODBUS you can send one command to read/write all of them.

Link to comment
Share on other sites

Hi,

Unitronics CANOPEN supports PDOs 1,2,3 and 4 so basically for each node you can send/receive these 4 PDOs.

PDO is built to transfer specific data (Which can be configured by the user in most cases) and indeed its size is 8bytes which cannot be increased.

Another way of reading/writing data with CANOPEN is using SDO.

You have 2 types of SDO functions, SDO download (for writing parameters to third party device) and SDO upload(for reading parameters from third party device).

Using SDOs in a matter of request & reply you will be able to handle vector of data.

Please note that usually SDOs are used for programing and PDOs for exchanging data with the device but there are also users which use SDOs for exchanging data.

Actually the memory mapping is determined by the CANOPEN slave device so using Unitronics PLC you can choose your options for handling the data either by PDO or SDO.

VisiLogic offers also other functions for mapping the received/sent data in easy way. (For example the function Map Register bytes)

Which third party device are you communicating with? Does it support MODBUS TCP?

If indeed it supports MODBUS TCP and the registers you wish to read/write are continues then indeed using MODBUS you can send one command to read/write all of them.

Thank you for the response.

The current application is an embedded processor with 2 can chips and some I/O.

The transfer is slow due to throughput issues. But delays could be decreased if I could send more data per message or in each PDO. 

Other projects might include Beckoff  terminal modules. I am sure Beckoff has modbus. I am unsure why the embedded device uses canbus. I recall that some other I/O was canbus enabled and the idea was to have one big canbus network with everything on it. But Unitronics slows down the response time due to limited data per PDO and only being able to send on every other scan and then the embedded device restricts throughput, so it is not feasible.

The real restriction would be if I try to use 100's of I/O on one can node with the Beckoff module and a V350 with canopen. There are not enough PDOs to address the I/O. There might be other reasons this would not work. There might be a canbus limit that restricts the number of I/O per node. I am a canopen novice.

I also thought about using ethernet instead of either "bus". The problem is I have to buy the hardware, then spend a couple weeks discovering what is not in the documentation and then finally get it to work and then decide which I want to use. None of that is going to happen.

So I am stuck with canopen. So I am just trying to get it to work better with Unitronics and not overlook some detail. 

I think I can speed up what I have now by changing the way the data is sequenced.

I have used Modbus, I think I like it better than canbus. 

Link to comment
Share on other sites

The PDO size (8 bytes) is a standard of CANOPEN and it is not limitation by Unitronics.

You can check the EDS file of the CANOPEN device and see that the PDO size is 8 bytes maximum.

The limitation of Unitronics CANOPEN is that it supports up to 4 PDOs. (PDO 1,2,3 and 4)

As I mentioned if 4 PDOs (PDO 1,2,3 and 4)is not enough then you can use SDOs.

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.

Guest
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...