Witam serdecznie,
Nie jeden z Was drodzy użytkownicy zdecydował się na budowę własnej maszyny CNC. Jest to dość skomplikowane przedsięwzięcie, i sam pomysł aż do projektu może być całkowicie zróżnicowany. Sens jednak jest jeden, a jedyna wspólna rzecz między wszystkimi konstrukcjami to sterowanie. Wybór tutaj jest już ograniczony, do kilku – kilkunastu systemów sterowania. Ja w tym artykule chciał bym zająć się najtańszym ale i najlepszym moim zdaniem rozwiązaniem, do którego zapewne nie łatwo będzie Was przekonać ;).
Chodzi o całkowicie darmowy system o nazwie „CNCGRAF 1.32” działający pod systemem DOS. Steruje maszyną za pomocą portu LPT bez żadnej dodatkowej elektroniki.
Mimo że jest to aplikacja DOSowska jej wygląd jest całkiem nowoczesny. Z wyglądu przypomina nieco oprogramowanie starszych maszyn przemysłowych z którymi spotkałem się w mojej karierze zawodowej. W myśl zasady że narzędzie ma być porządne i praktyczne a nie ładne i kolorowe, wszystko by się tutaj zgadzało.
Dlaczego DOS a nie Windows czy Linux ?
Sterowanie przez port LPT silnikami krokowymi polega na wystawieniu sygnałów na odpowiednie piny portu. Są to sygnały kierunku (DIR) oraz kroku (STEP). W przypadku kierunku sygnał ten nie ma dużych częstotliwości, bo silnik kręci się w jednym kierunku jakiś dłuższy czas. W przypadku sygnału kroku impulsy wystawiane są z większą częstotliwością dochodzącą do kiloherców. Jeśli ktoś stosuje modny w obecnych czasach podział kroków, częstotliwość może być 2 , 4 , 8 , 16 a nawet 32 razy większa. Najlepiej by było gdyby system sterowania w czasie wystawiania impulsów STEP nie zajmował się już niczym więcej, niemniej jednak ma jeszcze mnóstwo innej roboty, którą musi wykonać między impulsami. Obsługa pięknej grafiki, USB, PCMCIA, Karta dźwiękowa, wszystkie usługi ładowane podczas startu systemu takie jak aktualizacje, obsługa sieci, Plug&Play, indeksowanie plików i całe multum innych. Wszystko to musi zrobić w tzw. przerwaniach procesora. Jeśli wszystkie czynności zmieszczą się w czasie, nie ma większego problemu. Jeśli tylko nagle pojawi się jakieś nieprzewidziane żądanie w przerwaniu które zajmie więcej czasu niż jeden cykl przerwania nastąpi tzw utrata kroku/kroków, o której zapewne przekonali się użytkownicy znanego oprogramowania działającego w Windows, czy dedykowanej dla CNC dystrybucji Linuksa. (Zarówno aplikacje pod Windows jak i systemy oparte na Linuksie są bardzo dobre, ale nie do sterowania przez LPT!).
Co z DOSem ?
Lista usług i programów działająca w tle gołego systemu DOS jest bardzo skromna. Część z nich zanika po samym wyłączeniu zbędnych urządzeń w BIOSie. Z części można jeszcze zrezygnować modyfikując plik „MSDOS.SYS” „CONFIG.SYS” i „AUTOEXEC.BAT”, choć przy komputerach nieco nowszych niż sam system DOS nie ma to większego sensu. Warto też podkreślić że MS-DOS w przeciwieństwie do Windows czy Linuks nie jest systemem wielo-zadaniowym. Robi tylko to co jest wywołane w danym czasie + obsługa sterowników uruchomiona w plikach startowych. Port LPT pracuje w tym przypadku niemalże w czasie rzeczywistym, co ciężko jest zrealizować nawet poprzez zewnętrzne sterowniki CNC USB.
(Dodam jako ciekawostkę że profesjonalne, przemysłowe obrabiarki CNC posiadają jeszcze koprocesory i zadania obsługi interfejsu, sterowania, i obliczeń są podzielone. Warto jest inwestować w oprogramowanie CNCGRAF pod Windows bo ich zewnętrzne sterowniki działają na podobnej zasadzie. Firma “BOENIGK electronics” pisząc omawianą wersję DOSowską jako jedna z niewielu firm doskonale zdawało sobie z tego sprawę.)
Co oferuje CNCGRAF 1.32?
Interfejs graficzny/obsługa:
- W pełni graficzne środowisko użytkownika z dialogami, ikonami, oraz sterowanie myszką.
- Prosta obsługa z integrowaną pomocą.
- Graficzne pokazywanie pozycji maszyny.
- Czytanie oraz dołączanie plików za pomocą okna szybkiego przeglądu.
- Kasuj, kopiuj, obracaj, odbicie lustrzane,…
- Poruszanie maszyny klawiszami lub myszką.
- Funkcje takie jak: “jedź tam i z powrotem”, lub “jedź do”, ustawiane za pomocą klawiatury i myszki.
Funkcje:
- Jednoczesny posuw w trzech osiach.
- Funkcja pomiaru wysokości oraz jej korekcja.
- Obniżka prądów silników krokowych w czasie postoju. Obsługa pompy, czas na start głowicy, awaryjny wyłącznik,…
- Korektura zagłębienia w osi Z.
- Magazyn narzędzi do 99 narzędzi.
- Funkcje do rysowania linii, kwadratów i okręgów.
- Pomiar odstępów.
- Dowolna ilość punktów zatrzymania maszyny.
- Symulacja.
- Jazda na punkt zerowy, punkt parkowy oraz jazda referencyjna.
- Automatyczny dojazd do punktu pomiaru narzędzia oraz pomiar długości narzędzia.
Obsługiwane formaty plików:
- HPGL (Corel Draw, Sprint Layout…)
- DIN 66025 (G-Code)
- Dane wiertarskie (Excellon)
- DAT (CONTOUR2)
- Sieb&Maier 1000 i Sieb&Maier 3000
Ustawienia:
- Skalowanie i jednostka.
- Pokazywanie oraz zmienianie właściwości wektorów.
- Wiele możliwości ustawień dla optymalnej pracy maszyny.
Wady i zalety moim zdaniem…
Zalety:
- Bardzo prosta obsługa – po chwili użytkowania już intuicyjna.
- Świetna instrukcja w języku Polskim.
- Program jest całkowicie darmowy, i nie posiada żadnych ograniczeń.
- Ładna grafika 2D w stosunku do innych programów CNC dla DOSa.
- Praca zbliżona do pracy w czasie rzeczywistym, bo DOS nie jest wielozadaniowy i ma bardzo skromną listę procesów pracujących w przerwaniach.
- Niewielkie jak na obecne czasy wymagania sprzętowe (Zalecane: Pentium II 200 MHz ; 1MB RAM).
- Na wyjściu LPT sygnał ma postać idealnego prostokąta o napięciu ok 5V, czego ani w systemie Windows, ani Linux nie da się zauważyć.
Wady:
- Znikoma popularność i wsparcie na forach. Na jednym ze znanych forum CNC ten temat zrobił się wręcz drażliwy, i proste pytania odnośnie CNCGRAF pod DOS od razu spotykają się niemalże z hejtem… Takie mamy czasy ;)
- Brak możliwość tworzenia własnej logiki programowej dla różnych zdarzeń.
- Bardzo skromna, aczkolwiek wystarczająca w zupełności lista rozkazów G-Code.
- Brak gotowych postprocesorów dla systemów CAM. (Napisałem własny dla ARTCAM 2008/10/11)
- Wyświetlanie podglądu trajektorii w 2D
Obsługiwane polecenia G-Code:
Funkcje G |
|
G00 |
Posuw szybki. |
G01 |
Posuw z prędkością roboczą. |
G02 |
Okrąg (Łuk) w kierunku wskazówek zegara. |
G03 |
Okrąg (Łuk) w kierunku przeciwnym do wskazówek zegara. |
G04 |
Pauza |
G90 |
Miara absolutna. |
G91 |
Miara inkrementalna. |
Funkcje M |
|
M00 |
Stop (program jest kontynuowany po naciśnięciu klawisza) |
M03 |
Włącz napęd wrzeciona. |
M05 |
Wyłącz napęd wrzeciona. |
M08 |
Włącz pompę chłodziwa. |
M09 |
Wyłącz pompę chłodziwa. |
M30 |
Koniec programu. |
Dalsze instrukcje CNC |
|
F |
Posuw mm/min. |
N |
Numer zadania. |
T |
Numer narzędzia. |
Galeria:
W załącznikach:
CNCGRAF1.32_v3.0.zip – Kompletny przygotowany przeze mnie system.
CNCGRAF1.32_Win.zip – CNCGRAF 1.32 uruchamiany pod Windows (Tylko do celów demonstracyjnych. Nie do sterowania przez LPT!)
Postprocesor_v1.3.zip – Postprocesor mojego autorstwa dla ArtCam 2008/2010/2011
CNCGRAF – Podręcznik użytkownika.pdf – Podręcznik użytkownika ;)
Zainteresowanych systemem, i wsparciem zapraszam na mojego bloga: https://cncgrafdos.blogspot.com/
Pozdrawiam!
PS: Wstawiłem załączniki, ale ich nie ma… Coś chyba się pozmieniało od mojej ostatniej wizyty. Czy ktoś wie co jest grane :)?