W tej części kursu skupimy się na timerach i licznikach. Całkowita liczba timerów dostępnych dla sterownika PLC Fatek w WinProLadderze to 256 (T0~T255), z trzema podstawami czasu: 0,01s, 0,1s i 1s. Liczniki, z których możemy korzystać w WinProLadderze są 16 lub 32-bitowe.
Timery i liczniki – ilość
Całkowita liczba 16-bitowych liczników to 200 (C0~C199). Zakres ich wartości zadanej (CV) to: 0~32767. Liczniki C0~C139 są licznikami podtrzymywanymi, w których wartość CV zostanie utrzymana w momencie, gdy PLC zostanie ponownie włączone po zaniku zasilania lub przełączone z trybu STOP w tryb RUN. W przypadku liczników niepodtrzymywanych, przy ponownym podaniu zasilania lub przełączeniu sterownika z trybu STOP w tryb RUN, wartość CV zostanie wyzerowana.
Całkowita liczba 32-bitowych liczników to 56 (C200~C255). Zakres ich wartości zadanej (CV) to: 0~2147483647. Liczniki C200~C239 są to liczniki podtrzymywane, natomiast C240~C255 są licznikami niepodtrzymywanymi. Domyślne ilości oraz rozmieszczenie timerów/liczników można zobaczyć w zakładce alokacja pamięci na drzewku programu:
Klikając dwa razy na alokację pamięci pojawia się okno dialogowe:
Timery i liczniki – działanie
Jak działa timer?
Timery wykorzystujemy do odliczania czasu – może to być np. czas, który upłynął od uruchomienia maszyny. Timer o danej podstawie czasu, po otrzymaniu na wejście sygnału o stanie wysokim, zaczyna odliczać. Po osiągnięciu wartości zadanej PV, która może być stałą lub zmienną, wystawia sygnał wysoki na wyjściu TUP. Sygnał z wyjścia TUP możemy przenieść w dowolne miejsce programu korzystając np. ze styku normalnie otwartego i jako zmienną podając numer timera np. T10. Jeśli na wejściu timera pojawi się sygnał niski, wartość zliczona CW zostanie wyzerowana.
Na powyższym rysunku przedstawiono zachowanie timerów w zależności od stanu zmiennej systemowej M1957 – kontrola zachowania wartości bieżącej (CV) timerów, po doliczeniu przez nie do wartości zadanej:
-
0 : kontynuacja narastania wartości bieżącej czasu timera, po odmierzeniu czasu zadanego
-
1 : zaprzestanie narastania wartości bieżącej czasu timera, po odmierzeniu czasu zadanego
Tutaj należy również wspomnieć, że wartość bieżącą możemy wykorzystać w dowolnym miejscu w programie, odwołując się do niej jak do rejestru i podając numer timera, np. T10.
Jak działa licznik?
Liczniki mogą być wykorzystywane np. do zliczania ilości wykonanych elementów. Licznik zlicza ilość przychodzących impulsów – jego wejście oznaczone jest jako PLS i reaguje tylko na zbiorcze narastanie sygnału. Podając sygnał wysoki na wejście zliczymy tylko 1 impuls, następny impuls zostanie zliczony dopiero, gdy na wejściu PLS pojawi się sygnał o stanie niskim, a dopiero później o stanie wysokim. Po osiągnięciu wartości zadanej PV, która może być stałą lub zmienną, wystawia sygnał wysoki na wyjściu CUP. Sygnał z wyjścia CUP możemy przenieść w dowolne miejsce programu korzystając np. ze styku normalnie otwartego i jako zmienną podając numer timera, np. C10. Jeśli na wejściu CLR licznika pojawi się sygnał wysoki, wartość zliczona CW zostanie wyzerowana.
Na powyższym rysunku przedstawiono zachowanie liczników w zależności od stanu zmiennej systemowej M1973 – kontrola zachowania wartości bieżącej (CV) liczników, po doliczeniu przez nie do wartości zadanej:
-
0 : kontynuacja narastania wartości bieżącej licznika, po odmierzeniu wartości zadanej
-
1 : zaprzestanie narastania wartości bieżącej licznika, po odmierzeniu wartości zadanej
Tutaj należy również wspomnieć, że wartość bieżącą możemy wykorzystać w dowolnym miejscu w programie, odwołując się do niej jak do rejestru i podając numer licznika np. C10.
Timery i liczniki – część praktyczna
Przykład 1
Wykorzystując styki normalnie otwarty i normalnie zamknięty, cewki set i reset oraz timer, stworzymy prosty generator przebiegu prostokątnego o definiowalnym czasie wypełnienia:
Marker M0 uruchamia powtarzalny cykl pracy. Wyjście Y0 zostaje ustawione w stan wysoki na czas określony w timerze T201, zaś czas wyłączenia określony został w timerze T200. Oczywiście, nie muszą być to stałe wartości, można skorzystać z rejestrów R, np. R0.
Przykład 2
Wykorzystamy elementy poprzedniego przykładu oraz licznik, aby stworzyć aplikację realizującą poniższy algorytm:
– pierwsze pojawienie się impulsu narastającego na wejściu sterownika powoduje rozpoczęcie zliczania impulsów narastających na wejściu sterownika przez okres 5s (pierwszy impuls też jest zliczany)
– po tym czasie wyjście wystawia się w stan wysoki na okres równy liczbie zliczonych impulsów
– gdy wyjście jest w stanie wysokim, impulsy z wejścia nie są zliczane
– po skończonym cyklu można rozpocząć go od nowa (aplikacja wraca do stanu pierwotnego)
Powyższe programy można przeanalizować symulując je – symulacja została opisana w poprzedniej części kursu.
Zapraszamy do kolejnej części kursu.
![]() | Autor: Jarosław PawełekAbsolwent Akademii Górniczo – Hutniczej im. Stanisława Staszica w Krakowie na kierunku Automatyka i Robotyka ze specjalnością Automatyka i Metrologia. Przygodę z automatyką rozpoczynał w firmie od stanowiska praktykanta. Przechodząc kolejno na stanowisko Doradcy ds. technicznych oraz obecnie zajmując stanowisko Kierownika Działu Wsparcia Technicznego stara się zapewniać najlepsze wsparcie merytoryczne dla naszych klientów. Prywatnie miłośnik fotografii. |