TapHome ikona

Viacriadkový skriptovací jazyk so zvýraznením syntaxe, ktorý je možné použiť v pravidlách Equation, Formula a Script, ako aj v rozhraniach Modbus a Packet parser.

Príklad zvýraznenia syntaxe

Základy

Priradenie

1
Mu := Se + 2;

Viacriadkový algoritmus

Každý riadok je oddelený bodkočiarkou.

1
2
Last := Current;
Current := 0;

Vrátená hodnota

  • Výsledok posledného riadku kódu
  • RETURN(expression) ukončí vykonávanie algoritmu a vráti výraz v zátvorkách
1
2
3
(Co2 > 800) AND (Wind < 10);
equals:
RETURN((CO2 > 800) and (Wind < 10));

Dočasná premenná

Existuje len počas jedného vykonania skriptu.

1
VAR X := 5;

IF klauzula

Excel štýl

1
2
IF(logical_expression, value_if_true, value_if_false);
IF(logical_expression, value_if_true);

Viacriadkový štýl

1
2
3
4
5
6
7
IF X < 5
  RETURN(1);
ELSEIF X > 10
  RETURN(3);
ELSE
  RETURN(0);
END

SWITCH

Testuje výraz proti zoznamu prípadov a vráti hodnotu prvého zodpovedajúceho prípadu; ak žiadny nevyhovuje, vráti predvolenú hodnotu.

1
SWITCH(expression, case1, value1, [case2, ...], [value2, ...], default_value)

Príklad:

1
2
3
4
5
6
7
8
9
SWITCH( MODBUSR(H, 168, UInt16),
  0, 0,
  0x0002, 1,
  0x0004, 2,
  0x0008, 3,
  0x0010, 4,
  0x0040, 5,
  0x0800, 6,
  NaN)
SWITCH Príklad

Slučka

LOOP / WHILE … opakuje sériu príkazov podľa zadanej podmienky, až kým sa táto podmienka nesplní. CONTINUE … preskočí vykonanie zvyšných príkazov v aktuálnom cykle a pokračuje ďalším cyklom. BREAK … ukončí slučku.

Príklad s podmienkou na začiatku:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
int i := 10;
while i > 0
    i := i - 1;
    
    if i > 5
        continue;
    else
        break;
    end
loop

Príklad s podmienkou na konci:

1
2
3
4
int i := 10;
do
    i := i + i;
loop while i < 10

NaN (not a number) hodnota

NaN sa môže vrátiť v prípade, že skutočná hodnota nie je známa.

1
2
IF Temperature > 250 
  RETURN(NaN);

Funkcia ISNAN(expression) vráti TRUE, ak výraz nie je číslo.

ISNULL

Vráti true, ak je parameter NULL, inak false. Používa sa pre typy String a Bytearray. Príklad: ak sa XML element nenájde, návratová hodnota je NULL.

Syntax funkcie je:

1
ISNULL(object)

Sleep

Pozastaví skript na daný počet milisekúnd. Používajte iba vo veľmi špecifických prípadoch.

1
SLEEP(5);

Komentáre

Nový riadok začínajúci znakom #

1
# comment

Číselné literály

Hexadecimálne čísla

Výrazy môžu interpretovať aj hexadecimálne čísla. Prefix 0x je povinný a zvyšok nie je citlivý na veľkosť písmen.

0x0A = 10

1
2
0xA0A0   (41120)
0xa0a0   (41120)

Binárne čísla

0b1010 = 10

1
0b10101010   (170)

Matematické výrazy

+, -, *, /

1
(20.5 + 9.5) / 2    (15)

Logické výrazy

AND, OR, !, =, !=, >, <

1
2
(!IsRaining OR (Wind>30))
MultiValueSwitchState != 2 (Not equal to 2)

Funkcie

LINEAR

Vráti lineárne upravenú hodnotu – lineárnu interpoláciu.

1
LINEAR(input, value1_input, value1_output, value2_input, value2_output, [type])

Parametre

  • input… vstupná hodnota
  • value1_input… hodnota na vstupe na dolnej hranici
  • value1_output… hodnota na výstupe na dolnej hranici
  • value2_input… hodnota na vstupe na hornej hranici
  • value2_output… hodnota na výstupe na hornej hranici
  • [type]… voliteľný parameter. Definuje, aký má byť výsledok, keď je vstupná hodnota mimo rozsahu value1_input ↔︎ value2_input:
    • bez parametra (rovnako ako s parametrom BOUNDS)… Ak je vstup mimo definovaného rozsahu, výstup bude jedna z krajností (minimálna alebo maximálna hodnota)
    • INFINITE… Ak je vstup mimo definovaného rozsahu, výsledok je extrapolovaná hodnota
    • STRICT… Ak je vstup mimo definovaného rozsahu, výstupná hodnota bude NaN (not a number)
LINEAR Funkčný graf

Príklady

1
2
3
4
5
Example 1: LINEAR(250,  0,0,  50,500)   (Výsledok je 25°C)

Example 2: LINEAR(Co2,  400,0,  1200,1)
          (Ak je hodnota zo senzora Co2 400ppm, výstup pre návrat vzduchu bude 0%. 
           Ak je Co2 1200, výstup bude 100%. A ak napr. Co2=800, výstup bude 50%)

Príklady pre rôzne atribúty [type]:

  • input = 11
  • value1_input = 0, value1_output = 400
  • value2_input = 10, value2_output = 2000

Výsledok pre rôzne parametre [type]:

  • BOUNDS (predvolená hodnota) = 2000
  • INFINITE = 2160
  • STRICT = NaN

HYSTERÉZA

Hysteréza sa používa na filtrovanie signálov tak, aby výstup reagoval pomalšie, pričom zohľadňuje históriu systému. Napríklad termostat riadiaci vykurovanie môže zapnúť kúrenie, keď teplota klesne pod A, ale nevypnúť ho, kým teplota nestúpne nad B.

Vráti 0 alebo 1.

1
HYSTERESIS(value, upper_bound, lower_bound, upper_output, lower_output, last_value)

Príklad: udržiavať teplotu 20 °C v rámci hysterézy 2 °C. Zapnúť kúrenie, keď teplota klesne pod 18 °C a vypnúť, keď teplota presiahne 22 °C.

1
heater := HYSTERESIS(temperature,   22, 18,   0, 1,   heater);

Matematické funkcie

MIN

Funkcia MIN vracia najmenšiu hodnotu zo zadaných numerických hodnôt. Prijíma medzi 1 a 100 argumentmi alebo jednu kolekciu. Hodnoty NaN a NULL sa ignorujú.

1
2
MIN( n1, n2, n3, …)
MIN( collection )

Príklady:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
MIN(40, 80)  		= 40
MIN(2, 2, 6) 		= 2
MIN(80, NAN)		= 80
MIN(NAN, NAN)		= NaN

VAR data := {10, 20, 30}; MIN(data) 	= 10
MIN({1, 2, 3})							= 1
MIN({1, NaN, 3})						= 1

VAR d1 := DATETIME(2014, 12, 8, 0, 0, 0, 0, DateTimeKind.Utc);
VAR d2 := DATETIME(2015, 12, 8, 0, 0, 0, 0, DateTimeKind.Utc);
MIN(d1, d2)			... Result is d1

MINSTRICT

Funkcia MINSTRICT vracia minimum zo zadaných numerických hodnôt. Prijíma medzi 1 a 100 argumentmi alebo jednu kolekciu. Ak je niektorá zo zadaných hodnôt NaN alebo NULL, funkcia vráti NaN/NULL.

1
2
MINSTRICT( n1, n2, n3, …)
MINSTRICT( collection )

Príklady:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
MINSTRICT(40, 80)  		= 40
MINSTRICT(2, 2, 6) 		= 2
MINSTRICT(80, NAN)		= NaN
MINSTRICT(NAN, NAN)		= NaN

VAR data := {10, 20, 30}; MINSTRICT(data) 	= 10
MINSTRICT({1, 2, 3})						= 1
MINSTRICT({1, NaN, 3})						= NaN

VAR d1 := DATETIME(2014, 12, 8, 0, 0, 0, 0, DateTimeKind.Utc);
VAR d2 := DATETIME(2015, 12, 8, 0, 0, 0, 0, DateTimeKind.Utc);
MINSTRICT(d1, NULL, d2)		... Result is NULL

MAX

Funkcia MAX vráti maximum zo zadaných numerických hodnôt. Prijíma medzi 1 a 100 argumentmi alebo jednu kolekciu. Hodnoty NaN a NULL sa ignorujú.

1
2
MAX( n1, n2, n3, …)
MAX( collection )

Príklady:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
MAX(40, 80)  			= 80
MAX(2, 2, 6) 			= 6
MAX(80, NAN)			= 80
MAX(NAN, NAN)			= NaN

VAR data := {10, 20, 30}; MAX(data) = 30
MAX({1, 2, 3})						= 3
MAX({1, NaN, 3})					= 3

VAR d1 := DATETIME(2014, 12, 8, 0, 0, 0, 0, DateTimeKind.Utc);
VAR d2 := DATETIME(2015, 12, 8, 0, 0, 0, 0, DateTimeKind.Utc);
MAX(d1, d2)				... Result is d2

MAXSTRICT

Funkcia MAXSTRICT vracia maximum zo zadaných numerických hodnôt. Prijíma medzi 1 a 100 argumentmi alebo jednu kolekciu. Ak je ktorákoľvek zo zadaných hodnôt NaN alebo NULL, funkcia vráti NaN/NULL.

1
2
MAXSTRICT( n1, n2, n3, …)
MAXSTRICT( collection )

Príklady:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
MAXSTRICT(40, 80)  			= 80
MAXSTRICT(2, 2, 6) 			= 6
MAXSTRICT(80, NAN)			= NaN
MAXSTRICT(NAN, NAN)			= NaN

VAR data := {10, 20, 30}; MAXSTRICT(data) 	= 30
MAXSTRICT({1, 2, 3})				= 3
MAXSTRICT({1, NaN, 3})				= NaN

VAR d1 := DATETIME(2014, 12, 8, 0, 0, 0, 0, DateTimeKind.Utc);
VAR d2 := DATETIME(2015, 12, 8, 0, 0, 0, 0, DateTimeKind.Utc);
MAXSTRICT(d1, NULL, d2)		... Result is NULL

AVG

Funkcia AVG vypočíta priemer (mean) zo zadaných numerických hodnôt. Prijíma medzi 1 a 100 argumentmi alebo jednu kolekciu. Hodnoty NaN sa ignorujú.

1
2
AVG( n1, n2, n3, …)
AVG( collection )

Príklady:

1
2
3
4
5
6
7
8
9
AVG(40, 80)  		= 60
AVG(2, 2, 6) 		= 3.3333
AVG(80, NAN)		= 80
AVG(‘a’, ‘c’)		= ‘b’
AVG(NAN, NAN)		= NaN

VAR data := {10, 20, 30}; AVG(data) 	= 20
AVG({1, 2, 3})							= 2
AVG({1, NaN, 3})						= 2

AVGSTRICT

Funkcia AVGSTRICT vypočíta priemer zo zadaných numerických hodnôt. Prijíma medzi 1 a 100 argumentmi alebo jednu kolekciu. Ak je niektorá zo zadaných hodnôt nie číslo, výsledok je NaN.

1
2
AVGSTRICT( n1, n2, n3, …)
AVGSTRICT( collection )

Príklady:

1
2
3
4
5
6
7
8
AVGSTRICT(40, 80)  		= 60
AVGSTRICT(2, 2, 6) 		= 3.3333
AVGSTRICT(80, NAN)		= NaN
AVGSTRICT(NAN, NAN)		= NaN

VAR data := {10, 20, 30}; AVGSTRICT(data) 	= 20
AVGSTRICT({1, 2, 3})						= 2
AVGSTRICT({1, NaN, 3})						= NaN

ROUND

1
ROUND(value1)    

Vráti zaokrúhlenú hodnotu.

1
2
3
4
Príklad 1: ROUND(2.01)   (Výsledok je 2)
Príklad 2: ROUND(2.49)   (Výsledok je 2)
Príklad 3: ROUND(2.5)    (Výsledok je 3)
Príklad 4: ROUND(2.99)   (Výsledok je 3)

ABS

Funkcia ABS vráti absolútnu hodnotu (t. j. modul) ľubovoľného zadaného čísla.

1
ABS(number)

Príklady:

1
2
ABS(100)  ...   100
ABS(-100)   ...   100

DEWPOINT

1
DEWPOINT(temperature, relativeHumidity)

Vráti teplotu rosného bodu pre aktuálnu teplotu a relatívnu vlhkosť. Rosný bod sa počíta podľa tejto rovnice.

1
2
Príklad 1: DEWPOINT(20, 0.50) (Výsledok je ~9.26)
Príklad 2: DEWPOINT(0, 1.00) (Výsledok je 0)

POWER

Funkcia POWER umocní dané číslo zadaným exponentom.

1
POWER(number, power)

Príklady:

  • POWER(2,3) … 2^3 = 8
  • POWER(10, -3) … 0,001
  • POWER(25, 0) … 1

MOD

Funkcia MOD vráti zvyšok z delenia dvoch čísel.

1
MOD(number, divisor)

Argumenty:

  • number - číslo, ktoré sa delí
  • divisor - hodnota, ktorou sa číslo delí

Príklady:

  • MOD(6, 4) … 2
  • MOD(6, 2.5) … 1

CEIL

Funkcia CEIL zaokrúhľuje zadané číslo smerom od nuly na najbližší násobok zadanej významnosti.

1
CEIL(number, significance)

Argumenty:

  • number   - číslo, ktoré sa má zaokrúhliť
  • significance (optional) - násobok, na ktorý sa má číslo zaokrúhliť. Ak nie je uvedený, rovná sa 1. (Zvyčajne by mal mať rovnaké znamienko (kladné alebo záporné) ako zadané číslo.)

Príklady:

  • CEIL(22.25,0.1) … 22.3
  • CEIL(22.25,1) … 23
  • CEIL(22.25) … 23
  • CEIL(-22.25,-1) … -23
  • CEIL(-22.25,1) … -22
  • CEIL(-22.25) … -22
  • CEIL(-22.25,-5) … -25

FLOOR

Funkcia FLOOR zaokrúhľuje zadané číslo smerom k nule na najbližší násobok zadanej významnosti.

1
FLOOR(number, significance)

Argumenty:

  • number - číslo, ktoré sa má zaokrúhliť
  • significance (optional) - násobok, na ktorý sa má číslo zaokrúhliť. Ak nie je uvedený, rovná sa 1. (Zvyčajne by mal mať rovnaké znamienko (kladné alebo záporné) ako zadané číslo.)

Príklady:

  • FLOOR(22.25,0.1)… 22.2
  • FLOOR(22.25,1) … 22
  • FLOOR(22.25) … 22
  • FLOOR(-22.25,-1) … -22
  • FLOOR(-22.25,1) … -23
  • FLOOR(-22.25) … -23
  • FLOOR(-22.25,-5) … -20

RAND

Funkcia RAND generuje náhodné reálne číslo medzi 0 a 1.

1
RAND()

Príklady:

  • RAND()

RANDINT

Funkcia RANDINT generuje náhodné celé číslo medzi dvoma zadanými celými číslami.

1
RANDINT(bottom, top)

Príklady:

  • RANDINT(1,5)
  • RANDINT(-2,2)

SIGN

Funkcia SIGN vráti aritmetické znamienko (+1, -1 alebo 0) zo zadaného čísla. T. j. ak je číslo kladné, SIGN vráti +1, ak je záporné, vráti -1 a ak číslo je 0, vráti 0.

1
SIGN(number)

Príklady:

  • SIGN(100) … 1
  • SIGN(0) … 0
  • SIGN(-100) … -1

SQRT

Funkcia SQRT vypočíta kladnú druhú odmocninu zo zadaného čísla.

1
SQRT(number)

Príklady:

  • SQRT(25) … 5

LOG

Funkcia LOG vypočíta logaritmus zadaného čísla so zadaným základom.

1
LOG(number, base)

Argumenty:

  • number - kladné reálne číslo, pre ktoré sa má logaritmus vypočítať
  • base (optional) - voliteľný argument, ktorý špecifikuje základ logaritmu. Ak nie je uvedený, základ je predvolene 10.

Príklady:

  • LOG(4,0.5) … -2
  • LOG(100) … 2

LN

Funkcia LN vypočíta prirodzený logaritmus daného čísla.

1
LN(number)

kde number je kladné reálne číslo, pre ktoré sa má logaritmus vypočítať.

Príklady:

  • LN(100) … 4,60517

Bitové operácie

GETBIT

Vráti hodnotu bitu na určenej pozícii.

1
GETBIT(number, bit_position)

Argumenty:

  • number - číslo, z ktorého sa má hodnota konkrétneho bitu získať
  • bit_position - pozícia bitu, počítaná od 0 sprava

Príklady:

  • GETBIT(2, 0) → prvý bit čísla 2 (0b0010) je 0
  • GETBIT(4,2) → tretí bit čísla 4 (0b0100) je 1

GETBITS

Vráti hodnotu určeného počtu bitov na zadanom mieste.

1
GETBITS(number, start_bit, number_of_bits)

Príklady:

  • GETBITS(216, 3, 2) → číslo 216 = 0b1101 1000; hodnota 4. bitu zľava je 1, 5. bitu je 1, takže výsledok je 0b0011 = 3
  • GETBITS(0xFF, 0, 4) → číslo 0xFF = 255 = 0b1111 1111; hodnota prvých 4 bitov sprava je 0b1111 = 0xF = 15

GETBYTE

Vráti hodnotu bajtu v zadanom čísle.

1
GETBYTE( number, byte_position )

Argumenty:

  • number - číslo, z ktorého sa má hodnota konkrétneho bajtu získať
  • byte_position - pozícia bajtu, počítaná od 0 sprava

Príklady:

1
2
3
GETBYTE(256, 0)  →  0001 0000 0000 →  0
GETBYTE(256, 1)   →  0001 0000 0000  →  1
GETBYTE(259, 0)   →  0001 0000 0011   →  3

SETBYTE

Priradí novú hodnotu špecifikovanému bajtu v zadanom čísle a vráti výsledné číslo.

1
SETBYTE( number, byte_position, new_value )

Príklady:

1
2
3
4
SETBYTE(1, 0, 0)   →   0
SETBYTE(256, 0, 255)   →   511
SETBYTE(256, 1, 1)	  →   256
SETBYTE(259, 1, 2)	  →    515

SETBIT

Priradí novú hodnotu špecifikovanému bitu v čísle a vráti nové číslo.

1
SETBIT(number, bit_position, new_value)

Argumenty:

  • number - číslo, ktoré sa má upraviť
  • bit_position - pozícia bitu, počítaná od 0 sprava
  • new_value - 0 alebo 1 – hodnota, ktorá sa má nastaviť na daný bit

Príklady:

  • SETBIT(1, 1, 1) → 3
  • SETBIT(3, 1, 1) → 3
  • SETBIT(4, 2, 0) → 4
  • SETBIT(12, 1, 0) → 14

SETBITS

Priradí novú hodnotu zadaným bitom v čísle a vráti nové číslo.

1
SETBITS(number, start_bit, number_of_bits, new_value)

Príklady:

  • SETBITS(192, 4, 2, 3) → 240
  • SETBITS(192, 5, 2, 3) → 224

«   (POSUN BITOV DOĽAVA)

1
8 << 2   (32)

Excel: BITLSHIFT(number, shift_amount)

» (POSUN BITOV DOPRAVA)

1
32 >> 2   (8)

Excel: BITRSHIFT(number, shift_amount)

& (BITOVÉ AND)

1
3 & 1   (1)

Excel: BITAND(number1, number2)

| (BITOVÉ OR)

1
2 | 1 (3)

Excel: BITOR(number1, number2)

Pozrite si príklad bitových operácií v Google Sheets: https://docs.google.com/spreadsheets/d/1hF5FMpGMJbgYh-YLwWrq2n186_ATyGyLUb689__IhLY/edit?usp=sharing

Alebo vyskúšajte interaktívny nástroj na http://bitwisecmd.com/

Text, reťazec a bajtové pole

LENGTH

Vráti dĺžku objektu alebo počet bajtov. Objekt môže byť číslo, boolean, reťazec alebo kolekcia.

1
LENGTH( object )

Príklady:

1
2
3
4
LENGTH(“Hello World”)			(Result is 11)
LENGTH(“40”)				(Result is 2)
LENGTH(40)					(Result is 8)
LENGTH(BYTECOLLECTION(“010203”)	(Result is 3)

BYTECOLLECTION

Vytvorí Collection zo zadaných hexadecimálnych hodnôt.

1
BYTECOLLECTION( bytes )

Príklady:

1
2
BYTECOLLECTION(“010203”) 				(Result is Collection<UInt8> {01, 02, 03})
BYTECOLLECTION(“aa, be1-1,fe”) 			(Result is Collection<UInt8> {aa be 11 fe})

INDEXOF

Vráti index zadaného prvku v reťazci alebo v kolekcii. Vráti -1, ak prvok nemožno nájsť.

1
INDEXOF( string/collection, element )

Príklady:

1
2
3
4
5
6
INDEXOF("Hello", “H”)					(Result is 0)
INDEXOF("Hello World", “Wor”)				(Result is 6)
INDEXOF("Hello World", “Wor”)				(Result is 6)
INDEXOF("Hello World", “or12”)				(Result is -1)
INDEXOF(BYTECOLLECTION("ab cd ee ff 01 02"), 2)	(Result is 5)
INDEXOF({1, 2, 3}, 3)						(Result is 2)

COPY

Skopíruje zadaný reťazec alebo kolekciu (alebo ich časť).

1
COPY( string/collection, startIndex, length)

Príklady:

1
2
3
4
5
COPY("Hello")					(Result is “Hello”)
COPY("Hello World", 2)				(Result is “llo World”)
COPY("Hello World", 2, 4)				(Result is “llo ”)
COPY(BYTEARRAY("01020304")			(Result is byte array 01020304)
COPY(BYTEARRAY("01020304", 2, 1)		(Result is byte array 03)

REPLACE

Vráti nový reťazec alebo kolekciu, v ktorej sa všetky výskyty zadanej hodnoty nahradia novou hodnotou.

1
REPLACE( string/collection, oldValue, newValue)

Príklady:

1
2
3
REPLACE("Hello", “l”, “”)				(Result is “Heo”)
REPLACE("Hello", “lo”, “22”)			(Result is “Hel22”)
REPLACE(BYTECOLLECTION(“050607"), 5, 9)	(Result is Collection<UInt8>{09, 06, 07}

SPLIT

Rozdelí reťazec na podreťazce podľa zadaných separátorov.

1
2
3
4
SPLIT( string, string )
SPLIT( string, char )
SPLIT( string, Collection<string> )
SPLIT( string, Collection<char> )

Príklady:

1
2
3
SPLIT("1;2;3;4", “;”)			(Result is Collection<String>{“1”, “2”, “3”, “4”})
SPLIT("1;2;3.4", “2;”)		(Result is Collection<String>{“1;”, “3.4”})
SPLIT("1;2;3.4", {“2”, “3.”)		(Result is Collection<String>{“1;”, “;”, “4”})

COMPARE

Porovná dva reťazce a vráti celé číslo, ktoré udáva ich relatívne poradie.

1
COMPARE( string, string, CompareOptions )

Príklady:

1
2
3
COMPARE("abc", “abc”)						(Result is 0)
COMPARE("abc", “ABC”)						(Result is 32)
COMPARE("abc", “ABC”, CompareOptions.IgnoreCase)	(Result is 0)

APPEND

Pridá hodnotu do kolekcie alebo reťazca a vráti nový objekt s pridanou hodnotou.

1
2
APPEND( string, string )
APPEND( Collection, value )

Príklady:

1
2
APPEND({1, 2}, 3)     (Result is Collection<Double>{1, 2, 3})
APPEND("abc", “def”)  (Result is “abcdef”)

INSERT

Vloží hodnotu do kolekcie alebo reťazca. Vráti kolekciu alebo reťazec s vloženou hodnotou.

1
2
INSERT( collection, index, value )
INSERT( string, index, value )

Príklady:

1
2
3
INSERT(“Hello”, 5, “ World”)      (Result is “Hello World”)
INSERT(“Hello”, 1, “i”)			  (Result is “Hiello”)
INSERT({1, 2, 4}, 2, 3)			  (Result is Collection<Double>{1, 2, 3, 4})

REMOVEAT

Odstráni prvky z kolekcie alebo reťazca na základe indexu prvku a dĺžky. Vráti kolekciu alebo reťazec bez špecifikovaných prvkov.

1
2
REMOVEAT( collection, index, length )
REMOVEAT( string, index, length )

Príklady:

1
2
3
4
REMOVEAT(“Hello”, 1)			(Result is “Hllo”)
REMOVEAT(“Hello”, 3, 2)			(Result is “Ho”)
REMOVEAT({1, 2, 3, 4}, 2)			(Result is Collection<Double>{1, 2, 4})
REMOVEAT({1, 2, 3, 4}, 2, 2)		(Result is Collection<Double>{1, 2})

GETAT

Získa hodnotu prvku z kolekcie alebo reťazca na základe zadaného indexu.

1
2
GETAT( collection, index )
GETAT( string, index )

Príklady:

1
2
GETAT(“Hello”, 2)			(Result is “l”)
GETAT({1, 2, 4}, 2)			(Result is 4)

SETAT

Nastaví hodnotu prvku v kolekcii alebo reťazci na zadanom indexe.

1
2
SETAT( collection, index, value )
SETAT( string, index, value )

Príklady:

1
2
3
SETAT(“Hello”, 1, “a”)          (Result is “Hallo”)
SETAT(“Hello”, 4, “o World”)    (Result is “Hello World”)
SETAT({1, 2, 4}, 2, 3)          (Result is Collection<Double>{1, 2, 3})

ENCODE

Zakóduje zadaný reťazec pomocou jedného z formátov a vráti nový reťazec.

1
ENCODE( string, format )

Podporované formáty:

  • XML
  • Base64

Príklady:

1
2
3
ENCODE("Hello", “xml”)				(Result is “Hello”)
ENCODE("<Hello id=1>", “xml”)		(Result is “&lt;Hello id=1&gt;”)
ENCODE("Hello", “base64”)			(Result is “SGVsbG8=”)

DECODE

Dekóduje zadaný reťazec pomocou jedného z formátov a vráti nový reťazec.

1
DECODE( string, format )

Podporované formáty:

  • XML
  • Base64

Príklady:

1
2
3
DECODE("Hello", “xml”)				  (Result is “Hello”)
DECODE("&lt;Hello id=1&gt;", “xml”)   (Result is “<Hello id=1>”)
DECODE("SGVsbG8=", “base64”)		  (Result is “Hello”)

EQUALS

Porovná dve čísla s pohyblivou desatinnou čiarkou. Čísla sa považujú za rovné, ak | n1 - n2 | < epsilon. Predvolená hodnota prahu (*epsilon) je 0,005 a je voliteľným parametrom.

1
EQUALS( number1, number2, epsilon=0.005 )

Príklady:

1
2
3
4
5
EQUALS(1.33, 1.33)          1.0 (true)
EQUALS(1.333, 1.3335)		1.0 (true)
EQUALS(1.333, 1.338)		1.0 (false)
EQUALS(1.333, 1.338, 0.01)	1.0 (true)
EQUALS(NAN, NAN)		    1.0 (true)

Triedenie

Existuje viacero variantov ORDER:
Vzostupne – ORDER, ORDERSTRICT – ORDERINDEX, ORDERINDEXSTRICT
Zostupne – ORDERDESC, ORDERDESCSTRICT – ORDERINDEXDESC, ORDERINDEXDESCSTRICT

ORDER

Funkcia ORDER triedi zadané vstupné hodnoty vzostupne a vráti ich v novej kolekcii. Prijíma n hodnôt (až 100 argumentov) alebo jednu kolekciu. Hodnoty nemusia byť numerické, ale musia byť porovnateľné (napr. čísla, TIMESPAN, DATETIME, reťazce). Zmiešané typy (napr. čísla a reťazce) nie sú povolené. Hodnoty NaN a NULL sa ignorujú a nie sú zahrnuté vo výslednej kolekcii.

1
2
ORDER( n1, n2, n3 , … )
ORDER( collection )

Príklady:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
ORDER(3, 1, 2)				= {1, 2, 3}
ORDER(1)					= {1}
ORDER(3, NaN, 2, NaN)		= {2, 3}
ORDER(NaN)					= {}
ORDER('Z', 'a', 'X')				= {'X', 'Z', 'a'}
ORDER(“str1”, “STR2”, “stR1”} 		= {"STR2", "stR1", "str1"}
ORDER(“str1”, NULL, “STR2”, “stR1”} = {"STR2", "stR1", "str1"}

ORDER(TIMESPAN(0,0,0,0,100), TIMESPAN(0,0,0,0,99)	= {TIMESPAN(0,0,0,0,99), TIMESPAN(0,0,0,0,100)}
ORDER(NULL, TIMESPAN(0,0,0,0,99)					= {TIMESPAN(0,0,0,0,99)}

ORDERINDEX

Funkcia ORDERINDEX triedi vstupné hodnoty vzostupne a namiesto hodnôt vráti kolekciu indexov, ktoré udávajú pozície pôvodných hodnôt v zoradenom poradí. Prijíma n hodnôt (až 100 argumentov) alebo jednu kolekciu. Hodnoty nemusia byť numerické, ale musia byť porovnateľné. Zmiešané typy nie sú povolené. Hodnoty NaN a NULL sa ignorujú a nie sú zahrnuté vo výslednej kolekcii.

1
2
ORDERINDEX( n1, n2, n3 , … )
ORDERINDEX( collection )

Príklady:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
ORDERINDEX(3, 1, 2)				= {1, 2, 0}
ORDERINDEX(1)					= {0}
ORDERINDEX(3, NaN, 2, NaN)		= {2, 0}
ORDERINDEX(NaN)					= {}
ORDERINDEX('Z', 'a', 'X')				= {2, 0, 1}
ORDERINDEX(“str1”, “STR2”, “stR1”} 		= {1, 2, 0}
ORDERINDEX(“str1”, NULL, “STR2”, “stR1”} = {2, 3, 0}

ORDERINDEX(TIMESPAN(0,0,0,0,100), TIMESPAN(0,0,0,0,99)	= {1, 0}
ORDERINDEX(NULL, TIMESPAN(0,0,0,0,99)					= {1}

ORDERSTRICT

Funkcia ORDERSTRICT triedi vstupné hodnoty vzostupne a vráti ich v novej kolekcii. Prijíma n hodnôt (až 100 argumentov) alebo jednu kolekciu. Hodnoty nemusia byť numerické, ale musia byť porovnateľné. Hodnoty NaN a NULL sú zahrnuté a sú vždy zoradené ako prvé.

1
2
ORDERSTRICT( n1, n2, n3 , … )
ORDERSTRICT( collection )

Príklady:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
ORDERSTRICT(3, 1, 2)			= {1, 2, 3}
ORDERSTRICT(1)					= {1}
ORDERSTRICT(3, NaN, 2, NaN)		= {NaN, NaN, 2, 3}
ORDERSTRICT(NaN)				= {NaN}
ORDERSTRICT('Z', 'a', 'X')		= {'X', 'Z', 'a'}
ORDERSTRICT(“str1”, “STR2”, “stR1”} 		= {"STR2", "stR1", "str1"}
ORDERSTRICT(“str1”, NULL, “STR2”, “stR1”}	= {NULL, "STR2", "stR1", "str1"}

ORDERSTRICT(TIMESPAN(0,0,0,0,100), TIMESPAN(0,0,0,0,99)	= {TIMESPAN(0,0,0,0,99), TIMESPAN(0,0,0,0,100)}
ORDERSTRICT(NULL, TIMESPAN(0,0,0,0,99)					= {NULL, TIMESPAN(0,0,0,0,99)}

ORDERINDEXSTRICT

Funkcia ORDERINDEXSTRICT triedi vstupné hodnoty vzostupne a namiesto hodnôt vráti kolekciu indexov, ktoré udávajú pozície pôvodných hodnôt v zoradenom poradí. Prijíma n hodnôt (až 100 argumentov) alebo jednu kolekciu. Hodnoty nemusia byť numerické, ale musia byť porovnateľné. Hodnoty NaN a NULL sú zahrnuté a sú vždy zoradené ako prvé.

1
2
ORDERINDEXSTRICT( n1, n2, n3 , … )
ORDERINDEXSTRICT( collection )

Príklady:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
ORDERINDEXSTRICT(3, 1, 2)				= {1, 2, 0}
ORDERINDEXSTRICT(1)						= {0}
ORDERINDEXSTRICT(3, NaN, 2, NaN)		= {1, 3, 2, 0}
ORDERINDEXSTRICT(NaN)					= {0}
ORDERINDEXSTRICT('Z', 'a', 'X')			= {2, 0, 1}
ORDERINDEXSTRICT(“str1”, “STR2”, “stR1”}		= {1, 2, 0}
ORDERINDEXSTRICT(“str1”, NULL, “STR2”, “stR1”} 	= {1, 2, 3, 0}

ORDERINDEXSTRICT(TIMESPAN(0,0,0,0,100), TIMESPAN(0,0,0,0,99)	= {1, 0}
ORDERINDEXSTRICT(NULL, TIMESPAN(0,0,0,0,99)					= {0, 1}

ORDERDESC

Funkcia ORDERDESC triedi vstupné hodnoty zostupne a vráti ich v novej kolekcii. Hodnoty nemusia byť numerické, ale musia byť porovnateľné. Hodnoty NaN a NULL sa ignorujú a nie sú zahrnuté vo výslednej kolekcii.

1
2
ORDERDESC( n1, n2, n3 , … )
ORDERDESC( collection )

Príklady:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
ORDERDESC(3, 1, 2)					= {3, 2, 1}
ORDERDESC(1)						= {1}
ORDERDESC(3, NaN, 2, NaN)			= {3, 2}
ORDERDESC(NaN)						= {}
ORDERDESC('Z', 'a', 'X')			= {'a', 'Z', 'X'}
ORDERDESC(“str1”, “STR2”, “stR1”} 	= {"str1", "stR1", "STR2"}
ORDERDESC(“str1”, NULL, “STR2”, “stR1”} 	= {"str1", "stR1", "STR2"}

ORDERDESC(TIMESPAN(0,0,0,0,100), TIMESPAN(0,0,0,0,99)	= {TIMESPAN(0,0,0,0,100), TIMESPAN(0,0,0,0,99)}
ORDERDESC(NULL, TIMESPAN(0,0,0,0,99)					= {TIMESPAN(0,0,0,0,99)}

ORDERINDEXDESC

Funkcia ORDERINDEXDESC triedi vstupné hodnoty zostupne a namiesto hodnôt vráti kolekciu indexov, ktoré udávajú pozície pôvodných hodnôt v zoradenom poradí. Hodnoty nemusia byť numerické, ale musia byť porovnateľné. Hodnoty NaN a NULL sa ignorujú a nie sú zahrnuté vo výslednej kolekcii.

1
2
ORDERINDEXDESC( n1, n2, n3 , … )
ORDERINDEXDESC( collection )

Príklady:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
ORDERINDEXDESC(3, 1, 2)				= {0, 2, 1}
ORDERINDEXDESC(1)					= {0}
ORDERINDEXDESC(3, NaN, 2)			= {0, 2}
ORDERINDEXDESC(NaN)					= {}
ORDERINDEXDESC('Z', 'a', 'X')			= {1, 0, 2}
ORDERINDEXDESC(“str1”, “STR2”, “stR1”} 	= {0, 2, 1}
ORDERINDEXDESC(“str1”, NULL, “STR2”, “stR1”} 	= {0, 3, 2}

ORDERINDEXDESC(TIMESPAN(0,0,0,0,100), TIMESPAN(0,0,0,0,99)	= {0, 1}
ORDERINDEXDESC(NULL, TIMESPAN(0,0,0,0,99)					= {1}

ORDERDESCSTRICT

Funkcia ORDERDESCSTRICT triedi vstupné hodnoty zostupne a vráti ich v novej kolekcii. Prijíma n hodnôt (až 100 argumentov) alebo jednu kolekciu. Hodnoty nemusia byť numerické, ale musia byť porovnateľné. Hodnoty NaN a NULL sú zahrnuté a vždy sú zoradené ako prvé.

1
2
ORDERDESCSTRICT( n1, n2, n3 , … )
ORDERDESCSTRICT( collection )

Príklady:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
ORDERDESCSTRICT(3, 1, 2)			= {3, 2, 1}
ORDERDESCSTRICT(1)					= {1}
ORDERDESCSTRICT(3, NaN, 2, NaN)			= {NaN, NaN, 3, 2}
ORDERDESCSTRICT(NaN)				= {NaN}
ORDERDESCSTRICT('Z', 'a', 'X')					= {'a', 'Z', 'X'}
ORDERDESCSTRICT(“str1”, “STR2”, “stR1”} 		= {"str1", "stR1", "STR2"}
ORDERDESCSTRICT(“str1”, NULL, “STR2”, “stR1”} 	= {NULL, "str1", "stR1", "STR2"}

ORDERDESCSTRICT(TIMESPAN(0,0,0,0,100), TIMESPAN(0,0,0,0,99)	= {TIMESPAN(0,0,0,0,100), TIMESPAN(0,0,0,0,99)}
ORDERDESCSTRICT(NULL, TIMESPAN(0,0,0,0,99)					= {NULL, TIMESPAN(0,0,0,0,99)}

ORDERINDEXDESCSTRICT

Funkcia ORDERINDEXDESCSTRICT triedi vstupné hodnoty zostupne, podobne ako ORDERDESC, avšak namiesto zoradených hodnôt vráti kolekciu indexov, ktoré udávajú pozície pôvodných hodnôt v zoradenom poradí. Hodnoty nemusia byť numerické, ale musia byť porovnateľné. Hodnoty NaN a NULL sú zahrnuté a vždy sú zoradené ako prvé.

1
2
ORDERINDEXDESCSTRICT( n1, n2, n3 , … )
ORDERINDEXDESCSTRICT( collection )

Príklady:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
ORDERINDEXDESCSTRICT(3, 1, 2)				= {0, 2, 1}
ORDERINDEXDESCSTRICT(1)						= {0}
ORDERINDEXDESCSTRICT(3, NaN, 2, NaN)		= {1, 3, 0, 2}
ORDERINDEXDESCSTRICT(NaN)					= {0}
ORDERINDEXDESCSTRICT('Z', 'a', 'X')			= {1, 0, 2}
ORDERINDEXDESCSTRICT(“str1”, “STR2”, “stR1”}		= {0, 2, 1}
ORDERINDEXDESCSTRICT(“str1”, NULL, “STR2”, “stR1”} 	= {1, 0, 3, 2}

ORDERINDEXDESCSTRICT(TIMESPAN(0,0,0,0,100), TIMESPAN(0,0,0,0,99)	= {0, 1}
ORDERINDEXDESCSTRICT(NULL, TIMESPAN(0,0,0,0,99)						= {0, 1}

Dátum a čas

DATETIME

Vytvára objekt DateTime. Vlastnosť DateTime.Ticks je počet milisekúnd od 1.1.0001 00:00:00.000. DateTime má vlastnosti: TICKS, YEAR, MONTH, DAY, DAYOFWEEK, DAYOFYEAR, HOUR, MINUTE, SECOND, MILLISECOND, KIND, UTCDATETIME, LOCALDATETIME, UNIXTIME

1
2
3
4
DATETIME( ticks, DateTimeKind )
DATETIME( string, format )
DATETIME( string, DateTimeKind )
DATETIME( year, month, day, hour, minute, second, millisecond, DateTimeKind  )

Príklady:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
VAR date:= DATETIME(2014, 12, 8, 23, 54, 12, 456);
VAR date:= DATETIME(2014, 12, 8, 23, 54, 12, 456, DateTimeKind.Local);
VAR date:= DATETIME(2014, 12, 8, 23, 54, 12, 456, DateTimeKind.Utc);
VAR date:= DATETIME("13:36");
VAR date:= DATETIME("2022-08-03T07:39:03.688133+05:00");
VAR date:= DATETIME("03.01 2008 10:00"); 
VAR date:= DATETIME("mar.01 2008 10:00");
VAR date:= DATETIME("03.01 2008 10:00", "dd.MM yyyy hh:mm");
VAR date:= DATETIME(518832000);
VAR date:= DATETIME(518832000, DateTimeKind.Utc);
VAR date := NOW(); date.YEAR := 1999;
DATETIME date; date.UNIXTIME := 123456;

NOW

Vráti objekt DateTime nastavený na aktuálny dátum a čas v lokálnom časovom pásme.

1
NOW()

Príklady:

1
VAR now := NOW();

TIMESPAN

Funkcia TIMESPAN vytvorí premennú, ktorá predstavuje časové trvanie, uvedené v dňoch, hodinách, minútach, sekundách a milisekundách. TIMESPAN má vlastnosti na priamy prístup ku každej zložke časového intervalu: DAYS, HOURS, MINUTES, SECONDS, MILLISECONDS. TIMESPAN má tiež vlastnosti na prístup k celkovej hodnote času v konkrétnych jednotkách (vrátane zlomkových hodnôt): TOTALDAYS, TOTALHOURS, TOTALMINUTES, TOTALSECONDS, TOTALMILLISECONDS.

1
TIMESPAN( days, hours, minutes, seconds, milliseconds )

Príklady:

1
2
3
4
VAR t := TimeSpan(1, 2, 3, 4, 0);
	t.TOTALSECONDS			

Result ... 93784

LOCALTIMEZONE

Vráti lokálne časové pásmo ako počet milisekúnd od UTC času.

1
LOCALTIMEZONE()

Príklady:

1
VAR timezoneDiff := LOCALTIMEZONE();

DATETIMEADD

Pridá špecifikovaný počet rokov, mesiacov, dní, hodín, minút, sekúnd a milisekúnd k existujúcemu DateTime a vráti nový DateTime.

1
DATETIMEADD(datetime, years, months, days, hours, minutes, seconds, milliseconds)

Príklady:

1
VAR dt := NOW(); VAR yearBefore := DATETIMEADD(dt, -1);

Konverzie dátových typov

TODOUBLE

Konvertuje reťazec na číslo. Vráti NaN v prípade chyby.

1
TODOUBLE( text )

Príklady:

1
2
3
TODOUBLE(“232”) ... 232)
TODOUBLE(“-192.332”)  ...  -192.332
TODOUBLE(“some text”)  ...  NaN

TOSTRING

Vráti reťazcovú reprezentáciu zadanej hodnoty alebo kolekcie podľa zadaného kódovania. Kódovanie je voliteľné (štandardne sa používa iso-8859-1).

1
TOSTRING(value, encoding)

Príklady:

1
2
3
4
TOSTRING(192, “X”)  …  Result = “C0”
TOSTRING(192, “X4”)  …  Result = “00C0”
TOSTRING(192, “F4”)  …  Result = “123.3400”
TOSTRING(192, “F0”)  …  Result = “123”
1
2
3
TOSTRING(BYTECOLLECTION("48656c6c6f"))			(Result is “Hello”)
TOSTRING(BYTECOLLECTION(\"48656c6c6f\"), “iso-8859-1”)	(Result is “Hello”)
TOSTRING(192, “X4”)							(Result is “00C0”)

TOBCD

Prevádza zadané číslo do binárne kódovaného desiatkového čísla (BCD). Schéma kódovania je BCD-8421.

1
TOBCD(number)

Príklady:

1
2
3
TOBCD(1)  ...  1
TOBCD(9)  ...  9
TOBCD(10)  ...  16

FROMBCD

Dekóduje zadané číslo, ktoré je zakódované v binárne kódovanom desiatkovom formáte (BCD). Schéma kódovania je BCD-8421.

1
FROMBCD(number)

Príklady:

1
2
FROMBCD(16)  ...  10
FROMBCD(32)  ...  20

TOBYTEARRAY

Prevádza reťazec na bajtové pole podľa zvoleného kódovania. Kódovanie je voliteľné (predvolené iso-8859-1).

1
TOBYTEARRAY( string, encoding )

Príklady:

1
TOBYTEARRAY("Hello")			(Result is byte array 48656c6c6f)

RGBTOHSV

Prevádza definíciu farby z RGB a vráti farbu vo formáte Hue / Saturation / Brightness.

1
RGBTOHSV( r, g, b )      (r, g, b ... 0 - 0xFF)

Príklad:

1
2
3
4
VAR HSVColor := RGBTOHSV( r, g, b );
VAR saturation := HSVColor.Saturation;   (Saturation ... 0 - 1)
VAR hue := HSVColor.Hue;                 (Hue ... 0 - 360)
VAR value := HSVColor.Value;             (Value ... 0 - 1)

HSVTORGB

Konvertuje farbu definovanú pomocou Hue / Saturation / Brightness a vráti farbu v RGB formáte.

1
HSVTORGB( hue, saturation, value )

Príklad:

1
2
3
4
VAR color := HSVTORGB( hue, saturation, 1)
VAR red := color.red;                   (red ... 0 - 0xFF)
VAR green := color.green;               (green ... 0 - 0xFF)
VAR blue := color.blue;                 (blue ... 0 - 0xFF)

Parsovacie funkcie

PARSETEXT

Vráti časť vstupného textu na základe ľavých a pravých vyhľadávacích vzorov.

1
PARSETEXT( input, left_pattern, right_pattern)

Príklady:

1
2
3
4
5
6
7
PARSETEXT(“Lorem ipsum dolor sit amet”, “ipsum”, “amet”) (Result is “dolor sit”)
PARSETEXT(“<temp>12.2</temp>”, “<temp>”, “</temp”) (Result is 12.2)
PARSETEXT(“<temp>12.2</temp>”, “<temp>”) (Result is 12.2)
PARSETEXT(“status:ok,error:none”, “status:”) (Result is “ok”)
PARSETEXT(“Lorem ipsum dolor sit amet”, “ipsum”) (Result is “dolor”)
PARSETEXT(“Lorem ipsum dolor sit amet”, “ipsum…sit”) (Result is “amet”)
PARSETEXT(“Lorem ipsum dolor sit amet consectetur adipiscing”, “ipsum…sit”, “adipiscing”) (Result is “amet consectetur”)

PARSEJSON

Vráti hodnotu prvku zo stringu vo formáte JSON. Prvok je určený pomocou JSON path.

1
PARSEJSON( json_string, json_path, ignore_error)

Príklady:

S json =

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
{
  "firstName": "John",
  "lastName" : "doe",
  "age" : 26,
  "address"  : {
    "streetAddress": "naist street",
    "city"         : "Nara",
    "postalCode"   : "630-0192"
  }
}
1
2
3
4
5
PARSEJSON(json, “firstName”)			(Result is “John”)
PARSEJSON(json, “address.city”)		(Result is “Nara”)
PARSEJSON(json, “address.country”)		(error)
PARSEJSON(json, “address.country”, 0)		(error)
PARSEJSON(json, “address.city”, 1)		(Result is null)

PARSEXML

Vráti hodnotu prvku zo stringu XML. Prvok je určený pomocou XML path.

1
PARSEXML( xml_string, xml_path)

Príklady:

S xml=

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0"?>
<catalog>
	<book id="bk101">
		<author>Gambardella, Matthew</author>
		<title>XML Developer's Guide</title>
		<genre>Computer</genre>
		<price>44.95</price>
		<publish_date>2000-10-01</publish_date>
		<description>An in-depth look at creating...</description>
	</book>
	<book id="bk102">
		<author>Ralls, Kim</author>
		<title>Midnight Rain</title>
		<genre>Fantasy</genre>
		<price>5.95</price>
		<publish_date>2000-12-16</publish_date>
		<description>A former architect battles…</description>
	</book>
</catalog>
1
2
3
4
PARSEXML(xml, "//catalog/book[1]/price") (Result is 44.95)
PARSEXML(xml, "//book[2]/title") (Result is "Midnight Rain")
PARSEXML(xml, "//book[1]/@id") (Result is "bk101")
PARSEXML(xml, "//catalog/magazine[1]/price") (Result is null)

Ak xml obsahuje názvové priestory, musíte úplne špecifikovať názvy prvkov s názvovými priestormi, napr. PARSEXML(xml, “//DIDL-Lite:container[dc:title=‘My Playlist’’]/DIDL-Lite:res”);

Paketový parser

Viac informácií nájdete na stránke o Packet parseri

SENDHTTPREQUEST

SENDDATA

MQTTPUBLISH

FTPDOWNLOAD

FTPUPLOAD

COMPLETESERVICEATTRIBUTE

COMPLETESERVICEACTION

Modbus

Modbus

Podrobné informácie o konfigurácii Modbusu.