Bardzo lubię MS-DOSa, i rozwiązania retro, w związku z czym cały czas rozwijam „system” który optymalnie będzie sterował przez port LPT moją amatorską, niskobudżetową maszyną CNC. Prezentowałem już na tym forum różne wersje moich wypocin, ale ta jest wyjątkowa (choć BETA).
Zawiera w sobie dwa programy do sterowania maszynami CNC: TurboCNC 4.0.1, oraz CNCGRAF 1.32. Całość za namową jednego z użytkowników forum elektroda.pl pracuje na darmowej platformie FreeDOS. Udało mi się je wstępnie tak skonfigurować, że działają na tych samych PINach portu LPT, i mają podobne ustawienia. Dodatkowo system zawiera menadżer plików, i czystą linię komend. Wszystko to wybierane z wygodnego menu startowego. W linii komend można wpisać komendę „off” która powoduje zamknięcie systemu i wyłączenie komputera.
Zastanawiałem się czy warto dzielić się na forum moim wypiekiem, bo nie dość że na pierwszy rzut oka nie stworzyłem nic specjalnego, to jeszcze mamy 2021 rok, w którym króluje Arduino, Androidy, i inne nowe wynalazki . Podsumowałem sobie całe moje doświadczenie i wiedzę którą zgromadziłem przez lata, i stwierdziłem że jednak może znajdzie się jakiś entuzjasta DOSa i skorzysta z moich wypocin.
Jakie problemy napotykałem?
1. CNCGRAF, i TURBOCNC mają zupełnie inne wymagania dotyczące pamięci DOSa. Plik konfiguracyjny FDconfig.Sys został dopasowany indywidualnie do jednego i drugiego programu.
2. CNCGRAF wymaga sporo pamięci konwencjonalnej. Musiałem trochę pokombinować i przeorganizować pamięć systemu FreeDOS. TurboCNC ma zupełnie odwrotne wymagania.
3. Mój system zainstalowany jest na terminalu HP t5000, który zamiast dysku twardego posiada skromną pamięć Flash o pojemności 64Mb. Wystarcza to w zupełności bo cały „zainstalowany” system zajmuje około 4MB. Problemem okazała się partycja, której nie mogłem uczynić aktywną z powodu zbyt małego rozmiaru. Dos nie zainstaluje się na nie aktywnej partycji. Z pomocą przyszło mi polecenie „fdisk.exe 2 /PRIO:50”, którego nie znalazłem o dziwo w helpie Fdisk’u.
4. Im mniej zadań do wykonania w jednym czasie ma komputer, tym przerwania systemu i BIOSu są bardziej stabilne, równomierne, i nie zakłócone. Przerwania są bardzo ważne, bo to one sterują silnikami krokowymi. Żeby ograniczyć wykorzystanie przerwań wyłączyłem zbędne urządzenia w BIOSie.
5. Program CNCGRAF jest darmowy, ale przy bezpośrednim uruchomieniu z linii komend wyświetla błąd dotyczący licencji – nie działa. Trzeba po kolei czyli CD C: ; CD CNCGRAF ; CNCGRAF.exe. W tym celu powstały pliki wsadowe bat, przy okazji dla wszystkich aplikacji. Uruchamiają dany program wybrany z menu.
6. O ile w TurboCNC da się skonfigurować wszystkie piny LPT (i nie tylko), to w CNCGRAFie niestety większość z nich przypisane jest na sztywno. Zmuszony byłem tak skonfigurować TurboCNC by pasował ustawieniami do CNCGRAFu, stąd w załączonym systemie wszystko ustawione jest pod moją konkretnie maszynę. Dla zainteresowanych pracą na dwóch systemach będzie to ułatwieniem, bo łatwiej przekonfigurować nieco ustawienia, niż ustawiać wszystko na nowo.
Podłączenie pinów LPT (takie musi być, jeśli chcesz korzystać z CNCGRAF i TURBOCNC)
Pin 1 - Wrzeciono wł/wył
Pin 2 - DIR X
Pin 3 - STEP X
Pin 4 - DIR Y
Pin 5 - STEP Y
Pin 6 - DIR Z
Pin 7 - STEP Z
Pin 8 - Wolny
Pin 9 - Wolny
Pin 10 - Wyłącznik krańcowy 1
Pin 11 - Wyłącznik krańcowy 2
Pin 12 - Wyłącznik krańcowy 3
Pin 13 - Czujnik wysokości materiału i długości narzędzia
Pin 14 - Pompa chłodziwa wł/wył
Pin 15 - Wyłącznik bezpieczeństwa STOP
Pin 16 - Wolny
Pin 17 - Ograniczenie prądu silników (Tylko CNCGRAF)
Pin 18-25 - Masa (GND komputera)
Moja maszyna (wstępne ustawienia w TURBOCNC i CNCGRAF)
- Silniki: 200 kroków na obrót (1,8 DEG)
- Podział kroków: 8
- Śruby trapezowe TR2 (2mm posuwu na obrót)
- Krańcówki referencyjne: NC (normalnie zamknięte).
Różnice między CNCGRAF a TURBOCNC – moim zdaniem.
Obydwa programy są bardzo dobre.
CNCGRAF zużywa dużo pamięci konwencjonalnej ale moim zdaniem gorzej radzi sobie z dużymi plikami G-code, i czasami „zwalnia” przy obliczaniu interpolacji kołowej. Nie można jednak mu odebrać funkcjonalności i sprawności. Ma bardzo ładną DOSowską szatę graficzną, i podgląd załadowanych trajektorii. Niestety posiada dość skromną (choć wystarczającą) listę poleceń G-Code.
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.
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.
F - Posuw mm/min.
N - Numer zadania.
T - Numer narzędzia.
TURBOCNC jest znacznie bardziej zaawansowany, i pozwala konfigurować znacznie więcej parametrów. Pracuje płynniej, i nie ma żadnych problemów nawet z bardzo dużymi plikami. Nie wyświetla podglądu trajektorii, ale za to pokazuje aktualnie realizowaną linijkę G-Code, liczy czas cyklu,i pokazuje status wrzeciona, chłodziwa itp. Moim zdaniem zasługuje na miano profesjonalnego oprogramowania CNC w swojej klasie, choć na pierwszy rzut oka wydaje się bardziej skomplikowany, i toporny w obsłudze. Obsługuje znacznie więcej poleceń G-Code.
G00 - Rapid positioning
G01 - Linear interpolation
G02 - CW circular interpolation (3D)
G03 - CCW circular interpolation (3D)
G04 - Dwell
G16 - Set implicit planes
G17 - Set XY plane
G18 - Set XZ plane
G19 - Set YZ plane
G20 - Inch units
G21 - Millimeter units
G28 - Home all axes
G31 - Probing move
G32 - Surface probing
G33 - Thread cutting, constant lead
G50 - Probe ID hole
G53 - Fixture offset 0 Master coordinate mode
G54 - Fixture offset 1
G55 - Fixture offset 2
G56 - Fixture offset 3
G57 - Fixture offset 4
G58 - Fixture offset 5
G59 - Fixture offset 6
G60 - Jump to Subroutine (Obsolete, Use G98)
G62 - Return from Subroutine (Obsolete, Use G99)
G70 - Inch units
G71 - Millimeter units
G72 - CW helical interpolation (Obsolete - Use G02)
G73 - CCW helical interpolation (Obsolete - Use G03)
G76 - Multi-Pass Threading for Lathe
G77 - Turning/Boring cycle
G78 - Peck drilling cycle (general)
G80 - Cancel canned cycle
G81 - Drill cycle
G82 - Drill cycle with dwell
G83 - Drill cycle with peck
G90 - Absolute coordinates
G91 - Incremental coordinates
G92 - Preload of registers
G93 - Inverse time feedrate
G94 - Inches/mm per minute
G95 - Inches/mm per rev
G97 - Set spindle rpm
G178 - Speedy Canned Peck Cycle
G183 - Speedy Peck drill cycle with dwell
M00 - Automatic halt
M01 - Optional halt
M02 - End of program
M03 - Spindle on CW
M04 - Spindle on CCW
M05 - Spindle off
M06 - Tool change
M07 - Coolant A on
M08 - Coolant B on
M09 - Coolants off
M10 - Clamp
M11 - Unclamp
M13 - Spindle on CW and coolant A on
M14 - Spindle on CCW and coolant A on
M17 - Enable drives
M18 - Disable drives
M21 - Open Collet
M22 - Close Collet
M30 - End of tape
M48 - Restore feed override
M49 - Cancel feed override
M50 - Read spindle speed
M70 - Set PLC handshake output to inactive
M71 - Set PLC handshake output to active
M72 - Wait for PLC handshake input to go inactive
M73 - Wait for PLC handshake input to go active
M98 - Jump to subroutine
M99 - Return from subroutine
G - General Motion word
M - Miscellaneous word
N - Line number word
T - Tool number word
F - Defines feed rate
Oprogramowanie CNCGRAF jest w pełni darmowe. Producent TurboCNC udostępnia swoje oprogramowanie do celów nie komercyjnych, ale myślę że wypadało by zapłacić mu za potężny nakład pracy który włożył w swoje oprogramowanie. Szczególnie jeśli program będzie używany do celów zarobkowych. Wpłatę w wysokości 60 USD można uczynić pod poniższym linkiem:
http://www.dakeng.com/order.html










Źródła:
https://www.cnc-controller.eu/polski/fr ... cgraf-dos/
http://www.dakeng.com/turbocnc.html
https://winworldpc.com/home
https://hp-usb-disk-storage-format-tool.softonic.pl/
W załącznikach:
- Gotowy system CNC wraz z instalatorem.
- Instrukcja CNCGRAF w języku Polskim
- Instrukcja TURBOCNC w języku Angielskim
- Postprocessory dla ArtCam2008/2010/2011 obsługujące interpolacje kołową G02/G03 i wymianę narzędzi (T).
(Pliki dla CNCGRAF zapisywane są z rozszerzeniem *.nc, a dla TURBOCNC *.tcn)
Jak wspomniałem wyżej system jest w wersji BETA, co oznacza że jest ciągle testowany. CNCGRAF, i jego postprocessory są sprawdzone i działają już od długiego czasu. Testowany jest TURBOCNC, z którym nigdy wcześniej nie miałem styczności, oraz jego postprocesor, który napisałem dla ArtCam’a. Zgłaszajcie proszę wszelkie uwagi, by jak najszybciej zamknąć załączoną wersję 1.0.
Dalsze wersje systemu będzie można znaleźć na moim blogu:
https://cncgrafdos.blogspot.com/
Uprzedając…
Wiem że są sterowniki na Arduino, GRBL, COSMO, i inne USB, PCI. Wiem że są dystrybucje Linuxa, Mach2/3 i inne Windows. Ja świadomie skleiłem ten system dla siebie, bo lubię DOSa, mam amatorską maszynę CNC, i pojawia mi się u śmiech na twarzy gdy widzę czarny ekran menu, linię komend, i żywego DOSa przypominającego mi stare/dobre czasy. Nie mam zamiaru przestawiać się na nowsze rozwiązania, bo nie chcę tracić przyjemności użytkowania podobnej do tej gdy odtwarzam płytę gramofonową.