OpenSCADAWiki: Doc/VCA/part4/part14 ...

Home | Index | Changes | Comments | Users | Registration | Login  Password:  
 
This is an old revision of Doc/VCA/part4/part14 from 2015-08-03 17:47:12..

4.14 API ïîëüçîâàòåëüñêîãî ïðîãðàììèðîâàíèÿ è ñåðâèñíûå èíòåðôåéñû OpenSCADA

4.14.1 API ïîëüçîâàòåëüñêîãî ïðîãðàììèðîâàíèÿ

API ïîëüçîâàòåëüñêîãî ïðîãðàììèðîâàíèÿ äâèæêà âèçóàëèçàöèè ïðåäñòàâëåíî ãðóïïîé ôóíêöèé íåïîñðåäñòâåííî â ìîäóëå äâèæêà ÑÂÓ. Âûçîâ ýòèõ ôóíêöèé èç ñêðèïòîâ âèäæåòîâ ìîæåò îñóùåñòâëÿòüñÿ ïðÿìî ïî èäåíòèôèêàòîðó ôóíêöèè, ïîñêîëüêó èõ îáëàñòü èì¸í óêàçûâàåòñÿ äëÿ êîíòåêñòà ñêðèïòîâ âèäæåòîâ.

Ñïèñîê âèäæåòîâ (WdgList)

Îïèñàíèå: Âîçâðàùàåò ñïèñîê âèäæåòîâ â êîíòåéíåðå âèäæåòîâ èëè ñïèñîê äî÷åðíèõ âèäæåòîâ. Åñëè óñòàíîâëåíî <pg> òî âîçâðàùàåòñÿ ñïèñîê ñòðàíèö äëÿ ïðîåêòîâ è ñåàíñîâ.
Ïàðàìåòðû:

ID Èìÿ Òèï Ðåæèì Ïî óìîë÷àíèþ
list Ñïèñîê Ñòðîêà Âîçâðàò
addr Àäðåñ Ñòðîêà Âõîä
pg Ñòðàíèöû Bool Âõîä 0
Ïðèñóòñòâèå óçëà (NodePresent)

Îïèñàíèå: Ïðîâåðêà íà ïðèñóòñòâèå óçëà, âêëþ÷àÿ âèäæåòû, àòðèáóòû è äðóãèå.
Ïàðàìåòðû:

ID Èìÿ Òèï Ðåæèì Ïî óìîë÷àíèþ
rez Ðåçóëüòàò Bool Âîçâðàò
addr Àäðåñ Ñòðîêà Âõîä
Ñïèñîê àòðèáóòîâ (AttrList)

Îïèñàíèå: Âîçâðàùàåò ñïèñîê àòðèáóòîâ âèäæåòà. Åñëè óñòàíîâëåí <noUser> òîãäà âîçâðàùàþòñÿ òîëüêî íå ïîëüçîâàòåëüñêèå àòðèáóòû.
Ïàðàìåòðû:

ID Èìÿ Òèï Ðåæèì Ïî óìîë÷àíèþ
list Ñïèñîê Ñòðîêà Âîçâðàò
addr Àäðåñ Ñòðîêà Âõîä
noUser Áåç ïîëüçîâàòåëüñêèõ Bool Âõîä 1
Çàïðîñ àòðèáóòà (AttrGet)

Îïèñàíèå: Çàïðîñ çíà÷åíèÿ àòðèáóòà âèäæåòà. Çàïðîñ ìîæåò îñóùåñòâëÿòüñÿ êàê óêàçàíèåì ïîëíîãî àäðåñà àòðèáóòà â <addr>, òàê è îòäåëüíî àäðåñà âèäæåòà â <addr>, à èäåíòèôèêàòîðà àòðèáóòà â <attr>.
Ïàðàìåòðû:

ID Èìÿ Òèï Ðåæèì Ïî óìîë÷àíèþ
val Çíà÷åíèå Ñòðîêà Âîçâðàò
addr Àäðåñ Ñòðîêà Âõîä
attr Àòðèáóò Bool Âõîä
Óñòàíîâêà àòðèáóòà (AttrSet)

Îïèñàíèå: Óñòàíîâêà çíà÷åíèÿ àòðèáóòà âèäæåòà. Óñòàíîâêà ìîæåò îñóùåñòâëÿòüñÿ êàê óêàçàíèåì ïîëíîãî àäðåñà àòðèáóòà â <addr>, òàê è îòäåëüíî àäðåñà âèäæåòà â <addr>, à èäåíòèôèêàòîðà àòðèáóòà â <attr>.
Ïàðàìåòðû:

ID Èìÿ Òèï Ðåæèì Ïî óìîë÷àíèþ
addr Àäðåñ Ñòðîêà Âõîä
val Çíà÷åíèå Ñòðîêà Âõîä
attr Àòðèáóò Bool Âõîä

4.14.2 Ñåðâèñíûå èíòåðôåéñû OpenSCADA

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

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

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


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

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

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

tm -- Âðåìÿ/ñ÷¸ò÷èê èçìåíåíèé. Óñòàíîâêà âðåìåíè/ñ÷¸ò÷èêà èçìåíåíèé äëÿ çàïðîñà òîëüêî èçìåíèâøèõñÿ àòðèáóòîâ.

Ðåçóëüòàò:
<el id="{attr}" p="{a_id}">{val}</el> -- Ýëåìåíòû ñ ðåçóëüòàòàìè àòðèáóòîâ.  ýëåìåíòå óêàçûâàþòñÿ: ñòðîêîâûõ èäåíòèôèêàòîð {attr} àòðèáóòà, èíäåêñ {a_id} àòðèáóòà è åãî çíà÷åíèå {val}.
<w id="{wid}" lnkPath="{lnk_path}">{childs+attrs}</w> -- Ýëåìåíòû ñ äî÷åðíèìè âèäæåòàìè è èõ àòðèáóòàìè.  ýëåìåíòå óêàçûâàþòñÿ èäåíòèôèêàòîð äî÷åðíåãî âèäæåòà {wid} è ïóòü âèäæåòà íà êîòîðûé ññûëàåòñÿ äàííûé âèäæåò åñëè îí ÿâëÿåòñÿ ññûëêîé {lnk_path}.

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

Ñ öåëüþ óíèôèêàöèè è îïòèìèçàöèè äîñòóïà ê ñòðàíèöàì ïðåäóñìîòðåíà ñåðâèñíàÿ ôóíêöèÿ ñåàíñà "/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>. Åñëè äàííûé àòðèáóò óñòàíàâëèâàåòñÿ ïðè çàïðîñå, òî äëÿ êàæäîé îòêðûòîé ñòðàíèöû âîçâðàùàåòñÿ ñïèñîê èçìåí¸ííûõ, ñ ìîìåíòà óêàçàííîãî çíà÷åíèÿ ñ÷¸ò÷èêà, âèäæåòîâ îòêðûòîé ñòðàíèöû.

Óïðàâëåíèå ñèãíàëèçàöèåé

Äëÿ ïðåäîñòàâëåíèÿ ìåõàíèçìà ãëîáàëüíîãî êîíòðîëÿ çà ñèãíàëèçàöèåé ñåàíñà ïðåäóñìîòðåíà ñåðâèñíàÿ ôóíêöèÿ ñåàíñà "/serv/alarm" è êîìàíäû çàïðîñà ñòàòóñà ñèãíàëîâ (<get path="/UI/VCAEngine/ses_{Session}/%2fserv%2falarm"/>); è êâèòàöèè ñèãíàëîâ (<quittance path="/UI/VCAEngine/ses_{Session}/%2fserv%2falarm"/>).


Çàïðîñ ñòàòóñà ñèãíàëîâ âîçâðàùàåò îáîáù¸ííîå ñîñòîÿíèå ñèãíàëîâ, à òàê-æå äîïîëíèòåëüíóþ èíôîðìàöèþ äëÿ çâóêîâîé ñèãíàëèçàöèè. Äîïîëíèòåëüíàÿ èíôîðìàöèÿ çâóêîâîé ñèãíàëèçàöèè ïðåäîñòàâëÿåò òåêóùèé ðåñóðñ, çâóêîâîé ôàéë, äëÿ âîñïðîèçâåäåíèÿ è îáåñïå÷èâàåò îòñëåæèâàíèå ïîñëåäîâàòåëüíîñòè ñèãíàëèçàöèè è êâèòàöèè îòäåëüíûõ ôàéëîâ çâóêîâûõ ñîîáùåíèé.


Çàïðîñ íà êâèòàöèþ âûïîëíÿåò êâèòàöèþ óêàçàííîãî âèäæåòà, àòðèáóò <wdg>, â ñîîòâåòñòâèè ñ øàáëîíîì, àòðèáóò <tmpl>.

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

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


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

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 Óñòàíîâêà èìåíè ñåàíñà Óêàçûâàåò èìÿ ñåàíñà îò êîòîðîãî âûïîëíÿåòñÿ îòêëþ÷åíèå èëè çàêðûòèå. Ñåàíñû, íå ÿâëÿþùèåñÿ ôîíîâûìè è ê êîòîðûì íè îäèí èç âèçóàëèçàòîðîâ íå ïîäêëþ÷åí àâòîìàòè÷åñêè çàêðûâàþòñÿ.
Ãðóïïîâîé çàïðîñ äåðåâà áèáëèîòåê âèäæåòîâ

Ñ öåëüþ îïòèìèçàöèè ïðîèçâîäèòåëüíîñòè ëîêàëüíîãî è îñîáåííî ñåòåâîãî âçàèìîäåéñòâèÿ ïðåäóñìîòðåíà ñåðâèñíàÿ ôóíêöèÿ "/serv/wlbBr" è êîìàíäà çàïðîñà äåðåâà áèáëèîòåê âèäæåòîâ: <get path="/UI/VCAEngine/%2fserv%2fwlbBr"/>. Ðåçóëüòàòîì çàïðîñà ÿâëÿåòñÿ äåðåâî ñ ýëåìåíòàìè áèáëèîòåê âèäæåòîâ, òåãè <wlb>. Âíóòðè òåãîâ áèáëèîòåê âèäæåòîâ ñîäåðæàòüñÿ òåã èêîíêè <ico> è òåãè âèäæåòîâ áèáëèîòåêè <w>. Òåãè âèäæåòîâ, â ñâîþ î÷åðåäü, ñîäåðæàò òåã èêîíêè è òåãè äî÷åðíèõ âèäæåòîâ <cw>.


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