Istnieje wiele sposobów sterowania serwonapędami ASDA przy wykorzystaniu sterownika PLC z serii AS300:
- 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 w trybie CANopen Mode
- dedykowanymi instrukcjami “Delta CANopen Communication Instructions” dostępnymi w serii sterowników AS300
W poprzednich częściach artykułu zajmowaliśmy się sterowaniem impulsowym oraz wykonywaniem ścieżek PR. W tej części artykułu też będziemy korzystać z ścieżek PR ale wyzwalając je w inny sposób.
Sposób 3. Zapisywanie ścieżek do serwonapędu oraz wykonywanie zapisanych ruchów za pomocą interfejsów komunikacyjnych. Część 1
1. Zaczynamy zabawę, czyli konfiguracja serwonapędu
Cała konfiguracja serwonapędu jest identyczna jak w poprzedniej części serii artykułów o AS300 [link do części 3] W przeciwieństwie do poprzedniej części artykułu, możemy pominąć konfigurację ścieżek, ponieważ będziemy ją przesyłać przez interfejs komunikacyjny.
Musimy jeszcze zmienić ustawienia komunikacji, służą do tego parametry grupy P3.
- P3-00 2 adres urządzenia (dotyczy zarówno interfejsu Modbus jak również CAN)
- P3-01 0x405 prędkość transmisji (CAN 1Mb/s, Modbus 115200)
- P3-02 1 Modbus ASCII, 7E1
- P3-05 1 Typ komunikacji RS (0=RS232, 1=RS485)
po zmianie adresu urządzenia musimy zresetować zasilanie serwonapędu.
2. Jak nie zrobić zwarcia czyli połączenie sygnałów pomiędzy sterownikiem AS300 a serwonapędem
W tej części będziemy omawiać komunikację za pomocą interfejsu Modbus (RS485), w następnej części zajmiemy się interfejsem CAN.
W przypadku komunikacji po interfejsie MODBUS (RS-485) musimy podłączyć się do pinów 5 i 6 złącza CN3, rozmieszczenie pinów na złączu przedstawia poniższy rysunek:
Od strony sterownika podłączamy się do złącza COM1/COM2 do wybranego portu COM, linię RS485(+) sterownika łączymy z linią RS485(+) serwonapędu, podobnie z liniami RS485(-).
3. Jak się dogadać, czyli konfiguracja sterownika
W przeciwieństwie do sterowników serii DVP gdzie konfiguracja odbywała się poprzez zapisywanie odpowiednich wartości do rejestrów, w sterownikach AS300 konfigurację można zapisać poprzez HWCONFIG
W oknie HWCONFIG klikamy dwukrotnie na ikonę sterownika(1), wybieramy ustawienia portu COM2 (2) z którego będziemy korzystali w tym przykładzie, oraz ustawiamy parametry transmisji (3) takie same jak w serwonapędzie (115200 7E1 ASCII). Następnie przechodzimy do zakładki Data Exchange-COM2 (4).
W tej zakładce ustalamy gdzie umieścić dane z których rejestrów. Aby dodać nowe ustawienie należy kliknąć w przycisk Add (1), a następnie kliknąć w ustawienie które chcemy modyfikować.
(2) Dane ustawienie będzie aktywne tylko gdy zaznaczymy pole Enable.
(3) W polu Slave Address wpisujemy adres urządzenia z którym będziemy się komunikować.
(4) Wybieramy typ urządzenia, w przypadku serwonapędu musimy wybrać Standard Modbus Device
(5) ustalamy rejestry odczytywane z serwonapędu
(6) ustalamy rejestry zapisywane do serwonapędu
W punktach (5) i (6) musimy znać adresy komunikacyjne odczytywanych i zapisywanych parametrów, informacje te są dostępne w dokumentacji serwonapędu.
W tej zakładce ustalamy gdzie umieścić dane z których rejestrów. Aby dodać nowe ustawienie należy kliknąć w przycisk Add (1), a następnie kliknąć w ustawienie które chcemy modyfikować.
(2) Dane ustawienie będzie aktywne tylko gdy zaznaczymy pole Enable.
(3) W polu Slave Address wpisujemy adres urządzenia z którym będziemy się komunikować.
(4) Wybieramy typ urządzenia, w przypadku serwonapędu musimy wybrać Standard Modbus Device
(5) ustalamy rejestry odczytywane z serwonapędu
(6) ustalamy rejestry zapisywane do serwonapędu
W punktach (5) i (6) musimy znać adresy komunikacyjne odczytywanych i zapisywanych parametrów, informacje te są dostępne w dokumentacji serwonapędu.
Rejestry Modbus są 16 bitowe a część parametrów serwonapędu 32 bitowa, więc każdy z parametrów serwonapędu zajmuje 2 rejestry Modbus. Na podanym wyżej przykładzie zapisujemy na raz 4 rejestry od 0x0704 (do 0x0707) czyli zapisujemy dane do parametrów P7-02 i P7-03.
Poniżej lista rejestrów do wysłania:
rejestr |
parametr |
Adres |
opis |
D100 |
P2-30 |
023C |
Funkcje specjalne (zabezpieczenie pamięci EEPROM) |
D101 |
P3-06 |
030C |
Sterowanie wejściami |
D102 |
P4-07 |
040E |
Stany wejść |
D103 |
P5-60 |
0578 |
Prędkość |
D104 |
P7-02 |
0704-0705 |
Parametry ścieżki #51 |
D106 |
P7-03 |
0706-0707 |
Dane (pozycja) ścieżki #51 |
Lista parametrów do odczytania
rejestr |
parametr |
adres |
Opis |
D108 |
P4-09 |
0412 |
Stany wyjść |
D110 |
P0-09 |
0012-0013 |
Aktualna pozycja |
D112 |
P0-10 |
0014-0015 |
Zadana pozycja |
D114 |
P0-11 |
0016-0017 |
Błąd pozycjonowania |
Po zapisaniu wartości 5 do parametru P2-30, wartości ustawiane w parametrach nie są zapisywane do pamięci EEPROM (która ma ograniczoną liczbę operacji zapisu danych) tylko są przechowywane w pamięci RAM która traci swoją zawartość po wyłączeniu zasilania. Bez ustawienia tego parametru pamięć EEPROM bardzo szybko uległa by uszkodzeniu.
Za pomocą parametru P3-06 ustawiamy które wejścia są sterowane za pomocą komunikacji i nie reagują na podłączenie sygnału pod fizyczne wejścia. Gdy ustawimy wejście na sterowanie po komunikacji, możemy je wyzwolić ustawiając odpowiadający mu bit rejestru P4-07. Stany wyjść można odczytać za pomocą parametru P4-09.
Po wprowadzeniu wszystkich ustawień okno wymiany danych wygląda następująco:
Po zatwierdzeniu ustawień przyciskiem OK, wybieramy z menu Option/Download aby załadować konfigurację do sterownika.
4. Jak to wprowadzić w ruch? czyli piszemy program.
W pierwszej kolejności należy zapisać do parametru P2-30 (D100) wartość 5.
Aby sterować wejściami za pomocą komunikacji należy ustawić odpowiednie bity w parametrze P3-06, tutaj sterujemy 3 wejściami (DI1-DI3) więc ustawiamy pierwsze 3 bity (2#0111, zapis binarny).
Aby wykonać ruch należy zapisywać odpowiednie wartości do parametrów, dla ułatwienia pracy napisałem Function Block który jako wejście przyjmuje poszczególne informacje, takie jak sygnał Serwo on czy zadana pozycja, a na wyjściu podaje dane do wysłania do serwonapędu.
Sygnały wejściowe:
- SON – Serwo On
- AL_RES – Alarm reset
- MODE – tryb pracy (0-absolutny, 1-inkrementalny)
- TRIGGER – zbocze narastające powoduje rozpoczęcie wykonywania ścieżki
- NPOS – nowa pozycja
- SPEED – prędkość ruchu
- P4_09 – wartość odczytana z parametru P4-09
Sygnały wyjściowe:
- S_IS_ON – potwierdzenie włączenia serwonapędu
- ATPOS – komenda PR została wykonana
- RUN – serwonapęd pracuje
- ALRM – alarm serwonapędu aktywny
- P4_07 – wartość do zapisania do parametru P4-07
- P5_60 – wartość do zapisania do parametru P5-60
- P7_02 – wartość do zapisania do parametru P7-02
- P7_03 – wartość do zapisania do parametru P7-03
Zasada działania tego sposobu polega na zapisywaniu parametrów ruchu (P7-02~P7-03) oraz zadanej prędkości (P5-60) do serwonapędu i wywoływanie tych ruchów za pomocą programowego wyzwalania sygnałów na wejściach cyfrowych.
Komunikacja poprzez protokół Modbus jest stosunkowo powolna w porównaniu z innymi interfejsami, w dodatku sterowniki AS300 mają ograniczoną liczbę danych które można ustawić do wymiany do 32 (w naszym przykładzie wykorzystaliśmy 5 ustawień), co ogranicza liczbę serwonapędów do 6, możemy zwiększyć liczbę serwonapędów zapisując parametry ruchu poprzez komunikację a wyzwalając ruch poprzez wyjścia sterownika i złącze CN1 serwonapędu (pomijamy wtedy parametry P3-06 i P4-07, opis podłączenia w poprzedniej części artykułu). Innym sposobem na zwiększenie liczby możliwych do podłączenia serwonapędów jest oparcie komunikacji na instrukcjach MODRW, wtedy można ograniczyć wysyłanie danych wyłącznie do momentów kiedy wartości do wysłania się zmienią (gdy korzystamy z Data Exchange dane są wysyłane cyklicznie przez cały czas).
W kolejnej części będziemy zapisywali i wywoływali ścieżki za pomocą interfejsu CAN.
W załączniku program z konfiguracją i blokiem funkcyjnym AXIS_COMM.