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 |
SET (Ustaw zmienną dyskretną lub wszystkie bity rejestru na 1) | SET |
|
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 |
RESET (Resetuj zmienną dyskretną lub wszystkie bity rejestru) |
RST |
|
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
| ||
BIT SHIFT
(Przesuwa dane rejestru 16- lub 32-bitowego w lewo lub w prawo o jeden bit)
FUN 6 D P BSHFSymbol
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
UP/DOWN COUNTER
(16- lub 32-bitowy, 2-kierunkowy licznik zliczający w górę i w dół)
FUN 7 D P UDCTRSymbol
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.
MOVE (Przeniesienie danych z S do D)
FUN 8 D P MOVSymbol
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
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
TOGGLE SWITCH
(Zmienia stan wyjścia na przeciwny, przy narastającym zboczu na wejściu sterującym) FUN 10 TOGGSymbol
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
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
ODEJMOWANIE
[SUBTRACTION]
(Odejmuje dane określone w Sa i Sb, i zapisuje wynik w D)
FUN 12 D P (-)Symbol
























































