Основы числового программного управления. Хитров А.И - 35 стр.

UptoLike

Составители: 

35
τтакт;
F – скорость подачи, мм/ мин;
d = h – дискретность системы ЧПУ, мм;
у
н
, х
н
начальная точка;
у
к
, х
к
конечная точка.
CIR: if TAKT > 1 then go to CYCLE
read x
н
, у
н
, х
к
,у
к
, I, J, ±F
r = sqr((x
н
– I)
2
+ (у
н
- J)
2
)
x = x
н
; y = у
н
; codx = x; cody = y; f = 0
U= int(F*τ/(60*d));
if x
н
= I and у
н
> J then α
н
= π/2
if x
н
= I and у
н
< J then α
н
= 3*π/2
if x
н
> I then α
н
= atn((у
н
– J)/( x
н
– I))
if x
н
< I then α
н
= π + atn((у
н
– J)/( x
н
– I))
if x
к
= I and у
к
> J then α
к
= π/2
if x
к
= I and у
к
< J then α
к
= 3*π/2
if x
к
> I then α
к
= atn((у
к
– J)/( x
к
– I))
if x
к
< I then α
к
= π + atn((у
к
– J)/( x
к
– I))
if sgn(α
н
- α
к
) = sgn(U) then ∆α = abs(α
н
- α
к
)
else ∆α = 2π - abs(α
н
- α
к
)
L = 4 * r * ∆α/π ; l = 0
CYCLE: X = x – I; Y = y – J;
if abs(X) >= abs(Y) and sgn(f*sgn(X)*sgn(Y)) = sgn(U)
then(y = y – U*sgn(X); f = f – 2*Y*sgn(X) + U; go to END);
if abs(X) < abs(Y) and sgn(f*sgn(X)*sgn(Y) < > sgn(U)
then (X = X + U*sgn(Y); f = f + 2*X*sgn(Y) + U; go to END);
x = x + U*sgn(Y); y = y – U*sgn(X);
f = + 2*(abs(X) – abs(Y))*sgn(Y) + 2*U;
END: l = l + abs(X – codx) + abs(y – cody);
у
у
н
J
I х
н
х
к
у
к
R
х
                         τ – такт;
                         F – скорость подачи, мм/ мин;
                         d = h – дискретность системы ЧПУ, мм;
                         ун, хн – начальная точка;
                         ук, хк – конечная точка.

                               у



                           ун
                                                 R
                                                          ук
                           J



                                     хн    I          хк       х


   CIR: if TAKT > 1 then go to CYCLE
        read xн , ун , хк ,ук , I, J, ±F
        r = sqr((xн – I)2 + (ун - J)2)
        x = xн ; y = ун ; codx = x; cody = y; f = 0
        U= int(F*τ/(60*d));
        if xн = I and ун > J then αн = π/2
        if xн = I and ун < J then αн = 3*π/2
        if xн > I then αн = atn((ун – J)/( xн – I))
        if xн < I then αн = π + atn((ун – J)/( xн – I))
        if xк = I and ук > J then αк = π/2
        if xк = I and ук < J then αк = 3*π/2
        if xк > I then αк = atn((ук – J)/( xк – I))
        if xк < I then αк = π + atn((ук – J)/( xк – I))
        if sgn(αн - αк) = sgn(U) then ∆α = abs(αн - αк)
        else ∆α = 2π - abs(αн - αк)
        L = 4 * r * ∆α/π ; l = 0

CYCLE: X = x – I; Y = y – J;
       if abs(X) >= abs(Y) and sgn(f*sgn(X)*sgn(Y)) = sgn(U)
       then(y = y – U*sgn(X); f = f – 2*Y*sgn(X) + U; go to END);
       if abs(X) < abs(Y) and sgn(f*sgn(X)*sgn(Y) < > sgn(U)
       then (X = X + U*sgn(Y); f = f + 2*X*sgn(Y) + U; go to END);
       x = x + U*sgn(Y); y = y – U*sgn(X);
       f = + 2*(abs(X) – abs(Y))*sgn(Y) + 2*U;
 END: l = l + abs(X – codx) + abs(y – cody);

                                    35