Powstaje nowy program sterujący CNC. Potrzebni betatesterzy!

Dyskusje dotyczące działania obsługi programu STEP2CNC

jarekk
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 7
Posty: 1701
Rejestracja: 17 mar 2006, 08:57
Lokalizacja: Gdańsk

#51

Post napisał: jarekk » 06 lis 2006, 11:43

Piotr Rakowski pisze:wet bardzo często i to z mikrosekundową dokładnością pojawia się kolejny problem - jak? Skorzystałem z podpowiedzi kolegi X - używam teraz funkcji RDTSC() to pseudo-generowania przerwań. Sprawa rusza więc pod XP i zobaczymy, na ile stabilnie będzie się to zachowywało.
Hmm, raczej nie będzie - no chyba że na Windowsach powyłączamy wszytko inne co się da.
RDTSC() tylko czyta 64 bitowy licznik 'zegarowy' ( uwaga - naleczy wyłączayć zarządzanie energią!!!). Standardowy proces i tak jest zawsze wywłaszczany :-)



Tagi:

Awatar użytkownika

gaspar
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 3
Posty: 1714
Rejestracja: 13 sty 2006, 16:41
Lokalizacja: Stargard
Kontakt:

#52

Post napisał: gaspar » 06 lis 2006, 12:52

Czy jest szansa aby można było zmieniać płynie zakres pracy silników? Chodzi mi o przyspieszanie tak jak jest w TURBOCNC? Program chodzi przyzwoicie ale przy jednakowej prędkości silników trzęsie mi całą maszyną - tak jak by chodziło to w pełnym kroku, a sterowniki mam ustawione w mikrokrok 1/8.
Utrudnia to testowanie :)
https://www.instagram.com/cncworkshop.pl/
Obróbka CNC - frezowanie & toczenie


jarekk
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 7
Posty: 1701
Rejestracja: 17 mar 2006, 08:57
Lokalizacja: Gdańsk

#53

Post napisał: jarekk » 06 lis 2006, 13:02

Właśnie kończę soft do swojego sterownika silnika krokowego. Mam on właśnie taką cechę o jaką chciałby kolega:
- widziany jest jak sterownik '1/8' krokowy
- mierzy częstotliwość sygnału 'krok'
- dla małych częstotliwości dokonuje wewnętrznego 'mnożenia' kroków - wykonuje 8 mikrokroków na każdy podany mu krok ( czyli de fakto pracuje jak 1/64 )
- dla dużych częstotliwości dzieli krok - na każde 4 impulsy wykonuje krok ( czyli pracuje z jak 1/2 ).

Sterownik na razie pracuje na sztywno z 1/8 kroku, jak uruchomię to się pochwale wynikami testów. Czy może ktoś widział podobne algorytmy w profesjonalnych maszynach ? ciekaw jest czy to podejście ma sens...

Ma on też dodatkowe optoizolowane wejście - można podłączyć aby sterować samodzielnie wewnętrznym podziałem kroków


Piotr Rakowski
Posty w temacie: 2

#54

Post napisał: Piotr Rakowski » 06 lis 2006, 14:40

jarekk pisze:
Piotr Rakowski pisze:wet bardzo często i to z mikrosekundową dokładnością pojawia się kolejny problem - jak? Skorzystałem z podpowiedzi kolegi X - używam teraz funkcji RDTSC() to pseudo-generowania przerwań. Sprawa rusza więc pod XP i zobaczymy, na ile stabilnie będzie się to zachowywało.
Hmm, raczej nie będzie - no chyba że na Windowsach powyłączamy wszytko inne co się da.
RDTSC() tylko czyta 64 bitowy licznik 'zegarowy' ( uwaga - naleczy wyłączayć zarządzanie energią!!!). Standardowy proces i tak jest zawsze wywłaszczany :-)
Będzie Panie Jarku, bo już chodzi. Sprawdzę z tym wywłaszczaniem.


Piotr Rakowski
Posty w temacie: 2

#55

Post napisał: Piotr Rakowski » 06 lis 2006, 14:42

gaspar pisze:Czy jest szansa aby można było zmieniać płynie zakres pracy silników? Chodzi mi o przyspieszanie tak jak jest w TURBOCNC? Program chodzi przyzwoicie ale przy jednakowej prędkości silników trzęsie mi całą maszyną - tak jak by chodziło to w pełnym kroku, a sterowniki mam ustawione w mikrokrok 1/8.
Utrudnia to testowanie :)
No nie bardzo możemy się dogadać. Proszę o sprawdzenie wszystkich parametrów portu i innych programów, które mogą z jego przerwań skorzystać. U mnie i u większości testerów, od których odstałem informacje wszystko chodzi płynnie.

Awatar użytkownika

Autor tematu
Piotr Rakowski
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 24
Posty: 2173
Rejestracja: 29 lip 2005, 15:07
Lokalizacja: Warszawa
Kontakt:

#56

Post napisał: Piotr Rakowski » 06 lis 2006, 14:45

jarekk pisze:Właśnie kończę soft do swojego sterownika silnika krokowego[...]
Panie Jarku, mikroprocesorowy? Taki o jakim kiedyś rozmawailiśmy?
jarekk pisze:Hmm, raczej nie będzie - no chyba że na Windowsach powyłączamy wszytko inne co się da. RDTSC() tylko czyta 64 bitowy licznik 'zegarowy' ( uwaga - naleczy wyłączayć zarządzanie energią!!!). Standardowy proces i tak jest zawsze wywłaszczany :-)
Będzie Panie Jarku, bo już chodzi. Sprawdziłem na swoim Acerze 1.5 Ghz - RDTSC() zawsze podaje taką samą wartość (oczywiście różnca 2 pomiarów w ostępie 1 s), bez względu na zmianę zarządzania energią. Co więcej, u mnie na WINXP HE prędkość CPU można zmniejszać co 33%. I mimo to RDTSC() daje zawsze tę samą wartość :lol:
Maszyny i oprogramowanie CNC: eduCAD, STEP2CNC, LynxCUT, Styro3D, Tapper, cncCAD, Image2CAM, Turn3D, TERMCUT, LynxNEST (Nesting)


jarekk
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 7
Posty: 1701
Rejestracja: 17 mar 2006, 08:57
Lokalizacja: Gdańsk

#57

Post napisał: jarekk » 06 lis 2006, 15:22

Soft jest na Mega88 - assembler chodzący na 20MHz z pełną parą (bo zrezygnowałem z przerwań, wszystko chodzi w pętli)

Co do RDTSC() - dla niektórych procesorów ( tych starszych) przy włączonym ACPI i zarądzanie energią przejście na niższy P-State powodowało zamianę częstotliwości dla RDTSC() - bardzo widoczne np. na laptopach. Dla nowszych procesorów poprawiono ten błąd. Ponadto dla maszyn wieloprocesorowych RDTSC może dwać nieco inne wyniki na różnych procesorach (!).

Obie sprawy są znane, traktowane jako mało szkodliwe niedoskonałości procesorów - poprawione w najnowszych konstrukcjach

Awatar użytkownika

Autor tematu
Piotr Rakowski
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 24
Posty: 2173
Rejestracja: 29 lip 2005, 15:07
Lokalizacja: Warszawa
Kontakt:

#58

Post napisał: Piotr Rakowski » 06 lis 2006, 21:55

Panie Jarku, imponująco z tym Mega88. Mam nadzieję, że dane nam będzie napisanie wspólnego oprogramowania.

Co do Pańskiego poprzedniego pomysłu, to trochę zdrada z tym dzieleniem i mnożeniem impulsów, bo co wtedy, gdy wypada ich wielkość nieparzysta?

Co do tego RDTSC(). Muszę się zacząć czegoś trzymać, bo inaczej nie ruszę z miejsca. Boję się, że i tak będą musiały powstawać równolegle 2 wersje oprogramowania biorące pod uwagę różne warianty pseudo-timerów.
Maszyny i oprogramowanie CNC: eduCAD, STEP2CNC, LynxCUT, Styro3D, Tapper, cncCAD, Image2CAM, Turn3D, TERMCUT, LynxNEST (Nesting)


jarekk
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 7
Posty: 1701
Rejestracja: 17 mar 2006, 08:57
Lokalizacja: Gdańsk

#59

Post napisał: jarekk » 07 lis 2006, 09:12

Co do Mega88 - tak ustaliłem mikrokrok oraz podziały, że wszystko wychodzi bez ułamków :-). Można dobierać dość dowolnie, no ale lepiej nie skonfigurować go do np. 127 kroków ( no bo wtedy nie ma jaki ustawić mnożnika i dzielnika ).
Poza tym zmiana trybu pracy wychodzi zawsze w pozycji 'home' aby nie było problemów synchronizacyjnych.
Piotr Rakowski pisze:Boję się, że i tak będą musiały powstawać równolegle 2 wersje oprogramowania biorące pod uwagę różne warianty pseudo-timerów.
Z którymi timerami jest problem ? O ile wiem XP Home od professional aż tak się nie powinno róznić. Jakby co to mogę tu pomóc - mam dostęp do wszelkiej dokumentacji w tym temacie.

Awatar użytkownika

Autor tematu
Piotr Rakowski
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 24
Posty: 2173
Rejestracja: 29 lip 2005, 15:07
Lokalizacja: Warszawa
Kontakt:

#60

Post napisał: Piotr Rakowski » 07 lis 2006, 19:38

jarekk pisze:Z którymi timerami jest problem? O ile wiem XP Home od professional aż tak się nie powinno róznić. Jakby co to mogę tu pomóc - mam dostęp do wszelkiej dokumentacji w tym temacie.
No naprzykład brak jest highperformance timera w XP PRO. Chociaż nie dokońca wiem, na ile jest to rozwiązanie software'owe, a na ile sprzętowe.
Maszyny i oprogramowanie CNC: eduCAD, STEP2CNC, LynxCUT, Styro3D, Tapper, cncCAD, Image2CAM, Turn3D, TERMCUT, LynxNEST (Nesting)

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „STEP2CNC”