OpenSCADAWiki: Using/ Smart House ...

Home | Index | Changes | Comments | Users | Registration | Login  Password:  
 
This is an old revision of Using/SmartHouse from 2011-07-13 12:27:16..

Àâòîìàòèçàöèÿ æèëîãî äîìà - "Óìíûé äîì" (HouseSpirit)

Èìÿ: "Óìíûé äîì" (HouseSpirit)
Íà÷àò: 28 03(ìàðòà) 2011ã
Çàâåðø¸í: 12 06(èþíÿ) 2011ã
Ðàñïîëîæåíèå: ã.Õàíòû-Ìàíñèéñê
Ó÷àñòíèêè: Îëåã Ñèäàøîâ, Ðîìàí Ñàâî÷åíêî
Îïèñàíèå: Ðåàëèçàöèÿ ïðîåêòà àâòîìàòèçàöèè æèëîãî äîìà - "Óìíûé äîì" (HouseSpirit).
Ìàòåðèàëû: ñòðàíèöà (äîñòóï îãðàíè÷åí)
Óìíûé äîì (HouseSpirit) (57 Kb)


Contents

Ââåäåíèå

Îáúåêòîì àâòîìàòèçàöèè ÿâëÿåòñÿ æèëîé äîì, îñíàù¸ííûé îáîðóäîâàíèåì, ïîäëåæàùèì àâòîìàòèçàöèè. Ñèñòåìà ïðåäíàçíà÷åíà äëÿ àâòîìàòèçàöèè äåéñòâèé, âûïîëíÿåìûõ ïîëüçîâàòåëåì èëè îáñëóæèâàþùèì ïåðñîíàëîì äëÿ îáåñïå÷åíèÿ áåçîïàñíîñòè, êîìôîðòà, óäîáñòâà ïðîæèâàíèÿ íà îáúåêòå àâòîìàòèçàöèè – â æèëîì ïîìåùåíèè (êîìíàòà, êâàðòèðà, ÷àñòíûé äîì), à òàêæå íà ïðèëåãàþùåé ê íåìó òåððèòîðèè (çåìåëüíûé ó÷àñòîê, äâîð, ñàä).


Ñèñòåìà ïðåäíàçíà÷åíà äëÿ ðåøåíèÿ ñëåäóþùèõ çàäà÷:


Öåëÿìè ñîçäàíèÿ ñèñòåìû ÿâëÿþòñÿ:

1. Îáúåêò àâòîìàòèçàöèè

Ïëîùàäü îáúåêòà àâòîìàòèçàöèè ≈ 300 ì2. Òåìïåðàòóðà âîçäóõà â ïîìåùåíèÿõ, ïðåäíàçíà÷åííûõ äëÿ óñòàíîâêè ñåðâåðà, äàò÷èêîâ è èñïîëíèòåëüíûõ ìåõàíèçìîâ: îò 10 äî 25 ãðàäóñîâ Öåëüñèÿ. Òåìïåðàòóðà âîçäóõà âíå ïîìåùåíèÿõ, ãäå óñòàíàâëèâàþòñÿ äàò÷èêè è èñïîëíèòåëüíûå ìåõàíèçìû: îò - 30 äî 30 °Ñ.
Óðîâíè çàãðÿçíåííîñòè, âëàæíîñòè, îñâåùåííîñòè, øóìà è èîíèçèðóþùèõ èçëó÷åíèé ñîîòâåòñòâóþò ñàíèòàðíî-ýïèäåìèîëîãè÷åñêèì òðåáîâàíèÿì ê æèëûì çäàíèÿì è ïîìåùåíèÿì (ÑÀÍÏÈÍ 2.1.2.1002-00).


Íà îáúåêòå ïðèñóòñòâóåò ýëåêòðîìàãíèòíîå èçëó÷åíèå, èíäóöèðóåìîå áûòîâûìè ïðèáîðàìè, à òàêæå ñðåäñòâàìè ýëåêòðîííî-âû÷èñëèòåëüíîé òåõíèêè (Bluetooth, Wi-Fi, GSM).


Ñèñòåìà “Óìíûé äîì. Ñåðâåð óïðàâëåíèÿ” ïðåäñòàâëÿåò ñîáîé ïðîãðàììíî-àïïàðàòíûé ìîäóëü, ÿâëÿþùèéñÿ îñíîâíûì óïðàâëÿþùèì öåíòðîì îáúåêòà àâòîìàòèçàöèè. Ñåðâåð ïðèíèìàåò è îáðàáàòûâàåò ñèãíàëû îò ðàçëè÷íûõ äàò÷èêîâ, ôîðìèðóåò è ïåðåäàåò ñèãíàëû óïðàâëåíèÿ èñïîëíèòåëüíûì óñòðîéñòâàìè, îñóùåñòâëÿåò ñâÿçü ñ ïîëüçîâàòåëåì ÷åðåç ñåòü GSM. Óïðàâëåíèå ñèñòåìîé ïîëüçîâàòåëÿìè îñóùåñòâëÿåòñÿ ÷åðåç âåá-èíòåðôåéñ.


Ñèñòåìà “Óìíûé äîì. Ñåðâåð óïðàâëåíèÿ” âêëþ÷àåò ñëåäóþùèå ïîäñèñòåìû:

  1. Ïîäñèñòåìà êîíòðîëÿ äîñòóïà.
  2. Ïîäñèñòåìà óïðàâëåíèÿ îñâåùåíèåì.
  3. Ïîäñèñòåìà óïðàâëåíèÿ ìèêðîêëèìàòîì.
  4. Ïîäñèñòåìà óïðàâëåíèÿ âîäîïðîâîäíîé ñåòüþ.
  5. Ïîäñèñòåìà óïðàâëåíèÿ áûòîâîé è ìóëüòèìåäèéíîé ýëåêòðîòåõíèêîé.
  6. Ïîäñèñòåìà îáðàáîòêè èíôîðìàöèè, ïîñòóïàþùåé ñ äàò÷èêîâ.
  7. Ïîäñèñòåìà îáåñïå÷åíèÿ èíòåðàêòèâíîãî âçàèìîäåéñòâèÿ ñ ïîëüçîâàòåëåì ÷åðåç Web-èíòåðôåéñ è ÷åðåç ñåòü GSM.
  8. Ïîäñèñòåìà àâòîðèçàöèè.
  9. Ïîäñèñòåìà ôîðìèðîâàíèÿ îò÷åòîâ.
  10. Ïîäñèñòåìà êîíôèãóðàöèè îáåñïå÷èâàåò ìåõàíèçìû äîáàâëåíèÿ, èçâëå÷åíèÿ è ðåäàêòèðîâàíèÿ èíôîðìàöèè â èñïîëüçóåìîé áàçå äàííûõ, äëÿ ðàáîòû ïîäñèñòåì 1-8.

Ñòðóêòóðíàÿ ñõåìà ñèñòåìû äîìîâîé àâòîìàòèêè ïðèâåäåíà íà ðèñ.1.


Ñòðóêòóðà (202 Kb)
Ðèñ. 1. Ñòðóêòóðíàÿ ñõåìà ñèñòåìû äîìîâîé àâòîìàòèêè.

Äëÿ óïðàâëåíèÿ ðàçëè÷íûì îáîðóäîâàíèåì æèëîãî äîìà áûë ðàçðàáîòàí êîíöåíòðàòîð è âûñòðîåíà áåñïðîâîäíàÿ ñåòü ZigBee èç óñòðîéñòâ óïðàâëåíèÿ îáîðóäîâàíèåì. Îáùèé êîíòðîëü îáîðóäîâàíèåì, à òàêæå ïðåäîñòàâëåíèå ïîëüçîâàòåëüñêîãî Web-èíòåðôåéñà è èíûå ñïîñîáû óâåäîìëåíèÿ îñóùåñòâëÿþòñÿ âûäåëåííûì ñåðâåðîì äîìîâîé àâòîìàòèêè. Êîíöåíòðàòîð ñåòè ZigBee, ïðè ýòîì ïîäêëþ÷àåòñÿ ê ñåðâåðó ïîñðåäñòâîì èíòåðôåéñà RS-232 è ïðîòîêîëà ModBus/RTU. Íàðóøåíèÿ â îáëàñòè êîíòðîëÿ àâòîìàòèêè âûñûëàþòñÿ ïîëüçîâàòåëþ â âèäå SMS-óâåäîìëåíèé ÷åðåç ïîäêëþ÷åííûé GSM-ìîäåì.


Êîíòðîëëåð áåñïðîâîäíîé ñâÿçè èìååò ñëåäóþùèå òåõíè÷åñêèå õàðàêòåðèñòèêè:


GSM-ìîäóëü îáëàäàåò ñëåäóþùèìè òåõíè÷åñêèìè õàðàêòåðèñòèêàìè (Siemens TC65):


Àïïàðàòíàÿ ÷àñòü ñåðâåðà:


 êà÷åñòâå ïðîãðàììíîãî îêðóæåíèÿ, äëÿ âûïîëíåíèÿ ôóíêöèè àâòîìàòèçàöèè æèëûõ ïîìåùåíèé - "Óìíûé äîì" èñïîëüçîâàíî îòêðûòóþ SCADA ñèñòåìó OpenSCADA, â îêðóæåíèè êîòîðîé ðàçðàáîòàí ïîëüçîâàòåëüñêèé Web-èíòåðôåéñ "Óìíûé äîì", à òàêæå ðåàëèçîâàí îïðîñ è êîíòðîëü óñòðîéñòâàìè ïîñðåäñòâîì ZigBee êîíöåíòðàòîðà.

2. Ñèñòåìà àâòîìàòèçàöèè

Ñèñòåìà OpenSCADA èìååò íåñêîëüêî ñïîñîáîâ ôîðìèðîâàíèÿ ïîëüçîâàòåëüñêèõ èíòåðôåéñîâ âèçóàëèçàöèè, íà÷èíàÿ îò èíòåãðèðîâàííûõ èíñòðóìåíòîâ ðàçðàáîòêè òèïîâûõ èíòåðôåéñîâ êîíòðîëÿ ðàçëè÷íûõ îáëàñòåé àâòîìàòèçàöèè è çàêàí÷èâàÿ íèçêîóðîâíåâûìè ìåõàíèçìàìè áèáëèîòåê è èíòåðôåéñîâ ãðàôè÷åñêèõ êîíöåïòîâ.


 ëèöå èíòåãðèðîâàííûõ èíòåðôåéñîâ OpenSCADA ñîäåðæèò:


Ê íèçêîóðîâíåâûì ìåõàíèçìàì ïîñòðîåíèÿ ïîëüçîâàòåëüñêèõ èíòåðôåéñîâ ìîæíî îòíåñòè ëþáûå äðóãèå ãðàôè÷åñêèå áèáëèîòåêè, â êîòîðûõ åñòü èíñòðóìåíòû áûñòðîé ðàçðàáîòêè ïîëüçîâàòåëüñêèõ èíòåðôåéñîâ. Ïðè ýòîì êîîïåðàöèÿ ñ OpenSCADA ïðîèçâîäèòñÿ êàê ñ èñòî÷íèêîì äàííûõ è èíòåðôåéñîì óíèôèöèðîâàííîãî óïðàâëåíèÿ îáîðóäîâàíèåì ïî ðàçëè÷íûì ïðîòîêîëàì.


Äëÿ ïðåäîñòàâëåíèÿ âîçìîæíîñòè ñâîáîäíîãî ôîðìèðîâàíèÿ ïîëüçîâàòåëüñêèõ Web - èíòåðôåéñîâ, íåïîñðåäñòâåííî â îêðóæåíèè OpenSCADA, ïðåäóñìîòðåí ìîäóëü «UI.WebUser». Â öåëîì OpenSCADA ñîäåðæèò âñå îñíîâíûå ôóíêöèè òèïîâîãî Web-ñåðâåðà, à èìåííî:

Ñëåäîâàòåëüíî, äëÿ ïîñòðîåíèÿ ïðîèçâîëüíîãî ïîëüçîâàòåëüñêîãî èíòåðôåéñà êîíòðîëÿ äîñòàòî÷íî èìåòü èíñòàëëèðîâàííóþ ñèñòåìó OpenSCADA ñ ìîäóëÿìè: Transport.Sockets?, Transport.SSL, Protocol.HTTP è UI.WebUser.

2.1. Ñòðóêòóðà è ðàçìåùåíèå ôàéëîâ

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


Ñòàòè÷åñêàÿ ÷àñòü ïðåäñòàâëÿåò èç ñåáÿ íàáîð øàáëîííûõ HTML-ôàéëîâ, ñ ìåòêàìè ðàçìåùåíèÿ äèíàìèêè, è ðåñóðñíûå ôàéëû: CSS, JavaScript è èçîáðàæåíèÿ.  öåëîì, ñòàòè÷åñêàÿ ÷àñòü ïðåäñòàâëåíà ôàéëàìè, êîòîðûå îïèñàíû â òàáëèöå íèæå:


Ôàéë Îïèñàíèå
HTML-øàáëîíû (HouseSpirit/Web/*)
main.html Ãëàâíûé øàáëîí ïîëüçîâàòåëüñêîãî èíòåðôåéñà. Ñîäåðæèò îáùèé èíòåðôåéñ ïîëüçîâàòåëÿ ñ ìåòêîé ðàñïîëîæåíèÿ ñîäåðæèìîãî ñòðàíèö «
auth.html Øàáëîí èíòåðôåéñà àâòîðèçàöèè ñ ìåòêîé ðàñïîëîæåíèÿ ñîäåðæèìîãî « Ñîçäàí äëÿ èñïîëüçîâàíèÿ ìîäóëåì ïðîòîêîëà HTTP (/sub_Protocol/mod_HTTP).
access.html Øàáëîí êîíòðîëÿ äîñòóïà.
temperature.html Øàáëîí óïðàâëåíèÿ ìèêðîêëèìàòîì.
light.html Øàáëîí óïðàâëåíèÿ îñâåùåíèåì.
water.html Øàáëîí óïðàâëåíèÿ âîäîïðîâîäíîé ïîäñèñòåìîé.
tech.html Øàáëîí óïðàâëåíèÿ ýëåêòðîííîé è áûòîâîé òåõíèêîé.
friend.html Øàáëîí óïðàâëåíèÿ ïîëüçîâàòåëüñêèìè óñòðîéñòâàìè.
user.html Øàáëîí äèñïåò÷åðà ïîëüçîâàòåëåé.
devices.html Øàáëîí äèñïåò÷åðà óñòðîéñòâ.
loginError.html Ñòðàíèöà ñîîáùåíèÿ îøèáêè àóòåíòèôèêàöèè èëè å¸ îòñóòñòâèÿ.
mess.html Øàáëîí ñîîáùåíèé àêòèâíûõ àâàðèéíûõ ñèòóàöèé.
report.html Øàáëîí ôîðìèðîâàíèÿ îò÷¸òîâ îá íàðóøåíèÿõ, äåéñòâèÿõ è ñèñòåìíûõ ñîîáùåíèÿõ.
welcome.html Ñòðàíèöà ïðèâåòñòâèÿ, îòîáðàæàåìàÿ ïî óìîë÷àíèþ â ïîëå êîíòåíòà.
Ðåñóðñû (HouseSpirit/Web/res/*)
stylesheet.css Êàñêàäíûå òàáëèöû ñòèëåé âñåãî ïîëüçîâàòåëüñêîãî èíòåðôåéñà.
main.js JavaScript êîä ãëàâíîãî øàáëîíà, äëÿ ñ÷¸ò÷èêà âðåìåíè è ñåàíñà.
devMon.js JavaScript êîä ðåàëèçàöèè äèíàìè÷åñêîãî AJAX èíòåðôåéñà ìîíèòîðèíãà óñòðîéñòâ ïîäñèñòåì.
access.png, accesson.png Èçîáðàæåíèÿ ïîäñèñòåìû êîíòðîëÿ äîñòóïà.
temperature.png, temperatureon.png Èçîáðàæåíèÿ ïîäñèñòåìû óïðàâëåíèÿ ìèêðîêëèìàòîì.
light.png, lighton.png Èçîáðàæåíèÿ ïîäñèñòåìû óïðàâëåíèÿ îñâåùåíèåì.
water.png, wateron.png Èçîáðàæåíèÿ óïðàâëåíèÿ âîäîïðîâîäíîé ïîäñèñòåìîé.
tech.png, techon.png Èçîáðàæåíèÿ ïîäñèñòåìû óïðàâëåíèÿ ýëåêòðîííîé è áûòîâîé òåõíèêîé.
friend.png, friendon.png Èçîáðàæåíèÿ ïîäñèñòåìû óïðàâëåíèÿ ïîëüçîâàòåëüñêèìè óñòðîéñòâàìè.
user.png, useron.png Èçîáðàæåíèÿ äèñïåò÷åðà ïîëüçîâàòåëåé.
devices.png, deviceson.png Èçîáðàæåíèÿ äèñïåò÷åðà óñòðîéñòâ.
report.png, reporton.png Èçîáðàæåíèå ôîðìèðîâàíèÿ îò÷¸òîâ îá íàðóøåíèÿõ äåéñòâèÿõ è ñèñòåìíûõ ñîîáùåíèÿõ.
help.png, helpon.png Èçîáðàæåíèÿ ñòðàíèöû ïîìîùè.
HouseSpirit.ico Èêîíêà Web-èíòåðôåéñà.
hd_l.png, hd_r.png Ëåâàÿ è ïðàâàÿ ÷àñòè çàãîëîâêà.
select_l.png, select_r.png Èçîáðàæåíèÿ ôîíà âûáðàííîãî ýëåìåíòà ìåíþ ñëåâà è ñïðàâà.
space_l.png, space_r.png Èçîáðàæåíèÿ ñâîáîäíîãî ïóíêòà ìåíþ ñëåâà è ñïðàâà.
status_l.png, status_r.png status_edge.png Èçîáðàæåíèÿ ñòðîêè ñòàòóñà.
Ôàéëû îò÷¸òîâ (HouseSpirit/Web/reports/*)
rep_{user}.html Ïîñëåäíèé îò÷¸ò ïîëüçîâàòåëÿ user.

Äèíàìè÷åñêàÿ ÷àñòü ðåàëèçîâàíà ñêðèïòàìè OpenSCADA íà âíóòðåííåì ÿçûêå JavaLikeCalc, êîòîðûå îïèñàíû â òàáëèöå íèæå:

Àäðåñ ñêðèïòà Îïèñàíèå
Ñêðèïò Web-ñàéòà (/sub_UI/mod_WebUser/)
up_hs

Ãëàâíûé ñêðèïò Web-ñàéòà, êîòîðûé âûïîëíÿåò íåïîñðåäñòâåííûé ïðè¸ì, ïåðâè÷íóþ îáðàáîòêó è ôîðìèðîâàíèå îêîí÷àòåëüíîãî îòâåòà, à èìåííî:

  • Îáñëóæèâàíèå çàïðîñîâ ê ñòðàíèöàì-øàáëîíàì:
    • ÷òåíèå ôàéëà âûáðàííîé ñòðàíèöû-øàáëîíà, åñëè âûáîð èìåë ìåñòî;
    • ÷òåíèå è ïàðñèíã ôàéëà ãëàâíîãî øàáëîíà èíòåðôåéñà (main.html);
    • ïîìåùåíèå òåêóùåãî âðåìåíè ñåðâåðà â àòðèáóò value ýëåìåíòà äåðåâà ãëàâíîãî øàáëîíà ñ èäåíòèôèêàòîðîì time_vl;
    • ïîìåùåíèå íà÷àëüíîãî çíà÷åíèÿ ñ÷¸ò÷èêà àêòèâíîãî ñåàíñà â àòðèáóò value ýëåìåíòà äåðåâà ãëàâíîãî øàáëîíà ñ èäåíòèôèêàòîðîì ses_vl;
    • ïðîâåðêà îáùåãî äîñòóïà àóòåíòèôèöèðîâàííîãî ïîëüçîâàòåëÿ ê òåì èëè èíûì ÷àñòÿì èíòåðôåéñà è ñêðûòèå ýëåìåíòîâ ê êîòîðûì íåò äîñòóïà íà ïðîñìîòð;
    • îáðàáîòêà âûáðàííîãî ïóíêòà ìåíþ ñòðàíèöû:
      • ïîäñâåòêà ýëåìåíòà ìåíþ àêòèâíîé ñòðàíèöû;
      • ïîèñê è âûçîâ ñêðèïòà äèíàìèêè (/sub_DAQ/mod_JavaLikeCalc/lib_web/*) îäíîèì¸ííî, èëè èç àðãóìåíòà script URL, âûáðàííîé ñòðàíèöû.
    • ÷òåíèå ôàéëà ñòðàíèöû ïðèâåòñòâèÿ (welcome.html), â ñëó÷àå îòñóòñòâèÿ âûáîðà ñòðàíèöû èç ìåíþ;
    • óñòàíîâêà çíà÷åíèé òåêóùåé ñòðàíèöû è ïîëüçîâàòåëÿ â ñòðîêå ñòàòóñà;
    • ïîìåùåíèå êîíòåêñòà ñòðàíèöû â ãëàâíûé øàáëîí èíòåðôåéñà.
  • Îáñëóæèâàíèå çàïðîñîâ ê ôàéëàì ðåñóðñîâ è îò÷¸òîâ:
    • Îáðàáîòêà ðàñøèðåíèÿ ôàéëîâ ðåñóðñà è ôîðìèðîâàíèå àòðèáóòà òèïà (Content-Type) ïåðåäàâàåìîãî êîíòåíòà.
  • Ãåíåðàöèÿ îòâåòîâ ñ îøèáêîé â ñëó÷àå îòñóòñòâèÿ ñòðàíèö-øàáëîíîâ èëè ôàéëîâ ðåñóðñîâ.
Áèáëèîòåêà ñêðèïòîâ øàáëîíîâ-ñòðàíèö è ñèñòåìíûõ ïðîöåññîâ (/sub_DAQ/mod_JavaLikeCalc/lib_web/*)
user Ñêðèïò ñòðàíèöû-øàáëîíà «Äèñïåò÷åð ïîëüçîâàòåëåé» ðåàëèçóåò ôóíêöèþ ôîðìèðîâàíèÿ ôîðìû óïðàâëåíèÿ ïîëüçîâàòåëÿìè â çàâèñèìîñòè îò ïðàâ âîøåäøåãî ïîëüçîâàòåëÿ.
devices Ñêðèïò ñòðàíèöû-øàáëîíà «Äèñïåò÷åð óñòðîéñòâ» ðåàëèçóåò ôóíêöèþ ôîðìèðîâàíèÿ ôîðìû óïðàâëåíèÿ óñòðîéñòâàìè è ãåíåðàöèåé íàðóøåíèé ïî íèì äëÿ äâóõ òèïîâ óñòðîéñòâ: äåñÿòè÷íûé è äèíàìè÷íûé.
devMon Ñêðèïò ôîðìèðîâàíèÿ èíòåðôåéñà ìîíèòîðèíãà è ôîðìû óïðàâëåíèÿ óñòðîéñòâàìè, ñêîíôèãóðèðîâàííûìè â «Äèñïåò÷åð óñòðîéñòâ». Äàííûé ñêðèïò èñïîëüçóåòñÿ âñåìè ïîäñèñòåìàìè ìîíèòîðèíãà óñòðîéñòâ.
alarms Ñêðèïò çàäà÷è ïåðèîäè÷åñêîé ïðîâåðêè çíà÷åíèé ïåðåìåííûõ óñòðîéñòâ íà ïðåäìåò ñêîíôèãóðèðîâàííûõ àâàðèéíûõ ñèòóàöèé. Êðîìå íåïîñðåäñòâåííîãî ôîðìèðîâàíèÿ íàðóøåíèé äàííûé ñêðèïò îñóùåñòâëÿåò ðàññûëêó SMS-ñîîáùåíèé ñ óâåäîìëåíèÿìè ïî òåëåôîíàì ïîëüçîâàòåëåé, óñòàíîâëåííûõ äëÿ óâåäîìëåíèÿ ïîñðåäñòâîì SMS.
mess Ñêðèïò ñòðàíèöû-øàáëîíà «Íàðóøåíèÿ» ðåàëèçóåò ôóíêöèþ ôîðìèðîâàíèÿ ïåðå÷íÿ àêòèâíûõ íàðóøåíèé.
report Ñêðèïò ñòðàíèöû-øàáëîíà «Îò÷¸òû» ðåàëèçóåò ôóíêöèþ ôîðìèðîâàíèÿ òàáëèöû-îò÷¸òà ñ ñîáûòèÿìè ïî ñèñòåìå è ðàçëè÷íûì ïîäñèñòåìàì çà óêàçàííûé ïåðèîä âðåìåíè. Îò÷¸ò îäíîâðåìåííî ãåíåðèðóåòñÿ íà ýêðàíå è â ôàéëå, êîòîðûé ìîæíî ïî ññûëêå çàãðóçèòü îòäåëüíî.

 öåëîì àëãîðèòì îáðàáîòêè çàïðîñîâ ê ñòðàíèöàì ñëåäóþùèé (íà ïðèìåðå http://localhost:10002/WebUser/temperature?script=devMon):

2.2. Ìåíåäæåð óñòðîéñòâ

Ìåíåäæåð óñòðîéñòâ äîñòóïåí òîëüêî ñóïåðïîëüçîâàòåëþ è ôîðìèðóåò ôîðìó ðåäàêòèðîâàíèÿ (ðèñ.2), äîáàâëåíèÿ è óäàëåíèÿ óñòðîéñòâ äâóõ òèïîâ: áèíàðíûé è äåñÿòè÷íûé.


Ìåíåäæåð óñòðîéñòâ. (99 Kb)
Ðèñ. 2. Ìåíåäæåð óñòðîéñòâ.

Ñîçäàâàåìûå óñòðîéñòâà íåïîñðåäñòâåííî ïîìåùàþòñÿ â ñïèñîê àòðèáóòîâ ïàðàìåòðà êîíêðåòíî âçÿòîé ïîäñèñòåìû êîíòðîëëåðà «ZigBee» ìîäóëÿ èñòî÷íèêà äàííûõ ModBus (/sub_DAQ/mod_ModBus/cntr_ZegBee/). Ôîðìàò çàïèñè àòðèáóòà èìååò âèä:


Êðîìå íåïîñðåäñòâåííî äàò÷èêîâ îñóùåñòâëÿåòñÿ êîíôèãóðàöèÿ è ôîðìèðîâàíèå íàðóøåíèé â âèäå òåêñòà ïðîöåäóðû. Ïðîãðàììà ôîðìèðîâàíèÿ ïîìåùàåòñÿ â àòðèáóò «var» ïàðàìåòðà êîíòðîëëåðà íàðóøåíèé /sub_DAQ/mod_JavaLikeCalc/cntr_alarms/prm_rules. Àòðèáóò «var» ñîäåðæèò XML äåðåâî âèäà:

<ALARMS>
  <it id = "temperature.cond1">
    if(x&lt;10) err = &quot;Íèçêàÿ òåìïåðàòóðà: &quot;+x+&quot; &lt; 10&quot;;
  </it>
</ALARMS>


 ñîîòâåòñòâèè ñ ýòèì XML-äåðåâîì îñóùåñòâëÿåòñÿ ôîðìèðîâàíèå íàðóøåíèé è îòïðàâêà SMS-óâåäîìëåíèé ïîäïèñàííûì ïîëüçîâàòåëÿì â çàäà÷å êîíòðîëëåðà /sub_DAQ/mod_JavaLikeCalc/cntr_alarms, êîòîðàÿ èñïîëíÿåòñÿ ñ ïåðèîäîì 1 ìèíóòà.


SMS-óâåäîìëåíèÿ îòñûëàþòñÿ ÷åðåç ïîñëåäîâàòåëüíûé òðàíñïîðò /sub_Transport/mod_Serial/out_GSM è ïîñðåäñòâîì ïîëüçîâàòåëüñêîãî SMS-ïðîòîêîëà (/sub_Protocol/mod_UserProtocol/up_SMS).


Ïðåäóñìîòðåíà òàêæå ôóíêöèÿ îòëîæåííîé âûäà÷è óïðàâëÿþùåãî âîçäåéñòâèÿ. Äëÿ ýòîãî ïîëüçîâàòåëü óñòàíàâëèâàåò íóæíîå âðåìÿ, â âèäå: {Min}:{Sec}. Îáðàáîòêà îòëîæåííîãî óïðàâëåíèÿ îñóùåñòâëÿåòñÿ â êîíòðîëëåðå /sub_DAQ/mod_JavaLikeCalc/cntr_timers ïîñðåäñòâîì óñòàíîâêè àòðèáóòà «var» ïàðàìåòðà «rules» çàïðîñàìè â âèäå XML äåðåâà:

<TIMERS>
  <timer id="temperature.tGhost1" tm="60" user="root">20</timer>
  <timer id="temperature.cond1" tm="10" user="root">0</timer>
</TIMERS>

2.3. Ïîäñèñòåìû

Âñå ïîäñèñòåìû âèçóàëèçàöèè îáñëóæèâàþòñÿ ñêðèïòîì /sub_DAQ/mod_JavaLikeCalc/lib_web/devMon.  ýòîì ñêðèïòå îñóùåñòâëÿåòñÿ îáðàáîòêà çàïðîñîâ îò ñêðèïòà äèíàìè÷åñêîé âèçóàëèçàöèè Web-áðàóçåðà è ïåðåäà÷à åìó äàííûõ îá óñòðîéñòâàõ ïîäñèñòåìû, íåîáõîäèìûõ äëÿ âèçóàëèçàöèè (ðèñ.3). Äàííûå îá óñòðîéñòâàõ ïåðåäàþòñÿ â ñîîòâåòñòâèè ñ ïðàâàìè äîñòóïà âîøåäøåãî ïîëüçîâàòåëÿ.


Óïðàâëåíèå ïîäñèñòåìîé. (360 Kb)
Ðèñ. 3. Óïðàâëåíèå ïîäñèñòåìîé.

Êîíôèãóðàöèÿ äàò÷èêîâ ÷èòàåòñÿ èç ïàðàìåòðà, ñîîòâåòñòâóþùåãî ïîäñèñòåìå êîíòðîëëåðà «ZigBee» (/sub_DAQ/mod_ModBus/cntr_ZegBee). Çíà÷åíèÿ ÷èòàþòñÿ è çàïèñûâàþòñÿ â àòðèáóòû äàò÷èêîâ ýòèõ ïàðàìåòðîâ èëè ÷åðåç êîíòðîëëåð îòëîæåííîãî óïðàâëåíèÿ.


Çàäà÷à êîíòðîëëåðà «ZigBee» èñïîëíÿåòñÿ ñ ïåðèîäîì 1 ñåêóíäà, â ïðîöåññå ÷åãî îñóùåñòâëÿåòñÿ çàïðîñ òåêóùèõ çíà÷åíèé âñåõ ñêîíôèãóðèðîâàííûõ äàò÷èêîâ. Çàïèñü çíà÷åíèé îñóùåñòâëÿåòñÿ ïî ôàêòó ìîäèôèêàöèè íåçàâèñèìî îò çàäà÷è ïåðèîäè÷åñêîãî îïðîñà èëè ÷åðåç êîíòðîëëåð îòëîæåííîãî óïðàâëåíèÿ â ñëó÷àå óñòàíîâêè íåíóëåâîãî âðåìåíè òàéìåðà.


Ñâÿçü êîíòðîëëåðà «ZigBee» îñóùåñòâëÿåòñÿ ÷åðåç ïîñëåäîâàòåëüíûé èñõîäÿùèé òðàíñïîðò /sub_Transport/mod_Serial/out_ZegBee.

2.4. Ìåíåäæåð ïîëüçîâàòåëåé

Ìåíåäæåð ïîëüçîâàòåëåé (ðèñ.4) ïðåäíàçíà÷åí äëÿ ñîçäàíèÿ, óäàëåíèÿ è ðåäàêòèðîâàíèÿ ó÷¸òíûõ çàïèñåé îáû÷íûõ ïîëüçîâàòåëåé.


Ìåíåäæåð ïîëüçîâàòåëåé. (97 Kb)
Ðèñ. 4. Ìåíåäæåð ïîëüçîâàòåëåé.

Ïîëüçîâàòåëè óñëîâíî äåëÿòñÿ íà àäìèíèñòðàòîðîâ è ïðîñòûõ ïîëüçîâàòåëåé. Èäåíòèôèêàöèÿ ïîëüçîâàòåëÿ êàê àäìèíèñòðàòîðà, â ñèñòåìå OpenSCADA, îñóùåñòâëÿåòñÿ âêëþ÷åíèåì åãî â ãðóïïó «WebRoot» (/sub_Security/grp_WebRoot). Îáû÷íûé ïîëüçîâàòåëü âêëþ÷àåòñÿ â ãðóïïó «Web» (/sub_Security/grp_Web).


 ñèñòåìå OpenSCADA ó êàæäîãî ïîëüçîâàòåëÿ (/sub_Security/usr_test1/) åñòü òåêñòîâîå ïîëå îïèñàíèÿ, êîòîðîå â äàííîì ñëó÷àå ñëóæèò äëÿ õðàíåíèÿ åãî ñïåöèàëèçèðîâàííûõ ïàðàìåòðîâ â âèäå:

TEL: +380679859815
SMS: true
Report: false
sub_access: --
sub_friend: --
sub_light: --
sub_tech: --
sub_temperature: rw
sub_water: --


 ñëó÷àå ñ àäìèíèñòðàòîðîì çàïèñè ïðàâ äîñòóïà ê ïîäñèñòåìàì îòñóòñòâóþò, íî ïðèñóòñòâóþò îáùåñèñòåìíûå ïàðàìåòðû âðîäå âðåìåíè æèçíè ñåàíñà (/sub_Protocol/mod_HTTP).

2.5. Ñîîáùåíèÿ

Ñïèñîê ñîîáùåíèé ôîðìèðóåòñÿ, èñõîäÿ èç ïåðå÷íÿ àêòèâíûõ íàðóøåíèé ïî èõ êàòåãîðèè «ALARM:House:*» â âèäå òàáëèöû ñ âðåìåíåì, êàòåãîðèåé, óðîâíåì è ñîîáùåíèåì íàðóøåíèÿ (ðèñ.5).


Ñîîáùåíèÿ. (72 Kb)
Ðèñ. 5. Ñîîáùåíèÿ.

2.6. Îò÷¸òû

 ôîðìèðîâàíèè îò÷¸òà óêàçûâàåòñÿ âðåìåííîé äèàïàçîí è âûáèðàþòñÿ òèïû ñîîáùåíèé. Ïðåäóñìîòðåíà ãåíåðàöèÿ ñîîáùåíèé äëÿ òèïîâ:


Ïðîòîêîë ôîðìèðóåòñÿ â âèäå òàáëèöû (ðèñ.6) ñ âðåìåíåì, êàòåãîðèåé, óðîâíåì è ñîîáùåíèåì íàðóøåíèÿ, êîòîðàÿ òàêæå çàïèñûâàåòñÿ â îòäåëüíûé ôàéë îò÷¸òà, â ïîñëåäñòâèè äîñòóïíûé ïî ññûëêå äëÿ îòäåëüíîãî îòêðûòèÿ.


Îò÷¸òû. (153 Kb)
Ðèñ. 6. Îò÷¸òû.

Action source page doesn't exist yet(/Using / Smart House / matrials?)

Ññûëêè

Referring pages: Using/SmartHouse


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