[Etherlab-users] Failing to configure PDOs of a MTS Temposonics V slave

Richard Hacker (MSc Eng) ha at igh.de
Mon Sep 26 16:16:15 CEST 2022


The PDO is fixed (look at the XML file), so must specify the PDO
exactly as shown in that file.
The following PDO Entry is missing in  slave_mts_pdo_entries[]{0x3101,
0x04, 32} /* Acceleration 1 */
Remember to update entry count to 4 in slave_mts_pdos[]
On Mon, 2022-09-26 at 10:08 +0000, Joachim Sällvin wrote:
> 
> 
> 
> 
> 
> OK so I tried  to configure the pdos in the c++ application and now I
> get the cstruct output that I want, but still i faile to get the
> slave into OP state:
> 
> 
> 
> Failed to set SAFEOP state, slave refused state change (PREOP +
> ERROR)
> 
> 
> 
> 
> 
> 
> 
> Any obvious reason why?
> 
> 
> 
> 
> 
> Here is what I did:
> 
> 
> 
> 
> 
> 
> 
> ec_pdo_entry_info_t slave_mts_pdo_entries[] = {
>         {0x3101, 0x01, 16}, /* Status 1 */
>         {0x3101, 0x02, 32}, /* Position 1 */
>         {0x3101, 0x03, 32}, /* Velocity 1 */
>     };
> 
> 
> 
>     ec_pdo_info_t slave_mts_pdos[] = {
>         {0x1a00, 3, slave_mts_pdo_entries + 0}, /* TxPDO 1 Mapping */
>     };
> 
> 
> 
>     ec_sync_info_t slave_mts_syncs[] = {
>         {0, EC_DIR_OUTPUT, 0, NULL, EC_WD_DISABLE},
>         {1, EC_DIR_INPUT, 0, NULL, EC_WD_DISABLE},
>         {2, EC_DIR_OUTPUT, 0, NULL, EC_WD_ENABLE},
>         {3, EC_DIR_INPUT, 1, slave_mts_pdos + 0, EC_WD_DISABLE},
>         {0xff}
>     };
> 
> 
> 
> 
> if (ecrt_slave_config_pdos(slave_config_ptr_, EC_END,
> slave_mts_syncs))
> {
> LOG_EVENT("Failed to configure PDOs!");
> throw "Failed to configure PDOs.\n";
> }
> 
> 
> 
> 
> 
> 
> 
> and now I actually get:
> 
> 
> 
> 
> 
> ethercat -m0 -p2 cstruct
> /* Master 0, Slave 2, "MTS Temposonics V"
>  * Vendor ID:       0x00000040
>  * Product code:    0x0000000f
>  * Revision number: 0x00000029
>  */
> 
> 
> 
> ec_pdo_entry_info_t slave_2_pdo_entries[] = {
>     {0x3101, 0x01, 16},
>     {0x3101, 0x02, 32},
>     {0x3101, 0x03, 32},
> };
> 
> 
> 
> ec_pdo_info_t slave_2_pdos[] = {
>     {0x1a00, 3, slave_2_pdo_entries + 0}, /* Magnet 1 */
> };
> 
> 
> 
> ec_sync_info_t slave_2_syncs[] = {
>     {0, EC_DIR_OUTPUT, 0, NULL, EC_WD_DISABLE},
>     {1, EC_DIR_INPUT, 0, NULL, EC_WD_DISABLE},
>     {2, EC_DIR_OUTPUT, 0, NULL, EC_WD_ENABLE},
>     {3, EC_DIR_INPUT, 1, slave_2_pdos + 0, EC_WD_DISABLE},
>     {0xff}
> };
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> But I cannot get the slave into OP
> 
> 
> 
> ethercat slaves
> Master0
>   0  1402:0  OP     +  ifm IO-Link Master AL1332
>   1  1401:0  OP     +  S300/S400/S600/S700 EtherCAT Drive (CoE)
>   2  1403:0  PREOP  E  MTS Device V
>   3  1444:0  PREOP  +  ifm IO-Link Master AL1332
> 
> 
> 
> 
> 
> The log shows:
> 
> 
> 
> 
> 
> Sep 26 11:53:48 ctrlPC5 kernel: [260030.113683] EtherCAT 0: Slave
> states on main device: PREOP, OP.
> Sep 26 11:53:49 ctrlPC5 kernel: [260030.871858] EtherCAT ERROR 0-2:
> SDO upload 0x1A00:01 aborted.
> Sep 26 11:53:49 ctrlPC5 kernel: [260030.871861] EtherCAT ERROR 0-2:
> SDO abort message 0x08000021: "Data cannot be transferred or stored
> to the application because of local control".
> Sep 26 11:53:49 ctrlPC5 kernel: [260030.871862] EtherCAT ERROR 0-2:
> Failed to read mapped PDO entry.
> Sep 26 11:53:49 ctrlPC5 kernel: [260030.871863] EtherCAT WARNING 0-2: 
> Failed to read PDO entries for PDO 0x1A00.
> Sep 26 11:53:49 ctrlPC5 kernel: [260030.871863] EtherCAT WARNING 0-2: 
> Slave does not support changing the PDO mapping!
> Sep 26 11:53:49 ctrlPC5 kernel: [260030.871864] EtherCAT WARNING 0-
> 2: 
> Sep 26 11:53:49 ctrlPC5 kernel: [260031.046853] EtherCAT ERROR 0-2:
> Failed to set SAFEOP state, slave refused state change (PREOP +
> ERROR).
> Sep 26 11:53:49 ctrlPC5 kernel: [260031.051856] EtherCAT ERROR 0-2:
> AL status message 0x001E: "Invalid input configuration".
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> Joachim
> 
> 
> 
> 
> 
> 
> 
>     
> 
> 
> 
>  
> 
> 
> Från: Andreas Stewering-Bone
> 
> Skickat: Måndag, 26 september 2022 10:49
> 
> Till: Joachim Sällvin; Etherlab-users at etherlab.org
> 
> Ämne: Re: Sv: [Etherlab-users] Failing to configure PDOs of a MTS
> Temposonics V slave
> 
> 
> 
> 
> 
> 
> Dear Joachim,
> 
> 
> 
> No, that is not what I meant.
> 
> 
> 
> Take a simple Beckhoff terminal like EL1004
> Do a 
> ethercat -m0 -p2 cstruct
>  
> on it.
> You will see some PDos and PDo-Entries.
> 
> 
> 
> The cstruct output of the MTS sensor is empty. 
> You will have to fill it with PDos and PDo-Entries in your C++
> application.
> After this the master can configure the PDos on the slave
> automatically.
> So no need to configure it via sdo call.
> 
> 
> 
> Best regards
> 
> 
> 
> Andreas
> 
> 
> 
> Am Montag, dem 26.09.2022 um 08:35 +0000 schrieb Joachim Sällvin:
> > Hi Andreas,
> > 
> > 
> > 
> > 
> > 
> > Thank you for your reply.
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > I've tried to configure from the c++ application (is this what you
> > meant?) using:
> > 
> > 
> > 
> > 
> > 
> >     ecrt_slave_config_sdo8( slave_config, 0x1C13, 0, 0 ); // clear
> > sm pdo 0x1c13
> >     ecrt_slave_config_sdo8( slave_config, 0x1A00, 0, 0 ); // clear
> > TxPdo 0x1A00
> >     // Define TxPdo 
> > 
> > 
> >     ecrt_slave_config_sdo32( slave_config, 0x1A00, 1, 0x31010010 );
> >  // Status
> >     ecrt_slave_config_sdo32( slave_config, 0x1A00, 2, 0x31010020 );
> >  // Pos
> >     ecrt_slave_config_sdo32( slave_config, 0x1A00, 3, 0x31010020 );
> >  // Velocity
> >     ecrt_slave_config_sdo8( slave_config, 0x1A00, 0, 3 );          
> >  // Number of PDO entries for 0x1A00
> >     ecrt_slave_config_sdo16( slave_config, 0x1C13, 1, 0x1A00 );    
> >  // TxPdo in 0x1C13:1
> >     ecrt_slave_config_sdo8( slave_config, 0x1C13, 0, 1 );          
> >  // Number of TxPDO
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > But I get this in the log:
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > Sep 26 10:10:06 ctrlPC5 kernel: [253808.144369] EtherCAT ERROR 0-2: 
> > SDO download 0x1A00:00 (1 bytes) aborted.
> > Sep 26 10:10:06 ctrlPC5 kernel: [253808.144372] EtherCAT ERROR 0-2: 
> > SDO abort message 0x06010002: "Attempt to write a read-only
> > object".
> > Sep 26 10:10:06 ctrlPC5 kernel: [253808.144373] EtherCAT ERROR 0-2: 
> > SDO configuration failed.
> > 
> > 
> > 
> > 
> > 
> > 
> > Is there something that needs to be enabled in order to configure?
> > 
> > 
> > 
> > The device seems to be configured for one magnet:
> > ethercat -m0 -p2 upload 0x2000 0x0b  replies with 0x01 1
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > Best regards,
> > 
> > 
> > 
> > Joachim
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > Från: Andreas Stewering-Bone
> > 
> > Skickat: Måndag, 26 september 2022 08:30
> > 
> > Till: Joachim Sällvin; etherlab-users at etherlab.org
> > 
> > Ämne: Re: [Etherlab-users] Failing to configure PDOs of a MTS
> > Temposonics V slave
> > 
> > 
> > 
> > 
> > 
> > 
> > Dear Joachim,
> > 
> > 
> > 
> > The master configures the specific  slaves during application
> > startup. 
> > So no need to do it manually.
> > 
> > 
> > 
> > The PDO mapping for this slave is dynamically, 
> > because you can configure the number of measurment magnets.
> > Please read the sensor EtherCAT documentation and the XML slave
> > description.
> > With this information you can extend the cstruct to configure the
> > specific PDO mapping.
> > Please see the user space example in the master git repo.
> > 
> > 
> > 
> > Best regards
> > 
> > 
> > 
> > Andreas
> > 
> > 
> > 
> > Am Sonntag, dem 25.09.2022 um 17:08 +0000 schrieb Joachim Sällvin:
> > > Hi all,
> > > 
> > > 
> > > 
> > > 
> > > 
> > > Any ideas on how to configure the pdos of a MTS Temposonics
> > > slave? A brand new linear position sensor that doesn't seem to
> > > have any default configuration. Shouldn't it be possible to
> > > configure it from the command line?
> > > 
> > > 
> > > 
> > > When I try I get: 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > SDO transfer aborted with code 0x08000000: General error (see
> > > details below), why?
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > Some information about the system
> > > 
> > > 
> > > 
> > > ethercat slaves
> > > 
> > > Master0
> > >   0  1402:0  PREOP  +  ifm IO-Link Master AL1332
> > >   1  1401:0  PREOP  +  S300/S400/S600/S700 EtherCAT Drive (CoE)
> > >   2  1403:0  PREOP  +  MTS Device V
> > >   3  1444:0  PREOP  +  ifm IO-Link Master AL1332
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > ethercat -m0 -p2 cstruct
> > > /* Master 0, Slave 2, "MTS Temposonics V"
> > >  * Vendor ID:       0x00000040
> > >  * Product code:    0x0000000f
> > >  * Revision number: 0x00000029
> > >  */
> > > 
> > > 
> > > 
> > > ec_sync_info_t slave_2_syncs[] = {
> > >     {0, EC_DIR_OUTPUT, 0, NULL, EC_WD_DISABLE},
> > >     {1, EC_DIR_INPUT, 0, NULL, EC_WD_DISABLE},
> > >     {2, EC_DIR_OUTPUT, 0, NULL, EC_WD_ENABLE},
> > >     {3, EC_DIR_INPUT, 0, NULL, EC_WD_DISABLE},
> > >     {0xff}
> > > };
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > ethercat -m0 -p2 pdos
> > > SM0: PhysAddr 0x1000, DefaultSize  128, ControlRegister 0x36,
> > > Enable 1
> > > SM1: PhysAddr 0x1080, DefaultSize  128, ControlRegister 0x32,
> > > Enable 1
> > > SM2: PhysAddr 0x1100, DefaultSize    0, ControlRegister 0x74,
> > > Enable 1
> > > SM3: PhysAddr 0x1400, DefaultSize  448, ControlRegister 0x30,
> > > Enable 1
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > ethercat -m0 -p2 sdos
> > > 
> > > .....
> > > 
> > > SDO 0x1a00, "Magnet 1"
> > >   0x1a00:00, r-r-r-, uint8, 8 bit, "Number of elements"
> > >   0x1a00:01, rwrwrw, uint16, 16 bit, "Status"
> > >   0x1a00:02, rwrwrw, uint32, 32 bit, "Position"
> > >   0x1a00:03, rwrwrw, uint32, 32 bit, "Velocity"
> > > 
> > > 
> > >   0x1a00:04, rwrwrw, uint32, 32 bit, "Acceleration"
> > > 
> > > 
> > > 
> > > ......
> > > 
> > > 
> > > 
> > > SDO 0x1c13, "Sync Manager TxPDO Assign"
> > >   0x1c13:00, rwrwrw, uint8, 8 bit, "Number of elements"
> > >   0x1c13:01, rwrwrw, uint16, 16 bit, ""
> > >   0x1c13:02, rwrwrw, uint16, 16 bit, ""
> > >   0x1c13:03, rwrwrw, uint16, 16 bit, ""
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > I thought I could do like this 
> > > 
> > > 
> > > 
> > > sudo ethercat -m0 -p2 download 0x1C13 0 -tuint8 0# Clear SM PDO
> > > 0x1c13
> > > 
> > > sudo ethercat -m0 -p2 download 0x1A00 0 -tuint8 0               #
> > > Clear TxPDO 0x1A00
> > > 
> > > 
> > > 
> > > ethercat -m0 -p2 download 0x1A00 2 -tuint32 0x31010020
> > > 
> > > SDO transfer aborted with code 0x08000000: General error
> > > 
> > > 
> > > 
> > > 
> > > 
> > > dmesg
> > > 
> > >  Failed to process SDO request.
> > >  EtherCAT ERROR 0-2: SDO download 0x1A00:02 (4 bytes) aborted.
> > > 
> > >  EtherCAT ERROR 0-2: SDO abort message 0x08000000: "General
> > > error".
> > > 
> > >  EtherCAT ERROR 0-2: Failed to process SDO request.
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > Thanks,
> > > 
> > > 
> > > 
> > > Joachim Sällvin
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > Joachim Sällvin
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> 
> 
> 
> 
> 
> 
> 
> 
> 
-- 
 Mit freundlichem Gruß 

 Richard Hacker 

 -- 
 ----------------------------------------------------------------------
-- 

 Richard Hacker M.Sc. 
 richard.hacker at igh.de 
 Tel.: +49 201 / 36014-16 

 Ingenieurgemeinschaft IgH 
 Gesellschaft für Ingenieurleistungen mbH 
 Nordsternstraße 66 
 D-45329 Essen 

 Amtsgericht Essen HRB 11500 
 USt-Id.-Nr.: DE 174 626 722 
 Geschäftsführung: 
 - Dr.-Ing. Siegfried Rotthäuser 
 - Dr. Sven Beermann, Prokurist 
 Tel.: +49 201 / 360-14-0 
 http://www.igh.de 

 ----------------------------------------------------------------------
-- 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.etherlab.org/pipermail/etherlab-users/attachments/20220926/6aafc7c4/attachment-0001.htm>


More information about the Etherlab-users mailing list