wenlinuxg | 28 Mar 08:03 2013
Picon

problems of configuring pdos and sdos

Hi all:
I'm running EtherCAT Master driver 1.5.2 and I'm having problems communicating with the omron servo.Problems as below:
[ 4206.738333] EtherCAT ERROR 0-0: SDO download 0x1701:00 (1 bytes) aborted.
[ 4206.738346] EtherCAT ERROR 0-0: SDO abort message 0x06010002: "Attempt to write a read-only object".
[ 4206.738354] EtherCAT WARNING 0-0: Failed to clear PDO mapping.
[ 4206.738360] EtherCAT WARNING 0-0: Currently mapped PDO entries: 0x6040:00/16 0x607A:00/32 0x60B8:00/16 0x60FE:01/32. Entries to map: 0x6040:00/16 0x607A:00/32 0x60B8:00/16 0x60FE:01/32
[ 4206.738400] EtherCAT WARNING 0-0: Failed to configure mapping of PDO 0x1701.
[ 4206.968302] EtherCAT ERROR 0-0: SDO download 0x1B01:00 (1 bytes) aborted.
[ 4206.968312] EtherCAT ERROR 0-0: SDO abort message 0x06010002: "Attempt to write a read-only object".
And I can read the TxPDO mapping using command-line and it's here:
SDO 0x1701, "258th receive PDO Mapping"
0x1701:00, r-r-r-, uint8, 8 bit, "258th receive PDO Mapping"
0x1701:01, r-r-r-, uint32, 32 bit, "1st Output Object to be mapped"
0x1701:02, r-r-r-, uint32, 32 bit, "2nd Output Object to be mapped"
0x1701:03, r-r-r-, uint32, 32 bit, "3rd Output Object to be mapped"
0x1701:04, r-r-r-, uint32, 32 bit, "4th Output Object to be mapped"
And the attachment is the pdo config file.Do you know what the reason is of this?
 
I use the command-line ethercat pdos get the pdo entry it's here:
SM0: PhysAddr 0x1800, DefaultSize  256, ControlRegister 0x26, Enable 1
SM1: PhysAddr 0x1c00, DefaultSize  256, ControlRegister 0x22, Enable 1
SM2: PhysAddr 0x1100, DefaultSize   12, ControlRegister 0x64, Enable 1
  RxPDO 0x1701 "258th receive PDO Mapping"
    PDO entry 0x6040:00, 16 bit, "Controlword"
    PDO entry 0x607a:00, 32 bit, "Target position"
    PDO entry 0x60b8:00, 16 bit, "Touch probe function"
    PDO entry 0x60fe:01, 32 bit, "Physical outputs"
SM3: PhysAddr 0x1200, DefaultSize   28, ControlRegister 0x22, Enable 1
  TxPDO 0x1b01 "258th transmit PDO Mapping"
    PDO entry 0x603f:00, 16 bit, "Error code"
    PDO entry 0x6041:00, 16 bit, "Statusword"
    PDO entry 0x6064:00, 32 bit, "Position actual value"
    PDO entry 0x6077:00, 16 bit, "Torque actual value"
    PDO entry 0x60f4:00, 32 bit, "Following error actual value"
    PDO entry 0x60b9:00, 16 bit, "Touch probe status"
    PDO entry 0x60ba:00, 32 bit, "Touch probe pos1 pos value"
    PDO entry 0x60bc:00, 32 bit, "Touch probe pos2 pos value"
    PDO entry 0x60fd:00, 32 bit, "Digital inputs"
 
Thanks a lot,
Wen
 
wenlinuxg
<div>
<div>Hi all:</div>
<div>
<div>I'm running EtherCAT Master driver 1.5.2 and I'm having problems 
communicating with the omron servo.Problems as below:</div>
<div></div>
<div>[ 4206.738333] EtherCAT ERROR 0-0: SDO download 0x1701:00 (1 bytes) 
aborted.</div>
<div>[ 4206.738346] EtherCAT ERROR 0-0: SDO abort message 0x06010002: "Attempt 
to write a read-only object".</div>
<div>[ 4206.738354] EtherCAT WARNING 0-0: Failed to clear PDO mapping.</div>
<div>[ 4206.738360] EtherCAT WARNING 0-0: Currently mapped PDO entries: 
0x6040:00/16 0x607A:00/32 0x60B8:00/16 0x60FE:01/32. Entries to map: 
0x6040:00/16 0x607A:00/32 0x60B8:00/16 0x60FE:01/32</div>
<div>[ 4206.738400] EtherCAT WARNING 0-0: Failed to configure mapping of PDO 
0x1701.</div>
<div>[ 4206.968302] EtherCAT ERROR 0-0: SDO download 0x1B01:00 (1 bytes) 
aborted.</div>
<div>[ 4206.968312] EtherCAT ERROR 0-0: SDO abort message 0x06010002: "Attempt 
to write a read-only object".</div>
<div></div>
<div>And I can read the TxPDO mapping using command-line and it's here:</div>
<div></div>
<div>SDO 0x1701, "258th receive PDO Mapping"</div>
<div>0x1701:00, r-r-r-, uint8, 8 bit, "258th receive PDO Mapping"</div>
<div>0x1701:01, r-r-r-, uint32, 32 bit, "1st Output Object to be mapped"</div>
<div>0x1701:02, r-r-r-, uint32, 32 bit, "2nd Output Object to be mapped"</div>
<div>0x1701:03, r-r-r-, uint32, 32 bit, "3rd Output Object to be mapped"</div>
<div>0x1701:04, r-r-r-, uint32, 32 bit, "4th Output Object to be mapped"</div>
<div></div>
<div>And the attachment is the pdo config file.Do you know what the reason is of 
this?</div>
<div>&nbsp;</div>
<div>I use the command-line ethercat pdos get the pdo entry it's here:</div>
<div>
<div>SM0:&nbsp;PhysAddr&nbsp;0x1800,&nbsp;DefaultSize&nbsp;&nbsp;256,&nbsp;ControlRegister&nbsp;0x26,&nbsp;Enable&nbsp;1</div>
<div>SM1:&nbsp;PhysAddr&nbsp;0x1c00,&nbsp;DefaultSize&nbsp;&nbsp;256,&nbsp;ControlRegister&nbsp;0x22,&nbsp;Enable&nbsp;1</div>
<div>SM2:&nbsp;PhysAddr&nbsp;0x1100,&nbsp;DefaultSize&nbsp;&nbsp;&nbsp;12,&nbsp;ControlRegister&nbsp;0x64,&nbsp;Enable&nbsp;1</div>
<div>&nbsp;&nbsp;RxPDO&nbsp;0x1701&nbsp;"258th&nbsp;receive&nbsp;PDO&nbsp;Mapping"</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;PDO&nbsp;entry&nbsp;0x6040:00,&nbsp;16&nbsp;bit,&nbsp;"Controlword"</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;PDO&nbsp;entry&nbsp;0x607a:00,&nbsp;32&nbsp;bit,&nbsp;"Target&nbsp;position"</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;PDO&nbsp;entry&nbsp;0x60b8:00,&nbsp;16&nbsp;bit,&nbsp;"Touch&nbsp;probe&nbsp;function"</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;PDO&nbsp;entry&nbsp;0x60fe:01,&nbsp;32&nbsp;bit,&nbsp;"Physical&nbsp;outputs"</div>
<div>SM3:&nbsp;PhysAddr&nbsp;0x1200,&nbsp;DefaultSize&nbsp;&nbsp;&nbsp;28,&nbsp;ControlRegister&nbsp;0x22,&nbsp;Enable&nbsp;1</div>
<div>&nbsp;&nbsp;TxPDO&nbsp;0x1b01&nbsp;"258th&nbsp;transmit&nbsp;PDO&nbsp;Mapping"</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;PDO&nbsp;entry&nbsp;0x603f:00,&nbsp;16&nbsp;bit,&nbsp;"Error&nbsp;code"</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;PDO&nbsp;entry&nbsp;0x6041:00,&nbsp;16&nbsp;bit,&nbsp;"Statusword"</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;PDO&nbsp;entry&nbsp;0x6064:00,&nbsp;32&nbsp;bit,&nbsp;"Position&nbsp;actual&nbsp;value"</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;PDO&nbsp;entry&nbsp;0x6077:00,&nbsp;16&nbsp;bit,&nbsp;"Torque&nbsp;actual&nbsp;value"</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;PDO&nbsp;entry&nbsp;0x60f4:00,&nbsp;32&nbsp;bit,&nbsp;"Following&nbsp;error&nbsp;actual&nbsp;value"</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;PDO&nbsp;entry&nbsp;0x60b9:00,&nbsp;16&nbsp;bit,&nbsp;"Touch&nbsp;probe&nbsp;status"</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;PDO&nbsp;entry&nbsp;0x60ba:00,&nbsp;32&nbsp;bit,&nbsp;"Touch&nbsp;probe&nbsp;pos1&nbsp;pos&nbsp;value"</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;PDO&nbsp;entry&nbsp;0x60bc:00,&nbsp;32&nbsp;bit,&nbsp;"Touch&nbsp;probe&nbsp;pos2&nbsp;pos&nbsp;value"</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;PDO&nbsp;entry&nbsp;0x60fd:00,&nbsp;32&nbsp;bit,&nbsp;"Digital&nbsp;inputs"</div>
<div>&nbsp;</div>
</div>
<div></div>
<div>Thanks a lot,</div>
<div>Wen</div>
</div>
<div>&nbsp;</div>
<div><span>wenlinuxg</span></div>
</div>
XIAOXIANG LIU | 19 Mar 08:41 2013
Picon

Beckhoff EL2008

Hi:

I'm running EtherCAT Master driver 1.5.2 with Linux kernel 2.6.35.9 and I'm having problems communicating with the beckhoff EL2008 using the /examples/rtai/rtai_sample.c  .

I can read the domain data using command-line : ethercat domains -v ,
and it's correct.But the LEDs of my EL2008 stay out.
Do you know what the reason is of this?

I am a newer to EtherCAT master.

Thanks a lot,
Liu
<div><div dir="ltr">
<p>Hi:</p>
<div>
I'm running&nbsp;EtherCAT Master driver 1.5.2 with Linux kernel 2.6.35.9 and I'm having problems communicating with the beckhoff EL2008 using the /examples/rtai/rtai_sample.c &nbsp;.</div>
<div>
<br>
</div>
<div>I can read the domain data using command-line : ethercat domains -v ,</div>
<div>
and it's correct.But the LEDs of my EL2008 stay out.</div>
<div>Do you know what the reason is of this?</div>
<div><br></div>
<div>
I am a newer to EtherCAT master.</div>
<div><br></div>
<div>
Thanks a lot,</div>
<div>Liu</div>
</div></div>
Dan Helmick | 18 Mar 21:52 2013
Picon

EoE comm problem

Hi,


I'm running EtherCAT: Master driver 1.5.2 with Linux kernel 3.2.0-37 and I'm having problems communicating with a device using EoE.

The on startup, the master successfully creates a device (eoe0s0) that is visible by ifconfig.

I am able to assign an IP address and netmask to the device, but when I bring the device up (using ifup), I get the following error in the system log:

[2224556.119910] EtherCAT ERROR 0-0: Failed to set SAFEOP state, slave refused state change (PREOP + ERROR).
[2224556.119941] EtherCAT ERROR 0-0: AL status message 0x001E: "Invalid input configuration".

and the slave immediately shows that it is in an error state:

0  0:0  PREOP  E  0x0000009a:0x00030924

The device still responds to pings, but does not respond to any commands sent over ethernet.

Any help is greatly appreciated.

Thanks,
Dan
<div>
<p>Hi,</p>
<div><br></div>
<div>I'm running&nbsp;EtherCAT: Master driver 1.5.2 with Linux kernel 3.2.0-37 and I'm having problems communicating with a device using EoE.</div>
<div><br></div>
<div>The on startup, the master successfully creates a device (eoe0s0) that is visible by ifconfig.</div>

<div><br></div>
<div>I am able to assign an IP address and netmask to the device, but when I bring the device up (using ifup), I get the following error in the system log:</div>
<div><br></div>
<div>
<div>[2224556.119910] EtherCAT ERROR 0-0: Failed to set SAFEOP state, slave refused state change (PREOP + ERROR).</div>

<div>[2224556.119941] EtherCAT ERROR 0-0: AL status message 0x001E: "Invalid input configuration".</div>
</div>
<div><br></div>
<div>and the slave immediately shows that it is in an error state:</div>
<div><br></div>

<div><div>0 &nbsp;0:0 &nbsp;PREOP &nbsp;E &nbsp;0x0000009a:0x00030924</div></div>
<div><br></div>
<div>The device still responds to pings, but does not respond to any commands sent over ethernet.</div>
<div><br></div>
<div>Any help is greatly appreciated.</div>

<div><br></div>
<div>Thanks,</div>
<div>Dan</div>
</div>
Juri Gerke | 15 Mar 12:26 2013
Picon

Problems generating QtPdWidgets doku

Hello,

 

I do have a problem to generate the doxygen doku for QtPdWidgets.

 

I follow these steps.

 

tar xjf QtPdWidgets-x.y.z.tar.bz2

//works fine

cd QtPdWidgets-x.y.z

//works fine

qmake

//works fine

make dox

//works also fine

//Output: Doxygen Doxyfile

 

But it seems like the doku is corrupted. If i open the doc/html/index.html file, it shows just the software version, but no linksto e.g. other files , classes etc.

 

Maybe someone can provide me the doku or tell me how to solve the problem.

 

Kind regards

 

Juri Gerke

 

 

--

AFPT GmbH

Trinkbornstraße 15-17

56281 Doerth

Germany

 

Phone: +49 6747 950185-0 | Fax: +49 6747 950185-9 | Url: www.afpt.de

 

Amtsgericht Koblenz | HRB 20 638 | USt-IdNr. DE253125882

Geschäftsführer: Dr.-Ing. Patrick Kölzer, Coert Kok

 

<div><div class="WordSection1">
<p class="MsoNormal">Hello,<p></p></p>
<p class="MsoNormal"><p>&nbsp;</p></p>
<p class="MsoNormal">I do have a problem to generate the doxygen doku for QtPdWidgets.<p></p></p>
<p class="MsoNormal"><p>&nbsp;</p></p>
<p class="MsoNormal">I follow these steps.<p></p></p>
<p class="MsoNormal"><p>&nbsp;</p></p>
<p class="MsoNormal"><span>tar xjf QtPdWidgets-x.y.z.tar.bz2<p></p></span></p>
<p class="MsoNormal"><span>//works fine<p></p></span></p>
<p class="MsoNormal"><span>cd QtPdWidgets-x.y.z<p></p></span></p>
<p class="MsoNormal"><span>//works fine<p></p></span></p>
<p class="MsoNormal"><span>qmake<p></p></span></p>
<p class="MsoNormal"><span>//works fine<p></p></span></p>
<p class="MsoNormal"><span>make dox<p></p></span></p>
<p class="MsoNormal">//works also fine <p></p></p>
<p class="MsoNormal">//Output: Doxygen Doxyfile<p></p></p>
<p class="MsoNormal"><p>&nbsp;</p></p>
<p class="MsoNormal">But it seems like the doku is corrupted. If i open the doc/html/index.html file, it shows just the software version, but no linksto e.g. other files , classes etc.<p></p></p>
<p class="MsoNormal"><p>&nbsp;</p></p>
<p class="MsoNormal">Maybe someone can provide me the doku or tell me how to solve the problem.<p></p></p>
<p class="MsoNormal"><p>&nbsp;</p></p>
<p class="MsoNormal">Kind regards<p></p></p>
<p class="MsoNormal"><p>&nbsp;</p></p>
<p class="MsoNormal">Juri Gerke<p></p></p>
<p class="MsoNormal"><p>&nbsp;</p></p>
<p class="MsoNormal"><p>&nbsp;</p></p>
<p class="MsoNormal">--<p></p></p>
<p class="MsoNormal">AFPT GmbH<p></p></p>
<p class="MsoNormal">Trinkbornstra&szlig;e 15-17<p></p></p>
<p class="MsoNormal">56281 Doerth<p></p></p>
<p class="MsoNormal">Germany<p></p></p>
<p class="MsoNormal"><p>&nbsp;</p></p>
<p class="MsoNormal">Phone: +49 6747 950185-0 | Fax: +49 6747 950185-9 | Url: www.afpt.de<p></p></p>
<p class="MsoNormal"><p>&nbsp;</p></p>
<p class="MsoNormal">Amtsgericht Koblenz | HRB 20 638 | USt-IdNr. DE253125882<p></p></p>
<p class="MsoNormal">Gesch&auml;ftsf&uuml;hrer: Dr.-Ing. Patrick K&ouml;lzer, Coert Kok<p></p></p>
<p class="MsoNormal"><p>&nbsp;</p></p>
</div></div>
Thomas Bitsky, Jr. | 14 Mar 15:40 2013

Integrated Intel Ethernet

Hello!

I'm trying to pick a mini industrial PC to run the master on. I'm looking at a PC with an Intel board D2550MUD2, which has an integrated Intel Ethernet controller. Is that the e1000 driver? I'm trying to pick a PC where a native driver exists. Are there any guidelines for this?

Also, has anyone had any trouble using Intel Atom processors with rt preempt/Etherlab?

Thanks in advance,
Tom

<div><div dir="ltr">Hello!<div><br></div>
<div>I'm trying to pick a mini industrial PC to run the master on. I'm looking at a PC with an Intel board D2550MUD2, which has an integrated Intel Ethernet controller. Is that the e1000 driver? I'm trying to pick a PC where a native driver exists. Are there any guidelines for this?</div>
<div><br></div>
<div>Also, has anyone had any trouble using Intel Atom processors with rt preempt/Etherlab?</div>
<div><br></div>
<div>Thanks in advance,<br clear="all"><div>Tom</div>
<div><br></div>
</div>
</div></div>
Olaf Holowenko | 13 Mar 13:10 2013
Picon

Bug in function ecrt_master_get_slave

Hi all,

 

in file /master/master.c, function ecrt_master_get_slave you can find the code

 

>>   slave = ec_master_find_slave_const(master, 0, slave_position);

>>

 

>>   slave_info->position = slave->ring_position;

 

(V1.5.1 about line 2300, V1.5.2 line 2632) If you follow ec_master_find_slave_const you will see: this function may return NULL in case slave_position is not valid / used, the next line will cause a segmentation fault.

 

ectr.h tells us, that only the pointers have to be valid variables. I suggest to add the following lines (V1.5.1):

 

>>   slave = ec_master_find_slave_const(master, 0, slave_position);

>>   if(slave==NULL)

>>   {

>>      up(&master->master_sem);

>>      return -666;         // or whatever errorcode…

>>   }

>>

>>   slave_info->position = slave->ring_position;

 

Olaf

 

 

<div>

<div class="Section1">

<p class="MsoNormal"><span lang="EN-GB">Hi all, <p></p></span></p>

<p class="MsoNormal"><span lang="EN-GB"><p>&nbsp;</p></span></p>

<p class="MsoNormal"><span lang="EN-GB">in file /master/master.c, function
ecrt_master_get_slave you can find the code <p></p></span></p>

<p class="MsoNormal"><span lang="EN-GB"><p>&nbsp;</p></span></p>

<p class="MsoNormal"><span lang="EN-GB">&gt;&gt;&nbsp;&nbsp; slave =
ec_master_find_slave_const(master, 0, slave_position);<p></p></span></p>

<p class="MsoNormal"><span lang="EN-GB">&gt;&gt;<p>&nbsp;</p></span></p>

<p class="MsoNormal"><span lang="EN-GB">&gt;&gt;&nbsp;&nbsp; slave_info-&gt;position =
slave-&gt;ring_position;<p></p></span></p>

<p class="MsoNormal"><span lang="EN-GB"><p>&nbsp;</p></span></p>

<p class="MsoNormal"><span lang="EN-GB">(V1.5.1 about line 2300, V1.5.2 line 2632) If you
follow ec_master_find_slave_const you will see: this function may return NULL
in case slave_position is not valid / used, the next line will cause a
segmentation fault. <p></p></span></p>

<p class="MsoNormal"><span lang="EN-GB"><p>&nbsp;</p></span></p>

<p class="MsoNormal"><span lang="EN-GB">ectr.h tells us, that only the pointers have to be
valid variables. I suggest to add the following lines (V1.5.1):<p></p></span></p>

<p class="MsoNormal"><span lang="EN-GB"><p>&nbsp;</p></span></p>

<p class="MsoNormal"><span lang="EN-GB">&gt;&gt;&nbsp;&nbsp; slave =
ec_master_find_slave_const(master, 0, slave_position);<p></p></span></p>

<p class="MsoNormal"><span lang="EN-GB">&gt;&gt;&nbsp;&nbsp; if(slave==NULL)<p></p></span></p>

<p class="MsoNormal"><span lang="EN-GB">&gt;&gt;&nbsp;&nbsp; {<p></p></span></p>

<p class="MsoNormal"><span lang="EN-GB">&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
up(&amp;master-&gt;master_sem);<p></p></span></p>

<p class="MsoNormal"><span lang="EN-GB">&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return
-666;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // or whatever
errorcode&hellip;<p></p></span></p>

<p class="MsoNormal"><span lang="EN-GB">&gt;&gt;&nbsp;&nbsp; }<p></p></span></p>

<p class="MsoNormal"><span lang="EN-GB">&gt;&gt; <p></p></span></p>

<p class="MsoNormal"><span lang="EN-GB">&gt;&gt;&nbsp;&nbsp; slave_info-&gt;position =
slave-&gt;ring_position;<p></p></span></p>

<p class="MsoNormal"><span lang="EN-GB"><p>&nbsp;</p></span></p>

<p class="MsoNormal"><span lang="EN-GB">Olaf<p></p></span></p>

<p class="MsoNormal"><span><p>&nbsp;</p></span></p>

<p class="MsoNormal"><span><p>&nbsp;</p></span></p>

</div>

</div>
vilian_ch | 13 Mar 08:22 2013

use rtdm interface failed

 Hello,every!
I have used rtdm interface of ethercat master(version 1.5.2) and created an easy example:
The source code is:
#include "ecrt.h"
int main(void)
{
       static ec_master_t *master = NULL;
        static ec_master_state_t ms = {};
        printf("Start requesting master...\n);
       master = ecrt_request_master(0);
      if(!master)
         return -1;
    ecrt_master_state(master,&ms);
     ecrt_release_master(master);
 
    return 0;
}
I compiled this example with lib ethercat_rtdm and run it, but got following error info:
Start requesting master...
Failed to get master state: Inappropriate ioctl for device
and "dmesg" info:
[ 1763.160719] EtherCAT: Requesting master 0...
[ 1763.160730] EtherCAT: Successfully requested master 0.
[ 1763.160736] RTDM: assertion failed at /rtai-3.9/rtai-3.9/addons/rtdm/../rtdm/rtdm_driver.h:574 (CONTEXT_IS_LOCKED(context))
[ 1763.160921] EtherCAT 0: Releasing master...
[ 1763.160927] EtherCAT 0: Released.
 
Anyone has occur such problem,may you give me some suggestions?
Thank you in advance!
 
 
<div>
<div>&nbsp;Hello,every!</div>
<div>I have used rtdm interface of ethercat master(version 1.5.2) and created an easy example:</div>
<div>The source code is:</div>
<div>#include "ecrt.h"</div>
<div>int main(void)</div>
<div>{</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; static ec_master_t *master = NULL;</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; static ec_master_state_t ms = {};</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf("Start requesting master...\n);</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; master = ecrt_request_master(0);</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(!master)</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return -1;</div>
<div>&nbsp;&nbsp;&nbsp; ecrt_master_state(master,&amp;ms);</div>
<div>&nbsp;&nbsp;&nbsp;&nbsp; ecrt_release_master(master);</div>
<div>&nbsp;</div>
<div>&nbsp;&nbsp;&nbsp; return 0;</div>
<div>}</div>
<div>I compiled this example with lib ethercat_rtdm and run it, but got following error info:</div>
<div>Start requesting master...</div>
<div>Failed to get master state: Inappropriate ioctl for device</div>
<div>and "dmesg" info:</div>
<div>[ 1763.160719] EtherCAT: Requesting master 0...<br>[ 1763.160730] EtherCAT: Successfully requested master 0.<br>[ 1763.160736] RTDM: assertion failed at /rtai-3.9/rtai-3.9/addons/rtdm/../rtdm/rtdm_driver.h:574 (CONTEXT_IS_LOCKED(context))<br>[ 1763.160921] EtherCAT 0: Releasing master...<br>[ 1763.160927] EtherCAT 0: Released.</div>
<div>&nbsp;</div>
<div>Anyone has occur such problem,may you give me some suggestions?</div>
<div>Thank you in advance!</div>
<div>&nbsp;</div>
<div>&nbsp;</div>
</div>
Mike O'Connor | 7 Mar 06:20 2013
Picon

Etherlab Master on a Raspberry PI

Hi All

I have a very small program I want to control, which does not need a lot
of performance, I was hoping to use a Raspberry PI (wifi for uplink and
lan for ethercat)

I've compiled everything and actual got very few warnings, but the
modules will not load.

root <at> PITest:/opt/latproc/scripts# modprobe ec_master
main_devices=b8:27:eb:f8:43:f2
ERROR: could not insert 'ec_master': Exec format error
root <at> PITest:/opt/latproc/scripts#

I've check that they are in the correct format by running 'file' on them
and things like depmod do not complain.

Building on the PI is hard because the source and headers are not
currently packaged so can not be installed via an apt command. And the
kernel is 3.2.27 which might also be a problem

I've tried both 1.5.2 and HEAD from the online code.

Any ideas on what I should look at next would be great.

Mike

Mike O'Connor | 6 Mar 09:24 2013
Picon

Etherlab and k-Bus

Hi All

I've been looking at a project which will require the use of a K-Bus
coupler and K-Bus input/outputs, does etherlab master support these
easily ? ie does the command '/opt/etherlab/bin/ethercat cstruct' give a
usable result.

Thanks
Mike
Ralf Ermes | 28 Feb 14:20 2013
Picon

How can I get "Data Type" from structure PDO entry in SII (EEPROM)

Hello everybody,

 

we use IgH EtherCAT-Master in our system to read out the SII-data of the slaves. Based on this data we automatically generate a mapping file to connect the data elements in the PDOs to the software labels in an existing Common Data Base. In order to do that we use the structure ec_ioctl_slave_sync_pdo_entry_t defined in ioctl.h, which provides us with the elements index, subindex, bit_length and name.

 

What we are missing there is the PDO Entry field "Data Type" (see Table 25 in ETG.1000.6 S (R) V1.0.2).

 

We discovered that there is a routine ec_slave_fetch_sii_pdos in the file slave.c which reads out the SII PDO information:

 

            ec_pdo_entry_init(entry);

            entry->index = EC_READ_U16(data);

            entry->subindex = EC_READ_U8(data + 2);

            ret = ec_pdo_entry_set_name(entry,

                    ec_slave_sii_string(slave, EC_READ_U8(data + 3)));

            if (ret) {

                ec_pdo_entry_clear(entry);

                kfree(entry);

                return ret;

            }

            entry->bit_length = EC_READ_U8(data + 5);

 

Now we could add an element "data_type" to the structure ec_pdo_entry_t (in pdo_entry.h) and add a line to the code above:

 

            entry->data_type = EC_READ_U8(data + 4);

           

This should give us the index to the CoE Object Dictionary and for index values 0x0..0x1F a unique data type which we could then use in our mapper to declare the right data type for a PDO entry element.

 

So now my question after this long introduction: how can we access this modified structure in a similar way as we access the entry information provided by ioctl.c? Or is there a way to get our missing data type directly in ioctl.c?

 

Thanks in advance for your help!

 

Ralf Ermes            

 

Dipl.-Ing. Ralf Ermes

Systems Engineer

Software Engineering

CAE Elektronik GmbH

Military Business Unit

52220 Stolberg, Germany

--

Phone: +49 2402 106 430

Fax: +49 2402 106 8430

E-Mail: ralf.ermes-NAVrfBMxK9w@public.gmane.org

General Manager: Ian Bell

Trade Register No.: HRB 11615 AG Aachen

 

> CONFIDENTIALITY NOTICE - This communication is for the exclusive use of the above named recipient(s). It may contain information that is privileged, proprietary, confidential and/or exempt from disclosure by law. If you are not the intended recipient or have received it in error, immediately notify the sender and delete it without copying it, disclosing it to anyone or making any use of it.

 

>VERTRAULICHKEITSVERMERK - Diese Nachricht ist ausschließlich für o.g. Empfänger bestimmt. Sie enthält möglicherweise Informationen, die rechtlich geschützt, vertraulich sind und/oder deren Veröffentlichung gesetzlich untersagt ist. Sollten Sie nicht der vorgesehene Empfänger sein oder die Nachricht irrtümlich erhalten haben, benachrichtigen Sie bitte unverzüglich den Absender und löschen Sie die Nachricht, ohne sie kopiert, weitergegeben oder anderweitig genutzt zu haben.

 

-- This email was Anti Virus checked by CAE
<div>
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US">Hello everybody,<p></p></span></p>
<p class="MsoNormal"><span lang="EN-US"><p>&nbsp;</p></span></p>
<p class="MsoNormal"><span lang="EN-US">we use IgH EtherCAT-Master in our system to read out the SII-data of the slaves. Based on this data we automatically generate a mapping file to connect the data elements in the PDOs to the software labels in an existing Common Data Base. In order to do that we use the structure ec_ioctl_slave_sync_pdo_entry_t defined in ioctl.h, which provides us with the elements index, subindex, bit_length and name.<p></p></span></p>
<p class="MsoNormal"><span lang="EN-US"><p>&nbsp;</p></span></p>
<p class="MsoNormal"><span lang="EN-US">What we are missing there is the PDO Entry field "Data Type" (see Table 25 in ETG.1000.6 S (R) V1.0.2).<p></p></span></p>
<p class="MsoNormal"><span lang="EN-US"><p>&nbsp;</p></span></p>
<p class="MsoNormal"><span lang="EN-US">We discovered that there is a routine ec_slave_fetch_sii_pdos in the file slave.c which reads out the SII PDO information:<p></p></span></p>
<p class="MsoNormal"><span lang="EN-US"><p>&nbsp;</p></span></p>
<p class="MsoNormal"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ec_pdo_entry_init(entry);<p></p></span></p>
<p class="MsoNormal"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; entry-&gt;index = EC_READ_U16(data);<p></p></span></p>
<p class="MsoNormal"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; entry-&gt;subindex = EC_READ_U8(data + 2);<p></p></span></p>
<p class="MsoNormal"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;ret = ec_pdo_entry_set_name(entry,<p></p></span></p>
<p class="MsoNormal"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ec_slave_sii_string(slave, EC_READ_U8(data + 3)));<p></p></span></p>
<p class="MsoNormal"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ret) {<p></p></span></p>
<p class="MsoNormal"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ec_pdo_entry_clear(entry);<p></p></span></p>
<p class="MsoNormal"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; kfree(entry);<p></p></span></p>
<p class="MsoNormal"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ret;<p></p></span></p>
<p class="MsoNormal"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<p></p></span></p>
<p class="MsoNormal"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; entry-&gt;bit_length = EC_READ_U8(data + 5);<p></p></span></p>
<p class="MsoNormal"><span lang="EN-US"><p>&nbsp;</p></span></p>
<p class="MsoNormal"><span lang="EN-US">Now we could add an element "data_type" to the structure ec_pdo_entry_t (in pdo_entry.h) and add a line to the code above:<p></p></span></p>
<p class="MsoNormal"><span lang="EN-US"><p>&nbsp;</p></span></p>
<p class="MsoNormal"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; entry-&gt;data_type = EC_READ_U8(data + 4);<p></p></span></p>
<p class="MsoNormal"><span lang="EN-US">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <p></p></span></p>
<p class="MsoNormal"><span lang="EN-US">This should give us the index to the CoE Object Dictionary and for index values 0x0..0x1F a unique data type which we could then use in our mapper to declare the right data type for a PDO entry element.<p></p></span></p>
<p class="MsoNormal"><span lang="EN-US"><p>&nbsp;</p></span></p>
<p class="MsoNormal"><span lang="EN-US">So now my question after this long introduction: how can we access this modified structure in a similar way as we access the entry information provided by ioctl.c? Or is there a way to get our missing data type directly in ioctl.c?<p></p></span></p>
<p class="MsoNormal"><span lang="EN-US"><p>&nbsp;</p></span></p>
<p class="MsoNormal"><span lang="EN-US">Thanks in advance for your help!<p></p></span></p>
<p class="MsoNormal"><span lang="EN-US"><p>&nbsp;</p></span></p>
<p class="MsoNormal"><span lang="EN-US">Ralf Ermes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <p></p></span></p>
<p class="MsoNormal"><span lang="EN-US"><p>&nbsp;</p></span></p>
<p class="MsoNormal"><span lang="EN-US">Dipl.-Ing. Ralf Ermes<p></p></span></p>
<p class="MsoNormal"><span lang="EN-US">Systems Engineer<p></p></span></p>
<p class="MsoNormal"><span lang="EN-US">Software Engineering<p></p></span></p>
<p class="MsoNormal"><span lang="EN-US">CAE Elektronik GmbH<p></p></span></p>
<p class="MsoNormal"><span lang="EN-US">Military Business Unit<p></p></span></p>
<p class="MsoNormal"><span lang="EN-US">52220 Stolberg, Germany<p></p></span></p>
<p class="MsoNormal"><span lang="EN-US">-- <p></p></span></p>
<p class="MsoNormal"><span lang="EN-US">Phone: +49 2402 106 430<p></p></span></p>
<p class="MsoNormal"><span lang="EN-US">Fax: +49 2402 106 8430<p></p></span></p>
<p class="MsoNormal"><span lang="EN-US">E-Mail: <a href="mailto:ralf.ermes@..."><span>ralf.ermes@...</span></a><p></p></span></p>
<p class="MsoNormal"><span lang="EN-US">General Manager: Ian Bell<p></p></span></p>
<p class="MsoNormal"><span lang="EN-US">Trade Register No.: HRB 11615 AG Aachen<p></p></span></p>
<p class="MsoNormal"><span lang="EN-US"><p>&nbsp;</p></span></p>
<p class="MsoNormal"><span lang="EN-US">&gt; CONFIDENTIALITY NOTICE - This communication is for the exclusive use of the above named recipient(s). It may contain information that is privileged, proprietary, confidential and/or exempt from disclosure by law. If you are not the intended recipient or have received it in error, immediately notify the sender and delete it without copying it, disclosing it to anyone or making any use of it.<p></p></span></p>
<p class="MsoNormal"><span lang="EN-US"><p>&nbsp;</p></span></p>
<p class="MsoNormal"><span>&gt;VERTRAULICHKEITSVERMERK - Diese Nachricht ist ausschlie&szlig;lich f&uuml;r o.g. Empf&auml;nger bestimmt. Sie enth&auml;lt m&ouml;glicherweise Informationen, die rechtlich gesch&uuml;tzt, vertraulich sind und/oder deren Ver&ouml;ffentlichung gesetzlich untersagt ist. Sollten Sie nicht der vorgesehene Empf&auml;nger sein oder die Nachricht irrt&uuml;mlich erhalten haben, benachrichtigen Sie bitte unverz&uuml;glich den Absender und l&ouml;schen Sie die Nachricht, ohne sie kopiert, weitergegeben oder anderweitig genutzt zu haben.<p></p></span></p>
<p class="MsoNormal"><p>&nbsp;</p></p>
</div>
--

-- 
This email was Anti Virus checked by CAE</div>
Pierre Letier | 28 Feb 13:35 2013

Estimation of master Tx rate

Hello,

Can somebody explain me how I can estimate the Master Tx Rate based on 
the list of exchanged PDO's with the slaves (an all other related 
things). I tried to compute it based on the structure of an Ethernet 
frame but I never found the good value. I don't found a consistent rule 
that fit different examples. For instance, I have two programs with the 
first exchanging 26 Bytes of PDOS and the second 40 Bytes. Both are 
running at 1kHz (communication rate with the slave). With the first I 
have a Tx rate of 60.5 kByte/s and for the second 69.8 kBytes. Thus a 
difference around 9.3 kBytes/s although I have, in practice, 14 kBytes/s 
more to exchange (14 x 1000). I though first to the 1024 conversion for 
the Byte, but the difference is bigger.

As anybody more information about that ?

Thank you

Pierre Letier

--

-- 
Pierre Letier
Robotics Engineer

25 Years in Space!
1987 - 2012

Space Applications Services NV/SA
Leuvensesteenweg 325, 1932 Zaventem, Belgium
Phone: +32 (0)2-416.05.04
Fax: +32 (0)2-721.54.44
www.spaceapplications.com


Gmane