7
| FUN 22 P BREAK | PĘTLA BREAK FROM FOR iNEXT(BREAK) | FUN22 P BREAK |
|
● Jeżeli „EN”=1 lub zmieni się z 0→1(instrukcja P), nastąpi zakończenie pętli programu FOR iNEXT ● Program w pętli FOR-NEXT jest wykonywany N-krotnie (wartość N określana jest argumentem instrukcji FOR). W razie potrzeby zakończenia pętli w cyklu wcześniejszym niż N-ty, należy zastosować instrukcję BREAK ● Instrukcja BREAK musi znajdować się wewnątrz pętli FOR-NEXT
Opis: Operacja zliczania pętli wykorzystywana do realizowania pętli programu FOR-NEXT wyznaczana jest przez rejestr D10. Program w pętli FOR-NEXT, przeznaczony jest do wyszukiwania identycznych danych zapisanych w D100, jak dane w tabeli rejestrów rozpoczynającej się od R0. W przypadku znalezienia takich danych, pętla wyszukiwania zostanie zakończona, a wykonywanie programu będzie kontynuowane za instrukcją NEXT. Jeżeli dane nie zostaną znalezione, pętla zostanie zrealizowana N-krotnie (wartość N zapisana jest w D10) i dopiero wówczas, wykonywanie programu będzie kontynuowane za instrukcją NEXT |
||
| FUN 23 P DIV48 | DZIELENIE 48-BITOWE | FUN 23 P DIV48 |
|
Opis l Jeżeli “EN”=1 lub zmieni się z 0→1 (instrukcja P), to nastąpi 48-bitowa operacja dzielenia. Dzielna i dzielnik tworzone są przez trzy kolejne rejestry, poczynając odpowiednio od Sa i Sb. Jeżeli wynikiem będzie zero, to wyjście 'D=0' zostanie ustawione na 1. Jeżeli dzielnik będzie zerem, to 'ERR' zostanie ustawiony na 1, a wynikowy rejestr pozostanie niezmieniony. l Wszystkie argumenty związane z tą funkcją są 48-bitowe, dlatego też Sa, Sb i D składają się z 3 kolejnych rejestrów. Przykład: dzielenie 48-bitowe
W przykładzie tym, dzielna tworzona przez rejestry R2, R1, R0 zostanie podzielona przez dzielnik tworzony przez rejestry R5, R4, R3. Iloraz zostanie zapisany w rejestrze R8, R7 i R6
|
||
| FUN 24 DP SUM |
SUM (Sumowanie danych ) |
FUN 24 DP SUM |
|
Opis
l Jeżeli “EN”=1 lub zmieni się z 0→1 (instrukcja P), to nastąpi dodanie kolejnych N jednostek rejestrów 16-bitowych lub 32-bitowych (instrukcja P) i zapisanie wyników w rejestrze opisanym literą D. l Jeżeli wartość N jest równa 0 lub jest większa od 511, to operacja nie zostanie przeprowadzona. l Port komunikacyjny 1~4 może być wykorzystywany jako interfejs komunikacyjny ASCII ogólnego zastosowania. Jeżeli metodą wykrywania błędów danych jest suma kontrolna, to instrukcja ta może być wykorzystana do wygenerowania sumy dla wysyłanych danych lub do sprawdzenia, czy otrzymane dane są błędne.
Przykład 1 Kiedy M1 zmieni stan zWYŁ→WŁ, instrukcja wykona obliczenie sumydanych 16-bitowych
Przykład 2 Kiedy M1 jest w stanieWŁ, następuje sumowanie danych 32-bitowych.
|
||
| FUN 25 DP MEAN |
ŚREDNIA (Obliczenie średniej) |
FUN 25 DP MEAN |
|
Opis
l Jeżeli “EN”=1 lub zmieni się z 0→1 (instrukcja P), to nastąpi dodanie kolejnych N wartości numerycznych 16-bitowych lub 32-bitowych (instrukcja P) rozpoczynających się od S i podzielenie ich przez wartość N. Następnie, wartość średnia (zaokrąglona) zostanie zapisana w rejestrze opisanym literą D. l Jeżeli wartosć N nie mieści się w zakresie od 2 do 256, stan błędu zakresu N "ERR" zostanie ustawiony na 1. W takim przypadku funkcja nie zostanie zrealizowana.
|
||
| FUN 26 DP SQRT | Pierwiastek kwadratowy | FUN 26 DP SQRT |
|
l Jeżeli “EN”=1 lub zmieni się z 0→1 (instrukcja P), to nastąpi obliczenie pierwiastka kwadratowego(z zaokrągleniem) z danych wymienionych w polu oznaczonym S i zapisanie wyniku w rejestrze D. l Ponieważ wartość S pochodzi z zawartości rejestru, to jeżeli będzie ona ujemna, stan błędu zakresu S "ERR" zostanie ustawiony na 1. W takim przypadku operacja nie zostanie zrealizowana.
|
||
| FUN 27 DP NEG |
NEGACJA (obliczenie wartości ujemnej) |
FUN 27 DP NEG |
|
Opis l Jeżeli “EN”=1 lub zmieni się z 0→1 (instrukcja P), to nastąpi zanegowanie (tzn. zostanie obliczona negacja z uzupełnieniem do dwóch) wartości w rejestrze oznaczonym literą D i ponowne zapisanie wyniku w tym rejestrze. l Jeżeli wartość rejestru D będzie ujemna, to operacja negacji sprawi, że wartość ta stanie się dodatnia.
|
||
| FUN 28 DP ABS |
WARTOŚĆ BEZWZGLĘDNA (obliczenie wartości bezwzględnej) |
FUN 28 DP ABS |
|
Opis l Jeżeli “EN”=1 lub zmieni się z 0→1 (instrukcja P), to nastąpi obliczenie wartości bezwzględnej zwartości rejestru oznaczonego literą D i ponowne zapisanie wyniku w tym rejestrze. |
||
| FUN 29 DP EXT | ROZSZERZENIE ZNAKOWE | FUN 29 DP EXT |
|
Opis l Jeżeli “EN”=1 lub zmieni się z 0→1 (instrukcja P), to instrukcja ta zrealizuje rozszerzenie znakowe wartości 16-bitowej oznaczonej literą D do wartości 32-bitowej i zapisze nową wartość w rejestrze 32-bitowym składającym się z dwóch kolejnych słów, D + 1 i D. l Instrukcja ta rozszerza wartość numeryczną rejestru 16-bitowego do odpowiedniej wartości numerycznej rejestru 32-bitowego (na przykład przekształca 33FFH na 000033FFH). Instrukcja wykorzystywana jest głównie w operacjach numerycznych (+,-,*,/,CMP......), w których można przyjąć 16 i 32-bitowe wartości numeryczne jako argumenty. Przed rozpoczęciem operacji, wszystkie argumenty powinny zostać ustawione na taką samą długość.
|
||
| FUN 30 PID |
OPERACJA PID OGÓLNEGO ZASTOSOWANIA (Krótki opis) |
FUN 30 PID |
|
Opis
l Funkcja PID (FUN 30) przeprowadza obliczenia oparte na wzorze PID na podstawie aktualnej wartości zmiennej procesowej (PV) wyznaczonej z zewnętrznego sygnału analogowego oraz nastaw (SP) procesu. Wynikiem obliczeń jest wyjściowy sygnał sterujący dla sterowanego procesu, który może zostać podany bezpośrednio do modułu analogowego lub innego interfejsu wyjściowego lub też pozostawiony do realizacji kolejnego procesu. Prawidłowe wykorzystanie sterowania PID w procesie umożliwia otrzymanie szybkiego i dokładnego wyniku PV podążającego za zmianą SP oraz uodparnia proces na zakłócenia. l Wzór PID w formie cyfrowej: Mn = [(D4005/Pb) x En] + + Bias Mn : Wyjście sterujące w czasie ”n” D4005 : Stała wzmocnienia; wartością domyślną jest 1000. Można ją ustawić w zakresie 1~5000. Pb : Pasmo proporcjonalne ( zakres : 2~5000, jednostka 0.1%. Kc (wzmocnienie) =1000/ Pb ) Ti : Całkująca stała czasowa ( zakres : 0~9999 odpowiada 0.00~99.99 powtórzeniom/minutę ) Td : Różniczkująca stała czasowa ( zakres : 0~9999 odpowiada 0.00~99.99 minutom ) PVn : Wartość procesowa w czasie ”n” PVn-1 : Wartość procesowa w czasie ”n-1” En :Błąd w czasie ”n” =nastawa ( SP) -wartość procesowa w czasie ”n” (PVn) Ts : Przedział czasowy obliczeń PID ( zakres: 1~3000, jednostka : 0.01 s ) Bias : Offset wyjścia sterującego ( zakres: 0~16380 ) |
||
| FUN 31 P CRC16 |
OBLICZANIE CRC16(CRC16) |
FUN 31 P CRC16 |
|
Opis
● Jeżeli “EN”=1 lub zmieni się z 0→1 (instrukcja P), to instrukcja rozpocznie obliczanie CRC16 od młodszego bajtuS przez długość N. Wynik obliczeń zostanie zapisany w rejestrze D i D+1. ● Wskaźnik wyjściowy "D=0" będzie włączony jeżeli wynik obliczeń będzie równy 0. ● W przypadku nieprawidłowej długości, instrukcja nie przeprowadzi obliczeń i włączy się błąd na wyjściu "ERR". ● Przy komunikacji z inteligentnym urządzeniem peryferyjnym w binarnym formacie danych, bardzo często wykorzystywana jest funkcja CRC16. Metoda ta wykorzystywana jest przez dobrze znany protokół komunikacyjny Modbus RTU. ● CRC16 jest wartością kontrolną przesyłanej ramki danych. ● Po przeprowadzeniu obliczeń CRC16 na podstawie danych otrzymanych w komunikacie oraz wartości kontrolnej, wynik musi wynosić 0. Oznacza to brak błędu w tej ramce wiadomości.
|
||
| FUN 32 ADCNV |
KONWERSJA WARTOŚCI WEJŚCIA ANALOGOWEGO 4~20MA(ADCNV) |
FUN 32 ADCNV |
|
Opis
● Jeżeli jednym z wejść analogowych jest 2~10mA/ 4~20mA/1~5V/2~10V, to sposobem do uzyskania odpowiedniej wartości dla tego sygnału jest analogowy moduł wejściowy. Zakres wejściowy modułu wynosi0~10mA/0~5V (Ustawienie przy 5V, polaryzacja unipolarna) lub 0~20mA/0~10V(Ustawienie przy 10V, polaryzacja unipolarna). W takim przypadku wystąpi przesunięcie wartości odczytu. Instrukcja ta stosowana jest w celu eliminacji przesunięcia i konwersji wartości odczytu na wartość w zakresie 0~4095(12-bitów) lub 0~16383(14-bitów). ● Jeżeli "EN"=1, nastąpi konwersja rozpoczynająca się od S, na długości N. Wynik zostanie zapisany w rejestrze D. ● Jeżeli "F/T"=0, wybrana zostanie 12-bitowa rozdzielczość analogowego modułuwejściowego. Jeżeli "F/T"=1, nastąpi przypisanie 14-bitowej rozdzielczości. ● Instrukcja ta nie będzie działać w przypadku nieprawidłowej wartości N. ● Wartość odczytu na wejściu analogowym musi być w formacie -2048~2047 lub -8192~8191, aby konwersja była zgodna. W innym wypadku, jeżeli wartość odczytu będzie w formacie 0~4095 lub 0~16383, konwersja będzie niezgodna.
Przykład Opis: Przy włączonym M0 i wyłączonym M1, przeprowadzona zostanie 6-punktowa konwersja rozpoczynająca się od R3840, podczas której wyeliminowane zostanie przesunięcie wartości odczytu 4~20mA, a odpowiednia wartość 0~4095 zostanie zapisana w R500~R505.
Przy włączonych M0 i M1, przeprowadzona zostanie 6-punktowa konwersja rozpoczynająca się od R3840, podczas której wyeliminowane zostanie przesunięcie wartości odczytu 4~20mA, a odpowiednia wartość 0~16383 zostanie zapisana w R500~R505.
|
||
| FUN 33 P LCNV |
Konwersja liniowa(LCNV) |
FUN 33 P LCNV |
|
● W przypadku, gdy do pomiaru analogowego wykorzystywany jest analogowy moduł wejściowy, wartość odczytana na wejściu analogowym może być przy użyciu tej instrukcji przekonwertowana na zakres jednostek inżynierskich, w celu ich wyświetlenia lub przeprowadzenia operacji sterowania. ● W przypadku kalibracji pomiarowej można zastosować konwersję liniową zmiennej, dzięki czemu zmierzona wartość z PLC może być skorygowana wartością z urządzenia pomiarowego. ● Jeżeli „EN"=1 lub zmieni się z 0→1( instrukcja P), instrukcja przeprowadzi operację konwersji liniowej zgodną z wybranym trybem, gdzie S jest początkowym adresem danych źródłowych, Ts jest początkowym adresem tabeli parametrów konwersji, D jest początkowym adresem do zapisywania przekonwertowanych wyników, a L jest liczbą kolejno konwertowanych adresów źródłowych. ● Istnieją dwa sposoby określania konwersji liniowej:
Sposób 1: Metoda kalibracji dwupunktowej
Wypełnij tabelę parametrów do konwersji wpisując dolną wartość pomiarową (VML), górną wartość pomiarową (VMH) oraz odpowiadające im wartości standardowe – dolną (VSL) i górną (VSH). Wynik po konwersji (Dn) wygenerowany zostanie z danych źródłowych (Sn) za pomocą poniższego równania:
Sposób 2: Mnożnik + metoda przesunięcia Wypełnij tabelę parametrów do konwersji wpisując wartości mnożnika(A), dzielnika(B) i przesunięcia(C). Wynik po konwersji (Dn) wygenerowany zostanie z danych źródłowych (Sn) za pomocą poniższego równania:
Opis trybu roboczego:
1. Kiedy Md = 0, konwersja liniowa przeprowadzana jest sposobem 1 określania konwersji, a wszystkie dane źródłowe charakteryzują się tymi samymi parametrami do konwersji VML, VMH, VSL i VSH. 2. Kiedy Md = 1, konwersja liniowa przeprowadzana jest sposobem 1 określania konwersji, a dane źródłowe charakteryzują się niezależnymi parametrami do konwersji VML, VMH, VSL, VSH. W przypadku N danych źródłowych, tabela parametrów konwersji powinna zawierać N grup parametrów VML, VMH, VSL, VSH ,tj. N×4 rejestrów. 3. Kiedy Md = 2, konwersja liniowa przeprowadzana jest sposobem 2 określania konwersji, a wszystkie dane źródłowe charakteryzują się tymi samymi parametrami do konwersji A, B i C. 4. Kiedy Md = 3, konwersja liniowa przeprowadzana jest sposobem 2 określania konwersji, a dane źródłowe charakteryzują się niezależnymi parametrami do konwersji A, B, C. W przypadku N danych źródłowych, tabela parametrów do konwersji powinna zawierać N grup parametrów A, B, C, tj. N×3 rejestrów.
Przykład programu 1 : Konwersja liniowa w trybie 0
Opis: Kiedy M0=1, konwersja liniowa zostanie zrealizowana w trybie 0, gdzie R100 jest początkowym adresem danych źródłowych, R1000 jest początkowym adresem tabeli parametrów konwersji VML, VMH, VSL, VSH, liczba kolejno konwertowanych wartości wynosi 6, a przekonwertowane wyniki zapisywane będą w R2000~R2005
Przykład programu 2 : Konwersja liniowa w trybie 1
Opis: Kiedy M0=1, konwersja liniowa zostanie zrealizowana w trybie 1, gdzie R100 jest początkowym adresem danych źródłowych, R1000 jest początkowym adresem tabeli parametrów konwersji VML, VMH, VSL, VSH, liczba kolejno konwertowanych wartości wynosi 3, a przekonwertowane wyniki zapisywane będą w R2000~R2002.
Przykład programu 3 : Konwersja liniowa w trybie 2
Opis: Kiedy M0=1, konwersja liniowa zostanie zrealizowana w trybie 2, gdzie R100 jest początkowym adresem danych źródłowych, R1000 jest początkowym adresem tabeli parametrów konwersji A, B, C, liczba kolejno konwertowanych wartości wynosi 6, a przekonwertowane wyniki zapisywane będą w R2000~R2005.
Przykład programu 4: Konwersja liniowa w trybie 3 Opis: Kiedy M0=1, konwersja liniowa zostanie zrealizowana w trybie 3, gdzie R100 jest początkowym adresem danych źródłowych, R1000 jest początkowym adresem tabeli parametrów konwersji A, B, C, liczba kolejno konwertowanych wartości wynosi 4, a przekonwertowane wyniki zapisywane będą w R2000~R2003
|
||
| FUN 34 P MLC |
Multi-liniowa konwersja(MLC) |
FUN 34 P MLC |
|
● W przypadku, gdy do pomiaru analogowego wykorzystywany jest analogowy moduł wejściowy, wartość odczytana na wejściu analogowym może być przy użyciu tej instrukcji przekonwertowana na zakres jednostek inżynierskich, w celu ich wyświetlenia lub przeprowadzenia operacji sterowania. ● W przypadku kalibracji pomiarowej można zastosować multi-liniową konwersję zmiennej, dzięki czemu zmierzona wartość z PLC może być skorygowana wartością z urządzenia pomiarowego. ● Jeżeli „EN"=1 lub zmieni się z 0→1 (instrukcja P), instrukcja przeprowadzi operację multi-liniowej konwersji, w sposób zależny od stanu wejścia X / Y, gdzie Rs jest początkowym adresem danych źródłowych, SI jest liczbą kolejno konwertowanych adresów źródłowych, Tx jest początkowym adresem tabeli wartości na osi rzędnych X, Ty jest początkowym adresem tabeli wartości na osi odciętych Y, TI określa rozmiar tabela X / Y, a D jest początkowym adresem do zapisywania wyników konwersji. ● Jeżeli podczas wykonywania instrukcji stan wejścia X / Y = 0, nastąpi porównanie danych źródłowych z wpisami w tabeli Tx w celu odnalezienia odpowiedniej lokalizacji w tej tabeli (wpisy w tabeli Tx muszą być uszeregowane od najmniejszej do największej), a następnie zostanie przeprowadzona konwersja liniowa zgodna ze zlokalizowaną częścią tabel Tx i Ty. ● W przypadku, gdy wartości danych źródłowych nie zawierają się w zakresie wartości wpisów w tabeli Tx (gdy X / Y = 0) lub Ty (gdy X / Y = 1), wyjście OVR=1. ● W przypadku nieprawidłowej wartości SI lub TI, instrukcja nie zostanie zrealizowana. Wyrażenie: Aby konwersja liniowa przebiegła prawidłowo, wpisy w tabeli wartości X (Tx) muszą być uporządkowane w kolejności od najmniejszej do największej (gdy X / Y = 0); wpisy w tabeli konwertowanych wartości Y (Ty) mogą być natomiast uporządkowane w kolejności od najmniejszej do największej lub odwrotnie (gdy X / Y = 1). Przy wykonaniu tej instrukcji, nastąpi wyszukanie odpowiedniego fragmentu, poprzez porównanie wpisów tabeli z danymi źródłowymi, a następnie przeprowadzona zostanie konwersja liniowa według następującego równania:
Vy = (Vx-Tx_n) × (Ty_n+1-Ty_n/Tx_n+1-Tx_n) + Ty_n jeżeli X/Y=0 Vx = (Vy-Ty_n) × (Tx_n+1-Tx_n/Ty_n+1-Ty_n) + Tx_n jeżeli X/Y=1
Schemat multi-liniowy konwersji:
Przykład 1:
opis: Kiedy M10=1 i M11=0, a R0 jest początkowym adresem danych do przekonwertowania, R99 jest liczbą kolejnych danych źródłowych do przekonwertowania, R1000 jest początkowym adresem tabeli wartości X (Tx), R2000 jest początkowym adresem tabeli wartości Y (Ty), R199 jest rozmiarem tabel Tx/Ty, dane źródłowe R0~R5 będą poddane konwersji liniowej według tabel Tx i Ty, a wyniki zostaną zapisane w D0~D5.
Przykład 2
opis:
Kiedy M10=1 i M11=0, a R0 jest początkowym adresem danych do przekonwertowania, R99 jest liczbą kolejnych danych źródłowych do przekonwertowania, R1000 jest początkowym adresem tabeli wartości X (Tx), R2000 jest początkowym adresem tabeli wartości Y (Ty), R199 jest rozmiarem tabel Tx/Ty, dane źródłowe R0~R5 będą poddane konwersji liniowej według tabeli Tx i Ty, a wyniki zostaną zapisane w D0~D5. Jeżeli dane źródłowe ≦ 2000, wartość wynikowa wynosi 280; jeżeli dane źródłowe ≧ 8000, wartość wynikowa wynosi 970
Przykład 3
Opis: Kiedy M10=1 i M11=0, a R0 jest początkowym adresem danych do przekonwertowania, R99 jest liczbą kolejnych danych źródłowych do przekonwertowania, R1000 jest początkowym adresem tabeli wartości X (Tx), R2000 jest początkowym adresem tabeli wartości Y (Ty), R199 jest rozmiarem tabel Tx/Ty, dane źródłowe R0~R5 będą poddane konwersji liniowej według tabeli Tx i Ty, a wyniki zostaną zapisane w D0~D5. Jeżeli dane źródłowe ≦ -8000, wartość wynikowa wynosi -100; jeżeli dane źródłowe ≧ 8000, wartość wynikowa wynosi 2000
opis: Kiedy M10=1 i M11=0, a R0 jest początkowym adresem danych do przekonwertowania, R99 jest liczbą kolejnych danych źródłowych do przekonwertowania, R1000 jest początkowym adresem tabeli wartości X (Tx), R2000 jest początkowym adresem tabeli wartości Y (Ty), R199 jest rozmiarem tabel Tx/Ty, dane źródłowe R0~R5 będą poddane konwersji liniowej według tabeli Tx i Ty, a wyniki zostaną zapisane w D0~D5. Jeżeli dane źródłowe ≦ 3276, wartość wynikowa wynosi 0; jeżeli dane źródłowe ≧ 16000, wartość wynikowa wynosi 5000
|
||
















































