Elektroda.pl
Elektroda.pl
X
SterControl
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Kompletny system do sterowania CNC [DOS]

goreckidiy 17 Kwi 2018 16:13 6216 77
  • Witam!

    Każdy kto choć raz podjął próbę stworzenia domowego, urządzenia CNC na pewno spotkał się problemem oprogramowania sterującego. Powstało ich dość sporo od Mach2,3 czy też StepCNC pod system Windows. Niestety programy te nie są tanie, i posiadają wady, których w przypadku amatorskiego sterowania przez port LPT nie da się obejść. Gubienie kroków, i niskie prędkości silników krokowych to poważny problem. Wynika on z tego że, komputer do sterowania portem LPT używa przerywań procesora. W systemie Windows te z kolei wykorzystywane są do obsługi wielowątkowości, pozostawiając obsługę portu na szarym końcu.

    Fragment instrukcji użytkownika programu CNCGRAF 1.3 Firmy BOENIGK-electronics.
    „Silniki krokowe sterowane są impulsami o dużej częstotliwości wytwarzanymi przez timer procesora znajdującego się w komputerze. System operacyjny WINDOWS nie umożliwia, bez dodatkowego, zewnętrznego modułu (specjalizowanego kontrolera stanowiącego bufor) sterowania w czasie rzeczywistym. Dzieje się tak, dlatego, że w systemie WINDOWS, timer procesora wykorzystywany jest do realizacji wielozadaniowości. Nie jest więc możliwe napisanie programu sterującego silnikami krokowymi w czasie rzeczywistym, działającego w tym systemie, bez dodatkowego, drogiego osprzętu. Program działający w systemie MS-DOS wolny jest od powyższych ograniczeń.”


    W ten sposób powstał pomysł na realizację sterowania w systemie DOS.
    Założenia były proste. Tanio, a najlepiej za darmo, i przedewszystkim efektywnie.
    Kwestie ceny załatwiła firma BOENIGK-electronics, która udostępniła całkowicie za darmo pełną wersję DOSowskiego programu CNCGRAF. Jak się okazało nie dość że program wygląda dość dobrze jak na aplikacje DOS, to jeszcze jest bardzo przyjemny i prosty w użytkowaniu. Do tego jeszcze posiada obszerną, i bardzo ładnie opisaną instrukcję obsługi w języku Polskim. Obsługuje formaty G-Code, HPGL, oraz Drill.

    Kompletny system do sterowania CNC [DOS]



    System:

    Specjalnie dla aplikacji CNCGRAF stworzyłem „gotowca” bootującego bezpośrednio z Pendrive’a. Bazą jest niemalże goły system MS DOS w wersji 7.1. Zmodyfikowane zostały tylko pliki Autoexec.bat oraz Config.sys. Dodane zostały sterowniki myszy, i kilka przydatnych aplikacji. Po zbootowaniu komputera z Pena uruchamia się DOS, oraz menu wyboru aplikacji, w skład, której wchodzą:

    - CNCGRAF
    - TURBO CNC (Demo)
    - NORTON COMMANDER
    - EDYTOR TEKSTU (Edit.exe)
    - SHUTDOWN (umożliwia wyłączenie komputera ATX)

    Za pomocą strzałek na klawiaturze i klawisza ENTER wybiera się odpowiednią pozycję menu.





    Kompletny system do sterowania CNC [DOS]

    Moim zdaniem całość działa rewelacyjnie, i gorąco zachęcam do sterowania swoimi maszynami za pomocą DOSowskich programów. W załączniku znajduje się kompletny system wraz z całym oprogramowaniem i instrukcją instalacji na Pendrive.

    Kompletny system do sterowania CNC [DOS]


    Źródła którymi się posłużyłem:
    https://www.boenigk.eu/polski/freeware/cncgraf-dos/
    www.frezarka.pl/pobieranie/cncGraF100_PL.pdf
    https://winworldpc.com/product/ms-dos/7x
    https://winworldpc.com/product/norton-commander/5x
    http://www.dakeng.com/turbo.html

    Zachęcam do wyrażania swojej opinii, spostrzeżeń, lub propozycji zmian.
    Chętnie dołożył bym jeszcze jakieś przydatne aplikacje do Menu ;)
    System skompletowałem głównie dla siebie. Dzielę się nim z dobrej woli, bo mam świadomość że nie każdy potrafi obsługiwać DOSa. Poza tym to gotowiec, więc po pobraniu nie trzeba już nic robić, co jak mi się wydaje znacznie ułatwia sprawę.


    Pobrałeś? sprawdziłeś ? wypowiedz się!
    Dzięki Tobie może powstać nowa wersja ;)


    Edycja Menu...

    Kilka osób pytało jak edytować menu.

    W folderze „System” znajduje się plik „DOS.MDF”. Należy otworzyć go za pomocą notatnika (notepad.exe), i zmienić nazwy i ścieżki wedle własnego upodobania.

    Kod: x86asm
    Zaloguj się, aby zobaczyć kod


    Pozdrawiam,
    Łukasz Górecki

    Wersja 3.6
    Pierwotna wersja systemu.
    CNC BootUS..3.6.rar Download (5.53 MB)


    Wersja 3.7
    Zmienione sterowniki myszy, na dostartarczone przez kolegę "tos18" - Dzięki!
    https://www.elektroda.pl/rtvforum/viewtopic.php?p=17180620#17180620
    CNC BootUS..3.7.zip Download (5.94 MB)


    Fajne!
  • SterControl
  • #2 17 Kwi 2018 18:57
    gumisie
    Poziom 36  

    goreckidiy napisał:
    Dzielę się nim z dobrej woli, bo mam świadomość że nie każdy potrafi obsługiwać DOSa.
    I to może być problem., poza tym:
    SUPER :spoko:
    Szkoda że nie ma możliwości oceniać punktowo Twojego postu, już bym "klikał": jako pomocny.
    Pozdrawiam

  • SterControl
  • #4 17 Kwi 2018 21:23
    vindevil
    Poziom 19  

    Ja napewno skorzystam i dam znać. To może byc dobry pomysł, gdyz do dziś serwery na dosie dzialaja bez żadnego problemu.

  • #5 17 Kwi 2018 21:36
    Pittt
    Poziom 30  

    sorki za offtopa, ale co to i gdzie serwery na dosie ?
    całe życie mi wmawiano że serwe=linux ;)

  • #6 18 Kwi 2018 07:34
    Radzio M.
    Poziom 32  

    Muszę to wypróbować przy najbliższej okazji. Będę śledzić zmiany w projekcie. Pomysł mi się podoba.
    Pozdrawiam.

  • #7 18 Kwi 2018 13:51
    vindevil
    Poziom 19  

    Pittt napisał:
    sorki za offtopa, ale co to i gdzie serwery na dosie ?
    całe życie mi wmawiano że serwe=linux ;)

    Stacje robocze i serwery na dosie 3 lub 4 , zamontowane w 1994!?!
    Działają po dziś dzień . były próby zastąpienia ich nowszymi rozwiązaniami , ale nic z tego nie wyszło.

  • #8 18 Kwi 2018 14:06
    GanzConrad
    Poziom 21  

    @goreckidiy Czy przed zabraniem się do roboty sprawdzałeś funkcjonalność LinuxCNC i jak wychodzi porównanie?
    Jaki postprocessor wybrać podczas generowania programu z CAM?

  • #10 18 Kwi 2018 14:26
    gumisie
    Poziom 36  

    tos18 napisał:
    Cieszę się że są jeszcze ludzie którzy umieją docenić dosa.
    Jak tu się nie cieszyć. Noce spędzone przy klawiaturze, tysiące klikań, znajomość komend.
    Łezka w oku się kręci. To nie to co obecnie.
    Pozdrawiam

  • #12 18 Kwi 2018 15:36
    gumisie
    Poziom 36  

    tos18 napisał:
    Komputery były starsze wolniejsze a programy działały szybciej
    Potwierdzam.
    Do dziś, posiadam sprawny: 486DX. (286, również).
    Stare, dobre czasy.

  • #13 18 Kwi 2018 16:58
    goreckidiy
    Poziom 10  

    GanzConrad napisał:
    Czy przed zabraniem się do roboty sprawdzałeś funkcjonalność LinuxCNC i jak wychodzi porównanie?
    Jaki postprocessor wybrać podczas generowania programu z CAM


    Szczerze powiedziawszy nie, bo i Linux to system wielowątkowy, wykorzystujący przerywania procesora do swoich tasków. Fajnie by było i jego przetestować, a moim zdaniem najlepszym sposobem jest sprawdzenie z jaką częstotliwością max wysyła impulsy Step na port LPT. Dziś dokonałem pomiaru, i częstotliwość graniczna mojego portu przy systemie DOS to niecałe 24kHz. Na silnikach niestety nie da rady sprawdzić, bo nie nadążają, ale przebieg impulsów wygląda bardzo ładnie, i niczego mu nie brakuje w dłuższym czasie próbkowania ;)

    Kompletny system do sterowania CNC [DOS]

    W miarę możliwości pomierzcie swoje LPTki przy różnych oprogramowaniach. Może da się uzyskać więcej, i poprawić też w moim systemie.

    Pozdrawiam!

  • #14 18 Kwi 2018 17:02
    ElectroTom
    Poziom 24  

    Dlaczego nie można oceniać postów ?

  • #15 18 Kwi 2018 17:16
    gumisie
    Poziom 36  

    ElectroTom napisał:
    Dlaczego nie można oceniać postów ?
    Można, #1 lub #3. "Klikamy": Pomocny post +
    Pozdrawiam

  • #16 18 Kwi 2018 18:05
    GanzConrad
    Poziom 21  

    goreckidiy napisał:
    Dziś dokonałem pomiaru, i częstotliwość graniczna mojego portu przy systemie DOS to niecałe 24kHz

    nie wiem czy jest sens bić rekordy, skoro prędkość posuwu załatwia Ci skok gwintu śruby, a przy Linuxie da się uzyskać jakieś dziesiątki kHz.
    LinuxCNC wykonuje Latencytest:
    http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Latency-Test
    po którym deklarujesz maksymalny jitter. Sprawdź go koniecznie, bo na pewno będzie trudno dorównać mu możliwościami. Poza tym jest on na tyle popularny, że sporo oprogramowania CAM uwzględnia dedykowany postprocesor (ja korzystam z Fusion 360).

  • #17 18 Kwi 2018 18:23
    goreckidiy
    Poziom 10  

    Faktycznie może i warto zainteresować się Linuxem CNC chodź tak jak wszystko ma swoje wady i zalety. Nie chodziło mi o konkurs prędkości, a o to że jeśli port LPT może działać przy wyższej częstotliwości (nieużytecznej), to i przy normalnej pracy nie będzie powodował problemów, i gubienia kroków. Nie mam niestety sprzętu z LPT, na którym LinuxCNC śmigał by wystarczająco płynnie, ale wcale nie neguję jego zalet.

    GanzConrad napisał:
    przy Linuxie da się uzyskać jakieś dziesiątki kHz

    Tak z ciekawości... czy możesz zmierzyć tą częstotliwość ? Ciekaw jestem jak to wyjdzie.

    Problemem mogą być dość wysokie wymagania sprzętowe, duża waga systemu, i używanie komputera, tylko i wyłącznie do CNC (mogę się mylić, bo nie znam dobrze tematu).

    Oprogramowanie pracujące pod DOS’em jest lekkie, ma bardzo małe wymagania, i może bootować z PenDrive, nie ograniczając możliwości komputera tylko do CNC. Za to ma mniej możliwości, ale spełnia podstawowe (a nawet i trochę więcej) wymagania dla CNC. Praca jest bardzo stabilna.

    Jak wynika z pierwszego mojego postu, lubię DOS’a. Z pracy programu CNCGRAF jestem bardzo zadowolony, i jak dla mnie jest to idealne oprogramowanie do samego sterowania CNC - mi wystarcza.

    Ja to tak widzę. Jeśli się mylę, poprawcie mnie ;)

  • #18 18 Kwi 2018 18:39
    gumisie
    Poziom 36  

    GanzConrad napisał:
    nie wiem czy jest sens bić rekordy, skoro prędkość posuwu załatwia Ci skok gwintu śruby, a przy Linuxie da się uzyskać jakieś dziesiątki kHz.
    LinuxCNC wykonuje Latencytest:
    Faktycznie, Masz poniekąd rację, lecz w tym artykule, mowa jest o systemie DOS.
    I zamiast krytykować, napisz Własny artykuł dotyczący programu opartego na Linux_sie a przede wszystkim zadbaj o pisownię (tego wymaga regulamin elektrody).
    Pozdrawiam

  • #19 18 Kwi 2018 20:02
    GanzConrad
    Poziom 21  

    gumisie napisał:
    zadbaj o pisownię

    gumisie napisał:
    Faktycznie, Masz

    Argumenty merytoryczne się skończyły, wiedza również, więc czas przeskoczyć na czepialstwo gramatyczne. To nie ja piszę z dużej litery po przecinku.
    Nie krytykuję, doceniam pracę kolegi, po prostu staram się zrozumieć cel projektu.
    goreckidiy napisał:
    czy możesz zmierzyć tą częstotliwość ?

    W konfiguracji mam 44.8kHz przy maksymalnej prędkości, a jest dość wolna bo tylko 35mm/s (2.1m/min). Dotychczas nie przekraczałem 1000mm/min, więc maksymalnie osiągałem około połowę (wartości z konfiguracji, nie mierzyłem oscyloskopem). Niestety śruba metryczna bardzo redukuje prędkości posuwu, ale za to można testować port LPT ;-).
    @goreckidiy nie zrozum mnie źle, jestem pełen podziwu dla takich projektów, również byłem bardzo entuzjastycznie nastawiony do wysiłków Drzaśka na tym polu:
    https://www.elektroda.pl/rtvforum/topic3289207.html
    Niestety problem tego typu projektów jest prozaiczny: bardzo szybko doskwierają ograniczenia.
    Już w drugim elemencie jaki wyfrezowałem w życiu, potrzebowałem dwóch różnych strategii. Głupia dziura w sklejce wymagała Bore+Contour, to samo z obwarzankiem:
    https://www.cnc.info.pl/autodesk-fusion-360-kacik-porad-t73702-110.html#p627500
    https://www.cnc.info.pl/autodesk-fusion-360-kacik-porad-t73702-140.html#p640599

    Tak czy inaczej będę kibicował. Ile czasu zajmuje skonfigurowanie frezarki? (silniki, osie, krańcówki+ bazowe)

  • #20 18 Kwi 2018 20:18
    goreckidiy
    Poziom 10  

    GanzConrad napisał:
    W konfiguracji mam 44.8kHz przy maksymalnej prędkości,

    Coś mi się nie chce wierzyć, że będzie to realna prędkość portu LPT - to aż 44 tys kroków silnika na sekundę, no ale bez pomiarów nic się nie dowiemy - szkoda

    GanzConrad napisał:
    Niestety problem tego typu projektów jest prozaiczny: bardzo szybko doskwierają ograniczenia.

    Tu pewnie masz rację, chodź z drugiej strony jak pomyślę o maszynach cnc z dziurkowaną taśmą zawierającą program, to nie widzę ograniczeń ;) Pojawiają się za to od strony mechanicznej, ale to już inna bajka.

    GanzConrad napisał:
    Ile czasu zajmuje skonfigurowanie frezarki?

    Program CNCGRAF jest tak prosty, że konfiguracja zajmuje dosłownie kilka minut - to akurat jest bardzo fajnie rozwiązane, jak na program pod DOS.

  • #21 18 Kwi 2018 23:26
    Simon79
    Poziom 17  

    Pobrałem, nie testowałem jeszcze, ale już mi się podoba. Czy jest sprawdzony, prosty schemat sterownika do tego programu ?

  • #23 19 Kwi 2018 07:34
    lukaszd82
    Poziom 21  

    Czy jest możliwość zapisania ustawień cnc do jakiegoś pliku, a później zaczytanie gotowej konfiguracji? Aby tylko zrobić niezbędne minimum?
    Program jest ograniczony tylko do LPT? Niestety takowym już nie dysponuję i jedyne testy robię przez USB co jest problemem...
    Czy ktoś testował karty do laptopów ExpressCard z LPT i może polecić coś sprawdzonego?

  • #24 19 Kwi 2018 08:05
    goreckidiy
    Poziom 10  

    Wszystkie ustawienia zapisywane są w pliku cfg który można sobie zgrać i podmieniać. CNCGRAF obsługuje tylko LPT. Do innych interfejsów lepiej już stosować bardziej zaawansowne programy.

  • #25 19 Kwi 2018 11:22
    koczis_ws
    Poziom 24  

    GanzConrad napisał:
    ...
    W konfiguracji mam 44.8kHz przy maksymalnej prędkości, a jest dość wolna bo tylko 35mm/s (2.1m/min). Dotychczas nie przekraczałem 1000mm/min, więc maksymalnie osiągałem około połowę (wartości z konfiguracji, nie mierzyłem oscyloskopem). Niestety śruba metryczna bardzo redukuje prędkości posuwu, ale za to można testować port LPT ;-)....


    Coś mi tu nie pasuje.
    Częstotliwość LPT to jedno, a szybkość posuwu to drugie, zależy od skoku śruby i ilości kroków na obrót silnika. Ale niezależnie od tego jeśli przyjmiemy skok jednostkowy 0.01 mm to przy 24 kHz powinna być prędkość 240 mm/s.
    Jeśli się mylę to mnie poprawcie :D

  • #26 19 Kwi 2018 15:05
    goreckidiy
    Poziom 10  

    24 kHz to 24000 kroków na sekundę
    24000 / 200 (200 kroków na obrót) = 120 obrotów na sekundę
    120 * 60(sekund) = 7 200 obrotów na minutę

    Dużo za dużo, ale tu nie o to chodzi, tylko o to, że skoro LPT generuje ładne przebiegi przy takiej częstotliwości, to i przy znacznie mniejszej nie będzie problemów.


    przy absurdalnej częstotliwości impulsu „step” 48kHz było by 14 400 obrotów na minutę.
    Coś koledze się chyba troszkę pomieszało z tym 48kHz, no ale kto wie… ;)

    Dodano po 7 [minuty]:

    Simon79 napisał:
    Czy jest sprawdzony, prosty schemat sterownika do tego programu ?


    Zgodnie z obietnicą…
    Schematu nie mam, bo zrobiłem płytkę z głowy (tylko na własne potrzeby).
    Płytka jest bardzo prosta, i nie posiada na swoim pokładzie nawet transoptorów.
    Na jej podstawie bez problemu można narysować sobie schemat. Jeśli ktoś narysuje bardzo proszę o udostępnienie go.

    Ważne jest by napięcie podciągające wejścia, wynosiło od 3,3 do 3,6V. Na takim napięciu pracuje LPT. Zauważyłem że w wielu konstrukcjach CNC popełniany jest błąd polegający na zasilaniu, i podciąganiu wejść do 5V.

  • #27 19 Kwi 2018 15:11
    koczis_ws
    Poziom 24  

    Hmm... Ciekawe, bo kiedyś po DOSem bawiłem się sterowaniem różnych urządzeń z LPT, podciągałem do +5 V i wszystko było OK.

  • #28 19 Kwi 2018 15:37
    goreckidiy
    Poziom 10  

    Przy 5V również będzie działać, ale od kiedy to wejścia choćby w mikrokontrolerach podciąga się napięciem wyższym, niż zasilanie samego uC ?
    Prąd na rezystorze sprzęgającym znacznie wzrasta, obciążając przy tym port LPT.
    Polecam zmierzyć oscyloskopem napięcie portu LPT ;)
    DOS czy Windows nie ma znaczenia. Napięcie stanów portu jest zawsze takie same :D

  • #29 19 Kwi 2018 15:53
    Christophorus
    Poziom 41  

    goreckidiy napisał:
    Dzielę się nim z dobrej woli, bo mam świadomość że nie każdy potrafi obsługiwać DOSa.
    Może już lepiej iść w kierunku Linuksa? Istnieje specjalizowana dystrybucja do tego celu pod nazwą LinuxCNC.