[etherlab-users] el9820 Etherlab CANopen
Massimo Mancin
Massimo.Mancin at syco.it
Thu Jul 16 18:37:55 CEST 2009
Dear Florian,
Thanks a lot for support.
The error was in the wrong Product ID used for the evalutation Board.
We didn't see when switched the board from the 32 IO mode to the PIC mode that the Product ID was changed.
The sample program works fine either with or without configure the PDOs, as is written in the new mini.c sample program attached to this mail.
Now there is just a little bugs. If we register, with the function "ecrt_domain_reg_pdo_entry_list" just one PDO variable, we see the slave to go into a loop where the state changes from INIT, PREOP, SAFEOP, OP and SAFEOP + ERR. If we register at least two variables the bugs doesn't appear. We are preparing a more clear mail, with debug trace of this little bug.
Thanks.
Massimo Mancin.
> Hi,
>
> On Wed, Jul 15, 2009 at 05:40:16PM +0200, Edgar Garzon wrote:
> > Two different proves:
> > 1. Using the user command interface. Trying to pass the slave in OP states
> > using: /opt/etherlab/bin/ethercat states OP. And correspoonds to the master
> > logs: "ethercat.log" (File attached).
>
> this won't be enough, because no slave configuration is supplied and
> moreover no cyclic exchange of process data is done. You have to provide
> an application (like you're doing in the second example).
>
> > 2. Using a application "mini.c". And corresponds to the master log:
> > etherlab.log1.
>
>
> In the logs you can see:
>
> > EtherCAT DEBUG: ecrt_master_slave_config(master = 0xf6ee4800, alias = 5,
> > position = 0, vendor_id = 0x2, product_code = 0x4570862)
> > EtherCAT DEBUG: Creating slave configuration for 5:0,
> > 0x00000002/0x04570862.
> > EtherCAT DEBUG: Slave 0 has an invalid type (0x00000002/0x26483052) for
> > configuration 5:0 (0x00000002/0x04570862).
>
> The vendor/product combination in your application does not match your
> slave.
>
> If you correct this, you will most probably get a second problem:
>
> > General:
> > Group: EvaBoardDemo
> > Image name: DEVICE
> > Order number: EL9800-0100
> > Device name: EL9800 (V4.08) (SPI, ET1100)
> > CoE details:
> > Enable SDO: yes
> > Enable SDO Info: yes
> > Enable PDO Assign: no
> > Enable PDO Configuration: no
>
> The slave does not allow altering the PDO assignment and the PDOs'
> mappings. What you're trying to do here...
>
> > static ec_pdo_info_t el9800_pdos[] = {
> > {0x1A02, 8, el9800_pdo_entries},
> > };
> >
> > static ec_sync_info_t el9800_syncs[] = {
> > {2, EC_DIR_OUTPUT},
> > {3, EC_DIR_INPUT, 1, el9800_pdos},
> > {0xff}
> > };
>
> ...is to assign only PDO 0x1a02 to SM 3, what the slave will reject. Try
> to include both PDOs (0x1a00 and 0x1a02) in the configuration (or
> comment the CONFIGURE_PDOS define out).
>
> When doing this, you will certainly be successful.
>
> --
> Best regards,
> Florian Pose
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.etherlab.org/pipermail/etherlab-users/attachments/20090716/7ae96284/attachment-0005.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mini.c
Type: application/octet-stream
Size: 12460 bytes
Desc: not available
URL: <http://lists.etherlab.org/pipermail/etherlab-users/attachments/20090716/7ae96284/attachment-0005.obj>
More information about the Etherlab-users
mailing list