[etherlab-users] EtherLAB packages ?, Re: alternatives to TestManager

Dr.-Ing. Wilhelm Hagemeister hm at igh-essen.com
Mon Feb 27 22:30:05 CET 2012


Hello Yan,

> 
> I am not sure now whether I properly understand how all EtherLAB
> packages work together...

... no I think it is not a stupid question. For us working with this
stuff every day of course everything is clear and we often forget that
it might not be obvious to others how everything works together. So with
your allowance I post this reply also to etherlab-users...


> We currently play with EtherCAT master, not using whole EtherLAB.  Do I
> understand properly, that the Testmaster and PdCom are clients for data
> provided by EtherLAB package ? If so though, what PdServ is for ?

Yes that is more or less right.
The "EtherCAT"-Master is the library to talk with EtherCAT-Slaves.
"EtherLAB" combines code generation by Simulink with hardware access to
EtherCAT slaves and the MSR-Library for network access to parameters and
channels(or signals) of the Simulink model.

See also the picture at: http://www.etherlab.org/en/what.php

"Testmanger" and "DLS" are (ready) clients using the MSR-Protocol for
connecting to the running EtherLab process.

"PdCom" is a protocol handler for writing your own C or C++ application
on the client side. It can handle various communication protocols but to
talk to EtherLAB-processes only the "MSR"-protocol is required (and
integrated).

If we write application specific clients we integrate "PdCom" and use
"Qt" as the application framework. "QtPdwidgets" know already about
"PdCom" so this library helps to write quick and easy nice clients in
C++ with Qt.

> 
> I am asking because I wonder whether there would be any possibility to
> use Testmanager or PdCom or even DLS without necessity to use whole
> EtherLAB.

Yes it is...

"PdServ" is a protocol handler on the server (realtime process) side. It
enables your realtime program - written in C or C++ - to register your
variables either as parameters or channels(signals) and use
"Testmanager",  "DLS" or "PdCom" to talk to your realtime program. It
also offers a task registration interface; see the README.

"PdServ" must be used in UserSpace context e.g. with a preempt kernel to
ensure realtime behaviour. It is also the communication library for the
"new" EtherLAB which runs in UserSpace and does NOT require RTAI any
more. This is currently under development and will be released soon.


So if you don't want to use Simulink for code generation but have a C
program you can use PdServ to talk with "Testmanger" or so to the process.

Last thing: if you have a process as kernel model under RTAI in C and
you want to use the "MSR"-protocol interface there is a implementation
in EtherLAB available. Look at the files in the directory "capi".

I hope this was not to confusing

don't hesitate to ask if there are more questions...

regards

Wilhelm.





More information about the Etherlab-users mailing list