ROZ18P.DOC

(275 KB) Pobierz
Makra i programowanie parametryczne (Macros and Parametric Programming)

Rozdział osiemnasty : Makra    Strona 73

Makra i programowanie parametryczne (Macros and Parametric Programming)

 

              Makra dają programiście możliwość do wykonywania funkcji arytmetycznych i porównań w programie CNC. Wartości zmiennych (V1-V100) mogą być wprowadzone poprzez deklaracje (input statements) lub przekazywane do makr przez zmienne R lub z tabeli baz lokalnych, danych dotyczących narzędzi lub tabel czasów narzędzi. Wartości z wyrażeń makr mogą być przekazywane do programu CNC za pomocą zmiennych parametrycznych (R0-R9).

              Makra posiadają liczne zastosowania. Mogą mieć zastosowanie na przykład do funkcji sondy lub do zarysu części, gdzie części są opisywane za pomocą wyrażeń arytmetycznych.

 

Programowanie parametryczne (Parametric Programming)

 

              Programowanie parametryczne daje programiście możliwość do używania zmiennych parametrycznych R jako reprezentacji wartości dowolnego słowa kodu programu. Zmienne parametryczne : R0, R1 - R9. Programowanie parametryczne używane jest również do transferu danych z zmiennych makr V1-V100 do opisu ruchów, prędkości ... w programach CNC.

 

Przykład :

 

              N13 R1+10. R2+5                            (wyznaczenie wartości R1, R2)

              N14 R3+7.5 R4+5.5 R5+0              (wyznaczenie wartości R3, R4, R5)

              N15 X-R1 Y+R2. G1 F34.              (linia oznacza X10. Y5. G1 F34.)

              N16 X+R3. I-R4 J-R5 G3               (linia oznacza X7.5 I5.5 J0 G3)

 

              Zmienne parametryczne są używane gdy słowa programu wymagają zmiany podczas wykonywania programu lub muszą być zmienione podczas różnych uruchomień. Jednym z typowych przykładów zmiennych słów są słowa używane w podprogramach do obróbki gniazd. Słowa Z w tej procedurze mogą być zmiennymi, co umożliwia obróbkę wielu różnych poziomów. Słowo L służące do przywołania podprogramu może być zmienną służącą do wywołania podprogramu różną ilość razy. Zmienna R używana w słowie L musi wskazywać numer podprogramu oraz liczbę powtórzeń (patrz przykład poniżej). Wartości X, Y, I i J ruchu kołowego mogą być zmieniane przez programowanie parametryczne. Wszystkie słowa programu mogą wykorzystywać zmienne parametryczne. Programowanie parametryczne może być również użyte, gdy programista zamierza wykorzystać ogólny program do obróbki grupy (rodziny) części.

 

              Uwaga : Gdy zmienne są wykorzystywane jako wartości dla innych zmiennych, znak dodatni lub ujemny musi znajdować się pomiędzy dwoma zmiennymi, R9+R2, R8-R2. Zasada stosuje się również do wyznaczenia promienia dla ruchów kołowych oraz podczas opisywania minimalnego prześwitu płaszczyzny dla ustalonych cyklów.

 

Definicja Zmiennej R

 

              Zmienna R jest definiowana przez słowo R, symbol + lub - oraz wartość.

 

Przykład :

 

              N12 R8+50.0.........................Zmienna R8 zdefiniowana jest jako 50.0

              N13 F+R8..............................Zmienna R8 określa wartość prędkości przesuwu na 50.0

 

              Uwaga : Zmienne muszą być zdefiniowane na początku programu lub bezpośrednio przed ich użyciem w programie. Zmienne są wartościami modalnymi i ich wartość pozostaje po zakończeniu programu, po HO oraz po wyjściu z MDI. Zmienne R nie są przechowywane w tablicach jak na przykład zmienne makr V. Programista powinien zawsze określić wartość zmiennej R; w przeciwnym wypadku ostatnio zaprogramowana wartość będzie określona jako R co może spowodować nie przewidywalność programu obróbkowego.

 

Przykład programu parametrycznego :

             

              W poniższym przykładzie zmienne parametryczne R są zdefiniowane w programie głównym w liniach 32 i 37 oraz w podprogramie w linii 19. Zmienne R są wartościami modalnymi i ich wartość pozostaje do momentu gdy ta sama zmienna R jest redefiniowana. Zauważ, że w linii 21 programu zmienna R1 jest zmieniana, zaś zamienna R2 pozostaje niezmieniona.

 

              N01 L100 (podprogram do obróbki rowków)

              N02 (R1=Z, R2= SUB & REPS, R3=promień rowka, R4= średnica rowka)

              N03 X-1. Z-R1 G1

              N04 X-R3 G41

              N05 L+R2

              N06 X+R3 G40

              N07 X1.

              N08 L200 (podprogram do rowka)

              N09 X+R3 Y-R3 I+R3 G3

              N10 X1.

              N11 Y+R4 J+R3 G3

              N12 X-1.

              N13 X-R3 Y-R3 J-R3 G3

              N14 L300 (frezowanie rowka)

              N15 Z0.01 G1

              N16R1+0.1 R2+201.

              N17 G91

              N18 L102

              N19 R1+0.05

              N20 L101

              N21 R1+0.01 R2+202.

              N22 L101

              N23 G0 G49 G90 Z0.1

              N24 M17

              N25 M30

              N26 (

              N27 (program główny)

              N28 G0 G90 S800 M3 E1 X1.5 Y-0.876

              N29 (R1=Z,R2=SUB & REPS, R3=promień rowka, R4= średnica rowka)

              N30 H1 Z0.1 M7

              N31 Z0.01 G1 F30.

              N32 R3+0.19 R4+0.38

              N33 L301

              N34X4. Y-0.876

              N35 L301

              N36 X4.Y-3.45

              N37 R3+0.225 R4+0.51

              N38 L301

              N39 X1.5 Y-3.45

 

Makra

 

              Każda linia makra jest zdefiniowana przez użycie symbolu # na początku linii programu. Makra mogą rezydować w programie głównym, podprogramie. Makra mogą być używane w trybie AUTO, MDI (Manual Data Input), DNC oraz w linii komend. Maksymalna liczba znaków w linii makro wynosi 63.

              Zmienne parametryczne R są używane to transferu danych makra do programu CNC.

 

Przykład :

 

              N1 # V1=V1+2

              N2 # V2=V2-1

              N3 # R1=V1

              N4 # R2=V2

              N5 G0 G90 S8000 M3 E1 X+R1 Y-R2

 

              Program obróbki nie może być kodowany w liniach makra.

 

Przykład :

 

              N1 G0 G90 #V1 = INT(V5*10000)/10000               Linia nieprawidłowa

             

              N1#V1 = INT(V5*10000)/10000                                          Linia prawidłowa

              N2 G0 G90                                                                                    Linia prawidłowa

Przykład programu makro dla prostokąta zwierające wyrażenia PRINT(pisz) i INPUT(pobierz z klawiatury) :

 

              0600 (podprogram dla obróbki kształtującej gniazda)

              #CLEAR

              #PRINT „ENTER THE POCKET LENGTH: ”,(tłum. pisz : „podaj długość                                           gniazda”)

              #INPUT V1 (dane pobrane z klawiatury są przypisane do V1)

              #PRINT „ENTER THE POCKET WIDTH: ”,(tlum. pisz : „podaj szerokość                             gniazda”)

              #INPUT               (dane pobrane z klawiatury są przypisane do V2)

              #R3=V1/2              (R3 jest równe V1 podzielone przez 2)

              #R4=V2/2              (R4 jest równe V2 podzielone przez 2)

              #R2=V1              (przypisanie wartości V1 do parametru R2)

              #R5=V2              (przypisanie wartości V2 do parametru R5)

              GOG90Z.1

              X0Y0

              D1

              Z-.250 G1 F20

              G91 G41 Y-R4

              X+R3

              Y+R5

              X-R2

              Y-R5

              X+R3

              Y+R4 G40 G90                                                        (wyłączenie kompensacji)

              G0 G90 Z.1                                                                      (bezpieczne przesunięcie Z)

              M99                                                                                    (koniec podprogramu)

 

              0700 (podprogram dla obróbki kształtującej gniazda z zaokrągleniem rogów)

              #CLEAR

              #PRINT „ENTER THE POCKET LENGTH: ”,(tłum. pisz : „podaj długość                                           gniazda”)

              #INPUT V1 (wartość X)              (dane pobrane z klawiatury są przypisane do V1)

              #PRINT „ENTER THE POCKET WIDTH: ”,(tłum. pisz : „podaj szerokość                             gniazda”)

              #INPUT V2 (wartość Y) (dane pobrane z klawiatury są przypisane do V2)

              #PRINT „ENTER THE CORNER RADIUS: ”,(tłum. pisz : „podaj promień                             rogu”)

              #INPUT V3              (dane pobrane z klawiatury są przypisane do V3)

              #V4=V3+V3                            rednica)

              #R2=V1-V4                            (przypisanie wartości V1-V4 do parametru R2)

              #R3=V1/2                            (R3 jest równe V1 podzielone przez 2)             

              #R4=V2/2                            (R4 jest równe V2 podzielone przez 2)

              #R5=V2-V4                            (przypisanie wartości V2-V4 do parametru R5)

              #R6=V3                            (promień)

              #R7=(V2/2)-V3(R7 jest równe V2 podzielone przez 2 minus wartość                             promienia (Y))

              #R8=(V1/2)-V3              (R7 jest równe V1 podzielone przez 2 minus wartość                             promienia (X))

              G0 G90 Z.1 H1              (bezpieczne przesunięcie Z)

              X0 Y0                            ...

Zgłoś jeśli naruszono regulamin