Position vs Velocity mode

More
2 years 4 months ago #303809 by rodw
Replied by rodw on topic Position vs Velocity mode

There is another thread on the homing issues. A custom homing function is being tapped about with Rodw. There is a link to the github file. But, as far as I know, it is beta and does not show functionality for gantry type homing for those who do not have the higher grade 23bit multi turn Absolute encoders with battery storage of the encoder position through power cycle. In my opinion this would be the only way as I can tell with LCNC to have homing with a gantry. Given the pure open loop controller/drive interface and the I/O lag based on the Etherlabs ECAT driver, if you tried to use the I/O from the drive to catch the home switch and then catch the index pulse, you could have a roving home target.
 
There is nothing beta about the Custom homing method. Its part of Linuxcnc and documented for over two years. In fact some people have quietly implemented it.  But its up to the user to implement a version for his needs. Nobody wants to do the hard work of coding.  If you want to home a gantry using custom homing, its up to you to include support for it.

I might be wrong, but I see this is pretty trivial to add for Ethercat drives that have been homed internally. Once homed, they just need to move each side of the gantry  by the amount of the home-offset specified in the INI file in unison and reset the position as 0,0. Whether that works for drives with absolute encoders remains to be seen.
 
The following user(s) said Thank You: zmrdko
More
2 years 4 months ago #303825 by Donb9261
Replied by Donb9261 on topic Position vs Velocity mode
Sorry, Rod I was talking about your version in regard to Beta you have been working on. Not the custom homing overall. That is well established.

After too much coffee, and some serious good nerd time I agree the issue for gantry homing is trivial. Based on Rod's feedback I think the drives can handle the entire scope of homing using the cia402_homecomp.comp driver. Correct me if I am wrong. You know more about the LCNC side than I do.

Based on the LS Electric iX7 drive manual there are many homing methods. All that use the index and home switch seem to match that of Delta and other EC drives and follow ISO methods.

Regardless of whether an int n_extrajoints, the method in the drive should work by simply setting OP Mode 6 to the respective drives. In the case of extra joints(XYYZ), both YY motors would receive the OP 6 control word when it was their turn to home, and the drives would start the homing procedure at the same tick cycle(sync'd +-.001ms). This requires careful thinking on the drive side since the motor direction is opposite per motor. Which I think the direction of travel per motor should be set in the drive and not controlled by LCNC. Both drives must have the exact same homing method setup. Also, acc and dec should be the same which is typical. FF gains the same. Homing speeds(based on the drives home speed params for your drives) must be the same. The home limits must be pretty close to the same actuation time with a tolerance of around .125mm or .005". Both drives need to home to index since that value never changes(unless one motor slips the coupling or is changed). Each drive will have its' own home offset and each motor after finding the index will stop at the offset potion and call that zero or home(each motor has its' own home_offset in the drive not LCNC). At this point the home complete Tx is sent to LCNC and LCNC sets homed pin for each motor and resets the LCNC POS Counter/register to zero, update halui for gui. Set OP 8. Next drive in line to home until n_joints is satisfied for all joints.

The reason you need to have the home switches set very tightly is the reversal once the home switch is found so as not to create a large error between the 2 motors causing ballscrew or pinion damage if say they are .250mm out of sync mechanically. This will cause wear and eventually loss of accuracy.

Other than the above, I see very little need to make any real custom homing methods as long as the drives follow the cia402 homing methods. Mitsubishi, Delta, Yaskawa, Panasonic, Sanyo Denki, etc. all use the same or more homing methods as this home and index type has been standard for well over 4 decades.

Each drive will have to be set up according to the drive OEM properly and accurately. But, based on the above if correct the homing issue can be standardized without much fuss or C coding at all. Which is nice.

But, all the above is contingent on whether your drive supports this functionality.

Hope that helps.

The LS Electric iX7 manual is here:

cdn.automationdirect.com/static/manuals/.../ix7nhusermanual.pdf

Section 5.6 describes each homing method available.

Page 136 shows the breakdown of the homing PDO's. The Home Offset PDO is R only. You can RW the other values but I think this is best handled at the source which is the drive and hard coded in the drive. This will keep the fat fingers to a minimum and not send erroneous data on the pipe. KISS method applies as always.

I include LS Electric drives because they are my chosen vendor not as a sponsored endorsement.
The following user(s) said Thank You: rodw, zmrdko
More
2 years 4 months ago #303829 by rodw
Replied by rodw on topic Position vs Velocity mode
Thanks, it was interesting to hear somebody else's take on homing.i had actually forgotten about the home offset in the drive.
Different machines will have different stiffness. I was horrified when I racked my plasma gantry to see it twist at least 6 inches out of alignment, then fully correct itself when homed. And I thought it was stiff!

Getting drives to home all together won't be a problem. The lcec driver reads all pdos at the beginning of  the servo loop and writes out all pdos at the end after Linuxcnc has updated anything heading for the ethercat bus. Even a modest PC completes the servo thread in about 200 usec, then sleeps for about 800usec until the thread is fired again. So at a guess, all drives will commence homing within a 50 usec time slot.

Also be aware that a router or plasma should mark out 4 points forming a rectangle or square on the table and the diagonals measured to ensure they are the same length as part of the squareness calibration.
The following user(s) said Thank You: zmrdko
More
2 years 4 months ago #303884 by Donb9261
Replied by Donb9261 on topic Position vs Velocity mode
Depending on the design the motor end effect torque can be substantial and will break stuff. A 10mm pitch ball screw with a 2.9nm(750W) servo can generate near 1500nm or force. That is a lot. Most major industrial CNC machines have at least 5000nm of end effect force. Therefore, using tandem axis control must be set up very accurately.

There is a caveat to my prior statements in regard to home to index in the drive with a tandem drive. That is the index pulse alignment. This is where things can get harry quick. If the index pulses are 180 degrees out from each other, then you home to the index for each motor you will be out of square by the pitch of your driven axis. A 10mm pitch ball screw would be out by at least 5mm when final home is complete. If your machine is real stiff this could break a bolt, warp a ball screw, etc.

Even an ABS encoder has a one per rotation pulse aka index pulse. On an incremental encoder this is the Z pulse. On an ABS serial encoder this is the turn data marker. They do the same thing but have different meanings. Regardless, it would be wise to know where the 2 motors are in relation to their respective index pulse locations. Every situation is different in how to find that pulse sync location. But, it is well worth the time and effort. Usually, a few degrees from exact sync is acceptable.

Hope that helps...
The following user(s) said Thank You: rodw, zmrdko
More
2 years 4 months ago #303889 by Donb9261
Replied by Donb9261 on topic Position vs Velocity mode
A possible scenario to locate the mechanics of your 2 motors would be to do the following.

Home the 2 motors with zero offsets. Then measure your square determine the difference. Say 3mm out of square. Choose an appropriate motor to adjust. Place an indicator on that chosen motors frame to read the travel. Release the motor coupling and rotate the ball screw amount required to square the 2 sides +-.150mm or .007~.008" then lock the coupling. Rehome the tandem axis. Then measure and adjust the home offset parameters to complete the setup until your square is within .005~.025mm based on your acceptable tolerance. Then, to ensure that the reversal timing is aligned, once the homes are "squared" move the axis until at least 1 home switch activates. Then move the inactive switch until it makes at the same place. This will eliminate racking at reversal which will over time cause wear and issues that are preventable.

I only use compression type motor couplings. Keyed couplings cannot be used for the above alignment for obvious reasons.

The same would apply for rack and pinion designs as far as the connection type using compression couplings and the procedure listed above.

Remember that .001" out of square on the gantry axis will be exponential as the perpendicular axis(if X is your tandem axis then Y would be the P axis) axis moves from it's reference position. Meaning that over a 10" travel the tool tip will not be .001" out of position or CL of expected location, it will the rise of the triangle out. Here possibly .0025 or so. At 20", even more. Ideally you want the tandem square to be zero in perpendicularity to the P axis. This will also help with concentricity when interpolation of holes is performed.

I may do a post on using ISO standards of machine tool squareness and how the ISO describes the measurement of the parallelism, perpendicularity, and total square of the full cartesian coordinate system for both 3+2 and true 5x machines soon. I think it would be helpful for those unlike me who have 30+ years of nerding on CNC at the highest levels to understand how to get the most out your equipment and save themselves from many many headaches. Give me a week or 2 to put the documents and graphics together. After following the course, you will be able to have a machine that is aligned to ISO standards. It may sound trivial to do so, but doing so saves businesses annually well over $10B in maintenance and production loss costs. As you already know, the parts for CNC are not cheap. And time is money.

I was asked recently why I would just freely give away trade secrets. The answer is clear. The world has slowly stop making things and economic growth is showing that net effect. I am hoping that in sharing my experience, a flower will open up and a new manufacturing business will contribute to the equation driving economic growth in market economies. This benefits every single living being. Any notion otherwise, would be ill advised. Lol. I am a charitable guy, but I am also a strong capitalist.

Kinda nerdy, but I hope that helps.
The following user(s) said Thank You: rodw, zmrdko, NickH
More
2 years 4 months ago #303890 by Donb9261
Replied by Donb9261 on topic Position vs Velocity mode
For the super nerdy, you can read all about it in the ISO standards for Geometric Accuracy by looking up CSN ISO 230-1(Linear Accuracy) and CSN 230-7(Rotary Accuracy). Or simply save the money it costs and wait for me to tell you about the ISO's and how to actually test them. There are other accuracy tests but they are expensive to test and as long as the above is satisfied, you can forego them and still have a solid .025mm total accuracy tolerance as long as your backlash is small. Usually within .075mm/per axis is ideal. Then, a compensation can be be properly made in the control to account for that .075mm/per axis.
The following user(s) said Thank You: rodw, zmrdko
Time to create page: 3.251 seconds
Powered by Kunena Forum