OpenSCADAWiki: Doc/VCA/part4/part13 ...

Home | Index | Changes | Comments | Users | Registration | Login  Password:  
 
This is an old revision of Doc/VCA/part4/part13 from 2008-10-07 11:18:02..

4.13 Ñåðâèñíûå èíòåðôåéñû OpenSCADA, ðåàëèçóåìûå â ðàìêàõ äàííîãî ïðîåêòà, äëÿ äîñòóïà ê ýëåìåíòàì ÑÂÓ

Ñåðâèñíûå èíòåðôåéñû ýòî èíòåðôåéñû äîñòóïà ê ñèñòåìå OpenSCADA ïîñðåäñòâîì èíòåðôåéñà óïðàâëåíèÿ OpenSCADA èç âíåøíèõ ñèñòåì. Äàííûé ìåõàíèçì ïîëîæåí â îñíîâó âñåõ ìåõàíèçìîâ îáìåíà âíóòðè OpenSCADA, ðåàëèçîâàííûõ ïîñðåäñòâîì ñëàáûõ ñâÿçåé è ñòàíäàðòíîãî ïðîòîêîëà îáìåíà OpenSCADA.

4.13.1 Àðõèâíûå äàííûå

Äëÿ äîñòóïà ê àðõèâíûì äàííûì ñèñòåìû OpenSCADA èç ýëåìåíòîâ ÑÂÓ, íàïðèìåð èç âèçóàëèçàòîðîâ äëÿ ïîñòðîåíèÿ òðåíäîâ è äðóãèõ äèàãðàì, íåîáõîäèì ãèáêèé è îïòèìèçèðîâàííûé èíòåðôåéñ, â âèäó áîëüøîãî îáú¸ìà è øèðîòû âîçìîæíûõ ðåæèìîâ ðàáîòû ïîäñèñòåìû àðõèâèðîâàíèÿ çíà÷åíèé.  îñíîâå èíòåðôåéñà óïðàâëåíèÿ OpenSCADA ëåæèò ÿçûê XML, íà êîòîðîì ïåðåäàþòñÿ êîìàíäû è ïîëó÷àþòñÿ îòâåòû. Ëîêàëüíî, ðàáîòà ñ XML ñâîäèòñÿ ê ðàáîòå ñ äåðåâîì îáúåêòîâ (òåãîâ) XML, èñêëþ÷àÿ ñòàäèþ ïðåîáðàçîâàíèÿ â ñèìâîëüíûé ïîòîê è ïàðñèíã.


Äëÿ çàïðîñà äàííûõ àðõèâà, â ïîäñèñòåìå àðõèâèðîâàíèÿ, îáúåêòà àðõèâà çíà÷åíèÿ, è îáúåêòå àòðèáóòà ïàðàìåòðà, ïîäñèñòåìû ñáîðà äàííûõ, ïðåäóñìîòðèì êîìàíäû <info path="{a_p_addr}/%2fserv%2fval"/> è <get path="{a_p_addr}/%2fserv%2fval"/> äëÿ çàïðîñà èíôîðìàöèè îá àðõèâå è çíà÷åíèé àðõèâà, ñîîòâåòñòâåííî. Àòðèáóòû äàííûõ êîìàíä, ïðåäóñìàòðèâàþùèå ðàçëè÷íûå ìåõàíèçìû çàïðîñà, ïðåäñòàâèì â òàáëèöå 4.13.1.


Òàáëèöà 4.13.1. Àòðèáóòû êîìàíä çàïðîñà èíôîðìàöèè îá àðõèâå è àðõèâíûõ äàííûõ

IdÈìÿÇíà÷åíèå
Êîìàíäà çàïðîñà èíôîðìàöèè îá àðõèâå: <info path="{a_p_addr}/%2fserv%2fval"/>
arch Óñòàíîâêà èìåíè àðõèâàòîðà àðõèâà Àðõèâàòîð àðõèâà äëÿ êîòîðîãî îïðåäåëÿòü ïàðàìåòðû.
end Êîíòðîëü âåðøèíû àðõèâà â äàííîì àðõèâàòîðå  ðåçóëüòàòå çàïðîñà óêàçûâàåò íà ðåàëüíóþ âåðøèíó àðõèâà çíà÷åíèé â äàííîì àðõèâàòîðå <arch>.  ñëó÷àå îòñóòñòâèÿ àðõèâà àòðèáóò óñòàíàâëèâàåòñÿ â "0".
beg Êîíòðîëü ãëóáèíû àðõèâà â äàííîì àðõèâàòîðå  ðåçóëüòàòå çàïðîñà óêàçûâàåò íà ðåàëüíóþ ãëóáèíó àðõèâà çíà÷åíèé â äàííîì àðõèâàòîðå <arch>.  ñëó÷àå îòñóòñòâèÿ àðõèâà àòðèáóò óñòàíàâëèâàåòñÿ â "0".
per Êîíòðîëü ïåðèîäè÷íîñòè àðõèâà â äàííîì àðõèâàòîðå  ðåçóëüòàòå çàïðîñà óêàçûâàåò íà ðåàëüíóþ ïåðèîäè÷íîñòü çíà÷åíèé â äàííîì àðõèâàòîðå <arch>.  ñëó÷àå îòñóòñòâèÿ àðõèâà àòðèáóò óñòàíàâëèâàåòñÿ â "0".
vtp Êîíòðîëü òèïà çíà÷åíèé àðõèâà/ïàðàìåòðà Âîçâðàùàåò êîä òèïà çíà÷åíèé àðõèâíûõ äàííûõ: 0 - Boolean, 1 - Integer, 4 - Real, 5 - String. Òîëüêî äàííîå ñâîéñòâî äîñòóïíî â ñëó÷àå çàïðîñà ó ïàðàìåòðà áåç àðõèâà!
Êîìàíäà çàïðîñà àðõèâíûõ è/èëè òåêóùèõ äàííûõ: <get path="{a_p_addr}/%2fserv%2fval"/>
tm Óñòàíîâêà è êîíòðîëü âðåìåíè Âðåìÿ çàïðàøèâàåìîãî çíà÷åíèÿ èëè âåðøèíû áëîêà àðõèâà çíà÷åíèé. Åñëè àòðèáóò íå óêàçàí èëè ðàâåí "0", òî âîçâðàùàåòñÿ ïîñëåäíåå çíà÷åíèå. Çíà÷åíèå äàííîãî àòðèáóòà óñòàíàâëèâàåòñÿ â çíà÷åíèå âðåìåíè ïîëó÷åííîãî çíà÷åíèÿ èëè âåðøèíû áëîêà àðõèâíûõ äàííûõ.
tm_grnd Óñòàíîâêà è êîíòðîëü âðåìåíè îñíîâàíèÿ/íà÷àëà àðõèâà Óêàçûâàåò îñíîâàíèå/íà÷àëî àðõèâà. Åñëè àòðèáóò íå óêàçàí èëè ðàâåí "0", òî ïðîèçâîäèòñÿ çàïðîñ îäíîãî çíà÷åíèÿ. Çíà÷åíèå äàííîãî àòðèáóòà óñòàíàâëèâàåòñÿ â çíà÷åíèå âðåìåíè îñíîâàíèÿ áëîêà àðõèâíûõ äàííûõ.
per Óñòàíîâêà è êîíòðîëü ïåðèîäè÷íîñòè ïîëó÷àåìûõ çíà÷åíèé Ïåðèîäè÷íîñòü çàïðàøèâàåìûõ çíà÷åíèé. Åñëè àòðèáóò íå óêàçàí, ðàâåí "0" èëè ìåíüøå ÷åì ðåàëüíàÿ ïåðèîäè÷íîñòü àðõèâà, òî çíà÷åíèÿ áóäóò âîçâðàùàòüñÿ ñ ðåàëüíîé ïåðèîäè÷íîñòüþ àðõèâà è çíà÷åíèå äàííîãî àòðèáóòà óñòàíîâèòñÿ â çíà÷åíèå ðåàëüíîé ïåðèîäè÷íîñòè. Åñëè çíà÷åíèå àòðèáóòà áîëüøå ðåàëüíîé ïåðèîäè÷íîñòè, òî çíà÷åíèÿ àðõèâà áóäóò óñðåäíÿòüñÿ ê óêàçàííîé ïåðèîäè÷íîñòè.
arch Óñòàíîâêà è êîíòðîëü àðõèâàòîðà àðõèâà Óêàçûâàåò ó êàêîãî àðõèâàòîðà çàïðàøèâàòü çíà÷åíèÿ. Åñëè àðõèâàòîð íå óêàçàí, òî çàïðîñ áóäåò ïðîèçâîäèòüñÿ ïîñëåäîâàòåëüíî, ñ ïðèîðèòåòíîñòüþ îò ëó÷øåãî ê õóäøåìó. Èìÿ àðõèâàòîðà, ó êîòîðîãî ïîëó÷åíû çíà÷åíèÿ áóäåò óêàçàííî â äàííîì àòðèáóòå ïðè âîçâðàòå ðåçóëüòàòà. Åñëè àðõèâàòîð äëÿ äàííîãî ïàðàìåòðà íå óñòàíîâëåí èëè òàêîãî àðõèâàòîðà íåò, òî çíà÷åíèé äàííîãî àòðèáóòà áóäåò îáíóëåíî.  ñëó÷àå âûïîëíåíèå çàïðîñà ïåðåñåêàþùåãî íåñêîëüêî àðõèâàòîðîâ âûïîëíÿåòñÿ îáðàáîòêà òîëüêî ïåðâîãî àðõèâàòîðà ñ óêàçàíèåì åãî èìåíè è ðàçìåðíîñòè â ñîîòâåòñòâóþùèõ àòðèáóòàõ. Äëÿ çàïðîñà äàííûõ ïîñëåäóþùèõ àðõèâàòîðîâ çàïðîñ ïîâòîðÿåòñÿ îòòàëêèâàÿñü îò ðàçìåðíîñòè ïðåäûäóùåãî çàïðîñà.
mode Óñòàíîâêà è êîíòðîëü ðåæèìà ïåðåäà÷è äàííûõ àðõèâà

Óêàçûâàåòñÿ ôîðìà â êîòîðîé æåëàòåëüíî ïîëó÷àòü äàííûå àðõèâà. Ïðåäóñìàòðèâàþòñÿ ñëåäóþùèå ðåæèìû/ôîðìû ïåðåäà÷è äàííûõ àðõèâîâ:

0 -- Ïðîñòàÿ çàïèñü: îäíî çíà÷åíèå - îäíà ñòðîêà, áåç óïàêîâêè ñìåæíûõ çíà÷åíèé.  ñëó÷àå àðõèâà ñòðîê, çíà÷åíèÿ êîäèðóþòñÿ íà ïðåäìåò èñêëþ÷åíèÿ ñèìâîëîâ ïåðåâîäà ñòðîêè. Ïðèìåð ôîðìû çàïèñè:
34.5678
23.6543
65.8754
34.6523

1 -- Óïàêîâàííàÿ çàïèñü ïî ïðèíöèïó ñâîðà÷èâàíèÿ ñìåæíûõ çíà÷åíèé: îäíî çíà÷åíèå - îäíà çàïèñü. Ïåðåä êàæäûì çíà÷åíèåì óêàçûâàåòñÿ åãî ïîçèöèîííûé íîìåð, îòäåë¸ííûé ïðîáåëîì:

0 34.5678
1 23.6543
4 65.8754
6 34.6523

2 -- Ìàññèâ áèíàðíûõ, íå óïàêîâàííûõ çíà÷åíèé, êîäèðîâàííûé Mime Base64. Íå ìîæåò áûòü èñïîëüçîâàí äëÿ ñòðîêîâûõ àðõèâîâ.
real_prec Óñòàíîâêà òî÷íîñòè âåùåñòâåííûõ ÷èñåë Óêàçûâàåò ñ êàêîé òî÷íîñòüþ ïåðåäàâàòü äàííûå çíà÷åíèé âåùåñòâåííîãî òèïà, â ðåæèìå "0" è "1". Ïî óìîë÷àíèþ ýòà òî÷íîñòü ñîñòàâëÿåò 6 çíà÷àùèõ öèôð.
round_perc Óñòàíîâêà ïðîöåíòà îêðóãëåíèÿ Óêàçûâàåò ïðîöåíò îêðóãëåíèÿ ñìåæíûõ ÷èñëîâûõ çíà÷åíèé, äëÿ ðåæèìà "1".

4.13.2 Äîñòóï ê çíà÷åíèÿì àòðèáóòîâ ýëåìåíòîâ âèçóàëèçàöèè (âèäæåòû)

Ñ öåëüþ ïðåäîñòàâëåíèÿ óíèôèöèðîâàííîãî, ãðóïïîâîãî è ñðàâíèòåëüíî áûñòðîãî äîñòóïà ê çíà÷åíèÿì àòðèáóòîâ âèçóàëüíûõ ýëåìåíòîâ ïðåäóñìîòðåíà ñåðâèñíàÿ ôóíêöèÿ âèçóàëüíîãî ýëåìåíòà "/serv/attr" è êîìàíäû ïîëó÷åíèÿ/óñòàíîâêè çíà÷åíèé àòðèáóòîâ: <get path="/UI/VCAEngine/{wdg_addr}/%2fserv%2fattr"/> è <set path="/UI/VCAEngine/{wdg_addr}/%2fserv%2fattr"/>. Àòðèáóòû äàííûõ êîìàíä, ïðåäóñìàòðèâàþùèå ðàçëè÷íûå ìåõàíèçìû çàïðîñà, ïðåäñòàâèì â òàáëèöå 4.13.2.


Òàáëèöà 4.13.2. Àòðèáóòû êîìàíä ïîëó÷åíèÿ/óñòàíîâêè àòðèáóòîâ âèçóàëüíûõ ýëåìåíòîâ

IdÈìÿÇíà÷åíèå
Êîìàíäà çàïðîñà âèçóàëüíûõ àòðèáóòîâ âèäæåòà: <get path="/UI/VCAEngine/{wdg_addr}/%2fserv%2fattr"/>
tm Âðåìÿ/ñ÷¸ò÷èê èçìåíåíèé Óñòàíîâêà âðåìåíè/ñ÷¸ò÷èêà èçìåíåíèé äëÿ çàïðîñà òîëüêî èçìåíèâøèõñÿ àòðèáóòîâ.
<el id="{attr}" pos="{a_id}>{val}</el> Ôîðìèðîâàíèå äî÷åðíèõ ýëåìåíòîâ ñ ðåçóëüòàòàìè àòðèáóòîâ  äî÷åðíåì ýëåìåíòå óêàçûâàþòñÿ: ñòðîêîâûõ èäåíòèôèêàòîð {attr} àòðèáóòà, èíäåêñ {a_id} àòðèáóòà è åãî çíà÷åíèå {val}.
Êîìàíäà óñòàíîâêè âèçóàëüíûõ àòðèáóòîâ âèäæåòà: <set path="/UI/VCAEngine/{wdg_addr}/%2fserv%2fattr"/>
<el id="{attr}">{val}</el> Óñòàíîâêà àòðèáóòîâ  äî÷åðíèõ ýëåìåíòàõ óêàçûâàåòñÿ èäåíòèôèêàòîð àòðèáóòà {attr} è åãî çíà÷åíèå {val}.

4.13.3 Äîñòóï ê ñòðàíèöàì ñåàíñà

Ñ öåëüþ óíèôèêàöèè è îïòèìèçàöèè äîñòóïà ê ñòðàíèöàì ïðåäóñìîòðåíà ñåðâèñíàÿ ôóíêöèÿ ñåàíñà "/serv/pg" è êîìàíäû çàïðîñà ïåðå÷íÿ îòêðûòûõ ñòðàíèö (<openlist path="/UI/VCAEngine/ses_{Session}/%2fserv%2fpg"/>); îòêðûòèÿ ñòðàíèöû (<open path="/UI/VCAEngine/ses_{Session}/%2fserv%2fpg"/>); è çàêðûòèÿ ñòðàíèöû <close path="/UI/VCAEngine/ses_{Session}/%2fserv%2fpg"/>).


Ðåçóëüòàòîì çàïðîñà ïåðå÷íÿ îòêðûòûõ ñòðàíèö ÿâëÿþòñÿ äî÷åðíèå ýëåìåíòû <el>{OpPage}</el> ñîäåðæàùèå ïîëíûé ïóòü îòêðûòîé ñòðàíèöû. Êðîìå ïåðå÷íÿ îòêðûòûõ ñòðàíèö çàïðîñ âîçâðàùàåò çíà÷åíèå òåêóùåãî ñ÷¸ò÷èêà âû÷èñëåíèÿ ñåàíñà â àòðèáóòå <tm>. Åñëè äàííûé àòðèáóò óñòàíàâëèâàåòñÿ ïðè çàïðîñå, òî äëÿ êàæäîé îòêðûòîé ñòðàíèöû âîçâðàùàåòñÿ ñïèñîê èçìåí¸ííûõ, ñ ìîìåíòà óêàçàííîãî çíà÷åíèÿ ñ÷¸ò÷èêà, âèäæåòîâ îòêðûòîé ñòðàíèöû.

4.13.4 Ìàíèïóëÿöèÿ ñåàíñàìè ïðîåêòîâ

Äëÿ ïðåäîñòàâëåíèÿ óíèôèöèðîâàííîãî ìåõàíèçìà ìàíèïóëÿöèè ñåàíñàìè, âèçóàëèçàòîðàì ÑÂÓ, â ìîäóëå äâèæêà ÑÂÓ (VCAEngin) ïðåäóñìîòðåíà ñåðâèñíàÿ ôóíêöèÿ "/serv/sess" è êîìàíäû çàïðîñà ïåðå÷íÿ îòêðûòûõ ñåàíñîâ, ïîäêëþ÷åíèÿ/ñîçäàíèÿ íîâîãî ñåàíñà è îòêëþ÷åíèÿ/óäàëåíèÿ ñåàíñà: <list path="/UI/VCAEngine/%2fserv%2fsess"/>, <connect path="/UI/VCAEngine/%2fserv%2fsess"/> è <disconnect path="/UI/VCAEngine/%2fserv%2fsess"/> ñîîòâåòñòâåííî. Àòðèáóòû äàííûõ êîìàíä, ïðåäóñìàòðèâàþùèå ðàçëè÷íûå ìåõàíèçìû çàïðîñà, ïðåäñòàâèì â òàáëèöå 4.13.4.


Òàáëèöà 4.13.4. Àòðèáóòû êîìàíä ìåõàíèçìà ìàíèïóëÿöèè ñåàíñàìè

IdÈìÿÇíà÷åíèå
Êîìàíäà çàïðîñà ïåðå÷íÿ îòêðûòûõ ñåàíñîâ äëÿ ïðîåêòà: <list path="/UI/VCAEngine/%2fserv%2fsess"/>
prj Óêàçàíèå ïðîåêòà Óêàçûâàåò ïðîåêò äëÿ êîòîðîãî âîçâðàùàòü ïåðå÷åíü îòêðûòûõ ñåàíñîâ.
<el>{Session}</el> Êîíòðîëü ïåðå÷íÿ ñåàíñîâ  äî÷åðíèõ ýëåìåíòàõ óêàçûâàþòñÿ ñåàíñû, îòêðûòûå äëÿ çàïðîøåííîãî ïðîåêòà.
Êîìàíäà ïîäêëþ÷åíèÿ/îòêðûòèÿ ñåàíñà: <connect path="/UI/VCAEngine/%2fserv%2fsess"/>
sess Óñòàíîâêà è êîíòðîëü èìåíè ñåàíñà Åñëè àòðèáóò îïðåäåë¸í, òî ïðîèçâîäèòñÿ ïîäêëþ÷åíèå ê ñóùåñòâóþùåìó ñåàíñó, èíà÷å ñîçäàíèå íîâîãî ñåàíñà.  ñëó÷àå îòêðûòèÿ íîâîãî ñåàíñà â äàííûé àòðèáóò ïîìåùàåòñÿ åãî èìÿ.
prj Óñòàíîâêà èìåíè ïðîåêòà Èñïîëüçóåòñÿ äëÿ îòêðûòèÿ íîâîãî ñåàíñà äëÿ óêàçàííîãî ïðîåêòà è åñëè àòðèáóò {sess} íå óêàçàí.
Êîìàíäà îòêëþ÷åíèÿ/çàêðûòèÿ ñåàíñà: <disconnect path="/UI/VCAEngine/%2fserv%2fsess"/>
sess Óñòàíîâêà èìåíè ñåàíñà Óêàçûâàåò èìÿ ñåàíñà îò êîòîðîãî âûïîëíÿåòñÿ îòêëþ÷åíèå èëè çàêðûòèå. Ñåàíñû, íå ÿâëÿþùèåñÿ ôîíîâûìè è ê êîòîðûì íè îäèí èç âèçóàëèçàòîðîâ íå ïîäêëþ÷åí àâòîìàòè÷åñêè çàêðûâàþòñÿ.

 
There are no files on this page.[Display files/form]
There is no comment on this page. [Display comments/form]