Join us today!
What is your experience with AX8000 and linear motors
Hi community,
I'm currently integrating and tuning some linear motors, but I'm having a lot of issues. Does anybody else have experience with the AX8000 and linear motors? And what is your view?
Our hardware setup is consists of a:
- AX8620-0000 power supply
- AX8108-0110 axis
- AL8065-0H01-0000 linear motor
Admittedly, this is my first time integrating motion stuff, but I get the idea that this product is in a beta stage. Beckhoff told me that the AX8000 series is the first time that they produce the motors by themselves and it is quite new. Previously with the AX5000 the motors were produced by an external party and this is a more mature line.
So far the road to integrate and tune these motors has been littered with road blocks. The documentation is either missing, scattered, spotty and constantly have to ask Beckhoff support for clarification. It drives (pun not intended) me crazy that seemingly simple tasks are so difficult to do. Also it doesn't really help that we need to push the performance of these things to the max. But without proper documentation to explain in detail what all of the 1000's settings mean or do, makes it a headache.
Just to give you a taste what I'm currently struggling with. I wanted to use the MC_TorqueControl function block. But when I looked for documentation, it was not present at the time on InfoSys. There was only one YouTube video which described how to make it work. And the author did not know what and why most settings had to be like that. It was not trivial, several options had to be set at different points. So after a back and forth between support, they send me an internal document which described the behavior. I got it to work, but after playing with it a bit I noticed that I was missing the ContinuousUpdate input. I learned from my TwinCAT changelog, that this was added in 4024.32. After upgrading TwinCAT, breaking the TwinCAT drive manager setup, getting it to work again I finally could to test the ContinuousUpdate functionality. But I couldn't get it to work and I haven't figured out why it doesn't work. To be continued.
My latest struggle is not an exception, it is basically how the whole road has been so far. At first I had to learn a bit how to do this whole motion stuff and I just blamed slow progress on my own skill set. But the more I learn, the more I get the idea that this product is just very much in a beta phase.
Finally, before I end my rant one more thing about industrial automation. Why is everything so fucking difficult to integrate? Recently a colleague showed me some sensors from Phiget he was using for a project. It comes with great documentation and even code samples so you can get the sensor to work immediately.
Care to share your experience?
Roald
My blog: https://cookncode.com/twincat
My code: https://github.com/roald87
Roald,
I know you from your other socials and know that you are a monster at programming. So do not doubt yourself: the roadblocks with Beckhoff Motion are definitely on the Beckhoff side.
We are in the middle of a very large project with mostly AX5000 drives, AL8000 linear motors, and AM8000 rotary servo-motors. And yes, the process has been tedious.
As an example, our customer wants to be able to change Drive and NC settings based on recipes: Enabling/Disabling soft-limits, Position Lag, Target Window Monitoring, Drive tuning gains. Some of these settings can only be written to the Drive or NC when the Software Enable (MC_Power) is removed from the Axis. I only learned that via trial and error.
Another problem, as you stated, is the libraries one needs to jump around in to find a FB that will successfully perform the desired task. For instance, our Beckhoff rep told me not to use the MC_SetPosition FB and rather use another FB called something like 'AX5000_SetPosition', because MC_SetPosition doesn't work well. These are just a few of the strange caveats I've ran into.
I wish I had better advice to give you. Honestly, my workflow has been to keep the PDF versions of the various Drive manuals and Motion Library manuals open so that I can try to dig around as needed. Then, I have made a Generic Axis FB where I try to house functionality that most Axes need repeatedly: MC_SoEwrite/Read, MoveAbsolute, MoveRelative, etc. That Generic Axis is then my wrapper that I use for all motion commands.
It's not ideal, but with all the holes in the Beckhoff docs, this at least lets me know that when I find I have done something wrong on the motion side, changing that Generic Axis FB at least lets me quickly pivot to try new solutions.
We are still in the dev stage of this project. When we get to installation/commissioning, I will report back any helpful tips I find.
Best of luck.
V/R,
Adam
> a monster at programming
Thanks, but I definitely don't feel that way. Especially after my experiences during the last few months. 😪
I'm partially sorry to hear that you have so many issues, but on the other hand also glad that I'm not the only one. It's good to find a soul mate ;D.
Weird that the AX5000 is also suffering from so many issues. I thought it was quite established and was under the impression that most AX8000 issues were caused by the fact that it is still relatively new.
All the best on your project. I will try to update here the twincat changelog with all the weird things that I encounter. Not much else I can do, besides spamming the official support. I already send them sooo many questions and still have a few open ones.
Roald
My blog: https://cookncode.com/twincat
My code: https://github.com/roald87
I have made significant progress on my project since these posts. If you have any questions, please post them here or I can give you my email.
We are pretty fortunate in this project that we are subcontracted by a much larger company. The main software developer that is our point of contact has 30 years of experience in Motion Control, and honestly, his guidance in my software design has been invaluable.
We have both physically linear (magnetic) axes, rotary axes, and logically linear (rotary axes on ballscrews) axes in our project.
While it took a lot of upfront development/learning effort, learning how to dynamically write to the Drive configuration settings or NC configuration settings at runtime allows for easier commissioning.
For example, we have a "Settings" page in our HMI for all axes, where we take in access-controlled values such as gearbox denominator, numerator, linear motor length, ballscrew pitch, ballscrew length, etc. From those HMI values, I calculate the Feed Constant (Beckhoff's 'Scaling Factor' Numerator), and also auto-set NC Minimum Soft Limit and Maximum Soft Limit positions based on the linear motor length.
I have not fully gotten to commissioning of our project yet and one of my concerns now is that on the Linear Magnet axes, our customer has used non-Beckhoff encoders. From the documentation of the AL8000, you've probably seen that Pole Pair Distance is used in the NC Axis as Feed Constant (SF Numerator) and that there are some notes in the docs about some place where you need to update encoder resolution settings.
Honestly, when we do large scale motion again, I will push the customer to use all Beckhoff everything and One Cable Technology, simply because it makes sifting through all the boilerplate NC/Drive parameters easier when you can scan everything in.
@adam-haney Glad to hear that you made progress!
Here we also made some progress. We try to use as little as possible from the control side of Beckhoff, because it is very opaque what kind of controls they use and what all the parameters mean.
Since we just have a few axis with external encoders, once it was setup it worked. So far at least ;D.
I don't have questions at the moment, but I'll keep your offer in mind. Thanks for the offer :).
Related: I did come across this useful post about how to set the servo offset. I think this article is a great example of how complicated Beckhoff made something which should be trivial. For one there are four different places where the same parameter can be set. And second all of them are done and saved differently, each with their own pros and cons.
My blog: https://cookncode.com/twincat
My code: https://github.com/roald87
Hello @rruiter:
link Beckhoff Polska:
https://www.youtube.com/watch?v=oVp_XOMKDsM
In the Beckhoff England UK Motion Webinar that lasted a week from 2021-05-24 to 2021-05-29, topics covered:
- Torque control demo, of for example an axis turning at velocity and holding it by hand and stopping it when it is with MC_torqueControl...
https://github.com/runtimevic
https://github.com/TcMotion
https://www.youtube.com/playlist?list=PLEfi_hUmmSjFpfdJ6yw3B9yj7dWHYkHmQ
https://github.com/VisualPLC
Hi @runtimevictor,
Thanks for the link, but I don't speak Polish. And the automatic subtitles are disabled or not working for Polish. But, I could understand a little what they were doing though and maybe would have been useful. I see some other AX8000 videos on the Beckhoff Webinar site, but not the ones you mentioned from Bekchoff UK. Do you have a link of those?
Roald
My blog: https://cookncode.com/twincat
My code: https://github.com/roald87
@rruiter ,
I've been looking for it... but I haven't found them to wear it..., you'd have to contact Beckhoff England UK and I'm sure they'll tell you...
You will tell your progress so we all find out...
https://github.com/runtimevic
https://github.com/TcMotion
https://www.youtube.com/playlist?list=PLEfi_hUmmSjFpfdJ6yw3B9yj7dWHYkHmQ
https://github.com/VisualPLC
@rruiter ,
If you want, I have a project, video, etc... to attach, but it's for the AX5000 drive, if you think it might be worth it, tell me and I'll attach it to you...
https://github.com/runtimevic
https://github.com/TcMotion
https://www.youtube.com/playlist?list=PLEfi_hUmmSjFpfdJ6yw3B9yj7dWHYkHmQ
https://github.com/VisualPLC
Hello, I am sorry to jump into topic from nowhere but is it possible that you can share the project you have got with AX5000 ? I am recently trying to learn about beckhoff products but sources that I have found for motion systems are simply too basic for me. Maybe you have some real-life example how to implement a drive, connect it to SW and detailed tuning of it ?
Thank you in advance
https://github.com/runtimevic
https://github.com/TcMotion
https://www.youtube.com/playlist?list=PLEfi_hUmmSjFpfdJ6yw3B9yj7dWHYkHmQ
https://github.com/VisualPLC
https://www.gotostage.com/channel/c59deb70de3e4b9e975a175fb91e6109
https://www.youtube.com/playlist?list=PLdZaQgbD0340K6XapD-q7V_dubaWrYeRn
https://github.com/runtimevic
https://github.com/TcMotion
https://www.youtube.com/playlist?list=PLEfi_hUmmSjFpfdJ6yw3B9yj7dWHYkHmQ
https://github.com/VisualPLC
Update: ContinousUpdate doesn't work. Should be fixed in version >3.1.4024.32. Added it to the known bugs on the change log.
My blog: https://cookncode.com/twincat
My code: https://github.com/roald87
- 17 Forums
- 267 Topics
- 942 Posts
- 2 Online
- 722 Members