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 DP | SET (Ustaw zmienną dyskretną lub wszystkie bity rejestru na 1) | SET DP |
|
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
| ||
RESET
(Resetuj zmienną dyskretną lub wszystkie bity rejestru) RST DPSymbol
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 MCSymbol
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 M1918=1, 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 za każdym razem, gdy stan pętli sterowania master zmieni się z 0→1, 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 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
KONIEC PĘTLI KONTROLI MASTER
[MASTER CONTROL LOOP END]
FUN 1 MCESymbol
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.
POMIŃ - START
[SKIP START]
FUN 2 SKPSymbol
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
POMIŃ - KONIEC
[SKIP END]
FUN 3 SKPESymbol
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.
STAN NARASTAJĄCY [DIFFERENTIAL UP]
FUN 4 DIFUSymbol
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
STAN OPADAJĄCY [DIFFERENTIAL DOWN]
FUN 5 P DIFDSymbol



































