Hi Andreas, I gleaned some of the initialization code from the -cstruct command. What am I doing wrong? Here's what I'm doing in the init routine: (see comment lines for results/error messages)
---------------------------------------------------------------------------- ---------- ec_pdo_entry_info_t el2502_pdo_entries[] = { {0x7000, 0x11, 16}, /* PWM output */ {0x7000, 0x12, 16}, /* Freq outtput */ {0x7010, 0x11, 16}, /* PWM output */ {0x7010, 0x12, 16}, /* PWM output */ }; ec_pdo_info_t el2502_pdos[] = { {0x1600, 1, el2502_pdo_entries + 0}, /* PWM RxPDO-Map Ch.1 */ {0x1602, 1, el2502_pdo_entries + 1}, /* Freq RxPDO-Map Ch.1 */ {0x1601, 1, el2502_pdo_entries + 2}, /* PWM RxPDO-Map Ch.2 */ {0x1603, 1, el2502_pdo_entries + 3}, /* Freq RxPDO-Map Ch.2 */ }; ec_sync_info_t el2502_syncs[] = { {0, EC_DIR_OUTPUT, 0, NULL, EC_WD_DISABLE}, {1, EC_DIR_INPUT, 0, NULL, EC_WD_DISABLE}, {2, EC_DIR_OUTPUT, 4, el2502_pdos + 0, EC_WD_DISABLE}, {3, EC_DIR_INPUT, 0, NULL, EC_WD_DISABLE}, }; if(ecrt_slave_config_pdos(m_pSlaveConfig, 1, el2502_syncs)) { g_sErrorMessage = "New ecrt_slave_config_pdos() failed for EL2502"; return false; // no problem here, no error message } int i_IO_PWOffset_0 = ecrt_slave_config_reg_pdo_entry(m_pSlaveConfig, 0x7000, 0x11, getMasterModule()->getDomain(), NULL); printf("EL 2502 Ch 0: PWOffset= 0x%X\r\n", i_IO_PWOffset_0); // result is an offset of 2, no error message int i_IO_FreqOffset_0 = ecrt_slave_config_reg_pdo_entry(m_pSlaveConfig, 0x7000, 0x12, getMasterModule()->getDomain(), NULL); printf("EL 2502 Ch 0: FreqOffset= 0x%X\r\n", i_IO_FreqOffset_0); // result is an offset of 0xFFFFFFFE, error message is: "Failed to register PDO entry: No such file or directory" -----Ursprüngliche Nachricht----- Von: Andreas Stewering-Bone [mailto:a...@igh-essen.com] Gesendet: Mittwoch, 10. November 2010 11:30 An: Michael Sagner Cc: etherlab-users@etherlab.org Betreff: Re: [etherlab-users] EL2502 problem Hello Michael, Hardware version seems to be OK for the requested features. you have to - configure PDO 1602 and 1603 - configure PDO-Entries 7000:17 7000:18 7010:17 7010:18 - map PDO-Entries 7000:17 7000:18 7010:17 7010:18 and then it should work I think. Do you get a failure message? Greatings Andreas Michael Sagner schrieb: > Hello Andreas, > thx for your answer. Here's the requested info: > > the outpout of the 'slaves' command is: > > === Master 0, Slave 3 === > State: PREOP > Flag: + > Identity: > Vendor Id: 0x00000002 > Product code: 0x09c63052 > Revision number: 0x00120000 > Serial number: 0x00000000 > DL information: > FMMU bit operation: no > Distributed clocks: yes, 64 bit > DC system time transmission delay: 430 ns > Port Type Link Loop Signal NextSlave RxTime [ns] Diff [ns] NextDc > [ns] > 0 EBUS up open yes 2 496471658 0 > 140 > 1 EBUS up open yes 4 496473098 1440 > 140 > 2 N/A down closed no - - - > - > 3 N/C down closed no - - - > - > Mailboxes: > Bootstrap RX: 0x1000/244, TX: 0x10f4/244 > Standard RX: 0x1000/128, TX: 0x1080/128 > Supported protocols: CoE, FoE > General: > Group: DigOut > Image name: > Order number: EL2502 > Device name: EL2502 2K. PWM Ausgang, 24V > CoE details: > Enable SDO: yes > Enable SDO Info: yes > Enable PDO Assign: yes > Enable PDO Configuration: no > Enable Upload at startup: no > Enable SDO complete access: no > Flags: > Enable SafeOp: no > Enable notLRW: no > Current consumption: 150 mA > > ---------------------------------------------------------------------- > ------ > ----------------------------------- > The output of the 'pdos' command is: > > === Master 0, Slave 3 === > SM0: PhysAddr 0x1000, DefaultSize 128, ControlRegister 0x26, Enable 1 > SM1: PhysAddr 0x1080, DefaultSize 128, ControlRegister 0x22, Enable 1 > SM2: PhysAddr 0x1100, DefaultSize 4, ControlRegister 0x24, Enable 1 > RxPDO 0x1600 "PWM RxPDO-Map Ch.1" > PDO entry 0x7000:11, 16 bit, "PWM output" > RxPDO 0x1601 "PWM RxPDO-Map Ch.2" > PDO entry 0x7010:11, 16 bit, "PWM output" > SM3: PhysAddr 0x1180, DefaultSize 0, ControlRegister 0x20, Enable 0 > > -----Ursprüngliche Nachricht----- > Von: Andreas Stewering-Bone [mailto:a...@igh-essen.com] > Gesendet: Mittwoch, 10. November 2010 09:54 > An: Michael Sagner; etherlab-users@etherlab.org > Betreff: Re: [etherlab-users] EL2502 problem > > Hello Michael, > > the documentation makes a note about different Hardware Versions. > > Changing the period via pdo mapping is only supported for version > higher or equal than 01. > > Please show following outputs > -ethercat slaves -px -v > -ethercat pdos -px > > > > Greatings > > Andreas > > Michael Sagner schrieb: > >> I can set the pulse width of EL2502 PWM outputs without a problem, >> but Im at a loss when it comes to setting their frequency. >> >> According to the Beckhoff docs, index 0x1600/0x1601 must be >> deactivated, and index 0x1602/0x1603 must be activated in order to do >> this. >> >> Q: How do I do this using ecrt_.... commands? Are there any code >> samples around somewhere? >> >> M. Sagner >> >> --------------------------------------------------------------------- >> - >> -- >> >> _______________________________________________ >> etherlab-users mailing list >> etherlab-users@etherlab.org >> http://lists.etherlab.org/mailman/listinfo/etherlab-users >> >> > > > -- ------------------------------------------------------------------------ Dipl.-Ing. Andreas Stewering-Bone Amtsgericht Essen HRB 11500 Ingenieurgemeinschaft IgH USt-Id.-Nr.: DE 174 626 722 Gesellschaft für Ingenieurleistungen mbH Geschäftsführung: Heinz-Bäcker-Str. 34 Dr.-Ing. S. Rotthäuser D-45356 Essen Dr.-Ing. T. Finke Tel.: +49 201 / 360-14-15 Dr.-Ing. W. Hagemeister Fax.: +49 201 / 360-14-14 Tel.: +49 201 / 360-14-0 andreas.stewering-b...@igh-essen.com http://www.igh-essen.com ------------------------------------------------------------------------ _______________________________________________ etherlab-users mailing list etherlab-users@etherlab.org http://lists.etherlab.org/mailman/listinfo/etherlab-users