Do Projektu iAutomatyka dołączyli:

https://iautomatyka.pl/wp-content/uploads/2018/11/can-open-serwo.jpg

Komunikacja pomiędzy PLC i Serwo z wykorzystaniem CANopen

autor: BartoszW.

W poniższym artykule przedstawię realizację komunikacji pomiędzy serwonapędem, a sterownikiem PLC przy pomocy CANopen. Daleko nie szukając, wybór padł na sterownik i napęd firmy Delta Electronics.

Do realizacji komunikacji oprócz sterownika DVP-SX2 oraz serwa ASDA-A2 potrzebny będzie moduł komunikacyjny DVPCOPM.

Kablologia

Po podłączeniu silnika do serwosterownika przy pomocy dedykowanych kabli (kabel zasilający oraz enkoderowy) należy wykonać kabel komunikacyjny. Po stronie serwo przy pomocy wtyczki RJ-45 przygotowujemy kabel gdzie :

  • pin 1 to CAN_H (CAN+),
  • pin 2 to CAN_L (CAN-),
  • pin 3 to CAN_GND.

Zalecane jest, aby linie CAN+ oraz CAN- była to skręcona ze sobą para przewodów.

Drugi koniec naszego kabla komunikacyjnego łączymy z analogicznymi złączami na module COPM:

  • CAN_H -> CAN+
  • CAN_L -> CAN-
  • CAN_GND -> GND

Dodatkowo pomiędzy linie CAN+ i CAN- należy umieścić rezystor 120Ohm. Rezystor terminujący oznacza koniec linii CANOpen.


No to kręcimy

Nie tak szybko! Na silnik nadejdzie jeszcze czas. Na ten moment zakręcimy, ale przełącznikami.

Moduł COPM wyposażony jest w dwa przełączniki obrotowe opisane jako „Node address”. Jak sama nazwa wskazuje przy ich pomocy ustawiamy adres urządzenia.

Aby ustawić np. adres 2F należy:

  • górny przełącznik (16^1) ustawić na 2.
  • dolny (16^0) na F.

Warto zwrócić uwagę, że adresy urządzeń w sieci CANopen muszą mieścić się w puli 1~7F. Adresy 0 oraz 80~FF są niepoprawne, gdyż w sieci CANopen może znajdować się maksymalnie 127 urządzeń.

Poniżej przełączników obrotowych znajdują się DIPswitche. Za ich pomocą ustawia się prędkość transmisji.

Ustawmy ją na maksymalną, 1Mbit/s (wszystkie switche ustawiamy na „ON”), ale nic za darmo. Ustawiając taką prędkość skracamy maksymalną długość przewodów sieciowych do 25m.

Trochę pracy nad napędem

Uruchamiamy ASDA-Soft V5. Podłączamy się kabelkiem USB do napędu. Wybieramy odpowiedni port komunikacyjny, pod którym, wykryty został serwonapęd.

Łączymy się online z napędem. Klikamy na ikonkę „P”, która uruchamia edytor parametrów:

Dla pewności, że nie natkniemy się na pozostałości po wcześniejszych aplikacjach, możemy przywrócić urządzenie do ustawień fabrycznych. W tym celu do parametru P2-08 wpisujemy wartość 10.

Po kliknięciu „Write to Servo” należy zresetować zasilanie napędu.

Po ponownym połączeniu się w tryb „ONLINE” z napędem, przechodzimy do ustawienia poszczególnych parametrów.

Zacznijmy od parametrów związanych z komunikacją.

Parametr P3-00 (adres komunikacyjny) ustawmy na 1.

Prędkość transmisji CANopen (P3-01) ustawiamy zgodnie z tą na module (1Mbit/s):

Tryb pracy napędu wybieramy w parametrze P1-01 (ustawiamy 0x02 „Speed control mode”). Na marginesie wspomnę, że do wyboru posiadamy kilka trybów, m.in.: tryb sterowania prędkością, pozycją, momentem oraz tryby mieszane prędkość/moment, moment/pozycja itd. 

Kolejne bardzo ważne parametry, które musimy ustawić to parametry z przedziału P2-10 do P2-17.

Odpowiadają one kolejnym wejściom cyfrowym (DI1~DI8) serwonapędu. Na potrzeby naszej aplikacji ustawiamy:

  • P2-10 – 0x0101 „SERVO ON”.
  • P2-11 – 0x0114 „Internal speed command selection BIT0”.
  • P2-12 – 0x0102 „Reset alarm” – tak na wszelki wypadek, nigdy nic nie wiadomo…

Pozostałe wejścia P2.13 do P2.17 ustawiamy na „Disabled” (0x00) nie będziemy z nich korzystać.

Już prawie zakończyliśmy pracę w ASDA Soft. Pozostało nam tylko zgrać wszystkie parametry do serwonapędu.

Po zakończeniu wgrywania wyświetli się komunikat, że po raz kolejny należy zresetować zasilanie.

Konfiguracja ramki

Ramki komunikacyjne wędrujące w sieci CANopen pomiędzy naszym sterownikiem PLC, a serwonapędem konfiguruje się przy pomocy oprogramowania CanOpen Builder (u mnie w wersji 6.0).

Za nadzór nad pracą sieci odpowiada moduł DVPCOPM. Nie posiada on żadnego portu USB do programowania. Komunikuje się on ze sterownikiem poprzez wewnętrzną magistralę, dlatego też przy pomocy kabla miniUSB do komputera podpinamy sterownik.

Po uruchomieniu oprogramowania musimy wybrać, który sterownik programujemy. Do wyboru mamy: DVP15MC11T, DVP10MC11T oraz CANopen Configurator. Po zaznaczeniu ostatniej opcji dostajemy podpowiedź, że opcja ta dotyczy m.in. naszego modułu COPM. Zatwierdzamy wybór klawiszem OK.

Następnym etapem jest wybór portu COM, przez który będziemy programować moduł. Wchodzimy do menu „Setup”, następnie „Communication Setting” oraz „System Channel”. W oknie które się pojawi wybieramy odpowiedni port COM (u mnie COM4). Resztę ustawień zostawiamy domyślnie. Klikamy OK.

Po zatwierdzeniu, należy kliknąć na klawisz „Online” (lub nacisnąć F10). Nasz moduł zostanie natychmiast wykryty.

Zatwierdzając wybór (klawiszem OK), moduł zacznie wyszukiwać urządzenia, które są podłączone do sieci CANopen. Jako, że nasz serwonapęd ma adres 1, to zostanie on dość szybko wykryty:

Dalsze przeszukiwanie sieci, począwszy od adresu 2, możemy przerwać. Jak dobrze wiemy w naszej sieci nie ma więcej urządzeń. Klikamy Cancel.

Dwukrotnie klikamy na ikonkę serwonapędu („ASDA-A2 Drive”). Po otwarciu okna „Node Configuration” rozpoczynamy konfigurację ramek komunikacyjnych. Do poprawnego działania naszej aplikacji potrzebujemy 2 słowa odbierane (RxPDO) w serwonapędzie oraz jedno wysyłane z serwonapędu (TxPDO).

Przejdźmy zatem do konfiguracji. Domyślnie ustawienie obejmuje jedno słowo odczytywane i jedno wysyłane. Aby dodać kolejne należy dwukrotnie kliknąć w obszarze „PDO from EDS file” na linię rozpoczynającą się od indeksu 1401 (1- na poniższym rysunku). Zostanie wówczas dodane słowo do skonfigurowanego PDO („Configured PDO”). Dla nabrania wprawy, dodajmy także drugie słowo wysyłane do PLC (Indeks 1801).

Przejdźmy do konfiguracji zawartości słów, tzn. musimy teraz wybrać co mają zawierać.

Dwukrotnie klikamy na Indeks 1400 (2) w „Configured PDO”. Otworzy się nam okno „PDO Mapping”, więc mapujmy…  Przy użyciu strzałek „w górę”/”w dół” przerzucamy rejestry serwonapędu pomiędzy dostępnymi („Available Objects from EDS file”), a tymi które mają być mapowane („Mapped Objects”).

Ustawmy zawartość słowa 1400 jak na zdjęciu powyżej:

  • 221e – P2-30,
  • 2306 – P3-06,
  • 2407 – P4-07.

Do słowa o indeksie 1401 wrzucamy rejestr 2109 – odpowiadający parametrowi P1-09, do którego będziemy wysyłać prędkość zadaną.

Do słowa 1800, które będzie wysyłane do sterownika PLC mapujemy indeks „606c- Velocity actual value” (prędkość aktualna). Pozostaje nam dwukrotnie kliknąć OK, zatwierdzając konfigurację.

Klikamy następnie dwukrotnie na ikonkę modułu „DVPCOPM Master” (1). W nowo otwartym oknie zaznaczamy nasz serwonapęd (2) i przy pomocy strzałki w prawo (3) przypisujemy go do Mastera.

W tej chwili naszym oczom ukazały się rejestry sterownika PLC(„Device”), w których zmapowane są odpowiednie rejestry z serwonapędu („Device Image”).

Zatwierdzamy klawiszem OK. Następnie wgrywamy ustawienia do modułu za pomocą przycisku „Download” (tuż obok online).

Po zakończeniu wgrywania ustawień, należy zwolnić port COM (czyt. rozłączyć się, klikając ponownie klawisz „Online”).

Konfiguracja PLC

Bez tego nie uda się nam porozmawiać z serwonapędem. Zatem do dzieła! Uruchamiamy ISP Soft (V3.03).

Tworzymy nowy projekt wybierając odpowiedni sterownik PLC:

Tworzy nowy program w języku drabinkowym, w którym wpisujemy fragment kodu:

Wgrywamy program do sterownika i przechodzimy online.

Tworzymy nowy „monitor table” w który wpisujemy 3 rejestry sterownika PLC:

  • D6284 (parametr 4.07 ) sterowanie wejściami serwa,
  • D6285 (parametr 1-09) prędkość z podstawą 0.1 obrotu (na dwóch słowach),
  • D6032 (aktualna prędkość silnika).

Silnik dalej się nie kręci… Co teraz?

Klikamy prawym klawiszem myszy na D6284 następnie „Change Present Value”, rozwijamy opcję „Binary Mode”, zaznaczamy 2 najmniej znaczące bity (0 i 1) i klikamy OK.

Co jest nie tak? Silnik ruszył, a prędkość zadana wynosi 0?!

Tak, silnik zaczął się kręcić z prędkością, która była domyślnie ustawiona w serwonapędzie.

Aby zmienić prędkość klikamy prawym przyciskiem myszy na rejestr D6285, wybieramy ponownie „Change Present Value”. Ważne, aby w otwartym okienku postawić kropkę przy 32 bitach (gdyż prędkość zajmuje dwa 16-to bitowe rejestry). Wpisujemy wybraną przez nas prędkość (pamiętając o mnożniku 0.1). Zatwierdzamy OK.

W tej chwili w rejestrach D6285 (zadana prędkość) i D6032 (aktualna prędkość, odczytana z napędu) obserwujemy identyczne lub zbliżone wartości.

Podsumowanie

Artykuł przedstawia bardzo uproszczone sterowanie prędkością serwa poprzez CANopen.

Aplikację można stopniowo rozbudowywać (np. poprzez odczytywanie momentu na silniku). Można też skupić swoją uwagę na rozbudowaniu programu PLC. Poprzez kolejne wejścia stopniowo zmieniać prędkość serwonapędu lub korzystając z wbudowanego w PLC wejścia analogowego, w sposób płynny regulować prędkość.

Artykuł został nagrodzony w  Konkursie iAutomatyka w edycji Listopad 2018 
Nagrodę Zasilacz Finder 78.36 + gadżety firmowe dostarcza firma FINDERWięcej o konkursie: https://iautomatyka.pl/konkurs-iautomatyka/

 



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
  • 1,200 PLN
    Szkolenie jest wprowadzeniem do systemu sterowania PSS4000 i środowiska programowania PAS4000. W jego trakcie omówiona zostanie zarówno struktura sprzętowa, jak i programowanie, a także diagnostyka kompletnego systemu sterowania. Poruszane ...
    Czas trwania: 8h
    Link: Terminy
  • 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...
  • SCADA z wbudowanym serwerem sieci Web i routerem, bez licencji, bez limitów rejestrów! Brzmi dobrze? A to dopiero początek! Jest to urządzenie umożliwiające zarządzanie zarówno w sieci lokalnej jak i przez Internet z komputera, bądź urządze...
  • 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...
  • Wyświetlacz słupkowy ITP15 jest kompaktowym wskaźnikiem procesowym, który wizualizuje analogowy sygnał wejściowy w zakresie od 0 do 100% z 10 słupkami po 10%. Sygnałem wejściowym może być liniowy sygnał napięciowy 0 (2) -10 V lub sygnał prą...
  • Produkty i rozwiązania firmy SICK są równie różnorodne jak codzienność w przedsiębiorstwie. Szkolenia SICK dla użytkowników umożliwiają zdobycie wiedzy na temat zróżnicowanej oferty naszych innowacyjnych produktów w formie dostosowanej do k...
    Link: Terminy