Double or Triple Rotarydeltakins on Ethercat
- Mike_Eitel
- Offline
- Platinum Member
Less
More
- Posts: 1150
- Thank you received: 184
31 Oct 2020 11:34 #187890
by Mike_Eitel
Replied by Mike_Eitel on topic Double or Triple Rotarydeltakins on Ethercat
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
Mike
Please Log in or Create an account to join the conversation.
31 Oct 2020 12:53 - 31 Oct 2020 13:30 #187901
by Grotius
Replied by Grotius on topic Double or Triple Rotarydeltakins on Ethercat
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.
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.
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!
loadrt threads name1=base-thread fp1=0 period1=15000 name2=servo-thread period2=1000000
loadusr -W /usr/share/ethercat/linuxcnc_ethercat/src/lcec_conf ethercat-conf.xml
loadrt lcec
net ec-slaves-responding <= lcec.slaves-responding
net ec-link-up <= lcec.link-up
net ec-all-op <= lcec.all-op
addf lcec.read-all base-thread
addf lcec.write-all base-thread
loadrt stepgen step_type=0
addf stepgen.make-pulses base-thread
addf stepgen.capture-position servo-thread
addf stepgen.update-freq servo-thread
# X-AXIS #######################################################
setp stepgen.0.position-scale 130
setp stepgen.0.steplen 5
setp stepgen.0.stepspace 5
setp stepgen.0.dirhold 35000
setp stepgen.0.dirsetup 35000
setp stepgen.0.maxaccel 750
setp stepgen.0.maxvel 500
setp stepgen.0.enable 1
net x1step <= stepgen.0.step lcec.0.output_stepper.dout-0
net x1dir <= stepgen.0.dir lcec.0.output_stepper.dout-1
net floatpos floatpin stepgen.0.position-cmd
net bitdata bitpin lcec.0.output_stepper.dout-2
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.
- TheRoslyak
- Topic Author
- Offline
- Elite Member
Less
More
- Posts: 238
- Thank you received: 37
31 Oct 2020 13:45 #187905
by TheRoslyak
Replied by TheRoslyak on topic Double or Triple Rotarydeltakins on Ethercat
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
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.
31 Oct 2020 14:29 #187915
by Grotius
Replied by Grotius on topic Double or Triple Rotarydeltakins on Ethercat
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.
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.
- TheRoslyak
- Topic Author
- Offline
- Elite Member
Less
More
- Posts: 238
- Thank you received: 37
31 Oct 2020 14:47 - 31 Oct 2020 14:50 #187917
by TheRoslyak
Replied by TheRoslyak on topic Double or Triple Rotarydeltakins on Ethercat
I Find
This is my working configuration *.hal and *.xml
This is my working configuration *.hal and *.xml
Last edit: 31 Oct 2020 14:50 by TheRoslyak.
Please Log in or Create an account to join the conversation.
31 Oct 2020 18:56 #187937
by Grotius
Replied by Grotius on topic Double or Triple Rotarydeltakins on Ethercat
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.
Oke cheers for now !!
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.
Oke cheers for now !!
Please Log in or Create an account to join the conversation.
- TheRoslyak
- Topic Author
- Offline
- Elite Member
Less
More
- Posts: 238
- Thank you received: 37
31 Oct 2020 19:13 - 31 Oct 2020 19:17 #187939
by TheRoslyak
Replied by TheRoslyak on topic Double or Triple Rotarydeltakins on Ethercat
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.
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.
01 Nov 2020 12:54 #188002
by Grotius
Replied by Grotius on topic Double or Triple Rotarydeltakins on Ethercat
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?
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.
- TheRoslyak
- Topic Author
- Offline
- Elite Member
Less
More
- Posts: 238
- Thank you received: 37
01 Nov 2020 13:14 #188006
by TheRoslyak
Replied by TheRoslyak on topic Double or Triple Rotarydeltakins on Ethercat
Rotary!
Please Log in or Create an account to join the conversation.
02 Nov 2020 17:00 - 02 Nov 2020 17:04 #188124
by Grotius
Replied by Grotius on topic Double or Triple Rotarydeltakins on Ethercat
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.
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.
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.
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.
Last edit: 02 Nov 2020 17:04 by Grotius.
Please Log in or Create an account to join the conversation.
Time to create page: 0.088 seconds