Do Projektu iAutomatyka dołączyli:

https://iautomatyka.pl/wp-content/uploads/2018/07/5os.jpg

ROBOT KROKI – Warstwa sprzętowa projektu cz.2

autor: Rafał.

Artykuł z serii: "KROKI" - Robot przemysłowy, zbudowany na biurku


Zgodnie z zapowiedzią zapraszam na drugą część serii, w której będziecie świadkami powstawania tego nietypowego projektu. Przejdziemy przez wszystkie etapy jego budowy. Zobaczycie, jak rozwiązuję napotykane problemy oraz jakich technologii używam przy budowie tej konstrukcji. Mam nadzieję, że seria ta będzie skarbnicą wiedzy dla początkujących automatyków oraz ciekawą lekturą dla tych już bardziej doświadczonych.

W pierwszej części postaram się opisać warstwę sprzętową tego projektu. Dowiecie się coś więcej na temat wykorzystanego sterowania oraz poznacie schemat elektryczny powstającego robota. Pamiętajcie jednak, że jest to projekt czysto hobbystyczny, co niesie za sobą pewne ograniczenia czasowe, sprzętowe, czy organizacyjne.

PLC

Tak właściwie, to wyboru sterownika PLC, który zostanie wykorzystany, dokonałem jeszcze przed pojawieniem się jakiejkolwiek koncepcji tego projektu. Jak już wiecie ze wstępu, do tego projektu zostałem zainspirowany dzięki produktom firmy Siemens. Mój pierwszy sterownik, który postanowiłem poznać dokładniej, to S7-1200. I to właśnie przy nauce tego sterownika zrodził się pomysł wykorzystania go w tej nietypowej konstrukcji.

Do dyspozycji miałem CPU 1215C DC/DC/DC i właśnie tę wersję postanowiłem wykorzystać. Jednak dość szybko pojawiły się pierwsze problemy. W założeniach projektu ująłem, że robot ma posiadać 5 osi. Jednakże S7-1200 ma dostępne tylko cztery wyjścia PTO, które wykorzystuję do sterowania silnikami krokowymi. Jako że zrezygnowanie z jednej osi nie wchodziło w grę (tak, uparłem się), to musiałem szukać innego rozwiązania. Jak to zwykle bywa, koncepcji i pomysłów było wiele. Pierwszy pomysł to wykorzystanie jakiegokolwiek innego wyjścia i programowe generowanie impulsów. Zmienne czasy cykli powodowały jednak, że silnik był bardzo niestabilny. Już ruch z jednostajną prędkością był nierówny, a co dopiero, gdybym próbował implementować algorytmy rozpędzania i hamowania silnika zgodnie z zadaną rampą. W skrócie – była to ślepa uliczka.

Kolejne pomysły, to wykorzystanie wyjść analogowych. Motion Control w s7-1200 można skonfigurować zarówno z wyjściami PTO, jak i z wyjściami analogowymi. Pierwszy minus tego rozwiązania to oczywiście koszty. Wyjścia analogowe są po prostu drogie. O ile cenę samego rozszerzenia mógłbym przeboleć, to jednak dobór sterownika, który obsługiwałby standard +-10V, byłby bolesny dla mojego budżetu jeszcze bardziej. Oczywiście widziałem już wizję robota opartego o serwonapędy, ale pierwsze rozeznanie w cenach nawet chińskich zestawów sprowadziło mnie na ziemię.

No cóż, nie pozostało mi nic innego jak wykorzystanie drugiego sterownika. Powiecie pewnie, że to przerost formy nad treścią. Niestety muszę się z tym zgodzić. Wykorzystuję drugi sterownik tylko po to, by zyskać jedno dodatkowe wyjście… Oczywiście ostatecznie znalazłem mu tez inne zadania jak na przykład sterowanie serwomechanizmem modelarskim poprzez wolne wyjście PWM. Jednak niesmak pozostał. Jako drugie CPU postanowiłem użyć 1212C DC/DC/DC. Zakupiłem je z myślą, że po zakończonym projekcie taki sterownik po prostu może mi się przydać. 1211C też byłby wystarczający, ale jednak mała ilość wejść i wyjść mogłaby być problematyczna w kolejnych projektach.

HMI

Mimo że to sterownik PLC jest głową naszego robota, to bez interfejsu między człowiekiem a robotem zbyt wiele nie zdziałamy. Panel HMI to jedno z kluczowych urządzeń w tym projekcie. To od stworzonej wizualizacji będzie zależeć, czy programowanie robota będzie przebiegało sprawnie i czy nie będzie stwarzało żadnych problemów. Wizualizacja musi być zatem dobrze przemyślana, a sam panel dobrany tak, by praca na nim była wygodna.

Do tego projektu wykorzystam panel XV300 firmy Eaton. 7-calowa wersja wyświetlacza z dwoma portami Ethernetowymi oraz funkcją multitouch sprawdzi się tu doskonale. Jego smukła budowa jest idealna, by zabudować go w również wydrukowanym przenośnym pulpicie operatora.

Wydajny proces graficzny oraz funkcja obsługi gestów jest czymś, co wyróżnia ten panel i co na pewno znajdzie zastosowanie w powstającym projekcie. Za pomocą tego panelu będziemy mogli przejąć kontrolę nad całym robotem. To właśnie na nim zaimplementuję edytor, w którym będzie można pisać nowe sekwencje ruchów, a także edytować te już istniejące. Będziemy mogli również uzyskać dostęp do parametrów każdej z osi oraz parametrów ogólnych robota.

Edytor sekwencji ruchów dostanie także możliwość ingerowania w wyznaczone rejestry sterownika, a także wejścia i wyjścia cyfrowe. Dostaniemy możliwość wykonywania prostych obliczeń, a nawet wykorzystywania liczników. Dzięki temu możliwości robota znacząco wzrosną i pozwolą na przetestowanie go w wielu różnych aplikacjach.

Sterowniki silników krokowych – M542

Zastosowane sterowniki silników krokowych, to bardzo popularne w amatorskich konstrukcjach CNC – M542. Są łatwo dostępne. Można je zasilić maksymalnym napięciem 50V, oraz obciążyć prądem do 4,2A. Mikrokrok ustawiony na 1:128 pozwala uzyskać wysoką kulturę pracy silnika krokowego.

Według noty katalogowej sterowniki te mogą być zasilane napięciem od 20 do 50V. Do tego celu wykorzystam zasilacz impulsowy 1T2 o napięciu wyjściowym 36V i mocy około 330W.

Napięcie to będzie podawane na sterowniki tylko wtedy, gdy obwód bezpieczeństwa nie będzie przerwany. Dwa styczniki 4K1 i 4K2, które będą odpowiedzialne za odcinanie napięcia, zasilane będą przez styki robocze naszego przekaźnika bezpieczeństwa. Jest to najprostszy i najpopularniejszy sposób wykorzystania układów bezpieczeństwa. Dzięki takiemu połączeniu będziemy pewni, że po wciśnięciu wyłącznika bezpieczeństwa, nasz napęd zostanie skutecznie pozbawiony zasilania. Sygnał reset modułu bezpieczeństwa puszczony przez styki pomocnicze NC pozwoli wykryć nieprawidłową pracę styczników i nie pozwoli na ponowne zamknięcie obwodu bezpieczeństwa.

Sygnały sterujące, które będziemy wykorzystywać do sterowania silnikami, to STEP i DIR. Impulsy podawane na wejście STEP powodować będą obrót silnika z kierunkiem zgodnym z sygnałem DIR. Jednak sygnałów z PLC nie możemy podłączyć bezpośrednio do wykorzystanych sterowników silników krokowych. Sterowniki te akceptują sygnały o maksymalnym napięciu 5V. Szybki wgląd do dokumentacji przygotowanej przez producenta pozwala dowiedzieć się, że nasze 24V wychodzące ze sterownika PLC nie jest dużym problemem. Każde z wejść sterowników silników krokowych wyposażone zostało w transoptor. By zwiększyć poziom napięcia, które możemy podać na wejście, wystarczy dodać w szeregu dodatkowy rezystor ograniczający prąd przepływający przez diodę transoptora. Producent urządzenia przewidział taką ewentualność i przedstawił w swojej dokumentacji jakie wartości rezystorów musimy zastosować.

 

Mimo że w dokumentacji widnieje zapis o rezystorze o wartości 2k Ohm, to na schemacie zamieściłem rezystory 2,2k Ohm. Czemu? Wszytko to z jednego, bardzo trywialnego powodu. Po prostu takie posiadałem. Mimo że rezystor 2k Ohm jest z bardzo popularnego szeregu E24, to takiej wartości zabrakło w moim magazynku. Czy jest to problem? Oczywiście, że nie. Taka różnica nie wpłynie znacząco na działanie układu. Mimo że przepływający prąd będzie mniejszy, to dioda i tak bez problemu wysteruje tranzystor na wejściu sterownika silnika krokowego.

 

Pozycja manipulatora

Mówiąc o napędach wprawiających w ruch poszczególne osie, nie można nie wspomnieć o problemie związanym z ustaleniem aktualnej pozycji robota.

Tak jak wspominałem we wstępie, do takich rozwiązań idealne są serwonapędy w komplecie z enkoderami absolutnymi o bardzo dużych rozdzielczościach. Nie musimy się martwić o pozycję robota, gdyż tzw. mastering wykonujemy tylko raz i dopóki enkodery nie stracą zapamiętanej pozycji, dopóty nasz robot będzie pamiętał, na jakiej pozycji się znajduje. Takie działanie gwarantuje powtarzalność, o którą ciężko przy zwykłych silnikach krokowych.

Pierwotnie, w moim robocie planowałem wykorzystać najprostsze silniki krokowe bez sprzężenia zwrotnego. Niestety pozycja przechowywana w pamięci sterownika czasami mogłaby nie odpowiadać pozycji realnej. Pierwszym problemem jest nadmierne przeciążanie silników. Na pewno słyszeliście już gdzieś pojęcie gubienia kroków, ale co to właściwie oznacza? Gubienie kroków, czyli gubienie impulsów, które zadajemy na nasz sterownik. Sterownik próbuje wysterować silnik zgodnie z zadawanymi sygnałami, lecz ze względu na duże obciążenie silnik nie potrafi wykonać ruchu i pozostaje w pozycji początkowej. Brak sprzężenia zwrotnego powoduje, że z punktu widzenia PLC oś wykonała dokładnie tyle kroków, ile zostało zadane. Przy szybkich ruchach ze stromymi rampami to gubienie kroków może być bardzo dokuczliwe.

Drugim problemem jest samo zerowanie osi. Każde wyłączenie napędów, czyli wyłączenie robota, a nawet wciśnięcie wyłącznika bezpieczeństwa musimy traktować jako utratę pozycji. Robot musi wtedy zażądać wyzerowania jego osi, przed przystąpieniem do wykonywania programu. Częste zerowanie nie jest czymś, na czym nam zależy. Precyzja spadnie znacząco, gdyż nigdy nie uda nam się za każdym razem wyzerować robota tak samo. Czujniki indukcyjne, które zamierzam wykorzystać, mają pewną dokładność i nic z tym nie zrobimy.

Biorąc pod uwagę budżet, w mojej głowie początkowo zrodził się pomysł sprzężenia wykorzystanych silników z enkoderami inkrementalnymi. Sterownik PLC s7-1200 posiada wbudowane szybkie liczniki, które bez najmniejszego problemu radzą sobie z enkoderami. Pozycja z enkoderów mogłaby służyć do porównania pozycji zapamiętanej przez bloki motion control z tą odczytaną przez enkoder. Przy małych różnicach można skorygować pozycję zapamiętaną, by zniwelować błąd powstały przy zgubieniu pojedynczych kroków. A w przypadku dużych różnic tych dwóch pozycji, należy aktywować alarm, który oznajmia mechaniczne uszkodzenie osi.

 

 

Wizja piękna, ale jak będzie w rzeczywistości? Działanie tych enkoderów będzie ściśle związane z wartością zapamiętaną przez sprzętowe, szybkie liczniki sterownika. Wystarczy krótki zanik napięcia i wartość ta zostaje bezpowrotnie stracona. Takim sposobem rozwiązujemy tylko jeden problem – nie musimy zerować osi po każdym wciśnięciu wyłącznika bezpieczeństwa. Czy o taki efekt nam chodziło? Oczywiście, że nie! Nie chcemy przecież wykonywać masteringu robota po każdym zaniku napięcia, a wykorzystanie czujników indukcyjnych do zerowania osi to znowu rozwiązanie dalekie od ideału.

Wiemy już, że bez enkoderów nie możemy się obejść. Enkodery absolutne są bardzo drogie, a enkodery inkrementalne nie do końca odpowiadają naszym wymaganiom. Gdybyśmy wykorzystali enkodery inkrementalne, by uzyskać namiastkę enkoderów absolutnych? Brzmi ciekawie, prawda? Po długich namysłach postanowiłem wykorzystać wiedzę zdobytą w szkole i w czasach, gdy o automatyce nie miałem najmniejszego pojęcia, a moim jedynym i największym hobby była elektronika cyfrowa. Wizja jest taka – projektujemy elektronikę, która zabudowana w konstrukcji robota będzie odczytywała sygnały z enkoderów inkrementalnych, zliczy je, a dzięki podtrzymaniu bateryjnemu zapamięta tę pozycję nawet przy kilkudniowych brakach napięcia.

Elektronika zostanie w całości zaprojektowana przeze mnie, a płytkę PCB ze względu na wykorzystanie układów scalonych w bardzo małych obudowach SMD będzie wykonana przez firmę zewnętrzną. Sam opis działania tego układu zostawię sobie na osobny artykuł, bo jest o czym pisać. Odczyt i zapamiętanie pozycji z jednego enkodera to aż 14 układów scalonych, a wszystko dlatego, że nie chcę wykorzystywać mikrokontrolera, lecz wszystko chcę zrobić na licznikach, przerzutnikach i bramkach logicznych. Mimo wielkości układu całość będzie bardzo prosta, więc osoby nawet nieobeznane w technice elektroniki cyfrowej zrozumieją zasadę działania. W tej chwili elektronikę tą traktujemy tylko jako czarne pudełko z wyprowadzonymi nóżkami.

 

 

Nóżki te, to oczywiście zasilanie, wejścia enkoderów w standardzie 5V, oraz wyjścia enkoderów w standardzie 24V, które możemy podać bezpośrednio na wejście sterownika PLC. Wyjścia te sugerują, że w sterowniku dalej będziemy wykorzystywać szybkie liczniki sprzętowe. I słusznie. Z naszego czarnego pudełeczka możemy uzyskać pozycję osi na dwa sposoby. Jeden z nich to wyjścia A i B. Są to te same sygnały, które podajemy z enkoderów do naszej elektroniki, z tą różnicą, że układ wewnętrzny odpowiada za dopasowanie poziomów napięć z 5V na wejściu do 24V na wyjściu.

Drugim sposobem na uzyskanie pozycji enkodera jest odczyt pozycji po prymitywnym protokole szeregowym. Impuls na wejściu INIT trwający około 1s powoduje wysłanie przez wyjście DATA aktualnej pozycji wszystkich enkoderów. Pozycja każdej osi zapisywana jest w 20-bitowych licznikach, a w momencie wyzwolenia komunikacji przerzucane są one do 24-bitowych rejestrów przesuwnych. Ramka komunikacyjna wygląda zatem w ten sposób, że po każdych 20 bitach odpowiadających pozycji jednej osi, wysyłane są także cztery puste bity wynikające z różnicy pomiędzy licznikami a rejestrami. W sumie pełna ramka wynosi 96 bitów.

Dlaczego mamy do dyspozycji dwie metody odczytywania pozycji? Wszystko ze względu na czas dostępu. Wyjścia A i B posłużą do bieżącej kontroli pozycji manipulatora. Do danych z tych wyjść mamy dostęp praktycznie natychmiastowy, gdyż są one przechowywane w szybkich licznikach wewnątrz sterownika PLC. Po każdym kolejnym kroku wykonywanego programu możemy szybko sprawdzić, czy któraś z osi nie zgubiła pozycji i ewentualnie wprowadzić korektę w kolejnych ruchach manipulatora. Wyjście komunikacji szeregowej, ze względu na czas potrzebny na odczytanie wszystkich 96 bitów, posłuży nam tylko do odczytania aktualnej pozycji po zaniku napięcia. Zaraz po uruchomieniu sterownik sam odpyta układ zabudowany w robocie i na podstawie odczytanych danych zaktualizuje pozycję zapisaną w sterowniku.

Takie rozwiązanie dotyczyło będzie czterech osi robota. Piąta oś, ze względu na niewielką ilość miejsca, będzie musiała być dalej zerowana na podstawie odczytu z czujnika indukcyjnego. Nie jest to jednak aż tak duży problem, gdyż jest to tylko obrót chwytaka wokół własnej osi. Nie jest to oś, która byłaby aż tak kluczowa przy ocenie dokładności pozycjonowania ramienia robota.

 

 

Szafa elektryczna

Sterowniki PLC, sterowniki silników krokowych, układ zasilania oraz układ bezpieczeństwa – wszystkie te elementy sumarycznie tworzą układ sterujący robotem. Nie mogę ot, tak spiąć tego wszystkiego luzem i rzucić gdzieś obok konstrukcji robota. Jeśli chcę, by projekt był traktowany poważnie to i w tym wypadku muszę zadbać o wykonanie.

Układ sterownia zostanie umieszczony w szafie sterowniczej produkcji firmy Rittal. Wykorzystana szafa to AE 1110.500 z serii Kompakt. Jest to szafa o szerokości 1000mm, wysokości 1000mm oraz głębokości 300mm.

 

Jest ona potężna, jednak pamiętajmy, że szafa zawsze powinna być dobierana z pewnym zapasem. Wybór tak dużej obudowy podyktowany był również jeszcze jedną rzeczą. Zostawiłem sobie w ten sposób otwartą furtkę do przyszłościowej wymiany zwykłych sterowników silników krokowych na zestaw serwonapędów. Czy do tego dojdzie? Nie wiem, lecz nie chciałem zamykać sobie drogi przez wybór przyciasnej szafy sterowniczej.

 

Schemat elektryczny

Poniżej zamieszczam obiecany schemat elektryczny powstającego robota. To właśnie ten schemat posłuży w trakcie „szycia” szafy elektrycznej.  Na chwilę obecną jest to ostateczna wersja sterowania i jeśli w ogóle będzie on poprawiany to zmiany będą tylko kosmetyczne. Ogólna koncepcja tego układu nie ulegnie zmianie.

Robot KROKI – Schemat elektryczny

Schemat został narysowany w oprogramowaniu SEE Electrical, które zostało mi udostępnione właśnie na potrzeby tego projektu. Oprogramowanie to jest bardzo przyjazne i pozwala na znaczne przyśpieszenie prac związanych z projektowaniem układów automatyki. Wszystko to dzięki zaimplementowaniu wielu systemów ułatwiających i przyśpieszających pracę.

Moduł 3D tego oprogramowania pozwala nawet na tworzenie trójwymiarowych modeli szaf elektrycznych wraz z ich pełnym wyposażeniem. Program automatycznie wyznacza nam optymalne ścieżki prowadzenia połączeń, sprawdza zgodność projektu 3D ze schematem, czy nawet wykrywa kolizje między urządzeniami zamontowanymi w szafie. Na koniec możemy wygenerować zestawienia, z których dowiemy się ile oraz jakich długości przewodów potrzebujemy do połączeń pomiędzy poszczególnymi aparatami. Na sam koniec możemy także skorzystać z przygotowanego projektu, by z wykorzystaniem maszyn CNC przygotować tylną płytę szafy elektrycznej pod montaż komponentów.
Możliwości tego moduł 3D dokładnie przedstawię później, gdy będę  na etapie uzbrajania szafy elektrycznej w układ sterowania.

Ciąg dalszy….

W ten oto sposób nadszedł koniec pierwszego odcinka. Było to takie małe rozszerzenie wstępu i głębsze przedstawienie całego projektu. Dalsze części będą przedstawiały bardziej praktyczne zagadnienia. W następnym odcinku zapoznamy się z techniką druku 3D oraz przyjrzymy się bliżej konstrukcji tego robota. Z jakich materiałów drukowane są jego elementy oraz jak łączone są one ze sobą. Mam nadzieję, że chociaż parę osób zainteresowałem tym projektem i będą one cierpliwie czekać na kolejne wieści o postępach.

 

Podziękowania

Projekt robota wydrukowanego w 3D „KROKI” koordynowany jest przez Zespół iAutomatyka.pl. W wyniku współpracy z firmami z branży udało się pozyskać wiele materiałów i urządzeń niezbędnych do ukończenia projektu. Szczególne podziękowania kierujemy do następujących firm:

 Firma Rittal dostarczyła do projektu robota „KROKI” wysokiej jakości obudowę szafy elektrycznej oraz niezbędne komponenty montażowe.

https://www.rittal.com/

 

Firma WAGO dostarczyła komponenty łączeniowe, złączki, zabezpieczenia i akcesoria montażowe.

http://www.wago.pl/

 

Dzięki uprzejmości Centrum Szkoleniowego EMT-SYSTEMS Rafał Lelito miał możliwość odbycia szkolenia z Programowania Robotów Kuka. Zobacz relację z tego wydarzenia.

http://emt-systems.pl/

 Firma IGE+XAO GROUP zapewniła pełne oprogramowanie See Electrical do projektowania schematów elektrycznych.

Pobierz za darmo: http://www.ige-xao.com/

 Firma NOCTUO dostarczyła część filamentów jako materiał do druku 3D części robota „KROKI”.

http://www.noctuo.pl/

 

 Firma EATON dostarczyła dotykowy panel HMI serii XV-300

https://www.moeller.pl/

 

Rafał Lelito


Więcej z serii: "KROKI" - Robot przemysłowy, zbudowany na biurku


Utworzono: / Kategoria: , , , , ,

Reklama

Newsletter

Zapisz się i jako pierwszy otrzymuj nowości!



PRZECZYTAJ RÓWNIEŻ



NAJNOWSZE PUBLIKACJE OD UŻYTKOWNIKÓW I FIRM

Reklama



POLECANE FIRMY I PRODUKTY
  • Czym jest PRRT? PRRT oznacza Power Remote Reset Technology, opatentowaną funkcję, którą posiadają wybrane switche przemysłowe PoE i media konwertery firmy Antaira. Prezentowana funkcja umożliwia łatwe zresetowanie zasilanego urządzenia w zd...
  • Proficy Operations Hub produkcji GE Vernova (uprzednio GE Digital) jest wszechstronnym klientem webowym, agregującym i wizualizującym dane z różnych źródeł, dzięki czemu może stanowić jedno źródło wiarygodnej wiedzy o produkcji. Umożliwia b...
  • PR200 to uniwersalne i łatwe w obsłudze urządzenie zaprojektowane w plastikowej obudowie do montażu na szynie DIN jako alternatywa dla PLC. Przekaźnik jest dostępny w kilku wersjach dla napięcia stałego i przemiennego. Jest wyposażony w cyf...
  • Seria EX-Z Czujniki z serii EX-Z to jedne z najmniejszych urządzeń tego typu na świecie. Najcieńszy model posiada grubość jedynie 3 mm co zostało osiągnięte przez zastosowanie nowych półprzewodników i dzięki temu wyeliminowanie przewodów. B...
  • Chcieliby Państwo być informowani z wyprzedzeniem o stanie maszyny lub techniki napędowej? Nic prostszego! Aplikacja DriveRadar® oferuje kompleksowe zarządzanie konserwacją w oparciu o cyfrowe rejestrowanie danych, na podstawie których możl...
  • Zapraszamy Cię na pełny kurs zdalnego dostępu SECOMEA. Kurs powstał z myślą o każdym, kto chce zgłębić tajniki zdalnego dostępu do maszyn i sieci przemysłowej. Zdalny dostęp rozwija się dynamiczne i zyskuje na znaczeniu zwłaszcza w sytuacji...