Többsoros szkriptnyelv szintaxiskiemeléssel, amely okos szabályokban használható Egyenlet, Képlet és Szkript, valamint Modbus- és Csomag‑elemző felületeken is.

Alapok
Összekapcsolás
|
|
Többsoros algoritmus
Minden sort pontosvessző választ el.
|
|
Visszatérési érték
- Az utolsó sor eredménye
- A RETURN(expression) leállítja az algoritmus végrehajtását, és a zárójelek között található kifejezés értékét adja vissza
|
|
Ideiglenes változó
Csak egy szkript‑végrehajtás idejére él.
|
|
IF feltétel
Excel-stílus
|
|
Többsoros stílus
|
|
SWITCH
Egy kifejezést egy feltétellista alapján tesztel, és az első egyező esethez tartozó értéket adja vissza, illetve egy alapértelmezett értéket, ha egyik eset sem felel meg.
|
|
Példa:
|
|

Ciklus
A LOOP / WHILE … egy adott feltétel alapján ismétli egy parancssorozat végrehajtását. A ciklus addig fut, amíg a feltétel igaz. A CONTINUE … a hátralévő parancsok végrehajtását kihagyja, és a következő iterációra lép. A BREAK … kilép a ciklusból.
Példa: feltétel ellenőrzése a ciklus elején:
|
|
Példa: feltétel ellenőrzése a ciklus végén:
|
|
NaN (nem szám) érték
NaN érték akkor adható vissza, ha a valós érték nem ismert.
|
|
Az ISNAN(expression) függvény TRUE-t ad vissza, ha a kifejezés nem szám.
ISNULL
TRUE-t ad vissza, ha a paraméter NULL, ellenkező esetben FALSE. String és Bytearray típusokra használható. Példa: ha egy XML‑elem nem található, a visszatérési érték NULL, és az ISNULL igaz lesz rá.
A függvény szintaxisa:
|
|
Sleep
A szkriptet késlelteti milliszekundumban megadott idővel. Csak nagyon specifikus esetekben használható.
|
|
Megjegyzések
Új sor # jellel kezdve.
|
|
Numerikus literálok
Hexadecimális számok
A kifejezések hexadecimális számokat is értelmezhetnek. A prefix 0x kötelező, a maradék nem case‑sensitive.
0x0A = 10
|
|
Bináris számok
0b1010 = 10
|
|
Matematikai kifejezések
+, -, *, /
|
|
Logikai kifejezések
AND, OR, !, =, !=, >, <
|
|
Függvények
LINEAR
Visszaadja a lineárisan igazított értéket – lineáris interpolációt végez.
|
|
Paraméterek
- input … bemeneti érték
- value1_input … a bemeneti érték az alsó határnál
- value1_output … a kimeneti érték az alsó határnál
- value2_input … a bemeneti érték a felső határnál
- value2_output … a kimeneti érték a felső határnál
- [type] … opcionális paraméter. Meghatározza, mi legyen az eredmény, ha a bemeneti érték kívül esik a value1_input ↔︎ value2_input tartományon:
- paraméter nélkül (ugyanaz, mint a BOUNDS) … Ha a bemeneti érték a definiált tartományon kívül van, a kimeneti érték az egyik szélsőérték (minimum vagy maximum) lesz
- INFINITE … Ha a bemeneti érték a meghatározott tartományon kívül van, az eredmény extrapolált érték
- STRICT … Ha a bemeneti érték a meghatározott tartományon kívül van, a kimeneti érték NaN.
Példák
|
|
Példa [type] attribútumokra:
- input = 11
- value1_input = 0, value1_output = 400
- value2_input = 10, value2_output = 2000
- eredmény különböző [type] paramétereknél:
- BOUNDS (alapértelmezett) = 2000
- INFINITE = 2160
- STRICT = NaN
HISTERÉZIS
A hiszterézis használható a jelek szűrésére, hogy a kimenet ne reagáljon olyan gyorsan, hanem figyelembe vegye a rendszer előző állapotát. Például egy termosztát fűtést vezérel: bekapcsolja, ha a hőmérséklet A alá esik, de csak akkor kapcsolja ki, ha a hőmérséklet B fölé emelkedik.
0‑t vagy 1‑et ad vissza.
|
|
Példa: tartsunk 20 °C-os hőmérsékletet 2 °C hiszterézissel. Kapcsolja be a fűtést, ha a hőmérséklet 18 °C alá süllyed, és kapcsolja ki, amikor a hőmérséklet meghaladja a 22 °C‑ot.
|
|
Matematikai függvények
MIN
A MIN függvény visszaadja a megadott numerikus értékek közül a legkisebbet. 1 és 100 argumentumot vagy egyetlen gyűjteményt fogad. A NaN és NULL értékek figyelmen kívül maradnak.
|
|
Példák:
|
|
MINSTRICT
A MINSTRICT függvény visszaadja a megadott numerikus értékek közül a legkisebbet. 1 és 100 argumentumot vagy egyetlen gyűjteményt fogad. Ha bármelyik érték NaN vagy NULL, a függvény NaN/NULL értéket ad vissza.
|
|
Példák:
|
|
MAX
A MAX függvény visszaadja a megadott numerikus értékek közül a legnagyobbat. 1 és 100 argumentumot vagy egyetlen gyűjteményt fogad. A NaN és NULL értékek figyelmen kívül maradnak.
|
|
Példák:
|
|
MAXSTRICT
A MAXSTRICT függvény visszaadja a megadott numerikus értékek közül a legnagyobbat. 1 és 100 argumentumot vagy egyetlen gyűjteményt fogad. Ha bármelyik érték NaN vagy NULL, a függvény NaN/NULL értéket ad vissza.
|
|
Példák:
|
|
AVG
Az AVG függvény az átlagot (mean) számolja ki a megadott numerikus értékekből. 1 és 100 argumentumot vagy egyetlen gyűjteményt fogad. A NaN értékeket kizárja.
|
|
Példák:
|
|
AVGSTRICT
Az AVGSTRICT függvény az átlagot számolja a megadott numerikus értékekből. 1 és 100 argumentumot vagy egyetlen gyűjteményt fogad. Ha bármelyik érték nem szám, NaN-t ad vissza.
|
|
Példák:
|
|
ROUND
|
|
A megadott számot kerekített értékként adja vissza.
|
|
ABS
Az ABS függvény visszaadja a megadott szám abszolút értékét (azaz az előjel nélküli értéket).
|
|
Példák:
|
|
DEWPOINT
|
|
Visszaadja a harmatpont hőmérsékletét a jelenlegi hőmérséklet és relatív páratartalom alapján. A harmatpont a következő egyenlet szerint kerül kiszámításra.
|
|
POWER
A POWER függvény egy számot megadott hatványra emel.
|
|
Példák:
- POWER(2,3) … 2^3 = 8
- POWER(10, -3) … 0,001
- POWER(25, 0) … 1
MOD
A MOD függvény a két megadott szám osztásának maradékát adja vissza.
|
|
Argumentumok:
- number – az osztandó szám
- divisor – az az érték, amellyel a számot osztjuk
Példák:
- MOD(6, 4) … 2
- MOD(6, 2.5) … 1
CEIL
A CEIL függvény a megadott számot a megadott jelentőség legközelebbi, tőle felfelé eső többszörösére kerekíti (a nulla irányától függetlenül).
|
|
Argumentumok:
- number – a kerekítendő szám
- significance (optional) – az a jelentőség, amelynek többszörösére a számot kerekíteni kell. Ha a jelentőséget nem adjuk meg, az alapértelmezett érték 1. (Általában ugyanazzal az előjellel kell rendelkeznie, mint a bemeneti szám.)
Példák:
- 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
A FLOOR függvény a megadott számot a megadott jelentőség legközelebbi, tőle lefelé eső többszörösére kerekíti (a nulla felé).
|
|
Argumentumok:
- number – a kerekítendő szám
- significance (optional) – az a jelentőség, amelynek többszörösére kerekítünk. Ha a jelentőséget nem adjuk meg, az alapértelmezett érték 1. (Jellemzően ugyanazzal az előjellel rendelkezik, mint a bemeneti szám.)
Példák:
- 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
A RAND függvény véletlenszerű valós számot generál 0 és 1 között.
|
|
Példák:
- RAND()
RANDINT
A RANDINT függvény véletlenszerű egész számot ad két megadott egész szám között.
|
|
Példák:
- RANDINT(1,5)
- RANDINT(-2,2)
SIGN
A SIGN függvény visszaadja a megadott szám aritmetikai előjelét (+1, -1 vagy 0). Például ha a szám pozitív, a SIGN 1‑et ad vissza, ha negatív, akkor -1‑et, ha pedig 0, akkor 0‑t.
|
|
Példák:
- SIGN(100) … 1
- SIGN(0) … 0
- SIGN(-100) … -1
SQRT
A SQRT függvény a megadott szám pozitív négyzetgyökét számolja ki.
|
|
Példák:
- SQRT(25) … 5
LOG
A LOG függvény a megadott szám logaritmusát számolja ki egy megadott alaphoz viszonyítva.
|
|
Argumentumok:
- number – a pozitív valós szám, amelynek a logaritmusát számolni akarjuk
- base (optional) – opcionális argumentum, amely meghatározza a logaritmus alapját. Ha ezt az argumentumot nem adjuk meg, az alapértelmezett érték 10.
Példák:
- LOG(4,0.5) … -2
- LOG(100) … 2
LN
Az LN függvény a megadott szám természetes logaritmusát számolja ki.
|
|
ahol a szám pozitív valós szám.
Példák:
- LN(100) … 4,60517
Bitektanások
GETBIT
Visszaadja egy bit értékét a megadott helyen.
|
|
Argumentumok:
- number – a szám, amelyből a bit értékét ki akarjuk nyerni
- bit_position – a bit pozíciója, 0‑tól jobbra számolva
Példák:
- GETBIT(2, 0) → az 1. bit a 2‑es számnál (0b0010) 0
- GETBIT(4,2) → a 3. bit a 4‑es számnál (0b0100) 1
GETBITS
Visszaadja megadott számú bit értékét a megadott helyen.
|
|
Példák:
- GETBITS(216, 3, 2) → 216 = 0b1101 1000; a jobbról számított 4. bit értéke 1, az 5. bit is 1, ezért az eredmény 0b0011 = 3
- GETBITS(0xFF, 0, 4) → 0xFF = 255 = 0b1111 1111; az első 4 bit értéke 0b1111 = 0xF = 15
GETBYTE
Visszaad egy bájt értékét a megadott számnál.
|
|
Argumentumok:
- number – a szám, amelyből ki akarjuk nyerni a bájt értékét
- byte_position – a bájt pozíciója, 0‑tól balra számolva
Példák:
|
|
SETBYTE
Új értéket rendel a megadott bájthoz a megadott számnál, és visszaadja a módosított értéket.
|
|
Példák:
|
|
SETBIT
Új értéket rendel a megadott bithez a megadott számnál, és egy új számot ad vissza.
|
|
Argumentumok:
- number – a módosítani kívánt szám
- bit_position – a bit pozíciója, 0‑tól balra számolva
- new_value – 0 vagy 1 – az adott bitre beállítandó érték
Példák:
- SETBIT(1, 1, 1) → 3
- SETBIT(3, 1, 1) → 3
- SETBIT(4, 2, 0) → 4
- SETBIT(12, 1, 0) → 14
SETBITS
Új értéket rendel a megadott bitekhez a megadott számnál, és egy új számot ad vissza.
|
|
Példák:
- SETBITS(192, 4, 2, 3) → 240
- SETBITS(192, 5, 2, 3) → 224
« (BAL OLDALI BIT SHIFT)
|
|
Excel: BITLSHIFT(number, shift_amount)
» (JOBBRA SHIFT)
|
|
Excel: BITRSHIFT(number, shift_amount)
& (BITWISE AND)
|
|
Excel: BITAND(number1, number2)
| (BITWISE OR)
|
|
Excel: BITOR(number1, number2)
Lásd a bitműveletek Google Sheets példáit: https://docs.google.com/spreadsheets/d/1hF5FMpGMJbgYh-YLwWrq2n186_ATyGyLUb689__IhLY/edit?usp=sharing
Vagy próbáld ki az interaktív eszközt: http://bitwisecmd.com/
Szöveg, Karakterlánc és Bájtömb
LENGTH
Visszaadja egy objektum hosszát vagy bájtjainak számát. Az objektum lehet szám, logikai érték, string vagy gyűjtemény.
|
|
Példák:
|
|
BYTECOLLECTION
Létrehoz egy Collection
|
|
Példák:
|
|
INDEXOF
Visszaadja egy adott elem indexét karaktersorban vagy gyűjteményben. -1‑et ad vissza, ha az elem nem található.
|
|
Példák:
|
|
COPY
Megadott szöveget vagy gyűjteményt (vagy annak részét) másolja.
|
|
Példák:
|
|
REPLACE
Visszaad egy új szöveget vagy gyűjteményt, amelyben a megadott érték minden előfordulását lecseréli az új értékre.
|
|
Példák:
|
|
SPLIT
Szöveget szeletel szét egy szeparátor alapján.
|
|
Példák:
|
|
COMPARE
Összehasonlít két szöveget, és visszaad egy egész számot, amely megmutatja az elemek rendezési viszonyát.
|
|
Példák:
|
|
APPEND
Értéket ad hozzá egy gyűjteményhez vagy szöveghez, és egy új objektumot ad vissza a hozzáadott értékkel.
|
|
Példák:
|
|
INSERT
Értéket szúr be a gyűjteménybe vagy szövegbe. Visszaadja a beszúrt értékkel módosított gyűjteményt vagy szöveget.
|
|
Példák:
|
|
REMOVEAT
Elemeket távolít el gyűjteményből vagy karakterláncból index és hossz alapján. Visszaadja a megadott elemeket már nem tartalmazó gyűjteményt vagy szöveget.
|
|
Példák:
|
|
GETAT
Egy elem értékének lekérése gyűjteményből vagy szövegből a megadott index alapján.
|
|
Példák:
|
|
SETAT
Elem értékének beállítása a gyűjteményben vagy a szövegben a megadott indexnél.
|
|
Példák:
|
|
ENCODE
Megadott stringet kódol egy formátumba, és visszaadja az új stringet.
|
|
Támogatott formátumok:
- XML
- Base64
Példák:
|
|
DECODE
Megadott stringet dekódol egy formátumból, és visszaadja az új stringet.
|
|
Támogatott formátumok:
- XML
- Base64
Példák:
|
|
EQUALS
Két lebegőpontos számot hasonlít össze. A számok egyenlőnek tekintendők, ha | n1 - n2 | < epsilon. A küszöb (epsilon) alapértelmezett értéke 0,005, és opcionális paraméterként megadható.
|
|
Példák:
|
|
Rendezés
Különböző ORDER változatok érhetők el:
Növekvő – ORDER, ORDERSTRICT – ORDERINDEX, ORDERINDEXSTRICT;
Csökkenő – ORDERDESC, ORDERDESCSTRICT – ORDERINDEXDESC, ORDERINDEXDESCSTRICT
ORDER
Az ORDER függvény a megadott bemeneti értékeket növekvő sorrendbe rendezi, és egy új gyűjteményben adja vissza. N értékig (legfeljebb 100 argumentumig) vagy egyetlen gyűjteményt fogad. Az értékeknek nem feltétlenül kell számoknak lenniük, de összehasonlíthatónak kell lenniük (pl. számok, TIMESPAN, DATETIME, szövegek). Kevert típusok (pl. számok és szövegek) nem megengedettek. A NaN és NULL értékeket figyelmen kívül hagyja, és ezek nem szerepelnek a visszaadott gyűjteményben.
|
|
Példák:
|
|
ORDERINDEX
Az ORDERINDEX függvény a megadott bemeneti értékeket növekvő sorrendbe rendezi, hasonlóan az ORDER‑höz. A rendezett értékek helyett azonban egy indexgyűjteményt ad vissza, amely megmutatja a kiindulási értékek helyét a rendezett sorrendben. 1–100 argumentumot vagy egyetlen gyűjteményt fogad. Az értékeknek nem feltétlenül kell számoknak lenniük, de összehasonlíthatóknak kell lenniük.
|
|
Példák:
|
|
ORDERSTRICT
Az ORDERSTRICT függvény növekvő sorrendben rendezi a megadott bemeneti értékeket, és egy új gyűjteményt ad vissza. 1–100 értéket vagy egyetlen gyűjteményt fogad. Az értékeknek nem feltétlenül kell numerikusnak lenniük, de összehasonlíthatóknak kell lenniük. A NaN és NULL értékek mindig az eredmény elejére kerülnek.
|
|
Példák:
|
|
ORDERINDEXSTRICT
Az ORDERINDEXSTRICT függvény a megadott bemeneti értékeket növekvő sorrendbe rendezi, hasonlóan az ORDERSTRICT‑hez. A rendezett értékek helyett azonban egy indexgyűjteményt ad vissza, amely megmutatja a kiindulási értékek helyét a rendezett sorrendben. 1–100 argumentumot vagy egyetlen gyűjteményt fogad. Az értékeknek nem feltétlenül kell számoknak lenniük, de összehasonlíthatóknak kell lenniük. A NaN és NULL értékek mindig az eredmény elejére kerülnek.
|
|
Példák:
|
|
ORDERDESC
Az ORDERDESC függvény a megadott bemeneti értékeket csökkenő sorrendbe rendezi, és egy új gyűjteményben adja vissza. N értékig (legfeljebb 100 argumentumig) vagy egyetlen gyűjteményt fogad. Az értékeknek nem feltétlenül kell számoknak lenniük, de összehasonlíthatóknak kell lenniük. Kevert típusok (például számok és szövegek) nem megengedettek. A NaN és NULL értékeket figyelmen kívül hagyja.
|
|
Példák:
|
|
ORDERINDEXDESC
Az ORDERINDEXDESC függvény a megadott bemeneti értékeket csökkenő sorrendbe rendezi, hasonlóan az ORDERDESC‑hez. A rendezett értékek helyett azonban egy indexgyűjteményt ad vissza, amely megmutatja a kiindulási értékek helyét a rendezett sorrendben. 1–100 argumentumot vagy egyetlen gyűjteményt fogad. Az értékeknek nem feltétlenül kell számoknak lenniük, de összehasonlíthatóknak kell lenniük. A NaN és NULL értékeket mindig figyelmen kívül hagyja.
|
|
Példák:
|
|
ORDERDESCSTRICT
Az ORDERDESCSTRICT függvény a megadott bemeneti értékeket csökkenő sorrendbe rendezi, és egy új gyűjteményben adja vissza. 1–100 értéket vagy egyetlen gyűjteményt fogad. Az értékeknek nem feltétlenül kell numerikusnak lenniük, de összehasonlíthatóknak kell lenniük. A NaN és NULL értékek szerepelnek az eredményben, és mindig az elejére kerülnek.
|
|
Példák:
|
|
ORDERINDEXDESCSTRICT
Az ORDERINDEXDESCSTRICT függvény a megadott bemeneti értékeket csökkenő sorrendbe rendezi, hasonlóan az ORDERDESCSTRICT‑hez. A rendezett értékek helyett azonban egy indexgyűjteményt ad vissza, amely megmutatja a kiindulási értékek helyét a rendezett sorrendben. 1–100 argumentumot vagy egyetlen gyűjteményt fogad. Az értékeknek nem feltétlenül kell számoknak lenniük, de összehasonlíthatóknak kell lenniük. A NaN és NULL értékek szerepelnek az eredményben, és mindig az elejére kerülnek.
|
|
Példák:
|
|
Dátum és idő
DATETIME
Létrehoz egy DateTime objektumot. A DateTime.TICKS tulajdonság a 0001.01.01. 00:00:00,000 óta eltelt milliszekundumok számát jelenti. A DateTime a következő tulajdonságokkal rendelkezik: TICKS, YEAR, MONTH, DAY, DAYOFWEEK, DAYOFYEAR, HOUR, MINUTE, SECOND, MILLISECOND, KIND, UTCDATETIME, LOCALDATETIME, UNIXTIME.
|
|
Példák:
|
|
NOW
Visszaad egy DateTime objektumot, amely a helyi időzónában a jelenlegi dátumot és időt tartalmazza.
|
|
Példák:
|
|
TIMESPAN
A TIMESPAN függvény egy olyan változót hoz létre, amely egy időtartamot jelöl napokban, órákban, percekben, másodpercekben és milliszekundumokban. A TIMESPAN tulajdonságaihoz közvetlenül hozzáférhetünk minden komponenshez: DAYS, HOURS, MINUTES, SECONDS, MILLISECONDS. A TIMESPAN az idő összesített értékét is elérhetővé teszi adott egységekben (törtrészeket is tartalmazhat): TOTALDAYS, TOTALHOURS, TOTALMINUTES, TOTALSECONDS, TOTALMILLISECONDS.
|
|
Példák:
|
|
LOCALTIMEZONE
Visszaadja a helyi időzónát, mégpedig az UTC időponttól való eltérést milliszekundumban.
|
|
Példák:
|
|
DATETIMEADD
Megnöveli egy adott DateTime értéket évek, hónapok, napok, órák, percek, másodpercek és milliszekundumok számával, és egy új DateTime értéket ad vissza.
|
|
Példák:
|
|
Adattípus-konverziók
TODOUBLE
Stringet számértékké konvertál. Hiba esetén NaN-t ad vissza.
|
|
Példák:
|
|
TOSTRING
Visszaadja a megadott érték vagy gyűjtemény szöveges értékét a megadott formátum szerint. A második paraméter itt formátumminta, nem karakterkódolás.
|
|
Példák:
|
|
|
|
TOBCD
A megadott számot binary-coded decimal (BCD) formátumba konvertálja. A kódolás BCD‑8421.
|
|
Példák:
|
|
FROMBCD
Dekódolja a megadott számot, amely BCD formátumban van kódolva. A kódolás BCD‑8421.
|
|
Példák:
|
|
TOBYTEARRAY
Konvertálja a szöveget bájt‑tömbbé a megadott kódolással. A kódolás opcionális (alapértelmezés szerint iso‑8859‑1).
|
|
Példák:
|
|
RGBTOHSV
Átalakítja az RGB színdefiníciót; visszaadja a színt Hue / Saturation / Value formátumban.
|
|
Példa:
|
|
HSVTORGB
A Hue / Saturation / Value által meghatározott színt RGB formátumba konvertálja.
|
|
Példa:
|
|
Parsolási függvények
PARSETEXT
A bevitt szövegből adott bal és jobb keresési minta alapján visszaad egy részletet.
|
|
Példák:
|
|
PARSEJSON
Visszaadja egy elem értékét JSON formátumú stringből. Az elemet a json_path útvonal adja meg.
|
|
Példák:
JSON példa:
|
|
|
|
PARSEXML
Visszaadja egy elem értékét XML stringből. Az elemet az xml_path útvonal adja meg.
|
|
Példák:
XML minta:
|
|
|
|
Ha az XML tartalmaz neve‑space‑eket, az elemek nevét teljes egészében, a namespace-szel együtt kell megadni, pl. PARSEXML(xml, “//DIDL-Lite:container[dc:title=‘My Playlist’’]/DIDL-Lite:res”);
PACKET PARSER
További információ a Packet parser oldalán
SENDHTTPREQUEST
SENDDATA
MQTTPUBLISH
FTPDOWNLOAD
FTPUPLOAD
COMPLETESERVICEATTRIBUTE
COMPLETESERVICEACTION
Modbus
Modbus