EtherCat axis Homing strategies -> Offset from PDO 0x60BA

More
4 years 9 months ago #231520 by arvidb
Okay, so the problem here is that you haven't read the original post thoroughly and also not looked up how the touch probe function works in these drives. From the original post: "some (or all) cia402 drives allow the cia402 to configure a touch probe functionality - either on a RefMark of the encoder, or an external switch (see PDO 60B9h - TouchProbe function) - in a way, that when activated, the drive-internal Position is stored in an seperated object (i.e. PDO 60BAh) when the TouchProbe is triggered."

This function latches the current position value within tens of microseconds of when the "probe" (in this case the index pulse) is triggered. This 32-bit position value can then be read back from [0x60BA] and fed to the joint's motor-pos-fb pin during the servo period where index-enable is also set high.

All this is described pretty well in the original post and in my post that I linked to recently. If that's not enough, please download the "Omron Accurax G5 with EtherCAT" manual to see nice timing diagrams that describe what happens internally in the drive, and what data is available over EtherCAT.

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

More
4 years 9 months ago #231522 by rodw
Yeh, I fully understand the probe and how to access the data from the drive but to retain that level of accuracy and pass it back precisely to a coarser system like linuxcnc is not as simple as one would think.

You can't just change the feedback to another position as there is a risk of following errors ( I have seen plenty of those in my experiments).  More importantly, Ignoring any home offsets set (which are applied after the index is reset), Linuxcnc does not seem to use the current position when homing to index. All it does is zero the position when the index-enable is reset (back to zero).This will happen on a servo thread cycle. You would have to somehow account for the difference in current position in the servo thread and the probe position registered since the last servo cycle. You could do this either seeking back to the probe position or calculating an offset to it and incrementing HOME_OFFSET somehow. Neither method is trivial.

So all in all, I think option #3 is not a viable option when a much simpler purpose built solution exits in option #2. To me #3 is trying to revert from a round wheel to a square one. I'm not going to be wasting time on it and will focus on enhancing homing.c if its required to better support CIA402 homing methods. I'd really like to implement torque/stall based homing to remove the need for home sensors. That would be cool and arguably more accurate and more repeatable than using proximity sensors.



 

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

More
4 years 9 months ago - 4 years 9 months ago #231524 by arvidb

Yeh, I fully understand the probe and how to access the data from the drive *snip*
And yet you invent objections like the "ethernet cycle time", that the probe position will be off due to the motor continuing its motion and so on. Either you don't have a clue (which after all the messages I've written here to explain this to you would be quite a feat!) or you're actively spreading FUD for some strange reason.

I'm not going to be wasting time on it *snip*
Great!


Edit: BTW, congratulations on the trolling, you're really good at it!
Last edit: 4 years 9 months ago by arvidb.

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

More
4 years 9 months ago #231550 by rodw
Well, please report back when you have a working homing solution using the probe with evidence of improved accuracy.

I am offended by being called a troll. Its clear we have different views but there is no need to stoop to name calling!

BTW, I think  do know what I'm doing...
Here is an Ethercat Cycle Time Calculator I used earlier today:
forum.linuxcnc.org/ethercat/44508-ethercat-installation-summary
Its not something I invented.

Here is a recent thread of mine about ethercat configuration
forum.linuxcnc.org/ethercat/44508-ethercat-installation-summary

Here is the repository I created referred to in that thread
github.com/rodw-au/linuxcnc-cia402

Here is a current thread with a lot of  discussion between Dominic and I  about cia402 homing and improvements I made to his cia402 component
forum.linuxcnc.org/ethercat/43459-ethercat-newbie-guidelines

Here is my recent Linuxcnc Branch modifying homing.c and adding a new Ini file homing parameter to further support cia402 homing
github.com/rodw-au/linuxcnc/tree/rodw-home-external

So while I might be a relative newcomer to  Ethercat, I have done my homework and I know what I am talking about.
Based on that homework and listening to other points of view on this thread (clearly not something you have bothered with), I am of the opinion opinion that using the probe will not improve homing accuracy. In fact, I believe it will not match cia402 internal homing accuracy.

But I've been proved wrong before so I look forward to the evidence (not opinion) that proves me wrong here!

 
The following user(s) said Thank You: mehdidadash

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

More
4 years 9 months ago - 4 years 9 months ago #231552 by db1981
accurate homing at probe is another opinion and can be handled in an standalone comp.

take a look at my ax5000 class or at our class_enc.c ...

1. set the drive/encoder latch/probe enable bit.
2. lcnc moves the drive
3. the drive gots its probe signal an stored the actual encoder value.
4. the drive sets its latch/probe ready bit.
5. read the latch/probe register. raw_value!
6. in the same cycle you give lcnc the ready edge ( important : in the thread order in front of motion) read the actual feedback value, calc the raw diff to the probe/latch value, add it to the probe/latch position ,
7. finished, this is the 1000% accurate Position. (like internal homing, but controlled by lcncs motion)


this can also be handled by the index-enable pin and needs no modification the lcnc source.
Last edit: 4 years 9 months ago by db1981.
The following user(s) said Thank You: arvidb, rodw, 3radfahrer

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

More
4 years 9 months ago #231571 by arvidb
Thank you, db1981! Nice to have a working example. I don't know why rodw was so keen on shooting this idea down. Very strange.

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

Time to create page: 0.070 seconds
Powered by Kunena Forum