[etherlab-users] SDO type size problem

Florian Pose fp at igh-essen.com
Fri Sep 24 11:52:02 CEST 2010


On Fri, Sep 24, 2010 at 09:01:40AM +0200, Thorsten Schnebeck wrote:
> Side note: TwinCAT does not show these problems and brings the device up to OP-mode.

this is because TwinCAT does not read out the PDO mapping. 

> Is this a problem in the EtherCAT slave client firmware or can this be
> a problem of the etherlab-master 1.5?

It is definitely a problem of the slave firmware, the number of assigned
PDOs (0x1c1x:0) must be an uint8. Please tell HBM. You can reference the
EtherCAT specification (IEC 61158-6-12, chapter, table 78).

Apart from that, the following patch should make it work. Please not that this
does not conform to the spec!

diff -r c6e6ec6ba5d8 master/fsm_pdo.c
--- a/master/fsm_pdo.c  Wed Sep 22 15:41:43 2010 +0200
+++ b/master/fsm_pdo.c  Fri Sep 24 11:50:31 2010 +0200
@@ -250,11 +250,9 @@
     if (fsm->request.data_size != sizeof(uint8_t)) {
-        EC_SLAVE_ERR(fsm->slave, "Invalid data size %zu returned"
+        EC_SLAVE_WARN(fsm->slave, "Invalid data size %zu returned"
                 " when uploading SDO 0x%04X:%02X.\n", fsm->request.data_size,
                 fsm->request.index, fsm->request.subindex);
-        ec_fsm_pdo_read_action_next_sync(fsm);
-        return;
     fsm->pdo_count = EC_READ_U8(fsm->request.data);

Best regards,
Florian Pose


More information about the Etherlab-users mailing list