Przesunięty przez: chaos 2006-11-02, 23:16 |
Powstaje nowy program sterujący CNC. Potrzebni betatesterzy! |
| Autor |
Wiadomość |
jarekk
Specjalista poziom 3

Pomógł: 21 razy Dołączył: 17 Mar 2006 Posty: 638 Skąd: Gdańsk
|
Wysłany: 2006-11-06, 11:43
|
|
|
| Piotr Rakowski napisał/a: | | 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 |
|
|
|
 |
gaspar
Specjalista poziom 2


Pomógł: 14 razy Dołączył: 13 Sty 2006 Posty: 447 Skąd: Stargard Szczec.
|
Wysłany: 2006-11-06, 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 |
_________________ "Wiedza daje pokorę wielkiemu, dziwi przeciętnego, nadyma małego" - Lew Tolstoj |
|
|
|
 |
jarekk
Specjalista poziom 3

Pomógł: 21 razy Dołączył: 17 Mar 2006 Posty: 638 Skąd: Gdańsk
|
Wysłany: 2006-11-06, 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
Gość
|
Wysłany: 2006-11-06, 14:40
|
|
|
| jarekk napisał/a: | | Piotr Rakowski napisał/a: | | 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
Gość
|
Wysłany: 2006-11-06, 14:42
|
|
|
| gaspar napisał/a: | 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. |
|
|
|
 |
Piotr Rakowski
Specjalista poziom 3 rakuś


Pomógł: 30 razy Dołączył: 29 Lip 2005 Posty: 947 Skąd: Warszawa
|
Wysłany: 2006-11-06, 14:45
|
|
|
| jarekk napisał/a: | | Właśnie kończę soft do swojego sterownika silnika krokowego[...] |
Panie Jarku, mikroprocesorowy? Taki o jakim kiedyś rozmawailiśmy?
| jarekk napisał/a: | 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ść |
_________________ Piotr (rakuś) Rakowski, eduCAD CNC, PLT2CNC, STEP2CNC
Oprogramowanie: http://www.soft4cnc.pl maszyny: http://www.grawerki.biz |
|
|
|
 |
jarekk
Specjalista poziom 3

Pomógł: 21 razy Dołączył: 17 Mar 2006 Posty: 638 Skąd: Gdańsk
|
Wysłany: 2006-11-06, 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 |
|
|
|
 |
Piotr Rakowski
Specjalista poziom 3 rakuś


Pomógł: 30 razy Dołączył: 29 Lip 2005 Posty: 947 Skąd: Warszawa
|
Wysłany: 2006-11-06, 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. |
_________________ Piotr (rakuś) Rakowski, eduCAD CNC, PLT2CNC, STEP2CNC
Oprogramowanie: http://www.soft4cnc.pl maszyny: http://www.grawerki.biz |
|
|
|
 |
jarekk
Specjalista poziom 3

Pomógł: 21 razy Dołączył: 17 Mar 2006 Posty: 638 Skąd: Gdańsk
|
Wysłany: 2006-11-07, 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 napisał/a: | | 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. |
|
|
|
 |
Piotr Rakowski
Specjalista poziom 3 rakuś


Pomógł: 30 razy Dołączył: 29 Lip 2005 Posty: 947 Skąd: Warszawa
|
Wysłany: 2006-11-07, 19:38
|
|
|
| jarekk napisał/a: | | 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. |
_________________ Piotr (rakuś) Rakowski, eduCAD CNC, PLT2CNC, STEP2CNC
Oprogramowanie: http://www.soft4cnc.pl maszyny: http://www.grawerki.biz |
|
|
|
 |
|
|