Öåëÿìè äàííîãî ýòàïà ÿâëÿåòñÿ:
 ðåçóëüòàòå ïðîäåëàííîé ðàáîòû ñîçäàíû ìîäóëè ìîäåëè äàííûõ UI.VCAEngine è ïðåäñòàâëåíèÿ UI.Vision. Íà äàííîì ýòàïå ìîäóëÿìè ðåàëèçóþòñÿ ìåõàíèçìû ôîðìèðîâàíèÿ ýëåìåíòîâ ïîëüçîâàòåëüñêîãî èíòåðôåéñà. Íà ñëåäóþùèé ýòàïå äàííûå ýëåìåíòû áóäóò èñïîëüçîâàíû äëÿ ôîðìèðîâàíèÿ öåëüíûõ èíòåðôåéñîâ âèçóàëèçàöèè è óïðàâëåíèÿ.
Ðàññìîòðèì ïî ïóíêòàì ðåçóëüòàòû ðåàëèçàöèè äàííîãî ýòàïà:
 ñîîòâåòñòâèè ñî ñòàòè÷åñêîé äèàãðàììîé êëàññîâ (ðèñ.4.11.1) è îáùèìè òðåáîâàíèÿìè áûëè ðåàëèçîâàíû ìîäóëè "UI.VCAEngine" è "UI.Vision" äëÿ ñèñòåìû OpenSCADA. Ìîäóëü "UI.VCAEngine" ðåàëèçóåò ìîäåëü äàííûõ ÑÂÓ è ÿâëÿåòñÿ èñòî÷íèêîì äëÿ ïîñëåäóþùåãî ïðåäñòàâëåíèÿ ýòèõ äàííûõ ðàçëè÷íûìè ìåõàíèçìàìè âèçóàëèçàöèè. Ìîäóëü "UI.Vision" ðåàëèçóåò ñïîñîá ïðåäñòàâëåíèÿ äàííûõ, îñíîâàííûé íà áèáëèîòåêå Qt âåðñèè 4 ôèðìû Trolltech.
Ñâÿçü ìåæäó ìîäóëåì ìîäåëè äàííûõ è ïðåäñòàâëåíèÿ îðãàíèçîâàíà ïîñðåäñòâîì ïðÿìûõ âûçîâîâ (ñèëüíûå ñâÿçè). Òàêîé ñïîñîá ñâÿçè âûáðàí äëÿ ïðåäâàðèòåëüíîãî àáñòðàãèðîâàíèÿ îò îñîáåííîñòåé âçàèìîäåéñòâèÿ è êîíöåíòðàöèè íà îñíîâíûõ çàäà÷àõ ðåàëèçàöèè.  ïîñëåäñòâèè ïëàíèðóåòñÿ óíèôèêàöèÿ è ïîñòðîåíèå ýòèõ ñâÿçåé ïîñðåäñòâîì èíòåðôåéñà óïðàâëåíèÿ ñèñòåìîé OpenSCADA (ñëàáûå ñâÿçè).  ðåçóëüòàòå áóäåò äîñòèãíóòà âîçìîæíîñòü ðàçíåñåíèÿ ìîäåëè äàííûõ è ïðåäñòàâëåíèÿ ñ âîçìîæíîñòüþ îäíîâðåìåííîãî îáñëóæèâàíèÿ ðàçëè÷íûõ ìåõàíèçìîâ ïðåäñòàâëåíèÿ îäíîé ìîäåëüþ äàííûõ ÑÂÓ. Êðîìå òîãî, ìîæíî áóäåò îöåíèòü ñòåïåíü âëèÿíèÿ òèïà ñâÿçè íà ïðîèçâîäèòåëüíîñòü ÑÂÓ.
Ìîäóëü ìîäåëè äàííûõ(äâèæêà) ÑÂÓ ñîäåðæèò êîíòåéíåð áèáëèîòåê âèäæåòîâ/êàäðîâ. Ìîäóëåì ïðåäîñòàâëÿåòñÿ ïðåäîïðåäåë¸ííàÿ áèáëèîòåêà áàçîâûõ âèäæåòîâ(ïðèìèòèâîâ) ñ ïåðâè÷íîé ðåàëèçàöèåé ñîáñòâåííûõ ñâîéñòâ è ëîãèêè îáðàáîòêè ýòèõ ñâîéñòâ.
Õðàíåíèå äàííûõ âèäæåòîâ è áèáëèîòåê âèäæåòîâ ðåàëèçîâàíî â ÁÄ, äîñòóïíûõ ñèñòåìå OpenSCADA. ÁÄ îðãàíèçîâàíà ïî ïðèíàäëåæíîñòè äàííûõ ê áèáëèîòåêå. Ò.å. îòäåëüíàÿ áèáëèîòåêà õðàíèòñÿ â îòäåëüíîé ãðóïïå òàáëèö îäíîé èëè ðàçíûõ ÁÄ. Ïåðå÷åíü áèáëèîòåê âèäæåòîâ õðàíèòñÿ â èíäåêñíîé òàáëèöå áèáëèîòåê ñ èìåíåì "VCALibs" è ñòðóêòóðîé "Libs". Ýêçåìïëÿð ýòîé òàáëèöû ñîçäà¸òñÿ â êàæäîé ÁÄ, ãäå õðàíÿòñÿ äàííûå ýòîãî ìîäóëÿ, ñ ïåðå÷íåì áèáëèîòåê, ñîäåðæàùèõñÿ â êîíêðåòíî âçÿòîé ÁÄ.  ñîñòàâ òàáëèö, ïðèíàäëåæàùèõ áèáëèîòåêå âèäæåòîâ, âõîäÿò ñëåäóþùèå:
Äëÿ óïðàâëåíèÿ áèáëèîòåêàìè âèäæåòîâ è îòäåëüíûìè âèäæåòàìè áûëè íàïèñàíû ñöåíàðèè êîíôèãóðàöèè íà ÿçûêå èíòåðôåéñà óïðàâëåíèÿ OpenSCADA. Íà äàííûé ìîìåíò ýòè ñöåíàðèè ïðèçâàíû âûïîëíÿòü òîëüêî ôóíêöèè öåíòðàëèçîâàííîé êîíôèãóðàöèè ýëåìåíòîâ äâèæêà ÑÂÓ, îäíàêî, â ïîñëåäñòâèè èõ ïëàíèðóåòñÿ ðàñøèðèòü è íàäåëèòü ôóíêöèÿìè îáðàáîòêè çàïðîñîâ ê ìîäåëè äàííûõ îò ìîäóëåé ïðåäñòàâëåíèÿ ñ öåëüþ îðãàíèçàöèè "ñëàáûõ ñâÿçåé" ìåæäó "Ìîäåëüþ äàííûõ" è "Ïðåäñòàâëåíèåì".
Îñíîâîé ïðàêòè÷åñêè âñåõ ýëåìåíòîâ äâèæêà ñòàë îáúåêò àáñòðàêòíîãî ýëåìåíòà âèçóàëèçàöèè VCA::Widget. Íà ñâî¸ì, àáñòðàêòíîì, óðîâíå îáúåêò íàäåë¸í ñëåäóþùèìè ñâîéñòâàìè:
Äëÿ ïðåäñòàâëåíèÿ áèáëèîòåêè âèäæåòîâ ðåàëèçîâàí êëàññ VCA::WdgLib, îñíîâíûìè ôóíêöèÿìè êîòîðîãî ÿâëÿåòñÿ ñîäåðæàíèå áèáëèîòå÷íûõ âèäæåòîâ, õðàíåíèå è çàãðóçêà èõ ñ ÁÄ, ïðåäîñòàâëåíèå äîñòóïà ê ðåñóðñàì (Mime-äàííûå), à òàêæå ðàçäåëåíèå äîñòóïà.
Ñïåöèàëüíî äëÿ âêëþ÷åíèÿ â áèáëèîòåêó âèäæåòîâ áûë ñîçäàí êëàññ áèáëèîòå÷íîãî âèäæåòà VCA::LWidget, êîòîðûé îñíîâàí íà êëàññå àáñòðàêòíîãî âèäæåòà VCA::Widget è ïðåäîñòàâëÿåò äîïîëíèòåëüíûå ôóíêöèè: õðàíåíèÿ äàííûõ âèäæåòà â òàáëèöàõ áèáëèîòåêè, ïåðåîïðåäåëåíèÿ äîñòóïà ê ðåñóðñàì íà òàáëèöó ñ mime-äàííûìè áèáëèîòåêè è õðàíåíèå âëîæåííîãî êîíòåéíåðíîãî âèäæåòà VCA::CWidget.
 ñâîþ î÷åðåäü êëàññ êîíòåéíåðíîãî âèäæåòà VCA::CWidget ïðåäîñòàâëÿåò ôóíêöèè: õðàíåíèÿ äàííûõ êîíòåéíåðíîãî âèäæåòà â òàáëèöàõ áèáëèîòåêè, ïåðåîïðåäåëåíèÿ äîñòóïà ê ðåñóðñàì íà òàáëèöó ñ mime-äàííûìè áèáëèîòåêè, à òàêæå ïðèíóäèòåëüíûé ðåæèì ïðîñòîé ññûëêè äëÿ âñåõ êîíòåéíåðíûõ âèäæåòîâ.
Íà îñíîâå êëàññà áèáëèîòå÷íîãî âèäæåòà VCA::LWidget áûë ñôîðìèðîâàí àáñòðàêòíûé êëàññ òåðìèíàëüíîãî âèäæåòà VCA::PrWidget. À óæå íà åãî îñíîâå ñôîðìèðîâàíû ðåàëèçàöèè ïðèìèòèâîâ áàçîâûõ âèäæåòîâ, êîòîðûå è ôîðìèðóþò áèáëèîòåêó áàçîâûõ âèäæåòîâ, ñîçäàâàåìóþ ìîäóëåì ïðè èíèöèàëèçàöèè. Çíà÷åíèÿ ñâîéñòâ áàçîâûõ âèäæåòîâ òàêæå ìîãóò ñîõðàíÿòüñÿ â ÁÄ (òàáëèöû áèáëèîòåêè âèäæåòîâ), ôîðìèðóÿ íóæíûå øàáëîíû. Êðîìå òîãî, áàçîâàÿ áèáëèîòåêà ïðèìèòèâîâ ìîæåò äîîïðåäåëÿòüñÿ ðàñøèðåííûìè ïðèìèòèâàìè èç ìîäóëåé èíòåðôåéñîâ ïðåäñòàâëåíèÿ, êîòîðûì áàçîâûõ íåäîñòàòî÷íî. Íî â ýòîì ñëó÷àå íóæíî ó÷èòûâàòü, ÷òî ïîäîáíûå äåéñòâèå — ïóòü ê íåñîâìåñòèìîñòè ìåæäó ìîäóëÿìè èíòåðôåéñîâ ïðåäñòàâëåíèÿ!
Ñðåäà ðàçðàáîòêè ïîëüçîâàòåëüñêèõ èíòåðôåéñîâ ìîäóëÿ îñíîâàíà íà MDI(Multi Document Interface) èíòåðôåéñå. Äàííûé ïîäõîä ïîçâîëÿåò îäíîâðåìåííî ðåäàêòèðîâàòü íåñêîëüêî êàäðîâ ðàçëè÷íûõ ðàçìåðîâ. Èñïîëüçîâàíû ñëåäóþùèå ìåõàíèçìû óïðàâëåíèÿ ðàçðàáîòêîé: ïàíåëè èíñòðóìåíòîâ, ïóíêòû ìåíþ è êîíòåêñòíîå ìåíþ. Áîëüøèíñòâî äåéñòâèé äóáëèðóþòñÿ â ðàçíûõ ìåõàíèçìàõ, ÷òî ïîçâîëÿåò áûñòðî íàéòè èíñòðóìåíò ïðåäïî÷èòàåìûì ñïîñîáîì. Íàâèãàöèîííûå èíòåðôåéñû ðåàëèçîâàíû ïðèñîåäèíÿåìûìè îêíàìè. Êîíôèãóðàöèÿ ïàíåëåé èíñòðóìåíòîâ è ïðèñîåäèíÿåìûõ îêîí ñîõðàíÿåòñÿ ïðè âûõîäå è âîññòàíàâëèâàåòñÿ ïðè ñòàðòå, ÷òî ïîçâîëÿåò íàñòðàèâàòü èíòåðôåéñ ïîä ñåáÿ.
Îäíèì èç ýëåìåíòîì ïîëüçîâàòåëüñêîãî èíòåðôåéñà, ðåàëèçîâàííûì êàê ïðèñîåäèíÿåìîå îêíî, ÿâëÿåòñÿ íàâèãàòîð áèáëèîòåê âèäæåòîâ. Ñ ïîìîùüþ íàâèãàòîðà ìîæíî áûñòðî íàéòè íóæíûé âèäæåò èëè áèáëèîòåêó è ïðîäåëàòü íàä íèìè íåîáõîäèìûå îïåðàöèè. Ðåàëèçîâàíû îïåðàöèè: äîáàâëåíèÿ, óäàëåíèÿ, íàñòðîéêè âèäæåòîâ è áèáëèîòåê, à òàêæå âèçóàëüíîãî ðåäàêòèðîâàíèÿ âèäæåòîâ.
Äëÿ óäîáíîãî óïðàâëåíèÿ ñâîéñòâàìè âèäæåòîâ/êàäðîâ ðåàëèçîâàí èíñïåêòîð àòðèáóòîâ(ñâîéñòâ) âèäæåòîâ. Èíñïåêòîð àòðèáóòîâ ðåàëèçîâàí êàê ïðèñîåäèíÿåìîå îêíî, êîòîðîå àêòèâèðóåòñÿ ïðè âûáîðå êàäðà èëè âèäæåòà. Îêíî èíñïåêòîðà àòðèáóòîâ ìîæíî óäîáíî ðàñïîëîæèòü íà âèäó, ïðèøâàðòîâàâ ê îäíîé èç ñòîðîí ðàáî÷åãî îêíà. Èíñïåêòîðîì àòðèáóòîâ ðåàëèçîâàíà ïîääåðæêà ãðóïïîâîé êîíôèãóðàöèè íåñêîëüêèõ âèäæåòîâ, à òàêæå ãðóïïèðîâàíèå îäíîòèïíûõ ñâîéñòâ.
Äëÿ âèçóàëüíîãî ðåäàêòèðîâàíèÿ êàäðîâ ðåàëèçîâàíà ïåðâè÷íàÿ ïîääåðæêà ðåäàêòèðîâàíèÿ âèäæåòîâ è êàäðîâ. Óæå ñåé÷àñ ðåäàêòîð ïîçâîëÿåò ðåäàêòèðîâàòü êàäðû, îñíîâàííûå íà ïðèìèòèâå "Box" è ïîëíîöåííî îòîáðàæàòü ïðèìèòèâ òåêñòîâîãî ïîëÿ "Text".  ðåäàêòîðå êàäðîâ ðåàëèçîâàíû ôóíêöèè:
Âèä îêíà ðàçðàáîòêè ïðèâåä¸í íà ðèñ. 6.1.1, ãäå ìîæíî âèäåòü: ïàíåëè èíñòðóìåíòîâ, íàâèãàòîð âèäæåòîâ, èíñïåêòîð àòðèáóòîâ, îêíî ðåäàêòèðîâàíèÿ êàäðà è ñòðîêà ñòàòóñà.
Äëÿ íàñòðîéêè îáúåêòîâ âèäæåòîâ è èõ áèáëèîòåê ðàçðàáîòàíû äâà äèàëîãà, äèàëîã íàñòðîéêè âèäæåòà (ðèñ.6.1.2) è äèàëîã íàñòðîéêè áèáëèîòåêè âèäæåòîâ (ðèñ.6.1.3). Äèàëîã íàñòðîéêè áèáëèîòåêè ïîçâîëÿåò óñòàíîâèòü îñíîâíûå ñâîéñòâà è ïîìåñòèòü mime-äàííûå â ÁÄ, äëÿ ïîñëåäóþùåãî èñïîëüçîâàíèÿ â âèäæåòàõ áèáëèîòåêè. Äèàëîã íàñòðîéêè âèäæåòà ïîçâîëÿåò óñòàíîâèòü: îñíîâíûå ñâîéñòâà âèäæåòà, èíäèâèäóàëüíî óñòàíîâèòü çíà÷åíèÿ àòðèáóòîâ è ñêîíôèãóðèðîâàòü âíóòðåííþþ ïðîöåäóðó âû÷èñëåíèé âèäæåòà ñ äîïîëíèòåëüíûìè (ïîëüçîâàòåëüñêèìè) ñâîéñòâàìè.