Do Projektu iAutomatyka dołączyli:

https://iautomatyka.pl/wp-content/uploads/2017/11/SHR-w-S7-Artykuł.jpg

Przykład rejestru przesuwnego w STEP 7 funkcją shift register SHR- PLC SIEMENS S7


Witam Cię serdecznie w kolejnym wpisie dotyczącym ciekawych rozwiązań automatyki!

Czytałeś może poprzedni wpis dotyczący HSC w ET200S? Jeśli nie, to zachęcam, abyś przeczytał przynajmniej sam początek Praktycznie o HSC w ET200S, bowiem wpis poniższy dotyczy tej samej maszyny. Zastosowano w niej ciekawe rozwiązanie do wykrywania złych sztuk (śrub) na tarczy, które oparte jest na rejestrze przesuwnym. Bez żadnych enkoderów i innych cudów techniki.

Jak pamiętasz, całe sterowanie maszyny jest na ET 200S, które można zaprogramować za pomocą STEP 7 (w tym programie wykonano również projekt). Dla potrzeb tego wpisu rzucam kilka zdjęć fragmentu maszyny, które nas najbardziej teraz interesują…

Czujnik wykrywający śrubę na tarczy CZ_1 (to ta bramka fotoelektryczna) oraz czujnik wykrywający za wysoką śrubę CZ_3 (tutaj czujnik indukcyjny, obecnie jest to również bramka fotoelektryczna zastąpiona z powodu wzbudzania się czujnika indukcyjnego od cewki generatora w pobliżu):

Na zdjęciu nie ma jeszcze dyszy wylotowej DYSZA_2 (znajdować się ona powinna za czujnikiem indukcyjnym wg powyższego zdjęcia), która pracuje w powiązaniu z czujnikiem CZ_3.

Czujnik wykrywający zęby tarczy i jednocześnie licznik sztuk CZ_2:

Dysza wylotowa dla złych detali DYSZA_1 (godzina 6) wraz z widokiem na tarczę od góry:

Dla ułatwienia w dalszych wywodach czujnik wykrywający śrubę na tarczy będzie nazywany CZ_1, a licznik sztuk – CZ_2. Układ DYSZA_2 oraz CZ_3 na razie pomijamy w analizie.

Z wibratora liniowego śruby wpadają na tarczę obrotową maszyny napędzaną silnikiem elektrycznym. W pewnym rejonie tarczy następuje proces hartowania za pomocą cewki indukcyjnej oraz chłodziwa. Na koniec śruby spadają z tarczy do pojemnika. Proste. Jednak zbyt piękne, aby mogło bezproblemowo działać. Tarcza ma prawo się zablokować (co czasami ma miejsce) np. gdy śruba źle trafi z kanału wibratora na rowek tarczy. Równie dobrze może wystąpić jakiś inny alarm na maszynie lub zwyczajnie można ją zatrzymać ze śrubami na tarczy. Jakie jest wtedy niebezpieczeństwo? Ano takie, że śruby pozostające wtedy w rejonie działania cewki indukcyjnej narażone są na zbytnie przegrzanie – do tego nie można dopuścić! To znaczy dopuścić można, ale należy zadbać o to, aby takie śruby zostały usunięte do złomu. I tym zajmuje się właśnie zestaw dwóch czujników oraz jednej z dysz wydmuchowych.

Po usunięciu usterki i ponownym uruchomieniu maszyny trzeba wiedzieć, które detale trzeba odrzucić. Owszem, można było na upartego przyjąć, aby dysza pracowała od startu przez jakiś czas, jednak nie byłoby to zbyt eleganckie rozwiązanie. Nie dość, że do złomu trafiłoby również sporo dobrych śrub, to jeszcze czas trwania tego wydmuchu byłby stały. A dołóżmy do tego płynną regulację prędkości tarczy oraz fakt, że na maszynie mogą być montowane różne tarcze (o różnych ilościach zębów) – nawet spora tablica z której moglibyśmy wybierać różne czasy byłaby kłopotliwa w wykonaniu. Odpada totalnie. Dlatego producent zdecydował się na skądinąd ciekawe rozwiązanie, które tylko na pierwszy rzut oka wygląda skomplikowanie.

No więc po takim przydługawym wstępie wreszcie możemy przejść do meritum sprawy czyli technicznego wykonania układu sterowania.

Analizę rozpocznijmy od bloczku shift register w STEP 7 – help do niego jak zwykle dostępny pod klawiszem F1.  Jest to funkcja FC92.

Analizując przykład z helpa:

Na wejście EN podajemy sygnał, dzięki temu uruchamiamy blok. Na wejście N podajemy wartość o jaką ilość przesuniętych bitów nam chodzi (w tym wypadku 14). W pole S_BIT podajemy adres (wskaźnik) miejsca które będziemy przesuwać. Po wykonaniu instrukcji , pierwszy bit przyjmie wartość taką jaką ustalimy w polu DATA. Ostatni bit zawsze zostanie utracony. Zobaczmy na graficzną prezentację:

Przed wykonaniem instrukcji rozkład bitów mamy tak jak poniżej, z zaznaczonym miejscem S_BIT (1.4). Po wykonaniu instrukcji każdy bit począwszy od miejsca S_BIT przesuwa się o jedną pozycję w „lewo”, tak będzie dla kolejnych 14 bitów. Nowe S_BIT przyjmuje zgodnie z polem DATA wartość 0, zaś 14 bit jest tracony więc tam również mamy 0. Trochę bystrości i na pewno zauważysz różnicę w rozkładzie bitów przed i po wykonaniu instrukcji.  W sumie nie jest to specjalnie trudne, jak sam widzisz 😉

Teraz zobaczmy jak się to ma do naszego programu.

Na wejście EN podawany jest sygnał z CZ_2 (pełni on funkcję licznika sztuk, chociaż fizycznie on żadnej śruby nie widzi a zlicza jedynie kolejne zęby tarczy). Sygnał ten jest skracany do formy impulsu więc bloczek SHRB nie wykonuje się cały czas, a jest jedynie wywoływany przy każdym zboczu narastającym sygnału z czujnika CZ_2.

Na wejście DATA mamy podawany sygnał z czujnika CZ_1 czyli stan, że śruba jest obecna na tarczy. Przesuwanych jest 58 bitów z obszaru pamięci M150 (S_BIT to M150.0).

Jeżeli stany z czujników CZ_1 i CZ_2 przynajmniej na chwilę przyjmą stan wysoki (1) to nastąpi owe przesunięcie bitowe. Jeżeli się nie pokryją tzn. CZ_2 ma stan wysoki, a CZ_1 niski to pojawi nam się w łańcuchu bit o wartości 0. Wejściem RESET nie zaprzątajmy sobie głowy (w programie wykorzystano go tylko do celów serwisowych) więc w efekcie zawsze otrzymujemy ciąg bitów o wartościach 0 lub 1, w zależności od tego czy udało się zgrać dwa sygnały z czujników ze sobą czy nie.

Ustawienie czujników jest o tyle problematyczne, że widzą one zasadniczo dwa różne pola tzn. CZ_1 wykrywa przestrzeń między zębami (jest tam śruba), zaś CZ_2 widzi ząb tarczy. Przez krótką chwilę te pola się pokrywają i ta chwila wykorzystana jest do pracy rejestru przesuwnego.

Mając taki system można podejmować jakieś konkretne działania wykonawcze w układzie sterowania. Producent przyjął sobie umownie, że stany oznaczone 1 w łańcuchu bitów rejestru przesuwnego są prawidłowymi stanami, zaś stany oznaczone 0 – nieprawidłowe.

Zauważ, że bit 0 niekoniecznie musi powstawać tylko w sytuacji, gdy mamy brak śrub na tarczy. Przecież możemy sobie „ręcznie” zerować poszczególne 58 bitów za pomocą instrukcji RESET BIT (lub w jakiś inny sposób np. MOVE). I ta właściwość jest właśnie wykorzystana do tego, żeby dysza wydmuchowa wiedziała które pozycje tarczy musi wydmuchać, a które zostawić! Prawda, że proste?

Zobaczmy więc jak się to po kolei odbywa. Operator wybiera sobie na panelu używany rozmiar tarczy:

Znając rozmiar tarczy operator musi teraz odpowiednio ustawić czujniki oraz dyszę w zależności od pozycji zębów na tarczy:

Pozycja 0 odpowiada pozycji dla śruby na tarczy tak, że jest widoczna przez CZ_1.

W przeciwnym wypadku (złe ustawienie czujników) chwilę po uruchomieniu maszyny wyskoczy komunikat alarmu Błąd grzania cewki, a kontrola odbywa się według takich warunków:

Jeśli dysze wydmuchowe zostaną źle ustawione to po prostu będą wydmuchiwać nie te sztuki, które chcemy.

Jeśli stany czujników CZ_1 i CZ_2 są ok, następuje praca rejestru przesuwnego czyli w kolejnych bitach dla M150 pojawiają się nam wartości 1. Dzięki temu podejmowana jest decyzja o uruchomieniu jednostki indukcyjnej:

Pokazano jedynie fragment drabinki (do Shift 8 – tak naprawdę warunki obejmują jeszcze Shift’y aż do 20). Te Shift’y to właśnie kolejne bity od M150 (długość – 58 bitów).

Co się dzieje w momencie, gdy wystąpi jakiś alarm? Wyjaśnienie w poniższym screenie:

Dla danej tarczy resetowane są określone bity w łańcuchu rejestru przesuwnego. Dlaczego akurat takie?

Odpowiadają one zakresowi obejmowanemu przez induktor – im większa ilość zębów tarczy, tym więcej jest to detali.

Teraz wystarczy zareagować odpowiednio na zresetowane bity w łańcuchu:

Dlaczego akurat tak? W momencie stopu maszyny wykonywanie rejestru przesuwnego zostało zatrzymane – oznacza to, że potrzebne bity zostały zresetowane ale inne zachowały wartość 1 np. detale występujące za rejonem induktora. Teraz w momencie uruchomienia maszyny (jeśli stany czujników się pokrywają), rejestr przesuwny się uruchamia i bity kolejno się przesuwają. Z powyższego widać, że bity o wartości 1 są ignorowane przez wydmuch. I tak kolejno idą sobie te bity zresetowane na kolejne shift’y aż pierwszy z nich trafi (dla naszej tarczy) na pozycję 25 (porównaj ze screenem z instrukcją ustawiania). Wtedy następuje aktywacja wydmuchu (na jakiś czas – ustawiany na panelu operatora). Jeśli wszystko jest dobrze ustawione, to wydmuch nie pracuje cały czas, ale jest kolejno aktywowany dla każdego zresetowanego bitu. Dzięki temu impuls powietrza jest mocniejszy niż gdyby było ono ciągle podawane z dyszy = większa szansa, że zły detal na pewno zostanie odrzucony.

Zauważ, że rozwiązanie jest odporne na sytuacje, gdyby maszyna została uruchomiona, wykonała np. przesunięcie tarczy o jeden ząb i znowu została wyłączona z powodu alarmu. Wtedy mamy oczywiście inne detale w zabronionym rejonie induktora, ale również „stare” które wcześniej były „odrzucone” przez system. Rejestr przesuwny zachowuje bowiem ciągłość bitów 0 i 1 i po prostu zareaguje wydmuchem tam gdzie są 0 (bity zresetowane). Ubocznym plusem jest również to, że gdy na przykład trafi się jakaś pusta pozycja na tarczy to ma ona wartość 0 (bo nie było śruby wykrytej przez CZ_1) – taka pozycja również zostanie „wydmuchana”.

Niektórych może ciekawić do czego służy CZ_3 oraz druga dysza wydmuchowa (DYSZA_2) obok niego. Otóż wykrywa on czy śruba nie jest za wysoka (a może się tak zdarzyć bo będzie np. z podkładką), a jeśli tak to wydmuch DYSZA_2 powinien ją wydmuchać. Zostanie wtedy również wyzerowany odpowiedni shift bit w zależności jakiego rozmiaru to tarcza:

I nie dość, że daną złą sztukę wydmucha pierwszy wydmuch, to w dodatku na zerowy bit zareaguje wydmuch w pozycji 25 (dla naszej tarczy).

I to by było na tyle. Wydaje mi się, że zamieszczono wystarczająco dużo kodu, aby każdy samodzielnie mógł dostosować swoją aplikację dla takiego systemu kontroli. Nie chcę zamieszczać kompletnego programu, gdyż nie posiadam praw autorskich do niego 🙂 Gdybyś jednak chciał jakieś info odnośnie programu, śmiało pytaj w komentarzach!



Utworzono: / Kategoria: , ,
  • Autor: Łukasz Bednarz
  • Z wykształcenia jestem inżynierem automatykiem. Interesują mnie prywatnie i zawodowo tematy związane z szeroko pojętą automatyką i energoelektroniką (głównie napędy elektryczne, źródła i magazyny energii elektrycznej). Zapraszam do czytania moich publikacji oraz kontaktu.
  • Profil Autora

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