Àâòîð: /RomanSavochenko
Îòêðûòàÿ SCADA ñèñòåìà OpenSCADA ïðèíàäëåæèò ê êëàññó SCADA(Supervisory Control and Data Aquisition) ñèñòåì. Ñèñòåìû äàííîãî êëàññà èñïîëüçóþòñÿ êàê ýëåìåíò ñèñòåì àâòîìàòèçàöèè òåõíîëîãè÷åñêèõ ïðîöåññîâ(ÀÑÓ-ÒÏ).
Ñèñòåìà OpenSCADA ñòðîèòñÿ êàê ìîäóëüíàÿ è âûñîêîìàñøòàáèðóåìàÿ ñèñòåìà. Ñëåäîâàòåëüíî âíóòðåííÿÿ ñòðóêòóðà ñèñòåìû äîëæíà óäîâëåòâîðÿòü âûñîêèì òðåáîâàíèÿì ãèáêîñòè.
Äëÿ ïîëó÷åíèÿ äàííûõ èçâíå â ñèñòåìå OpenSCADA ïðåäóñìîòðåíû, òàê íàçûâàåìûå, "Èñòî÷íèêè äàííûõ". Âñå èñòî÷íèêè äàííûõ ñîäåðæàòñÿ â îäíîèì¸ííîé ïîäñèñòåìå è ãðóïïèðîâàíû ïî òèïàì èñòî÷íèêîâ äàííûõ, îïðåäåëÿþùèõ ìîäóëü ïîäñèñòåìû èñòî÷íèêîâ äàííûõ (DAQ). Ìîäóëü ÿâëÿåòñÿ îòäåëÿåìûì êîìïîíåíòîì ñèñòåìû OpenSCADA, êîòîðûé, äëÿ ìîäóëåé ïîäñèñòåìû "DAQ", ñîäåðæèò êîíòðîëåðû ñ ïàðàìåòðàìè ïðåäîïðåäåë¸ííîé ñòðóêòóðû. Ïîä ñòðóêòóðîé ïàðàìåòðà ïîäðàçóìåâàåòñÿ íàïîëíåííîñòü åãî àòðèáóòàìè.
Ïðèðîäà èñòî÷íèêà äàííûõ ìîæåò êîëåáàòüñÿ îò "ñûðîãî" äî ïîëíîöåííîãî. Ïîä "ñûðûì" ïîäðàçóìåâàåòñÿ èñòî÷íèê, êîòîðûé ïðåäîñòàâëÿåò òîëüêî ýëåìåíòàðíûå ñèãíàëû (öåëîå, âåùåñòâåííîå, ëîãè÷åñêîå). Ïîä ïîëíîöåííûì, ïîäðàçóìåâàåòñÿ èñòî÷íèê, êîòîðûé, â ïàðàìåòðå, ñîäåðæèò àòðèáóòû äîïîëíèòåëüíîãî çíà÷åíèÿ, ïîêðûâàþùèå ïðàêòè÷åñêè âñå äèàãíîñòè÷åñêèå çàäà÷è, ò.å. ïàðàìåòð ÿâëÿåòñÿ çàêîí÷åííûì îáúåêòîì, íå òðåáóþùèì äîïîëíèòåëüíîé èíôîðìàöèè.
Ó÷èòûâàÿ òàêîé ðàçáðîñ, ìîæåò âîçíèêíóòü ñèòóàöèÿ, êîãäà èíôîðìàöèè â îáúåêòå ïàðàìåòðà íåäîñòàòî÷íî äëÿ îïèñàíèÿ îáúåêòà â öåëîì è íóæåí ïðîèçâîäíûé îáúåêò íà áîëåå âûñîêîì óðîâíå àáñòðàêöèè. Ðåøåíèåì òàêîé ñèòóàöèè ìîæåò áûòü ôîðìèðîâàíèå äîïîëíÿþùèõ ïàðàìåòðîâ, ÷òî ÿâëÿåòñÿ íåíàãëÿäíûì è âíîñèò ïóòàíèöó. Áîëåå ïðàâèëüíûì ðåøåíèåì áóäåò ñîçäàíèå ïðîñëîéêè, òàê íàçûâàåìîãî "Ëîãè÷åñêîãî óðîâíÿ", âûïîëíÿþùåé ôóíêöèè ãèáêîãî ôîðìèðîâàíèÿ ïàðàìåòðîâ/îáúåêòîâ íåîáõîäèìîé ñòðóêòóðû, âêëþ÷àÿ ïîñò-îáðàáîòêó.
Ôóíêöèîíàëüíî, ðàçðàáîòêà ïðåäíàçíà÷åíà äëÿ ïðåäîñòàâëåíèÿ â ñèñòåìå OpenSCADA ìåõàíèçìà ñâîáîäíîãî ôîðìèðîâàíèÿ îáúåêòîâ ïàðàìåòðîâ íóæíîé ñòðóêòóðû.
Ýêñïëóàòàöèîííûì íàçíà÷åíèåì ðàçðàáîòêè ÿâëÿåòñÿ:
Àðõèòåêòóðíî, ëîãè÷åñêèé óðîâåíü äîëæåí óäîâëåòâîðÿòü ñëåäóþùèì òðåáîâàíèÿì:
Èñõîäÿ èç àðõèòåêòóðíûõ ñîîáðàæåíèé ìîæíî ñôîðìèðîâàòü òðåáîâàíèÿ ê îòäåëüíûì êîìïîíåíòàì.
Òðåáîâàíèÿ ê ïîäñèñòåìå "Ïàðàìåòðû":
Òðåáîâàíèÿ ê îáúåêòàì "Øàáëîíû ïàðàìåòðîâ":
Òðåáîâàíèÿ ê îáúåêòàì "Ïàðàìåòðîâ":
Èñõîäÿ èç âûøåèçëîæåííûõ òðåáîâàíèé ðàçðàáîòàåì Ëîãè÷åñêèé óðîâåíü ïàðàìåòðîâ. Îáùàÿ ñòðóêòóðà Ëîãè÷åñêîãî óðîâíÿ, â êîíòåêñòå âçàèìîäåéñòâèÿ ñ ôèçè÷åñêèì, ïðåäñòàâëåíà íà ðèñ. 1.
Ðàçðàáîòêà ïîäñèñòåìû "Ïàðàìåòðû" íè÷åì ñóùåñòâåííî íå îòëè÷àåòñÿ îò äðóãèõ ïîäñèñòåì ñèñòåìû OpenSCADA, ïîýòîìó ðàññìàòðèâàòü îñîáåííîñòè å¸ ôîðìèðîâàíèÿ íå áóäåì. Øàáëîíû ïàðàìåòðîâ è ïàðàìåòðû ÿâëÿþòñÿ èíòåðåñíûì âîïðîñîì, ïîýòîìó ðàññìîòðèì îñîáåííîñòè èõ ôîðìèðîâàíèÿ.
Òðåáîâàíèÿìè ê øàáëîíó ïàðàìåòðîâ, îçâó÷åíà íåîáõîäèìîñòü ñîäåðæàíèÿ ñòðóêòóðû àòðèáóòîâ, êîòîðûå áóäóò ôèãóðèðîâàòü êàê ñî ñòîðîíû êîíôèãóðàöèè ïàðàìåòðà, òàê è ñî ñòîðîíû ðåçóëüòèðóþùèõ àòðèáóòîâ. Êðîìå òîãî, íåîáõîäèìî îáåñïå÷èòü âîçìîæíîñòü âû÷èñëåíèÿ àòðèáóòîâ. Õîðîøèì ðåøåíèåì áóäåò èñïîëüçîâàíèÿ äëÿ ýòèõ öåëåé îáúåêòîâ ôóíêöèé ñðåäû ïðîãðàììèðîâàíèÿ?. Òàêîé ïîäõîä èçáàâèò îò íåîáõîäèìîñòè ñîçäàíèÿ ìåõàíèçìà äîáàâëåíèÿ àòðèáóòîâ, ïîñêîëüêó äîáàâëÿòüñÿ è ôîðìèðîâàòüñÿ îíè áóäóò â âèäå ïàðàìåòðîâ ôóíêöèè. Îáùóþ ñòðóêòóðó ôîðìèðîâàíèÿ ïàðàìåòðà ïî øàáëîíó ïðåäñòàâëåíî íà ðèñ. 2.
Àðõèòåêòóðà ëîãè÷åñêîãî óðîâíÿ ïîëó÷àåòñÿ ïðåäåëüíî ïðîñòàÿ.  âèäå äèàãðàììû êëàññîâ å¸ ìîæíî èçîáðàçèòü ñëåäóþùèì îáðàçîì (ðèñ 3). Îïèñàíèå êëàññîâ ïðèâåäåíî â òàáëèöå 1.
Òàáëèöà 1. Êëàññû ëîãè÷åñêîãî óðîâíÿ ïàðàìåòðîâ
Êëàññ | Îòâåòñòâåííîñòü | Ñâÿçè |
TParamS | Êëàññ ïîäñèñòåìû "Ïàðàìåòðû". Ñîäåðæèò ìåõàíèçì âû÷èñëåíèÿ ïàðàìåòðîâ íà øàáëîíàõ | Ñîäåðæèò ïàðàìåòðû è èõ øàáëîíû. |
TParam | Êëàññ ïàðàìåòðà. Ñîäåðæèò ñòðóêòóðó ñâÿçåé, êàäð çíà÷åíèé ôóíêöèè è ìîæåò âûïîëíÿòü âû÷èñëåíèÿ ñ ïîìîùüþ ôóíêöèè øàáëîíà | Ñîäåðæèòñÿ â ïîäñèñòåìå "Ïàðàìåòðû". Âêëþ÷àåò êàäð çíà÷åíèé îáúåêòà ôóíêöèè. |
TPrmTmpl | Êëàññ øàáëîíà ïàðàìåòðà. Ñîäåðæèò ñòðóêòóðó àòðèáóòîâ(ïàðàìåòðîâ ôóíêöèè) | Ñîäåðæèòñÿ â ïîäñèñòåìå "Ïàðàìåòðû". Âêëþ÷àåò ññûëêó íà îáúåêò ôóíêöèè. |
Ëîãèêó ðàáîòû ëîãè÷åñêîãî óðîâíÿ ïàðàìåòðîâ ìîæíî çàïèñàòü ñëåäóþùèì îáðàçîì:
 øàáëîíå ïàðàìåòðà, ó àòðèáóòà, ïðåäóñìîòðåíî äâà ñâîéñòâà: "Àòðèáóò", "Äîñòóï" è "Çíà÷åíèå". Ñâîéñòâî "Àòðèáóò" îïèñûâàåò îòðàæåíèÿ íà àòðèáóò ïàðàìåòðà. Ïðåäóñìîòðåíû ñëåäóþùèå âàðèàíòû ýòîãî ñâîéñòâà:
Ñâîéñòâî "Äîñòóï" îïðåäåëÿåò ñâÿçè ýòîãî ïàðàìåòðà ôóíêöèè ñ ôèçè÷åñêèì óðîâíåì. Ïðåäóñìîòðåíû ñëåäóþùèå âàðèàíòû ýòîãî ñâîéñòâà:
Ïîëå "Çíà÷åíèå" îïèñûâàåò çíà÷åíèå äëÿ êîíñòàíò è ïðåäïî÷èòàåìûé àòðèáóò ïàðàìåòðà äëÿ ñâÿçåé. Îïèñàíèå ïðåäïî÷èòàåìîãî àòðèáóòà ïàðàìåòðà, äëÿ ñâÿçåé, èñïîëüçóåòñÿ â öåëÿõ îïèñàíèÿ íåÿâíîãî ðàñïðåäåëåíèÿ àòðèáóòîâ ïàðàìåòðîâ. Ñòðóêòóðà îïèñàíèÿ ñëåäóþùàÿ: <Îïèñàíèå ïàðàìåòðà>|<àòðèáóò>. Ãäå "Îïèñàíèå ïàðàìåòðà" èñïîëüçóåòñÿ äëÿ îáúåäèíåíèÿ ïàðàìåòðîâ è ïîìåùåíèÿ íà ôîðìó êîíôèãóðàöèè, à àòðèáóò äëÿ àâòîìàòè÷åñêîãî ñâÿçûâàíèÿ ïðè íàçíà÷åíèè ïàðàìåòðà.
 ïðîöåññå ðåàëèçàöèè áûëè ñîçäàíû âñå êîìïîíåíòû, à òàêæå ñöåíàðèè êîíôèãóðàöèè, èíòåðôåéñà óïðàâëåíèÿ, äëÿ íèõ. Ôîðìû êîíôèãóðàöèè ïîäñèñòåìû "Ïàðàìåòðû" ïðèâåäåíû íà ðèñ. 4. è ðèñ. 5. Ôîðìû êîíôèãóðàöèè øàáëîíîâ ïàðàìåòðîâ ïðèâåäåíû íà ðèñ. 6 è ðèñ. 7. Ôîðìû êîíôèãóðàöèè ïàðàìåòðîâ ëîãè÷åñêîãî óðîâíÿ ïðèâåäåíû íà ðèñ. 8, ðèñ. 9 è ðèñ.10.