linear encoder + cia402 driver + delta a2 incremental

More
23 Feb 2023 11:55 #265114 by mehdidadash
hi friends.
appreciate those who enlighten the path for people like me. 
i want to add a linear encoder to one of my axis.
i cant find how to define linear encoder in the ini or the hal file.
i have a delta asd-a2 ethercat servo drive with an incremental type servo motor.
i have added a linear encoder to axis.
i changed the servo drive 0x214a to "0001"
i added 0x2511 to pdos and named it auxilary encoder.
should i change "actual-position" idx to 2511 ?
and i have another question about "cia402.0.pos-scale"
what should i write to its value? 
linear encoder is 5000pulse/rev
my motor is 17 bit with 131072 puls/rev
but it is mentioned in the manuals that drive has 1,280,000 PUU
Attachments:

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

More
23 Feb 2023 20:51 #265149 by andypugh
Are you sure that the drive accepts secondary feedback from a linear encoder?

Normally this would be done by adding a PID loop inside LinuxCNC to modify the commanded motor position slightly based on the linear encoder feedback.

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

More
25 Feb 2023 04:45 #265306 by mehdidadash
Yes. It has a pdo entry . 0x2511 for auxiliary encoder.
My problem is that linear encoder resolution is 5000puls/rev but, driver has one pos-scale .
Should i make a new cia402.comp and add linear encoder or there is a possible way to handle the problem using current driver?

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

More
25 Feb 2023 13:17 #265326 by andypugh
Sorry, I can't help as I know nothing about EtherCAT, but it feels like it should be possible to set the parameters on the device?

Otherwise, maybe changing the .comp isn't difficult?
The following user(s) said Thank You: mehdidadash

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

More
26 Feb 2023 09:41 #265395 by 0x2102
I think it makes more sense to configure "full closed loop" within the Delta A2.

It is well documented for the Delta A3 drives but not for the A2.
You can google "DELTA_IA-ASD_ASDA-A3_UM_EN_20210121.pdf" (1177 pages) - 6.7.3 Steps for setting the full-closed loop function.

Parameter have a different format P1.073 vs P1-73 but they should match. 

Make sure you test this on your bench and NOT on your machine - this is prone to error and probably requires extensive tuning before you can mount it on your actual machine.
 
The following user(s) said Thank You: mehdidadash

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

More
26 Feb 2023 10:57 #265405 by db1981
The Cia Comp only does scaling from an incoming position/velocity register.

If you have got raw increment count whose pos scaling can not be done in the drive,
then you would need an "encoder comp" which handels register overflow etc.. to get an working input value for lcncs pid.
this comp will need 2 functions for input and output, to get added at the right positions in the realtime cycle. the output function would be for getting the right pos command from pid back to the drive.

manual encoder handling is coded in the em7004 lcec module, you can extract this to an standalone comp.
if you have a little advanced c-expierence, the better way would be to create a comp which includes the lcec encoder class.

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

More
06 Mar 2023 04:45 #265944 by mehdidadash
i hate the fact that delta never updated A2 series documents. even its A3 documents are not complete. for example, there is nothing about 0x2511 or digital outputs register in its documents. 
by the way, thank you for your detailed guidance.

I think it makes more sense to configure "full closed loop" within the Delta A2.

It is well documented for the Delta A3 drives but not for the A2.
You can google "DELTA_IA-ASD_ASDA-A3_UM_EN_20210121.pdf" (1177 pages) - 6.7.3 Steps for setting the full-closed loop function.

Parameter have a different format P1.073 vs P1-73 but they should match. 

Make sure you test this on your bench and NOT on your machine - this is prone to error and probably requires extensive tuning before you can mount it on your actual machine.

 

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

More
06 Mar 2023 04:54 #265945 by mehdidadash
drive does the position scaling . for example it shows position in mm . so you say that i don't need to do anything in controller side ?
i have noticed that you consider Cyclic Synchronous Position Mode as a better option for use with Linuxcnc, Ethercat and Cia402 combination . is it true ? closing the loop in controler side does not provide enough accuracy comparing to closing the loop in drive side ? 
i mean considering that ethercat has a 1ms sync loop, it will not give a good accuracy if we use it for high speed and high accuracy tasks if we use controller side pid control or loop closing. have i understanded your comments right?

The Cia Comp only does scaling from an incoming position/velocity register.

If you have got raw increment count whose pos scaling can not be done in the drive,
then you would need an "encoder comp" which handels register overflow etc.. to get an working input value for lcncs pid.
this comp will need 2 functions for input and output, to get added at the right positions in the realtime cycle. the output function would be for getting the right pos command from pid back to the drive.

manual encoder handling is coded in the em7004 lcec module, you can extract this to an standalone comp.
if you have a little advanced c-expierence, the better way would be to create a comp which includes the lcec encoder class.

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

More
06 Mar 2023 11:00 #265951 by rodw
Don't fight the Ethercat paradigm or you will endure a lot of pain. Forget about linear encoders for now and just get your machine operational using the motor encoders.
Don't attempt to mix the linuxcnc paradigm with the ethercat paradigm without expert knowledge.
If the drives support a linear encoder attach it there...
Explore other  options only when you fully understand what is going on.

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

More
06 Mar 2023 21:13 #265979 by mehdidadash
i endured a lot of pain in the past 6 month because of that. every time that i changed an example of hal-cia402 or linuxcnc-cia402 git repositories, i lost lot of time. so i know that you are right. and i have to say thank your for your help. and db1981 and 0x2102(specially for linear encoder problem).

Don't fight the Ethercat paradigm or you will endure a lot of pain. Forget about linear encoders for now and just get your machine operational using the motor encoders.
Don't attempt to mix the linuxcnc paradigm with the ethercat paradigm without expert knowledge.
If the drives support a linear encoder attach it there...
Explore other  options only when you fully understand what is going on.

The following user(s) said Thank You: rodw

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

Time to create page: 0.123 seconds
Powered by Kunena Forum