OpenSCADAWiki: Doc/ Val Archiving ...

Home | Index | Changes | Comments | Users | Registration | Login  Password:  
 
This is an old revision of Doc/ValArchiving from 2007-04-11 11:58:04..

Àðõèâèðîâàíèå çíà÷åíèé íåïðåðûâíûõ ïðîöåññîâ ñèñòåìû OpenSCADA.


Àâòîð: /RomanSavochenko


Contents


1 Ââåäåíèå

Îòêðûòàÿ SCADA ñèñòåìà OpenSCADA ïðèíàäëåæèò ê êëàññó SCADA(Supervisory Control and Data Aquisition) ñèñòåì. Ñèñòåìû äàííîãî êëàññà èñïîëüçóþòñÿ êàê ýëåìåíò ñèñòåì àâòîìàòèçàöèè òåõíîëîãè÷åñêèõ ïðîöåññîâ(ÀÑÓ-ÒÏ).


Ñèñòåìà OpenSCADA ñòðîèòñÿ êàê ìîäóëüíàÿ è âûñîêîìàñøòàáèðóåìàÿ ñèñòåìà. Ñëåäîâàòåëüíî âíóòðåííÿÿ ñòðóêòóðà ñèñòåìû äîëæíà óäîâëåòâîðÿòü âûñîêèì òðåáîâàíèÿì ãèáêîñòè.


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


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


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


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


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

2 Íàçíà÷åíèå

Ôóíêöèîíàëüíî, ðàçðàáîòêà ïðåäíàçíà÷åíà äëÿ ïðåäîñòàâëåíèÿ â ñèñòåìå OpenSCADA ìåõàíèçìà àðõèâèðîâàíèÿ äàííûõ íåïðåðûâíûõ ïðîöåññîâ, êîòîðûå ìîãóò áûòü ïîëó÷åíû èç ðàçëè÷íûõ èñòî÷íèêîâ äàííûõ.
Ýêñïëóàòàöèîííûì íàçíà÷åíèåì ðàçðàáîòêè ÿâëÿåòñÿ:

3 Òðåáîâàíèÿ

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


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


Òðåáîâàíèÿ ê ïîäñèñòåìå àðõèâèðîâàíèÿ:


Òðåáîâàíèÿ ê îáúåêòó áóôåðà çíà÷åíèé:


Òðåáîâàíèå ê ìåõàíèçìó ñâÿçûâàíèÿ ñ àòðèáóòàìè:


Ìîäóëüíàÿ ÷àñòü àðõèâà çíà÷åíèé äîëæíà îáåñïå÷èòü:

4 Ïðîåêòèðîâàíèå

4.1 Áóôåð çíà÷åíèé íåïðåðûâíûõ ïðîöåññîâ

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


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


Ñòðóêòóðà àðõèâèðîâàíèÿ çíà÷åíèé äèíàìè÷åñêèõ ïàðàìåòðîâ (38 Kb)
Ðèñ. 1. Ñòðóêòóðà àðõèâèðîâàíèÿ çíà÷åíèé äèíàìè÷åñêèõ ïàðàìåòðîâ.

Êàê âèäíî íà ðèñ.1, ïîëó÷åííûå äàííûå ïðåäâàðèòåëüíî ñîõðàíÿþòñÿ â áóôåðå àðõèâà. Äàëåå, äàííûå âûáèðàþòñÿ àðõèâàòîðàìè â ñîîòâåòñòâèè ñ ñîáñòâåííûìè êðèòåðèÿìè è ïîìåùàþòñÿ â õðàíèëèùà.  ìîìåíò çàïðîñà äàííûõ èç èñòîðèè, â íà÷àëå, ïðîâåðÿåòñÿ áóôåð íà íàëè÷èå çàïðîøåííûõ äàííûõ, à çàòåì îïðàøèâàþòñÿ àðõèâû â ïîñëåäîâàòåëüíîñòè óìåíüøåíèÿ êà÷åñòâà àðõèâà. Ôèçè÷åñêèå àðõèâû âûñòðàèâàþòñÿ â öåïî÷êó äëÿ îáåñïå÷åíèÿ ïîñëåäîâàòåëüíîãî îïðîñà â ñîîòâåòñòâèè ñ êà÷åñòâîì àðõèâàòîðîâ.


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


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

4.2 Àðõèòåêòóðà

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


Ñòàòè÷åñêàÿ äèàãðàììà êëàññîâ (31 Kb)
Ðèñ. 2. Ñòàòè÷åñêàÿ äèàãðàììà êëàññîâ.

Òàáëèöà 1. Êëàññû àðõèâèðîâàíèÿ çíà÷åíèé íåïðåðûâíûõ ïðîöåññîâ

ÊëàññÎòâåòñòâåííîñòüÑâÿçè
TParamÊëàññ ïàðàìåòðà ëîãè÷åñêîãî óðîâíÿ. Ñîäåðæèò àòðèáóòû (îáúåêò TValue). Èñïîëüçóåòñÿ äëÿ ôîðìèðîâàíèÿ ïàðàìåòðîâ íåîáõîäèìîé ñòðóêòóðû.Íàñëåäóåò îáúåêò çíà÷åíèé TValue, êîòîðûé ñîäåðæèò àòðèáóòû.
TParamContrÊëàññ ïàðàìåòðà ôèçè÷åñêîãî óðîâíÿ. Ñîäåðæèò àòðèáóòû (îáúåêò TValue). Ïðåäîñòàâëÿåòñÿ èñòî÷íèêîì äàííûõ "DAQ". Èìååò, ïðåäîïðåäåë¸ííóþ èñòî÷íèêîì äàííûõ, ñòðóêòóðó.Íàñëåäóåò îáúåêò çíà÷åíèé TValue, êîòîðûé ñîäåðæèò àòðèáóòû.
TValueÊëàññ àòðèáóòîâ ïàðàìåòðîâ. Íåïîñðåäñòâåííî ñîäåðæèò àòðèáóòû TVal. Ïðàêòè÷åñêè, âûïîëíÿåò ôóíêöèþ êîíòåéíåðà àòðèáóòîâ ïàðàìåòðîâ TVal.ßâëÿåòñÿ êîíòåéíåðîì àòðèáóòîâ çíà÷åíèé. Íàñëåäóåòñÿ êëàññàìè ðåàëèçóþùèìè ïàðàìåòð (ôèçè÷åñêèé, ëîãè÷åñêèé óðîâíè).
TValÊëàññ àòðèáóòà ïàðàìåòðà. Ñîäåðæèò àòðèáóò è èíòåðôåéñ äîñòóïà ê íåìó. Õðàíèò ïîñëåäíåå çíà÷åíèå àòðèáóòà (âìåñòå ñ òî÷êîé âðåìåíè).Ñîäåðæèòñÿ â êîíòåéíåðå àòðèáóòîâ TValue. Ìîæåò ñâÿçûâàòüñÿ ñ àðõèâîì äëÿ õðàíåíèÿ èñòîðèè.
TValBufÊëàññ áóôåðà çíà÷åíèé. Ñîäåðæèò, â êîëüöåâîì áóôåðå óêàçàííîãî òèïà, èñòîðèþ èçìåíåíèÿ çíà÷åíèé. Ïðåäîñòàâëÿåò ìåõàíèçìû ðàçìåùåíèÿ çíà÷åíèÿ èëè êàäðà çíà÷åíèé, à òàêæå ìåõàíèçìû çàïðîñà çíà÷åíèÿ è êàäðà çíà÷åíèé. Ìîæåò òàêæå èñïîëüçîâàòüñÿ äëÿ âðåìåííîãî õðàíåíèÿ êàäðîâ çíà÷åíèé, ñ öåëüþ çàïðîñà èëè ðàçìåùåíèÿ â áóôåðàõ ýòîãî æå òèïà.Íàñëåäóåòñÿ àðõèâîì TVArchive.
TVArchElÊëàññ ýëåìåíòà àðõèâà àðõèâàòîðà. Ñîäåðæèò èíòåðôåéñ äëÿ îáðàáîòêè áóôåðà àðõèâà è äëÿ äîñòóïà ê çíà÷åíèÿì ôèçè÷åñêîãî àðõèâà.Ñîäåðæèòñÿ â àðõèâàòîðå TVArchivator. Ññûëêè íà íåãî õðàíÿòñÿ â ñïèñêå õðàíèëèù àðõèâà TVArchive. Íàñëåäóåòñÿ êëàññîì ñâÿçûâàíèÿ ñ õðàíèëèùåì ModVArchEl.
TVArchivatorÊëàññ àðõèâàòîðà çíà÷åíèé. Ñîäåðæèò êëàññû ýëåìåíòîâ àðõèâà àðõèâàòîðà TVArchEl.Ñîäåðæèòñÿ â êîíòåéíåðå òèïà àðõèâà TTipArchivator. Íàñëåäóåòñÿ ìîäóëüíûì îáúåêòîì ñâÿçè ñ õðàíèëèùåì ModVArch
TMArchivatorÊëàññ àðõèâàòîðà ñîîáùåíèé. Îáñëóæèâàåò çàïðîñû ê ñîîáùåíèÿì â àðõèâå.Ñîäåðæèòñÿ â êîíòåéíåðå òèïà àðõèâà TTipArchivator. Íàñëåäóåòñÿ ìîäóëüíûì îáúåêòîì ñâÿçè ñ õðàíèëèùåì ModMArch
TTipArchivatorÊëàññ òèïà àðõèâàòîðà. Òèï àðõèâàòîðà - îäèí äëÿ àðõèâàòîðîâ ñîîáùåíèé è çíà÷åíèé.Ñîäåðæèò àðõèâàòîðû ñîîáùåíèé è çíà÷åíèé äàííîãî òèïà. Ñîäåðæèòñÿ â ïîäñèñòåìå "Àðõèâû". Íàñëåäóåòñÿ êîðíåâûì îáúåêòîì ìîäóëÿ ïîäñèñòåìû "Àðõèâû" ModArch.
TVArchiveÊëàññ àðõèâà. Ñîäåðæèò îïèñàíèå èñòî÷íèêà äàííûõ, áóôåð è ñïèñîê öåëåâûõ àðõèâàòîðîâ, èñïîëüçóåìûõ äëÿ àðõèâèðîâàíèÿ çíà÷åíèé TVArchEl.Ñîäåðæèòñÿ â îáúåêòå ïîäñèñòåìû àðõèâèðîâàíèÿ TArchiveS. Íàñëåäóåò îáúåêò áóôåðà TValBuf. Ñîäåðæèò ñïèñîê ýëåìåíòîâ ôèçè÷åñêèõ àðõèâîâ TVArchEl. Èñïîëüçóåòñÿ àòðèáóòîì çíà÷åíèé TVal äëÿ àññîöèàöèè åãî ñ àðõèâîì.
TArchiveSÊëàññ ïîäñèñòåìû "Àðõèâû". Ñîäåðæèò àðõèâû çíà÷åíèé TVArchive. Ñîäåðæèò ïðîìåæóòî÷íûé áóôåð àðõèâà ñîîáùåíèé. Ïðåäîñòàâëÿåò ìåõàíèçì öåíòðàëèçîâàíîãî äîñòóïà ê àðõèâèðîâàííûì ñîîáùåíèÿì.Ñîäåðæèò ìîäóëè àðõèâàòîðîâ TTipArchivator. Ñîäåðæèò àðõèâû çíà÷åíèé è áóôåð àðõèâà ñîîáùåíèé.
ModArchÊîðíåâîé îáúåêò ìîäóëÿ ñâÿçè ñ õðàíèëèùåì.Íàñëåäóåò îáúåêò òèïà àðõèâàòîðà TTipArchivator.
ModVArchÌîäóëüíûé îáúåêò ðåàëèçàöèè ñâÿçè ñ õðàíèëèùåì çíà÷åíèé.Íàñëåäóåò îáúåêò àðõèâàòîðà çíà÷åíèé TVArchivator.
ModMArchÌîäóëüíûé îáúåêò ðåàëèçàöèè ñâÿçè ñ õðàíèëèùåì ñîîáùåíèé.Íàñëåäóåò îáúåêò àðõèâàòîðà ñîîáùåíèé TMArchivator.
ModVArchElÌîäóëüíûé îáúåêò ýëåìåíòà àðõèâà çíà÷åíèé.Íàñëåäóåò îáúåêò ýëåìåíòà àðõèâà çíà÷åíèé TVArchEl.

Èç ÷èñëà ýòèõ êëàññîâ íóæíî ðàçðàáîòàòü:

À òàêæå äîðàáîòàòü êëàññû:

4.3 Äèíàìèêà

Íà ðèñ. 3 ïðåäñòàâëåíà äèíàìèêà ïðîöåññà çàïèñè ñîîáùåíèé ãåíåðèðóåìûõ îáúåêòàìè ñèñòåìû OpenSCADA â àðõèâ ñîîáùåíèé. Äèíàìèêà ïðåäñòàâëåíà â âèäå UML äèàãðàììû êîîïåðàöèè. Ðàññìîòðèì äàííûé ïðîöåññ:


Äèàãðàììà êîîïåðàöèè: Çàïèñü ñîîáùåíèé îáúåêòîì ñèñòåìû â àðõèâ ñîîáùåíèé. (28 Kb)
Ðèñ. 3. Äèàãðàììà êîîïåðàöèè: Çàïèñü ñîîáùåíèé, îáúåêòîì ñèñòåìû, â àðõèâ ñîîáùåíèé.

Íà ðèñ. 4 ïðåäñòàâëåíà äèíàìèêà ïðîöåññà çàïðîñà ñîîáùåíèé, îáúåêòàìè ñèñòåìû OpenSCADA, èç àðõèâà ñîîáùåíèé. Äèíàìèêà ïðåäñòàâëåíà â âèäå UML äèàãðàììû êîîïåðàöèè.


Ðàññìîòðèì äàííûé ïðîöåññ:


Äèàãðàììà êîîïåðàöèè: Çàïðîñ ñîîáùåíèé, îáúåêòîì ñèñòåìû, èç àðõèâà ñîîáùåíèé. (28 Kb)
Ðèñ. 4. Äèàãðàììà êîîïåðàöèè: Çàïðîñ ñîîáùåíèé, îáúåêòîì ñèñòåìû, èç àðõèâà ñîîáùåíèé.

Íà ðèñ. 5 ïðåäñòàâëåíà äèíàìèêà ïðîöåññà ïàññèâíîãî àðõèâèðîâàíèÿ çíà÷åíèé. Äèíàìèêà ïðåäñòàâëåíà â âèäå UML äèàãðàììû êîîïåðàöèè. Ðåæèì ïàññèâíîãî àðõèâèðîâàíèÿ ïîäðàçóìåâàåò ôóíêöèîíèðîâàíèå àðõèâà çíà÷åíèÿ â ðåæèìå îæèäàíèÿ âõîäíûõ çíà÷åíèé. Èñòî÷íèêîì âõîäíûõ çíà÷åíèé ìîãóò áûòü êàê àòðèáóòû ïàðàìåòðîâ òàê è äðóãèå âíåøíèå èñòî÷íèêè äàííûõ. Íàïðèìåð, äðóãèìè âíåøíèìè èñòî÷íèêàìè äàííûõ ìîãóò âûñòóïàòü: ñðåäà ïðîãðàììèðîâàíèÿ ñèñòåìû OpenSCADA, ñåòåâûå èñòî÷íèêè äàííûõ (ñåòåâîé àðõèâàòîð óäàë¸ííîé OpenSCADA ñòàíöèè) è äð.


Ðàññìîòðèì ïðîöåññ ïàññèâíîãî àðõèâèðîâàíèÿ çíà÷åíèé:


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


Ïðîöåññ ïàññèâíîãî àðõèâèðîâàíèÿ êàäðîâ çíà÷åíèé àíàëîãè÷åí, òîëüêî âìåñòî ðàçìåùåíèÿ îäíîãî çíà÷åíèÿ âûïîëíÿåòñÿ ðàçìåùåíèÿ êàäðà è âìåñòî ôóíêöèé òèïà setS(), setI() èñïîëüçóåòñÿ ôóíêöèÿ setVal().


Äèàãðàììà êîîïåðàöèè: Ïàññèâíîãå àðõèâèðîâàíèå çíà÷åíèé. (44 Kb)
Ðèñ. 5. Äèàãðàììà êîîïåðàöèè: Ïàññèâíîå àðõèâèðîâàíèå çíà÷åíèé.

Íà ðèñ. 6 ïðåäñòàâëåíà äèíàìèêà ïðîöåññà àêòèâíîãî àðõèâèðîâàíèÿ çíà÷åíèé. Äèíàìèêà ïðåäñòàâëåíà â âèäå UML äèàãðàììû êîîïåðàöèè. Ðåæèì àêòèâíîãî àðõèâèðîâàíèÿ ïîäðàçóìåâàåò íåïîñðåäñòâåííûé îïðîñ àðõèâîì èñòî÷íèêà çíà÷åíèé, ñ öåëüþ ïîëó÷åíèÿ çíà÷åíèé. Íà íàñòîÿùèé ìîìåíò çàêëàäûâàåòñÿ ïîääåðæêà òîëüêî àòðèáóòîâ ïàðàìåòðîâ â êà÷åñòâå òàêèõ èñòî÷íèêîâ.


Ðàññìîòðèì ïðîöåññ àêòèâíîãî àðõèâèðîâàíèÿ çíà÷åíèé:


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


Äèàãðàììà êîîïåðàöèè: Àêòèâíîå àðõèâèðîâàíèå çíà÷åíèé. (40 Kb)
Ðèñ. 6. Äèàãðàììà êîîïåðàöèè: Àêòèâíîå àðõèâèðîâàíèå çíà÷åíèé.

Íà ðèñ. 7 ïðåäñòàâëåíà äèíàìèêà ïðîöåññà çàïðîñà çíà÷åíèé èç àðõèâà. Äèíàìèêà ïðåäñòàâëåíà â âèäå UML äèàãðàììû êîîïåðàöèè. Çàïðîñèòü çíà÷åíèå èç àðõèâà ìîæíî íåñêîëüêèìè ñïîñîáàìè. Ïåðâûé ñïîñîá ýòî ïðîçðà÷íûé çàïðîñ çíà÷åíèÿ ïàðàìåòðà ñ óêàçàíèåì ìåòêè âðåìåíè.  ýòîì ñëó÷àå çàïðîñ ïåðåíàïðàâëÿåòñÿ àññîöèèðîâàíîìó ñ àòðèáóòîì àðõèâó. Âòîðîé ñïîñîá ýòî íåïîñðåäñòâåííîå îáðàùåíèå ê àðõèâó. Âòîðûì ñïîñîáîì ìîæíî çàïðàøèâàòü êàê îòäåëüíûå çíà÷åíèÿ òàê è êàäðû çíà÷åíèé.


Ðàññìîòðèì ïðîöåññ çàïðîñà çíà÷åíèé èç àðõèâà:


Äèàãðàììà êîîïåðàöèè: Çàïðîñ çíà÷åíèé èç àðõèâà. (42 Kb)
Ðèñ. 7. Äèàãðàììà êîîïåðàöèè: Çàïðîñ çíà÷åíèé èç àðõèâà.

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


5 Ðåàëèçàöèÿ

 ñîîòâåòñòâèè ñ ðàçìûøëåíèÿìè âûøå, ðåàëèçóåì àðõèâèðîâàíèå çíà÷åíèé. Äëÿ öåëåâîé ðåàëèçàöèè ñîñòàâèì ïëàí ðåàëèçàöèè:

5.1 Ñèñòåìàòèçàöèÿ àðõèâèðîâàíèÿ ñîîáùåíèé -- Âûïîëíåíî


5.2 Ðåàëèçàöèÿ îáúåêòà áóôåðà çíà÷åíèé (TValBuf) -- Âûïîëíåíî


Öåëè ïðèñëåäóåìûå ðåàëèçàöèåé:


Ñîçäàí áóôåð ñ ïîääåðæêîé ñëåäóþùèõ ðåæèìîâ:


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


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

5.3 Ðåàëèçàöèÿ Àðõèâîâ (TVArchive) çíà÷åíèé è èõ ýëåìåíòîâ (TVArchEl) â ñîñòàâå àðõèâàòîðà (TVArchivator) -- Âûïîëíåíî


 ïðîöåññå ðåàëèçàöèè ñîçäàíû: îáúåêò àðõèâà (TVArchive), îáúåêò àðõèâàòîðà çíà÷åíèé (TVArchivator) è ýëåìåíò àðõèâà TVArchEl.


TVArchive ñîäåðæèòñÿ íåïîñðåäñòâåííî â ïîäñèñòåìå àðõèâèðîâàíèÿ. Îáúåêò âûïîëíÿåò ñáîð äàííûõ îò èñòî÷íèêîâ è íàêîïëåíèå èõ â ïðîìåæóòî÷íîì áóôåðå. Äàëåå äàííûå íàêîïëåííûå â áóôåðå ìîãóò âûáèðàòüñÿ àðõèâàòîðàìè â ñîîòâåòñòâèè ñ èõ õàðàêòåðèñòèêàìè. TVArchive òàêæå ñëóæèò äëÿ öåíòðàëèçîâàííîãî äîñòóïà ê äàííûì àðõèâà. Ïðè÷¸ì êàê ê äàííûì â áóôåðå, òàê è ê äàííûì àðõèâàòîðîâ. Ïîääåðæèâàþòñÿ ðåæèìû îáùåãî è èíäèâèäóàëüíîãî äîñòóïà ê àðõèâó.  ðåæèìå îáùåãî äîñòóïà äàííûå ñîáèðàþòñÿ êàê ñ áóôåðà òàê è ñî âñåõ àðõèâàòîðîâ.  ðåæèìå èíäèâèäóàëüíîãî äîñòóïà ìîæíî ïîëó÷èòü äàííûå òîëüêî èç óêàçàííîãî àðõèâàòîðà èëè áóôåðà. Äîñòóï ê àðõèâàì ïðîèçâîäèòñÿ ÷åðåç âêëàäêó "Àðõèâû çíà÷åíèé" ïîäñèñòåìû "Àðõèâû" (ðèñ. 8).  ýòîé âêëàäêå ìîæíî âûïîëíÿòü îñíîâíûå äåéñòâèÿ íàä àðõèâàìè: ñîçäàíèå, óäàëåíèå è ïåðåõîä. Êðîìå ýòîãî, âêëàäêà ñîäåðæèò ïîëå óñòàíîâêè ïåðèîäè÷íîñòè àêòèâíîãî ñáîðà äàííûõ. Çíà÷åíèå óêàçûâàåòñÿ â ìèëëèñåêóíäàõ è äîëæíî áûòü ìåíüøå ñàìîãî áûñòðîãî àêòèâíîãî àðõèâà.


«Àðõèâû çíà÷åíèé» ïîäñèñòåìû «Àðõèâû» (59 Kb)
Ðèñ. 8. Âêëàäêà "Àðõèâû çíà÷åíèé" ïîäñèñòåìû "Àðõèâû".

Äëÿ óïðàâëåíèÿ àðõèâîì çíà÷åíèé ñîçäàíà êîíôèãóðàöèîííàÿ ñòðàíèöà (íà ÿçûêå ñöåíàðèåâ èíòåðôåéñà óïðàâëåíèÿ). Ñòðàíèöà ñîäåðæèò òðè âêëàäêè: "Àðõèâ", "Àðõèâàòîðû" è "Çíà÷åíèÿ". Âêëàäêà "Àðõèâ" ñîäåðæèò îñíîâíûå äàííûå àðõèâà (ðèñ. 9). Çäåñü ìîæíî îïðåäåëèòü òàêèå ïàðàìåòðû:


Àðõèâ ìîæåò áûòü â äâóõ ñîñòîÿíèÿõ: "Èñïîëíÿåòñÿ" è "Îñòàíîâëåí".  ñîñòîÿíèè "Îñòàíîâëåí" àðõèâ íå ñâÿçàí íè ñ àðõèâàòîðàìè íè ñ èñòî÷íèêîì äàííûõ.  ñîñòîÿíèè "Èñïîëíÿåòñÿ" àðõèâ ñâÿçûâàåòñÿ ñ èñòî÷íèêîì äàííûõ (èëè ïîëó÷àåò çíà÷åíèå îò ïàññèâíîãî èñòî÷íèêà) è ïîäêëþ÷àåòñÿ ê àðõèâàòîðàì. Äëÿ óêàçàíèÿ íåîáõîäèìîñòè çàïóñêà ïðåäíàçíà÷åí ïðèçíàê "Çàïóñêàòü".


Àðõèâ ìîæåò õðàíèòüñÿ íà îäíîé èç äîñòóïíûõ ÁÄ, ÷òî óêàçûâàåòñÿ â ïîëå "ÁÄ àðõèâà (ìîäóëü.áä)".


 ñîîòâåòñòâèè ñ òèïàìè äàííûõ ïîääåðæèâàåìûõ ñèñòåìîé "OpenSCADA" àðõèâîì ïîääåðæèâàþòñÿ òèïû çíà÷åíèé: Ëîãè÷åñêèé, Öåëûé, Âåùåñòâåííûé è Ñòðîêîâûé.


 êà÷åñòâå èñòî÷íèêà äàííûõ àðõèâ ïîääåðæèâàåò:


Ïåðèîäè÷íîñòü áóôåðà äîëæíà óñòàíàâëèâàòüñÿ â ìèíèìàëüíîå çíà÷åíèå ïåðèîäè÷íîñòè àðõèâàòîðîâ.


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


Ïðèçíàê "Ƹñòêàÿ ñåòêà áóôåðà" óêàçûâàåò íà ïðèìåíåíèå ìåõàíèçìà æ¸ñòêîãî êâàíòîâàíèÿ ñ ïðèâÿçêîé çíà÷åíèé ê ñåòêå êâàíòà, áåç õðàíåíèÿ âðåìåíè îòäåëüíî âçÿòîãî çíà÷åíèÿ.  ïðîòèâíîì ñëó÷àå èñïîëüçóåòñÿ ìÿãêàÿ ñåòêà, ò.å. âìåñòå ñ çíà÷åíèå õðàíèòñÿ è âðåìÿ.


Ïðèçíàê "Âûñîêîå ðàçðåøåíèå âðåìåíè áóôåðà" óêàçûâàåò íà õðàíåíèå çíà÷åíèé ñ òî÷íîñòüþ 1 ìêñ. Èíà÷å òî÷íîñòü ñîñòàâëÿåò 1 ñåê. Èñïîëüçóåòñÿ ïðè àðõèâèðîâàíèè áûñòðûõ ïðîöåññîâ.


Âêëàäêà «Àðõèâ» àðõèâà çíà÷åíèé. (90 Kb)
Ðèñ. 9. Âêëàäêà "Àðõèâ" àðõèâà çíà÷åíèé.

Âêëàäêà "Àðõèâàòîðû" ñîäåðæèò èíôîðìàöèþ ïî àðõèâàòîðàì îáñëóæèâàþùèì äàííûé àðõèâ (ðèñ. 10). Çäåñü ìîæíî ëåãêî ïîäêëþ÷èòü èëè îòêëþ÷èòü àðõèâ ê íóæíûì àðõèâàòîðàì, à òàêæå ïîëó÷èòü èíôîðìàöèþ î ðàçìåðå àðõèâà íà ðàçëè÷íûõ àðõèâàòîðàõ.


Âêëàäêà «Àðõèâàòîðû» àðõèâà çíà÷åíèé (65 Kb)
Ðèñ. 10. Âêëàäêà "Àðõèâàòîðû" àðõèâà çíà÷åíèé.

Âêëàäêà "Çíà÷åíèÿ" ñîäåðæèò ôîðìó äëÿ ïðîñìîòðà çíà÷åíèé â àðõèâå (ðèñ. 11). Ñ ïîìîùüþ ýòîé ôîðìû ìîæíî ïðîñìàòðèâàòü çíà÷åíèÿ çà ëþáîé ïðîìåæóòîê âðåìåíè êàê äëÿ âñåõ àðõèâàòîðîâ âìåñòå, òàê è äëÿ êàæäîãî àðõèâàòîðà îòäåëüíî.


Âêëàäêà «Çíà÷åíèÿ» àðõèâà çíà÷åíèé (95 Kb)
Ðèñ. 11. Âêëàäêà "Çíà÷åíèÿ" àðõèâà çíà÷åíèé.

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


Äîñòóï ê àðõèâàòîðàì çíà÷åíèé, êàê è ê àðõèâàòîðàì ñîîáùåíèé, ïðîèçâîäèòñÿ ÷åðåç âêëàäêó "Àðõèâàòîðû" ñòðàíèöû ìîäóëÿ, ïîäñèñòåìû "Àðõèâû" (ðèñ.12). Íà ýòîé ñòðàíèöå ïðåäñòàâëåíû ñïèñêè àðõèâàòîðîâ ñîîáùåíèé è çíà÷åíèé.


Âêëàäêà «Àðõèâàòîðû» ñòðàíèöû ìîäóëÿ, ïîäñèñòåìû «Àðõèâû». (62 Kb)
Ðèñ. 12. Âêëàäêà "Àðõèâàòîðû" ñòðàíèöû ìîäóëÿ, ïîäñèñòåìû "Àðõèâû".

Äëÿ óïðàâëåíèÿ àðõèâàòîðîì çíà÷åíèé ñîçäàíà êîíôèãóðàöèîííàÿ ñòðàíèöà (íà ÿçûêå ñöåíàðèåâ). Ñòðàíèöà ñîäåðæèò äâå âêëàäêè: "Àðõèâàòîð" è "Àðõèâû". Âêëàäêà "Àðõèâàòîð" ñîäåðæèò îñíîâíûå äàííûå (ðèñ. 13). Çäåñü ìîæíî îïðåäåëèòü òàêèå ïàðàìåòðû:


Àðõèâàòîð ìîæåò áûòü â ñîñòîÿíèè "Îñòàíîâëåí" è "Âûïîëíÿåòñÿ".  ñîñòîÿíèè "Îñòàíîâëåí" àðõèâàòîð íå îáðàáàòûâàåò àðõèâû è âîîáùå ñ íèìè íèêàê íå ñâÿçûâàåòñÿ.  ñîñòîÿíèè "Âûïîëíÿåòñÿ" àðõèâàòîð ñîäåðæèò ýëåìåíòû àðõèâîâ (TVArchEl) è âûïîëíÿåò ïåðèîäè÷åñêóþ îáðàáîòêó áóôåðîâ àðõèâîâ. Ïåðèîä îáðàáîòêè áóôåðîâ îïðåäåëÿåòñÿ ïåðèîäîì àðõèâèðîâàíèÿ. Äëÿ óêàçàíèÿ íåîáõîäèìîñòè çàïóñêà ïðåäíàçíà÷åí ïðèçíàê "Çàïóñêàòü".


Àðõèâàòîð ìîæåò õðàíèòüñÿ íà îäíîé èç äîñòóïíûõ ÁÄ, ÷òî óêàçûâàåòñÿ â ïîëå "ÁÄ àðõèâàòîðà (ìîäóëü.áä)".


Êàæäûé àðõèâàòîð ñîäåðæèò çíà÷åíèÿ ñ óêàçàííûì ïåðèîäîì. Åñëè ïåðèîäè÷íîñòü çíà÷åíèé àðõèâàòîðà áîëüøå ÷åì â áóôåðå àðõèâà, òî ïðîèçâîäèòñÿ óñðåäíåíèå èëè äðóãàÿ îïåðàöèÿ îáúåäèíåíèÿ çíà÷åíèé. Îïåðàöèÿ îáúåäèíåíèÿ ðåàëèçóåòñÿ â ìîäóëå àðõèâàòîðà.


Äëÿ ôèçè÷åñêîé àäðåñàöèè àðõèâîâ ïðåäóñìîòðåíî ïîëå àäðåñà.  çàâèñèìîñòè îò ðåàëèçàöèè ìîäóëÿ àðõèâàòîðà ýòî ïîëå ìîæåò èìåòü ðàçëè÷íîå çíà÷åíèå. Òàê, äëÿ àðõèâàòîðà íà ôàéëîâóþ ñèñòåìó (ÔÑ), ýòî ïîëå ñîäåðæèò ïóòü ê äèðåêòîðèè ñ àðõèâàìè.


Ñ öåëüþ îöåíêè íàãðóçêè íà àðõèâèðîâàíèå, íà äàííîé ñòðàíèöå ñîäåðæèòñÿ ïàðàìåòð âðåìåíè àðõèâèðîâàíèÿ. Ðåàëüíîå âðåìÿ àðõèâèðîâàíèÿ äîëæíî áûòü ìåíüøå ïåðèîäà àðõèâèðîâàíèÿ!


Âêëàäêà «Àðõèâàòîð» ñòðàíèöû àðõèâàòîðà. (85 Kb)
Ðèñ. 13. Âêëàäêà "Àðõèâàòîð" ñòðàíèöû àðõèâàòîðà.

 çàâèñèìîñòè îò ìîäóëÿ ðåàëèçóþùåãî äîñòóï ê õðàíèëèùó, íà äàííîé ñòðàíèöå ìîãóò ñîäåðæàòüñÿ âêëàäêè ñî ñïåöèàëèçèðîâàííûìè äëÿ ìîäóëÿ íàñòðîéêàìè. Òàê, ìîäóëü àðõèâèðîâàíèÿ íà ôàéëîâóþ ñèñòåìó ñîäåðæèò âêëàäêó "Äîïîëíèòåëüíûå îïöèè" (ðèñ. 14). Çäåñü ñîäåðæàòüñÿ ñëåäóþùèå ïàðàìåòðû:

Äëÿ ïðèíóäèòåëüíîãî âûïîëíåíèÿ ïðîâåðêè äèðåêòîðèè àðõèâàòîðà íà âêëàäêå ïðåäóñìîòðåíà êíîïêà "Ïðîâåðèòü äèðåêòîðèþ àðõèâàòîðà ñåé÷àñ".


Âêëàäêà «Äîïîëíèòåëüíûå îïöèè» ñòðàíèöû àðõèâàòîðà. (66 Kb)
Ðèñ. 14. Âêëàäêà "Äîïîëíèòåëüíûå îïöèè" ñòðàíèöû àðõèâàòîðà.

Âêëàäêà "Àðõèâû" ñîäåðæèò ïåðå÷åíü àðõèâîâ, îáñëóæèâàåìûõ àðõèâàòîðîì (ðèñ. 15). Ìîäóëè àðõèâàòîðîâ ìîãóò äîáàâëÿòü ñâîþ èíôîðìàöèþ â ýòó âêëàäêó. Òàê, àðõèâàòîð íà ôàéëîâóþ ñèñòåìó äîáàâëÿåò ñþäà èíôîðìàöèþ ïî ðàçìåðàì ôàéëîâ íà ôàéëîâîé ñèñòåìå ïî êàæäîìó àðõèâó.


Âêëàäêà «Àðõèâû» ñòðàíèöû àðõèâàòîðà. (59 Kb)
Ðèñ. 15. Âêëàäêà "Àðõèâû" ñòðàíèöû àðõèâàòîðà.

Ñ öåëüþ óïðîùåíèÿ çàäà÷è íàçíà÷åíèÿ àðõèâîâ äëÿ àòðèáóòîâ ïàðàìåòðîâ íà ñòðàíèöå êîíôèãóðàöèè ïàðàìåòðà áûëà äîáàâëåíà âêëàäêà "Àðõèâèðîâàíèå" (ðèñ.16). Íà ýòîé âêëàäêå ñîäåðæèòñÿ ñïèñîê àòðèáóòîâ ñ ïåðå÷íåì àðõèâàòîðîâ â êîëîíêàõ. Ïðîñòûì âûáîðîì àðõèâàòîðîâ ìîæíî íàçíà÷àòü àðõèâû äëÿ àòðèáóòîâ.


Âêëàäêà «Àðõèâèðîâàíèå» ñòðàíèöû ïàðàìåòðà. (73 Kb)
Ðèñ. 16. Âêëàäêà "Àðõèâèðîâàíèå" ñòðàíèöû ïàðàìåòðà.

5.4 Ðåàëèçàöèÿ õðàíèëèùà íà ôàéëîâîé ñèñòåìå (ModVArch, ModVArchEl). Ìîäóëü BaseArh -- Âûïîëíåíî


Äëÿ ðåàëèçàöèè àðõèâèðîâàíèÿ íà ôàéëîâóþ ñèñòåìó ïðåäúÿâëÿþòñÿ ñëåäóþùèå òðåáîâàíèÿ:


 ñîîòâåòñòâèè ñ âûøåèçëîæåííûìè òðåáîâàíèÿìè, ïðèíÿòî ðåøåíèå îðãàíèçàöèè àðõèâèðîâàíèÿ ìåòîäîì ìíîæåñòâåííîñòè ôàéëîâ (äëÿ êàæäîãî èñòî÷íèêà). Öèêëè÷íîñòü àðõèâà ïðîèçâîäèòñÿ íà óðîâíå ôàéëîâ, ò.å. ñîçäàåòñÿ íîâûé ôàéë à ñàìûé ñòàðûé óäàëÿåòñÿ. Äëÿ áûñòðîãî ñæàòèÿ èñïîëüçóåòñÿ ìåòîä ïðèòÿãèâàíèÿ ê ïîñëåäíåìó îäèíàêîâîìó çíà÷åíèþ. Äëÿ ýòèõ öåëåé â ôàéëå àðõèâà ïðåäóñìàòðèâàåòñÿ áèòîâàÿ òàáëèöà óïàêîâêè ðàçìåðîì îäèí â îäèí ñ êîëè÷åñòâîì õðàíèìûõ äàííûõ. Ò.å. êàæäûé áèò ñîîòâåòñòâóåò îäíîìó çíà÷åíèþ â àðõèâå. Çíà÷åíèå áèòà óêàçûâàåò íà íàëè÷èå çíà÷åíèÿ. Äëÿ ïîòîêà îäèíàêîâûõ çíà÷åíèé áèòû áóäóò îáíóëåíû.  ñëó÷àå ñ àðõèâîì ñòðîê, òàáëèöà ÿâëÿåòñÿ íå áèòîâîé à áàéòîâîé è ñîäåðæèò äëèíó óêàçàííîãî çíà÷åíèÿ.  ñëó÷àå ïîñòóïëåíèÿ ïîòîêà îäèíàêîâûõ çíà÷åíèé äëèíà áóäåò íóëåâîé è ÷èòàòüñÿ áóäåò ïåðâîå îäèíàêîâîå çíà÷åíèå. Ïîñêîëüêó òàáëèöà áàéòîâàÿ, òî àðõèâ ñìîæåò õðàíèòü ñòðîêè äëèíîé íå áîëåå 255 ñèìâîëîâ. Òàêèì îáðàçîì, ìåòîäèêè õðàíåíèÿ, êàê è äàííûå, ìîæíî ðàçäåëèòü íà äàííûå ôèêñèðîâàííîãî è íå ôèêñèðîâàííîãî ðàçìåðà. Îáùàÿ ñòðóêòóðà ôàéëà àðõèâà ïðèâåäåíà íà ðèñ. 17.


Îáùàÿ ñòðóêòóðà ôàéëà àðõèâà. (13 Kb)
Ðèñ. 17. Îáùàÿ ñòðóêòóðà ôàéëà àðõèâà.

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


Òàáëèöà 2. Ñòðóêòóðà çàãîëîâêà ôàéëà àðõèâà

ÏîëåÎïèñàíèåÐàçìåð áàéò(áèò)
f_tpÑèñòåìíîå èìÿ àðõèâà ("OpenSCADA Val Arch.")20
archiveÈìÿ àðõèâà êîòîðîìó ïðèíàäëåæèò ôàéë.20
begÂðåìÿ íà÷àëà àðõèâíûõ äàííûõ (ìêñ)8
endÂðåìÿ êîíöà àðõèâíûõ äàííûõ (ìêñ)8
periodÏåðèîäè÷íîñòü àðõèâà (ìêñ)8
vtpÒèï çíà÷åíèÿ â àðõèâå (Ëîãè÷åñêèé, Öåëûé, Âåùåñòâåííûé, Ñòðîêà)(3)
hgridÏðèçíàê èñïîëüçîâàíèÿ æ¸ñòêîé ñåòêè â áóôåðå àðõèâà(1)
hresÏðèçíàê èñïîëüçîâàíèÿ âðåìåíè âûñîêîãî ðàçðåøåíèÿ (ìêñ) â áóôåðå àðõèâà(1)
reserveÐåçåðâ14
termÑèìâîë îêîí÷àíèÿ çàãîëîâêà àðõèâà (0x55)1

Ðàçúÿñíåíèå ìåõàíèçìà ïîñëåäîâàòåëüíîé óïàêîâêè ïðèâåäåíî íà ðèñ. 18. Êàê ìîæíî âèäåòü èç ðèñóíêà, ïðèçíàê óïàêîâêè ñîäåðæèò äëèíó (íå ôèêñèðîâàííûå òèïû) èëè ïðèçíàê óïàêîâêè (ôèêñèðîâàííûå òèïû) îòäåëüíî âçÿòîãî çíà÷åíèÿ. Ýòî çíà÷èò, ÷òî äëÿ ïîëó÷åíèÿ ñìåùåíèÿ íóæíîãî çíà÷åíèÿ íåîáõîäèìî ñëîæèòü äëèíû âñåõ ïðåäûäóùèõ äåéñòâèòåëüíûõ çíà÷åíèé. Âûïîëíåíèå äàííîé îïåðàöèè êàæäûé ðàç è äëÿ êàæäîãî çíà÷åíèÿ ÿâëÿåòñÿ êðàéíå íàêëàäíîé îïåðàöèåé. Ïîýòîìó, áûë âíåäð¸í ìåõàíèçì êåøèðîâàíèÿ ñìåùåíèé çíà÷åíèé. Ìåõàíèçì êåøèðóåò ñìåùåíèÿ çíà÷åíèé ÷åðåç ïðåäîïðåäåë¸ííîå èõ êîëè÷åñòâî, à òàêæå êåøèðóåò ñìåùåíèå ïîñëåäíåãî çíà÷åíèÿ ê êîòîðîìó ïðîèçâîäèëñÿ äîñòóï (îòäåëüíî íà çàïèñü è ÷òåíèå).


Ìåõàíèçì ïîñëåäîâàòåëüíîé óïàêîâêè çíà÷åíèé. (36 Kb)
Ðèñ. 18. Ìåõàíèçì ïîñëåäîâàòåëüíîé óïàêîâêè çíà÷åíèé.

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


Íàèáîëåå óñòàðåâøèå ôàéëû àðõèâà ïàêóþòñÿ ñòàíäàðòíûì àðõèâàòîðîì gzip. Ïðè äîñòóïå ê çíà÷åíèÿì òàêîãî àðõèâà, âûïîëíÿåòñÿ ïðåäâàðèòåëüíàÿ ðàñïàêîâêà.

6 Òåñòèðîâàíèå àðõèâèðîâàíèÿ çíà÷åíèé.

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


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


Òàáëèöà 3. Òåñòû áóôåðà çíà÷åíèé

ÍîìåðÎïèñàíèå
1Ñîçäàíèå áóôåðà ñ ïðåäîïðåäåë¸ííûìè ïàðàìåòðàìè (Òèï: ñòðîêà; Ðàçìåð: 10; Ïåðèîä: 1c; Æåñòêàÿ ñåòêà; Íèçêîå ðàçðåøåíèå âðåìåíè)
2Èçìåíåíèå ïàðàìåòðîâ áóôåðà (Ìÿãêàÿ ñåòêà; Âûñîêîå ðàçðåøåíèå âðåìåíè; Ðàçìåð: 2000; Ïåðèîä: 0)
3Óäàëåíèå áóôåðà
4Çàïîëíåíèå è ïðîâåðêà ñòðîêîâîãî áóôåðà ñ æ¸ñòêîé ñåòêîé
5Çàïîëíåíèå è ïðîâåðêà öåëî÷èñëåííîãî áóôåðà ñ æ¸ñòêîé ñåòêîé
6Çàïîëíåíèå è ïðîâåðêà ñòðîêîâîãî áóôåðà ñ ìÿãêîé ñåòêîé è âûñîêèì ðàçðåøåíèåì âðåìåíè
7Çàïîëíåíèå è ïðîâåðêà öåëî÷èñëåííîãî áóôåðà ñ ìÿãêîé ñåòêîé è âûñîêèì ðàçðåøåíèåì âðåìåíè
8Çàïîëíåíèå è ïðîâåðêà ñòðîêîâîãî áóôåðà ñ ìÿãêîé ñåòêîé è íèçêèì ðàçðåøåíèåì âðåìåíè
9Çàïîëíåíèå è ïðîâåðêà öåëî÷èñëåííîãî áóôåðà ñ ìÿãêîé ñåòêîé è íèçêèì ðàçðåøåíèåì âðåìåíè
10Çàïîëíåíèå è ïðîâåðêà ñâîáîäíîãî ñòðîêîâîãî áóôåðà ñ âûñîêèì ðàçðåøåíèåì âðåìåíè
11Çàïîëíåíèå è ïðîâåðêà ñâîáîäíîãî öåëî÷èñëåííîãî áóôåðà ñ âûñîêèì ðàçðåøåíèåì âðåìåíè
12Çàïîëíåíèå è ïðîâåðêà ñâîáîäíîãî ñòðîêîâîãî áóôåðà ñ íèçêèì ðàçðåøåíèåì âðåìåíè
13Çàïîëíåíèå è ïðîâåðêà ñâîáîäíîãî öåëî÷èñëåííîãî áóôåðà ñ íèçêèì ðàçðåøåíèåì âðåìåíè

Òàáëèöà 4. Òåñòû àðõèâèðîâàíèÿ çíà÷åíèé íà ôàéëîâóþ ñèñòåìó

ÍîìåðÎïèñàíèå
1Ïðîñòîå çàïîëíåíèå è ïðîâåðêà àðõèâà
2Âñòàâêà â ñåðåäèíó çíà÷åíèÿ, äóáëèðóþùåãî ïî íèçó
3Âñòàâêà â ñåðåäèíó çíà÷åíèÿ, äóáëèðóþùåãî ïî âåðõó ñ íàëè÷èåì ðàíåå äóáëèðóþùåãî ñíèçó
4Âñòàâêà â ñåðåäèíó çíà÷åíèÿ, ïîâòîðíî äóáëèðóþùåãî, ïî íèçó, ñ íàëè÷èåì ðàíåå äóáëèðóþùåãî ñâåðõó
5Âñòàâêà â ñåðåäèíó íåäóáëèðóþùåãî çíà÷åíèÿ
6Âñòàâêà â ñåðåäèíó äóáëèðóþùåãî çíà÷åíèÿ, ñ íàëè÷èåì ðàíåå òàêîãî æå äóáëèðîâàíèÿ ñâåðõó
7Âñòàâêà íåäóáëèðóþùåãî çíà÷åíèÿ ñ íàëè÷èåì ðàíåå äóáëèðîâàíèÿ ñíèçó
8Âñòàâêà â êîíåö àðõèâíîãî ôàéëà òð¸õ çíà÷åíèé, äâà â òåêóùèé è îäíî â íîâûé. Ïðîâåðêà ÷¸òêîñòè ãðàíèö.

Âñå âûøåïåðå÷èñëåííûå òåñòû ðåàëèçîâàíû â ìîäóëå òåñòèðîâàíèÿ ÿäðà ñèñòåìû OpenSCADA SystemTests.


 ïðîöåññå òåñòèðîâàíèÿ áûëî îáíàðóæåíî áîëåå 10 îøèáîê. Âñå îáíàðóæåííûå îøèáêè áûëè ëîêàëèçîâàíû è óñòðàíåíû.

Ññûëêè

Referring pages: Doc
HomePageEn/Works/ToDo
HomePageUk/Doc
Works/ChangeLog/part2006


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