Ethercat HAL driver
But I tried to explain to you how to avoid RAW sdo.
Please Log in or Create an account to join the conversation.
I have been following you for a long time an quite confident that I want to set-out on a project I have been thinking for a long time.
layout
I need to use the ETHERCAT Technology with matching bus coupler and motors and spindle to integrate a 3 Axis small but reliable CNC Router.
I was hoping to get your opinion on whether I could use a board like the following
www.casanovasadventures.com/catalog/comp...HOPPING#.WZqx3Liddq3
For Single Board Computer to run LinuxRT and LinuxCNC
I know in the forum various solutions have been successful, my plan is to package final solution in a industrial package.
Please let me know your views.
I see this Forum a GREAT resource for real Enthusiasts.
regards,
ajith
Please Log in or Create an account to join the conversation.
Dear ETHERCAT Forum,
I was hoping to get your opinion on whether I could use a board like the following
www.casanovasadventures.com/catalog/comp...HOPPING#.WZqx3Liddq3
ajith
Keep in mind that if the network driver of the board has no adjusted version within sourceforge.net/p/etherlabmaster/code/ci/default/tree/devices/, then you'll have to put up with higher latency of the
so called "generic" driver.
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.
- sqmathlete
- Offline
- Premium Member
- Posts: 118
- Thank you received: 17
I found that great attention must be paid to the formatting of the .xml file. I basically cleaned it up and LinuxCNC was able to communicate with the servo amp.
That being said I can now initialize the amp through hal command once LinuxCNC is running but issuing commands to 6060 Control Word doesn't seem to work in the hal setup files however, setting 6040 Mode to 0x08 (CSP Mode)seems to work? I can see in Roschi's files that he is initializing the amp by breaking the out PDO's into bits and then connecting those to LinuxCNC enable.in etc which is then reflected in the status word value. This all makes sense but, makes me wonder if a custom gui might be useful for the ethercat hal driver?
That being said, what is really bothering me about Roschi's files is where he defines some halType="special32"? is this some custom wizardry that handles converting + scaling LinuxCNC float (e.g. position value) output to a s32 value that the servo amp is expecting for that PDO?
Also, while figuring out the scale value for conversion of position value to machine units I defined the servo amps target position (607A) as a float in the xml, scaled by 100000 in hal not expecting it to work but it did...interesting, no? When LinuxCNC is sending a position command what exactly is it sending? Pos in Machine Units? which is then scaled to Pulse/mm which would be based on lead screw pitch(mm),gear ratio, and max rpm of motor. I think this is defined as Pulse of User-defined Unit in the manual...
Cheers,
Dan
Please Log in or Create an account to join the conversation.
Hi Sirop,
That being said I can now initialize the amp through hal command once LinuxCNC is running but issuing commands to 6060 Control Word doesn't seem to work in the hal setup files however, setting 6040 Mode to 0x08 (CSP Mode)seems to work?
Hard to guess what's going on without seeing your xml config file.
I can see in Roschi's files that he is initializing the amp by breaking the out PDO's into bits and then connecting those to LinuxCNC enable.in etc which is then reflected in the status word value.
I only know halType="complex" as in github.com/sittner/linuxcnc-ethercat/blo...-conf_X.xml#L98-L116
Also, while figuring out the scale value for conversion of position value to machine units I defined the servo amps target position (607A) as a float in the xml, scaled by 100000 in hal not expecting it to work but it did...interesting, no? When LinuxCNC is sending a position command what exactly is it sending? Pos in Machine Units?
In case of TARGET POSITION INDEX 0X607A would be motor counts. How you transform your kinematics or CNC code to motor counts, is a question that goes beyond EtherCAT.
Please Log in or Create an account to join the conversation.
I can mention that the "halType=special32" was an intermediate solution which only worked for the forked development find here: github.com/aschiffler/linuxcnc
I recommend to use the latest development from S. Ittner and therefore the halType=complex
See here:
github.com/sittner/linuxcnc-ethercat/blo.../ethercat-conf_X.xml
lines 98 -116
EDIT
Also sirop has given this answer.
Regards Andreas
Please Log in or Create an account to join the conversation.
Or installing the latest versions from github you can already use Lcnc as a slave with some kind of slave cards?
You can suggest me some more suitable pci/pcie/minipcie card for these'
regards
giorgio
Please Log in or Create an account to join the conversation.
Sorry, I ask here but not sure the right place ... using pcie slave card (ixxat, hilscher CIFX 50E-RE seems more suitable but there are other producer ) I would run linuxcnc as slave Ethercat
giorgio
I never tried out any of these slave cards but it schould be possible to use such a card similar to the way MESA PCIE cards are used.
The EtherCAT chip on the PCIE card would garantee that an ethercat frame traverses the card within under 1 us.
Your main attention then schould be paid to sync-ing of other procceses that deliver input for the slave card.
As an alternative: XMOS, kind of FPGA for the poor www.synapticon.com/product/ethercat-development-kit .
Please Log in or Create an account to join the conversation.
Your main attention then schould be paid to sync-ing of other procceses that deliver input for the slave card.
what do you mean by that? processes that come from the master (ex. plc -> external to Lcnc) or processes that come from Lcnc itself? Those should synchronize with a normal file hal ... or in the case of motion data with the kinematic ... Iunderstand badly?
regards
Giorgio
Please Log in or Create an account to join the conversation.