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