Aktuálne hodnoty
Historické údaje
Volanie ESL RPC procedúr
Obmedzenia
Význam stĺpcov so stavovými informáciami
Aktuálne hodnoty
Základné aktuálne hodnoty sú roztriedené podľa typu hodnoty do nasledujúcich piatich tabuliek.
1. AnalogPoints - reálne hodnoty a hodnoty s relatívnym časom.
MENO STĹPCA | TYP HODNOTY | VEĽKOSŤ |
---|---|---|
MENO STĹPCA | TYP HODNOTY | VEĽKOSŤ |
NAME | CHAR | 64 |
DESCRIPT | CHAR | 50 |
VALUE | DOUBLE | 8 |
STATUS | INTEGER | 4 |
WEAK | INTEGER | 4 |
DEFAULT | INTEGER | 4 |
LIMITS | INTEGER | 4 |
FLAGS | INTEGER | 4 |
2. IntegerPoints - celočíselné hodnoty.
MENO STĹPCA | TYP HODNOTY | VEĽKOSŤ |
---|---|---|
MENO STĹPCA | TYP HODNOTY | VEĽKOSŤ |
NAME | CHAR | 64 |
DESCRIPT | CHAR | 50 |
VALUE | INTEGER | 4 |
STATUS | INTEGER | 4 |
WEAK | INTEGER | 4 |
DEFAULT | INTEGER | 4 |
LIMITS | INTEGER | 4 |
FLAGS | INTEGER | 4 |
3. EnumPoints - vymenované typy vrátane typu Boolean.
MENO STĹPCA | TYP HODNOTY | VEĽKOSŤ |
---|---|---|
MENO STĹPCA | TYP HODNOTY | VEĽKOSŤ |
NAME | CHAR | 64 |
DESCRIPT | CHAR | 50 |
VALUE | INTEGER | 4 |
STATUS | INTEGER | 4 |
WEAK | INTEGER | 4 |
DEFAULT | INTEGER | 4 |
LIMITS | INTEGER | 4 |
FLAGS | INTEGER | 4 |
4. TimePoints - hodnoty s absolútnym časom.
MENO STĹPCA | TYP HODNOTY | VEĽKOSŤ |
---|---|---|
MENO STĹPCA | TYP HODNOTY | VEĽKOSŤ |
NAME | CHAR | 64 |
DESCRIPT | CHAR | 50 |
VALUE | TIMESTAMP | |
STATUS | INTEGER | 4 |
WEAK | INTEGER | 4 |
DEFAULT | INTEGER | 4 |
LIMITS | INTEGER | 4 |
FLAGS | INTEGER | 4 |
5. TextPoints
MENO STĹPCA | TYP HODNOTY | VEĽKOSŤ |
---|---|---|
MENO STĹPCA | TYP HODNOTY | VEĽKOSŤ |
NAME | CHAR | 64 |
DESCRIPT | CHAR | 50 |
VALUE | CHAR | 254 |
STATUS | INTEGER | 4 |
WEAK | INTEGER | 4 |
DEFAULT | INTEGER | 4 |
LIMITS | INTEGER | 4 |
FLAGS | INTEGER | 4 |
Objekty typu Pole hodnôt a Štruktúrovaná premenná tvoria samostatné tabuľky. Meno tabuľky je odvodené od mena premennej nahradením znakov bodka "." znakom podčiarkovník "_" v mene.
Každá premenná typu Pole hodnôt tvorí tabuľku s nasledovným formátom:
MENO STĹPCA | TYP HODNOTY | VEĽKOSŤ |
---|---|---|
MENO STĹPCA | TYP HODNOTY | VEĽKOSŤ |
TIME | TIMESTAMP | |
VALUE | DOUBLE | 8 |
STATUS | INTEGER | 4 |
ROW_ID | INTEGER | 4 |
WEAK | INTEGER | 4 |
DEFAULT | INTEGER | 4 |
LIMITS | INTEGER | 4 |
FLAGS | INTEGER | 4 |
Každá premenná typu Štruktúrovaná premenná tvorí tabuľku s formátom zodpovedajúcim formátu štruktúrovanej premennej. Tabuľka je vždy rozšírená o jeden stĺpec ROW_ID určujúci poradové číslo - riadok štruktúrovanej premennej.
Historické údaje
Objekty typu Archivovaná hodnota tvoria samostatné tabuľky. Meno tabuľky je odvodené od mena archivovanej premennej nahradením znakov bodka "." znakom podčiarnik "_" v mene.
Každá premenná typu Archivovaná hodnota tvorí tabuľku s nasledovným formátom:
MENO STĹPCA | TYP HODNOTY | VEĽKOSŤ |
---|---|---|
MENO STĹPCA | TYP HODNOTY | VEĽKOSŤ |
TIME | TIMESTAMP | |
VALUE | DOUBLE | 8 |
STATUS | INTEGER | 4 |
STEP | INTEGER | 4 |
WEAK | INTEGER | 4 |
DEFAULT | INTEGER | 4 |
LIMITS | INTEGER | 4 |
FLAGS | INTEGER | 4 |
ARCH_FLAGS | INTEGER | 4 |
Implementovaná je tabuľka ArchivValues, cez ktorú je možné získať hodnoty viacerých archívnych objektov v rovnakých časových bodoch. Pri výbere z tejto tabuľky je možné zadať viac mien archívnych objektov v jednom príkaze.
Príklad:
SELECT TIME,VALUE01,STATUS01,VALUE02,STATUS02 FROM ArchivValues WHERE TIME >{ts '2000-04-11 10:00:00'} and TIME <{ts '2000-04-11 12:00:00'} and NAME01="H.AAA1" and NAME02="H.AAA2" and STEP=60
Tabuľka ArchivValues má nasledovnú štruktúru:
MENO STĹPCA | TYP HODNOTY | VEĽKOSŤ |
---|---|---|
MENO STĹPCA | TYP HODNOTY | VEĽKOSŤ |
TIME | TIMESTAMP | |
STEP | INTEGER | 4 |
NAME01 | CHAR | 64 |
VALUE01 | DOUBLE | 8 |
STATUS01 | INTEGER | 4 |
WEAK01 | INTEGER | 4 |
DEFAULT01 | INTEGER | 4 |
LIMITS01 | INTEGER | 4 |
FLAGS01 | INTEGER | 4 |
ARCH_FLAGS01 | INTEGER | 4 |
NAME02 | CHAR | 64 |
VALUE02 | DOUBLE | 8 |
STATUS02 | INTEGER | 4 |
WEAK02 | INTEGER | 4 |
DEFAULT02 | INTEGER | 4 |
LIMITS02 | INTEGER | 4 |
FLAGS02 | INTEGER | 4 |
ARCH_FLAGS02 | INTEGER | 4 |
... | ||
NAMEn | CHAR | 64 |
VALUEn | DOUBLE | 8 |
STATUSn | INTEGER | 4 |
WEAKn | INTEGER | 4 |
DEFAULTn | INTEGER | 4 |
LIMITSn | INTEGER | 4 |
FLAGSn | INTEGER | 4 |
ARCH_FLAGSn | INTEGER | 4 |
Kde n je maximálne 12.
Volanie ESL RPC procedúr
Pomocou D2000 ODBC Driver je umožnené aj volanie ESL RPC procedúr zodpovedajúce ESL akcii CALL.
Pre tento účel sú vytvorené špeciálne tabuľky, ktorých mená sú odvodené od mena procesu D2000 EventHandler, na ktorom má byť procedúra
vykonaná, objektu typu event a názvu RPC procedúry.
Tieto sú spojené
znakom "^" (napr. SELF_EVH^E_event^proc), pričom bodky "." v názvoch sú nahradené znakom podčiarkovník
"_".
Tabuľky, ktoré v názve neobsahujú názov procesu Event handler (napr. E_event^proc) slúžia na broadcast volanie RPC procedúry.
Stĺpce týchto tabuliek sú pomenované podľa parametrov procedúry. Parametre typu RECORD sú reprezentované stĺpcami,
ktoré sú tvorené kombináciou názvu parametra a názvu stĺpca štruktúry (parameter^stlpec). Rovnako ako tabuľky štruktúrovaných premenných sú doplnené o stĺpec "ROW_ID".
V menách parametrov sú taktiež bodky "." nahradzované znakom podčiarkovník "_". Tabuľky RPC procedúr sú navyše doplnené o stĺpce "$async" a "$instanceId".
Volanie procedúry môže byť:
- synchrónne - v SELECT časti sa nepoužije stĺpec "$async",
- asynchrónne - v SELECT časti sa použije jediný stĺpec "$async",
- broadcast - použije sa RPC tabuľka bez názvu Event handlera.
V prípade adresovania volania procedúry na konkrétnu inštanciu sa vo WHERE časti použite stĺpec "$instanceId".
Všeobecná syntax volania RPC procedúry:
SELECT $async | param1, param2, param3, ...
FROM [proces_EVH^]E_event^proc
[WHERE param3 = x AND param4 = y AND ... [$instanceId = id]]
Príklady volania RPC procedúr cez ESL a ich ODBC ekvivalent:
synchrónne volanie: | CALL E.event MyProc(_param1, 2) SYNC ON SELF.EVH SELECT _param1 FROM SELF_EVH^E_event^MyProc WHERE _param2 = 2 |
asynchrónne volanie: | CALL E.event MyProc(1, 2) ASYNC ON SELF.EVH SELECT $async FROM SELF_EVH^E_event^MyProc WHERE _param1 =1 AND _param2 = 2 |
WHERE časť môže obsahovať len priradenia hodnôt parametrom.
Výstup SELECT-u bude mať toľko riadkov, koľko má parameter typu RECORD s najväčším počtom riadkov, resp. 1 riadok, ak procedúra má len neštruktúrované typy parametrov.
V prípade, že počas vykonávania procedúry došlo k výnimke, exekúcia SQL dotazu skončí neúspešne.
Výsledok asynchrónneho volania procedúry nie je možné zistiť, a preto takýto dotaz nevracia žiadne dáta.
Obmedzenia
Pre príkaz SELECT platia nasledovné obmedzenia:
- V príkaze SELECT môže byť uvedená len jedna tabuľka.
- Triedenie je povolené len podľa hodnoty jedného stĺpca (ORDER BY).
- Select archívnej hodnoty musí obsahovať ohraničenie časového intervalu napr.:
SELECT TIME,VALUE,STATUS FROM H_NAME WHERE (TIME >"10-04-2000" AND TIME <"12-04-2000 10:00")
Voliteľne môže obsahovať definovanie požadovaného časového kroku v sekundách.
SELECT TIME,VALUE,STATUS FROM H_NAME WHERE (TIME >"10-04-2000" AND TIME <"12-04-2000 10:00") AND STEP=60.
Syntax zadávania absolútneho času "dd-mm-rrrr [hh[:mi[:ss[.mss]]]]" alebo {ts '2000-04-11 10:00:00'}.
Pre volanie RPC procedúr platia nasledovné obmedzenia:
- Nie je možné volať RPC procedúry, ktoré:
- nemajú žiadne parametre,
- obsahujú parametre typu ALIAS,
- obsahujú IN parametre typu RECORD.
- Stĺpec $instanceId RPC tabuliek sa môže nachádzať len vo WHERE časti SQL dotazu.
- Stĺpec $async RPC tabuliek sa môže nachádzať len v SELECT časti SQL dotazu a nemôže byť použitý v kombinácii s iným stĺpcom.
- Stĺpce RPC tabuliek, ktoré reprezentujú stĺpce parametrov typu RECORD, nemôžu byť použité vo WHERE časti SQL dotazu.
- Stĺpce RPC tabuliek reprezentujúce parametre typu IN nemôžu byť použité v SELECT časti SQL dotazu.
- Pri volaní RPC procedúry nie je podporená ORDER BY klauzula ani agregované funkcie (count, avg, max, ...).
Význam stĺpcov so stavovými informáciami
STATUS | - hodnota je platná ak STATUS = 1 |
WEAK | - hodnota je Weak ak WEAK = 1 |
DEFAULT | - hodnota je v stave Default ak DEFAULT = 1 |
LIMITS | - stĺpec môže nadobúdať nasledovné hodnoty: InLimit = 0 , VL_Limit = 1 , L_Limit = 2 , H_Limit = 3 , VH_Limit = 4 , LimitsProblem = 5 |
FLAGS | - stĺpec nadobúda hodnoty Extended flagov (ako bitset): BF_A = 1, BF_B = 2, BF_C = 4, BF_D = 8, BF_E = 16, BF_F = 32, BF_G = 64, BF_H = 128, BF_I = 256, BF_J = 512, BF_K = 1024, BF_L = 2048, BF_M = 4096, BF_N = 8192, BF_O = 16384, BF_P = 32768 |
ARCH_FLAGS | - stĺpec nadobúda hodnoty archívnych príznakov (ako bitset - suma nasledovných konštánt). |
Súvisiace stránky:
0 komentárov