Strona 1 z 2
PROŚBA O POMOC PRAGRAM STERUJACY
: 25 wrz 2013, 10:42
autor: piopio
Witam. Budujemy prototyp frezarki CNC na pracę inzynierską. jednak głównym jej tematem jest program sterujący tą frezarką. I tu pojawia sie problem...chcielismy napisac program w C# jednak biblioteki które znamy nie nadają sie do tego gdyż za wolna wysyłane są impulsy z jadra systemu do LPT przez co silnik krokowy wolno chodzi.. Proszę o podpowiedzi co można było by zrobić jak napisać taki program. w C# korzystamy z dispatcherTimer i tick.. Sterownik silników to czerwona płytka TB6560HQV3 na LPT silnik korkowe to 1,9NM 4 przewodowe z firmy wobit. Prosze o jakieś rady
Pozdrawiam
Piotrek
: 25 wrz 2013, 13:44
autor: triera
Skorzystać z pętli opóźniających - najprościej,
ale potrzebna kalibracja, aby czasy wykonania były porównywalne
na różnych komputerach.
Ew. skorzystać z timera np. karty dźwiękowej.
Pod Windozą zabawa ze sterowaniem w czasie rzeczywistym
zwykle nie daje zadowalających rezultatów.
Podziękować Kolegom z Redmond.
: 25 wrz 2013, 15:46
autor: piopio
Dziekuję triera za zainteresowanie tematem... myslisz ze jest mozliwosc w c# skorzystac z timera karty??
masz może jakies doświadczenie w tym temacie??
: 25 wrz 2013, 17:06
autor: triera
Piszę pod DOS w PowerBasic.
Pod Win98 nie mam absolutnie żadnego problemu
(czasami jest wrażenie, jakby ploter jechał po szynach,
niezależnie czy opóźniam timerem, czy pętlami).
Pod XP timera nie sprawdzałem,
ale program działa (na pętlach), ploter jeździ,
ale bywa, że jakieś procesy zakłócają
płynność transmisji przez LPT.
Problemy może sprawiać samo stabilne,
wielokrotne wywoływanie timera...
Zdaje się, że np. MACH wykorzystuje m.in. ten timer.
(Dla uzupełnienia: darmowy UserPort, odblokowuje m.in. port LPT pod XP)
: 25 wrz 2013, 17:30
autor: piopio
Mach instaluje ten generator impulsów osobno bo on jest widoczny w menadrzerze urzadzen jako Mach X pulsing engines.
: 25 wrz 2013, 22:05
autor: markcomp77
może jednak dołożyć kawałek sprzętu np. w postaci Arduino na USB... i z aplikacji w C# wysyła szeregowo wektory do realizacji przez Arduino? (są projekty do oglądnięcia w necie)
: 27 wrz 2013, 10:02
autor: piopio
Tez bierzemy pod uwagę takie rozwiazanie..ale nie ukrywam ze chcielibyśmy wymyslić ( z waszą pomocą) coś lepszego czyli bez dodatkowego osprzetu..
: 27 wrz 2013, 10:49
autor: pin
kolega marcomp77 dobrze pisze jeżeli chcecie coś sensownego to bez zewnętrznego proce-sorka się nie da , chyba że przejdziecie na inny system operacyjny na przykład DOS albo któryś z linuxów . Wystarczy zobaczyć na przykład w MACH3 podpiąć sobie oscyloskop
pod lpt i zobaczyć sygnały kloca wychodzące jako szpilki o szerokości 10ns i ponoć nie da się wypuścić ich szerszych ze względu na zegar . Ideałem są sygnały o wypełnieniu 50% co było standardem w programach pod DOSEM na przykład pod PCNC . Moim zdaniem WINDOWS z założenia nie nadaje się do bezpośredniego sterowania portem równoległym żadną maszyną w sposób odpowiedzialny chyba że robimy zabawkę
: 27 wrz 2013, 16:38
autor: piopio
Ale znam osoby i firmy które pracują na machu na Windowsie i to na duża skale na silnikach krokowych jak i na serwach. i nie narzekają wiec ja myślę ze to da się zrobić...tylko właśnie jak??
: 27 wrz 2013, 16:56
autor: markcomp77
piopio pisze:.tylko właśnie jak??
najtrudniejsze w machu było zrobienie puls generatora
niestety - robiła to firma zewnętrzna... i trochę nie bardzo wiadomo jak to można zrobić, bo microsoft chowa informacje o budowie sterowników o wysokim priorytecie...
nawet w machu, stabilność czasowa generatora jest zagrożona systemem operacyjnym

po prosty win32 nie jest systemem czasu rzeczywistego... i czasem nawet sterownik o wysokim priorytecie, ten priorytet traci... (na korzyść ruszającej się myszki po ekranie)
najprostszym sposobem wyjścia z tego impasu jest wyprowadzenie puls generatora poza kompa