ASD-A2 EtherCAT on LinuxCNC
14 Apr 2021 20:52 #205938
by arvidb
Replied by arvidb on topic ASD-A2 EtherCAT on LinuxCNC
Could it be that you have marginally unstable servo loops where sometimes a resonance is triggered? Have you tried different tunings?
(I'm absolutely no expert on servo tuning, but it's an idea, anyway...)
(I'm absolutely no expert on servo tuning, but it's an idea, anyway...)
Please Log in or Create an account to join the conversation.
14 Apr 2021 20:58 #205939
by jirkam
Replied by jirkam on topic ASD-A2 EtherCAT on LinuxCNC
Good day.
Thanks for the idea.
We tried everything.
He does it in positional control and in speed control.
Jirka
Thanks for the idea.
We tried everything.
He does it in positional control and in speed control.
Jirka
Please Log in or Create an account to join the conversation.
15 Apr 2021 19:55 #206038
by chimeno
Replied by chimeno on topic ASD-A2 EtherCAT on LinuxCNC
Hello @Jirkam,
are you sure you have the DC-MODE mode configured correctly?
It seems to me that it only supports these two modes, but not the event in SYNC1
1-Free Run Mode (Asynchronous)
2-DC-Synchronous Mode (SYNC0 synchronization)
Supported SYNC0 cycle time
1 ms (PDO cycle time = 1 ms)
2 ms (PDO cycle time = 2 ms)
3 ms (PDO cycle time = 3 ms)
I think the correct option is this
*1 = set to 1ms
SERVO_PERIOD = 1000000
have if this helps??
Greeting
Chimeno
are you sure you have the DC-MODE mode configured correctly?
<slave idx = "12" type = "DeASDA" name = "X">
<dcConf assignActivate = "730" sync0Cycle = "250000" sync0Shift = "0" sync1Cycle = "750000" sync1Shift = "0" />
</slave>
It seems to me that it only supports these two modes, but not the event in SYNC1
1-Free Run Mode (Asynchronous)
2-DC-Synchronous Mode (SYNC0 synchronization)
Supported SYNC0 cycle time
1 ms (PDO cycle time = 1 ms)
2 ms (PDO cycle time = 2 ms)
3 ms (PDO cycle time = 3 ms)
I think the correct option is this
<slave idx = "12" type = "DeASDA" name = "X">
<dcConf assignActivate = "300" sync0Cycle = "*1" sync0Shift = "0" />
</slave>
*1 = set to 1ms
SERVO_PERIOD = 1000000
have if this helps??
Greeting
Chimeno
Please Log in or Create an account to join the conversation.
15 Apr 2021 19:55 #206039
by jirkam
Replied by jirkam on topic ASD-A2 EtherCAT on LinuxCNC
Hello.
I have something wrong in .xml.
I modified an .xml that is not in my configuration. By mistake.
That's why we didn't see any change.
Now I have edited the correct .xml and the Lcnc will load without error, but after F2 the servos can be rotated manually. And it shouldn't be.
What's wrong with me?
Thank you very much.
Jirka
I have something wrong in .xml.
I modified an .xml that is not in my configuration. By mistake.
That's why we didn't see any change.
Now I have edited the correct .xml and the Lcnc will load without error, but after F2 the servos can be rotated manually. And it shouldn't be.
What's wrong with me?
<masters>
<master idx="0" appTimePeriod="1000000" refClockSyncCycles="-1">
<slave idx="0" type="EK1100" name="EK1100"/>
<slave idx="1" type="EL1819" name="DIN1"/>
<slave idx="2" type="EL1819" name="DIN2"/>
<slave idx="3" type="EL1088" name="DIN3"/>
<slave idx="4" type="EL2809" name="DOUT1"/>
<slave idx="5" type="EL2809" name="DOUT2"/>
<slave idx="6" type="EL3064" name="AIN"/>
<slave idx="7" type="EL4004" name="AOUT"/>
<slave idx="8" type="EL2622" name="RELE1"/>
<slave idx="9" type="EL2622" name="RELE2"/>
<slave idx="10" type="EL2622" name="RELE3"/>
<slave idx="11" type="EL2622" name="RELE4"/>
<slave idx="12" type="DeASDA_pos" name="X">
<dcConf assignActivate="730" sync0Cycle="250000" sync0Shift="0" sync1Cycle="750000" sync1Shift="0"/>
</slave>
<slave idx="13" type="DeASDA_pos" name="Y1">
<dcConf assignActivate="730" sync0Cycle="250000" sync0Shift="0" sync1Cycle="750000" sync1Shift="0"/>
</slave>
<slave idx="14" type="DeASDA_pos" name="Y2">
<dcConf assignActivate="730" sync0Cycle="250000" sync0Shift="0" sync1Cycle="750000" sync1Shift="0"/>
</slave>
<slave idx="15" type="DeASDA_pos" name="Z">
<dcConf assignActivate="730" sync0Cycle="250000" sync0Shift="0" sync1Cycle="750000" sync1Shift="0"/>
</slave>
</master>
</masters>
Thank you very much.
Jirka
Please Log in or Create an account to join the conversation.
15 Apr 2021 19:59 #206041
by jirkam
Replied by jirkam on topic ASD-A2 EtherCAT on LinuxCNC
Hi @Chimeno
We wrote it at the same time.
I'm not sure I'm right.
I'll try as you write.
Thank you very much.
Jirka
We wrote it at the same time.
I'm not sure I'm right.
I'll try as you write.
Thank you very much.
Jirka
Please Log in or Create an account to join the conversation.
01 May 2021 21:33 #207576
by jirkam
Replied by jirkam on topic ASD-A2 EtherCAT on LinuxCNC
Hi @Chinemo.
So I tried it and since then it's ok.
So I hope it lasts.
Thank you very much for the tip.
Have a nice weekend.
Jirka
So I tried it and since then it's ok.
So I hope it lasts.
Thank you very much for the tip.
Have a nice weekend.
Jirka
The following user(s) said Thank You: chimeno
Please Log in or Create an account to join the conversation.
06 Sep 2021 20:27 #219789
by jirkam
Replied by jirkam on topic ASD-A2 EtherCAT on LinuxCNC
Hello.
So I'm back.
It lasted without a mistake for a few weeks. I managed to record the behavior on video.
Here is the video
1.red - joint.0.f-error ("X" axis)
2.blue - joint.1.f-error ("Y" axis)
3.green - joint.2.f-error ("Y" axis)
4.purple - joint.3.f-error ("Z" axis)
5.orange - lcec.0.pll-out
6.green - lcec.0.pll-err (it is marked on the video - therefore it is white)
Sometimes he doesn't do it all week.
Sometimes he does it twice a day.
Sometimes he does it all day.
Sometimes it stops making mistakes on its own.
Sometimes I have to restart Linuxcnc to stop making mistakes.
Does anyone know where the problem might be?
Thank you very much Jirka
So I'm back.
It lasted without a mistake for a few weeks. I managed to record the behavior on video.
Here is the video
1.red - joint.0.f-error ("X" axis)
2.blue - joint.1.f-error ("Y" axis)
3.green - joint.2.f-error ("Y" axis)
4.purple - joint.3.f-error ("Z" axis)
5.orange - lcec.0.pll-out
6.green - lcec.0.pll-err (it is marked on the video - therefore it is white)
Sometimes he doesn't do it all week.
Sometimes he does it twice a day.
Sometimes he does it all day.
Sometimes it stops making mistakes on its own.
Sometimes I have to restart Linuxcnc to stop making mistakes.
Does anyone know where the problem might be?
Thank you very much Jirka
Please Log in or Create an account to join the conversation.
- mehdidadash
- Offline
- Senior Member
Less
More
- Posts: 50
- Thank you received: 4
05 Dec 2022 05:49 #258559
by mehdidadash
Replied by mehdidadash on topic ASD-A2 EtherCAT on LinuxCNC
Hi jirkam
Can you attach your final configuration files like XML, INI, HAL,... ?
Can you attach your final configuration files like XML, INI, HAL,... ?
Please Log in or Create an account to join the conversation.
05 Dec 2022 12:45 #258589
by jirkam
Replied by jirkam on topic ASD-A2 EtherCAT on LinuxCNC
Hi
I found out that if I turn on the drivers first and only the PC after about 10 seconds, then it doesn't make the error.
Thank you.
Jirka
I found out that if I turn on the drivers first and only the PC after about 10 seconds, then it doesn't make the error.
Thank you.
Jirka
The following user(s) said Thank You: mehdidadash
Please Log in or Create an account to join the conversation.
05 Dec 2022 13:09 #258592
by db1981
Replied by db1981 on topic ASD-A2 EtherCAT on LinuxCNC
Hello Jirka,
i have noticed an "~big" error in your hal file.
you adding lcec.real-all and write-all at the beginning of the hal file.
caused that liunxcnc builds its execution order of task functions in the order they are placed in the hal file, your servo-thread calls ec-read and then immediatly writes out lcec-write. So nothing is done with the Data in the meantime. Lcec.write-all uses "old"data from the last cycle . Which causes timing issues and leads to an bad servo tuning.
the right order would be:
addf lcec.read-all (gets data from hardware)
addf motion, value-converts, pids, classicladder etc.. (works with the data)
last addf lcec.write-all (send new data to hardware).
In your case lcec.write-all is called in front of motion and pids. So it sends "old" data from the last cylce to the drives without the new calculations. You got an 1
cycle offset between input and output data.
(you can search for "execution order" in the forum, i have descripted this in detail somewhere)
i have noticed an "~big" error in your hal file.
you adding lcec.real-all and write-all at the beginning of the hal file.
caused that liunxcnc builds its execution order of task functions in the order they are placed in the hal file, your servo-thread calls ec-read and then immediatly writes out lcec-write. So nothing is done with the Data in the meantime. Lcec.write-all uses "old"data from the last cycle . Which causes timing issues and leads to an bad servo tuning.
the right order would be:
addf lcec.read-all (gets data from hardware)
addf motion, value-converts, pids, classicladder etc.. (works with the data)
last addf lcec.write-all (send new data to hardware).
In your case lcec.write-all is called in front of motion and pids. So it sends "old" data from the last cylce to the drives without the new calculations. You got an 1
cycle offset between input and output data.
(you can search for "execution order" in the forum, i have descripted this in detail somewhere)
Please Log in or Create an account to join the conversation.
Time to create page: 0.118 seconds