Formátovacie masky

Formátovacie masky

V systéme D2000 je implementované formátovanie zobrazených hodnôt formou formátovacej masky. Syntax (spôsob zápisu) formátovacej masky sa líši podľa jej použitia. Pre Transformačnú paletu je použiteľná základná syntax. Pre zobrazenie objektu v grafických schémach je použiteľná rozšírená syntax, ktorá dopĺňa základnú syntax.

Základná syntax


Maska určuje formát zobrazenej číselnej hodnoty. Na vytvorenie vlastných formátov číselných hodnôt môžete použiť tieto znaky: #, 0, $, E+, E-, e+, e-.

Znak

Význam znaku

Znak

Význam znaku

#

Povoľuje výskyt číslice (výskyt číslice nie je nutný). Ak je číslo záporné, znamienko sa vypíše na mieste prvého výskytu tohto znaku.

0

Výskyt číslice nutný. Ak sa číslica na danom mieste nevyskytuje, doplní sa znak „0“.

$

Zaokrúhľovanie.

E+, E-

Exponenciálny tvar. Exponent je vyčíslený tak, aby mantisa bola menšia ako 10.

e+, e-

Exponenciálny tvar (inžinierska notácia). Exponent je vyčíslený tak, aby bol deliteľný číslom 3.

.

Desatinná bodka.

Na formátovanie exponentu je možné použiť znaky 0 a #. Systém automaticky vykoná konverziu formátovacej masky podľa nasledujúcich pravidiel:

  • po prvom znaku $ zľava sa znaky 0 a # nahradia znakom $,

  • medzi znakom 0 a desatinnou bodkou sa znaky # nahradia znakom 0.

Zadaná maska

Maska po konverzii

##$$00##$$##00

##$$$$$$$$$$$$

##00$$##$$##00

##00$$$$$$$$$$

##00##00$$#

##000000$$$

##0#0.##0###

##000.000###

Po vykonaní vyššie spomenutej konverzie platí:

  • pred znakom #, umiestneným pred desatinnou bodkou, sa nevyskytujú znaky 0

  • pred znakom # sa nevyskytujú znaky $

  • medzi znakom 0 a desatinnou bodkou sa nevyskytuje znak #

  • pred znakom 0 sa nevyskytuje znak $.

K pretečeniu dochádza vtedy, ak sa zobrazované číslo (alebo znamienko) nezmestí do definovanej masky. Pri pretečení sa zobrazuje reťazec znakov „<“.

V nasledujúcej tabuľke sú uvedené príklady formátovacích masiek.

Hodnota objektu

Maska

Zobrazená hodnota

129

{###}

129

129

{000}

129

129

{0000}

0129

129

{000.00}

129.00

129

{000$}

0130

129

{# # # #}

1 2 9

1234

{# ### K}

1 234 K

1234

{#-###}

1-234

1234

{###}

<<<

123.6

{###}

124

123.6

{###.#}

123.6

123.6

{###.$}

124.0

-10

{###}

-10

-10

{# ##}

- 10

-10

{##}

<<

-10

{# 000}

- 010

-10

{000}

<<<

-10

{##E+0}

-1E+1

-10

{##E+00}

-1E+01

-10

{##e+0}

<<<<<

-10

{###e+0}

-10E+0

Na zobrazovanie objektov, ktorých hodnota je typu čas a na zobrazovanie času vzniku hodnoty objektu sa používajú nasledujúce formátovacie značky.

Značka

Význam značky

Značka

Význam značky

rrrr alebo yyyy

Číslo roku (štvorciferné).

rr alebo yy

Posledné dvojčíslo z čísla roku.

dd

Číselné vyjadrenie dňa (dvojciferné).

mm

Číselné vyjadrenie mesiaca.

hh

Hodina.

hhh

počet hodín - len pre relatívny čas neobsahujúci masku pre dni.

hhhh

počet hodín - len pre relatívny čas neobsahujúci masku pre dni.

hhhhh

počet hodín - len pre relatívny čas neobsahujúci masku pre dni.

hb, HH

Obchodná hodina - poradová hodina v dni od 1 do 25.

mi

Minúta.

ss

Sekunda.

mss

Tisíciny sekundy (milisekundy).

tttt

Názov dňa v týždni *.

ttt

Trojpísmenková skratka názvu dňa v týždni *.

tt

Dvojpísmenková skratka názvu dňa v týždni *.

ZZZ

Posun v hodinách voči UTC vo formáte "(+|-)hh".

ZZZZZ

Posun v hodinách a minútach voči UTC vo formáte "(+|-)hhmi".

ZZZZZZ

Posun v hodinách a minútach voči UTC vo formáte "(+|-)hh:mi".

Ak je napríklad objekt SysTime (Systémová premenná) pripojený (na zobrazovanie) na textový reťazec:

{hh:mi:ss dd-mm-rrrr},

bude textový reťazec zobrazovať časový údaj vo formáte:

15:18:36 27-10-1998

Ak sa pri vstupe času používa maska so skráteným formátom roku rr (yy pre angl. verziu) bude upravená na rrrr (yyyy pre angl. verziu). Napríklad, ak sa pre zobrazovanie používa maska hh:mi:ss dd-mm-rr, pri zmene hodnoty je upravená na hh:mi:ss dd-mm-rrrr z dôvodu jednoznačnosti zadania roku 19/20.

Pri vstupe dátumu:

  1. Ak maska obsahuje aj značky hh aj hb, bude sa pracovať iba so značkou hh.

  2. Vo vstupe textu má značka hh základné podfarbenie biele a značka hb svetlo žlté.

Poznámka k názvom dní v týždni:
Výpis názvov dní v týždni funguje pri použití transformačnej palety (merané body, užívateľské premenné, položky štruktúrovaných premenných, lokálne premenné) v schémach, v Browseri a vo funkciách %TimeToStr a %TimeToStrEx.
Výpis názvov dní v týždni podporuje viacjazykové verzie a to tak, že namiesto názvu dňa v konkrétnom jazyku sa vygeneruje text podľa tabuľky:

Deň\maska

tt

ttt

tttt

Pondelok

{!Mo}

{!Mon}

{!Monday}

Utorok

{!Tu}

{!Tue}

{!Tuesday}

Streda

{!We}

{!Wed}

{!Wednesday}

Štvrtok

{!Th}

{!Thu}

{!Thursday}

Piatok

{!Fr}

{!Fri}

{!Friday}

Sobota

{!Sa}

{!Sat}

{!Saturday}

Nedeľa

{!Su}

{!Sun}

{!Sunday}

V Slovníku je potrebné zadefinovať príslušnú sadu kľúčov (napr. Mo, Tu, We, Th, Fr, Sa, Su ak sa používa maska tt) a jednotlivým užívateľom nastaviť jazyk.
Pri použití vo funkciách %TimeToStr a %TimeToStrEx je nutné na výsledok ešte aplikovať funkciu %HI_LNG_Translate.

Rozšírená syntax


V grafických schémach je možné zobrazovať jednotlivé časti komplexnej hodnoty objektu systému D2000 (atribúty). Na zobrazenie hodnôt atribútov pripojených objektov sa používajú špeciálne textové reťazce (grafický objekt Text) uzavreté do zložených zátvoriek "{ }" - formátovacie masky. Maska určuje formát zobrazenej hodnoty.

Maska

Zobrazený atribút komplexnej hodnoty pripojeného objektu

Maska

Zobrazený atribút komplexnej hodnoty pripojeného objektu

{A}

Procesný alarm.

{D}

Popis objektu.
Poznámka: V schémach pri zobrazovaní popisu objektu pre položky štruktúr, ktoré obsahujú indirect objekty sa zobrazí popis indirect objektu namiesto popisu štruktúry. Ak nie je použitý indirect objekt, zobrazí sa popis stĺpca.

{F}

Všetky príznaky (flagy) hodnoty objektu. V závislosti na aktuálnej hodnote príznaku A až P sa zobrazí:

  • veľké písmeno označujúce daný príznak (napr. A) - ak hodnota príznaku je TRUE,

  • znak "_" (podtrhnutie) - ak hodnota príznaku je FALSE.

{Fpríznaky}

Definované príznaky (flagy) hodnoty objektu. Na rozdiel od masky {F} sa v tomto prípade zobrazia len hodnoty príznakov vymenovaných za písmenom F - príznaky (napr. {FACE}). V závislosti na aktuálnej hodnote vymenovaného príznaku sa zobrazí:

  • veľké písmeno označujúce daný príznak (napr. A) - ak hodnota príznaku je TRUE,

  • malé písmeno označujúce daný príznak (napr. b) - ak hodnota príznaku je FALSE.

{L}

Meno užívateľa. Táto maska je iba pre objekty typu Zobrazovacia maska.

{N}

Meno objektu.
Poznámka: V schémach pri zobrazovaní mena objektu pre položky štruktúr, ktoré obsahujú indirect objekty sa zobrazí meno indirect objektu namiesto mena štruktúry. Ak nie je použitý indirect objekt, zobrazí sa meno štruktúry, číslo riadku a meno stĺpca.

{T}

Čas vzniku hodnoty objektu.

{Tmaska}

Čas vzniku hodnoty objektu spolu s maskou pre časový údaj.

{tmaska}

Číselná hodnota objektu zobrazená ako časový údaj podľa zadanej masky pre časový údaj.

{U}

Technické jednotky objektu.
Poznámka: V schémach pri zobrazovaní techn. jednotiek objektu pre položky štruktúr, ktoré obsahujú indirect objekty sa zobrazia tech. jednotky indirect objektu namiesto tech. jednotiek štruktúry.

{V}

Hodnota objektu - ak má objekt stavový text potom sa zobrazí stavový text, ak nie zobrazí sa hodnota objektu

{V+}

Hodnota objektu - ak má objekt stavový text potom sa zobrazí stavový text a v zátvorke hodnota objektu, ak nie zobrazí sa hodnota objektu

{V-}

Hodnota objektu - zobrazí sa hodnota objektu, aj keď objekt má stavový text

{PV}, {PU}, {PT}, {PTmaska}, {Ptmaska}, {PF}, {PFpríznaky}

Písmeno P uvedené vo formátovacej maske zobrazí predchádzajúcu hodnotu daného atribútu.
UPOZORNENIE: Písmeno O vo formátovacích maskách môže byť použité len pri definícii objektu typu Zobrazovacia maska.

Zložené formátovacie masky


V predchádzajúcom texte tejto kapitoly boli spomínané jednoduché formátovacie masky, prostredníctvom ktorých je možné zobraziť hodnotu jedného konkrétneho atribútu komplexnej hodnoty objektu (napr. hodnotu objektu, čas vzniku hodnoty a pod.). Okrem jednoduchých formátovacích masiek sa môžu používať aj tzv. zložené formátovacie masky. Tieto masky, na rozdiel od jednoduchých, zobrazujú hodnoty viacerých atribútov komplexnej hodnoty objektu.

Zložené formátovacie masky sa definujú v rámci jedného textového reťazca vloženého do schémy ako grafický objekt Text.

Príklady zložených formátovacích masiek uvádza nasledujúca tabuľka.

Maska

Zobrazené atribúty komplexnej hodnoty pripojeného objektu>

Maska

Zobrazené atribúty komplexnej hodnoty pripojeného objektu>

{N} {V}

Meno a hodnota objektu.

{V} {U}

Hodnota a technické jednotky objektu.

{N} {T} {F}

Meno, čas vzniku a príznaky hodnoty objektu.

Poznámka 

  • V prípade, že sa v rámci jednej zloženej formátovacej masky vyskytuje maska pre daný atribút (napr. {V}, {T} a pod.) a zároveň maska definujúca vlastný formát hodnoty (napr. {##.#}, {# ### K} a pod.), uplatní sa maska s formátom hodnoty.

Desatinné miesta v reálnych číslach


Zobrazovanie a zadanie reálnych čísiel v D2000 HI

Pre zobrazovanie desatinných miest reálnych čísiel sa používa (zatiaľ v D2000 HI) oddeľovač podľa nastavenia v regionálnych nastaveniach. Pre zadanie reálneho čísla sa môže ako oddeľovač použiť znak "bodka" aj "čiarka". Obe sa používajú na oddelenie desatinnej časti reálneho čísla.

Upozornenie:

  • V regionálnych nastaveniach nepožívajte na oddelenie desatinných miest iný znak ako bodku a čiarku.

  • V zobrazovacích maskách je v ich definícii použitá na oddelenie desatín vždy desatinná bodka. Táto je potom vo výslednom zobrazení hodnoty nahradená znakom z regionálnych nastavení. Preto neodporúčame v maskách na oddelenie tisícov používať znak "čiarka" ani "bodka". Napríklad, ak použijete masku: "###,###.###,###", a v reg. nastaveniach je ako oddeľovač nastavený znak "čiarka", dostanete nezrozumiteľnú hodnotu napr. "121,652,791,654".

Zobrazovanie dátumov a časov

V neformátovaných výstupoch časov, najčastejšie čas hodnôt, sa často krát používa zobrazenie podľa regionálnych nastavení.