CNC Edward Dawidowicz
   biuro@eande.com.pl


    CNC programowanie

-------------------------------------------------------------------------------------------------------------------------

    Programować każdy może.
    Aby w powyższym stwierdzeniu nie doszukiwać się dwuznaczności dodaję, każdy, kto ma odrobinę samozaparcia,
    dociekliwości oraz niezbędne minimum wiedzy z geometrii.
    Należy pamiętać, że umiejętność poprawnej obsługi nie wymaga od użytkownika dogłębnej
    znajomości działania maszyny, podobnie jak nikt od nas nie wymaga, abyśmy wiedzieli jak działa
    wiele urządzeń powszechnie używanych - telefon, pilot, telewizor czy wręcz samochód, którym jeździmy.
    Zadaniem użytkownika jest używanie ich zgodnie z przeznaczeniem, a w maszynach i urządzeniach obserwacja
    porawności ich działania.
    Trudno wymagać od operatora, aby posiadł od razu wszystkie umiejetności związane z obsługą maszyny,
    podobnie jak początkujący kierowca wiedzę swą pogłębia przez zdobyte doświadczenie.
    Niemniej, zarówno kierowca, jak i operator muszą umieć rozpoznać niewłaściwe zachowanie
    sprzętu który użytkują.

    Podobnie jest z pisaniem programów do maszyny - trzeba od czegoś zacząć, by móc się nauczyć.

    Rozpocznijmy od najprostrzych informacji projektowania torów narzędzia w maszynach o 3 osiach sterowanych,
    czyli planujemy przejazd maszyny w kierunkach X, Y, Z, gdzie X i Y są ruchami wzdłuż w poprzek stołu, Z jest ruchem góra-dół.

    Programy maszynowe, realizowane są zgodnie z kolejnością poleceń zawartych w liniach (blokach) programu.
    Każdy program ma podobną konstrukcję:

      • 1. Początek programu, nazwijmy go umownie sekwencją startową
      • 2. Wybór narzędzia
      • 3. Opis drogi narzędzia
      • 4. Koniec programu, nazwijmy go umownie sekwencją końcową

    Jeśli obróbka elementów odbywa się na tym samym miejscu na stole i są one identycznie mocowane (np. na ssawkach)
    - sekwencja startowa jest zawsze taka sama.
    Podobnie jest z sekwencją końcową.
    Zostawmy je do dalszej analizy.

    Najistotniejszym fragmentem programu maszynowego jest opis toru narzedzia.
    Tego typu opis jest to ciąg poleceń wydawanych maszynie, za pomocą instrukcji (G code)
    Zawsze musimy wydać polecenie wskazujące punkt rozpoczęcia obróbki ( polecenie G0 ), a potem kolejno wskazujemy
    następne punkty do których ma podążać narzędzie.
    Narzędzie porusza się najkrótszą drogą od punktu do punktu, możemy jednak wybrać
    czy tor narzędzia jest odcinkiem (polecenie G1) czy łukiem ( polecenia G2 i G3).
    W przypadku wyboru łuku jako drogi narzędzia, musimy wskazać promień łuku i wybrać kierunek
    jego obróbki:
    G2 - maszyna wykona łuk zgodnie z kierunkiem wskazówek zegara
    G3 - maszyna wykona łuk przeciwnie do kierunku wskazówek zegara

    Maszyna wykonuje obróbkę poruszjąc się po liniach prostych lub łukach.
    Pozostaje nam tylko wskazanie głębokości, na której pracuje narzędzie.
    W zasadzie to wszystko.


    Dość trudno jest napisać program, szczególnie rozbudowany, jeśli nie ma możliwości
    weryfikacji jego poprawności.
    Aby ułatwić Wam pierwsze kroki, proponuję zainstalować symulator CNC.
    Jest to darmowa wersja edytora kodu maszynowego, dająca możliwość analizy poprawności programu w oknach graficznych,
    wymagająca od użytkownika cyklicznego "tankowania paliwa" ( raz na kwartał).
    Po lewej stronie - strona cncsimulator, po prawej widok symulatora po zainstalowaniu.



    symulator


    Kod możemy wczytać, edytować bezpośrednio w oknie tekstowym lub wkleić, skopiowany z iinego pliku.
    W zakładce Simulate/Detail settings ustawiamy wymiary obrabianego półfabrykatu:
    Lenght X 300, Width Y 300.

    Na razie wystarczy.

    Poniżej zamieściłem kody toru narzędzia wyodrębnione kolorami nienieskim, zielonym i czerwonym.
    Skopiujcie je wprost ze strony, łącznie z komentarzami do okna tekstowego symulatora i uruchomcie symulację.

    UWAGA: zamieszczone poniżej programy mają charakter poglądowy. Mają na celu wprowadzenie czytającego w logikę
    programów sterujących maszynami CNC.



    G0 X0 Y0         ; ( X=0mm Y=0mm ) punkt początku frezowania
    G1 Z-5
    G1 X0 Y200         ; ( X=0mm Y=200mm ) wspolrzedna następnego punktu
    G1 X100 Y200     ; ( X=100mm Y=200mm )
    G1 X100 Y0         ; ( X=100mm Y=0mm )
    G1 X0 Y0            ; ( X=0mm Y=0mm )

    Identyczny przejazd uzyskamy wpisując:

    G0 X0 Y0       ; punkt początku frezowania
    G1 Z-5
    G1 Y200         ; wspolrzedna następnego punktu
    G1 X100
    G1 Y0
    G1 X0

    lub

    G0 X0 Y0     ; punkt początku frezowania
    G1 Z-5
    Y200        ; wspolrzedna następnego punktu
    X100
    Y0
    X0

    symulator

    Łatwo zauważyć, że mimo różnic w zapisie, wywołują one jednakowe działamia.
    W programach sterujących maszynami, jest wiele instrukcji i zmiennych, które mają charakter modalny,
    tzn. obowiązują do odwołania lub zmiany ich wartośći.

    Nasuwa tu się analogia do znaków zakazu - obowiązują do zmiany ich wartoći lub odwołania, są też takie,
    które obowiązują w określonym miejscu.
    Kierując się czytelnością programu, piszmy w blokach wszystkie wartości- łatwiej się program analizuje,
    szczególnie przy programach obszernych, których nie widzimy na jednej stronie edytora.
    Maszynie jest to obojętne, za to można uniknąć pomyłek.


    Kolejny przykład pokazuje, jak można rozmieścić obróbkę takiego samego programu,
    w różnych miejscach obrabianej płyty.
    Przekopiujcie całą treśc ( kolor purpurowy) do symulatora.
    Dolna i lewa krawędź konturu zaprojektowane zostały w wartościach X=0 i Y=0.
    Zmianę miejsca położenia toru narzędzia uzyskuje się przez przesunięcie położenia punktu zerowego
    układu współrzędnych.


    T2
    G0 X0 Y0         ; ( X=0mm Y=0mm ) punkt początku frezowania
    G1 Z-5
    G1 X0 Y200         ; ( X=0mm Y=200mm ) wspolrzedna następnego punktu
    G1 X100 Y200     ; ( X=100mm Y=200mm )
    G1 X100 Y0         ; ( X=100mm Y=0mm )
    G1 X0 Y0            ; ( X=0mm Y=0mm )
    G1 Z10

    G92 X75 Y25            ;przesunięcie zera układu współrzędnych ( X=150mm Y=50mm )

    G0 X0 Y0         ; ( X=0mm Y=0mm ) punkt początku frezowania
    G1 Z-3
    G1 X0 Y200         ; ( X=0mm Y=200mm ) wspolrzedna następnego punktu
    G1 X100 Y200     ; ( X=100mm Y=200mm )
    G1 X100 Y0         ; ( X=100mm Y=0mm )
    G1 X0 Y0            ; ( X=0mm Y=0mm )
    G1 Z10

    G92 X150 Y50            ;przesunięcie zera układu współrzędnych ( X=150mm Y=50mm )

    G0 X0 Y0         ; ( X=0mm Y=0mm ) punkt początku frezowania
    G1 Z-10
    G1 X0 Y200         ; ( X=0mm Y=200mm ) wspolrzedna następnego punktu
    G1 X100 Y200     ; ( X=100mm Y=200mm )
    G1 X100 Y0         ; ( X=100mm Y=0mm )
    G1 X0 Y0            ; ( X=0mm Y=0mm )
    G1 Z10

    symulator

    Instrukcja G92 użyta w tym celu w programie została zastosowana wyłącznie do demonstracji działania.
    Programowe przeunięcie zera, jest realizowane różnie, np. TRANS X50 Y100 Z20 ( Reichenbacher SINUMERIK ),
    O X=50 Y=100 Z=20 ( SCM program Xilog3).
    Nie ma programów działających na wszystkich maszynach.
    Maszyny tego samego producenta, mogą różnić się kodami. Wynika to z rozwoju konstrukcji,
    możliwośći technicznych maszyny jak i rozwoju układów sterujących.


    Pozostaje nam jedynie zdefiniować tory krzywoliniowe.

    G0 X0 Y0         ; ( X=0mm Y=0mm ) punkt początku frezowania
    G1 Z-5
    G1 X0 Y200         ; ( X=0mm Y=200mm ) wspolrzedna następnego punktu
    G2 X100 Y200 R50     ; ( X=100mm Y=200mm )
    G1 X100 Y0         ; ( X=100mm Y=0mm )
    G1 X0 Y0            ; ( X=0mm Y=0mm )
    G1 Z10

    G92 X75 Y25            ;przesunięcie zera układu współrzędnych ( X=150mm Y=50mm )

    G0 X0 Y0         ; ( X=0mm Y=0mm ) punkt początku frezowania
    G1 Z-3
    G1 X0 Y200         ; ( X=0mm Y=200mm ) wspolrzedna następnego punktu
    G3 X100 Y200 R50     ; ( X=100mm Y=200mm )
    G1 X100 Y0         ; ( X=100mm Y=0mm )
    G1 X0 Y0            ; ( X=0mm Y=0mm )
    G1 Z10

    G92 X150 Y50            ;przesunięcie zera układu współrzędnych ( X=150mm Y=50mm )

    G0 X0 Y0         ; ( X=0mm Y=0mm ) punkt początku frezowania
    G1 Z-10
    G1 X0 Y200         ; ( X=0mm Y=200mm ) wspolrzedna następnego punktu
    G2 X100 Y200 R70     ; ( X=100mm Y=200mm )
    G1 X100 Y0         ; ( X=100mm Y=0mm )
    G1 X0 Y0            ; ( X=0mm Y=0mm )
    G1 Z10



    symulator

    Jeśli zmnieniając parametry opisanych powyżej figur, uzyskujecie oczekiwane rezultaty, możecie traktowć to,
    jako wystarczjący wstęp do programowania maszyn.
    Wycinanie konturów jest w zasadzie proste : rozpoczynamy obróbkę w żądanym punkcie, następnie krok po kroku
    opisujemy tor narzędzia używając poleceń interpolacji liniowej (G!) lub kołowej (G2, G3).


    Wszystkie dotychczasowe programy, maszyna realizowałaby, jadąć osią (srodkiem) narzędzia po wskazanych liniach.
    Co zrobić aby wyciąć zaprojektowany kształt od strony zewnętrznej lub wewnętrznej?
    Narzędzie musi poruszać się torem równoległym do konturu, czyli z lewej lub prawej strony linii konturu.
    Lewą i prawą stronę zawsze definiujemy w stosunku do kierunku poruszania się narzędzia, nie jego obrotu lub rysunku.
    Mamy dwie możliwości:

    1. projektujemy tor narzędzia odsunięty od konturu o odległośc równą promieniowi użytego narzędzia.

    G0 X0 Y-10
    G41
    G1 Y0
    G1 Z-5
    G1 Y200
    G1 X200
    G1 Y0
    G1 X0
    G40 G1 Z10 G1 X-20

    Polecenie G41, każe jechać maszynie po lewej stronie linii, polecenie G40 przywraca ruch narzędzia
    srodkiem po torze. Zwykle MUSIMY dopisać linie dojazdu do wycinanego konturu, np. powyzej materiału: G0 X0 Y-10
    G41
    G1 Y0
    W tej części maszyna korygowała się do jazdy po torze z poleceniem G41.

    W punkcie początku konturu obniżamy narzędzie, i wycinamy kontur: G1 Y0
    G1 Z-5
    G1 Y200
    G1 X200
    G1 Y0
    G1 X0

    W punkcie końca konturu wunurzamy narzędzie, i dopisujemy odjazd po torze bez korekcji: G40 G1 Z10 G1 X-20

    Spróbójcie przy realizacji tego programu użyć polecenia G42 (zamiast G41).
    Narzędzie pojedzie po prawej stronie linii - wytnie kontur od wnętrza.

    G41
    G0 X0 Y-10
    G1 Z-5
    G1 Y200
    G1 X200
    G1 Y0
    G1 X0
    G40 G1 Z10 G1 X-20

    Niewłaściwie wpisane polecwenie korekcji, może spwodować blędne wykonanie konturu(kieszeni),
    uszkodzenie kształtu w punkcie początku i końca, np.

    przykład 1
    G42
    G0 X20 Y20 Z-2
    G1 Y120
    G1 X120
    G1 Y20
    G1 X20
    G40

    przykład 2
    G41
    G0 X20 Y20 Z-2
    G1 Y120
    G1 X120
    G1 Y20
    G1 X20
    G40


    Ufam. że przybliżyłem Wam zaady programowania torów jazdy narzędzi.
    Zdaję sobie sprawę, że pisanie programu w edytorze tekstowym, jest dość uciążliwe,
    niemniej dla prostych konturów - bardzo proste.

    Bardziej skomplikowane kształty łatwiej jest zaprojektować
    w programie CAD, a następnie przekonwertować na program maszynowy .