# Station leveling

• Подскажите, пожалуйста, как сделать программу для выравнивания станции в горизонтальном положении прикосновением?

## Images

Не могли бы вы перечислить дополнительную информацию? Я хочу быть уверен, что понимаю вашу просьбу.

• Let's say I set the workpiece to be welded in such a position as in the picture. The flange is not in the horizon. I found two points at the ends of the flange by searching. Based on these two points, how do you get the station to align the flange horizontally?

• I am curious as to how the flange becomes misaligned in the first place. Is this a feature of the part that happens to not be flat to the ground? If it is always off of flat, could you just compensate in your robot program to align it to a set point every time? Or, does the operator load the part differently every time? These are the questions I generally ask first.

But, from a robot programming standpoint, I would use touch sensing as follows:
1. Level the part where you want it and note the direction you had to spin the part to align it flat.
2. Place the robot on the edge you want to detect when it is "flat" (in your picture, I would use the other side).

3. Write a job to spin the positioner slowly from its original point in the direction it needs to spin to make it flat. Use the search until rapid input on on the detail edit screen of the positioner spin move.

4. When the part "touches" the robot, note the location of the positioner and shift the program by the difference in locations.

It is hard to explain, but I have written jobs in the past to clock a part on a positioner by spinning it into the parked robot in order to "detect" its location.

Another option you could do would be to take measurements at both edges and compare the Z element of the detected position and write a routine to move the positioner different amounts in different directions until the detected Z values are within whatever tolerance you need to call it flat enough.

If I have missed the mark for what you're looking for, please elaborate more.

• Here is my example.

## Images

• This is exactly the option that is needed because of the very crooked part! <<<Another option you could do would be to measure at both edges and compare the Z element of the detected position and write a routine to move the positioner different amounts in different directions until the detected Z values are within whatever tolerance you need. to call it enough flat>>>.

If I understand how to align it with respect to the rotation of the EX000 (2) positioner (by the difference between the two found points), I will rewrite it to the inclination of the EX000 (1) positioner

I know this example of work, but it does not suit me

• Thanks to everyone, I solved the problem. Here is an example of who will face this.

MSHIFT PX005 BF PX004 PX003 we get the difference of two points

GETE D000 P005 (1) we get (X)

SET R000 D000

GETE D000 P005 (3) we get Z)

SET R001 D000

DIV R001 R000 divide

ATAN R002 R001 we find the tangent of the angle (a) and assign it to the positioner

SET D000 R002

SETE EX002 (2) D000

• You’re smarter than I for sure. I’ve never used trig functions in any of my programs lol