<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.6000.16788" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#fffbf0>
<DIV><FONT face=Arial size=2>Dear Florian,</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Thanks a lot for support.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>The error was in the wrong Product ID used for the
evalutation Board. </FONT></DIV>
<DIV><FONT face=Arial size=2>We didn't see when switched the board from the 32
IO mode to the PIC mode that the Product ID was changed.</FONT></DIV>
<DIV><FONT face=Arial size=2>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.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>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.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Thanks.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Massimo Mancin.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>> Hi,<BR>> <BR>> On Wed, Jul 15, 2009 at
05:40:16PM +0200, Edgar Garzon wrote:<BR>> > Two different proves:<BR>>
> 1. Using the user command interface. Trying to pass the slave in OP
states<BR>> > using: /opt/etherlab/bin/ethercat states OP. And
correspoonds to the master<BR>> > logs: "ethercat.log" (File
attached).<BR>> <BR>> this won't be enough, because no slave configuration
is supplied and<BR>> moreover no cyclic exchange of process data is done. You
have to provide<BR>> an application (like you're doing in the second
example).<BR>> <BR>> > 2. Using a application "mini.c". And corresponds
to the master log:<BR>> > etherlab.log1.<BR>> <BR>> <BR>> In the
logs you can see:<BR>> <BR>> > EtherCAT DEBUG:
ecrt_master_slave_config(master = 0xf6ee4800, alias = 5,<BR>>
> position = 0, vendor_id = 0x2, product_code =
0x4570862)<BR>> > EtherCAT DEBUG: Creating slave configuration for
5:0,<BR>> > 0x00000002/0x04570862.<BR>> > EtherCAT
DEBUG: Slave 0 has an invalid type (0x00000002/0x26483052) for<BR>>
> configuration 5:0 (0x00000002/0x04570862).<BR>>
<BR>> The vendor/product combination in your application does not match
your<BR>> slave.<BR>> <BR>> If you correct this, you will most probably
get a second problem:<BR>> <BR>> > General:<BR>> >
Group: EvaBoardDemo<BR>> > Image name: DEVICE<BR>>
> Order number: EL9800-0100<BR>> > Device name:
EL9800 (V4.08) (SPI, ET1100)<BR>> > CoE details:<BR>>
> Enable SDO: yes<BR>>
> Enable SDO Info: yes<BR>>
> Enable PDO Assign: no<BR>>
> Enable PDO Configuration: no<BR>> <BR>> The
slave does not allow altering the PDO assignment and the PDOs'<BR>>
mappings. What you're trying to do here...<BR>> <BR>> > static
ec_pdo_info_t el9800_pdos[] = {<BR>> > {0x1A02, 8,
el9800_pdo_entries},<BR>> > };<BR>> > <BR>> > static
ec_sync_info_t el9800_syncs[] = {<BR>> > {2,
EC_DIR_OUTPUT},<BR>> > {3, EC_DIR_INPUT, 1,
el9800_pdos},<BR>> > {0xff}<BR>> >
};<BR>> <BR>> ...is to assign only PDO 0x1a02 to SM 3, what the slave will
reject. Try<BR>> to include both PDOs (0x1a00 and 0x1a02) in the
configuration (or<BR>> comment the CONFIGURE_PDOS define out).<BR>>
<BR>> When doing this, you will certainly be successful.<BR>> <BR>> --
<BR>> Best regards,<BR>> Florian Pose<BR></FONT></DIV></BODY></HTML>