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).
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); |
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í |
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 |
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 |
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 |
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 |
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).