Skip to main content

10. Szybki licznik i timer FBs-PLC

10.1. Szybki licznik FBs-PLC

Częstotliwość zliczania zwykłego licznika PLC wynosi maksymalnie kilkadziesiąt Hz (w zależności od czasu skanu). W przypadku, gdy częstotliwość sygnału wejściowego jest wyższa, konieczne jest zastosowanie szybkiego licznika (HSC). W innym wypadku, może nastąpić błąd zliczania lub zliczanie może zostać zatrzymane. W sterownikach PLC wykorzystywane są zazwyczaj dwa rodzaje szybkich liczników HSC: szybki licznik sprzętowy (HHSC) wyposażony w specjalny obwód sprzętowy, oraz szybki licznik software'owy (SHSC), który poprzez zmianę stanu podczas zliczania sygnału wyzwala operację zliczania w górę/w dół przez CPU. Sterownik FBs-PLC może być wyposażony w 4 liczniki HHSC (w układach SoC) i 4 liczniki SHSC. Wszystkie są szybkimi licznikami 32-bitowymi.

10.1.1. Tryby zliczania szybkiego licznika FBs-PLC

Jak przedstawiono w tabeli poniżej, każdy z liczników HHSC i SHSC FBs-PLC umożliwia odpowiednio 8 i 3 tryby zliczania do wyboru:

image.png

Strzałki góra/dół (↑,↓) na narastających/opadających zboczach impulsu wskazują miejsce zliczania (+1 lub –1).

 

10.2. Architektura systemu szybkiego liczenia FBs-PLC

Poniższe schematy przedstawiają architekturę systemu dla liczników HHSC i SHSC FBs-PLC, w której każdy z nich wyposażony jest w wejście wielofunkcyjne oraz funkcje zliczania. Niektóre z funkcji są wbudowane (takie jak numer rejestru CV, numer rejestru PV, etykieta przerwania, znacznik MASK, CLEAR oraz wybór kierunku), dzięki czemu użytkownik nie musi przeprowadzać konfiguracji. Jednakże, niektóre funkcje oznaczone na poniższych schematach jako “*”, wymagają użycia oprogramowania narzędziowego w celu skonfigurowania HSC (takiego jak wybór HSC, tryb zliczania, przypisanie funkcji pod wejście, zmiana polaryzacji oraz ustalenie odpowiedniego numeru wejścia Xn) itp. Szczegółowy opis struktury oraz działania 8 trybów zliczania znajduje się w rozdziałach  10.2.1~10.2.3.

Uwaga: CV (Wartość aktualna); PV (Wartość zadana)

l Użycie FUN92 do odczytania aktualnej wartości z licznika sprzętowego z układem SoC w celu wprowadzenia go do wewnętrznego rejestru CV CPU.

l Użycie FUN93 do zapisania zawartości rejestru w układzie SoC. Reset i aktualizacja CV licznika sprzętowego w układzie SoC.

l Użycie FUN93 do zapisania zawartości rejestru PV w układzie SoC licznika sprzętowego.

image.png

Architektura systemu licznika HHSC(HSC0~HSC3)

image.png

Architektura systemu licznika SHSC(HSC4~HSC7)

l  Wszystkie sygnały sterujące liczników HHSC i SHSC są domyślnie sygnałami aktywnymi wysokimi (tj. stan=1 dla sygnału aktywnego i 0 dla nieaktywnego). W celu dopasowania do polaryzacji czujnika, istnieje możliwość zmiany polaryzacji wejść zliczających HHSC (U, D, P, R, A i B) oraz wejść sterujących (M i C).

l  Domyślnie, jeżeli sygnał sterujący MASK M = 1, to impuls zliczany przez HSC będzie maskowany, zliczenie nie zostanie przeprowadzone, a stan wewnętrzny HSC (taki jak CV i PV) pozostanie niezmieniony. Licznik HSC będzie działać normalnie tylko w przypadku, gdy sygnał M powróci do stanu „0”. Niektóre czujniki wyposażone są w wyjścia Enable o działaniu odwrotnym do MASK. Jeżeli Enable = 0, liczniki nie będą zliczać i rozpoczną zliczanie tylko, gdy Enable = 1. Wybranie funkcji zmiany polaryzacji MASK umożliwia współpracę z czujnikami wyposażonymi w wyjście Enable.

l  Jeżeli sygnał sterujący CLEAR C = 1, to wewnętrzny rejestr CV zostanie wyzerowany i nie zostanie przeprowadzone zliczanie. HSC rozpocznie zliczanie od 0, gdy sygnał C powróci do stanu niskiego. Aby ustawić aktualną wartość zliczania na 0, można wyczyścić rejestr CV (DR4112, DR4116, DR4120 i DR4124) za pomocą programu drabinkowego.

l  Układ SoC zawiera cztery zestawy liczników HHSC FBs-PLC, gdzie użytkownik nie ma bezpośredniego dostępu do rejestrów CV lub PV. Użytkownik ma dostęp jedynie do rejestrów CV (DR4096~DR4110) w pamięci wewnętrznej CPU. W idealnym przypadku, zawartość rejestrów CV i PV w układach SoC powinna być aktualizowana równocześnie z rejestrami CV i PV w pamięci wewnętrznej CPU. Aby zachować zgodność pomiędzy dwoma obszarami, muszą one zostać załadowane lub odczytane przez CPU, w momencie, gdy należą one do dwóch różnych obwodów sprzętowych. W celu załadowania rejestrów CV i PV wewnątrz CPU do odpowiednich rejestrów CV i PV (aby umożliwić HHSC kontynuację zliczania od wartości początkowej), należy użyć FUN93. Następnie, należy użyć FUN92, aby odczytać wartość zliczania HHSC rejestru CV w układzie SoC do rejestru CV w CPU (tj. rejestr CV w CPU wyposażony jest w funkcję dwukierunkową). Ponieważ odczyt może być przeprowadzony tylko w przypadku użycia FUN92 (tak zwany odczyt „próbkowania”), może pojawić się różnica pomiędzy wartością CV w układzie SoC zliczoną przez HHSC, a wartością CV w CPU. Różnica będzie wzrastać, szczególnie przy dużej częstotliwości zliczania.

l  Jeżeli częstotliwość zliczania jest nieduża lub wymagania dotyczące precyzji pozycjonowania nie są wygórowane, to dla prostego sterowania zliczaniem podczas pozycjonowania odpowiednie będzie użycie FUN92 w programie głównym w celu odczytania aktualnej wartości zliczania oraz wdrożenie instrukcji komparatora.

l  Jeżeli wymaganie dotyczące precyzji pozycjonowania jest większe, lub w przypadku wielostrefowego sterowania zliczaniem, to można użyć FUN92 do odczytania aktualnej wartości zliczania w przerwaniu o zadanej podstawie czasowej oraz wdrożyć instrukcję porównawczą w celu uzyskania bardziej precyzyjnego sterowania zliczaniem podczas pozycjonowania.

l  Jeżeli wymaganie dotyczące precyzji pozycjonowania jest bardzo wysokie, należy użyć funkcji ustawionego przerwania od licznika sprzętowego. Wartość zadana może zostać załadowana do rejestru PV licznika HHSC przez FUN93. W momencie, gdy wartość CV w HHSC osiągnie zadaną wartość, komparator sprzętowy w HHSC wyśle sygnał do CPU w chwili CV=PV i przejdzie do podprogramu standardowego przerwania w celu realizacji sterowania w czasie rzeczywistym.

l  Z drugiej strony, licznik SHSC wykorzystuje metodę przerwania w celu wysłania żądania sygnału przerwania do CPU w momencie, gdy wejście zliczające jest na narastającym zboczu impulsu. Następnie, CPU określa czy należy zmniejszyć czy zwiększyć wartość rejestru wewnętrznego CV (ponieważ rejestr CV w CPU jest rejestrem CV SHSC, nie jest wymagane zastosowanie FUN92 ani FUN 93). Jeżeli przy aktualizacji wartości CV, CPU wykryje, że jest ona równa wartości rejestru PV, natychmiast przejdzie do programu przerwania odpowiedniego SHSC. Sygnał przerwania może zostać wysłany do CPU w przypadku zmiany w zliczaniu SHSC lub zmiany w wejściu sterującym. W celu zatrzymania pracy PLC, może nastąpić wyraźne wydłużenie czasu reakcji PLC lub wywołany może zostać błąd Watchdog. Dlatego też, lepiej jest najpierw użyć licznika HHSC. Jeżeli wymagane jest użycie SHSC, to suma wszystkich częstotliwości wejściowych SHSC FBs-PLC nie powinna przekroczyć 5kHz.

l  Żaden ze znaczników, takich jak sygnały MASK, CLEAR i sterowanie kierunkiem, nie jest znacznikiem czasu rzeczywistego. Oznacza to, że mimo że sygnały MASK, CLEAR lub zmiana kierunku zostały ustawione podczas skanowania, zostaną one przesłane do HSC tylko w przypadku, gdy po zakończeniu skanu nastąpi aktualizacja I/O. W związku z tym, nie jest to opcja odpowiednia w przypadku sterowania w czasie rzeczywistym podczas pracy HSC (powinno być to wykorzystywane głównie przy realizacji ustawień wstępnych przed rozpoczęciem pracy HSC). W przypadku, gdy wymagane będzie sterowanie w czasie rzeczywistym, należy wykorzystać sprzętowe sterowanie wejściem lub zastosować instrukcje FUN145(EN), FUN146(DIS), FUN92(HSCTR), i FUN93(HSCTW) itp.

l  Każdy licznik HSC wyposażony jest w funkcje ENable(FUN145) i DISable(FUN146). Kiedy SHSC zostanie wyłączony, przestanie zliczać bez funkcji przerwania. Kiedy HHSC zostanie wyłączony, zliczanie nie zostanie przerwane, ale funkcja przerwania będzie wyłączona.

10.2.1. Szybki licznik w trybie góra/dół (MD0, MD1)

Szybki licznik w trybie góra/dół składa się z wejścia zliczającego impulsy w górę (U) oraz wejścia zliczającego impulsy w dół (D), które są od siebie niezależne i nie ma pomiędzy nimi żadnych zależności fazowych. Kiedy na wejściu impulsowym wystąpi narastające zbocze impulsu (dla MD1, zarówno zbocze narastające, jak i opadające), to wartość CV zmieni się o +1 (U) lub -1 (D). To samo dzieje się, gdy narastające (lub opadające) zbocza impulsu U i D wystąpią jednocześnie (nastąpi ich równe przesunięcie). Oba tryby mają wbudowane sygnały sterujące MASK i CLEAR (CLEAR jest niedostępna dla SHSC). Jeżeli funkcje nie są używane, ich stan (tzn. M1940 i M1941) musi być utrzymywany na „0”. Oprócz wbudowanych sygnałów MASK i CLEAR, skonfigurować można także sygnały sprzętowe MASK i CLEAR. Algorytm MASK realizowany jest najpierw jako funkcja OR sterowania sprzętowego i software'owego, a następnie wynik przesyłany jest do sygnału sterującego M HSC MASK oraz podobnie dla CLEAR. Poniżej przedstawione zostały uproszczone schematy funkcji skonfigurowane oddzielnie dla MD0 i MD1

image.png

Poniżej przedstawiono przebiegi HSC skonfigurowanego w tryb zliczania góra/dół przy wartości PV ustawionej na 6:

image.png

10.2.2. Szybki licznik w trybie wejścia krok/kierunek (MD2, MD3)

Szybki licznik w trybie wejścia krok/kierunek składa się z jednego wejścia zliczającego impulsy P (pulse). Wymaga on dodatkowego wejścia kierunkowego R (direction) w celu ustalenia, czy w momencie pojawienia się w zliczanym impulsie zbocza narastającego (dla MD3, zarówno zbocza narastającego jak i opadającego) wartość CV  (wart. akt.) powinna być zmieniona o +1 (R=0) czy -1 (R=1). To samo dotyczy zliczania MD2 i MD3, z takim wyjątkiem, że MD2 zlicza tylko zbocza narastające (+1 lub -1), natomiast MD3 zlicza zarówno zbocza narastające jak i opadające impulsu PS (podwójna liczba zliczeń w stosunku do MD2). Oba te tryby mają wbudowane sygnały sterujące MASK i CLEAR (CLEAR jest niedostępna dla SHSC). Jeżeli sygnały nie są używane, ich stan (tj. M1946 i M1947 w poniższym przykładzie) musi być utrzymywany na „0”. Oprócz wbudowanych sygnałów software'owych MASK i CLEAR, można skonfigurować sygnały sprzętowe MASK i CLEAR. Algorytm MASK realizowany jest najpierw przez funkcję OR sterowania sprzętowego i software'owego, a następnie wynik przesyłany jest do funkcji sterującej HSC. Tak samo realizowany jest algorytm CLEAR. Poniżej przedstawione zostały uproszczone schematy HSC1 skonfigurowanego oddzielnie dla MD2 i MD3