[etherlab-users] Accessing the EtherCAT master from 2 tasks

Asier Tamayo asier.tamayo at onaedm.com
Fri Nov 15 13:49:31 CET 2013


Hello all,

Jürgen, Richard, thank you for your answers.

I think the different threads approach is very interesting. However, the tasks are completely independent, and this solution would create a mess in my code: I want to keep what is different in different programs (even developed by different programmers).

> Each board, and I presume each one is a master,
>
Maybe I haven't explained it correctly. My main board (running the EtherCAT master) has only one Ethernet connector, which connects to a Bechoff EK1100 device, which in turn is connected to other Beckhoff devices. I can only run an EtherCAT master. Am I correct?

So, I think I may finally create a RTDM driver that both tasks can talk to. I will anyway take into account many of your suggestions regarding the locks...

Best regards,


Asier Tamayo Arbide
Dpto I+D
R&D Department
 
ONA Electroerosión, s.a.
 
t      (34) 946 200 800
m    (34) 600 910 522
f      (34) 946 818 548
e      asier.tamayo at onaedm.com
w    www.onaedm.com
 
 
 
 

> -----Mensaje original-----
> De: etherlab-users-bounces at etherlab.org [mailto:etherlab-users-
> bounces at etherlab.org] En nombre de Richard Hacker
> Enviado el: viernes, 15 de noviembre de 2013 11:10
> Para: etherlab-users at etherlab.org
> Asunto: Re: [etherlab-users] Accessing the EtherCAT master from 2 tasks
> 
> Each board, and I presume each one is a master, can be accessed by a
> separate process. They are identified by ecrt_request_master(0) and
> ecrt_request_master(1). The masters run autonomously so you will not
> have adverse effects using 2 masters in 2 processes, you don't even need
> locking.
> 
> Using domains having different sample times from the same master is
> another case. Then you will need to do threading as well as locking when
> accessing the domain queue, i.e. when using ecrt_domain_process() and
> ecrt_domain_queue().
> 
> Am 11/14/2013 02:36 PM, schrieb Jürgen Kunz:
> > Hello Aiser,
> >
> > you can do this in one process with different threads. One of your
> > thread, maybe your main thread, calls ecrt_request_master(). You
> > register each EtherCAT board in a separate domain. Then you are able to
> > access the different boards individually through the different domains.
> > The only thing you have to consider is that every time you call the
> > master with one thread, you need to lock it with a global mutex, so that
> > it cannot be accessed the same time by different threads.
> >
> > Best regards,
> > Jürgen
> >
> > Am 14.11.2013 13:37, schrieb Asier Tamayo:
> >>
> >> Hello all,
> >>
> >> I'm a new user to the EtherCAT Master, so I beg your pardon if this
> >> question has already been answered or it is a RT*M type question. I'm
> >> using the master with Xenomai.
> >>
> >> I want to access EtherCAT from two different tasks, each one accessing
> >> to different EtherCAT boards. Is there any way I can do it? The
> >> ecrt_request_master() function reserves the EtherCAT master for
> >> exclusive use, and therefore I can't call it again from the second
> >> task. Do I have to create a Xenomai RTDM driver that would reserve the
> >> master for itself and then let the tasks execute ioctl's to that
> >> driver? Is it possible?
> >>
> >> Best regards,
> >>
> >> Asier
> >>
> >>
> >>
> >> _______________________________________________
> >> etherlab-users mailing list
> >> etherlab-users at etherlab.org
> >> http://lists.etherlab.org/mailman/listinfo/etherlab-users
> >
> > --
> > Dipl.-Inform. Jürgen Kunz
> >
> > Technische Universität Darmstadt <http://www.tu-darmstadt.de>
> > FG Simulation, Systemoptimierung und Robotik
> > <http://www.sim.tu-darmstadt.de>
> > Hochschulstr. 10
> > 64289 Darmstadt
> >
> > Tel.: ++49 (0) 6151-16-70383
> > Fax: ++49 (0) 6151-16-6648
> > E-Mail: kunz(at)sim.tu-darmstadt.de
> > Homepage: http://www.sim.tu-darmstadt.de
> >
> >
> > _______________________________________________
> > etherlab-users mailing list
> > etherlab-users at etherlab.org
> > http://lists.etherlab.org/mailman/listinfo/etherlab-users
> >
> 
> Mit freundlichem Gruß
> 
> Richard Hacker
> 
> --
> ------------------------------------------------------------------------
> 
> Richard Hacker M.Sc.
> richard.hacker at igh-essen.com
> Tel.: +49 201 / 36014-16
> 
> Ingenieurgemeinschaft IgH
> Gesellschaft für Ingenieurleistungen mbH
> Heinz-Bäcker-Str. 34
> D-45356 Essen
> 
> Amtsgericht Essen HRB 11500
> USt-Id.-Nr.: DE 174 626 722
> Geschäftsführung:
> - Dr.-Ing. T. Finke,
> - Dr.-Ing. W. Hagemeister
> Tel.: +49 201 / 360-14-0
> http://www.igh-essen.com
> 
> ------------------------------------------------------------------------
> _______________________________________________
> etherlab-users mailing list
> etherlab-users at etherlab.org
> http://lists.etherlab.org/mailman/listinfo/etherlab-users



More information about the Etherlab-users mailing list