[Etherlab-users] [Unofficial patchset] Unable to use realtime Master#1 in Xenomai 3

Zanne Philippe zanne.philippe at unistra.fr
Fri Oct 29 18:38:36 CEST 2021


Hello,

I think I found the solution, the rtdm interface for xenomai 3 allows to manage only one device, it is necessary to increase the value of « device_count »  of the « rtdm_driver »  structure in the rtdm_xenomai_v3.c file (line 282). 
Philippe


> Le 28 oct. 2021 à 15:58, Zanne Philippe <zanne.philippe at unistra.fr> a écrit :
> 
> Dear all,
> 
> I have the same problem. 
> 
> My system specs 
> Linux Distribution  : ubuntu 20.04, 
> Kernel version 4.19, 
> Xenomai 3.1, 
> Master version 1.5.2 + Gavin Lambert patch set
> Ethernet Driver : ec_e1000e
> 
> The problem is reproducible using the xenomai example of etherlab master : When I run the program on master#0 everything works as expected, if I run the program on master#1 it is not able to access the device,  the function ecrt_request_master(1) returns the error « Failed to open /dev/rtdm/EtherCAT1: No such device or address ».
> After starting Ethercat service the output of the dmesg command is as follows:
> 
> [  460.502346] EtherCAT: Master driver 1.5.2 365eea9297ef+
> [  460.502441] EtherCAT 0: Registered RTDM device EtherCAT0.
> [  460.502491] EtherCAT 1: Registered RTDM device EtherCAT1.
> [  460.502491] EtherCAT: 2 masters waiting for devices.
> [  460.511205] e1000e 0000:07:00.0 enp7s0: removed PHC
> [  460.577656] e1000e: enp7s0 NIC Link is Down
> [  460.595500] e1000e 0000:00:19.0 enp0s25: removed PHC
> [  460.682249] e1000e: enp0s25 NIC Link is Down
> [  460.735962] ec_e1000e: EtherCAT-capable Intel(R) PRO/1000 Network Driver - 3.2.6-k-EtherCAT
> [  460.735963] ec_e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
> [  460.736267] ec_e1000e 0000:00:19.0: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode
> [  460.816493] ec_e1000e 0000:00:19.0 0000:00:19.0 (uninitialized): registered PHC clock
> [  460.892157] EtherCAT: Accepting 90:1B:0E:A6:10:79 as main device for master 0.
> [  460.989318] EtherCAT 0: Starting EtherCAT-IDLE thread.
> [  460.989456] ec_e1000e 0000:00:19.0 ecm0 (uninitialized): (PCI Express:2.5GT/s:Width x1) 90:1b:0e:a6:10:79
> [  460.989457] ec_e1000e 0000:00:19.0 ecm0 (uninitialized): Intel(R) PRO/1000 Network Connection
> [  460.989498] ec_e1000e 0000:00:19.0 ecm0 (uninitialized): MAC: 11, PHY: 12, PBA No: FFFFFF-0FF
> [  460.989723] ec_e1000e 0000:07:00.0: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode
> [  461.032767] ec_e1000e 0000:07:00.0 0000:07:00.0 (uninitialized): registered PHC clock
> [  461.080570] EtherCAT: Accepting 68:05:CA:3C:26:A8 as main device for master 1.
> [  461.145721] EtherCAT 1: Starting EtherCAT-IDLE thread.
> [  461.145778] ec_e1000e 0000:07:00.0 ecm1 (uninitialized): (PCI Express:2.5GT/s:Width x1) 68:05:ca:3c:26:a8
> [  461.145779] ec_e1000e 0000:07:00.0 ecm1 (uninitialized): Intel(R) PRO/1000 Network Connection
> [  461.145795] ec_e1000e 0000:07:00.0 ecm1 (uninitialized): MAC: 3, PHY: 8, PBA No: E46981-008
> [  463.147267] ec_e1000e: ecm1 NIC Link is Up 100 Mbps Full Duplex, Flow Control: None
> [  463.147384] ec_e1000e 0000:07:00.0 ecm1 (uninitialized): 10/100 speed: disabling TSO
> [  463.147388] EtherCAT 1: Link state of ecm1 changed to UP.
> [  463.148591] EtherCAT 1: 3 slave(s) responding on main device.
> [  463.148592] EtherCAT 1: Slave states on main device: PREOP.
> [  463.148815] EtherCAT 1: Scanning bus.
> [  463.359813] EtherCAT 1: Bus scanning completed in 211 ms.
> [  463.359815] EtherCAT 1: Using slave main-0 as DC reference clock.
> [  463.364853] EtherCAT 1: Slave states on main device: INIT, PREOP.
> [  463.368902] EtherCAT 1: Slave states on main device: INIT.
> [  463.372933] EtherCAT 1: Slave states on main device: PREOP.
> 
> and the output of the command "ethercat -m 1 slaves » is :
> sudo ethercat -m 1 slaves
> 0  0:0  PREOP  +  EK1100 EtherCAT-Koppler (2A E-Bus)
> 1  0:1  PREOP  +  EL2008 8K. Dig. Ausgang 24V, 0.5A
> 2  0:2  PREOP  +  EL3102 2K. Ana. Eingang +/-10V, Diff.
> 
> SDO request on master 1 seems to work, for example the command « ethercat -m 1 -p 2 upload -t int16 0x3102 0X2 » returns consistent values. 
> I tried changing the order of the masters, changing the ethernet board (ec_igb), the problem is still the same.
> Do you have any test ideas to determine where this error comes from?
> Thank you
> Philippe
> 
>   
>> Le 26 août 2021 à 07:49, HoThanhtam <thanhtam.ho at neuromeka.com <mailto:thanhtam.ho at neuromeka.com>> a écrit :
>> 
>> Hello 
>> I am using unofficial patchset to be able to use the EtherCAT master code in Xenomai 3. I enabled 2 masters on 2 NIC ports. I built an application using libethercat_rtdm, this application work fine if I conrtol slave via Master#0. However when I switch to Master#1 ( ecrt_request_master(1) ) then I got the error "Failed to open /dev/rtdm/EtherCAT1: No such device or address" althought both /dev/rtdm/EtherCAT0 and /dev/rtdm/EtherCAT1 exist. 
>> By the way, this application worked well on Xenomai 2 system, on both Master#0 and Master#1.
>> Any advise?
>> Thank you.
>> 
>> -- 
>> Etherlab-users mailing list
>> Etherlab-users at etherlab.org <mailto:Etherlab-users at etherlab.org>
>> https://lists.etherlab.org/mailman/listinfo/etherlab-users
> 
> -- 
> Etherlab-users mailing list
> Etherlab-users at etherlab.org
> https://lists.etherlab.org/mailman/listinfo/etherlab-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.etherlab.org/pipermail/etherlab-users/attachments/20211029/1322a362/attachment.htm>


More information about the Etherlab-users mailing list