6. Funkcje podstawowe
| T | Timer | T |
|
Symbol
● Całkowita liczba timerów to 256 (T0~T255), z trzema podstawami czasu: 0,01s, 0,1s i 1s. Domyślne ilości oraz rozmieszczenie timerów o danej podstawie czasu, zostały przedstawione poniżej (zakresy te mogą być zmieniane za pomocą funkcji „Memory Allocation”, zgodnie z wymaganiami użytkownika): T0~T49:timer 0,01s(zakres czasu 0,00~327,67s)。 T50~T199:timer 0,1s (zakres czasu 0,0~3276,7s)。 T200~T255:timer 1s (zakres czasu 0~32767s)。 ● Po wprowadzeniu numeru timera, oprogramowanie narzędziowe automatycznie wyszuka odpowiadającą mu podstawę czasu, zgodnie z „Memory Allocation”. Czas timera = podstawa czasu x wartość zadana (PV). W przykładzie nr 1 poniżej, podstawa czasu timera T0 = 0,01s, a wartość zadana PV = 1000. W związku z tym, czas timera T0 = 0,01s x 1000 = 10,00s. ● Jeżeli PV jest rejestrem, to czas timera = podstawa czasu x wartość w rejestrze. W takiej sytuacji użytkownik, aby zmienić czas timera, musi jedynie zmienić wartość w rejestrze (patrz przykład 2). ※ Maksymalnym błędem timera jest stała czasowa plus czas skanu programu. W celu zmniejszenia błędu odmierzania czasu, należy użyć timera o mniejszej podstawie czasu.
Opis
● Jeżeli wejście sterujące EN = 1, timer rozpocznie odmierzanie czasu (wartość bieżąca CV będzie narastać od 0). W chwili, w której wartość bieżąca odmierzonego czasu CV zrówna się z wartością zadaną PV, stan zmiennej Tn i wyjścia TUP (FO0) zmieni się na 1. Jak długo „EN” = 1, nawet jeżeli CV osiągnie lub przekroczy wartość PV, CV timera będzie narastać (gdy M1957 = 0) do chwili aż osiągnie maksymalną wartość graniczną (32767). Przez cały czas, kiedy CV >PV, wyjście TUP oraz stan zmiennej Tn pozostanie 1. Kiedy tylko „EN” = 0, wartość bieżąca timera CV zostaje natychmiast wyzerowana – stan zmiennej Tn i wyjścia TUP także zostają wyzerowane (patrz schemat poniżej). ● Jeżeli wersja OS FBs-PLC jest wyższa niż V3.0, to marker M1957 może być ustawiony na 1, aby wartość CV nie zwiększała się po aktywacji TUP i zatrzymywała się na wartości PV. Domyślna wartość M1957 to 0. Kontrolując programowo stan markera M1957, można decydować indywidualnie dla każdego timera, o tym czy ma on kontynuować bądź zatrzymać odmierzanie czasu, w chwili gdy CV zrówna się z PV (patrz schemat poniżej).
Przykład 1 Stała wartość zadana
Przykład 2 Zmienne PV
Nastawa (PV) przedstawiona na przykładzie 1 jest stała wartością równą 1000. Wartość jest stała i nie może być zmieniona po zaprogramowaniu. W wielu przypadkach, nastawa czasu timerów wymaga zmiany podczas pracy PLC. Aby zmienić nastawę timera, użytkownik może zastosować rejestr jako argument PV (np. R lub WX, WY…), a następnie zmieniać nastawę poprzez zmianę wartosci w rejestrze. Jak pokazano na przykładzie, jeżeli R0 zostanie ustawiony na 100, to T stanie się timerem 10s. Analogicznie, jeżeli R0 = 200 to T stanie się timerem 20s.
Uwaga: Jeżeli wartość zadana timera jest równa 0, to stan zmiennej timera i wyjścia TUP zmieni się na 1 (stan wejścia „EN” musi być 1) niezwłocznie po zakończeniu pierwszego skanu przez PLC, ponieważ warunek doliczenia do czasu zadanego będzie spełniony. Stan TUP pozostanie 1, do momentu aż stan wejścia „EN” zmieni się na 0 |
||
| C |
LICZNIK (16-Bit: C0~C199,32-Bit: C200~C255) |
C |
|
Symbol
● Całkowita liczba 16-bitowych liczników to 200 (C0~C199). Zakresem ich wartości zadanej (CV) jest: 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). Zakresem ich wartości zadanej (CV) jest: 0~2147483647. Liczniki C200~C239 są to liczniki podtrzymywane, natomiast C240~C255 są licznikami niepodtrzymywanymi. ● Powyższe to domyślne ustawienie podtrzymywalności adresów liczników. W razie konieczności zmiany ustawień, użytkownik może użyć funkcji „Memory Allocation”. ● Aby zapewnić prawidłowe zliczanie, czas wystąpienia stanu na wejściu PLS, powinien być dłuższy niż 1 czas skanu programu. ● Maksymalna częstotliwość zliczania realizowanego za pomocą tej funkcji wynosi do 20Hz. Dla zliczania sygnałów o większych częstotliwościach, zastosuj szybkie liczniki sprzętowe/software’owe. Opis
● Jeżeli wejście „CLR” = 1, wszystkie stany: zmiennej Cn, wyjścia CUP i wartości bieżącej CV licznika, zostaną wyzerowane, a licznik przestanie zliczać. ● Jeżeli wejście „CLR” = 0, to licznik będzie mógł zliczać. Licznik zliczy w górę (doda 1 do CV) za każdym razem kiedy stan na jego wejściu PLS zmieni się z 0 na 1. W chwili gdy wartość bieżąca licznika (CV) zrówna się lub będzie większa od jego wartości zadanej (PV), stan zmiennej Cn i wyjścia CUP zmieni się na 1. Nawet w przypadku, gdy bieżąca naliczona wartość jest równa lub większa niż wartość zadana, to wartość CV będzie narastać do momentu osiągnięcia granicy zakresu (32767 lub 2147483647). Stan zmiennej Cn i wyjścia CUP zostaną wyzerowane w chwili gdy wartość CV<PV, lub w chwili wyzerowania licznika wejściem „CLR” = 1. (patrz schemat poniżej). ● Jeżeli wersja OS FBs-PLC jest wyższa niż V3.0 (włącznie), to M1973 można ustawić na 1, aby wartość CV nie narastała po aktywacji wyjścia CUP i zatrzymała się na wartości PV. Domyślna wartość M1973 to 0. Kontrolując programowo stan markera M1973, można decydować indywidualnie dla każdego licznika, o tym, czy ma on kontynuować bądź zatrzymać zliczanie, w chwili gdy CV zrówna się z PV (patrz schemat poniżej).
Przykład 1 Licznik 16-bitowy o stałej wartości zadanej
Przykład 2 32-bitowy licznik ze zmienną nastawą
Tak jak w przypadku timerów, jeżeli PV licznika zostanie zmieniona na rejestr (np. R, D, itp.), to licznik przyjmie wartość w rejestrze jako PV. Jedyne co użytkownik musi zrobić, aby zmienić wartość PV licznika podczas pracy PLC, to zmienić wartość w rejestrze. Poniżej przedstawiono przykład 32-bitowego licznika wykorzystującego rejestr danych R0 jako wartość PV (w istocie jest to 32-bitowa wartość PV tworzona przez R1 i R0)
Uwaga: Jeżeli wartość zadana licznika jest równa 0 oraz stan na wejściu „CLR” = 0, to stan zmiennej Cn i wyjścia CUP zmieni się na 1 niezwłocznie po zakończeniu pierwszego skanu przez PLC, ponieważ warunek równości bądź większości wartości bieżącej w stosunku do zadanej, będzie spełniony. Stan 1 pozostanie niezmieniony, niezależnie od zmian wartości CV do momentu, aż stan na wejściu „CLR” zmieni się na 1. |
||
| SET D P | SET (Ustaw zmienną dyskretną lub wszystkie bity rejestru na 1) | SET D P |
|
Symbol
Opis
● Jeżeli wejście sterujące „EN" =1 lub zmieni się z 0 → 1 ( instrukcja P), funkcja ustawi zmienną dyskretną (przykład 1) lub wszystkie bity rejestru (przykłady 2 i 3) na 1.
Przykład 1 Ustawienie pojedynczej zmiennej dyskretnej
Przykład 2 Ustaw 16-bitowy rejestr
Przykład 3 Ustaw 32-bitowy rejestr
|
||
| RST D P |
RESET (Resetuj zmienną dyskretną lub wszystkie bity rejestru) |
RST D P |
|
Symbol
Opis
● Jeżeli wejście sterujące „EN" =1 lub zmieni się z 0 → 1 (instrukcja P), funkcja zresetuje zmienną dyskretną (przykład 1) lub wszystkie bity rejestru (przykłady 2 i 3) na stan 0.
Przykład 1 Resetowanie pojedynczej zmiennej dyskretnej
Przykład 1 Patrz przykład nr 1, zastosowania funkcji SET
Przykład 2 Resetuj 16-bitowy rejestr
Przykład 3 Resetuj 32-bitowy rejestr
|
||
|
FUN 0 MC |
POCZĄTEK PĘTLI KONTROLI MASTER [MASTER CONTROL LOOP START] |
FUN 0 MC |
|
Symbol
Opis
● Istnieje 128 pętli MC (N=0~127). Każdej funkcji Master Control Start, MC N, musi odpowiadać funkcja Master Control End, MCE N, posiadająca ten sam numerem pętli co MC N. Funkcje te muszą być stosowane zawsze w parach i MCE N musi występować zawsze po MC N. ● Jeżeli wejście funkcji Master Control Start „EN” = 1, to funkcja MC N nie zostanie wykonana, tak jakby w ogóle nie istniała w programie. ● Jeżeli wejście funkcji Master Control Start „EN” = 0, to pętla sterowania Master jest aktywna. Obszar pomiędzy MC N i MCE N nazywa się aktywnym obszarem pętli sterowania Master. Wszystkie stany cewek wyjściowych lub timerów, znajdujących się wewnątrz aktywnej pętli sterowania Master, zostaną wyzerowane. Pozostałe funkcje, znajdujące się wewnątrz tej pętli, nie zostaną wykonane. Przykład
Uwaga 1: Funkcje MC/MCE mogą być użyte jako zagnieżdżone lub przeplatane, tak jak pokazano po prawej. Uwaga 2: •Jeżeli M1918=0, a stan wejścia master zmieni się z 0→1, i jeżeli w pętli sterowania master istnieją funkcje reagujące na zbocza, to funkcje te mają szansę być wykonane tylko jeden raz (kiedy pierwszy raz stan wejścia sterującego master zmieni się z 0→1). Po tym, niezależnie od tego ile razy stan wejścia sterującego master zmieni się z 0→1, funkcje reagujące na zbocza nie będą wykonywane ponownie •Jeżeli w pętli sterowania master znajdują się funkcje liczników, ustawienie M1918 na 0 pozwoli na uniknięcie błędów zliczania •W przypadku, gdy funkcje reagujące na zbocza, muszą działać w chwili zmian wejścia sterującego pętli master z 0→1, stan markera M1918 powinien być ustawiony na 1 |
||
| FUN 1 MCE |
KONIEC PĘTLI KONTROLI MASTER [MASTER CONTROL LOOP END] |
FUN 1 MCE |
|
Symbol
Opis
● Każda funkcja MCE N musi odpowiadać danej funkcji Master Control Start. Muszą być one stosowane w parach i użytkownik powinien zawsze upewnić się, że instrukcja MCE N wprowadzona jest po instrukcji MC N. Po wykonaniu funkcji MC N, stany wszystkich cewek wyjściowych i timerów zostaną wyzerowane i żadne inne funkcje nie będą wykonywane. Realizacja programu będzie kontynuowana, po napotkaniu funkcji MCE o takim samym numerze N co MC N.
● Funkcja MCE nie wymaga wejścia sterującego, ponieważ sama funkcja tworzy linię programu, z którą inne funkcje nie mogą się połączyć. Po wykonaniu funkcji MC, sterowanie master zostanie zakończone po osiągnięciu przez program funkcji MCE. W przypadku, gdy funkcja MC N nie była wykonana, to funkcja MCE nie robi niczego.
Opis ● Patrz przykład i opis funkcji MC.
|
||
| FUN 2 SKP |
POMIŃ - START [SKIP START] |
FUN 2 SKP |
|
Symbol
Opis
● Istnieje 128 pętli SKP (N=0~127). Każdej funkcji pomiń start, SKP N, musi odpowiadać funkcja pomiń koniec, SKPE N, o tym samym numerze pętli N. Muszą być one stosowane w parach i użytkownik powinien zawsze upewnić się, że funkcja SKPE N występuje po funkcji SKP N.
● Jeżeli „EN” = 0, to funkcja pomiń nie zostanie zrealizowana.
● Jeżeli „EN” = 1, to zakres programu pomiędzy SKP N i SKPE N, nazywany też aktywnym obszarem pominięcia, zostanie pominięty, czyli wszystkie funkcje wewnątrz tego obszaru nie zostaną wykonane. W związku z tym, stany sygnałów dyskretnych i rejestrów w tym obszarze będą utrzymane.
Przykład
|
||
| FUN 3 SKPE |
POMIŃ - KONIEC [SKIP END] |
FUN 3 SKPE |
|
Symbol
Opis
● Każda funkcja SKPE N musi odpowiadać danej funkcji SKP N. Muszą być one stosowane w parach i użytkownik powinien zawsze upewnić się, że funkcja SKPE N występuje po funkcji SKP N.
● Funkcja SKPE nie wymaga wejścia sterującego, ponieważ sama funkcja tworzy linię, z którą inne funkcje nie mogą się połączyć. Po wykonaniu funkcji SKP N, operacja pominięcia zostaje wykonana do momentu, gdy program napotka funkcję SKPE N. W przypadku, gdy funkcja SKP N nie była wykonana, to funkcja SKPE nie robi niczego.
Przykład
Patrz przykład i opis funkcji SKP N.
Uwaga : Funkcje SKP/SKPE mogą być wykorzystane jako zagnieżdżone lub przeplatane. Zasady kodowania są identyczne jak w przypadku funkcji MC/MCE. Patrz rozdział opisujący funkcje MC/MCE. |
||
| FUN 4 DIFU |
STAN NARASTAJĄCY [DIFFERENTIAL UP] |
FUN 4 DIFU |
|
Symbol
Opis
● Funkcja DIFU wykorzystywana jest do wykrycia narastającego zbocza w węźle (wejściu sterującym „TGU"). Sygnał impulsowy, wywołany narastającą zmianą stanu wejścia „TGU", na czas jednego skanu programu, zapisywany jest w zmiennej dyskretnej wskazanej w D.
● Funkcjonalność tej instrukcji można także osiągnąć przy użyciu styku TU.
Przykład
|
||
| FUN 5 P DIFD |
STAN OPADAJĄCY [DIFFERENTIAL DOWN] |
FUN 5 P DIFD |
|
Symbol
Opis ● Funkcja DIFD wykorzystywana jest do wykrycia opadającego zbocza w węźle (wejściu sterującym „TGD"). Sygnał impulsowy, wywołany opadającą zmianą stanu wejścia „TGD", na czas jednego skanu programu, zapisywany jest w zmiennej dyskretnej wskazanej w D. ● Funkcjonalność tej instrukcji można także osiągnąć za pomocą styku TD. Przykład Wyniki działania dwóch poniższych przykładów są identyczne
|
||
| FUN 6 D P BSHF |
BIT SHIFT (Przesuwa dane rejestru 16- lub 32-bitowego w lewo lub w prawo o jeden bit) |
FUN 6 D P BSHF |
|
Symbol
Opis
● Jeżeli wejście „CLR” = 1, to dane rejestru D i wyjście OTB zostaną wyzerowane. Pozostałe sygnały wejściowe będą aktywne.
● Jeżeli „CLR” = 0, to operacja przesunięcia jest możliwa. Jeżeli wejście sterujące „EN" = 1 lub zmieni się z 0 →1 ( instrukcja P), to dane w rejestrze zostaną przesunięte w prawo (L/R=0) lub w lewo (L/R=1) o jeden bit. Bit przesunięty na zewnątrz (MSB przy przesunięciu w lewo i LSB przy przesunięciu w prawo) będzie wyprowadzony na stan wyjścia OTB. Wolne miejsce po przesuniętym bicie (LSB przy przesunięciu w lewo i MSB przy przesunięciu w prawo) zostanie wypełnione stanem na wejściu „INB”.
Przykład Przesunięcie danych w 16-bitowym rejestrze
|
||
| FUN 7 D P UDCTR |
UP/DOWN COUNTER (16- lub 32-bitowy, 2-kierunkowy licznik zliczający w górę i w dół) |
FUN 7 D P UDCTR |
|
Symbol Opis ● Jeżeli wejście „CLR” = 1, to wartość bieżąca (CV) licznika zostanie wyzerowana, a licznik nie będzie mógł zliczać. ● Jeżeli wejście „CLR” = 0, to zliczanie będzie możliwe. Cechą funkcji jest wykonywanie przy stanie narastającym (instrukcja P). Dlatego też, jeżeli stan na wejściu „PLS” zmieni się z 0→1 (zbocze narastające), to wartość CV zostanie zwiększona o 1 (jeżeli wejście U/D=1) lub zmniejszona o 1 (jeżeli wejście U/D=0). ● Jeżeli CV=PV, to stan wyjścia CUP („doliczono”) zmieni się na 1. W przypadku większej ilości sygnałów na wejściu zliczającym, licznik będzie kontynuował zliczanie, co będzie skutkował tym, że CV≠PV. Spowoduje to, że stan wyjścia CUP zmieni się na 0. Oznacza to, że stan wyjścia „doliczono” będzie równy 1, tylko wtedy, gdy CV=PV. W innym przypadku będzie równy 0 (należy zwrócić uwagę na różnicę działania wyjściu CUP w tej funkcji i w zwyczajnym liczniku). ● Górna granica wartości przy zliczaniu w górę to 32767 (dla wartości 16-bitowej) lub 2147483647 (dla wartości 32-bitowej). Jeżeli zostanie osiągnięta górna granica, to w przypadku odbioru kolejnego sygnału zliczania w górę, wartość zliczania zmieni się na –32768 lub -2147483648 (dolna granica zliczania w dół). ● Dolna granica wartości przy zliczaniu w dół wynosi -32768 (dla wartości 16-bitowej) lub -2147483648 (dla wartości 32-bitowej). Jeżeli zostanie osiągnięta dolna granica, to w przypadku odbioru kolejnego sygnału zliczania w dół, wartość zliczania zmieni się na 32767 lub 2147483647 (górna granica zliczania w górę). ● Jeżeli wejście U/D będzie na sztywno ustawione na stan 1, to funkcja stanie się jednokierunkowym licznikiem zliczającym w górę. Jeżeli wejście U/D będzie na sztywno ustawione na stan 0, to funkcja stanie się jednokierunkowym licznikiem zliczającym w dół.
Uwaga 1: Ponieważ operacja zliczania licznika UDCTR jest zaimplementowana jako skanowanie softwarowe, w przypadku gdy częstotliwość impulsów zliczanych jest większa od częstotliwości wykonywania skanów , może dochodzić do gubienia impulsów (generalnie, częstotliwość zliczanych impulsów nie powinna przekroczyć 20Hz, w zależności od wielkości programu). W takich przypadkach należy stosować szybkie liczniki sprzętowe. Uwaga 2: Aby zapewnić prawidłowe zliczanie, czas występowania stanu wejścia zliczanego powinien być dłuższy niż 1 skan programu. |
||
| FUN 8 D P MOV |
MOVE (Przeniesienie danych z S do D) |
FUN 8 D P MOV |
|
Symbol
Opis
● Przenieś (zapisz) wartość z S, do rejestru określonego przez D, gdy „EN" =1 lub zmieni się z 0 na 1 ( instrukcja P).
Przykład
|
||
| FUN 9 D P MOV/ |
MOVE INVERSE (Negacja bitów S i przeniesienie wyniku do D) |
FUN 9 D P MOV/ |
|
Symbol
Opis
● Zaneguj bity S (zmień stany z 0 na 1 i z 1 na 0) i przenieś wyniki do rejestru określonego przez D, jeżeli „EN" =1 lub zmieni się z 0 na1 ( instrukcja P).
Przykład Przeniesienie zanegowanych danych 16-bitowego rejestru do innego 16-bitowego rejestru
|
||
| FUN 10 TOGG |
TOGGLE SWITCH (Zmienia stan wyjścia na przeciwny, przy narastającym zboczu na wejściu sterującym) |
FUN 10 TOGG |
|
Symbol Opis
● Zmienna dyskretna D, zmienia swój stan na przeciwny (z 1 na 0 i z 0 na 1), przy każdej zmianie stanu na wejściu „TGU" z 0 na 1 (zboczu narastającym).
Przykład
|
||
| FUN 11 D P (+) |
DODAWANIE [ADDITION] (Sumuje dane określone w Sa i Sb, i zapisuje wynik w D) |
FUN 11 D P (+) |
|
Symbol
Opis
Funkcja sumuje dane określone w Sa i Sb i zapisuje wynik w rejestrze określonym przez D, w momencie gdy „EN" =1 lub zmieni się z 0 na 1 ( instrukcja P). Jeżeli wynik sumowania jest równy 0, wyjście D=0 ustawiane jest na 1. Jeżeli wystąpi operacja przeniesienia (wynik przekroczy 32767 lub 2147483647), wyjście CY ustawione zostaje na 1. Jeżeli wystąpi operacja pożyczania (dodawanie ujemnych wartości i suma mniejsza od -32768 lub -2147483648), wyjście BR ustawione zostaje na 1. Stany wszystkich wyjść funkcji są zachowane do momentu, aż funkcja zostanie ponownie wykonana i pojawi się nowy wynik.
Przykład Dodawanie 16-bitowe
|
||
| FUN 12 D P (-) |
ODEJMOWANIE [SUBTRACTION] (Odejmuje dane określone w Sa i Sb, i zapisuje wynik w D) |
FUN 12 D P (-) |
|
Symbol
Opis
● Funkcja odejmuje dane określone w Sa i Sb i zapisuje wynik w rejestrze określonym przez D, w momencie, gdy „EN" =1 lub zmieni się z 0 na 1 ( instrukcja P). Jeżeli wynikiem różnicy jest 0, wyjście D=0 ustawiane jest na 1. Jeżeli wystąpi operacja przeniesienia (odejmowanie ujemnej wartości od dodatniej i wynik przekroczy 32767 lub 2147483647), wyjście CY ustawiane jest na 1. Jeżeli wystąpi operacja pożyczania (odejmowanie dodatniego numeru od ujemnego i różnica mniejsza od -32768 lub -2147483648), wyjście BR ustawiane jest na 1. Stany wszystkich wyjść funkcji są zachowane do momentu, aż funkcja ta zostanie ponownie wykoana i pojawi się nowy wynik.
Przykład Dodawanie 16-bitowe
|
||
| FUN 13 D P (*) |
MNOŻENIE [MULTIPLICATION] (Mnoży dane określone w Sa i Sb, i zapisuje wynik w D) |
FUN 13 D P (*) |
|
Symbol
Opis
● Funkcja mnoży dane określone w Sa i Sb, i zapisuje wynik w rejestrze określonym przez D, w momencie, gdy „EN" =1 lub zmieni się z 0 na 1 ( instrukcja P ). Jeżeli wynikiem mnożenia jest 0, wyjscie D=0 ustawiane jest na 1. Jeżeli wynikiem jest wartość ujemna, wyjście D<0 ustawiane jest na 1. Przykład 1 Mnożenie 16-bitowe
Przykład 2 Mnożenie 32-bitowe
|
||
| FUN 14 D P (/) |
Dzielenie [DIVISION] (Dzieli dane określone w Sa i Sb, i zapisuje wynik w D) |
FUN 14 D P (/) |
|
Symbol
Opis
● Funkcja dzieli dane określone w Sa i Sb, i zapisuje wynik ilorazu całkowitego oraz resztę z dzielenia w rejestrach określonych w D, w momencie, gdy „EN" =1 lub zmieni się z 0 na 1 ( instrukcja P). Jeżeli wynikiem ilorazu jest 0, wyjście D=0 ustawiane jest na 1. Jeżeli dzielnik Sb=0, to wyjście ERR zostanie ustawione na 1 a funkcja nie zostanie wykonana. Przykład 1 Dzielenie 16-bitowe
Przykład 2 Dzielenie 32-bitowe
|
||
|
FUN 15 D P (+ 1) |
INKREMENTUJ [INCREMENT] (Dodaje 1 do wartości D) |
FUN 15 D P (+ 1) |
|
Opis
● Funkcja dodaje 1 do rejestru D jeżeli „EN" =1 lub zmieni się z 0 na 1 ( instrukcja P). W przypadku, gdy wartość D stanowi górną dodatnią granicę 32767 lub 2147483647, dodanie 1 do tej wartości zmieni ją na dolną graniczną ujemną wartość -32768 lub -2147483648. W takiej sytuacji wyjście przekroczenia wartości (OVF) zostanie ustawione na 1. Przykład Zwiększanie wartości rejestru 16-bitowego
|
||
| FUN 16 D P (- 1) |
DEKREMENTUJ [DECREMENT] (Odejmuje 1 od wartości D) |
FUN 16 D P (- 1) |
|
Opis
● Funkcja odejmuje 1 od rejestru D jeżeli „EN" =1 lub zmieni się z 0 na 1 ( instrukcja P). W przypadku, gdy wartość D stanowi dolną ujemną granicę -32768 lub -2147483648, odjęcie 1 od tej wartości zmieni ją na górną graniczną dodatnią wartość 32767 lub 2147483647. W takiej sytuacji wyjście zbyt małej wartości (UDF) zostanie ustawione na 1. Przykład Zmniejszanie wartości rejestru 16-bitowego
|
||
| FUN 17 D P CMP |
KOMPARATOR [COMPARE] (Porównuje dane Sa i Sb, i przesyła wynik na wyjścia funkcji) |
FUN 17 D P CMP |
|
Opis
● Funkcja porównuje wartości Sa i Sb „EN" =1 lub zmieni się z 0 na 1 ( instrukcja P). W przypadku, gdy wartość Sa jest taka sama jak Sb, wyjście a=b jest ustawiane na 1. Jeżeli Sa>Sb, wyjście a>b jest ustawiane na 1. Jeżeli Sa<Sb, wyjście a<b jest ustawiane na 1. Przykład Porównanie danych w 16-bitowych rejestrach
● W powyższym przykładzie założono, że wartość w R0 wynosi 1, a w R1 wynosi 2, a następnie porównano te wartości za pomocą funkcji CMP. Wyjścia a=b i a>b są ustawione na 0, natomiast wyjście a<b jest ustawione na 1, gdyż Sa<Sb. ● Aby uzyskać złożone wyniki, takie jak ≥, ≤, < > itp., należy najpierw wysłać wyniki =, < i > na stany markerów, a następnie połączyć ich stany warunkiem logicznym. ● Jeżeli M1919=0 a funkcja ta nie zostanie wywołana, to stany wyjść a=b, a>b, a<b pozostaną zachowane, takie jakie były po poprzednik wywołaniu funkcji. ● Jeżeli M1919=1 a funkcja ta nie zostanie wywołana, to stany wyjść a=b, a>b, a<b zostaną wyzerowane. ● Kontroluj odpowiednio marker M1919 w celu osiągnięcia pożądanej podtrzymywalności stanów wyjść funkcji. |
||
| FUN 18 D P AND | LOGICZNE I [LOGICAL AND] | FUN 18 D P AND |
|
Opis
● Funkcja wykonuje operację logicznego I (ang. AND) na danych Sa i Sb jeżeli „EN" =1 lub zmieni się z 0 na 1 ( instrukcja P). Operacja ta porównuje odpowiadające sobie bity w Sa i Sb (B0~B15 lub B0~B31). Bit w rejestrze D jest ustawiany na 1, jeżeli stany odpowiadających mu bitów w Sa i Sb mają wartość 1. Bit w rejestrze D jest ustawiany na 0, jeżeli stan któregokolwiek z odpowiadających mu bitów w Sa lub Sb ma wartość 0. Przykład Operacja logicznego I na danych 16-bitowych
|
||
| FUN 19 D P OR | LOGICZNE LUB [LOGICAL OR] | FUN 19 D P OR |
|
Opis
● Funkcja wykonuje operację logicznego LUB (ang. OR) na danych Sa i Sb jeżeli „EN" =1 lub zmieni się z 0 na 1 ( instrukcja P). Operacja ta porównuje odpowiadające sobie bity w Sa i Sb (B0~B15 lub B0~B31). Bit w rejestrze D jest ustawiany na 1, jeżeli stan któregokolwiek z odpowiadających mu bitów w Sa i Sb ma wartość 1. Bit w rejestrze D jest ustawiany na 0, jeżeli stany obydwu odpowiadających mu bitów w Sa i Sb mają wartości 0.
Przykład Operacja logicznego LUB na danych 16-bitowych
|
||

















































































