Świeżo po studiach, zatrudniony w nowej firmie jako automatyk utrzymania ruchu, dostałem zadanie. Naprawić maszynę, która poprzednio była w serwisie producenta (niemiecka firma), po „jakichś problemach” ze sterownikiem.
W rezultacie maszyna posiadała tylko i wyłącznie niepełny ruch ręczny. Od razu zajrzałem co to za sterownik, może da się zgrać program. Zastałem na miejscu coś takiego.
Niestety jak idzie się domyślić sterownik nie do uratowania. Programowalny tylko z przycisków. Program nie do zgrania. Niby jest w wersji papierowej, lecz niepełny.
Rozpoznanie
Jest to maszyna tnąca wąż na miarę, z dokładnością do 8 cm. Jeśli chodzi o technologię, jedyne co mi powiedziano to „działała dobrze i dokładnie”. Sam proces musiałem rozpoznać samodzielnie na podstawie opowieści operatorów i tego, co zostało z ruchu ręcznego oraz zwyczajnego nurkowania w szafę. Część procesu była łatwa do rozpoznania, dwa podajniki pneumatyczne podające wąż na talerz zwijający, po zwinięciu nóż pneumatyczny ucina wąż, a sam talerz wraca do pozycji bazowej.
Od razu nasunęły się dwa pytania.
- Jak zliczana była długość węża, czy jakiś enkoder czy może inna sztuczka?
- Jak przebiegało bazowanie talerza zwijającego?
Po analizie dokumentacji, oczywiście niemieckiej (chwalmy tłumacza google oraz moją narzeczoną), oraz paru nurach do szafy okazało się, że zliczanie długości odbywa się poza sterownikiem. Między rolką wyposażoną w enkoder, a małym licznikiem, na którym można nastawić długości, przy których ten da sygnał do sterownika.
Bazowanie nie było opisane ale sam talerz wyposażony był w dwa czujniki indukcyjne, a dokumentacja wspominała o trzech rodzajach ruchu:
- szybkim,
- wolnym,
- bazującym.
Wszystko wydawało się w miarę jasne.
Po przetłumaczeniu z wejść oraz wyjść zarówno z dokumentacją jak i empirycznie z mostkiem uznałem że najwyższy czas zabrać się za wybranie sterownika. Wybrałem sterownik firmy LS jako że miałem z nimi styczność w przeszłości, konkretnie XBC-DR60SU (34 wejścia 24 wyjścia).
Programowanie
Sam program zrobiłem etapowo. Mianowicie proces podzieliłem na etapy takie jak np. pierwsze podawanie. Po każdym z etapów powstawała zmienna pomocnicza, a zmienna poprzedniego etapu była usuwana. Dzięki temu program był czytelny i łatwy do modyfikacji, co szybko okazało się potrzebne.
Wszystko ładnie, pięknie działa ale nie ma ani dokładności +/- 8cm, ani bazowania. Po dwóch dniach szukania problemu w programie postanowiłem wraz ze starszym kolegą elektrykiem po kabelku prześledzić sterowanie ruchem silnika. Sam układ jest dość ciekawy, nie ma falownika, są 3 potencjometry oraz 3 styczniki. Szybko okazało się, że sygnał ruchu szybkiego jest zmostkowany do cewki ruchu wolnego. Jak się okazał,o zaraz po tym sam ruch szybki był zbyt szybki dla tak krótkich węży jakie miała ciąć maszyna.
Ostatecznie aby uzyskać wymaganą dokładność należało silnik maszyny wyłączać przy pierwszej ustawianej długości z licznika, sam talerz zaczynał wtedy delikatnie hamować. Przy osiągnięciu zadanej pozycji licznik wysyłał drugi sygnał, na którego podstawie załączany był hamulec maszyny. Podobnie z bazowaniem maszyny. Po dotarciu do pierwszego czujnika silnik jest wyłączany a po załączeniu czujnika bazowego załączany jest hamulec.
Po 3 tygodniach od rozpoczęcia prac maszyna wróciła do akcji i podobno pracuje szybciej.