OpenSCADAWiki: Doc/DB Arch ...

Home | Index | Changes | Comments | Users | Registration | Login  Password:  
 
This is an old revision of Doc/DBArch from 2016-10-19 17:49:31..

Ìîäóëü ïîäñèñòåìû "Àðõèâû" <DBArch>

Ìîäóëü: DBArch
Èìÿ: Àðõèâàòîð íà ÁÄ
Òèï: Àðõèâ
Èñòî÷íèê: arh_DBArch.so
Âåðñèÿ: 2.3.0
Àâòîð: Ðîìàí Ñàâî÷åíêî
Îïèñàíèå: Ìîäóëü àðõèâàòîðà. Ïðåäîñòàâëÿåò ôóíêöèè àðõèâèðîâàíèÿ ñîîáùåíèé è çíà÷åíèé íà ÁÄ.
Ëèöåíçèÿ: GPL

Contents

Ââåäåíèå

Ìîäóëü ïðåäíàçíà÷åí äëÿ àðõèâèðîâàíèÿ ñîîáùåíèé è çíà÷åíèé ñèñòåìû OpenSCADA íà îäíó èç áàç äàííûõ, ïîääåðæèâàåìûõ OpenSCADA.


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


Îñîáåííîñòüþ àðõèâîâ ñîîáùåíèé ÿâëÿåòñÿ òî, ÷òî àðõèâèðóþòñÿ, òàê íàçûâàåìûå, ñîáûòèÿ. Õàðàêòåðíûì ïðèçíàêîì ñîáûòèÿ ÿâëÿåòñÿ åãî âðåìÿ âîçíèêíîâåíèÿ. Àðõèâû ñîîáùåíèé îáû÷íî èñïîëüçóþòñÿ äëÿ àðõèâèðîâàíèÿ ñîîáùåíèé â ñèñòåìå, ò.å. âåäåíèå ëîãîâ è ïðîòîêîëîâ.  çàâèñèìîñòè îò èñòî÷íèêà ñîîáùåíèÿ ìîãóò êëàññèôèöèðîâàòüñÿ ïî ðàçëè÷íûì êðèòåðèÿì. Íàïðèìåð, ýòî ìîãóò áûòü ïðîòîêîëû àâàðèéíûõ ñèòóàöèé, ïðîòîêîëû äåéñòâèé îïåðàòîðîâ, ïðîòîêîëû ñáîåâ ñâÿçè è äð.


Îñîáåííîñòüþ àðõèâîâ çíà÷åíèé ÿâëÿåòñÿ èõ ïåðèîäè÷íîñòü, îïðåäåëÿåìàÿ ïðîìåæóòêîì âðåìåíè ìåæäó äâóìÿ ñìåæíûìè çíà÷åíèÿìè. Àðõèâû çíà÷åíèé ïðèìåíÿþòñÿ äëÿ àðõèâèðîâàíèÿ èñòîðèè íåïðåðûâíûõ ïðîöåññîâ. Ïîñêîëüêó ïðîöåññ íåïðåðûâíûé, òî è àðõèâèðîâàòü åãî ìîæíî òîëüêî ïóò¸ì ââåäåíèÿ ïîíÿòèÿ êâàíòîâàíèÿ âðåìåíè îïðîñà, ïîñêîëüêó èíà÷å ìû ïîëó÷àåì àðõèâû áåñêîíå÷íûõ ðàçìåðîâ ââèäó íåïðåðûâíîñòè ñàìîé ïðèðîäû ïðîöåññà. Êðîìå ýòîãî, ïðàêòè÷åñêè ìû ìîæåì ïîëó÷àòü çíà÷åíèÿ ñ ïåðèîäîì îãðàíè÷åííûì ñàìèìè èñòî÷íèêàìè äàííûõ. Íàïðèìåð, äîâîëüíî êà÷åñòâåííûå èñòî÷íèêè äàííûõ â ïðîìûøëåííîñòè ðåäêî ïîçâîëÿþò ïîëó÷àòü äàííûå ñ ÷àñòîòîé áîëåå 1êÃö. È ýòî áåç ó÷¸òà ñàìèõ äàò÷èêîâ, èìåþùèõ åù¸ ìåíåå êà÷åñòâåííûå õàðàêòåðèñòèêè.


Äëÿ âåäåíèÿ àðõèâîâ â ñèñòåìå OpenSCADA ïðåäóñìîòðåíà ïîäñèñòåìà "Àðõèâû". Äàííàÿ ïîäñèñòåìà, â ñîîòâåòñòâèè ñ òèïàìè àðõèâîâ, ñîñòîèò èç äâóõ ÷àñòåé: àðõèâ ñîîáùåíèé è àðõèâû çíà÷åíèé. Ïîäñèñòåìà â öåëîì ÿâëÿåòñÿ ìîäóëüíîé, ÷òî ïîçâîëÿåò ñîçäàâàòü àðõèâû îñíîâàííûå íà ðàçëè÷íîé ïðèðîäå è ñïîñîáàõ õðàíåíèÿ äàííûõ. Äàííûé ìîäóëü ïðåäîñòàâëÿåò ìåõàíèçì àðõèâèðîâàíèÿ íà ÁÄ êàê äëÿ ïîòîêà ñîîáùåíèé, òàê è äëÿ ïîòîêà çíà÷åíèé.

1. Àðõèâàòîð ñîîáùåíèé

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


Àðõèâàòîð ñîîáùåíèé ýòîãî ìîäóëÿ õðàíèò äàííûå â òàáëèöå ÁÄ, êîòîðàÿ íàçûâàåòñÿ "DBAMsg_{ArchID}", ãäå:


Ìîäóëåì ïðåäîñòàâëÿþòñÿ äîïîëíèòåëüíûå ïàðàìåòðû íàñòðîéêè ïðîöåññà àðõèâèðîâàíèÿ (ðèñ.1).


Äîïîëíèòåëüíûå ïàðàìåòðû íàñòðîéêè ïðîöåññà àðõèâèðîâàíèÿ ñîîáùåíèé. (119 Kb)
Ðèñ.1. Äîïîëíèòåëüíûå ïàðàìåòðû íàñòðîéêè ïðîöåññà àðõèâèðîâàíèÿ ñîîáùåíèé.

 ÷èñëî äîïîëíèòåëüíûõ ïàðàìåòðîâ âõîäÿò:


Òàáëèöà ÁÄ àðõèâàòîðà ñîîáùåíèé èìååò ñòðóêòóðó {MIN, TM, TMU, CATEG, MESS, LEV}, ãäå:

2. Àðõèâàòîð çíà÷åíèé

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


Àðõèâ çíà÷åíèé ÿâëÿåòñÿ íåçàâèñèìûì êîìïîíåíòîì, êîòîðûé âêëþ÷àåò áóôåð, îáðàáàòûâàåìûé àðõèâàòîðàìè. Îñíîâíûì ïàðàìåòðîì àðõèâà çíà÷åíèÿ ÿâëÿåòñÿ èñòî÷íèê äàííûõ.  ðîëè èñòî÷íèêà äàííûõ ìîãóò âûñòóïàòü àòðèáóòû ïàðàìåòðîâ ñèñòåìû OpenSCADA, à òàêæå äðóãèå âíåøíèå èñòî÷íèêè äàííûõ (ïàññèâíûé ðåæèì). Äðóãèìè èñòî÷íèêàìè äàííûõ ìîãóò áûòü: ñåòåâûå àðõèâàòîðû óäàë¸ííûõ OpenSCADA ñèñòåì, ñðåäà ïðîãðàììèðîâàíèÿ ñèñòåìû OpenSCADA è äð. Íå ìåíåå âàæíûìè ïàðàìåòðàìè àðõèâà ÿâëÿþòñÿ ïàðàìåòðû åãî áóôåðà. Îò ïàðàìåòðîâ áóôåðà çàâèñèò âîçìîæíîñòü ðàáîòû àðõèâàòîðîâ.  (2 Kb) Òàê, ïåðèîäè÷íîñòü çíà÷åíèé â áóôåðå äîëæíà áûòü íå áîëüøå ïåðèîäè÷íîñòè ñàìîãî áûñòðîãî àðõèâàòîðà, à ðàçìåð áóôåðà íå ìåíåå äâîéíîãî ðàçìåðà äëÿ ñàìîãî ìåäëåííîãî àðõèâàòîðà.  ïðîòèâíîì ñëó÷àå âîçìîæíû ïîòåðè äàííûõ.


Îáùàÿ ñõåìà àðõèâèðîâàíèÿ çíà÷åíèé íàãëÿäíî èçîáðàæåíà íà ðèñ. 2.


Îáùàÿ ñõåìà ïðîöåññà àðõèâèðîâàíèÿ çíà÷åíèé. (57 Kb)
Ðèñ.2. Îáùàÿ ñõåìà ïðîöåññà àðõèâèðîâàíèÿ çíà÷åíèé.

Àðõèâàòîð çíà÷åíèé ýòîãî ìîäóëÿ õðàíèò äàííûå â òàáëèöå ÁÄ, êîòîðàÿ èìåíóåòñÿ "DBAVl_{ArchivatorID}_{ArchiveID}", äëÿ îäèíî÷íîãî ðåæèìà, è "DBAVl_{ArchivatorID}_<GRP>{N}", äëÿ ãðóïîâîãî ðåæèìà, ãäå:


Ìîäóëåì ïðåäîñòàâëÿþòñÿ äîïîëíèòåëüíûå ïàðàìåòðû íàñòðîéêè ïðîöåññà àðõèâèðîâàíèÿ (ðèñ.3).


Äîïîëíèòåëüíûå ïàðàìåòðû íàñòðîéêè ïðîöåññà àðõèâèðîâàíèÿ çíà÷åíèé. (97 Kb)
Ðèñ.3. Äîïîëíèòåëüíûå ïàðàìåòðû íàñòðîéêè ïðîöåññà àðõèâèðîâàíèÿ çíà÷åíèé.

 ÷èñëî äîïîëíèòåëüíûõ ïàðàìåòðîâ âõîäÿò:


Òàáëèöà ÁÄ àðõèâàòîðà çíà÷åíèé èìååò ñòðóêòóðó {MARK, TM, VAL}, äëÿ îäèíî÷íîãî ðåæèìà, è {MARK, TM, {PRM1}, {PRM2}, {PRMN}}, äëÿ ãðóïïîâîãî, ãäå:

3. Èíôîðìàöèîííàÿ òàáëèöà àðõèâíûõ òàáëèö

Äëÿ õðàíåíèÿ íà÷àëà, êîíöà è èíîé ñëóæåáíîé èíôîðìàöèè àðõèâîâ â àðõèâíûõ òàáëèöàõ ñîçäà¸òñÿ èíôîðìàöèîííàÿ òàáëèöà ñ èìåíåì äàííîãî ìîäóëÿ: "DBArch". Äàííàÿ òàáëèöà èìååò ñòðóêòóðó {TBL, BEGIN, END, PRM1, PRM2, PRM3}, ãäå:


Ñîãëàñíî èíôîðìàöèè â óêàçàííîé òàáëèöå äëÿ àðõèâàòîðîâ çíà÷åíèé ïîääåðæèâàåòñÿ âîññòàíîâëåíèå è ñîçäàíèå îáúåêòîâ àðõèâà.

4. Ýôôåêòèâíîñòü

Ïðè ïðîåêòèðîâàíèè è ðåàëèçàöèè äàííîãî ìîäóëÿ îñîáûõ ìåõàíèçìîâ ïîâûøåíèÿ ýôôåêòèâíîñòè ïðîöåññà àðõèâèðîâàíèÿ íå çàêëàäûâàëîñü â âèäó íàëè÷èÿ îáúåêòèâíûõ îãðàíè÷åíèé ñàìèõ áàç äàííûõ è èíòåðôåéñîâ äîñòóïà ê íèì. Ñëåäîâàòåëüíî ýôôåêòèâíîñòü àðõèâàöèè íà ÁÄ â îñíîâíîì ñâÿçàíà ñ ñàìîé ÁÄ è èíòåðôåéñà äîñòóïà ê íåé. Èç íàèáîëåå ýôôåêòèâíûõ èíòåðôåéñîâ è ïîäõîäîâ ïî ïîâûøåíèþ ïðîèçâîäèòåëüíîñòè íóæíî îòìåòèòü ñëåäóþùèå:


Ðåçóëüòàòû èçìåðåíèé ïðîèçâîäèòåëüíîñòè àðõèâàöèè ñâåäåíû â òàáëèöå íèæå:

Òåñò / Îêðóæåíèå è ÁÄ Intel Core3 1.3GHz, PostgreSQL 9.3, SSD AMD A8 3.5GHz, PostgreSQL 9.3, HDD
Àðõèâàöèÿ çíà÷åíèé, 60 çàïèñåé, 1 ïàðàìåòð, ñåêóíä 53...63 13...14
Àðõèâàöèÿ çíà÷åíèé, 60 çàïèñåé, 10 ïàðàìåòðîâ, ñåêóíä 65...67 16...19
Àðõèâàöèÿ çíà÷åíèé, 60 çàïèñåé, 100 ïàðàìåòðîâ, ñåêóíä 154...163 52...60

Ññûëêè

Referring pages: Doc
Function


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