AS300 za pomocą tego sterownika można na kilka sposobów sterować serwonapędami ASDA:
– impulsowo (sygnały dir/step) PT
– PR mode (wykonywanie ścieżek zapisanych w serwonapędzie)
– zapisując ścieżki w serwonapędzie i wywołując je komendami poprzez protokół CANopen
– Za pomocą komend wysyłanych do serwonapędu będącego w trybie CANopen Mode.
– dedykowanymi instrukcjami „Delta CANopen Communication Instructions” dostępnymi w serii sterowników AS300
Ze względu na spory zakres materiału, artykuł będzie podzielony na kilka części. Dziś zajmiemy się podstawami sterowania impulsowego, jak podłączyć sygnały oraz poznamy instrukcje wykonania ruchu pojedynczą osią. Następna część będzie dotyczyła ruchów interpolowanych i wywoływania ruchów zapisanych w specjalnej tabeli sterownika.
Wszystkie poniższe przykłady były przetestowane na sterowniku AS332P-A z podłączonym panelem HMI serii DOP-B oraz serwonapędach ASDA-A2.
Sposób 1. sterowanie impulsowe. Część 1.
1. Zaczynamy zabawę, czyli konfiguracja serwonapędu
Sterownikiem AS300 możemy sterować impulsowo 6 osiami. Każda z osi ma przypisane wyjścia do których należy podłączyć sygnały pulse i sign. Takie sygnały wejściowe posiada większość serwonapędów oraz sterowników silników skokowych.
Na początku pracy najlepiej jest przywrócić ustawienia fabryczne sterownika serwonapędu ponieważ nie wiadomo jaka jest obecna konfiguracja, możemy tego dokonać zapisując w serwonapędzie parametr P2-08 = 10. Po tej operacji wymagany jest restart serwonapędu.
Po przywróceniu ustawień fabrycznych, parametr P1-01 (wybór trybu pracy) powinien mieć wartość 0, jeśli nie zmieniamy wartość na 0 i ponownie restartujemy zasilanie.
Obecnie na serwonapędzie pojawią się błędy od wyłączników krańcowych i wyłącznika bezpieczeństwa. Dla testów można wyłączyć te funkcje, ale w rzeczywistym układzie, ze względów bezpieczeństwa, dobrze jest je zastosować (przynajmniej wyłącznik bezpieczeństwa). Wyłączamy te funkcje zmieniając wartości parametrów
P2-15=0 (ustawianie funkcji wejścia DI6),
P2-16=0 (ustawianie funkcji wejścia DI7),
P2-17=0 (ustawianie funkcji wejścia DI8).
Tip: Do zmian parametrów serwonapędu można użyć oprogramowania Delta ASDA-Soft, które jest do pobrania ze strony https://induprogress.pl/wsparcie-techniczne/do-pobrania/ |
2. Jak nie zrobić zwarcia, czyli połączenie sygnałów pomiędzy sterownikiem AS300 a serwonapędem
Aby przesłać impulsy ze sterownika PLC do 2 serwonapędów, musimy połączyć sygnały:
AS300 Y0.0 – SERWO1 PULSE
AS300 Y0.1 – SERWO1 SIGN
AS300 Y0.2 – SERWO2 PULSE
AS300 Y0.3 – SERWO2 SIGN
AS300 Y0.16 – SERWO ON wejście DI1, ustawione parametrem P2-10 = 0x0101
Powyższa lista zakłada, że będziemy włączali sygnał Serwo on w obydwu serwonapędach jednocześnie, można też rozdzielić te sygnały na 2 wyjścia sterownika, wtedy będziemy mieli możliwość załączania i wyłączania każdego z serwonapędu osobno.
Niżej przykładowy schemat serwonapędu ASDA-A2 przy podłączaniu do sterownika z wyjściami PNP.
Uwaga: przed podłączeniem przewodów sprawdź w dokumentacji zastosowanego serwonapędu jak podłączyć sygnały. Nieprawidłowe podłączenie może spowodować uszkodzenie serwonapędu! |
3. Co jest czym, czyli podstawowe informacje na temat osi
Każda z osi ma przypisane wyjścia na których podaje sygnały pulse i sign. Wyjścia sterownika PLC są pogrupowane i przypisane do poszczególnych osi:
W AS300 do każdej z osi są przypisane rejestry specjalne, np dla osi 1 są to:
SM460 – Busy flag – flaga zajętości osi, aktywna gdy na osi wykonywany jest ruch.
SM461 – Completion flag – flaga zakończenia ruchu.
SM463 – Stop flag – ustawienie tej flagi powoduje zatrzymanie wykonywania instrukcji ruchu z rampą hamowania, po resecie flagi przerwana instrukcja dokańcza swoje działanie.
SR460(DWORD) – aktualna pozycja osi, jest to pozycja informująca o ilości zadanych impulsów, a nie o rzeczywistej pozycji serwonapędu.
SR463(WORD) – częstotliwość początkowa i końcowa – jest to częstotliwość impulsów na wyjściu na początku rampy przyśpieszania i na koniec rampy hamowania.
SR464(WORD) – ramp up time – czas przyśpieszania w ms
SR465(WORD) – ramp down time – czas hamowania w ms.
Oczywiście każda z pozostałych osi posiada własne rejestry o identycznej funkcjonalności lecz znajdują się pod innymi adresami (dla osi 2 zaczynają się od SM480 i SR480, dla osi 3 zaczynają się od SM500 i SR500, itd.). Wyżej wymienione są tylko najczęściej wykorzystywane rejestry i flagi. Oprócz przedstawionych tutaj jest wiele innych obsługujących funkcje: wywołania przerwania w chwili zakończenia, ustawienie stałego zbocza rampy przyśpieszania i hamowania, włączenie limitów sprzętowych (sterownik nie pozwoli na ruch serwonapędu po najechaniu na czujnik krańcowy) oraz włączenie limitów programowych (sterownik nie pozwoli pojechać dalej niż zadana pozycja). Więcej informacji w dokumentacji sterownika.
4. Wprowadźmy to w ruch- podstawowe instrukcje sterowania jedną z osi
Najczęściej wykorzystywanymi instrukcjami do pozycjonowania serwonapędów impulsowo są znane z serii DVP instrukcje DDRVI oraz DDRVA.
Różnica pomiędzy tymi instrukcjami polega na tym, że instrukcja DDRVI wykonuje ruch inkrementalny, a instrukcja DDRVA ruch absolutny, tzn. jeżeli 2 razy po kolei wykonamy instrukcję [DDRVI 10000 1000 Y0.0 Y0.1], to serwonapęd zmieni pozycję o 20000, jeśli natomiast wykonamy dwukrotnie instrukcję [DDRVA 10000 1000 Y0.0 Y0.1], to przy pierwszym wykonaniu serwonapęd zmieni pozycję na 10000, lecz przy drugim wykonaniu serwonapęd nie wykona żadnego ruchu ponieważ będzie już na zadanej pozycji (zakładając, że pomiędzy dwoma wywołaniami instrukcji nie wykonano innych instrukcji powodujących ruch serwonapędu danej osi).
W sytuacji gdy chcemy wykonać ruch ale nie znamy dokładnej pozycji docelowej (dojazd do czujnika lub popularny w maszynach tryb JOG czyli tryb przesuwu ręcznego) przydatne są instrukcje DPLSV oraz DJOG.
Instrukcja DPLSV istniała w sterownikach serii SLIM i tutaj działa identycznie czyli zadaje na wyjściu impulsy o zadanej częstotliwości, bez stosowania rampy. Nową instrukcją jest DJOG, działa podobnie jak DPLSV, ale dodaje rampę przyśpieszania po załączeniu instrukcji i hamowania po jej wyłączeniu. Zakończenie ruchu można wykryć za pomocą flagi zajętości danej osi (Busy flag). W obydwu instrukcjach zadana częstotliwość może być zmieniana w trakcie wykonywania instrukcji. Wówczas przy instrukcji DJOG zmiana częstotliwości również będzie odbywać się z rampą.
Jeżeli potrzebujemy wykonywać przejazdy pomiędzy dwoma pozycjami przyda nam się instrukcja DPPGB
S1 – ilość impulsów podczas ruchu do przodu
S2 – ilość impulsów podczas ruchu w tył (musimy podać ujemną wartość)
S3 – częstotliwość wyjściowa
S4 – skalowanie częstotliwości wyjściowej (float)
D1 – wyjście impulsów (wyjście kierunku jest wybierane domyślnie)
D2 – wyjście pracy
Instrukcja wykonuje S1 impulsów, a następnie S2 impulsów, z częstotliwością S3*S4. Ruch jest wykonywany do momentu wyłączenia instrukcji, przy czym wyłączenie sygnału wyzwalającego w trakcie ruchu powoduje zatrzymanie z rampą bez dokończenia ruchu w daną stronę (wyjątkiem jest sytuacja gdy wyłączamy sygnał sterujący w trakcie trwania rampy hamowania, przykład jak to zrobić jest w programie dołączonym do artykułu).
Jeśli S1 i S2 nie będą różniły się tylko znakiem wtedy serwonapęd nie będzie wracał na pierwotną pozycję lecz będzie się przesuwał z każdym cyklem pracy w jedną ze stron o różnicę pomiędzy parametrami S1 i S2. Omawiana sytuacja jest przedstawiona na poniższym wykresie (jedna podziałka pozioma to 1000 impulsów):
W niektórych urządzeniach potrzebne jest nadążanie serwonapędu za wejściowym sygnałem enkoderowym. Sterowniki AS300 posiadają instrukcję CSFO która odczytuje z wejść sygnał zadawany z enkodera i przekazuje na wyjście impulsowe przeskalowany sygnał impulsowy, o częstotliwości proporcjonalnej do częstotliwości sygnału wejściowego.
S1 – wejście enkodera inkrementalnego z sygnałami A/B, można użyć jedynie X0.0, X0.2, X0.4, X0.6, X0.8 i X0.10, zajmuje 2 kolejne wejścia (wpisując X0.0 zajęte są X0.0 jako sygnał A, oraz X0.1 jako sygnał B)
S2 – liczba impulsów enkodera od wywołania instrukcji,
S3 – aktualna częstotliwość impulsów enkodera,
S4 – mnożnik skalowania
S5 – dzielnik skalowania
D1 – wyjście impulsowe,
D2 – aktualna częstotliwość wyjściowa.
W trakcie wykonywania instrukcji sterownik skaluje zarówno ilość impulsów wejściowych, jak i częstotliwość w proporcjach S4/S5, np.: dla S4=10 S5=2, gdy sygnał z enkodera będzie miał 100 impulsów o częstotliwości 20Hz, to sygnał wyjściowy podany do serwonapędu będzie miał 500 impulsów (100 * 10 / 2 ) o częstotliwości 100Hz (20Hz * 10 / 2).
Do artykułu są dodane przykłady działania wszystkich opisanych tutaj instrukcji.
AS322P_PTMODE_1 – instrukcje ruchu pojedyncza osią.