Timery i liczniki używane w sterownikach Mitsubishi
Podobnie jak większość programowalnych sterowników dostępnych na rynku, Mitsubishi ma swoje wersje zarówno timerów, jak i liczników. Są one podobne, ale niekoniecznie skonfigurowane tak samo, jak u innych producentów sterowników. Istnieją dwa kluczowe elementy programowania każdego timera lub licznika. Pierwszym z nich jest tworzenie etykiety podczas wstawiania funkcji do kodu. Tutaj wybierany jest typ danych:
Rys. 1. Rejestracja etykiety lokalnej/globalnej
Po drugie, możemy ustawić zasięg globalny lub lokalny, a także czy jest to ściśle zmienna, stała lub zachowany typ klasy zmiennej.
Rys. 2. Wybór klasy podczas rejestracji etykiety
Timery
W przypadku timerów powszechnie stosowane są timery Time ON (TON) i Time OFF (TOF). Istnieją wersje (typy danych) funkcji timera, które mają dodane EN (enable) do wejścia, aby sterować, gdy czas zaczyna upływać. Te funkcje mają zwykle „_E” w nazwie definicji funkcji (TON_E). Kontynuując różne warianty timerów, możemy dodać funkcję do swojego programu na kilka sposobów. Możemy po prostu zacząć pisać TON lub TOF, lub możemy przeciągnąć i upuścić POU (funkcję) z paska wyboru elementu zwykle po prawej stronie edytora.
Rys. 3. Etykieta z typem danych TOF_E i Global
W programach Mitsubishi istnieje kilka sposobów wykorzystania funkcji timera w programowaniu PLC. W tym artykule będziemy trzymać się drabinki i schematów funkcjonalnych schematów blokowych. Oba style mają swoje plusy i minusy, ale dla funkcji timera i licznika zachowują się bardzo podobnie.
Rys. 4. Przykłady FBD TOF i TOF_E
Jak widać, mają one podobne formaty po wstawieniu do logiki. Mają te same wejścia i ten sam format do wprowadzania ustawionego czasu.
Rys. 5. Przykłady drabinki TOF i TOF_E
Wejście PT jest typem danych TIME. Należy o tym pamiętać. W przypadku Timerów zaczynamy od „T#”, po którym następuje czas ustawienia wstępnego, którego chcemy użyć. Po upływie tego czasu będziemy musieli określić, czy czas jest w sekundach (S) czy w milisekundach (ms).
W przypadku tych funkcji chodzi wyłącznie o preferencje, ale być może o łatwość integracji, jeśli dodamy logikę do istniejącego programu lub wybierzemy preferowany styl logiki w nowym projekcie.
Jeśli deklarujemy Timer, a później będziemy potrzebowali ustawienia dużej nastawy czasowej, użycie typu danych TIME dla ustawienia wstępnego na Timerze daje zakres do 32-bitowej wartości bez znaku. Wartość od 0 do 2147483647 jest nadal ograniczona do wartości niższej niż prawdziwe 32-bitowe maksimum ze względu na typ danych TIME i strukturę oprogramowania układowego PLC.
Jest to jeden z tych przypadków, w których typ danych ogranicza wartość do wartości mniejszej niż rzeczywisty typ danych liczbowych. Podobnie jak wiele innych rzeczy w Mitsubishi, możesz modyfikować ustawienie wartości długoczasowej za pomocą narzędzia inżynierskiego. Na przykład, jeśli ustawienie wynosi 0,001ms, to wstępnie ustawiony zakres będzie wynosić od T#1ms do T#2147483ms. Jeśli wartość ustawienia timera wynosi 1000ms, ustawiony zakres wzrośnie do T#1000ms do T#2147483000ms.
Rys. 6. Timery szeregowe z cewkami wyjściowymi
Tak jak preferencje różnią się od programisty do programisty, a nawet od projektu do projektu, tak samo różnią się sposoby używania i manipulowania zegarami i licznikami. Jak pokazano tutaj, można nawet ustawić timery i liczniki, używając wyjścia Q do wyzwalania cewki i wejścia (lub włączenia) innej funkcji. Jednym z prostych przykładów jest ustawienie timera, aby wyzwolić funkcję SET. Jest to szczególnie przydatne w przypadku blokowania bitu alarmu lub ostrzeżenia, który powinien wymagać definitywnego ręcznego zresetowania.
Rys. 7. Timer z ustawionym bitem na alarm
Liczniki
W Mitsubishi GX Works 3 dostępna jest funkcja UDCNT w drabince i strukturze programowania FBD.
Rys. 8. Licznik w języku drabinkowym W języku drabinkowym widać, że linia wejściowa jest taka sama, jak wejście EN w bloku FBD
Rys. 9. Licznik w jezyku FBD
Symbol użyty w S1 powinien być typu Boolean i zadeklarowany jako coś, co może być tablicą dwuelementową. Pozycja [0] tablicy jest inkrementacją/dekrementacją impulsu, natomiast pozycja [1] tablicy ustawia kierunek licznika. W tych przykładach każdy impuls na S1 (rosnące zbocze X0) zwiększa wartość licznika o 1. Jeśli wartość osiągnie 3 (lub cokolwiek jest ustawione na S2), wyjście przejdzie w stan wysoki. W tym przypadku drabinka może wykorzystać styk N.O. przejścia C0 z 0 na 1, a język FBD włączy cewkę COUNT_DONE.
Pamiętajmy, że jeśli wartość na tablicy X1 przejdzie w stan wysoki, to impulsy widziane na S1 spowodują dekrementację rejestru zliczającego. Jest to więc bardzo prosty blok funkcyjny, który posiada jednocześnie dwie funkcje.
Podsumowanie
Liczniki i timery są jednymi z podstawowych funkcji w sterownikach PLC. Jednak w zależności od producenta sterownika PLC i jego oprogramowania są one konfigurowane na różne sposoby. Powyższy artykuł w przystępny sposób pokazuje jak to się robi w środowisku Mitsubishi GX Works 3. Artykuł powstał na bazie wiedzy zdobytej podczas kursu online z programowania sterowników w środowisku GX Works3 oraz własnych doświadczeń.
Kurs Mitsubishi serdecznie polecam osobą zaczynającym przygodę z programowaniem oraz osobą bardziej doświadczonym, gdyż wszystkie aspekty programowania są w nim prosto i przejrzyście wyjaśnione.
Artykuł został nagrodzony w Konkursie iAutomatyka – edycja Listopad 2021
Nagrodę VOUCHER NA KURS KURSYAUTOMATYKI.PL dostarcza ambasador konkursu, firma Kursy Automatyki. |