Ethercat HAL driver

More
29 May 2016 18:42 #75228 by jpettit
Replied by jpettit on topic Ethercat HAL driver
Does anyone know if Kollmorgen ADK etherCAT servo amplifiers work with the HAL EtherCAT Drivers here?

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

More
29 May 2016 18:50 #75229 by sirop
Replied by sirop on topic Ethercat HAL driver

Does anyone know if Kollmorgen ADK etherCAT servo amplifiers work with the HAL EtherCAT Drivers here?


Read this
www.iram.fr/~blanchet/ethercat/akd/
in order to avoid Raw SDO.

Then try to proceed as if it were a generic slave with preconfigured PDOs.
The following user(s) said Thank You: jpettit

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

More
29 May 2016 20:55 #75232 by jpettit
Replied by jpettit on topic Ethercat HAL driver
:) Thanks for the link and suggestion. Looks like we have a solution

Jim P

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

More
09 Jun 2016 13:55 #75729 by chuchengbing
Replied by chuchengbing on topic Ethercat HAL driver
Hello everyone:
Recently, I use Linuxcnc control a robot and the kinematics module is genserkins, now I have a question:
as all 6 joints of my robot are rotate joints drived by ethercat motors with absolute encoders, when I open Linuxcnc with AXIS interface, I should jog the joint to make a better accuracy. When i set INCREMENTS in my ini file, I found the unit of this is just in, mm, not degree, as my joints all are rotare joints,the unit of angle is degree, I don't know it is right to set INCRMENTS to 1mm when i want one of my joints to move 1 degree. I just think it is ok, but, when I change one of my joints's degree approaching to 0.0000,then this joint has a following error. I read the source of this, it shows the joint->ferror= joint->pos_cmd - joint->pos_fb,and my FERROR =2, MIN_FERROR=1. then, I use halscope to read the pins of joint.0.error、joint.0.f-error、joint.0.f-error-lim、joint.0.f-errored、joint.0.pos-cmd、joint.0.pos-fb、joint.0.vel-cmd. Then I jog 0 joint, it occurs following error four times and all are when I want to change the joint's value to 0.0000 while joint.0.error、joint.0.f-errored、joint.0.vel-cmd are zero, and joint.0.ferror is far less than joint.0.f-error-lim. I find that before the coming of following error,the joint.0.pos-cmd and joint.0.pos-fb are alway likes below:
joint.0.pos-cmd -0.00000229672098 joint.0.pos-fb -0.00003390842014
joint.0.pos-cmd +0.00000000000000 joint.0.pos-fb +0.00000000000000
joint.0.pos-cmd +0.00071207682292 joint.0.pos-fb +0.00071207682292
Does someone know the answers?thanks very much

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

More
16 Jun 2016 23:42 #76188 by Roger
I'm back in the test lab now and am still trying to get the Indradrive Cs to turn the servo.
Sorry this is a bit long winded. I want to explain how I got to the conclusion in case I have got something wrong.

The problem is we cannot get linuxcnc to drive the servos to motion. Everything seems OK, they just won't rotate from linuxcnc. They work fine using Twincat and Indraworks.

Since the last post I have discovered that the Fieldbus status word P-0-4078 is not showing 'Operating mode' in the first two bits. Instead it is showing 'Parameter mode'. The word contains: 0xC808 - which is 1100 1000 0000 1000

The first two bits on the right are zero (00) for parameter mode. According to the state machine (page 120 Fig 4-37) in the manual [1] they should be 10 for operating mode.

There are two checks C0100 and C0200 between the state with the bits at 00 and the state with them at 10.
In more detail the two checks are:
"S‑0‑0127, C0100 Communication phase 3 transition check"
"S‑0‑0128, C5200 Communication phase 4 transition check"
When they fail they place a the parameters causing the failure in an IDN List. So to troubleshoot why those checks are failing I want to read the IDN Lists from S‑0‑0021 and S-0-0022.

The question is, how do I read an IDN List using the ethercat command in linux? I can read a simple value out using:
ethercat soe_read -p3 0 'S-0-0013'
But I don't know how to read an IDN list to find the parameter causing the fault.

Thanks,
Roger

[1] ftp://ftp.boschrexroth.pl/brc/IndraDrive_CS/CS_func.pdf

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

More
17 Jun 2016 05:43 #76198 by roschi
Hi Roger,

for your question how to read out a list i don't have an anwser. But perhaps you can try it with EOE.
You have a running EtherCAT Master and the possibility to connect via IndraWorks over EOE. Then you have the possibility to get more information via the gui.

Perhaps you can share your files: hal + xml.
Which Firmware Version is running on IndraDrive Cs. There is a change in the Verions > 20.x that the drives now support CoE. (my indradrives don't support CoE).

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

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

More
18 Jun 2016 05:03 - 19 Jun 2016 16:41 #76239 by sirop
Hallo.

Has anybody tried to run a CoE slave at 250 us?

I found out that the usage of
void ecrt_slave_config_state(const ec_slave_config_t *sc, ec_slave_config_state_t *state)
in github.com/sittner/linuxcnc-ethercat/blo...c_main.c#L1086-L1097
can cause problems....


Sorry, it was false alarm, this alleged bug was because of my experimenting with the code.
Last edit: 19 Jun 2016 16:41 by sirop. Reason: false alarm

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

More
22 Jun 2016 23:30 #76467 by highbiker
Replied by highbiker on topic Ethercat HAL driver
Dear all,
I have got a Problem with the inputs of one slave in my EtherCAT Network. I'm using the Etherlab Master 1.5.2 and the latest lcec driver from the sittner-git.

My Network extends of the following slaves:
Slave 1: Bausano EasyCAT Arduino Shield (32 byte Output, 32 byte Input)
Slave 2: Beckhoff EK1100
Slave 3: Beckhoff EL1008 (1 byte Input)
Slave 4: Beckhoff EL2008 (1 byte Output)

With my configuration linuxcnc starts and everything works exept the Inputs of the EasyCAT Arduino Shield. In Hal-Meter they are always 0.

I tested the Network with the Beckoff EtherCAT Configurator and there the inputs worked. So the EasyCAT Shield must be ok.

my ethercat-conf.xml:
Warning: Spoiler!


The ESI (xml) File of the EasyCAT Shield could be found here:
www.bausano.net/images/arduino-easycat/EasyCAT.xml

while linuxcnc was running i read out the etherlab domain information (ethercat domain -v):
Warning: Spoiler!

The input section of the EasyCAT ist missing and I'm confused about the size of 34. I think i should get 32+32+1+1=66. Are the inputs completely dropped?

In my dmesg output i also find the domain size of 34:
Warning: Spoiler!


What am I doing wrong? I've run out of ideas. Could someone please help me to figure out a solution for my annoying problem.

Thanks and kind regards

Arndt
The following user(s) said Thank You: Nico2017

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

More
23 Jun 2016 02:32 #76469 by sirop
Replied by sirop on topic Ethercat HAL driver

In my dmesg output i also find the domain size of 34:
[Do Jun 23 01:58:17 2016] EtherCAT 0: Using slave 0 as DC reference clock.


Seems to have only two Sync Managers:
<!--  indirizzo fisico di base per gli output  -->
<Sm StartAddress="#x1000" ControlByte="#x64" Enable="1">Outputs</Sm>
<!--  indirizzo fisico di base per gli input  -->
<Sm StartAddress="#x1200" ControlByte="#x20" Enable="1">Inputs</Sm>
www.bausano.net/images/arduino-easycat/EasyCAT.xml

You use however 4 Sync Managers.

BTW, what is the maximum cycle frequency this EasyCAT Arduino Shield can work with?

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

More
23 Jun 2016 07:49 #76474 by highbiker
Replied by highbiker on topic Ethercat HAL driver
Thanks for your fast reply!

The four Sync Managers were just a test. At first I tried only two Sync Managers (0 and 1) with no success.
I don't know the max cycle frequency of the EasyCAT Shield, so I have to ask the manufacturer. But in Beckhoff EtherCAT Configurator it worked with 1ms. In LinuxCNC I also tried a cycle time of 25ms with no success too.

It's a mystery to me, why only the outputs operate. So the communication couldn't be completely wrong.

BTW: is there any way to use the Etherlab Master (Slaves PREOP -> OP and reading Process Data) from Terminal without using the lcec driver, or do I have to write a C-Program?
I would like to test my Network without lcec in order to identify the point of failure.

kind regards

Arndt

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

Time to create page: 0.653 seconds
Powered by Kunena Forum