Witam serdecznie,
W tym artykule chciał bym zająć się sterowaniem niewielkimi maszynami CNC za pomocą w pełni darmowego, i w brew pozorom bardzo dobrego programu pracującego w DOSie o wdzięcznej nazwie CNCGRAF. Już kiedyś prezentowałem to oprogramowanie, ale było trochę „niedoprawione”. Mimo licznych pobrań nie spotkałem się z poważną krytyką, ani opiniami potencjalnych użytkowników. Tym razem chciał bym raz na zawsze przedstawić atuty, które mogły by przemówić za spopularyzowaniem tego systemu sterowania, i usłyszeć słowa krytyki, wskazówki, i ewentualnie napotkane problemy podczas instalacji czy użytkowania systemu.
Dlaczego wybrać ten „średniowieczny” system a nie współczesny?
- Jest w pełni darmowy, i działa bez żadnych ograniczeń.
- Jego wymagania są tak niskie, że można użyć całkowicie dowolnego komputera z portem LPT. Ja użyłem terminala HPt5700, który nadaje się do tego celu wręcz idealnie.
- Ma ładną grafikę, która do złudzenia przypomina profesjonalne stare obrabiarki CNC, i moim zdaniem dość intuicyjną obsługę.
- Program i bardzo fajnie opisany podręcznik użytkownika w języku Polskim.
- Stosunkowo duże prędkości posuwów nawet przy krokach dzielonych przez 32. To zasługa punktu poniżej.
- W systemie DOS jest około 20 przerywań. System ten nie jest „wielozadaniowy” dzięki czemu potrafi większość swoich zasobów poświecić na port LPT który jest w zasadzie najważniejszy. W systemie Windows przerywań jest bardzo dużo, a priorytetem jest wyświetlanie ładnej grafiki, obsługa urządzeń plug and play, oraz wielozadaniowości działającej w przerwaniach. Obsługa portu LPT jest bardzo upośledzona, co może powodować gubienie kroków, niepełne sygnały prostokątne na wyjściu, lub ich przerwanie w czasie wykonywania przez system Windows zadań, oznaczonych wyższym priorytetem (np. Plug and play?).
Skoro każdy może sobie pobrać ten system ze strony producenta to w czym problem, i po co o tym pisać?
Zasadniczo to fakt. Można pobrać, i używać ale na czym?. DOS musi być odpowiednio przygotowany, i najlepiej odchudzony by jeszcze bardziej uwydatnić pracę CNCGRAFu. Co jest potrzebne?
- Jeśli zdecydujesz się na komputerek HPt5700 (polecam!)zapewne zakupisz go z pamięcią FLASH, której pamięć nie przekroczy 64Mb. Aby postawić na niej partycję podstawową, na której będzie można zainstalować DOS trzeba użyć komendy „fdisk.exe 2 /PRIO:50” która pomija weryfikację wielkości dysku (w tym wypadku pamięci Flash), i utworzy partycję podstawową o wielkości 50Mb. Niby proste ale kto to pamięta?
- Kolejna prosta już rzecz którą pamięta pewnie większość użytkowników systemu DOS to „Format C: /S”. Ta komenda sformatuje świeżą partycję podstawową, uczyni ją bootowalną, i zainstaluje na niej DOSa.
- Gdy wszystko już wygląd świetnie, nagle się okazuje że nie za bardzo będzie jak wrzucać swoje Gkody do maszyny. Przydał by się PenDrive. Tu z pomocą przychodzą bardzo fajne i sprytne sterowniki USB pod DOS o nazwie „USBASPI” z przełącznikiem „O”. Do tego mysz (Mouse.com) i wszystko powinno być idealnie poza…
- Organizacja pamięci. Ten temat spędził mi sen z powiek, i całkowicie zaburzył moją wiedzę na temat DOSa. Wedle instrukcji użytkownika programu CNCGRAF, do prawidłowej pracy wymaga on 580kb pamięci głównej. Myslę sobie… mam 256Mb RAM, więc po co w ogóle to czytać… aplikacja przecież się uruchamia, jakoś tam działa…. Otóż to bardzo ważne!
• Pamięć podstawowa to przedział pamięci operacyjnej od 0 KB do 640 KB. Może być wykorzystywana przez aplikacje systemu DOS pracujące w trybie rzeczywistym.
• Pomiędzy 640 KB a 1 MB znajduje się obszar zwany pamięcią wyższą (lub górną, Upper Memory Area - 384 KB). W obszarze tej pamięci wyróżniamy:
• Pierwsze 128 KB jest obszarem dla pamięci obrazu (Video RAM).
• Kolejne 128 KB przeznaczone jest dla ROM BIOS kart rozszerzających (32 KB dla grafiki VGA, kart sieciowych, kart SCSI).
• Ostatnie 128 KB przeznaczona jest na pamięć ROM BIOS płyty głównej.
Źródło: http://greszata.pl/soisk/klasa_2/1_praca_w_tr...ms_dos/06_mapa_pamieci_dla_programow_dos.html
Program EMM386 zadysponował trochę pamięci rozszerzonej dla pamięci głównej. Sterowniki USB załadowałem do wyższego obszaru (DeviceHigh) i tym sposobem uzyskałem 588kB pamięci głównej. Jest o 8kB więcej niż trzeba. Rozkład pamięci można sprawdzić za pomocą komendy „mem /free” lub lepiej „mem /c”.
- Następny w zasadzie ostatni już krok to problem wyświetlania Polskich znaków w programie CNCGRAF. Tu niestety nie odnalazłem rozsądnego rozwiązania. Jedyne jakie pozostało to zastąpienie polskich znaków literami „bez ogonków”.
Wskazówki ogólne dla budujących swoje maszyny - Nie tylko dla CNCGRAF
odbiegając nieco od tematu....
Często popełnianym błędem już w samych konstrukcjach maszyn, a raczej samej elektronice są połączenia kablowe. Laicy nie zdają sobie sprawy z tego jak ważne jest połączenie portu LPT ze sterownikami silników. Rozwiązaniem idealnym jest brak kabla LPT, czyli płytka rozdzielająca poszczególne sygnały wsunięta bezpośrednio w port LPT komputera. Z niej najlepiej wyprowadzić jak najkrótsze dwużyłowe ekranowane przewody z sygnałami Step i Dir wprost do sterowników silników krokowych. Taki układ zapewnia uzyskanie dużych prędkości, z dużym dzielnikiem, a przede wszystkim zmniejsza ryzyko zgubienia kroku.
Ważne są też ustawienia BIOSu. Jeśli korzystamy z DOSa najlepiej użyć ustawień portu w trybie EPP. Pozbawiony on jest buforu FIFO i DMA. Cyt. EPP (ang. Enhanced Parallel Port) – najczęściej stosowany tryb. Brak tutaj kanału DMA. Handshake realizowany jest sprzętowo, co umożliwia działanie w systemie wielozadaniowym (po wywłaszczeniu procesu transmisja nadal trwa) oraz znacznie ułatwia pracę programistów. - Wikipedia). Peryferia płyty głównej które nie są używane koniecznie należy wyłączyć. Odciąży to procesor, a przede wszystkim uszczupli nieco (i tak już szczupłą) listę procesów pracujących w przerywaniach.
Reszta na zdjęciach...
W załącznikach:
-Kompletna wersja systemu DOS wraz z CNCGRAFEM, i instrukcją instalacji.
-Wzór płytki LPT montowanej bezpośrednio w port LPT komputera.
Źródła:
https://www.boenigk.eu/polski/
http://greszata.pl/soisk/klasa_2/1_praca_w_trybie_ms_dos/
http://hddguru.com/software/2006.02.09-USBASPI-MS-DOS-Driver/
i wiele innych, których już nie znajdę...
Uwaga!
Warunkiem pobrania pliku jest posiadanie oryginalnego systemu "Windows 98" wraz z licencją. W załączniku znajduje się system MS-DOS zaczerpnięty właśnie z tego systemu, więc korzystanie z niego bez licencji jest sprzeczne z prawem.
------------------------------------------------------------------------------
W załączniku dorzucam postprocesor dla programu ArtCam2008.
Do tego instrukcja dotycząca pisania własnych postprocesorów.
Opis mojego postprocesora w skrócie:
- Obsługa wymiany narzędzi
- Prędkość posuwu taka jak ustawiona w danym narzędziu.
- Generowany kod całkowicie zgodny z instrukcją CNCGRAFu.
- Nie testowany pomiar długości narzędzia (wydaje mi się że offest leży po stronie CNCGRAFu więc powinno działać. Chwilowo nie mam czujnika by to sprawdzić).
- Brak interpolacji kołowej (nie działała prawidłowo) ale bez tego da się żyć. Szczerze powiedziawszy ja nigdy z niej nie korzystałem.
- Brak możliwości ustawienia osobnej prędkości dla osi Z (odpowiada za to parametr [FP] - mnie to przerosło).
Ogólnie wszystko działa bardzo dobrze, i pozwala na normalną obsługę maszyny.
------------------------------------------------------------------------------
Uwaga! zmienił się adres strony producenta: https://www.cnc-controller.eu/polski/
Niestety CNCGRAF 1.32 nie jest już dostępny na stronie. Za zgodą producenta mogę nadal utrzymywać tą wersję tutaj.
Fajne? Ranking DIY
