[Etherlab-users] Configuring EL7047 stepper driver

Gavin Lambert gavin.lambert at tomra.com
Mon Jul 26 10:00:06 CEST 2021

Broadly speaking, there's three different kinds of slave.

The most basic have fixed PDO configuration and assignment.  If these implement CoE at all (which is also optional), you can't change any part of the PDO layout.

The middle tier (reasonably common in slaves that implement CoE at all) have variable PDO assignment but fixed configuration.  This means that you cannot change the contents of the PDOs but you can select which of them to include in your domain (although not always freely -- many slaves have mutually exclusive PDOs or specific ordering/size requirements or other such limitations).

Lastly there are those that do support changing the PDO configuration as well as assignment.  These are very rare (typically just things like PLCs and other highly programmable slaves).

For the former, you just "ethercat cstruct" and that's the only layout you'll ever get.
For the other two, you can do some manipulation before you "ethercat cstruct".  But that manipulation only happens at "pre-commission" time (when you're writing your application) -- it never happens at actual run-live.

The table that is generated by "ethercat cstruct" encapsulates all of the PDO configuration and assignment, and when you use this table properly (see the examples) you don't have any "manual" writes to the PDO assignment or configuration objects at all in your code; that's taken care of by the Etherlab master itself.

The ecrt_slave_config_sdo* calls are only for "extra" not-PDO-related configuration that your slave may require.

Gavin Lambert
Senior Software Developer TOMRA Fresh Food


COMPAC SORTING EQUIPMENT LTD | 4 Henderson Pl | Onehunga | Auckland 1061 | New Zealand
Switchboard: +49 2630 96520 | https://www.tomra.com

The information contained in this communication and any attachment is confidential and may be legally privileged. It should only be read by the person(s) to whom it is addressed. If you have received this communication in error, please notify the sender and delete the communication.
-----Original Message-----
From: Fontana Nicola <ntd at entidi.it> 
Sent: Monday, 26 July 2021 5:21 pm
To: Gavin Lambert <gavin.lambert at tomra.com>; Graeme Foot <Graeme.Foot at touchcut.com>; etherlab-users at etherlab.org
Subject: Re: [Etherlab-users] Configuring EL7047 stepper driver

Il giorno lun, 26/07/2021 alle 04.54 +0000, Gavin Lambert ha scritto:
> ...
> It's not really something you can do from a bash script.

Hi Gavin,

yes, I learnt it the hard way. That particular device has fixed PDO mappings and settings, i.e. all 0x1[468A]? entries are read-only. The only relevant parameters I can touch are the PDO assignement registers.
Coming from CANopen I thought anything can be done by just manipulating the object dictionary but... well, this is not the case.

Thank you again.

More information about the Etherlab-users mailing list