Ethercat HAL driver

More
28 Oct 2013 19:49 #40363 by sascha
Replied by sascha on topic Ethercat HAL driver
I still see no real problem here (please correct me, if I am wrong):
  • GPL prohibits the linking of GPL code against non GPL code.
  • The IgH master is GPL code, and it's name is not EtherCat master but EtherLab master
  • It could be called EtherCat compatible as long as it meets the EtherCat specs
  • If it's modified it might no longer be EtherCat compatible and in this case Beckhoff prohibits the use of the Term EtherCat, but it is still a EtherLab master (a modified one)
  • Btw. I think it is a similar situation with USB2/3, SATA and so on. All these transports are protected by a license that seems to be not compatible to GPL.
Regards
Sascha

Please Log in or Create an account to join the conversation.

More
28 Oct 2013 20:00 #40364 by andypugh
Replied by andypugh on topic Ethercat HAL driver

The IgH master is GPL code, and it's name is not EtherCat master but EtherLab maste


Now _that_ is an interesting twist.
If EtherLab does not claim to be EtherCAT compatible, but just happens to work with it, does that invoke the EtherCAT restrictions? I can see arguments for it not doing.

This would be a situation much like Wine, which just happens to emulate the Windows API, without being in any way governed by Windows licensing.

Please Log in or Create an account to join the conversation.

More
28 Oct 2013 20:50 #40365 by Coyote
Replied by Coyote on topic Ethercat HAL driver
Sorry to disapoint, but it has the name of IgH EtherCAT Master:

IgH EtherCAT Master for Linux

All the source code available through IgH is licensed under the GPLv2 license.

Notice

The license above concerns the source code only. Using the EtherCAT technology and brand is only permitted in compliance with the industrial property and similar rights of Beckhoff Automation GmbH.


Well, at the end it seems that at least building the CNC for own use does not harm anybody, that's nice because there are lot of surpuls Beckhoff terminals on ebay.

Please Log in or Create an account to join the conversation.

More
28 Oct 2013 21:04 #40366 by roschi
Replied by roschi on topic Ethercat HAL driver
Hello,

Just what is in my mind:
if you do some programming and design a code which could communicate with EtherCAT-Slaves you can name it whatever you want. You can distribute this code under GPL. No Problem so far.
But there is a Worldwide industrial property rights (patent) from Beckhoff which gives the right to them to forbid you to do that (means you can do it as long as there is no lawyer rings your door bell). And there is no doubt about the protected claims in the patetent (WO03054644) because you communicate with propritary EtherCAT-Slaves.

Next point is that the owner of this industrial property rights (e.g. WO03054644) can assign licenses to persons or companies so that they are allowed to use/sell/distribute that. This license in special for a Master-Stack implementation is free and everyone can get this license.

And now we are on the point that where the conflict for distributing a software project under GPL. GP-License does not allow a "connection" to such industrial licenses.

In my opinion the EtherCAT-Master will not be included in LinuxCNC but perhaps can be distributed as standalone kernel module so that you have something like a 'tainted' kernel if you use this code at your installation of LinuxCNC.

Best Regards Andreas

Please Log in or Create an account to join the conversation.

More
28 Oct 2013 21:16 #40367 by Oscmol
Replied by Oscmol on topic Ethercat HAL driver

From my point of view, the real-time communication is better to be consistent. I wouldn't mix on the same network ethercat, modbus, ethernet... I would use a second NIC instead. There are few real time protocols that use ethernet as physical layer: Ethercat, Profinet, Sercos iii,..., others are non-real time and I don't see the need of implementing them in RT part.

Next, with use of Ethercat drive, you will always have to use an engineering tool provided by servo manufacturer. Each servo drive is one autonomous device, with its paramaters, you may also want to tune, adjust servo loops, etc...the connection to external world is communication (Ethercat). The PDO is choosen to suit the application needs, can be pre-prepared standard telegram or user made PDO list. Once the PDO list is choosen we need to link PC and drvie together, Bekhofff uses its own configurator while we want to have our own HAL configurator.
Now, if we stop and look arround we will notice that all Ethercat drives shall support Beckhoff TwinCAT (same is with Profinet, all drives shall support Siemens software).
Currently the proposed way is to use TwinCAT configurator to configure PDO list, so that it matches one configured in the drive and then export it in XML file and rearange it to match linuxcnc ethercat generic HAL driver, however if you use terminal blocks of Beckhoff there are already made HAL device drivers.

The only license problem as I see is that you need to reverse-engineer XML output file from TwinCAT configurator, and of course you need a licensed TwinCAT software. As I don't have the knowledge in laws, I don't understand all paragraphs in licenses declarations. With my logical thinking my modest conclusion is that we are not allowed to make a slave EtherCAT device, master use is possible as IgH sells its own kits for professionals and there is no mention about some fee to 3rd party.

As I work with Lenze servos, I tried to configure one drive with Lenze L-Force Engineer software. A nice feature is pre-prepared configuration with CIA402 drive profile telegram, I did further research over internet and have found that also Omron, Moog, Mitsubishi, Stoeber and many others support the configuration of standarized telegram named CiA402 drive profile. May this be a good start point to embed in linuxcnc, a device driver compatible for many servo drives.

Regards, Marko.


Hi Marko

I work at Omron and i am working with our Ethercat systems all days long.
But i am not really shure how this is working here now, so maybe alot of stupid questions.

Step 1: Install linux cnc
Step 2: Install the EtherCat HAL driver and were will i find this and is this for free or something i need to buy?
Step 3: I will do all the tuning of my drives in another software so that they will work correctly.
Step 4: PDO mapping, this part i dont really understand how to do. Should i make this in anothoer software and the import as an XMl file?
So in tbhe end i can not make any servo settings from the Linux software?

What will i need to do inside Linux cnc to get the HAl driver to work so my drives will follow the position tha linux is sending out?
Will this system still be a closed loop so that the software is reading the postion from the drives?
When we use our drives in projects with our controller the position loop is always in the drive and the controller is just sending the position to follow, is the same princip here also?

So if i have an drive to play with and a computer i dont need to buy anything to get this to work or there is some license cost in some way?
because i don't really understand all the talking about GPL license and so on.

best Regards
Oscar
The following user(s) said Thank You: Nico2017

Please Log in or Create an account to join the conversation.

More
28 Oct 2013 21:41 #40368 by andypugh
Replied by andypugh on topic Ethercat HAL driver

Step 1: Install linux cnc
Step 2: Install the EtherCat HAL driver and were will i find this and is this for free or something i need to buy?


Step 1 is right, and this is most easily done from the LiveCD.
You then need the EtherCAT master from IgH: www.etherlab.org/en/ethercat/index.php
And then to link the two together, Sasha's HAL driver. This is available as a patch file, so you will need to re-compile LinuxCNC.
wiki.linuxcnc.org/cgi-bin/wiki.pl?EtherCatDriver

What will i need to do inside Linux cnc to get the HAl driver to work so my drives will follow the position tha linux is sending out?

You will need to make a HAL file to connect the position commands from LinuxCNC to the EtherCAT HAL driver.
I haven't seen any example HAL files, so I am not 100% sure what HAL pins the driver creates. Hopefully someone else can help there.

Will this system still be a closed loop so that the software is reading the postion from the drives?
When we use our drives in projects with our controller the position loop is always in the drive and the controller is just sending the position to follow, is the same princip here also?

LinuxCNC tends to assume that it has control of the servo loop, but the stepper-motor configs show that this does not have to be the case.
What LinuxCNC does is send out a set of axis positions every 1mS. The axis acceleration and velocity limits are implicit in these position updates.

So if i have an drive to play with and a computer i dont need to buy anything to get this to work or there is some license cost in some way?

No, all the Licenses being discussed are free (zero-cost). LinuxCNC is also Free, and the other parts all claim to be too, but their status is less clear due to the Beckhoff claims.

Please Log in or Create an account to join the conversation.

More
28 Oct 2013 21:45 #40369 by Coyote
Replied by Coyote on topic Ethercat HAL driver
What I wrote was my reasumption from my point of view of work that it's not mine, please read the entire post from begining. You will find ethercat master on Sacha Ittner's page:

github.com/sittner/ec-debianize

Read the tutorial and see the video from Andreas very carefuly.

I am posing the same questions, like you, how to integrate servo into linuxcnc, except I didn't bought a servo yet. You can view tutorials and post your solution, it seems not so difficult if you have TwinCAT and you're able to export XML configuration file.
Now, which data are being sent over ethercat in your case, there must be a list of that, an ethercat master configuration.

Please Log in or Create an account to join the conversation.

More
28 Oct 2013 22:11 #40370 by roschi
Replied by roschi on topic Ethercat HAL driver
Hi Oscar,

I work at Omron and i am working with our Ethercat systems all days long.
But i am not really shure how this is working here now, so maybe alot of stupid questions.


I've written the tutorial to get the drives from Bosch Rexroth to work with LinuxCNC. (Only commanded values for speed and position go over EtherCAT,control loops are done on the drive as usual)

My advise is before you start with LinuxCNC / HAL download the Soft-Master for EtherCAT from etherlab.org, build it, install it, start the soft master, disconnect your drive (I guess Accurax G5?) from a working machine which is in idle mode, connect it to the ethernet port of your pc, type in command line 'ethercat slaves' and whatch the result.

If there is some output you can test for ethercat slaves -v, ethercat pdos or ethercat states op,...and so on.

If all seems nice then go to LinuxCNC, HAL

Regards Andreas
The following user(s) said Thank You: Nico2017

Please Log in or Create an account to join the conversation.

More
29 Oct 2013 19:15 #40385 by Oscmol
Replied by Oscmol on topic Ethercat HAL driver

Hi Oscar,

I work at Omron and i am working with our Ethercat systems all days long.
But i am not really shure how this is working here now, so maybe alot of stupid questions.


I've written the tutorial to get the drives from Bosch Rexroth to work with LinuxCNC. (Only commanded values for speed and position go over EtherCAT,control loops are done on the drive as usual)

My advise is before you start with LinuxCNC / HAL download the Soft-Master for EtherCAT from etherlab.org, build it, install it, start the soft master, disconnect your drive (I guess Accurax G5?) from a working machine which is in idle mode, connect it to the ethernet port of your pc, type in command line 'ethercat slaves' and whatch the result.

If there is some output you can test for ethercat slaves -v, ethercat pdos or ethercat states op,...and so on.

If all seems nice then go to LinuxCNC, HAL

Regards Andreas


Hi Andreas

Were can i find your tutorial?
Are you using your system on an mill or some other cnc machine?
Is your system using the distributed clocks so all drives are in sync?

I will try your proposal about unplug a drive that runs and see what status i can read from it.
I have alot of G5 drives here in my office and also some Yaskawa Sigma 5 with ethercat option boards on.

Do you have any feeling if the precision on the machine will get any better with this kind of system instead of using a MESA card and pulse trains.

Best Regards
Oscar

Please Log in or Create an account to join the conversation.

More
29 Oct 2013 19:49 #40386 by andypugh
Replied by andypugh on topic Ethercat HAL driver

Do you have any feeling if the precision on the machine will get any better with this kind of system instead of using a MESA card and pulse trains.


Both systems should work equally well. The precision is likely to be unaffected by the information transport.

Analogue voltage control still has quite a lot going for it. (and I quite like analogue feedback too, ie Resolvers)

Please Log in or Create an account to join the conversation.

Time to create page: 0.224 seconds
Powered by Kunena Forum