7 - część 2
| FUN 110 D P QUEUE |
KOLEJKA (QUEUE) |
FUN 110 D P QUEUE |
|
l Kolejka jest także rodzajem tabeli. Różni się od zwykłej tabeli tym, że zakres numerów rejestrów w kolejce wynosi od 1 do L, a nie od 0 do L-1. Innymi słowy, wartości QU1~QUL odnoszą się odpowiednio do wskaźników Pr = 1 do L, a Pr = 0 oznacza, że kolejka jest pusta. l Kolejka jest instrukcją typu FIFO, tj. dane, które pierwsze wejdą do kolejki będą pierwszymi danymi, które z niej wyjdą. Kolejka składa się z L kolejnych 16- lub 32-bitowych rejestrów (instrukcja P) rozpoczynając od rejestru QU, jak pokazano na poniższym schemacie:
l Jeżeli wejście sterujące „EN" = 1 lub zmieni się z 0 na 1 (instrukcja P), to stan wejścia „I/O” określa czy dane IW wejdą do kolejki (kiedy „I/O” = 1) czy wyjdą z niej i zostaną przeniesione do OW (kiedy „I/O” = 0). Jak pokazano na schemacie powyżej, wartości IW będą zawsze zapisywane w pierwszym rejestrze (QU1) w kolejce. Po wprowadzeniu wartość do kolejki, wskaźnik Pr zostanie automatycznie zwiększona o 1, aby wskazywał zawsze daną, która jako pierwsza weszła do kolejki. Po wyjściu z kolejki wartości wskazanej przez Pr, zostaje ona przeniesiona bezpośrednio do OW. Wartość Pr zostaje wtedy zmniejszona o 1, aby wskaźnik wskazywał na najstarszą z wartości, które pozostały w kolejce. l Jeżeli żadne wartości nie weszły jeszcze do kolejki lub wszystkie dane wyszły z kolejki (Pr = 0), to stan znacznika pustej kolejki EPT, zostanie ustawiony na 1. Wówczas, nawet w przypadku kolejnej operacji wyjścia danych, instrukcja ta nie zostanie wykonana. W przypadku, gdy dane będą wprowadzane do kolejki, ale nigdy nie będą z niej wyprowadzane, kolejka po pewnym czasie stanie się pełna (wskaźnik Pr wskaże pozycję QUL), a stan znacznika pełnej kolejki FUL, zostanie ustawiony na 1. Wówczas, nawet w przypadku kolejnej operacji wejścia danych, instrukcja ta nie zostanie wykonana. Wskaźnik w tej funkcji wykorzystywany jest podczas wprowadzania danych do kolejki, w celu wskazania danej, która weszła do niej najwcześniej. Inne fragmenty programu, nie powinny zmieniać wartości wskaźnika, gdyż funkcja ta może się wykonać nieprawidłowo. W przypadku aplikacji wymagającej ustawienia wartości Pr, dopuszczalny zakres dla tej wartości wynosi od 0 do L (0 oznacza pustą kolejkę, natomiast wartości od 1 do L oznaczają odpowiednio od QU1 do QUL). Jeżeli zakres ten zostanie przekroczony, stan wyjścia błędu wskaźnika „ERR” zostanie ustawiony na 1, a funkcja nie zostanie wykonana.
|
||
| FUN 111 D P STACK |
STOS (STACK) |
FUN 111 D P STACK |
|
l Tak jak w przypadku kolejki, stos także jest rodzajem tabeli. Charakter wskaźnika jest dokładnie taki sam jak w przypadku kolejki, tzn. Pr = 1 do L, co odnosi się odpowiednio do ST1 do STL, a Pr = 0 oznacza, że stos jest pusty. l Stos jest odwrotnością kolejki i jest instrukcją typu LIFO. Oznacza to, że wartość, która została wprowadzona do stosu jako ostatnia, opuści stos jako pierwsza. Stos składa się z L kolejnych 16- lub 32-bitowych rejestrów (instrukcja D ) rozpoczynając od ST, jak pokazano na poniższym schemacie:
l Jeżeli wejście sterujące „EN" = 1 lub zmieni się z 0 na 1 (instrukcja P), to stan wejścia „I/O” określa czy wartość IW zostanie wprowadzona do stosu (kiedy „I/O” = 1) czy też wartość w stosie, wskazana przez wartość wskaźnika Pr (czyli dane wprowadzone do stosu najpóźniej) zostanie z niego pobrana i przeniesiona do OW (kiedy „I/O” = 0). Dane wprowadzane są na zasadzie stosu, dlatego też przed wprowadzeniem danych, wartość wskaźnika Pr zostanie zwiększona o 1 w celu wskazania szczytu stosu. Dane wskazane przez wskaźnik Pr (czyli dane wprowadzone do stosu najpóźniej), które opuszczają stos zostaną przeniesione do OW, po czym wartość Pr zmniejszy się o 1. Wskaźnik Pr będzie zawsze wskazywał daną, która została wprowadzona do stosu jako ostatnia. l Jeżeli żadne dane nie weszły jeszcze do stosu lub wszystkie dane opuściły stos (Pr = 0), to stan wyjścia pustego stosu „EPT” zostanie ustawiony na 1. Wówczas, nawet w przypadku kolejnej operacji wyjścia danych, instrukcja ta nie zostanie wykonana. W przypadku, gdy większa ilość danych będzie wprowadzana, niż wyprowadzana ze stosu, to stos po pewnym czasie stanie się pełny (wskaźnik Pr wskaże pozycję STL), a stan wyjścia pełnego stosu „FUL”, zostanie ustawiony na 1. Wówczas, nawet w przypadku kolejnych operacji wprowadzania danych, funkcja nie zostanie wykonana. Wskaźnik stosu, identycznie jak wskaźnik kolejki, nie powinien być zmieniany przez inne funkcje. W przypadku aplikacji wymagającej ustawienia wartości Pr, dopuszczalny zakres dla tej wartości wynosi od 0 do L (0 oznacza pusty stos, natomiast wartości od 1 do L oznaczają odpowiednio od ST1 do STL). Jeżeli zakres ten zostanie przekroczony, stan wyjścia błędu wskaźnika „ERR” zostanie ustawiony na 1, a funkcja nie zostanie wykonana.
|
||
| FUN 112 D P BKCMP |
PORÓWNANIE BLOKOWE (BLOCK COMPARE(DRUM)) |
FUN 112 D P BKCMP |
|
l Jeżeli wejście sterujące „EN" = 1 lub zmieni się z 0 na 1 (instrukcja P), zostanie zrealizowane porównanie wartości Rs, z kolejnymi dolnymi i górnymi granicami, tworzonymi przez L kolejnych par 16- lub 32-bitowych (modyfikator D) rejestrów, rozpoczynających się od Ts (każda sąsiadująca para 2 rejestrów od T0 tworzy górną i dolną granicę). Jeżeli wartość Rs mieści się w danym zakresie, pomiędzy górną a dolną granicą, to stan odpowiedniego bitu w D zostanie ustawiony na 1, w przeciwnym wypadku, stan ten zostanie ustawiony na 0. l Kiedy M1975=0, to w sytuacji, gdy istnieje para, w której górna wartość graniczna jest mniejsza niż dolna wartość graniczna, stan wyjścia błędu „ERR” zostanie ustawiony na 1, a wynikiem porównania dla tej pary będzie stan 0. l Kiedy M1975=1, to nie istnieją powyższe ograniczenia w relacji pomiędzy górną a dolną granicą. Taki przypadek można stosować w elektronicznych przełącznikach bębnowych z obrotem 360°.
l Aktualnie, funkcja ta jest przełącznikiem bębnowym, która może być wykorzystana w procedurach obsługi przerwań sprzętowych, gdzie w połączeniu z instrukcją natychmiastowego odświeżania wejść/wyjść (IMDIO), może służyć jako precyzyjny przełącznik elektroniczny. l Program na schemacie powyżej wykorzystuje enkoder obrotowy lub inny detektor kąta obrotu (podłączony bezpośrednio do mechanizmu obrotowego), w celu stworzenia odpowiednika mechanicznego bębna (patrz mechanizm ograniczony przerywaną linia na schemacie poniżej). Poprzez regulację górnych i dolnych wartości granicznych, użytkownik może dowolnie zmieniać zakres aktywacji wyjść, dla danego kąta obrotu. Nie jest to możliwe do wykonania przy użyciu tradycyjnego mechanizmu bębnowego. Mechanizm bębnowy imitowany przez powyższy program
|
||
| FUN 113 D P SORT |
SORTOWANIE WARTOŚCI (DATA SORTING) |
FUN 113 D P SORT |
|
● Jeżeli wejście sterujące „EN" = 1 lub zmieni się z 0 na 1 (instrukcja P), funkcja posortuje wartości w rejestrach S w porządku rosnącym (jeżeli A/D = 1) lub malejącym (jeżeli A/D = 0) i zapisze wynik sortowania w rejestrach począwszy od D. ● Dopuszczalny zakres długości danych dla operacji sortowania L, wynosi od 2 do 127. W przypadku innej długości, wyjście „ERR” zostanie ustawiony na 1, a operacja sortowania nie zostanie przeprowadzona.
|
||
| FUN 114 D P Z-WR |
ZAPIS DO STREFY (ZONE WRITE) |
FUN 114 D P Z-WR |
|
● Jeżeli wejście sterujące „EN" = 1 lub zmieni się z 0 na 1 (instrukcja P), funkcja przeprowadzi operację ustalenia wartości w strefie zmiennych, zgodnie ze stanem wejścia 1/0. Wskazana strefa rejestrów lub bitów zostanie wyzerowana (gdy „1/0” = 0) lub ustawiona na 1 (gdy „1/0” = 1).
W powyższym przykładzie, gdy X0=1, rejestry R0~R9 zostaną wyzerowane.
W powyższym przykładzie, gdy X0=1, bity M5~M11 zostaną wyzerowane. |
||
Operacje na macierzach
| Nr fun | Mnemonik | Funkcjonalność | Nr fun | Mnemonik | Funkcjonalność |
| 120 | MAND | AND macierzy | 126 | MBRD | Odczytaj bit z macierzy |
| 121 | MOR | OR macierzy | 127 | MBWR | Wpisz bit do macierzy |
| 122 | MXOR | XOR macierzy | 128 | MBSHF | Przesuń bity macierzy |
| 123 | MXNR | XNOR macierzy | 129 | MBROT | Obróć bity w macierzy |
| 124 | MINV | Zaneguj macierz | 130 | MBCNT | Zlicz stany bitów w macierzy |
| 125 | MCMP | Porównaj macierze |
● Macierz składa się z dwóch lub więcej kolejnych rejestrów 16-bitowych. Liczba rejestrów w macierzy nazywa się długością macierzy (L). Jedna macierz zawiera łącznie L×16 bitów (punktów) i to właśnie bit jest podstawową jednostką dla każdej operacji.
● Funkcje macierzowe traktują bity macierzy 16×L jako zestaw kolejnych punktów (oznaczonych od M0 do M16L-1). Niezależnie od tego czy macierz składa się z rejestrów czy nie, przedmiotem operacji jest bit a nie wartością numeryczna.
● Funkcje macierzowe wykorzystywane są głównie do przetwarzania stanów dyskretnych, takich jak: wpisywanie, kopiowanie, porównywanie, wyszukiwanie, itp. pomiędzy pojedynczym stanem a macierzą lub pomiędzy macierzami. Funkcje te są wygodne w zastosowaniu dla pewnych, szczególnych rodzajów aplikacji.
● Większość funkcji macierzowych, wykorzystuje 16-bitowy rejestr wskaźnika, w celu określenia danego punktu w macierzy. Rejestr ten nazywany jest wskaźnikiem macierzy (Pr). Jego poprawnym zakresem jest 0 do 16L-1, który odnosi się odpowiednio do bitów M0 do M16L-1 w macierzy.
● Wśród operacji macierzowych, znajdują się takie operacje jak: przesuń w prawo/lewo i obróć w prawo/lewo. Przesunięcie w kierunku starszego bitu, nazywamy kierunkiem w lewo, natomiast przesunięcie w kierunku młodszego bitu, nazywamy kierunkiem w prawo (patrz schemat poniżej).
| FUN 120 P MAND |
AND MACIERZY (MATRIX AND) |
FUN 120 P MAND | ||||
|
|
||||||
| FUN 121 P MOR |
OR MACIERZY (MATRIX OR) |
FUN 121 P MOR | ||||
|
|
||||||
| FUN 122 P MXOR |
XOR MACIERZY (MATRIX EXCLUSIVE OR(XOR)) |
FUN 122 P MXOR | ||||
|
|
||||||
| FUN 123 P MXNR |
XNOR MACIERZY (MATRIX EXCLUSIVE NOR(XNR)) |
FUN 123 P MXNR | ||||
|
|
||||||
| FUN 124 P MINV |
ZANEGUJ MACIERZ (MATRIX INVERSE) |
FUN 124 P MINV | ||||
|
|
||||||
| FUN 125 P MCMP |
PORÓWNAJ MACIERZE (MATRIX COMPARE) |
FUN 125 P MCMP | ||||
|
|
||||||
| FUN 126 P MBRD |
ODCZYTAJ BIT Z MACIERZY (MATRIX BIT READ) |
FUN 126 P MBRD | ||||
|
|
||||||
| FUN 127 P MBWR |
WPISZ BIT DO MACIERZY (MATRIX BIT WRITE) |
FUN 127 P MBWR | ||||
|
||||||
| FUN 128 P MBSHF |
PRZESUŃ BITY MACIERZY (MATRIX BIT SHIFT) |
FUN 128 P MBSHF | ||||
|
|
||||||
| FUN 129 P MBROT |
OBRÓĆ BITY W MACIERZY (MATRIX BIT ROTATE) |
FUN 129 P MBROT |
|
l Jeżeli wejście sterujące „EN" = 1 lub zmieni się z 0 na 1 (instrukcja P), to macierz Ms zostanie obrócona o jeden bit w lewo (kiedy L/R = 1) lub w prawo (kiedy L/R = 0). Wolne miejsce (przy obrocie w lewo będzie to M0, a w prawo będzie to M16L-1), wypełnione zostanie stanem wyprowadzanego bitu (w przypadku obrotu w lewo - M16L-1, a w prawo - M0). Następnie, wynikowa macierz, zostanie zapisana w macierzy docelowej Md. Wyprowadzony bit wykorzystywany jest nie tylko do wypełnienia wolnego miejsca, ale jest również wystawiany na wyjściu „OTB”.
Przedstawiony program jest przykładem, gdzie macierze Ms i Md są tymi samymi macierzami. Kiedy X0 zmieni się z 0→1, macierz Ms zostanie obrócona w prawo (ponieważ L/R = 0) o 1 bit i zapisana ponownie w Ms (ponieważ w tym przykładzie macierze Ms i Md są tymi samymi macierzami). Wynik przedstawiony jest po prawej stronie na schemacie poniżej
|
||
| FUN 130 P MBCNT |
ZLICZ SATNY BITÓW W MACIERZY (MATRIX BIT STATUS COUNT) |
FUN 130 P MBCNT |
|
l Jeżeli wejście sterujące „EN" = 1 lub zmieni się z 0 na 1 (instrukcja P), to spośród 16L bitów w macierzy Ms, funkcja zliczy całkowitą ilość bitów o stanie 1 (kiedy wejście „1/0” = 1) lub o stanie 0 (kiedy wejście „1/0” = 0). Wyniki zliczenia zostanie zapisany w rejestrze określonym adresem D. W przypadku, gdy wynik zliczania będzie równy 0, stan wyjścia „D = 0” zmieni się na 1.
|
||
SZYBKIE WYJŚCIE IMPULSOWE
(HIGH SPEED PULSE OUTPUT)
(Skrócony opis funkcji)
FUN140 HSPSO
Opisy funkcji
l Program pozycjonujący NC instrukcji HSPSO (FUN140) jest programem opisywanym i edytowanym tekstowo. Pojedynczy program pozycjonujący podzielona jest na kroki (zawierające częstotliwość wyjściową, dystans i warunki wysyłania impulsów). Dla jednej funkcji FUN140, można zaprogramować maksymalnie 250 kroków pozycjonowania. Każdy krok programu pozycjonowania wymaga 9 rejestrów. Szczegóły zastosowania opisane są w rozdziale 11 „Pozycjonowanie NC w sterownikach PLC serii FBs”.
l Plusem zapisywania programu pozycjonującego w rejestrach, jest to, że w aplikacjach stosujących interfejs MMI (man machine interface), możliwa jest modyfikacja programu z poziomu MMI. Kiedy wymagana jest zmiana programu pozycjonującego, może być ona łatwo wykonana, przez wysłanie komendy wpisu wartości do ciągu rejestrów .
l Funkcja ta nie realizuje interpolacji liniowej w pozycjonowaniu NC.
l Jeżeli wejście sterujące „EN” = 1, a wartość Ps0~3 nie jest kontrolowana przez żadną inną funkcję FUN140 (stan odpowiednio: Ps0=M1992, Ps1=M1993, Ps2=M1994 i Ps3=M1995 jest WŁ), funkcja wykona kolejny krok programu pozycjonującego (po dojściu do ostatniego kroku, nastąpi ponowny restart od pierwszego kroku); Jeżeli Ps0~3 kontrolowane są inną funkcją FUN140 (stan odpowiednio: Ps0=M1992, Ps1=M1993, Ps2=M1994 i Ps3=M1995 jest WYŁ), to funkcja wstrzyma realizację programu, do chwili zwolnienia wyjścia przez inne funkcje FUN140.
l Jeżeli „EN” =0 wysyłanie impulsów zostanie natychmiast zatrzymane.
l Jeżeli „PAU”=1 a „EN”=1 wysyłanie impulsów zostanie wstrzymane. Jeżeli „PAU” =0, a „EN”=1, nastąpi kontynuacja niezakończonej operacji wysyłania impulsów.
l Jeżeli „ABT”=1, nastąpi natychmiastowe zatrzymanie wysyłania impulsu. (Kiedy następnym razem stan „EN” zmieni się na 1, program pozycjonujący będzie realizowany od pierwszego kroku.)
l Podczas wysyłania impulsów pozycjonujących, stan na wyjściu „ACT” jest WŁ.
l W przypadku błędu w realizacji instrukcji, stan na wyjściu „ERR” zmieni się na WŁ. (Kod błędu zapisywany jest w rejestrze kodów błędów).
l Po wykonaniu wszystkich kroków programu pozycjonującego, status na wyjściu „DN” zmieni się na WŁ.
*** Aby funkcja HSPSO mogła być wykorzystywana, tryb pracy wyjścia impulsowego musi zostać skonfigurowany (w przypadku braku ustawień, Y0~Y7 będą traktowane jako normalne wyjścia) na jeden z poniższych trybów.
Tryb U/D: Y0 (Y2, Y4, Y6), jako impuls w górę.
Y1 (Y3, Y5, Y7), jako impuls w dół.
Tryb PLS/DIR: Y0 (Y2, Y4, Y6), jako wyjście impulsowe.
Y1 (Y3, Y5, Y7), jako kierunek.
Tryb A/B: Y0 (Y2, Y4, Y6), jako impuls fazy A.
Y1 (Y3, Y5, Y7), jako impuls fazy B.
h Polaryzację wyjścia impulsowego można ustawić jako normalnie WŁ lub normalnie WYŁ.
h Tryb roboczy wyjścia impulsowego może być konfigurowany za pomocą programu WINPROLADDER na stronie ustawień „Output setup”.
USTAW PARAMETRY POZYCJONOWANIA NC
NC POSITIONING PARAMETER VALUE SETTING
(skrócony opis funkcji)
FUN 141 MPARAOpis funkcji
h Użycie tej funkcji w programie nie jest konieczne. W przypadku, gdy domyślne wartości parametrów są zgodne z wymaganiami użytkownika, wywołanie tej funkcji nie będzie potrzebne. Jednakże jeżeli zaistnieje potrzeba dynamicznej zmiany parametrów, zmianę taką można zrealizować za pomocą funkcji MPARA.
h Funkcja ta współgra z funkcjami FUN140 lub FUN147, przy realizacji pozycjonowania NC.
h Funkcja ta zostanie wykonana, niezależnie od tego czy wejście „EN” = 0 czy 1.
h W przypadku wystąpienia błędów w wartościach parametrów zapisanych w rejestrach SR, stan na wyjściu „ERR” zmieni się na WŁ. (Kod błędu zapisywany jest w rejestrze kodów błędów).
h Szczegółowe informacje dotyczące funkcji i jej użytkowania, znajdują się w rozdziale 11 „Pozycjonowanie NC w sterownikach PLC serii FBs”.
ZATRZYMAJ SZYBKIE WYJŚCIE IMPULSOWE
(STOP THE HSPSO PULSE OUTPUT)
(Skrócony opis funkcji)
FUN 142 P PSOFFl Jeżeli wejście sterujące „EN” =1 lub zmieni się z 0→1 (instrukc), funkcja ta, spowoduje zatrzymanie wysyłania impulsów pozycjonujących, na wyznaczonym wyjściu HSPSO (szybkim wyjściu impulsowym).
l W aplikacjach, w których poszukiwany jest mechaniczny punkt bazowania, funkcja ta może być wykorzystana do natychmiastowego zatrzymania wysyłania impulsów pozycjonujących, dzięki czemu, punkt bazowania będzie zawsze ten sam.
l Szczegółowe informacje dotyczące funkcji i jej użytkowania, znajdują się w rozdziale 11 „Pozycjonowanie NC w sterownikach PLC serii FBs”.
KONWERSJA ILOŚCI IMPULSÓW NA JEDNOSTKI MECHANICZNE
CONVERT THE CURRENT PULSE VALUE TO DISPLAY VALUE
(Skrócony opis funkcji)
FUN 143 P PSCNV
Opis funkcji
l Jeżeli wejście sterujące „EN” =1 lub zmieni się z 0→1 (instrukcja P), funkcja przekonwertuje aktualną pozycję w impulsach (PS), na odpowiadającą jej wartość w jednostkach mechanicznych (np.: mm, stopnie, cale lub PS), w celu umożliwienia wyświetlania aktualnej pozycji w tych jednostkach.
l Warunkiem uzyskania prawidłowych wyników konwersji, jest wcześniejsze wywołanie funkcji FUN141, z ustawieniem odpowiednich parametrów.
l Szczegółowe informacje dotyczące funkcji i jej użytkowania, znajdują się w rozdziale 11 „Pozycjonowanie NC w sterownikach PLC serii FBs”.
ZAŁĄCZ PRZERWANIE SPRZĘTOWE
(ENABLE CONTROL OF THE INTERRUPT AND PERIPHERAL)
FUN 145 P EN
l Jeżeli wejście sterujące „EN” = 1 lub zmieni się z 0→1 (instrukcja P), funkcja załączy przyjmowanie przerwania sprzętowego od źródła wskazanego etykietą przerwania.
l Poniżej znajduje się lista etykiet identyfikujących przerwania sprzętowe, które można załączyć tą funkcją: (Szczegóły w rozdziale 9.3)
l W wielu aplikacjach, nie jest konieczne aby przerwanie sprzętowe od danego źródła, było przyjmowane w każdej chwili. Dzięki funkcją FUN146 (DIS) i FUN145 (EN), można decydować o tym, kiedy dane przerwanie będzie przyjmowane (aktywne).
Przykład programu
WYŁĄCZ PRZERWANIE SPRZĘTOWE
(DISABLE CONTROL OF THE INTERRUPT AND PERIPHERAL)
FUN 146 P DIS
l Jeżeli wejście sterujące „EN” = 1 lub zmieni się z 0→1 (instrukcja P), funkcja wyłączy przyjmowanie przerwania sprzętowego od źródła wskazanego etykietą przerwania.
l Poniżej znajduje się lista etykiet identyfikujących przerwania sprzętowe, które można wyłączyć tą funkcją: (Szczegóły w rozdziale 9.3):
l W wielu aplikacjach, nie jest konieczne aby przerwanie sprzętowe od danego źródła, było przyjmowane w każdej chwili. Dzięki funkcją FUN146 (DIS) i FUN145 (EN), można decydować o tym, kiedy dane przerwanie będzie przyjmowane (aktywne).
Przykład programu














































































