Zastosowanie SoftMotion dla sterowników Astraada ONE do programowania serwonapędów w standardzie PLCopen
Kontakt w sprawie artykułu: Grzegorz Faracik - 2022-09-30
Z tego artykułu dowiesz się:
- czym jest synchronizacja osi i jakie są jej rodzaje,
- na czym polega programowanie serwonapędów w standardzie PLCOpen,
- do czego potrzebna jest licencja SoftMotion.
Programowanie serwonapędów może zostać zrealizowane przy pomocy standardu nazywanego PLCopen®. Czyni to proces programowania łatwiejszym i jest szczególnie przydatne przy programowaniu maszyn wieloosiowych. Co z tym wspólnego ma licencja SoftMotion dla sterowników Astraada ONE? Jest to licencja, która pozwala na budowanie aplikacji sterujących serwonapędami właśnie z wykorzystaniem standardu PLCopen.
Najczęstszym powodem używania licencji SoftMotion jest konieczność synchronizacji osi, co oznacza, że w maszynie występuje oś wiodąca, tzw. Master, oraz oś podrzędna lub wiele osi podrzędnych, zwanych też Slave.
Sprawdź ofertę serwonapędów Astraada SRV
w Sklepie ASTOR
Istnieją dwa sposoby sprzęgania osi:
1. Prędkość osi podrzędnej jest wprost proporcjonalna do prędkości osi wiodącej.
Współczynnik sprzężenia może być dowolną liczbą, w tym również ułamkiem czy też liczbą ujemną – w tej ostatniej sytuacji nastąpi zamiana kierunku ruchu osi podrzędnej. Ten sposób sprzężenia nazywany jest z angielskiego Follower (oś podrzędna podążająca za osią wiodącą) lub Gear (przekładnia). Przykład sprzężenia osi o współczynniku 1/3:
Szczególnym rodzajem tego typu sprzężenia jest GearInPos, który również służy do zsynchronizowania prędkości osi podrzędnej z osią nadrzędną, ale dodatkowo umożliwia określenie sposobu dochodzenia osi do momentu zsynchronizowania. Sposób dochodzenia do synchronizacji osi definiowany jest przez parametry: MasterSynchPosition (punkt synchronizacji), SlaveSynchPosition (punkt synchronizacji), MasterStartDistance (droga osi wiodącej poprzedzająca punkt synchronizacji, podczas której oś podrzędna ma możliwość rozpędzenia aby dojść do synchronizacji). Przykład takiej synchronizacji:
Sprzężenie GearInPos znajduje zastosowanie na przykład w aplikacjach typu „cięcie w locie”.
2. Pozycje osi podrzędnej są przyporządkowane do pozycji osi wiodącej.
Zwykle określa się to w postaci wykresu lub tabeli, podając nie wszystkie punkty, lecz jedynie te bardziej charakterystyczne i dokonując interpolacji pomiędzy nimi. Stopień wielomianu użytego do interpolacji jest konfigurowalny np. w zakresie od 1 do 5. Im więcej punktów charakterystycznych oraz niższy stopień wielomianu, tym wierniej przybliżony zostaje kształt przebiegu, ale im wyższy stopień wielomianu, tym łagodniejsze przejścia pomiędzy fragmentami przebiegu.
Tak więc programistę czeka zadanie polegające na jak najlepszym przygotowaniu tzw. elektronicznej krzywki CAM. Nazwa krzywki została zaczerpnięta ze starych implementacji takich rozwiązań za pomocą mechanicznych krzywek CAM, jednak obecnie wszystko odbywa się drogą programową, a więc zmiana krzywki CAM może odbyć się błyskawicznie.
Dodatkowo w tym sposobie sprzężenia można używać mechanizmu zwanego DRUM czy też TAP, polegającego na tym, że po osiągnięciu ustalonych pozycji przez oś wiodącą będą załączane lub wyłączane szybkie wyjścia w serwonapędzie, tj. bez udziału głównego programu sterownika. Prosty edytor CAM jest zazwyczaj wbudowany w oprogramowanie narzędziowe, ale można też krzywkę CAM przygotować w innym oprogramowaniu, a następnie zaimportować.
Poniżej można zobaczyć przykład krzywki CAM (zależność pozycji osi podrzędnej od pozycji osi wiodącej) z podglądem na parametry pochodne jak prędkość, przyspieszenie i szarpnięcie:
Przykładowe zastosowania krzywek CAM to aplikacja nanoszenia kleju na obrys detalu, albo frezowanie krawędzi, obróbka arkusza blachy w locie na taśmociągu, itd.
Ogólnie programowanie serwonapędów w standardzie PLCopen jest wygodne ze względu na parametry wejściowe i wyjściowe poleceń w tym języku. Najczęściej w blokach funkcyjnych z tzw. grupy MOTION występuje wejście wyzwalające wykonanie polecenia oraz wejścia parametryzujące ruch, np. prędkość, przyspieszenie, szarpnięcie, dystans.
Występują także wyjścia, których rolą jest informowanie, czy ruch został zakończony, bądź czy też jest w trakcie, czy też zakończył się błędem (podawany wtedy jest kod błędu). Wejścia i wyjścia tych bloków funkcyjnych znacząco ułatwiają tworzenie sekwencji ruchu, bo przed przejściem do kolejnej fazy wystarczy sprawdzić wyjście bloku funkcyjnego informującego, czy ruch już zakończył się poprawnym wykonaniem (wyjście Done). Z kolei wyjścia informujące o błędzie upraszczają diagnozowanie pracy serwonapędu, bowiem wiadomo, przy jakim ruchu serwonapęd ewentualnie zatrzymał się i jaka była tego przyczyna.
W standardzie PLCopen przyjęto, że nazwy bloków funkcyjnych dotyczące programowania serwonapędów będą zaczynały się od przedrostka MC_ (skrót od Motion Control). Pozwala to na łatwe rozpoznanie, czy mamy do czynienia z blokiem pochodzącym ze standardu PLCopen, czy też z zupełnie innym. Dla większej czytelności w programie operuje się nie numerami lecz nazwami osi, jak na poniższym przykładzie:
Warto zaznaczyć, że dla każdego polecenia ruchu parametry takie, jak np. dystans, prędkość czy przyspieszenie, zadawane są indywidualnie.
Z reguły programowanie serwonapędu w PLCopen odbywa się w tym samym edytorze, co pisanie ”zwykłego” programu sterującego pracą maszyny, czyli np. w języku drabinkowym, ST czy FBD. Nie jest więc konieczne uczenie się nowego języka programowania czy też posiadanie dodatkowego narzędzia do programowania serwonapędów.
Przykład polecenia w języku drabinkowym:
Przykład podobnego polecenia w języku ST:
Wśród poleceń występujących w standardzie PLCopen możemy znaleźć takie, które skutkują wykonaniem ruchu (grupa Move) i takie, które są pewnego rodzaju przygotowaniem lub dodatkową diagnostyką (grupa Administrative). Przykładem pierwszego z nich jest ruch na pozycję absolutną MC_MoveAbsolute, a przykładem drugiego jest czytanie bieżącej pozycji MC_ReadActualPosition. Znajdziemy też polecenia ruchów skończonych (na pozycję) oraz nieskończonych (np. ruch z zadaną prędkością).
Licencjonowanie
W przypadku gdy nie jest potrzebna synchronizacja osi, serwonapędy mogą być programowane bez licencji. Jednak do programowania sterowników Astraada One w środowisku Codesys z użyciem standardu PLCopen konieczny jest zakup licencji SoftMotion.
Istnieją dwa warianty tej licencji:
1. Licencja standardowa pozwala na użycie sprzężenia Follower i krzywek CAM. Dzięki tej licencji można uzyskać interpolację kołową za pomocą krzywek CAM. Licencja jest używana w przypadku, gdy operator maszyny ma mieć możliwość wybrania trajektorii ruchu narzędzia z wcześniej przygotowanego przez programistę zbioru wzorcowych trajektorii.
2. Licencja z obsługą G-CODE ma zaimplementowaną łatwiejszą formę programowania maszyny jako całości, a szczególnie poleceń interpolacji kołowej – bo programuje się nie poszczególne osie, lecz całą mechanikę napędzaną serwonapędami (za pomocą poleceń G-CODE). Licencja zawiera bloki funkcyjne, które mają zaimplementowane różne modele kinematyki. Używana jest w przypadku, gdy operator maszyny ma mieć możliwość zdefiniowania własnej trajektorii narzędzia.
Ciekawą funkcjonalnością jest możliwość tworzenia osi wirtualnych. Taką oś można też ustanowić osią wiodącą dla całej maszyny, a osie fizyczne skonfigurować jako podrzędne.
Biblioteka SoftMotion zawiera też obiekty do wizualizacji pracy serwonapędów, co przyspiesza programowanie i uruchamianie serwonapędów.
Typowe zastosowania biblioteki SoftMotion to aplikacje typu:
- Weź i odłóż (Pick&Place), np. pobranie detalu i umieszczenie go w określonym miejscu w półprodukcie przesuwanym na taśmociągu – a więc synchronizacja pozycji i prędkości z taśmociągiem.
- Nadruki na produktach i opakowaniach (Labelling), np. nadruki realizowane z użyciem elektronicznej krzywki CAM, w tym wykrywanie znaczników początku dla nadruków i etykiet, itp.
- Wtryskarki (Injection Moulding Machine), wykorzystujące zmianę w locie sterowania pozycją na sterowanie momentem siły.