Ethercat HAL driver
- 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.
Sascha
Please Log in or Create an account to join the conversation.
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.
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.
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.
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
Please Log in or Create an account to join the conversation.
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
You will need to make a HAL file to connect the position commands from LinuxCNC to the EtherCAT HAL driver.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?
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.
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.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?
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.
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.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?
Please Log in or Create an account to join the conversation.
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.
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
Please Log in or Create an account to join the conversation.
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.
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.