Do Projektu iAutomatyka dołączyli:

https://iautomatyka.pl/wp-content/uploads/2020/02/praca-konkursowa-odlewnia.jpg

Rejestracja, SCL, VBA – pomiary sygnałów szybkozmiennych w aplikacjach odlewniczych

autor: mirase609.

Pomiary sygnałów analogowych, szybkozmiennych jeszcze nie tak dawno sprawiały spore trudności. Z takimi problemami spotykali się np. producenci maszyn odlewniczych. Proces odlewania ciśnieniowego polega na wtłoczeniu do zamkniętej formy wtryskowej ciekłego aluminium. Problem na pierwszy rzut oka łatwy do rozwiązania. Wchodząc nieco głębiej w tajniki sztuki odlewnictwa ciśnieniowego temat nieco się komplikuje. Choćby za sprawą tego, że wtłaczanie metalu do formy musi odbywać ze ściśle określoną prędkością, a w końcowej fazie, kiedy metal wypełnia już wszystkie wnęki formy, musi on być prasowany zadaną siłą. W opisywanym przypadku tłok wtryskowy porusza się z prędkością bliską 5m/s na drodze około 500mm. Ciśnienie wywierane przezeń na czoło metalu może dochodzić do 1000 bar. Prędkość, jak i ciśnienie zmienia się dynamicznie w trakcie wypełniania formy.

Poniżej film prezentującego schematycznie jak przebiega proces odlewania ciśnieniowego.

Z punktu widzenia technologii odlewania, konieczne jest zapewnienie powtarzalności procesu i rejestracja poszczególnych danych procesowych. Ze względu na szybkość zamian wartości konieczne jest ich próbkowanie z częstotliwościami ok 1kHz tak aby zarejestrowane dane w sposób realny odzwierciedlały obserwowany proces.

 W latach 90’ zeszłego stulecia popularne sterowniki oferowały przerwania cykliczne na poziomie 10ms.

Pomiar opisanych wartości w takich odstępach to zdecydowanie za mało, aby mówić o odwzorowaniu przebiegu wtrysku na wykresie. Dodatkowo, potrzeba wizualizowania przebiegu i zbierania danych z procesu zmuszała producentów do stosowania dodatkowych komputerów, bądź urządzeń dedykowanych do pomiarów, archiwizacji i prezentacji danych.

Poziom skomplikowania elektroniki z jakich zostały zbudowane systemy rejestracji, brak dokumentacji projektowej oraz części zamiennych używanych w tamtych latach zmusza dzisiejszych użytkowników maszyn do modernizacji takich systemów. Dodatkowo, wiele z nich oferuje eksport danych w postaci pliku, który może zostać odczytany dedykowanym oprogramowaniem przygotowanym do pracy z ówczesnym systemem operacyjnym, niekoniecznie dobrze działającym pod obecnym środowiskiem. Wspomnę tylko, że oryginalnym urządzeniem do przenoszenia danych była dyskietka 3.5”

Dla przypomnienia, tak wyglądała 😊

Aby sprostać wymaganiom klientów dotyczącym raportów z przebiegów produkcji koniecznością stało się  zaprojektowanie systemu, który ma zbierał dane z czujnika ciśnienia oraz przetwornika drogi z odpowiednią częstotliwością.

Kilka lat temu, uczestnicząc w targach Automaticon, wystawcy na stanowisku Siemens prezentowali o metodę akwizycji danych opartej o „oversampling” czyli zbieranie danych częściej, niż cykl programu PLC. Firma Siemens wypożyczyła mi wtedy niezbędny do tego celu sprzęt. Był to wtedy Open Controller, wyspa IM HF do ET 200SP i moduł AI HS z podstawką. Testy przebiegły pomyślnie. Dzięki oversamplingowi (który wymaga trybu IRT sieci PROFINET) można zbierać dane z częstotliwością większą niż jest wymagana dla tego projektu. Niestety projekt w tamtym momencie nie doczekał się realizacji.


Kilka miesięcy temu temat został na nowo podniesiony, mając pewne pomysły na realizację podjąłem się zadania. Jednym z założeń, było wykonanie pomiarów i rejestracji o oparciu o czujniki już zainstalowane na maszynie. Pomiar ciśnienia zrealizowany był za pomocą czujnika analogowego, pomiar przesunięcia siłownika mierzony enkoderem liniowym.

Klocki układanki

Dzisiejsze jednostki PLC mogą pracować z przerwaniem cyklicznym nawet 1ms. Do tego projektu został wybrany CPU 1510SP F-1 PN oraz panel TP700 Comfort.

POMIAR CIŚNIENIA

Zidentyfikowałem czujnik ciśnienia zainstalowany na maszynie, jego zakres pomiarowy to 0-1000 bar, wg. schematu elektrycznego pracujące w dwu-przewodowej pętli prądowej 4…20mA. Czujnik zasilany jest z karty istniejącego systemu pomiarowego, więc kanał pomiarowy karty AI 2xU/I 2-,4-wire HS został podłączony szeregowo do istniejącego toru pomiarowego, konfigurując ten kanał karty jako pomiar czujnikiem 4 przewodowym.

Niestety, niezasilona karta AI stanowi przerwę dla toru pomiarowego. W przypadku awarii, bądź wyłączenia nowego systemu pomiarowego, również ten obecny nie będzie działał. Rozwiązaniem stał się przekaźnik sterowany z wyjścia cyfrowego, który otwiera przerwany obwód w przypadku braku działania sterownika PLC.

W bloku OB100 wykonywanym raz podczas uruchomienia sterownika na stan wysoki ustawiane jest wyjście które zasila cewkę stycznika. Na wizualizacji dodatkowo znajduje się przycisk który umożliwia ręczne sterowanie przekaźnikiem.

W sterowaniu maszyny występuje kilka charakterystycznych sygnałów które informują o aktualnym stanie pracy, sygnały te zostały wprowadzone na kartę wejść cyfrowych i opisane.

Program PLC analizuje sekwencje sygnałów z tych wejść i na tej podstawie generowany jest sygnał do startu jak i zatrzymania rejestracji, czy też ustalany jest moment w którym system ma wykonywać obliczenia i przygotowanie do kolejnej rejestracji.

POMIAR DROGI

Aktualna pozycja tłoka odczytywana jest za pomocą liniału pomiarowego. Nie potrafiłem znaleźć danych dotyczących sygnału zwracanego z czujnika. Ze schematu wynikało, że sygnał ten trafia na przetwornik, a później na wejście PLC sterownika S7-300. Spodziewałem się więc sygnału prostokątnego. Oscyloskop potwierdził moje przypuszczenia.

Wzorowy sygnał enkodera

Dobrałem więc kartę licznika TM Count 1x24V. W sterowniku skorzystałem z obiektu technologicznego jakim jest szybki licznik. Blok High_Speed_Counter po odpowiedniej konfiguracji pozwala na zwrócenie gotowej wartości z prędkości co okazało się bardzo przydatne, niestety w tym momencie nie znałem jeszcze wartości w mm jaka odpowiada jednemu impulsowi czujnika. Po podłączeniu i uruchomieniu karty okazało się, że wymiar z nowego systemu jest równy połowie faktycznego wymiaru. W bloku konfiguracji można wybrać czy wartość pomiarowa ma być zwiększana z każdym zboczem narastającym sygnału A (single), ze zboczem narastającym i opadającym (double) czy też ze zboczem narastającym i opadającym obydwu sygnałów (Quadruple). Ustawiając tryb na double, wartość licznika była odpowiednikiem realnie przebytej drogi w mm.

KONFIGURACJA PLC I HMI W TIA v16

Ponieważ nie musiałem korzystać z funkcji oversamplingu to konfiguracja sieci nie wymaga ustawiania trybu IRT ani wyznaczania topologii, sprowadza się w tym przypadku tylko do połączenia sterownika  i panelu w jedną sieć.

Program w PLC

Pierwszą trudnością programistyczną było zebranie danych, z 30 sekund pracy (taki zakładam maksymalny czas rejestracji parametrów wtrysku, aktualnie czas wynosi kilkanaście sekund) co 1 ms. Co jak łatwo policzyć daje 30 000 próbek. Dodatkowo, dla inżynierów procesu i do ewentualnego wykresu, ważne są 4 wartości: czas, droga, prędkość i ciśnienie co łącznie daje 120 000 próbek. Postanowiłem podzielić pomiary na 30 tablic w każdej po 1000 próbek wszystkich wartości. Tak powstała tablica zmiennych złożonych LAST_SHOT

Zapisywanie tablicy odbywa się w przerwaniu (1ms) i zorganizowane jest za pomocą pętli i indeksów i nie jest szczególnie skomplikowane, należy tylko pamiętać o dostępie bezpośrednim do wartości z wejścia (dopisek: za adresem) aby nie korzystać z wartości zapisanych w PII sterownika. Celowo został wybrany język SCL, który świetnie sprawdza się w przypadku pracy z pętlami i obliczeniami matematycznymi – te zostały wykorzystane do porównania i wyznaczenia wartości maksymalnej danej wielkości jaka miała zostać zapisana w raporcie.

Część programu w przerwaniu cyklicznym

Zapis wartości związanych z przesunięciem tłoka uproszczony jest dzięki wykorzystaniu wspomnianego wcześniej bloku HSC (High Speed Counter), który zwraca informacje o aktualnej prędkości i drodze tłoka.

Pewnie problemy nastręczyło jednie kasowanie całej tablicy – przygotowanie do kolejnego cyklu. Najprostszą metodą było wpisanie „0” do każdego kolejnego elementu. Jak się szybko okazało nie jest to możliwe za pomocą pętli. Pętle w programie wykonują się bowiem w całości w jednym cyklu procesora. Oznaczało to, że próbując pierwotnie zapisać w ciągu jednego cyklu PLC aż 12 000 zmiennych w bloku – skutkowało to zatrzymaniem sterownika ze względu na przekroczenie czasu maksymalnego cyklu (150ms). Z pomocą przyszedł blok FILL_BLK który pozwala wypełnić dowolną ilość elementów w danej tablicy określoną wartością w następujących po sobie cyklach, tak aby nie zatrzymać sterownika. Instrukcja ta jest wywoływana czterokrotnie, dla każdej z wartości z osobna.

Tu również wybrałem język SCL.


Wyświetlanie i rejestracja danych – HMI

Jednym z pobocznych zadań było wyświetlenie wykresu zarejestrowanych wartości. Przydatna staje się tutaj funkcja wykresu danych zapisanych w DB sterownika. Instrukcjami języka SCL ograniczona została ilość próbek przesyłanych do wykresu na HMI z dwóch przyczyn. Po pierwsze w polu określającym ilość próbek do wyświetlenia na trendzie nie można wybrać więcej niż 999, po drugie, nawet jeśli oprogramowanie zaakceptowało by ilość większą niż 1000 to w poziomie mamy dla tego panelu dostępne zaledwie 800 pikseli. Kiedy generowane jest żądanie przygotowania danych, z całej tabeli z danymi pomiarowymi jest wybierane tylko tyle próbek, ile da się zmieścić na wykresie. Poniżej przykładowy wykres przebiegu zarejestrowanych wartości.

Oprócz wykresu ostatniego cyklu, operator do bieżącej analizy ma również dostępny raport parametrów z ostatnich cykli dzięki którym jest w stanie określić stabilność procesu.

Celem całego projektu było nie tylko zbieranie tych danych ale i możliwość ich łatwego wyeksportowania z systemu rejestrującego na inny nośnik. Służy temu okno „ZARZĄDZANIE DANYMI”.

Skrypty w HMI co pół sekundy sprawdzają czy w slocie SD znajduje się karta oraz czy została podłączona pamięć do portu USB. O obecności nośników informują zielone kontrolki. Funkcję tę, można również wywołać wybierając przycisk „ODŚWIEŻ STATUS”. Zgodnie z opisem na HMI pracują również przyciski KOPIUJ i WYCZYŚĆ. Przygotowaniem raportu zajmuje się skrypt. Na jego początku znajduje się zestaw instrukcji, które generują nazwę pliku w oparciu o aktualną datę, po wygenerowaniu tej nazwy sprawdzane jest czy taki plik istnieje, jeśli nie, jest tworzony. Jeżeli plik już istnieje, jest on otwierany i metodą dopisania kolejnego wiersza dołączane są dane z tagów powiązanych z PLC. Skrypt był pierwotnie przygotowany do zapisywania odrębnych plików dla każdej ze zmian roboczych danego dnia, natomiast w opisywanym przypadku plik zawierał około 300 rekordów więc pozostała wersja z tworzeniem nowego pliku przy pierwszym cyklu danego dnia. Na końcu plik jest zamykany, tak aby można go było eksportować na USB.

Podsumowanie

Połączenie wydajności nowych procesorów pozwalających obsługiwać przerwania co 1ms, wprowadzenie do języków programowania sterowników Siemens SCLa oraz możliwość implementacji skryptów VBA w panelu HMI daje możliwości stworzenia rejestratora wartości procesowej, z logowaniem oraz w razie potrzeby alarmowaniem w przypadku przekroczenia wartości krytycznych bez użycia dodatkowego sprzętu klasy PC. Pokazany system akwizycji i rejestracji danych może z powodzeniem być wykorzystany jako podstawa do budowy bardzo różnych aplikacji tego typu.

Artykuł został nagrodzony w Konkursie iAutomatyka – edycja Luty 2020. Nagrodę Sterownik PLC z wbudowanym wyświetlaczem HMI + zestaw gadżetów dostarcza ambasador konkursu, firma ELMARK.


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