<!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=#ece9d8>
<DIV><FONT face=Arial size=2>Hi all!</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>We have installed on a I386 computer with linux
2.6.24 the Etherlab master to control the coopley accelnet motor
driver.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>when the master is started, the slave is see from
the master but on the log appear the following errors.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Jan 28 12:17:59 syco1 kernel: EtherCAT ERROR:
Mailbox error response received from slave 0 - Unknown error reply code
0x0000.<BR>Jan 28 12:17:59 syco1 kernel: EtherCAT ERROR: Failed to read number
of assigned PDOs for SM2.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>The complete log of the bootstrap of the master
is:</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Jan 28 12:17:59 syco1 kernel: EtherCAT: Master
driver 1.4.0 r1611<BR>Jan 28 12:17:59 syco1 kernel: EtherCAT: 1 master waiting
for devices.<BR>Jan 28 12:17:59 syco1 kernel: EtherCAT: Master driver 1.4.0
r1611<BR>Jan 28 12:17:59 syco1 kernel: EtherCAT: 1 master waiting for
devices.<BR>Jan 28 12:17:59 syco1 kernel: ACPI: PCI interrupt for device
0000:00:09.0 disabled<BR>Jan 28 12:17:59 syco1 kernel: ec_8139too
EtherCAT-capable Fast Ethernet driver 0.9.28, master 1.4.0 r1611<BR>Jan 28
12:17:59 syco1 kernel: ACPI: PCI Interrupt 0000:00:09.0[A] -> Link [LNKB]
-> GSI 11 (level, low) -> IRQ 11<BR>Jan 28 12:17:59 syco1 kernel:
EtherCAT: Accepting device 00:1D:0F:C1:4A:1B for master 0.<BR>Jan 28 12:17:59
syco1 kernel: ec0: RealTek RTL8139 at 0xbc00, 00:1d:0f:c1:4a:1b, IRQ 11<BR>Jan
28 12:17:59 syco1 kernel: EtherCAT: Link state changed to UP.<BR>Jan 28 12:17:59
syco1 kernel: EtherCAT: Starting EtherCAT-IDLE thread.<BR>Jan 28 12:17:59 syco1
kernel: EtherCAT: 1 slave(s) responding.<BR>Jan 28 12:17:59 syco1 kernel:
EtherCAT: Slave states: PREOP.<BR>Jan 28 12:17:59 syco1 kernel: EtherCAT:
Scanning bus.<BR>Jan 28 12:17:59 syco1 kernel: EtherCAT: Bus scanning completed
in 36 ms.<BR>Jan 28 12:17:59 syco1 kernel: ACPI: PCI interrupt for device
0000:00:09.0 disabled<BR>Jan 28 12:17:59 syco1 kernel: ec_8139too
EtherCAT-capable Fast Ethernet driver 0.9.28, master 1.4.0 r1611<BR>Jan 28
12:17:59 syco1 kernel: ACPI: PCI Interrupt 0000:00:09.0[A] -> Link [LNKB]
-> GSI 11 (level, low) -> IRQ 11<BR>Jan 28 12:17:59 syco1 kernel:
EtherCAT: Accepting device 00:1D:0F:C1:4A:1B for master 0.<BR>Jan 28 12:17:59
syco1 kernel: ec0: RealTek RTL8139 at 0xbc00, 00:1d:0f:c1:4a:1b, IRQ 11<BR>Jan
28 12:17:59 syco1 kernel: EtherCAT: Link state changed to UP.<BR>Jan 28 12:17:59
syco1 kernel: EtherCAT: Starting EtherCAT-IDLE thread.<BR>Jan 28 12:17:59 syco1
kernel: EtherCAT: 1 slave(s) responding.<BR>Jan 28 12:17:59 syco1 kernel:
EtherCAT: Slave states: PREOP.<BR>Jan 28 12:17:59 syco1 kernel: EtherCAT:
Scanning bus.<BR>Jan 28 12:17:59 syco1 kernel: EtherCAT: Bus scanning completed
in 36 ms.<BR></DIV>
<DIV>To check if the slave is operative we have tested it with the Beckoff
Twincat Program and it works fine.</DIV>
<DIV> </DIV>
<DIV>Then we tried to change the mini.c example prorgram to define a valid
set of PDO according to the accelnet manual and when the built module is
loaded into the kernel we get the following errors:</DIV>
<DIV> </DIV>
<DIV>Jan 28 12:34:53 syco1 kernel: EtherCAT ERROR: Mailbox error response
received from slave 0 - Unknown error reply code 0x0000.<BR>Jan 28 12:34:53
syco1 kernel: EtherCAT ERROR: Failed to read number of mapped PDO
entries.<BR>Jan 28 12:34:53 syco1 kernel: EtherCAT WARNING: Failed to read
mapped PDO entries for PDO 0x1A00.<BR>Jan 28 12:34:53 syco1 kernel: EtherCAT
ERROR: Mailbox error response received from slave 0 - Unknown error reply code
0x0000.<BR>Jan 28 12:34:53 syco1 kernel: EtherCAT WARNING: Failed to clear PDO
mapping.<BR>Jan 28 12:34:53 syco1 kernel: EtherCAT WARNING: Failed to configure
mapping of PDO 0x1A00.<BR>Jan 28 12:34:53 syco1 kernel: EtherCAT ERROR: Mailbox
error response received from slave 0 - Unknown error reply code 0x0000.<BR>Jan
28 12:34:53 syco1 kernel: EtherCAT WARNING: Failed to clear PDO assignment of
SM3.<BR>Jan 28 12:34:53 syco1 kernel: EtherCAT WARNING: PDO configuration failed
on slave 0.<BR></DIV>
<DIV>and the complete log is:</DIV>
<DIV>Jan 28 12:34:52 syco1 kernel: ec_mini: Starting...<BR>Jan 28 12:34:52 syco1
kernel: EtherCAT: Requesting master 0...<BR>Jan 28 12:34:52 syco1 kernel:
EtherCAT: Successfully requested master 0.<BR>Jan 28 12:34:52 syco1 kernel:
ec_mini: Registering domain...<BR>Jan 28 12:34:52 syco1 kernel: ec_mini:
Configuring PDOs...<BR>Jan 28 12:34:52 syco1 kernel: ec_mini: Registering PDO
entries...<BR>Jan 28 12:34:52 syco1 kernel: ec_mini: size 7, offset 0<BR>Jan 28
12:34:52 syco1 kernel: ec_mini: Activating master...<BR>Jan 28 12:34:52 syco1
kernel: EtherCAT: Domain0: Logical address 0x00000000, 7 byte, expected working
counter 1.<BR>Jan 28 12:34:52 syco1 kernel: EtherCAT: Datagram
domain0-0: Logical offset 0x00000000, 7 byte, type LRD.<BR>Jan 28 12:34:52 syco1
kernel: EtherCAT: Master thread exited.<BR>Jan 28 12:34:52 syco1 kernel:
EtherCAT: Starting EtherCAT-OP thread.<BR>Jan 28 12:34:52 syco1 kernel: ec_mini:
Starting cyclic sample thread.<BR>Jan 28 12:34:52 syco1 kernel: ec_mini:
Started.<BR>Jan 28 12:34:52 syco1 kernel: ec_mini: 1 slave(s).<BR>Jan 28
12:34:52 syco1 kernel: ec_mini: AL states: 0x02.<BR>Jan 28 12:34:52 syco1
kernel: ec_mini: Link is up.<BR>Jan 28 12:34:52 syco1 kernel: ec_mini: AccelNet:
State 0x02.<BR>Jan 28 12:34:52 syco1 kernel: ec_mini: AccelNet: online.<BR>Jan
28 12:34:52 syco1 kernel: ec_mini: AcualPos 0, modeOfoper 0, status 0<BR>Jan 28
12:34:53 syco1 kernel: EtherCAT: Domain 0: Working counter changed to
1/1.<BR>Jan 28 12:34:53 syco1 kernel: ec_mini: Domain1: WC 1.<BR>Jan 28 12:34:53
syco1 kernel: ec_mini: Domain1: State 2.<BR>Jan 28 12:34:53 syco1 kernel:
ec_mini: AcualPos -721418479, modeOfoper D5, status 1111<BR>Jan 28 12:34:53
syco1 kernel: EtherCAT: Slave states: OP.<BR>Jan 28 12:34:52 syco1 kernel:
ec_mini: Starting...<BR>Jan 28 12:34:52 syco1 kernel: EtherCAT: Requesting
master 0...<BR>Jan 28 12:34:52 syco1 kernel: EtherCAT: Successfully requested
master 0.<BR>Jan 28 12:34:52 syco1 kernel: ec_mini: Registering domain...<BR>Jan
28 12:34:52 syco1 kernel: ec_mini: Configuring PDOs...<BR>Jan 28 12:34:52 syco1
kernel: ec_mini: Registering PDO entries...<BR>Jan 28 12:34:52 syco1 kernel:
ec_mini: size 7, offset 0<BR>Jan 28 12:34:52 syco1 kernel: ec_mini: Activating
master...<BR>Jan 28 12:34:52 syco1 kernel: EtherCAT: Domain0: Logical address
0x00000000, 7 byte, expected working counter 1.<BR>Jan 28 12:34:52 syco1 kernel:
EtherCAT: Datagram domain0-0: Logical offset 0x00000000, 7 byte,
type LRD.<BR>Jan 28 12:34:52 syco1 kernel: EtherCAT: Master thread
exited.<BR>Jan 28 12:34:52 syco1 kernel: EtherCAT: Starting EtherCAT-OP
thread.<BR>Jan 28 12:34:52 syco1 kernel: ec_mini: Starting cyclic sample
thread.<BR>Jan 28 12:34:52 syco1 kernel: ec_mini: Started.<BR>Jan 28 12:34:52
syco1 kernel: ec_mini: 1 slave(s).<BR>Jan 28 12:34:52 syco1 kernel: ec_mini: AL
states: 0x02.<BR>Jan 28 12:34:52 syco1 kernel: ec_mini: Link is up.<BR>Jan 28
12:34:52 syco1 kernel: ec_mini: AccelNet: State 0x02.<BR>Jan 28 12:34:52 syco1
kernel: ec_mini: AccelNet: online.<BR>Jan 28 12:34:52 syco1 kernel: ec_mini:
AcualPos 0, modeOfoper 0, status 0<BR>Jan 28 12:34:53 syco1 kernel: EtherCAT:
Domain 0: Working counter changed to 1/1.<BR>Jan 28 12:34:53 syco1 kernel:
ec_mini: Domain1: WC 1.<BR>Jan 28 12:34:53 syco1 kernel: ec_mini: Domain1: State
2.<BR>Jan 28 12:34:53 syco1 kernel: ec_mini: AcualPos -721418479, modeOfoper D5,
status 1111<BR>Jan 28 12:34:53 syco1 kernel: EtherCAT: Slave states: OP.<BR>Jan
28 12:34:53 syco1 kernel: ec_mini: AL states: 0x08.<BR>Jan 28 12:34:53 syco1
kernel: ec_mini: AccelNet: State 0x08.<BR>Jan 28 12:34:53 syco1 kernel: ec_mini:
AccelNet: operational.<BR>Jan 28 12:34:53 syco1 kernel: ec_mini: AL states:
0x08.<BR>Jan 28 12:34:53 syco1 kernel: ec_mini: AccelNet: State 0x08.<BR>Jan 28
12:34:53 syco1 kernel: ec_mini: AccelNet: operational.<BR></DIV></FONT>
<DIV><FONT face=Arial size=2>The configuration we have insert in the mini.c
is</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>#define AccelnetSlavePos 0, 0</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>#define Accelnet_AEP055 0x000000ab,
0x00000380</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV><FONT face=Arial size=2>
<DIV><BR>const static ec_pdo_entry_reg_t domain1_regs[] =
{<BR> {AccelnetSlavePos, Accelnet_AEP055, 0x6060, 0,
&off_accelnet},<BR> {}<BR>};</DIV>
<DIV> </DIV>
<DIV><BR>static ec_pdo_entry_info_t accelnet_pdo_entries[] =
{<BR> {0x6060, 0, 8}, // mode of
operation<BR> {0x6041, 0, 16}, // status<BR>
{0x6064, 0, 32}, // actual position<BR> {0x6040, 0, 16}, //
control word<BR> {0x6060, 0, 8}, // mode of
operation<BR>};</DIV>
<DIV> </DIV>
<DIV>static ec_pdo_info_t accelnet_pdos[] = {<BR> {0x1A00, 3,
accelnet_pdo_entries},<BR> {0x1600, 2,
accelnet_pdo_entries+3},<BR>};</DIV>
<DIV> </DIV>
<DIV>static ec_sync_info_t accelnet_syncs[] = {<BR> {2,
EC_DIR_OUTPUT}, // ,1, accelnet_pdos+1},<BR> {3, EC_DIR_INPUT,
1, accelnet_pdos},<BR> {0xff}<BR>};<BR></DIV>
<DIV> </DIV>
<DIV>Some one can help me ?</DIV>
<DIV> </DIV>
<DIV>Thanks,</DIV>
<DIV> </DIV>
<DIV>Massimo.</DIV>
<DIV> </DIV></FONT></BODY></HTML>