Porovnávané verzie
Kľúč
- Tento riadok sa pridal
- Riadok je odstránený.
- Formátovanie sa zmenilo.
Blok kódu | ||||
---|---|---|---|---|
| ||||
dstIdent := expression [TIME timeExpression] dstIdent :?= expression |
dstIdent | in | Cieľ hodnôt (identifikátor riadku, alebo celej štruktúry). |
expression | in | Výraz definujúci hodnotu. |
TIME timeExpression | in | Výraz typu Absolútny čas - čas vzniku hodnoty (nepovinný parameter). |
Parameter dstIdent je identifikátor jednej hodnoty:
- objektu alebo lokálnej premennej typu Int, Bool, Real, Time, Text
Výrazexpression
musí byť daného typu. Ak nie je, skript sa pokúsi hodnotu konvertovať na správny typ. Ak sa to nepodarí, výsledná hodnota je neplatná (Invalid).
lokálnej premennej typu RECORD alebo objektu typu Štruktúrovaná premenná
priradenie je možné len do jednej položky konkrétneho riadku štruktúry. Ostatné pravidlá priradenia sú zhodné s jednoduchým typom.Blok kódu language esl theme RDark RECORD (SD.RecordDef) _lArr REDIM _lArr[10] _lArr[2]^Int := 1
lokálnej premennej typu ALIAS (netypový)
Ak nie je asociovaná s objektom systému, vzniká chyba _ERR_NO_ASSIGNED_ALIAS. Ináč je výraz vyhodnotený a výsledná hodnota priradená objektu, ktorý je asociovaný s lokálnou premennou.Blok kódu language esl theme RDark ALIAS _a SET _a AS U.Int _a := 1 WAIT
lokálnej premennej typu ALIAS (typový)
Priradenie je možné len do jednej položky konkrétneho riadku štruktúry. Ak nie je asociovaná s objektom systému, vzniká chyba _ERR_NO_ASSIGNED_ALIAS. Ináč je výraz vyhodnotený a výsledná hodnota priradená objektu políčka.Blok kódu language esl theme RDark ALIAS (SD.RecordDef) _aArr SET _aArr AS SV.Struktura _aArr[2]^Int := 1 WAIT
Podmienené priradenie :?=
Pri podmienenom priradení je najskôr vyhodnotený výraz a výsledná hodnota je potom porovnaná s aktuálnou hodnotou dstIden.
Ak sú hodnoty rôzne, vykoná sa priradenie. Ak hodnoty nie sú rôzne, priradenie sa nevykoná.
Pri porovnávaní hodnôt (v prípade ak sú obe hodnoty platné) sa berie do úvahy len hodnota bez ďalších atribútov, ako sú čas vzniku hodnoty, príznaky, limity ....
Porovnanie pokladá dve neplatné hodnoty za zhodné.
Podmienené priradenie má zmysel hlavne pri zmenách hodnôt objektov v rámci DODM, kedy sa predchádza zbytočným činnostiam ktoré po priradení nasledujú.
Napríklad:
- pri zápise do výstupného meraného bodu dochádza ku komunikácii na úrovni protokolu
- pri zápise do užívateľskej premennej alebo položky štruktúrovanej premennej, ktorá má zapnuté ukladanie štartovacej hodnoty, dochádza k zápisu hodnoty do konfiguračnej databázy
Podmienená priradenie je ekvivalent nasledujúceho zápisu
Blok kódu | ||||
---|---|---|---|---|
| ||||
IF M.Output\VLD THEN
IF _newValue\VLD THEN ; old valid, new valid
IF M.Output # _newValue THEN
M.Output := _newValue
ENDIF
ELSE ; old valid, new invalid
M.Output := _newValue
ENDIF
ELSE
IF _newValue\VLD THEN ; old invalid, new valid
M.Output := _newValue
ENDIF ; old invalid, new invalid
ENDIF |
Blok kódu | ||||
---|---|---|---|---|
| ||||
INT _prevValue _prevValue := U.Int ; odložím si predchádzajúcu hodnotu objektu U.Int := U.Int + 1 ; zvýšim hodnotu objektu o 1 IF U.Int = _prevValue THEN ; skontrolujem hodnotu ; priradenie ešte neprebehlo ELSE ; priradenie je realizované ENDIF |