- Posts: 1
- Thank you received: 0
Ethercat HAL driver
- wen
- Offline
- New Member
-
Less
More
13 years 5 days ago - 13 years 4 days ago #40340
by wen
Replied by wen on topic Ethercat HAL driver
Hi sascha,
According to EtherCAT? realtime HAL driver , there should have a ethercat driver in <source-path-of-LinuxCNC>/src/hal/drivers/ethercat/master/debian. However, the directory was removed on Aug-25-2013 from git log. Can I know how do I patch the driver into IgH Ethercat master? Or does that mean your code not need to patch IgH ethercat master now?
Thanks you in advance,
Wen
[Update] The package seems moved to here . I will study them and the tutorial in previous post. Thanks again.
According to EtherCAT? realtime HAL driver , there should have a ethercat driver in <source-path-of-LinuxCNC>/src/hal/drivers/ethercat/master/debian. However, the directory was removed on Aug-25-2013 from git log. Can I know how do I patch the driver into IgH Ethercat master? Or does that mean your code not need to patch IgH ethercat master now?
Thanks you in advance,
Wen
[Update] The package seems moved to here . I will study them and the tutorial in previous post. Thanks again.
Last edit: 13 years 4 days ago by wen. Reason: Update information
- Coyote
- Offline
- New Member
-
Less
More
- Posts: 15
- Thank you received: 0
13 years 4 days ago - 13 years 4 days ago #40349
by Coyote
Replied by Coyote 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.
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.
Last edit: 13 years 4 days ago by Coyote.
- Coyote
- Offline
- New Member
-
Less
More
- Posts: 15
- Thank you received: 0
13 years 4 days ago #40358
by Coyote
Replied by Coyote on topic Ethercat HAL driver
From:
www.ethercat.org/en/faq.html#3370
3.3 How about licenses?
The license for implementing an EtherCAT master is free of charge. For slave devices EtherCAT has adopted the CAN license model (CAN is an excellent example for a standardized open technology that is protected by patents): The small license fee is "embedded" in the EtherCAT Slave Controller (ESC) chip, so that device manufacturers, end users, system integrators, tool manufacturers etc. do not have to pay a license.
3.4 How about Open Source?
EtherCAT technology itself is not Open Source. Backed by the standardization of EtherCAT by IEC, ISO and SEMI, access to EtherCAT technology is available to everyone to non-discriminatory terms. Additionally, Master Licenses are free of royalties. Maintenance and all further development of the technology is available to all users by membership within the ETG, the user group for EtherCAT technology. If you have questions regarding implementing or using EtherCAT in conjunction with shared source or open source systems please contact ETG headquarters or Beckhoff, the EtherCAT technology licensor.
3.3 How about licenses?
The license for implementing an EtherCAT master is free of charge. For slave devices EtherCAT has adopted the CAN license model (CAN is an excellent example for a standardized open technology that is protected by patents): The small license fee is "embedded" in the EtherCAT Slave Controller (ESC) chip, so that device manufacturers, end users, system integrators, tool manufacturers etc. do not have to pay a license.
3.4 How about Open Source?
EtherCAT technology itself is not Open Source. Backed by the standardization of EtherCAT by IEC, ISO and SEMI, access to EtherCAT technology is available to everyone to non-discriminatory terms. Additionally, Master Licenses are free of royalties. Maintenance and all further development of the technology is available to all users by membership within the ETG, the user group for EtherCAT technology. If you have questions regarding implementing or using EtherCAT in conjunction with shared source or open source systems please contact ETG headquarters or Beckhoff, the EtherCAT technology licensor.
- andypugh
- Offline
- Moderator
-
Less
More
- Posts: 19899
- Thank you received: 4655
13 years 3 days ago #40362
by andypugh
They don't seem to understand Open Source.
The problem is that their terms mean that any software that uses EtherCAT is restricted by their license terms. LinuxCNC is ussued under the GPL. LinuxCNC integrators are _not_allowed_ to distrubute LinuxCNC under any other terms than GPL.
So, I think it is OK to install LinuxCNC and the EtherCAT HAL module on a machine for your own use, but you are not allowed to then distribute it or sell it to anyone else. Even if the recipient signs the EtherCAT license. This is because doing so means that you would be distributing LinuxCNC under a more restrictive license than the GPL. That isn't allowed.
This is a real pity, as the hardware and the technology seem very useful.
Replied by andypugh on topic Ethercat HAL driver
Coyote wrote: 3.4 How about Open Source?
EtherCAT technology itself is not Open Source. Backed by the standardization of EtherCAT by IEC, ISO and SEMI, access to EtherCAT technology is available to everyone to non-discriminatory terms. Additionally, Master Licenses are free of royalties. Maintenance and all further development of the technology is available to all users by membership within the ETG, the user group for EtherCAT technology. If you have questions regarding implementing or using EtherCAT in conjunction with shared source or open source systems please contact ETG headquarters or Beckhoff, the EtherCAT technology licensor.
They don't seem to understand Open Source.
The problem is that their terms mean that any software that uses EtherCAT is restricted by their license terms. LinuxCNC is ussued under the GPL. LinuxCNC integrators are _not_allowed_ to distrubute LinuxCNC under any other terms than GPL.
So, I think it is OK to install LinuxCNC and the EtherCAT HAL module on a machine for your own use, but you are not allowed to then distribute it or sell it to anyone else. Even if the recipient signs the EtherCAT license. This is because doing so means that you would be distributing LinuxCNC under a more restrictive license than the GPL. That isn't allowed.
This is a real pity, as the hardware and the technology seem very useful.
- sascha
- Offline
- New Member
-
Less
More
- Posts: 16
- Thank you received: 29
13 years 3 days ago #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):
Sascha
- 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
- andypugh
- Offline
- Moderator
-
Less
More
- Posts: 19899
- Thank you received: 4655
13 years 3 days ago #40364
by andypugh
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.
Replied by andypugh on topic Ethercat HAL driver
sascha wrote: 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.
Time to create page: 0.315 seconds