T TIMER T Symbol Odmierzono czas (FO) Tn: Numer timera PV: Wartość zadana timera TB: Podstawa czasu (.s,.s, s) WX WY WM WS TMR CTR HR IR OR SR ROR DR K WX WX4 WY WY4 WM WM896 WS T T55 C C55 R R384 R393 R394 R3967 R467 R5 R87 D D495 Tn PV 3767 Całkowita liczba timerów to 56 (T~T55), z trzema podstawami czasu:,s,,s i s. 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): T~T49:timer,s(zakres czasu,~37,67s) T5~T99:timer,s (zakres czasu,~376,7s) T~T55:timer s (zakres czasu ~3767s) 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 poniżej, podstawa czasu timera T =,s, a wartość zadana PV =. W związku z tym, czas timera T =,s x =,s. 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 ). 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. Jeżeli wejście sterujące =, timer rozpocznie odmierzanie czasu (wartość bieżąca CV będzie narastać od ). 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 (FO) zmieni się na. Jak długo =, nawet jeżeli CV osiągnie lub przekroczy wartość PV, CV timera będzie narastać (gdy M957 = ) do chwili aż osiągnie maksymalną wartość graniczną (3767). Przez cały czas, kiedy CV >PV, wyjście TUP oraz stan zmiennej Tn pozostanie. Kiedy tylko =, 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., to marker M957 może być ustawiony na, aby wartość CV nie zwiększała się po aktywacji TUP i zatrzymywała się na wartości PV. Domyślna wartość M957 to. Kontrolując programowo stan markera M957, 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). 6-
T TIMER T Przykład Stała wartość zadana Schemat drabinkowy Operacje na klawiszach Kod mnemoniczny X.S T TUP Y ORG X T PV: X P SET M957.S T TUP FO OUT Y ORG SHORT SET M 957 Przykład pobrania sygnału odmierzono czas bezpośrednio z TUP. ORG X T PV: M957= (Domyślnie) Y or X T (CV) T.S.s 37.67S 37.67s 3767 M957= T (CV) T CV Time Początek Start odmierzania Doliczenie Time-Up do war. zadanej Przykład Zmienne PV Nastawa (PV) przedstawiona na przykładzie jest stała wartością równą. 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 argu PV (np. R lub WX, WY ), a następnie zmieniać nastawę poprzez zmianę wartosci w rejestrze. Jak pokazano na przykładzie, jeżeli R zostanie ustawiony na, to T stanie się timerem s. Analogicznie, jeżeli R = to T stanie się timerem s. 6-3
T TIMER T Schemat drabinkowy Operacje na klawiszach Kod mnemoniczny X T5.S T5 R TUP Y ORG X T 5 PV: R ORG T 5 Przykład wychwycenia stanu odmierzono czas przy użyciu styku T5. OUT Y X T5 (wartość (current bieżąca) value) Jeżeli When R= Y.S.s Jeżeli When R= Y.S.s Time Początek Start Doliczenie Time-Up do Doliczenie Time-Up do odmierzania war. zadanej war. zadanej Uwaga: Jeżeli wartość zadana timera jest równa, to stan zmiennej timera i wyjścia TUP zmieni się na (stan wejścia musi być ) niezwłocznie po zakończeniu pierwszego skanu przez PLC, ponieważ warunek doliczenia do czasu zadanego będzie spełniony. Stan TUP pozostanie, do mou aż stan wejścia zmieni się na. 6-4
C Symbol LICZNIK (6-Bit: C~C99,3-Bit: C~C55) Funkcje podstawowe C Operand Wejście zliczane Doliczono (FO) Cn: Numer licznika PV: Wartość zadana Wejście zerowania WX WY WM WS TMR CTR HR IR OR SR ROR DR K WX WX4 WY WY4 WM WM896 WS T T55 C C55 R R384 R393 R394 R3967 R467 R5 R87 D D495 47483647 Cn PV Całkowita liczba 6-bitowych liczników to (C~C99). em ich wartości zadanej (CV) jest: ~3767. Liczniki C~C39 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 3-bitowych liczników to 56 (C~C55). em ich wartości zadanej (CV) jest: ~47483647. Liczniki C~C39 są to liczniki podtrzymywane, natomiast C4~C55 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ż czas skanu programu. Maksymalna częstotliwość zliczania realizowanego za pomocą tej funkcji wynosi do Hz. Dla zliczania sygnałów o większych częstotliwościach, zastosuj szybkie liczniki sprzętowe/software owe. Jeżeli wejście CLR =, 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 =, to licznik będzie mógł zliczać. Licznik zliczy w górę (doda do CV) za każdym razem kiedy stan na jego wejściu PLS zmieni się z na. 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. Nawet w przypadku, gdy bieżąca naliczona wartość jest równa lub większa niż wartość zadana, to wartość CV będzie narastać do mou osiągnięcia granicy zakresu (3767 lub 47483647). Stan zmiennej Cn i wyjścia CUP zostaną wyzerowane w chwili gdy wartość CV<PV, lub w chwili wyzerowania licznika wejściem CLR =. (patrz schemat poniżej). Jeżeli wersja OS FBs-PLC jest wyższa niż V3. (włącznie), to M973 można ustawić na, aby wartość CV nie narastała po aktywacji wyjścia CUP i zatrzymała się na wartości PV. Domyślna wartość M973 to. Kontrolując programowo stan markera M973, 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). 6-5
C LICZNIK (6-bitowy: C~C99, 3-bitowy: C~C55) C Przykład Licznik 6-bitowy o stałej wartości zadanej Schemat drabinkowy Operacje na klawiszach Kod mnemoniczny ORG SHORT X X PSU CLR RST C PV : M973 5 CUP Y RST M 973 ORG X LD X C PV: 5 SET M973 X X PSU CLR C PV : 5 CUP FO OUT Y ORG SHORT SET M 973 Przykład pobrania stanu doliczono przy bezpośrednim użyciu CUP. ORG X LD X C PV: 5 X X 3766 3767 M973= (Domyślnie) M973= C Y C (CV) C 3 5 razy times 3 4 4 6 5 3767 times razy 5 Count Początek Start zliczania Zliczaj Count-Up w górę Przykład 3-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 3-bitowego licznika wykorzystującego rejestr danych R jako wartość PV (w istocie jest to 3-bitowa wartość PV tworzona przez R i R) 6-6
C LICZNIK (6-bitowy: C~C99, 3-bitowy: C~C55) Funkcje podstawowe C Schemat drabinkowy Operacje na klawiszach Kod mnemoniczny X X CLR C C PV : R CUP Y ORG X LD X C PV: R Przykład wychwycenia stanu doliczono za pomocą styku C. ORG C OUT Y X X (R=) When Jeżeli R=4 C Y 44 times razy 3 4 5 6 7 8 9 3 4 When Jeżeli R=9 Y 9 times 9 razy Count Początek Start zliczania Zlicz Count-Up w górę Zlicz Count-Up w górę Uwaga: Jeżeli wartość zadana licznika jest równa oraz stan na wejściu CLR =, to stan zmiennej Cn i wyjścia CUP zmieni się na 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 pozostanie niezmieniony, niezależnie od zmian wartości CV do mou, aż stan na wejściu CLR zmieni się na. 6-7
SET D P Symbol SET (Ustaw zmienną dyskretną lub wszystkie bity rejestru na ) SET D P D: ele do ustawienia (adres zmiennej dyskretnej lub rejestru) Y M SM S WY WM WS TMR CTR HR OR SR ROR DR Y Y55 M M9 M9 M S S999 WY WY4 WM WM896 WS T T55 C C55 R R394 R3967 R467 R5 R87 D * * * D D495 Jeżeli wejście sterujące " = lub zmieni się z ( instrukcja P), funkcja ustawi zmienną dyskretną (przykład ) lub wszystkie bity rejestru (przykłady i 3) na. Przykład Ustawienie pojedynczej zmiennej dyskretnej X X P SET Y P RST Y ORG SET ORG RST P P X Y X Y X SET X RST Y 6-8`
SET D P Przykład SET (Ustaw zmienną dyskretną lub wszystkie bity rejestru na ) Ustaw 6-bitowy rejestr Funkcje podstawowe SET D P X P SET R ORG SET P X R B5 B D R X= B5 B D R Przykład 3 Ustaw 3-bitowy rejestr X D ORG SET R SET D X R B3 R R B D R X= D R 6-9
RST D P Symbol RESET (Resetuj zmienną dyskretną lub wszystkie bity rejestru) RST D P D: Ele do ustawienia (adres zmiennej dyskretnej lub rejestru) Y M SM S WY WM WS TMR CTR HR OR SR ROR DR Y Y55 M M9 M9 M S S999 WY WY4 WM WM896 WS T T55 C C55 R R394 R3967 R467 R5 R87 D * * * D D495 Jeżeli wejście sterujące " = lub zmieni się z (instrukcja P ), funkcja zresetuje zmienną dyskretną (przykład ) lub wszystkie bity rejestru (przykłady i 3) na stan. Przykład Resetowanie pojedynczej zmiennej dyskretnej Przykład Patrz przykład nr, zastosowania funkcji SET, na stronie 6-8. Przykład Resetuj 6-bitowy rejestr ORG X RST P R 6-`
RST D P RESET (Resetuj zmienną dyskretną lub wszystkie bity rejestru) Funkcje podstawowe RST D P B5 B D R X= B5 B D R Przykład 3 Resetuj 3-bitowy rejestr X D RST WM368 ORG X RST D WM368 M399 WM384 WM368 M368 D WM368 X= D WM368 6-
FUN MC Symbol POCZĄTEK PĘTLI KONTROLI MASTER [MASTER CONTROL LOOP START] FUN MC N: Numer pętli sterowania Master (N=~7) N może być użyte tylko raz. Istnieje 8 pętli MC (N=~7). 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 =, 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 =, 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 X X. MC Y ORG FUN N: X X S T ORG OUT X Y T X. MCE Y Y ORG T PV: ORG OUT X T Y FUN N: ORG OUT X Y 6-`
FUN MC POCZĄTEK PĘTLI KONTROLI MASTER [MASTER CONTROL LOOP START] FUN MC X X X T Y Y S Y Uwaga: Funkcje MC/MCE mogą być użyte jako zagnieżdżone lub przeplatane, tak jak pokazano po prawej: X MC. MC Uwaga: Jeżeli M98=, a stan wejścia master zmieni się z, 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 ). Po tym, niezależnie od tego ile razy stan wejścia sterującego master zmieni się z, funkcje reagujące na zbocza nie będą wykonywane ponownie. Jeżeli M98=, a stan wejścia master zmieni się z, i jeżeli w pętli sterowania master istnieją funkcje reagujące na zbocza, to za każdym razem, gdy stan pętli sterowania master zmieni się z, funkcje reagujące na zbocza w pętli sterowania master będą realizowane przez cały czas, gdy tylko spełnione zostaną odpowiednie warunki ich wywołania. Jeżeli w pętli sterowania master znajdują się funkcje liczników, ustawienie M98 na 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, stan markera M98 powinien być ustawiony na. X X MC MC MC MC MC. MC. MC 3. MC. MC. MC 3 6-3
FUN MCE KONIEC PĘTLI KONTROLI MASTER [MASTER CONTROL LOOP D] FUN MCE Symbol N: Numer pętli sterowania Master (N=~7) N może być użyte tylko raz. 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. Patrz przykład i opis fnkcji MC. 6-4
FUN SKP Symbol POMIŃ - START [SKIP START] FUN SKP N: Numer pętli skip (N=~7), N może być wykorzystany tylko raz. Istnieje 8 pętli SKP (N=~7). 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 =, to funkcja pomiń nie zostanie zrealizowana. Jeżeli =, 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 X X. SKP Y ORG FUN N: X X T S T Y ORG OUT ORG X Y X 3. SKPE T PV: X Y ORG T OUT Y FUN 3 N: ORG X OUT Y 6-5
FUN SKP POMIŃ START [SKIP START] FUN SKP X X X T Y Y S Y 6-6
FUN 3 SKPE POMIŃ - KONIEC [SKIP D] FUN 3 SKPE Symbol N:Numer pętli skip (N=~7), N może być wykorzystany tylko raz. 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 mou, 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. 6-7
FUN 4 DIFU Symbol STAN NARASTAJĄCY [DIFFERTIAL UP] FUN 4 DIFU Status wejściowy D: adres zmiennej dyskretnej, w której przechowywany jest wynik operacji wykrycia zbocza narastającego Y M SM S Y Y55 M M9 M9 M S S999 D * 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 Wyniki działania dwóch poniższych przykładów są identyczne Przykład X TGU 4P. DIFU Y ORG FUN X 4 D: Y Przykład X Y ORG TU X OUT Y X t T: t Czas : scan skanu time Y 6-8
FUN 5 P DIFD Symbol STAN OPADAJĄCY [DIFFERTIAL DOWN] FUN 5 P DIFD N: adres zmiennej dyskretnej, w której przechowywany je`st wynik operacji wykrycia zbocza opadającego Y M SM S Y Y55 M M9 M9 M S S999 D * 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 Przykład X TGD 5P. DIFD Y ORG X FUN 5 D: Y Przykład X Y ORG TD X OUT Y X t t : t czas : scan skanu time Y 6-9
FUN 6 D P BSHF Symbol BIT SHIFT (Przesuwa dane rejestru 6- lub 3-bitowego w lewo lub w prawo o jeden bit) FUN 6 D P BSHF Bit wychodzący D: Adres rejestru do przesunięcia danych Wprowadzany bit Kierunek przesunięcia Wyczyść WY WM WS TMR CTR HR OR SR ROR DR WY WY4 WM WM896 WS T T55 C C55 R R394 R3967 R467 R5 R87 D D495 D * * Jeżeli wejście CLR =, to dane rejestru D i wyjście OTB zostaną wyzerowane. Pozostałe sygnały wejściowe będą aktywne. Jeżeli CLR =, to operacja przesunięcia jest możliwa. Jeżeli wejście sterujące " = lub zmieni się z ( instrukcja P), to dane w rejestrze zostaną przesunięte w prawo (L/R=) lub w lewo (L/R=) 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 6-bitowym rejestrze ORG X X X INB 6P.BSHF D : R 3 OTB Y LD X LD X 3 LD X 4 X3 X4 L/R CLR FUN 6P D: R 3 FO OUT Y X3= (w lewo) X3= (w prawo) B5 B Y Przesunięcie danych 6-bit. w lewo o bit X B5 B X Przesunięcie danych 6-bit. w prawo o bit Y 6-
FUN 7 D P UDCTR UP/DOWN COUNTER (6- lub 3-bitowy, -kierunkowy licznik zliczający w górę i w dół) FUN 7 D P UDCTR Symbol Wejście zliczane Kierunek zliczania Gora/Dół Doliczono (FO) CV: Wartość bieżąca licznika PV: Wartość zadana licznika Zeruj licznik WX WY WM WS TMR CTR HR IR OR SR ROR DR K WX WX4 WY WY4 WM WM896 WS T T55 C C55 R R384 R393 R394 R3967 R467 R5 R87 CV * * D D495 6/3-bit +/ liczba PV Jeżeli wejście CLR =, to wartość bieżąca (CV) licznika zostanie wyzerowana, a licznik nie będzie mógł zliczać. Jeżeli wejście CLR =, 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 (zbocze narastające), to wartość CV zostanie zwiększona o (jeżeli wejście U/D=) lub zmniejszona o (jeżeli wejście U/D=). Jeżeli CV=PV, to stan wyjścia CUP ( doliczono ) zmieni się na. 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. Oznacza to, że stan wyjścia doliczono będzie równy, tylko wtedy, gdy CV=PV. W innym przypadku będzie równy (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 3767 (dla wartości 6-bitowej) lub 47483647 (dla wartości 3-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 3768 lub -47483648 (dolna granica zliczania w dół). Dolna granica wartości przy zliczaniu w dół wynosi -3768 (dla wartości 6-bitowej) lub -47483648 (dla wartości 3-bitowej). Jeżeli zostanie osiągnięta dolna granica, to w przypadku odbioru kolejnego sygnału zliczania w dół, wartość zliczania zmieni się na 3767 lub 47483647 (górna granica zliczania w górę). Jeżeli wejście U/D będzie na sztywno ustawione na stan, to funkcja stanie się jednokierunkowym licznikiem zliczającym w górę. Jeżeli wejście U/D będzie na sztywno ustawione na stan, to funkcja stanie się jednokierunkowym licznikiem zliczającym w dół. 6-
FUN 7 D P UDCTR UP/DOWN COUNTER (6- lub 3-bitowy, -kierunkowy licznik zliczający w górę i w dół) FUN 7 D P UDCTR X8 X7 X6 PSU U/D CLR 7P.UDCTR CV : PV : R - 3 CUP Y ORG X 8 LD X 7 LD X 6 FUN 7 CV: R PV: 3 FO OUT Y W górę Up(add) (dodawanie) W Down(subtract) dół (odejmowanie) X6 X7 X8 R 3 - - -3-4 Y Uwaga : Ponieważ operacja zliczania licznika UDCTR jest zaimpleowana 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ć Hz, w zależności od wielkości programu). W takich przypadkach należy stosować szybkie liczniki sprzętowe. Uwaga : Aby zapewnić prawidłowe zliczanie, czas występowania stanu wejścia zliczanego powinien być dłuższy niż skan programu. 6-
FUN 8 D P MOV MOVE (Przeniesienie danych z S do D) FUN 8 D P MOV S: Ares rejestru źródłowego lub wartość stała D: Adres rejestru docelowego S, N, D mogą łączyć się z V, Z, P~P9 w celu zastosowania adresowania pośredniego WX WY WM WS TMR CTR HR IR OR SR ROR DR K XR WX WX4 WY WY4 WM WM896 WS T T55 C C55 R R384 R393 R394 R3967 R467 R5 R87 D D495 6/3-bit +/ liczba S D * * V Z P~P9 Przenieś (zapisz) wartość z S, do rejestru określonego przez D, gdy " = lub zmieni się z na ( instrukcja P). Przykład Zapis wartości stałej do rejestru 6-bitowego. X 8P.MOV S : D : R ORG X FUN 8P S: D: R S K X= D R 6-3
FUN 9 D P MOV/ Symbol MOVE INVERSE (Negacja bitów S i przeniesienie wyniku do D) FUN 9 D P MOV/ S: Ares rejestru źródłowego lub wartość stała D: Adres rejestru docelowego S, N, D mogą łączyć się z V, Z, P~P9 w celu zastosowania adresowania pośredniego WX WY WM WS TMR CTR HR IR OR SR ROR DR K XR WX WX4 WY WY4 WM WM896 WS T T55 C C55 R R384 R3847 R394 R3967 R467 R5 R87 D D495 6/3-bit +/ liczba S D * * V Z P~P9 Zaneguj bity S (zmień stany z na i z na ) i przenieś wyniki do rejestru określonego przez D, jeżeli " = lub zmieni się z na ( instrukcja P). Przykład Przeniesienie zanegowanych danych 6-bitowego rejestru do innego 6-bitowego rejestru. X 9.MOV/ S : R D : WY 8 ORG X FUN 9 S: R D: WY 8 B5 S R 5555H B X= Y3 Y8 D WY8 AAAAH 6-4
FUN TOGG Symbol TOGGLE SWITCH (Zmienia stan wyjścia na przeciwny, przy narastającym zboczu na wejściu sterującym) FUN TOGG D: adres zmiennej dyskretnej Y M SM S Y Y55 M M9 M9 M S S999 D * Zmienna dyskretna D, zmienia swój stan na przeciwny (z na i z na ), przy każdej zmianie stanu na wejściu TGU" z na (zboczu narastającym). Przykład X TGU P. TOGG Y ORG X FUN D: Y X Y 6-5
FUN D P (+) Symbol DODAWANIE [ADDITION] (Sumuje dane określone w Sa i Sb, i zapisuje wynik w D) FUN D P (+) Bez znaku / Ze znakiem Suma=/(FO) Przenieś(FO) Pożycz(FO) Sa: Składnik a Sb: Składnik b D : Adres rejestru do zapisywania wyniku sumowania Sa, Sb, D mogą łączyć się z V, Z, P~P9 w celu zastosowania adresowania pośredniego WX WY WM WS TMR CTR HR IR OR SR ROR DR K XR WX WX4 WY WY4 WM WM896 WS T T55 C C55 R R384 R393 R394 R3967 R467 R5 R87 D D495 +/ liczba 6/3-bit Sa Sb D * * V Z P~P9 Funkcja sumuje dane określone w Sa i Sb i zapisuje wynik w rejestrze określonym przez D, w momencie gdy " = lub zmieni się z na ( instrukcja P ). Jeżeli wynik sumowania jest równy, wyjście D= ustawiane jest na. Jeżeli wystąpi operacja przeniesienia (wynik przekroczy 3767 lub 47483647), wyjście CY ustawione zostaje na. Jeżeli wystąpi operacja pożyczania (dodawanie ujemnych wartości i suma mniejsza od -3768 lub -47483648), wyjście BR ustawione zostaje na. Stany wszystkich wyjść funkcji są zachowane do mou, aż funkcja zostanie ponownie wykonana i pojawi się nowy wynik. Przykład Dodawanie 6-bitowe X U/S P.(+) Sa : R Sb : R D : R D= CY Y ORG X FUN P Sa: R Sb: R BR D: R FO OUT Y Sa R 345 Sb R 45 R+R=377 X= D R 3768+=377 Y= (przeniesienie reprezentuje +3768) 6-6
FUN D P (❸) Symbol ODEJMOWANIE [SUBTRACTION] (Odejmuje dane określone w Sa i Sb, i zapisuje wynik w D) Funkcje podstawowe FUN D P (❸) Bez znaku / Ze znakiem Sa: Odjemna Sb: Odjemnik D : Adres rejestru do zapisywania wyniku różnicy Sa, Sb, D mogą łączyć się z V, Z, P~P9 w celu w celu zastosowania adresowania pośredniego WX WY WM WS TMR CTR HR IR OR SR ROR DR K XR WX WX4 WY WY4 WM WM896 WS T T55 Różnica=/(FO) Przenieś(FO) Pożycz(FO) C C55 R R384 R393 R394 R3967 R467 R5 R87 D D495 +/ liczba 6/3-bit Sa Sb D * * V Z P~P9 Funkcja odejmuje dane określone w Sa i Sb i zapisuje wynik w rejestrze określonym przez D, w momencie, gdy " = lub zmieni się z na ( instrukcja P ). Jeżeli wynikiem różnicy jest, wyjście D= ustawiane jest na. Jeżeli wystąpi operacja przeniesienia (odejmowanie ujemnej wartości od dodatniej i wynik przekroczy 3767 lub 47483647), wyjście CY ustawiane jest na. Jeżeli wystąpi operacja pożyczania (odejmowanie dodatniego numeru od ujemnego i różnica mniejsza od -3768 lub -47483648), wyjście BR ustawiane jest na. Stany wszystkich wyjść funkcji są zachowane do mou, aż funkcja ta zostanie ponownie wykoana i pojawi się nowy wynik. Przykład Dodawanie 6-bitowe ORG X X P.(-) U/S Sa : Sb : D : R R R D= CY BR Y FUN Sa: R Sb: R D: R FO OUT Y Sa R -5 Sb R 3767 R-R=-377 X= D R -4-3768-4=-377 Y=(pożyczenie reprezentuje -3768)Patrz rozdział 5.5 6-7
FUN 3 D P (*) Symbol MNOŻIE [MULTIPLICATION] (Mnoży dane określone w Sa i Sb, i zapisuje wynik w D) FUN 3 D P (*) Bez znaku / Ze znakiem Iloczyn=(FO) Iloczyn jest ujemny (FO) Sa: Mnożna Sb: Mnożnik D : Adres rejestru do zapisywania wyniku iloczynu. Sa, Sb, D mogą łączyć się z V, Z, P~P9 w celu zastosowania adresowania pośredniego WX WY WM WS TMR CTR HR IR OR SR ROR DR K XR WX WX4 WY WY4 WM WM896 WS T T55 C C55 R R384 R393 R394 R3967 R467 R5 R87 D D495 +/ liczba 6/3-bit Sa Sb D * * V Z P~P9 Funkcja mnoży dane określone w Sa i Sb, i zapisuje wynik w rejestrze określonym przez D, w momencie, gdy " = lub zmieni się z na ( instrukcja P ). Jeżeli wynikiem mnożenia jest, wyjscie D= ustawiane jest na. Jeżeli wynikiem jest wartość ujemna, wyjście D< ustawiane jest na. Przykład Mnożenie 6-bitowe ORG X X U/S 3P.(*) Sa : R Sb : R D : R D= D< FUN 3P Sa: R Sb: R D: R Sa Sb R 345 R 4567 Mnożna Mnożnik D R3 5637965 R Iloczyn 6-8
FUN 3 D P (*) Przykład Mnożenie 3-bitowe MNOŻIE [MULTIPLICATION] (Mnoży dane określone w Sa i Sb, i zapisuje wynik w D) Funkcje podstawowe FUN 3 D P (*) ORG X X U/S 3D.(*) Sa : R Sb : R D : R 4 D= D< FUN 3D Sa: R Sb: R D: R 4 Sa R 345678 R Mnożna Sb R3 R Mnożnik D R7 R6 R5 R4 5696968 Iloczyn 6-9
FUN 4 D P (/) Symbol Dzielenie [DIVISION] (Dzieli dane określone w Sa i Sb, i zapisuje wynik w D) FUN 4 D P (/) Bez znaku / Ze znakiem Iloraz=(FO) Dzielnik = (FO) Sa: Dzielna Sb: Dzielnik D : Adres rejestru do zapisywania wyniku ilorazu. Sa, Sb, D mogą łączyć się z V, Z, P~P9 w celu zastosowania adresowania pośredniego WX WY WM WS TMR CTR HR IR OR SR ROR DR K XR WX WX4 WY WY4 WM WM896 WS T T55 C C55 R R384 R394 R393 R3967 R467 R5 R87 D D495 +/ liczba 6/3-bit Sa Sb D * * V Z P~P9 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 " = lub zmieni się z na ( instrukcja P ). Jeżeli wynikiem ilorazu jest, wyjście D= ustawiane jest na. Jeżeli dzielnik Sb=, to wyjście ERR zostanie ustawione na a funkcja nie zostanie wykonana. Przykład Dzielenie 6-bitowe X U/S 4P.(/) Sa: R Sb: R D : R D= ERR ORG X FUN 4 Sa: R Sb: R D: R Sa Sb R 56 R Dzielna Dzielnik D R3 R 4 Reszta Iloraz 6-3
FUN 4 D P (/) Przykład Dzielenie 3-bitowe Dzielenie [DIVISION] (Dzieli dane określone w Sa i Sb, i zapisuje wynik w D) Funkcje podstawowe FUN 4 D P (/) X 4D.(/) Sa: R Sb: R D= ORG X FUN 4D Sa: R U/S D : R 4 ERR Sb: R D: R 4 Sa R 47483647 R Dzielna Sb R3 34567 R Dzielnik D R7 R6 R5 R4 57634 739 Reszta Iloraz 6-3
FUN 5 D P (+) INKREMTUJ [INCREMT] (Dodaje do wartości D) FUN 5 D P (+) OVF - Przekroczenie zakresu(fo) D : Adres rejestru do zwiększenia D może się łączyć z V, Z, P~P9 w celu zastosowania adresowania pośredniego WY WM WS TMR CTR HR OR SR ROR DR XR WY WY4 WM WM896 WS T T55 C C55 R R394 R3967 R467 R5 R87 D D495 V Z P ~ P 9 D * * Funkcja dodaje do rejestru D jeżeli " = lub zmieni się z na ( instrukcja P). W przypadku, gdy wartość D stanowi górną dodatnią granicę 3767 lub 47483647, dodanie do tej wartości zmieni ją na dolną graniczną ujemną wartość -3768 lub -47483648. W takiej sytuacji wyjście przekroczenia wartości (OVF) zostanie ustawione na. Przykład Zwiększanie wartości rejestru 6-bitowego ORG TU X X 5P. (+) R V OVF FUN 5 D : R V Jeżeli V=,+= D R X= D R 6-3
FUN 6 D P (-) DEKREMTUJ [DECREMT] (Odejmuje od wartości D) Funkcje podstawowe FUN 6 D P (-) - UDF -Zbyt mała wartość(fo) D : Adres rejestru do zmniejszenia D może się łączyć z V, Z, P~P9 w celu zastosowania adresowania pośredniego WY WM WS TMR CTR HR OR SR ROR DR XR WY WY4 WM WM896 WS T T55 C C55 R R394 R3967 R467 R5 R87 D D495 V Z P ~ P 9 D * * Funkcja odejmuje od rejestru D jeżeli " = lub zmieni się z na ( instrukcja P). W przypadku, gdy wartość D stanowi dolną ujemną granicę -3768 lub -47483648, odjęcie od tej wartości zmieni ją na górną graniczną dodatnią wartość 3767 lub 47483647. W takiej sytuacji wyjście zbyt małej wartości (UDF) zostanie ustawione na. Przykład Zmniejszanie wartości rejestru 6-bitowego X 6P. (-) R UDF ORG X FUN 6P D : R D R X= D R - 6-33
FUN 7 D P CMP KOMPARATOR [COMPARE] (Porównuje dane Sa i Sb, i przesyła wynik na wyjścia funkcji) FUN 7 D P CMP Bez znaku / Ze znakiem Sa: Adres rejestru lub war. stała do porównania Sb: Adres rejestru lub war. stała do porównania Sa, Sb mogą się łączyć z V, Z, P~P9 w celu zastosowania adresowania pośredniego WX WY WM WS TMR CTR HR IR OR SR ROR DR K XR WX WX4 WY WY4 WM WM896 WS T T55 C C55 R R384 R393 R394 R3967 R467 R5 R87 D D495 +/- liczba 6/3 bit Sa Sb V Z P~P9 Funkcja porównuje wartości Sa i Sb " = lub zmieni się z na ( instrukcja P). W przypadku, gdy wartość Sa jest taka sama jak Sb, wyjście a=b jest ustawiane na. Jeżeli Sa>Sb, wyjście a>b jest ustawiane na. Jeżeli Sa<Sb, wyjście a<b jest ustawiane na. Przykład Porównanie danych w 6-bitowych rejestrach X 7.CMP ORG X U/S Sa : Sb : R R a=b a>b Y FUN 7 Sa : R Sb : R a<b FO OUT Y W powyższym przykładzie założono, że wartość w R wynosi, a w R wynosi, a następnie porównano te wartości za pomocą funkcji CMP. Wyjścia a=b i a>b są ustawione na, natomiast wyjście a<b jest ustawione na, 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 M99= 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 M99= a funkcja ta nie zostanie wywołana, to stany wyjść a=b, a>b, a<b zostaną wyzerowane. Kontroluj odpowiednio marker M99 w celu osiągnięcia pożądanej podtrzymywalności stanów wyjść funkcji. 6-34
FUN 8 D P AND LOGICZNE I [LOGICAL AND] FUN 8 D P AND Operation control Ladder symbol 8DP.AND Sa : Sb : D : D= Wynik Result = is (FO) (FO) Operand Sa: Rejestr do zastosowania operacji AND Sb: Rejestr do zastosowania operacji AND D : Rejestr do zapisu wyniku operacji AND Sa, Sb, D mogą łączyć się z V, Z, P~P9 w celu zastosowania adresowania pośredniego WX WY WM WS TMR CTR HR IR OR SR ROR DR K XR WX WX4 WY WY4 WM WM896 WS T T55 C C55 R R384 R393 R394 R3967 R467 R5 R87 D D495 +/- liczba 6/3 bit Sa Sb D * * V Z P~P9 Funkcja wykonuje operację logicznego I (ang. AND) na danych Sa i Sb jeżeli " = lub zmieni się z na ( instrukcja P). Operacja ta porównuje odpowiadające sobie bity w Sa i Sb (B~B5 lub B~B3). Bit w rejestrze D jest ustawiany na, jeżeli stany odpowiadających mu bitów w Sa i Sb mają wartość. Bit w rejestrze D jest ustawiany na, jeżeli stan któregokolwiek z odpowiadających mu bitów w Sa lub Sb ma wartość. Przykład Operacja logicznego I na danych 6-bitowych ORG X X 8P.AND Sa : R Sb : R D= FUN 8P Sa : R D : R Sb : R D : R B5 B Sa R Sb R X= B5 B D R 6-35
FUN 9 D P OR LOGICZNE LUB [LOGICAL OR] FUN 9 D P OR D= Wynik = (FO) Sa: Rejestr do zastosowania operacji OR Sb: Rejestr do zastosowania operacji OR D : Rejestr do zapisu wyniku operacji OR Sa, Sb, D mogą łączyć się z V, Z, P~P9 w celu zastosowania adresowania pośredniego WX WY WM WS TMR CTR HR IR OR SR ROR DR K XR WX WX4 WY WY4 WM WM896 WS T T55 C C55 R R384 R393 R394 R3967 R467 R5 R87 D D495 +/- liczba 6/3 bit Sa Sb D * * V Z P~P9 Funkcja wykonuje operację logicznego LUB (ang. OR) na danych Sa i Sb jeżeli " = lub zmieni się z na ( instrukcja P). Operacja ta porównuje odpowiadające sobie bity w Sa i Sb (B~B5 lub B~B3). Bit w rejestrze D jest ustawiany na, jeżeli stan któregokolwiek z odpowiadających mu bitów w Sa i Sb ma wartość. Bit w rejestrze D jest ustawiany na, jeżeli stany obydwu odpowiadających mu bitów w Sa i Sb mają wartości. Przykład Operacja logicznego LUB na danych 6-bitowych X 9.OR Sa : Sb : R R D= ORG X FUN 9 Sa : R D : R Sb : R D : R B5 B Sa R Sb R X= B5 B D R 6-36
FUN D P BCD KONWERSJA KODU BIN NA KOD BCD [BIN TO BCD CONVERSION] (Konwertuje kod BIN wartości określonej w S na kod BCD i zapisuje wynik w D) FUN D P BCD ERR Błąd (FO) S : Adres rejestru lub war. stała do konwersji D : Adres rejestru do zapisu wyniku konwersji (w kodzie BCD) S, D mogą się łączyć z V, Z, P~P9 w celu zastosowania adresowania pośredniego WX WY WM WS TMR CTR HR IR OR SR ROR DR K XR WX WX4 WY WY4 WM WM896 WS T T55 C C55 R R384 R393 R394 R3967 R467 R5 R87 D D495 +/- liczba 6/3 bit S D * * V Z P~P9 FBs-PLC wykorzystuje kod binarny do przechowywania i wykonywania obliczeń. Jeżeli użytkownik zechce wysłać wewnętrzne dane PLC do zewnętrznych wyświetlaczy (np.: 7-segowych), to powinien w tym celu przekonwertować dane z kodu BIN na kod BCD. Na przykład, łatwiej jest zinterpretować odczyt w kodzie BCD, niż odczyt w kodzie binarnym. Funkcja konwertuje dane w kodzie BIN zawarte w S, na dane w kodzie BCD i zapisuje wynik w D jeżeli, " = lub zmieni się z na ( instrukcja P ). Jeżeli wartość w S jest spoza zakresu możliwego do przedstawienia w kodzie BCD (~9999 lub ~9999999), to wyjście błędu zostanie ustawiony na a w rejestrze D przywrócona zostanie poprzednia wartość. Przykład Konwersja danych 6-bitowych z kodu BIN na BCD X. BCD S : 9999 D : R ERR ORG X FUN S : 9999 D : R B5 B S K X= B5 B D R 6-37
FUN D P BIN KONWERSJA KODU BCD NA KOD BIN [BCD TO BIN CONVERSION] (Konwertuje kod BCD wartości określonej w S na kod BIN i zapisuje wynik w D) FUN D P BIN ERR Błąd (FO) S : Adres rejestru do konwersji D : Adres rejestru do zapisu wyniku konwersji (w kodzie BIN) S, D mogą się łączyć z V, Z, P~P9 w celu zastosowania adresowania pośredniego me nt WX WY WM WS TMR CTR HR IR OR SR ROR DR XR WX WX4 WY WY4 WM WM896 WS T T55 C C55 R R384 R393 R394 R3967 R467 R5 R87 D D495 S D * * V Z P~P9 Wartości zapisane pierwotnie w kodzie BCD i przesyłane z zewnętrznego urządzenia, takiego jak przełącznik cyfrowy, muszą być najpierw przekonwertowane na kod binarny (BIN), w celu zaakceptowania przez PLC. PLC nie może operować na danych zapisanych w kodzie BCD. Funkcja konwertuje wartość zapisaną w kodzie BCD rejestru wskazanego w S, na wartość zapisaną w kodzie BIN i zapisuje wynik w D, jeżeli " = lub zmieni się z na ( instrukcja P ). Jeżeli wartość w S nie jest wartością z zakresu kodu BCD, to wyjście błędu ERR zostanie ustawiony na a w rejestrze D przywrócona zostanie poprzednia wartość. Stała jest konwertowana na kod BIN automatycznie przy zapisie w programie i nie może być wykorzystana jako argu źródłowy tej funkcji. Przykład Konwersja danych 6-bitowych z kodu BCD na BIN X P. BIN S : WX D : R ERR ORG X FUN P S : WX D : R X5 X 3 4 S WX X= B5 B D R 6-38