Do Projektu iAutomatyka dołączyli:

https://iautomatyka.pl/wp-content/uploads/2018/11/Lenze.jpg

Pozycjonowanie z wykorzystaniem Lenze 8400 Highline + S7-300 + WebHMI

autor: liberateme.

Jako, że mam dostęp do makiety z przemiennikiem częstotliwości Lenze 8400 Highline oraz sterownika PLC S7-300 i super urządzonka WebHmi, postanowiłem spiąć to wszystko razem i pokazać jak to wszystko działa.

W mojej pracy wykorzystujemy przemiennik częstotliwości Lenze 8400 Highline do napędów windowych, w których liczy się dosyć dobra precyzja pozycjonowania oraz spora dynamika.


Przemiennik częstotliwości

Na makiecie jest zamontowany przemiennik częstotliwości Lenze 8400 Highline. Zalety tego przemiennika częstotliwości to m.in.

  • Przyłącza: start/stop, wejścia/wyjścia analogowe (2/2), swobodnie programowalne wejścia/wyjścia cyfrowe (7/4),
  • Wiele protokołów komunikacyjnych (CANopen, EtherCAT, EtherNet/IP, POWERLINK, PROFIBUS, PROFINET),
  • Zintegrowane sterowanie pozycjonujące,
  • Możliwość wyboru do 15 celów pozycjonowania łącznie z aktualnie przydzielonym profilem jazdy,
  • Zintegrowana kontrola hamowania.

Do niego podłączony jest silnik 0,25 kW z enkoderem inkrementalnym (HTL 1024), bez hamulca. Wyżej wymieniony przemiennik posiada kartę komunikacyjną PROFINET’ową. Całe to ustrojstwo możemy zaprogramować z wykorzystaniem softu Lenze Engineer. Od razu dodam, że o samym oprogramowaniu można napisać z kilka artykułów, więc proszę wybaczyć niektóre przejścia na skróty.

Aby skomunikować się z przemiennikiem częstotliwości, należy mu nadać adres IP oraz nazwę „profinetową” (można również wykorzystać programu Siemensa – Proneta). 

Następnie tworzymy nowy projekt wybierając opcję sczytania parametrów z przemiennika po uprzednim wybraniu interfejsu, za pomocą którego będę się z nim komunikować.

Po założeniu projektu możemy przystąpić do konfiguracji napędu.

Do kontroli napędu został wybrany tryb „ASM servo control”, dzięki któremu nasz silnik asynchroniczny zamieni się w napęd, który w jakimś stopniu przypomina napęd serwo. W oknie aplikacji wybieramy „Table positioning”, ponieważ chcemy pracować jako pozycjoner. Jako, że posiadam sam silnik, bez przekładni, parametry odpowiedzialne za przełożenia zostawiam na defaultowe 1 do 1, oznacza to, że zadając pozycję 360 wałek silnika wykona pełny obrót. 

W zakładce Machine parameters możemy dosyć precyzyjnie określić parametry maszyny, dlatego w dosyć prosty sposób możemy przejść z topornych inkrementów enkodera na np. milimetry (jeżeli dysponowalibyśmy motoreduktorem z jakąś przekładnią)

Następnie konfigurujemy sam silnik  oraz pętlę zwrotną sczytując dane z tabliczki znamionowej silnika.

W tym wypadku enkoder podłączony jest pod wejścia DI1 i DI2 przemiennika częstotliwości, dlatego dla sprzężenia zwrotnego od prędkości i pozycji wybieramy właśnie te wejścia oraz ustawiamy pozostałe parametry.

W zakładce parametrów silnika konieczne jest zrobienie identyfikacji silnika w celu jak najlepszego „spasowania” silnika i przmiennika. Na ekranie głównym programu (bądz w zakładce Machine parameters) możemy sprawdzić jaka jest maksymalna prędkość układu, w tym wypadku są to 8222 units/s.

Na oknie głównym programu wchodzimy w „PC manual control” w celu weryfikacji poprawnej konfiguracji napędu. 

W tym trybie możemy sprawdzić, czy napęd reaguje poprawnie na zadane wartości, możemy mu również ustawić referencję co jest o tyle ważne, że jeżeli jej nie ma, to jazda w trybie pozycjonera nie jest możliwa.

Jeżeli nasz układ działa poprawnie, to konieczne jest przygotowanie go do współpracy ze sterownikiem PLC.

W tym celu przechodzimy do zakładki FB Editor.

Przy nowym projekcie konieczne jest dodanie portów komunikacyjnych. W tym przypadku będą to porty MCIn i MCOut za pomocą którym napęd będzie sterowany oraz będą z niego odczytywane statusy i inne informacje (w przypadku tego przykładu, aktualna pozycja i prąd). W skrócie: w MCIn znajdziemy stany wyjść ze strony PLC, a informacje z MCOut będą trafiać na wejścia sterownika.

W tym przykładzie wykorzystałem wejścia sterujące:

  • pos execute – wyzwala pozycjonowanie (zbocze narastające),
  • home set position – ustawia referencję (czyli tak zwane bazowanie),
  • man jog pos – jazda „do przodu” w trybie manual jog,
  • man jog neg – jazda „do tyłu”,
  • CInh – blokowanie/odblokowywanie „końcówki mocy” przemiennika częstotliwości,
  • pos profile units LW – zadawanie pozycji,
  • pos profile no – numer trybu pracy, o tym za chwilę.

Jeżeli chodzi o wyjścia z przemiennika:

  • home done – informacja o tym, że układ zna swoją pozycję referencyjną (zostało wykonane bazowanie),
  • profile done – jazda do pozycji została wykonana,
  • profile busy – informacja o tym, że układ aktualnie pracuje (jest zajęty),
  • pos out units LW – informacja o aktualnej pozycji,
  • pos out units HW – informacja o znaku aktualnej pozycji (0 – pozycja jest dodatnia, 1 – pozycja jest ujemna),
  • motor current – informacja o prądzie (w %),

Cała konfiguracja polega na „podłączeniu” interesujących nas wejść i wyjść pod odpowiednie „nożki” bloku głównego, dlatego bity i słowa z portu MCIn podpinamy pod sygnały sterujące bloku głównego przemiennika, a MCOut pod sygnały statusowe.

Wracając do wejścia „pos profile no” – tutaj zadajemy liczbowo jaki profil ma wykonywać układ. W tym przykładzie wykorzystane zostały dwa profile: ManualJog  – wartość 0, oraz Positioning – wartość 2. Niestety nie jest to za bardzo intuicyjne i można się trochę pogubić, ponieważ w celu konfiguracji ManualJog’a (prędkość, rampy itp.) nie modyfikujemy profilu 0 (jak to może sugerować program), a musimy konfigurować te parametry w osobnej zakładce Manual Jog, o której napisałem nieco niżej.

W tym przykładzie chciałem, aby zadawanie pozycji odbywało się za pomocą jednego, dynamicznego profilu, gdzie docelowa pozycja będzie zadawana zdalnie. Dlatego konieczne jest ustawienie auto akceptacji zmiany pozycji.

W trybie ManualJog uruchamiamy napęd za pomocą sygnałów ManJogPos i ManJogNeg. Możemy w tym trybie uruchomić kontrolę pozycji od krańcówek mechanicznych (sygnały podpięte pod wejścia cyfrowe przemiennika częstotliwości) w trybie limitowym – w momencie najechania na daną krańcówkę, napęd stanie. Możemy również „włączyć” krańcówki softowe (maksymalna pozycja dla kierunku dodatniego i ujemnego) które działają na zasadzie komparatora – jeżeli układ przekroczy zadeklarowaną pozycję, to się zatrzyma.

W trybie Positioning zadajemy żądaną pozycję i uruchamiamy jazdę za pomocą zbocza narastającego na wejściu PosExecute. W oknie Profile input, wybierając profil 2 możemy ustawić prędkość, rampy itp. 

Jak można zauważyć, można również określić pozycję, oraz tryb dojazdu do pozycji, ale w tym wypadku wartość pozycji jest zadawana dynamicznie, a tryb dojazdu jest na stale ustawiony na tryb absolutny (wejście pos profile mode ma wpisane na stałe wartość 1, w przypadku ustawienia na 0, tryb byłby brany z konfiguracji danego profilu).

Jako, że układ pracuje w trybie pozycjonowania i nie posiada hamulca, dopóki układ jest aktywny, prąd jest pompowany cały czas do silnika w celu „utrzymania” pozycji, tym samym obrót wałku silnika gołą ręką jest praktycznie niemożliwy. Oczywiście, można układ trochę „zmiękczyć” zmieniając parametry wzmocnienia itp.

Na kanale YT Lenze znaleźć można playlistę poświęconą konfiguracji przemiennika Lenze 8400 Highline.

Sterownik PLC

W przykładzie wykorzystałem sterownik S7-300 315-2PN/DP z wykorzystaniem Step7 w wersji 5.6.

Po stworzeniu nowego projektu w Step’ie i dodaniu stacji S7-300 trzeba skonfigurować hardware.

Na stronie Lenze bez problemu można znaleźć plki GSDML.

Trzeba pamiętać, aby w projekcie podczas konfiguracji sprzętowej w Stepie, nazwa przemiennika odpowiadała tej, nadanej już podczas wstępnej konfiguracji przemiennika. Osobiście do konfiguracji sieci profinet korzystam z darmowego programiku Siemensa – Proneta

Po dodaniu sterownika, stworzeniu sieci profinet, oraz dodaniu przemiennika częstotliwości do tej sieci, należy dodać wejścia i wyjścia przemiennika. W tym przykładzie wstawiłem 16 słów wejściowych i wyjściowych. Przy konfiguracji wejść/wyjść komunikacyjnych przemiennika po stronie Engineer’a, można zobaczyć, że np. bity sterujące są bitami słowa drugiego, a więc w Step’ie słowa wyjściowego o adresie 258. To samo tyczy się bitów statusowych – w przemienniku częstotliwości bity statusowe są bitami słowa drugiego, a w Stepie będzie to word o adresie 258. Ta sama zasada tyczy się pozostałych informacji.

Jeżeli chodzi o program, został on stworzony na szybko, bez użycia dedykowanych funkcji – praktycznie wszystko jest na funkcjach MOVE i komparatorach.

W networku 1 wybieramy tryb pracy układu – 0 to Manual jog, a 2 to tryb pozycjonowania na profilu dynamicznym (parametry prędkości, rampy itp. brane są z ustawień profilu 2 w konfiguracji przemiennika).

W networkach 2 do 7 obsługiwane są bity sterujące zgodnie z konfiguracją w przemienniku.

W networku 8 wysyłana jest zadana pozycja.

W networku 9 i 10, gdzie obsługiwany jest odczyt aktualnej pozycji, można zauważyć dwa komparatory. Jak wspomniałem już wyżej (w rozdziale odnośnie przemiennika), z przemiennika odczytujemy dwa słowa odnośnie aktualnej pozycji – w pierwszym znajdziemy wartość, a w drugim znak tej wartości. Dlatego komparatory sprawdzają drugie słowo, i jeżeli ma ono wartość 0, to przepisywana jest wartość bezpośrednio, natomiast w przypadku kiedy wartość=1, słowo z wartością mnożone jest dodatkowo przez „-1”.

W networku 11 obsługiwany jest odczyt prądu (w 100%). Z przemiennika dostajemy wartość od 0 do 16384 (dla 100%). Chciałem sprawdzić, czy WebHMI ma możliwość obsługi mnożników przy deklaracji tagów (okazało się, że ma) dlatego, tam przemnażam „wartość odczytana” * 0,00611 = „wartość w %”

W netwroku 12 odczytywane jest słowo statusowe przemiennika, oczywiście jak to w Siemensie bywa, trzeba „obrócić” bajty w słowie, dlatego statusy podpięte pod bity 0,1 i 2 w przemienniku częstotliwości odnajdziemy na bitach 8, 9 i 10 w PLC.

WebHMI

Aby w miarę komfortowo obsługiwać makietę, została stworzona prosta wizualizacja z pomocą WebHMI.

Wykorzystałem protokół Siemens Simatic S7. Trzeba uważać, bo defualtowo parametr TSAP ustawiany jest na 0301 (zapewne jest to wartość dla S7-1200 – tak domniemywam, bo nigdy nie łączyłem S7-1200 z WebHMI), a przy komunikacji z S7-300 trzeba ustawić 0302. 

Pod tym linkiem więcej informacji na temat TSAP i sterowników Siemensa.

Następnie dodałem potrzebne tagi (zmienne).

Oraz stworzyłem szatę graficzną.

Na górze lampki sygnalizują o „zajętości” napędu, informacji, że napęd dojechał do zadanej pozycji, oraz informację o tym, że układ zna swoją pozycję bazową.

Za pomocą slider’a (lub po wpisaniu w odpowiednie pole), możemy zadać pozycję, do której ma jechać napęd.

Przyciski auto/maunal oraz drive enable/drive inhibit są przyciskami z funkcją toggle (przyciski bistabilne).

Poniżej krótki filmik pokazujący jak to wszystko działa.

Poniżej linki do projektu przemiennika i PLC:

Więcej przemienników i napędów znaleźć można na stronie lenze.com

Uwagi od eksperta

Artykuł ten postanowił przeczytać i ocenić pracownik Lenze. Oto, co powiedział o pracy konkursowej.

Jeżeli silnik asynchroniczny ma zabudowany enkoder, dokonana została jego identyfikacja oraz został wybrany tryb “ASM servo control”, to napęd pracuje w pełni w tym trybie. Jedyne, co różni go od klasycznego napędu serwo, to dynamika związana ze standardowym silnikiem asynchronicznym.

W artykule brak informacji o wykonaniu homingu (bazowania) przed rozpoczęciem pozycjonowania, co jest niezbędne. Przydałby się również ekran, który graficznie pokazuje profil z jego parametrami. Ekran ten uzmysławia, jak prosto można skonfigurować profil.

Artykuł jest jak najbardziej merytorycznie poprawny.

Adam Depta

Inżynier produktu

W porozumieniu z Redakcją iAutomatyka, firma Lenze postanowiła przekazać autorowi zestaw gadżetów firmowych.

Artykuł został nagrodzony w Konkursie iAutomatyka w edycji Listopad 2018 
Nagrodę Drukarka etykiet brother PT-E110VP dostarcza firma Allektro.plWię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