SCX3 Interfejs pętli otwartej STEP/DIR na zamkniętą pętlę prędkościową +/-10V

Witam,
chciałbym się podzielić jednym z moich projektów i jednocześnie zaczerpnąć waszej opinii na temat przydatności urządzenia, które niżej przedstawiam.

Kilka lat temu umarło mi sterowanie 3 osiowej frezarki CNC, w której osie XYZ sterowane były przez serwa z wejściem analogowym. Poprzednie sterowanie wymienione zostało na mniej wypasiony, bez obsługi pętli zamkniętej, z interfejsem STEP/DIR (z racji budżetu i tego, że nowy sterownik już posiadałem). Z uwagi na to potrzebowałem więc konwertera z pętli otwartej STEP/DIR na zamkniętą pętlę z sterowaniem prędkościowym +/-10V i sprzężeniem od enkoderów liniowych.

Przeszukując internet nie znalazłem gotowego rozwiązania mieszczącego się w budżecie. Natrafiłem za to, na projekt YAPSC:10V. Wydawał się być obiecujący, lecz ciężko było z dostępnością zmontowanych układów. Skompletowałem więc potrzebne części, zleciłem wytrawienie płytek PCB i zmontowałem układ. Później delikatna korekta oryginalnego firmware, programowanie i testy przy maszynie.

Wszystko działało jak trzeba, ale… okazało się, że układ robił robotę lecz ze względu na swoją prostotę miał pewne wady.

Po pierwsze na wyjściu obecne były szumy na wyjściu analogowym, powodujące wibracje bardzo czułych serwonapędów, szczególnie nasilające się przy małym napięciu.
Po drugie na każdą oś potrzeba było osobnego układu. Przy trzech osiach, trzy płytki tworzyły już dość sporą konstrukcje.
Po trzecie, w układzie brakowało zintegrowanego transcievera RS232 co powodowało konieczność używania przejściówek TTL<->RS232.
Dodatkowo brak wewnętrznej dystrybucji zasilania powodował konieczność dostarczania wszystkich napięć zewnętrznie.

Biorąc pod uwagę niedosyt w idealności konstrukcji YAPSCa i własne ambicje (zawsze marzyło mi się projektowanie układów PCB) zdecydowałem się trochę polepszyć konstrukcję (czy mi się udało nie wiem ;D), więc zaprojektowałem swoje własne urządzenie - SCX3.

Założenia dla układu były takie, by na jednej płytce zmieścić obsługę dla trzech osi obrabiarki, ograniczyć szumy na wyjściach analogowych +/-10V, zapewnić wewnętrzną dystrybucję potrzebnych napięć dla układu (uC, wyjścia +/-10V) oraz podpiętych enkoderów z zasilania 12-24VDC, dołożyć przekaźnik gotowości (niebędący wyjściem bezpiecznym, jedynie sygnalizacją stanu OK jak w serwach z którymi miał współpracować), zwiększyć moc obliczeniową uC, zwiększyć przepustowość wejść enkoderowych, zintegrować interfejs RS232 w układzie oraz dostosować kształt płytki do formatu pozwalającego ją rozsądnie zamontować np. na szynie DIN.

Projekt układu prezentuje się tak:


1 - złącze zasilania 12-24 VDC (+VDC, GND)
2 - gniazdo bezpiecznika
3 - diody LED obecności napięć 12-24VDC, +/-12VDC, 5VDC, 3V3DC
4 - przetwornica DC/DC 12-24VDC na 5VDC
5 - przetwornica DC/DC 12-24VDC na +/-12VDC
6 - stabilizator LDO 5VDC na 3V3DC
7 - mikrokontroler PIC32
8 - złącze ICSP programowania mikrokontrolera
9 - diody sygnalizacyjne stanu urządzenia
10 - transciever RS232
11 - złącze DB9 RS232
12 - tranzystorowy driver wyjść cyfrowych DO
13 - transoptory wejść cyfrowych DI
14 - złącze DB25 interfejsowe sygnałów STEP/DIR, DI, DO “INTERFACE”
15 - transoptory wejść STEP/DIR
16 - złącza DB9 wejść enkoderowych “ENCODER(1,2,3)”
17 - transoptory wejść enkoderowych
18 - złącze DB9 “OUTPUT” wyjść symetrycznych +/-10VDC
19 - wzmacniacze operacyjne wyjść symetrycznych +/-10VDC
20 - przekaźnik obwodowy gotowości układu “READY”
21 - złącze 3 pinowe przekaźnika “READY” (styki NO, COM, NC)

Na stan obecny dysponuję zmontowanym prototypem pierwszej wersji. Objawiło się wtedy kilka błędów konstrukcyjnych (źle rozmieszczone opisy, zamieniony pin w wtyczce enkodera ENCODER1 i źle zaprojektowane zasilanie przekaźnika READY). Jednak nie było to przeszkodą do testów i rozwoju firmware.

Podsumowując najważniejsze różnice między YAPSC a SCX3:

  • Wewnętrzna dystrybucja napięć, zasilanie z 12-36VDC
  • Po 4 DI i DO do komunikacji z sterownikiem przez złącze ‘14’.
  • 3 wejścia enkoderowe na transoptorach kluczujących, zrealizowane dokładnie tak samo jak w przypadku YAPSC.
  • 3 wyjścia analogowe +/-10VDC sterowane są dwoma kanałami PWM na każde wyjście analogowe, tak jak w YAPSC. Układ wyjściowy zbudowany jest z wzmacniaczy operacyjnych w 3 stopniowej kaskadzie - różnicowa, filtrująca i buforująca.
  • Na pokładzie uC 3 regulatory PID współpracujące z wejściami enkoderowymi oraz wyjściami +/-10V.
  • Modbus do komunikacji przez interfejs RS232 - zacząłem pisać aplikację na PC do obsługi urządzenia, jednak pozostała w bardzo wczesnej fazie rozwoju.

Gotowy układ prezentuje się tak (brak wlutowanego wtedy złącza ‘21’ :P)


Projekt ze względu na to, że w trakcie pisania firmware natrafiłem na błąd z obsługą pamięci EEPROM wbudowanej w uC ugrzązł na dobre dwa lata. W tym czasie natrafiłem na gotowe rozwiązanie od firmy CSLab, więc ukończenie układu nie było już konieczne do uruchomienia maszyny.
Ostatnimi czasy zastanawiam się co z tym tak naprawdę zrobić - czy schować głęboko w szafie czy ukończyć go do pełnej funkcjonalności. Nie badałem na tyle zapotrzebowania na tego rodzaju urządzenia w tej raczej hobbystycznej(?) klasie wykonania, więc nie wiem czy jest sens poświęcać temu więcej czasu.

Interesuje mnie Wasza opinia koledzy, czy ktoś poszukuje tego rodzaju rozwiązań, czego oczekuje od takiego sprzętu, co powinno się w nim znajdować a co nie. Jestem otwarty na propozycje co można zmienić, dodać, usunąć. Chętnie odpowiem też na wszystkie pytania.

Wszystkie uwagi będą dla mnie cenne. Również takie, że mam dać z tym spokój :smiley:

Pozdrawiam!

1 polubienie

Zainteresowałeś mnie, szukam chyba czegoś podobnego, jednak nachodzi mi myśl o kombajnie.

do założeń dodałbym:

  • pętlę 4-20 jeśli się uda (mniej wrażliwa od napięciowej)
  • moduł na oś - kto chce 3 wstawia 3, kto chce 5 wstawia 5
  • układ mostka H do silników DC (lub wyjscie do karty mocy) 2x pwm lub dir + pwm
  • układ do silnika krokowego (lub wyjscie do karty mocy) (aby sprzęgnąć enkoder z krokówkami)
  • wejście enkodera obrotowego konfigurowalne (A, AB, ABZ) - silnik
  • wejście enkodera liniowego konfigurowalne (A, AB, ABZ) - liniał

tryby pracy:

  • pętla prędkościowa na enkoderze obrotowym i petla pozycja na linijce,
  • pętla na jeden enkoder
  • bez pętli na krokówkę jak chamski sterownik krokowy

i teraz moduły mocy do krokówki i silnika DC będą groszowe sprawy, na płytce,

oraz oczywiście możliwość zrobienia pętli z enkoderów lub enkodera na wyjście +/- 10, 0…10 i 4…20 z konfigurowalnymi regulatorami aby zamknąć silniki AC zewnętrznym falownikiem zwykłym.

ma to sens?? wyszła by ładna uniwersalna oś,

Cześć, dzięki za odpowiedź

Jeśli chodzi o zastosowanie 1 moduł = 1 oś to dokładnie do tego służy YAPSC o którym wspominałem.

Ale w przypadku mojego SCX to już wcześniej zastanawiałem się nad wprowadzeniem takiej totalnej elastyczności poprzez podział urządzenia na jednostkę centralną i dołączane moduły.

Jednostka centralna zajmowałaby się dostarczeniem napięć operacyjnych jak 3V3, 5V, 12V, obsługą komunikacji z sterowaniem nadrzędnym (port komunikacji RS) oraz komunikacji z modułami - zbieranie przez nie informacji (np. enkodery) oraz sterowanie (wyjścia analogowe, cyfrowe, mostki H itd). W takiej konfiguracji możliwości sprzętowe są w prawdzie nieograniczone, większym problemem będzie sprzęgnięcie wszystkiego odpowiednim softem.

Jest jeszcze opcja odseparowania jednostki zasilania od jednostki centralny na osobny moduł dając więcej możliwości konfiguracji.

Przygotowałem na szybko krótką prezentację jakby to miało wyglądać. Aktualny SCX3 który potrafi obsłużyć 3 osie - wejścia enkoderowe, wyjścia analogowe, wejścia STEP/DIR i mikrokontroler tym zarządzający jest na jednej płytce.
Zachowałem pierwotną numerację elementów, żeby utrzymać analogię działania.

A więc w przypadku podziału na moduły można by wyseparować takie części jak:

Jeśli chodzi o elastyczność systemu to wtedy założenia które wymieniłeś

są możliwe do zrealizowania poprzez przygotowanie odpowiedniego modułu, który potem wpięty w magistralę układu posłuży jako końcówka mocy.

Cały system SCX składałby się tak naprawdę z serii odpowiednich modułów do odpowiednich zastosowań. Brzmi to bardzo dobrze, kwestia tego jak z sensownością i opłacalnością takiego rozwiązania?

Nie spotkałem się jeszcze z zastosowaniem pętli prądowej do sterowania symetrycznego serwonapędem, więc nie wiem czy jest sens integrowania takiego wyjścia. Ale rozumiem, że myślisz o zastosowaniu takiego urządzenia do współpracy z falownikiem. W przypadku budowy modułowej i potrzeby odpowiedniego typu wyjścia odpowiedni moduł rozwiązałby problem.

W przypadku sterowania napięciem osiągnięcie regulacji 0…10V nie stanowi problemu, wystarczy skonfigurować parametrami przesunięcie punktu środkowego nastawy na 5V, a minimum i maksimum odpowiednio na 0V i 10V w wyjściu ±10V.

Co masz na myśli przez “konfigurowalne”? Między enkoderem obrotowym a liniałem, różnica jest jedynie taka, jaki ruch przechwytują. Dla samego urządzenia nie ma znaczenia czy mierzony jest ruch obrotowy czy posuwowy. Przekładnia elektroniczna w sterowaniu nadrzędnym CNC wylicza trajektorię i to tam jest to przeliczane. Jedyne co jest istotne dla mojego urządzenia to ew. skalowanie sygnału wejściowego z enkodera.
Najprościej mówiąc, sterownik CNC decyduje kiedy ma następować przesunięcie uwzględniając kinematykę mechanicznych połączeń a urządzenie wykonuje polecenia. Otrzymuje STEP więc reguluje ruch silnika by otrzymać zwrot na wejściu enkoderowym i daje to największą dokładność.