[etherlab-dev] Large PDOs
gavinl at compacsort.com
Wed Dec 11 23:00:24 CET 2013
I'm not sure how the former would help you, since you're still constrained
by the wire delays of the large data block.
And the second just sounds like "I want non-standard CoE"... so why not just
use CoE? It uses zero extra FPGA resources (assuming you already have a
general-purpose CPU) and not all that much software - probably little more
than you'd need to write something custom. (Though if you want something
even more slimmed down, you can use VoE - but then it might be more of a
hassle to use from the master side.)
From: Jeroen Van den Keybus [mailto:jeroen.vandenkeybus at gmail.com]
Sent: Wednesday, 11 December 2013 22:14
To: Gavin Lambert
Cc: etherlab-dev at etherlab.org
Subject: Re: [etherlab-dev] Large PDOs
Thanks for your reply. Currently this slave does not support SDOs since it
is a 'resource constrained' FPGA based design.
Both fast and small, and slow and large PDOs are, unfortunately, on the same
I would have liked to stay away from using SDOs in the control process. So
currently I'm considering two options: either bring out some form of freely
programmable datagram service in the API, or construct a mailbox-like
protocol over a limited-size protocol. The latter isn't exactly good for the
'resource constrained' part of my design.
2013/12/10 Gavin Lambert <gavinl at compacsort.com>
How often do you need to access the large value? If it's at a reasonably
slow rate (and if you have the freedom to change the slave, or at least
unmap the PDO, which it sounds like you do from the below) then you might
want to consider accessing it as an SDO instead. If it's an array or record
type then you should be able to access it in small enough chunks to not
upset your high-speed domain. (Provided that the slave supports CoE, of
For the high-speed data, if it's on a separate slave you could consider
using a separate EtherCAT network for it. If it's on the same slave then you
might need to either break up access to the large chunk as above, or batch
up multiple values (assuming it's unidirectional) as in oversampling so that
you can have a slower cycle rate.
From: etherlab-dev-bounces at etherlab.org
[mailto:etherlab-dev-bounces at etherlab.org] On Behalf Of Jeroen Van den
Sent: Wednesday, 11 December 2013 11:02
To: etherlab-dev at etherlab.org
Subject: [etherlab-dev] Large PDOs
I want to use a single, quite large (1,024 byte) PDO.
Does anyone know how to specify such a large PDO in the XML description file
/ SII EEPROM content ? It seems that only base types are allowed as DataType
in a PDO entry (basically any common data type up to 64 bits). Even if using
64-bit ULINTs, that still means I need 64 PDO entries. That's very unwieldy,
especially since the data only make sense as an array. I would also like to
use a single pointer in IgH master to access it.
Another issue is that there's a second domain of 20 bytes that's being
accessed at 100us intervals. Obviously, the large PDO, already requiring
more than 100us on the line for a data exchange, is going to prevent the
small one from being delivered timely, although the large one only needs to
be exchanged once per second. Is there a common way of solving this (perhaps
splitting the domain transfer ?).
I was thinking of accessing the large PDO directly (outside whatever is
defined in the XML, directly to a configured SM) and use a series of FPxx
commands to exchange data. Is there a way to do this in IgH master ?
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Etherlab-dev