Beckhoff ethercat 64 with bit linuxcnc, How to install.

More
6 years 8 months ago - 6 years 8 months ago #158571 by Nico2017
Hi,
  • is at least linuxcnc launching witthe EtherCAT config file. If it is not launching can you attached a print out of the message after doing your
    Code:
    linuxcnc file.ini
    command. Most common errors are related to the config-ethercat.xml file Have you check that the time period is matching the thread period you are associating it with, in your case the servo thread.
  • if it is launching, I guess your issue is the drive might not be communication correctly. You can first of all verify that the drive reached the OP state by doing :
    Code:
    ethercat slave
    and read the status of the drive
  • If the slave is not in OP state, then you can use use
    Code:
    sudo dmesg -T
    to try to find out a bit more why is the slave not going into OP

More importantly, I think you forgot the last mark for closing masters at the end of the ethercat config file:
Code:
</masters>

Let us know,
Nicolas
Last edit: 6 years 8 months ago by Nico2017.

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

More
6 years 8 months ago #158600 by Sockheaven
Thanks for the debugging tips! I was not aware of those commands.

I checked the XML file, the </master> object is closed at the second to last line, so i think that's ok.

Running "$ ethercat slave" I get:
0 0:0 PREOP + AKD EtherCAT Drive (CoE)

So this backs up that the drive appears to be remaining in the pre-op state that i saw in the HAL Meter.

Running "sudo dmesg -T" I get a load of text, i've filtered it to the ECat stuff:
ec_master: loading out-of-tree module taints kernel.
EtherCAT: Master driver 1.5.2 unknown
EtherCAT: 1 master waiting for devices.
ec_generic: EtherCAT master generic Ethernet device module 1.5.2 unknown
EtherCAT: Accepting 00:90:27:F0:09:41 as main device for master 0.
ec_generic: Binding socket to interface 3 (eth1).
EtherCAT 0: Starting EtherCAT-IDLE thread.
igb 0000:03:00.0 eth1: igb: eth1 NIC Link is Up 100 Mbps Full Duplex, Flow Control: RX
EtherCAT 0: Link state of ecm0 changed to UP.
EtherCAT 0: 1 slave(s) responding on main device.
EtherCAT 0: Slave states on main device: PREOP.
EtherCAT 0: Scanning bus.
EtherCAT 0: Bus scanning completed in 220 ms.
EtherCAT 0: Using slave main-0 as DC reference clock.
EtherCAT 0: Slave states on main device: INIT.
EtherCAT 0: Slave states on main device: PREOP.

Next, I open the LinuxCNC project and some new entries are appended:
EtherCAT: Requesting master 0...
EtherCAT: Successfully requested master 0.
EtherCAT 0: Domain0: Logical address 0x00000000, 12 byte, expected working counter 3.
EtherCAT 0: Datagram domain0-0-main: Logical offset 0x00000000, 12 byte, type LRW at ffff9d2359435798.
EtherCAT 0: Master thread exited.
EtherCAT 0: Starting EtherCAT-OP thread.

looks like there is some kind of init error - not sure what it's trying to tell me, except that the main thread exited for some reason.

Maybe related...
I was curious about some of those SDOs, in the examples, sometimes the subIdx="complete" and other times the sub index is specified (what i'm normally used to). I was wondering what the "complete" meant.

I also wasnt sure why all the examples use syncManager 2/3 and 0/1 are always empty.

Any other observations or ideas about why the main thread is exiting would be greatly appreciated!
Thanks again!

-Paul

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

More
6 years 8 months ago #158813 by chimeno
Hi @Paul,
I was looking at your .xml configuration file and is this correct?
Code:
<slave idx="0" type="generic" vid="00000106" pid="00000001" configPdos="true">
can be this?
Code:
<slave idx="0" type="generic" vid="0000006a" pid="00414b44" configPdos="true">
if it helps you
greeting
Chimeno
The following user(s) said Thank You: Sockheaven

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

More
6 years 8 months ago #158864 by Sockheaven
Well you definitely saw something I didn't.. I see the translation from 106 to A6 being hex vs dec, but I don't even see where you pulled the PID from (to be frank, why that even mattered since I wasn't compiling my own objects - i figured those numbers just needed to match if i wrote my own module).

I now see after booting (pre linuxcnc) my dmesg -T output is:
igb 0000:03:00.0 eth1: igb: eth1 NIC Link is Up 100 Mbps Full Duplex, Flow Control: RX
EtherCAT 0: Link state of ecm0 changed to UP.
EtherCAT 0: 1 slave(s) responding on main device.
EtherCAT 0: Slave states on main device: PREOP.
EtherCAT 0: Scanning bus.
EtherCAT 0: Bus scanning completed in 228 ms.
EtherCAT 0: Using slave main-0 as DC reference clock.
EtherCAT 0: Slave states on main device: INIT.
EtherCAT 0: Slave states on main device: PREOP.

Then when starting LinuxCNC, there are new logs/errors:
EtherCAT: Requesting master 0...
EtherCAT: Successfully requested master 0.
EtherCAT 0: Domain0: Logical address 0x00000000, 12 byte, expected working counter 3.
EtherCAT 0: Datagram domain0-0-main: Logical offset 0x00000000, 12 byte, type LRW at ffff974066a53cd8.
EtherCAT 0: Master thread exited.
EtherCAT 0: Starting EtherCAT-OP thread.
EtherCAT 0: Slave states on main device: INIT.
EtherCAT 0: Slave states on main device: PREOP.
EtherCAT ERROR 0-main-0: SDO download 0x1A00:01 (4 bytes) aborted.
EtherCAT ERROR 0-main-0: SDO abort message 0x06040041: "The object cannot be mapped into the PDO".
EtherCAT ERROR 0-main-0: SDO configuration failed.

So clearly having the VID/PID set correctly mattered, because now it made it as far as trying to run the init SDO list i had set in the XML file. It looks like something is failing, I'll check with the Apps group on Monday to see if they can identify what may be going wrong.

Thanks so much! Will post an update soon.

Best Regards,
Paul

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

More
6 years 7 months ago #158955 by Moronicsmurf
Sorry for going off topic in this thread..

But if using the EtherCAT stuff from beckhoff. Would the stepgen be completly pc based then instead of having a step generator in an FPGA like with the mesa cards?

One of the resons for using the fpga cards is that you can use crappier hardware in most cases and get away with it.. is it the same with Ethercat ?

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

More
6 years 7 months ago - 6 years 7 months ago #158970 by Todd Zuercher
I don't think you would be using step generation at all with EtherCAT. You would be sending velocity (or position) commands directly to the EtherCAT drive. (but I have no experience with EtherCAT.)
Last edit: 6 years 7 months ago by Todd Zuercher.

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

Time to create page: 0.565 seconds
Powered by Kunena Forum