Standardní funkce
Standardní funkce jsou použitelné ve všech programovacích jazycích (FUPLA, ST), některé z nich umožňují přetížení (pracují nad různými typy - například sčítání) a některé jsou rozšiřitelné (mohou mít proměnný počet vstupů - například logický součet).
Funkce pro konverzi typu
Jméno funkce |
Popis |
Příklad |
..._TO_... |
Konverze datového typu uvedeného na prvním místě na datový typ uvedený na druhém místě |
A:=INT_TO_REAL(B); |
TO_... |
Přetížená konverze datového typu |
A:=TO_REAL(B); |
..._TRUNC_... |
"Oříznutí" ANY_REAL na ANY_INT |
A:=REAL_TRUNC_INT(B); |
..._BCD_TO_... |
Převod ANY_BIT na ANY_INT |
A:=WORD_BCD_TO_INT(B); |
Numerické funkce
Jméno funkce |
V/V datový typ |
Popis |
ABS |
ANY_NUM |
Absolutní hodnota |
SQRT |
ANY_REAL |
Odmocnina |
LN |
ANY_REAL |
Přirozený logaritmus |
LOG |
ANY_REAL |
Desítkový logaritmus |
EXP |
ANY_REAL |
Přirozený exponenciální funkce |
SIN |
ANY_REAL |
Sinus (radiány) |
COS |
ANY_REAL |
Kosinus (radiány) |
TAN |
ANY_REAL |
Tangens (radiány) |
ASIN |
ANY_REAL |
Arcus sinus |
ACOS |
ANY_REAL |
Arcus kosinus |
ATAN |
ANY_REAL |
Arcus tangens |
ATAN2 |
ANY_REAL |
Arcus tangens k danému bodu (x, y) |
ADD |
ANY_NUM |
Součet |
MUL |
ANY_NUM |
Součin |
SUB |
ANY_NUM |
Rozdíl |
DIV |
ANY_NUM |
Podíl |
MOD |
ANY_NUM |
Modulo |
EXPT |
ANY_NUM |
Umocnění |
MOVE |
ANY_NUM |
Přiřazení |
Funkce nad řetězcem bitů
Jméno funkce |
V/v datový typ |
Popis |
SHL |
ANY_BIT |
Posun vlevo (zprava doplněno nulami) |
SHR |
ANY_BIT |
Posun vpravo (zleva doplněno nulami) |
ROL |
ANY_BIT |
Rotace vlevo (zprava doplněno o zleva odrotované bity) |
ROR |
ANY_BIT |
Rotace vpravo (zleva doplněno o zprava odrotované bity) |
AND |
ANY_BIT |
Logický součin (Př.: A:=AND(B,C,D); nebo A:=B&C&D;) |
OR |
ANY_BIT |
Logický součet |
XOR |
ANY_BIT |
Logický exkluzivní součet |
NOT |
ANY_BIT |
Negace |
Funkce výběru
Jméno funkce |
V/v datový typ |
Popis |
MOVE |
ANY |
Přiřazení (Př.: A:=B;) |
SEL |
ANY |
Binární výběr (Př.: OUT:=IN if G=0;) |
MAX |
ANY |
Maximum |
MIN |
ANY |
Minimum |
LIMIT |
ANY |
Limiter |
MUX |
ANY |
Multiplexer |
Funkce porovnání
Jméno funkce |
Symbol |
Popis |
GT |
> |
Klesající sekvence |
GE |
>= |
Monotónní sekvence směrem dolů |
EQ |
= |
Rovnost |
LE |
<= |
Monotónní sekvence směrem nahoru |
LT |
< |
Stoupající sekvence |
NE |
<> |
Nerovnost |
Funkce nad řetězcem znaků
Jméno funkce |
V/v datový typ |
Popis |
LEN |
ANY_STRING/ANY_INT |
Délka řetězce |
LEFT |
ANY_STRING/ANY_INT |
Zkopírovat daný počet znaků zleva ze vstupního řetězce |
RIGHT |
ANY_STRING/ANY_INT |
Zkopírovat daný počet znaků zprava ze vstupního řetězce |
MID |
ANY_STRING/ANY_INT |
Zkopírovat daný počet znaků z dané pozice ze vstupního řetězce (Př.: OUT:=MID(IN,10,3);) |
CONCAT |
ANY_STRING |
Propojení řetězců |
INSERT |
ANY_STRING/ANY_INT |
Vložení řetězce od dané pozice |
DELETE |
ANY_STRING/ANY_INT |
Smazání daného počtu znaků od dané pozice |
REPLACE |
ANY_STRING/ANY_INT |
Nahrazení daného počtu znaků od daného místa |
FIND |
ANY_STRING/ANY_INT |
Nalezení pozice prvního výskytu řetězce |
Funkce s typy datum a čas
Jméno funkce |
IN1 |
IN2 |
OUT |
ADD |
TIME |
TIME |
TIME |
ADD |
DT |
TIME |
DT |
ADD_TIME |
TIME |
TIME |
TIME |
ADD_TOD_TIME |
TOD |
TIME |
TOD |
ADD_DT_TIME |
DT |
TIME |
DT |
SUB |
TIME |
TIME |
TIME |
SUB |
DATE |
DATE |
TIME |
SUB |
TOD |
TIME |
TOD |
SUB |
TOD |
TOD |
TIME |
SUB |
DT |
TIME |
DT |
SUB |
DT |
DT |
TIME |
SUB_TIME |
TIME |
TIME |
TIME |
SUB_DATE_DATE |
DATE |
DATE |
TIME |
SUB_TOD_TIME |
TOD |
TIME |
TOD |
SUB_TOD_TOD |
TOD |
TOD |
TIME |
SUB_DT_TIME |
DT |
TIME |
DT |
SUB_DT_DT |
DT |
DT |
TIME |
MUL |
TIME |
ANY_NUM |
TIME |
MUL_TIME |
TIME |
ANY_NUM |
TIME |
DIV |
TIME |
ANY_NUM |
TIME |
DIV_TIME |
TIME |
ANY_NUM |
TIME |
Výše uvedené funkce jsou dále doplněné o funkce CONCAT a SPLIT, které umožňují spojování a rozdělování částí proměnných typu datum a čas. Například funkce SPLIT_DATE rozdělí datum na tři hodnoty INT (rok, měsíc a den).