Double or Triple Rotarydeltakins on Ethercat

More
31 Oct 2020 11:34 #187890 by Mike_Eitel
Codesys is a good choice. I like it. Probably a much better choice than trying to convince a 9axis planer to control 3 independent handling devices. I have done in earlier days a lot with codesys V 2 ... Never used the motion NC module. Is i see your app is exactly in their focus... Happy hacking!
Mike

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

More
31 Oct 2020 12:53 - 31 Oct 2020 13:30 #187901 by Grotius
I was thinking a little bit more about the project.

I understand that rasperry's are not alway's the solution. Ethercat component's are not allowed in Nucleair facilities.

One pc can control many delta robot's at the same time, below a safe cpu load.

When you have the pc installed with Ethercat Rtos you have a active hal (realtime) layer and ethercat bus running.

Then in the halfile we connect all the delta robots and the rest of the i-o for the application, like safety, sensors etc.
A halfile component does the kinematic translations. (this piece can also be done in the c++ code of the gui).
A halfile component does the position control for the delta motors. You have pid servo control?

A C++ interface program (forget the linuxcnc program) buffers the xyz posiion data packages wich come from the "vision pc".
This packages contain all the information like x,y,z position, rotation, speed, etc.

The ethercat pc works these packages down and can sent flags back to the vision pc. The etercat pc can have some logic of how
to optimize the cascade workflow. Dijkstra's shortest path algoritme for example can be usefull.

The interface program can be set up like customer wants it to be. The layout is their homework. The code is the programmers home work.

A example hal file that i used for testing to connect everything from the c++ gui and to the robots.
This is from a real field test, i did a few weeks ago. With perfect realtime results.
Warning: Spoiler!


And for the user interface, the c++ gui (linuxcnc replacement), you can sent the commands automatic.
For example a position slider, that gives a motor position.
In this case it send a float value. It sends the final motor position to the hal layer. The hal layer send's it to the ethercat bus.
That's the translation between user land and kernel land.
void MainWindow::on_spinBox_pos_valueChanged(int arg1)
{
*((hal_float_t *) (float_data_0->pin)) = arg1;
}
Last edit: 31 Oct 2020 13:30 by Grotius.

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

More
31 Oct 2020 13:45 #187905 by TheRoslyak
I do not quite understand why you are publishing these thoughts.
Firstly, I do not use any interface on ethercat pc. There only linuxcncrsh is included.
Secondly, as I understand it, all the parameters associated with step-dir are not needed for ethercat. It uses only the position.
I unfortunately left the working * .hal configuration in the office. I can show it only on Monday :-(

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

More
31 Oct 2020 14:29 #187915 by Grotius
Hi,

I do not quite understand why you are publishing these thoughts.
To get your opinion about my thoughts.

If you have a stepper gantry machine and u use EL2124 for the motors you have to do it like in the hal example.
That's why i asked, do you use pid for position command? I can imagine a delta robot uses stepper motors with EL2124 for example.
But that is not a solution for a cascade, will take up too much pc power.

We don't need linuxcncrsh if hal and c++ is used. Transferring data goes with a piece of c++ code. That will take care of the packages.
Much better, and much more is possible that way. One data package may contain 10 or 1000+ items.

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

More
31 Oct 2020 14:47 - 31 Oct 2020 14:50 #187917 by TheRoslyak
I Find ;-)
This is my working configuration *.hal and *.xml
Attachments:
Last edit: 31 Oct 2020 14:50 by TheRoslyak.

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

More
31 Oct 2020 18:56 #187937 by Grotius
Hi,

I have looked into the files. It looks oke. Do you have a link or picture of the robot actuator? I suspect it's a special device because its working on a 0.5 amp's 24 volt output.

So far as i can see is the stepgenerator running in the servo thread and is only used for updating the robot positions.
It's not acutally doing the stepgeneration but only used for updating positions. Quite a clever solution. B)

Oke cheers for now !!

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

More
31 Oct 2020 19:13 - 31 Oct 2020 19:17 #187939 by TheRoslyak
A special device is the output module from beckhoff. It controls the pneumatic valve. I am using Hiwin D2T drives. Initially, we planned to use the output from them. But these outputs are not working! I had to install an additional unit.
In addition, they have problems with the theory of automatic control.
In the next version, we plan to use Yaskawa Sigma 7.
Last edit: 31 Oct 2020 19:17 by TheRoslyak.

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

More
01 Nov 2020 12:54 #188002 by Grotius
Hi,

I was able to compile a second deltakins driver. But before i do a lot of coding. Can you look in the
ini file wich kinematic you use.

Is it lineardeltakins?

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

More
01 Nov 2020 13:14 #188006 by TheRoslyak

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

More
02 Nov 2020 17:00 - 02 Nov 2020 17:04 #188124 by Grotius
Hi,

Have tried to integrate the rotary delta for 3 robots. An sich the 3 kinematic files are oke. They compile.

But it goes wrong in other pars of linuxcnc, see the readme file. It took several hours, and i stopped because it was
becoming a no go. :dry:

The easyest way is to set up the cascade with one pc is to write some custom c++ code.

The file rotarydeltakins-common is the most interesting one.
Attachments:
Last edit: 02 Nov 2020 17:04 by Grotius.

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

Moderators: PCWjmelson
Time to create page: 0.088 seconds
Powered by Kunena Forum