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

image.png

Wybór kierunku MD2 i MD3 licznika HSC (HHSC lub SHSC) może być realizowany przez wejścia zewnętrzne (takie jak X5 w powyższym przykładzie) lub specjalny znacznik w CPU (taki jak M1948 w powyższym przykładzie) w celu ograniczenia wykorzystania zewnętrznych punktów wejściowych.

Poniżej przedstawiono schemat przebiegów pokazujący zależności pomiędzy zliczaniem i sterowaniem dla dwóch liczników HSC. W przykładzie tym, wartość PV wynosi 6

image.pngimage.png

10.2.3. Szybki licznik w trybie wejścia zliczającego fazy A/B (MD4,MD5,MD6,MD7)

Szybki licznik w trybie wejścia zliczającego fazy A/B wyposażony jest w wejście impulsowe fazy A i fazy B z wartością zliczania +1 lub -1, stosownie do zależności fazowej pomiędzy nimi, tj. zależności pomiędzy zliczaniem obu faz. Jeżeli faza A znajduje się przed fazą B, to wartość CV powinna być zmieniona o +1. W innym wypadku powinna być zmieniona o -1. Zliczanie fazy A/B przez HSC we wszystkich czterech trybach MD4 (A/B), MD5 (A/B´2), MD6 (A/B´3) i MD7 (A/B´4) jest zbliżone. Różnice są następujące

MD4 (A/B)     :   Zbocze narastające A zwiększa CV o 1, gdy A jest przed B, natomiast zbocze opadające A zmniejsza CV o 1, gdy A jest za B.

MD5 (A/B´2) :   Zbocza narastające i opadające A zwiększają CV o 1, gdy a jest przed B i zmniejszają CV o 1, gdy A jest za B (dwa razy więcej zliczeń niż dla MD4).

MD6 (A/B´3) :   Zbocza narastające i opadające A i zbocze narastające B zwiększają CV o 1, gdy A jest przed B. Zbocza narastające i opadające A oraz zbocze opadające B zmniejszają CV o 1, gdy A jest za B (trzy razy więcej zliczeń niż dla MD4).

MD7 (A/B´4) :   Zbocza narastające i opadające A i B zwiększają CV o 1, gdy A jest przed B, natomiast zbocza narastające i opadające A i B zmniejszają CV o 1, gdy A jest za B (cztery razy więcej zliczeń niż dla MD4).

Pozostałe tryby HSC MD4~MD7 wyposażone są w software'owe sygnały MASK i CLEAR (CLEAR jest niedostępny dla SHSC). Jeżeli funkcje sterujące nie są używane, ich stan (tj. M1946 i M1947 w poniższym przykładzie) musi być utrzymywany na „0”. Oprócz software'owych sygnałów MASK i CLEAR, skonfigurować można także 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 HSC2 skonfigurowanego oddzielnie dla czterech trybów HSC MD4~MD7

image.png

image.png

Poniżej przedstawiony został uproszczony schemat zależności pomiędzy zliczaniem a sterowaniem dla czterech trybów HSC przy wartości PV ustawionej jako -4.

image.png

10.3. Procedura zastosowania szybkiego liczenia FBs-PLC

image.png

10.4. Konfiguracja HSC/HST

10.4.1. Konfiguracja HSC/HST (za pomocą FP-08)

W rozdziale tym, do opisu konfiguracji HSC jako przykład wykorzystany zostanie ekran FP-08. Procedura konfiguracji HSC składa się z następujących 5 kroków:

  Wybranie elementu spośród HSC/HST (jedynie HHSC umożliwia taki wybór). Jeżeli wybrany został HSC, przejście do następnego kroku. W przypadku HST nic więcej nie jest wymagane.

   Wybranie odpowiednich trybów zliczania dla HSC (MD0~MD7). Po wpisaniu numeru trybu, FP-08 automatycznie wyświetli nazwy wejść zliczających i sterujących HSC dla danego trybu oraz pole do wprowadzenia przez użytkownika numeru zewnętrznego punktu wejściowego Xn. Puste pole trybu oznacza, że HSC nie jest używany.

   Określenie, czy odpowiednie wejścia zliczające (U, D, P, R, A i B) oraz sterujące (M i C) mają być zastosowane czy nie (Jeżeli wejście nie będzie używane, należy zostawić wolne pole; jeżeli będzie używane, wprowadzić wartość Xn. Po ustaleniu wartości wejściowych Xn HHSC, wprowadzenie liczby „X”. FP-08 automatycznie wygeneruje ustawioną wartość n).

   Określenie, czy polaryzacja poszczególnych wejść zliczających (U, D, P, R, A i B) HHSC jest odwrócona, czy nie, w celu dopasowania do polaryzacji enkodera (0: polaryzacja nie odwrócona, 1: odwrócona. Ustawienie domyślne: 0).

  Określenie, czy polaryzacja poszczególnych wejść sterujących (M i C) HHSC jest odwrócona, czy nie, w celu dopasowania do polaryzacji enkodera (0: polaryzacja nie odwrócona, 1: odwrócona. Ustawienie domyślne: 0).

Przykłady zastosowania FP-08 w celu przeprowadzenia wyżej wymienionych konfiguracji ~

image.png

image.png

l Wartość wejściową można zmienić poprzez bezpośrednie wprowadzenie nowej wartości do nadpisania. W razie potrzeby usunięcia wprowadzonej wartości, należy użyć przycisku image.png

l Puste pole (bez żadnej wartości wejściowej) oznacza, że wykorzystanie HSC lub wejścia nie jest wymagane.

l Wyświetlenie „pulse” w poprzednim przykładzie oznacza „Wejście zliczające”, tj. U i D, P i R lub A i B licznika HHSC.

l „POLAR” oznacza „POLARYZACJĘ”, tj. wybór pomiędzy polaryzacją odwróconą, a nieodwróconą

l Punkty wejściowe dla odpowiednich wejść zliczających i sterujących HHSC są stałe. W związku z tym, w „przykładach konfiguracji” podanych powyżej wystarczy dla każdego wejścia HHSC wprowadzić „X” w celu zaznaczenia, że dane wejście będzie użyte. FP-08 lub WinProladder automatycznie ustawi wartość X, dla której nie będzie dopuszczalna żadna zmiana. Użytkownik może wybrać dowolne wejścia zliczające lub sterujące SHSC z zakresu  X0~X15. Dlatego też, wymagane jest wprowadzenie zarówno „X”, jak też numeru n punktu wejściowego dla SHSC.

10.4.2. Konfiguracja HSC/HST (za pomocą WinProladder)

Kliknij „I/O Configuration” w oknach projektu:

image.png

Okno „Timer/Counter” umożliwia wybór dowolnego zegara lub licznika.

image.png

---《Konfiguracja Zegara/Licznika (Timer/Counter)》---

【 Counter Type 】: Wybór licznika sprzętowego lub sprzętowego zegara.

【 Counting Mode 】: Wybór trybu zliczania ( Przykład: U/D、P/R、A/B……)

【 A-Phase 】: Wybór sygnału wejściowego narastającego. W przypadku trybu zliczania P/R, elementem tym będzie PLS. W przypadku trybu zliczania U/D, elementem tym będzie „UP”.

【 B-Phase 】: Wybór sygnału wejściowego opadającego. W przypadku trybu zliczania P/R, elementem tym będzie DIR. W przypadku trybu zliczania U/D, elementem tym będzie DN.

【 Mask[MSK] 】: Wybór wejścia MASK.

【 Clear[CLR] 】: Wybór wejścia CLEAR.

--- 《Polaryzacja HSC (HSC Polarity)》--

【 Mask signal 】: Określenie czy sygnał MASK jest odwrócony czy nie.

【 Clear signal 】: Określenie czy sygnał CLEAR jest odwrócony czy nie.

【 Counter signal 】: Określenie czy sygnał COUNTER jest odwrócony czy nie.

--- 《HSC’s Data Length》 ---

Do wyboru jest tryb 32-bitowego licznika sprzętowego lub zegara 16-bitowego + licznika 16-bitowego. W trybie 32-bitowego licznika sprzętowego, do zapisania wartości zliczanej wykorzystywane są dwa rejestry. W trybie zegara 16-bitowego + licznika 16-bitowego, jeden rejestr używany jest do zapisania wartości zliczania, a drugi rejestr jest zegarem cyklicznym.

W poniższej tabeli przedstawione zostały adresy wszystkich ustawianych lub wybieranych punktów wejściowych, sygnałów MASK i CLEAR, funkcji wyboru kierunku oraz inne elementy dla HHSC i SHSC

image.png

* Jeżeli SHSC pracuje w trybie MD2(P/R), wybór kierunku następuje za pomocą specjalnego znacznika M1983、M1985、M1987 i M1989.

l  W trybie A-B (HHSC jako MD4~MD7、SHSC jako MD4), wejście A/B musi być użyte jako para X8 i X9 (numer parzysty to faza A, natomiast nieparzysty to faza B)

l  Punkty wejściowe X0~X15 wymienione w powyższej tabeli mogą być ustawione tylko raz (tj. wykorzystane jako jedna funkcja) i nie mogą być użyte po raz drugi.

l  Częstotliwość FBs-MN może wynosić do 920 kHz (faza pojedyncza i faza AB)

l  Częstotliwość FBs-MC może wynosić do 200 kHz (faza pojedyncza i faza AB)

l  Częstotliwość FBs-MA może wynosić do 20 kHz (faza pojedyncza) i 10kHz (faza AB)

l  Suma częstotliwości wejść SHSC nie może przekroczyć 5 kHz. Im wyższa częstotliwość, tym dłuższy będzie czas skanu CPU.

10.5. Przykłady zastosowania szybkiego licznika

Przykład 1

Poniższy przykład ilustruje zastosowanie szybkiego licznika do sterowania cięciem odcinków materiału o równej długości.

Mechanizm

image.png

Konfiguracja HSC (Ustawienie HSC0 na MD7 i zakończenie konfiguracji)

image.png

Program sterujący

Program główny

image.png

Podprogram

image.png

Opis

1.  Główny program zainicjuje wartość CV HSC0 (CV=0) i przeniesie wartość długości (DR0) do PV HSC0 przed uruchomieniem Y0 w celu włączenia silnika przesuwającego materiał.

2.  Kiedy wartość CV osiągnie PV, do PV dodana zostanie długość R0 przed ponownym załadowaniem wartości PV HSC0.

3. Po zejściu całego materiału z rolek, uruchomi się detektor braku materiału X2 i wyłączony zostanie silnik

Przykład 2 Przykład na szybki licznik sprzętowy z wykorzystaniem przerwania

Program główny

image.png

Podprogram

image.png

Przykład 3 Przykład natychmiastowej odpowiedzi wielostrefowego szybkiego zliczania na przerwanie

Program główny

image.png

Podprogram

image.png

10.6. Szybki zegar FBs-PLC

Minimalna jednostka zliczania (podstawa czasowa) standardowego PLC może wynosić maksymalnie 1ms. Do tego czasu należy dodać także odchyłkę czasu skanu. Dlatego też, w przypadku, gdy wymagana jest bardziej precyzyjna synchronizacja (np.: przy użyciu zegara we współpracy z HSC w celu pomiaru częstotliwości), konieczne jest zastosowanie szybkiego zegara (HST).

FBs-PLC ma wbudowany szybki zegar (HSTA) o podstawie czasowej równej 16 bitów/0.1ms oraz, jak opisano wcześniej, cztery 32-bitowe szybkie liczniki (HSC0~HSC3) HHSC, które mogą pracować jako szybki zegar (HST0~HST3) o podstawie czasowej 32 bity/0.1ms. W związku z tym, FBs-PLC może być wyposażony maksymalnie w pięć szybkich zegarów. Wszystkie szybkie zegary mogą być włączane lub wyłączane (domyślnie są włączone) za pomocą instrukcji EN (FUN145) i DIS (FUN146). HSTA i HST0~HST3 opisane zostały poniżej

Najkorzystniejszą podstawą czasową dla większości standardowych PLC jest 10ms. Jednakże niektóre PLC mogą być wyposażone w szybki zegar o podstawie czasowej równej 1mS. W przypadku, gdy brane są pod uwagę odchylenia w czasie skanu PLC (np.: jeżeli czas skanu wynosi 10ms, podczas, gdy podstawa czasowa równa jest 1mS, to całkowite odchylenie w czasie nadal przekracza 10ms), wartość 1ms przestaje być znacząca. Dlatego też, takie rodzaje PLC nie mogą być zastosowane do precyzyjnej synchronizacji. FBs-PLC o podstawie czasowej równej 0.1ms nie wykazuje żadnych odchyleń w czasie skanu dzięki sygnałowi przerwania gwarantującego 100-krotnie większą precyzję niż w przypadku standardowego zegara PLC. Tak precyzyjne urządzenie może być wykorzystane w wielu zastosowaniach wymagających precyzyjnej synchronizacji.

10.6.1. Szybki zegar HSTA

HSTA jest 16-bitowym zegarem sprzętowym wbudowanym w układ SoC. Jako licznik HHSC, musi on wykorzystywać instrukcję FUN93 (HSCTW) w celu ustawienia wartości PV dla HSTA w układzie SoC oraz instrukcję FUN92 (HSCTR) w celu odczytu CV. HSTA może być wykorzystany jako zegar charakteryzujący się dwiema różnymi funkcjami. FBs-PLC wykorzysta go jako ogólny 16-bitowy zegar opóźniający, gdy PV ³2 oraz jako 32-bitowy zegar cykliczny, gdy PV=0

A. 16-bitowy szybki zegar opóźniający HSTA

Po rozpoczęciu synchronizacji przez HSTA, zegar opóźniający wygeneruje opóźnienie o długości PVx0.1ms przed wysłaniem przerwania. Kiedy PV>0, HSTA służy jako 16-bitowy zegar opóźniający, a jego wartość PV może być ustawiona jako 0002H~FFFFH, tj. czas opóźnienia może być ustawiony jako 0.2ms~6.5535 sekund. Poza bardziej precyzyjną podstawą czasową oraz możliwością natychmiastowego wysłania sygnału przerwania w celu zapewnienia większej precyzji zegara, zakres zastosowania HSTA jest identyczny jak w przypadku standardowego zegara. Poniżej przedstawiono schemat blokowy dla HSTA wykorzystywanego jako zegar opóźniający. Szczegóły dotyczące działania i zastosowania znajdują się w Rozdziale 10.6.3 "Przykłady programów".

 

image.png

image.png

B. 32-bitowy szybki zegar cykliczny HSTA

Tak zwany "zegar cykliczny" jest zegarem, który dodaje 1 do swojej aktualnej wartości w każdym ustalonym okresie oraz w sposób ciągły przeprowadza cykliczne zliczanie. Jego wartość CV wynosić będzie 0, 1, 2, … 2147483647, 2147483648, 2147483649, …… 4294967295, 0, 1, 2, … (przy podstawie czasowej 0.1ms, łączny czas będzie równy CV x 0.1ms). Zegar cykliczny jest zegarem zliczającym w górę podstawy czasowej równej 0.1ms, mogącym pracować nieprzerwanie i być wykorzystanym do odczytania każdych dwóch zdarzeń w czasie ich wystąpienia oraz obliczenia przedziału czasowego pomiędzy pojawieniem się wspomnianych zdarzeń. Przedstawiony poniżej schemat B jest schematem blokowym dla HSTA wykorzystanego jako 32-bitowy zegar cykliczny. Jak widać na schemacie, gdy PV zegara cyklicznego wynosi 0, zegar ten nie wyśle sygnału przerwania. Aby uzyskać wartość zegara, należy użyć FUN92 w celu odczytania wartości CV z układu SoC i zapisania jej w 32-bitowym rejestrze CV (DR4152) PLC. Zegar cykliczny stosowany jest zazwyczaj w celu osiągnięcia większej precyzji przy detekcji prędkości obrotowej (obr./min.) w sytuacji, gdy zmiana takiej prędkości jest duża lub bardzo nieznaczna. Opis znajduje się w przykładzie w Rozdziale 10.6.3

image.png

10.6.2. Szybki zegar opóźniający HST0~HST3

HHSC (HSC0~HSC3) może zostać skonfigurowany jako cztery 32-bitowe szybkie zegary opóźniające, HST0~HST3. Charakteryzują się tymi samymi funkcjami oraz podstawą czasową co 16-bitowy zegar opóźniający, z wyjątkiem tego, że w przypadku HST0~HST3, aby ustawić HHSC jako HST, należy jedynie wybrać "1" w opcji Wyboru Jednostki HSC/HST w punkcie 8 “HSC/HST/INT” FP-08 lub w konfiguracji WinProladder. Należy odnieść się do przykładu (pokazującego konfigurację HSC1 jako HST1) w Rozdziale 10.4 "Konfiguracja HSC/HST". Poniżej przedstawiono schemat blokowy dla HHSC ustawionego jako HST. Zakres zastosowań jest identyczny jak w przypadku 16-bitowego HSTA. Należy odnieść się do Rozdziału 10.6.4 "Przykłady programów".

image.png

B. 32-bitowy zegar cykliczny HSTO~HST3

W zależności od wymagania, HHSC (HSC0~HSC3) można skonfigurować jako zegary 32-bitowe HST0~HST3. Co każde 0.1ms, rejestr aktualnych wartości zegara w układzie SoC będzie zwiększany o 1. Użytkownik może wykorzystać instrukcję FUN92 do odczytu aktualnej wartości zegara i zapisania jej do rejestrów CV (DR4096, DR4100, DR4104, i DR4108) CPU. W związku z tym, zawartość rejestru CV CPU będzie 0, 1, 2, ……, 7FFFFFFFH, 80000000H, ……., FFFFFFFFH, 0, 1, …… itp. wariacji wartości dla zegara 32-bitowego. Dzięki technice obliczania przedziału czasu pomiędzy dwoma zdarzeniami, można otrzymać nieskończoną liczbę 32-bitowych zegarów o podstawie czasowej 0.1ms.

10.6.3. Przykłady zastosowań szybkiego zegara HSTA

Przykład 1 HSTA pracujący jako 32-bitowy zegar cykliczny

image.pngPrzykład 2 Przykład zastosowania zegara cyklicznego 

W przykładzie tym zastosowano HSTA jako zegar cykliczny współpracujący z HSC0 w celu odczytania przedziału czasowego do nagromadzenia 10 impulsów i wysłania sygnału przerwania po każdych 10 impulsach oraz natychmiastowego odszukania wymaganej wartości obr./min. (RPM) (liczba impulsów jest stała przy zmianie czasu).

Mechanizm

image.png

Konfiguracja HSC i HST

Ponieważ HSTA jest wbudowany, konfiguracja nie jest wymagana. Należy po prostu ustalić PV =0 w celu ustawienia go jako 32-bitowy zegar cykliczny.

W celu rozpoczęcia współpracy z czujnikiem, należy ustawić HSC0 jako licznik zliczający w górę o pojedynczym wejściu (MD0, ale wykorzystać tylko wejście U).

Wszystkie pozostałe ustawienia (polaryzacja wejść zliczających i sterujących) są stałe (nieodwrócone) i nie należy ich zmieniać

Program główny

image.png

Podprogram

image.png

image.png

Przykład 3 HSTA pracujący jako program zegara opóźniającego

Program główny

image.png

Podprogram

image.png

1010.6.4. Przykłady zastosowania szybkiego zegara HST0~HST3

Konfiguracja HSC i HST (za pomocą WinProladder)

Kliknąć „I/O Configuration” w Project Windows:

 image.png

 ● Po wyświetleniu się okna „Timer/Counter”, należy wybrać opcję "Hardware Timer" w polu Counter Type. Następnie można skonfigurować HHSC (szybki licznik sprzętowy) jako HHT (szybki zegar sprzętowy).

 ● Użytkownik nie musi konfigurować HSTA, ponieważ jest on ustawiony domyślnie. Konfiguracja wymagana jest tylko w przypadku ustawienia HHSC (szybkiego licznika sprzętowego) jako HHT (szybki zegar sprzętowy).

image.png

Konfiguracja HSC i HST (za pomocą FP-08)

image.png

· Pozostałe ustawienia (polaryzacja zliczania i wejść sterujących) są domyślne (nieodwrócone) i nie mogą być zmieniane

Przykład 1 Przykład zastosowania zegara opóźniającego

Jest to przykład konfiguracji HSC0 jako zegar opóźniający HST0 oraz podłączenia szybkiego licznika HSC1 z silnikiem obrotowym maszyny do wiercenia w drewnie, w celu wysłania sygnału przerwania w ustalonym czasie. Przy każdym wysłaniu sygnału przerwania, należy odczytać wartość z licznika. Następnie, poprzez porównanie zmiany prędkości obrotowej silnika w stanie jałowym (bez wiercenia) oraz podczas dociskania głowicy do materiału (podczas wiercenia), można obliczyć prędkość obrotową silnika (obr./min. - RPM). Oczywiste jest, że w przypadku, gdy głowica wiercąca będzie ostra, to opór będzie mniejszy, a prędkość obrotowa będzie większa niż w przypadku tępej głowicy. Jeżeli głowica wiercąca jest uszkodzona, urządzenie pracuje na najwyższych obrotach. Zazwyczaj, różnica w prędkości obrotowej pomiędzy tymi trzema stanami pracy nie jest znaczna i w wielu wypadkach nie może być wykryta przez standardowy zegar charakteryzujący się odchyleniem czasowym większym niż kilkadziesiąt ms. Jednak przy zastosowaniu HST o podstawie czasowej równej 0.1mS, stan głowicy wiercącej (normalna, tępa lub uszkodzona) może zostać wykryty, a co za tym idzie, wysłany może zostać sygnał ostrzegawczy lub praca może zostać przerwana umożliwiając w ten sposób wymianę głowicy.【Czas jest stały, a liczba impulsów zmienna】

Mechanizm

image.png

Program główny

image.png

Podprogram

image.png

Opis:

Zakładając, że normalna prędkość obrotowa głowicy wiercącej wynosi 18000 obr./min., natomiast czujnik generować będzie 8 impulsów na jeden obrót, częstotliwość wejścia U dla HSC1 wynosi 18000/60´8=2400Hz, tj. co każde 5ms generowane będzie 12 impulsów. W związku z tym, HST0 można wykorzystać do wysłania sygnału przerwania i odczytania wartości CV dla HSC1 co każde 5ms w celu obliczenia prędkości obrotowej.

image.png

image.png

Przykład 2 Szybki sprzętowy HST3 pracujący jako 32-bitowy zegar cykliczny

image.png

Przykład 3 Szybki zegar sprzętowy HST3 pracujący jako zegar wysyłający okresowe przerwania

Program główny

image.png

Podprogram

image.png