Ìîäóëü: | BlockCalc |
Èìÿ: | Áëî÷íûé âû÷èñëèòåëü. |
Òèï: | DAQ |
Èñòî÷íèê: | daq_BlockCalc.so |
Âåðñèÿ: | 1.6.0 |
Àâòîð: | Ðîìàí Ñàâî÷åíêî |
Îïèñàíèå: | Ïðåäîñòàâëÿåò áëî÷íûé âû÷èñëèòåëü. |
Ëèöåíçèÿ: | GPL |
Ìîäóëü ïîäñèñòåìû «DAQ» BlockCalc ïðåäîñòàâëÿåò â ñèñòåìó OpenSCADA ìåõàíèçì ñîçäàíèÿ ïîëüçîâàòåëüñêèõ âû÷èñëåíèé. Ìåõàíèçì âû÷èñëåíèé îñíîâûâàåòñÿ íà ôîðìàëüíîì ÿçûêå áëî÷íûõ ñõåì(ôóíêöèîíàëüíûõ áëîêîâ).
Òàêæå ìîäóëåì ðåàëèçóþòñÿ ôóíêöèè ãîðèçîíòàëüíîãî ðåçåðâèðîâàíèÿ, à èìåííî ñîâìåñòíîé ðàáîòû ñ óäàë¸ííîé ñòàíöèåé ýòîãî-æå óðîâíÿ. Êðîìå ñèíõðîíèçàöèè çíà÷åíèé è àðõèâîâ àòðèáóòîâ ïàðàìåòðîâ ìîäóëåì îñóùåñòâëÿåòñÿ ñèíõðîíèçàöèÿ çíà÷åíèé áëîêîâ áëî÷íîé ñõåìû, ñ öåëüþ áåçóäàðíîãî ïîäõâàòà àëãîðèòìîâ.
ßçûêè áëî÷íîãî ïðîãðàììèðîâàíèÿ îñíîâûâàþòñÿ íà ïîíÿòèè áëî÷íûõ ñõåì (ôóíêöèîíàëüíûõ áëîêîâ). Ïðè ÷åì â çàâèñèìîñòè îò ñóùíîñòè áëîêà áëî÷íûå ñõåìû ìîãóò áûòü: ëîãè÷åñêèìè ñõåìàìè, ñõåìàìè ðåëåéíîé ëîãèêè, ìîäåëüþ òåõíîëîãè÷åñêîãî ïðîöåññà è äðóãîå. Ñóòü áëî÷íîé ñõåìû ñîñòîèò â òîì, ÷òî îíà ñîäåðæèò ñïèñîê áëîêîâ è ñâÿçè ìåæäó íèìè.
Ñ ôîðìàëüíîé òî÷êè çðåíèÿ áëîê ýòî ýëåìåíò (ôóíêöèÿ), êîòîðûé èìååò âõîäû, âûõîäû è àëãîðèòì âû÷èñëåíèÿ. Èñõîäÿ èç êîíöåïöèè ñðåäû ïðîãðàììèðîâàíèÿ, áëîê — ýòî êàäð çíà÷åíèé, àññîöèèðîâàííûé ñ îáúåêòîì ôóíêöèè.
Ðàçóìååòñÿ, âõîäû è âûõîäû áëîêîâ íóæíî ñîåäèíÿòü äëÿ ïîëó÷åíèÿ öåëüíîé áëî÷íîé ñõåìû. Ïðåäóñìîòðåíû ñëåäóþùèå òèïû ñâÿçåé:
Óñëîâíî ñîåäèíåíèÿ áëîêîâ ìîæíî èçîáðàçèòü êàê ñâÿçè ìåæäó áëîêàìè â öåëîì (ðèñ. 1) èëè äåòàëèçàöèÿ ñâÿçåé (ðèñ. 2).  ïðîöåññå ñâÿçûâàíèÿ ïàðàìåòðîâ áëîêîâ äîïóñòèìî ñîåäèíåíèå ïàðàìåòðîâ ëþáîãî òèïà. Ïðè ýòîì, â ïðîöåññå âû÷èñëåíèÿ áóäåò âûïîëíÿòüñÿ àâòîìàòè÷åñêîå ïðèâåäåíèå òèïîâ.
Êàæäûé êîíòðîëëåð ýòîãî ìîäóëÿ ñîäåðæèò áëî÷íóþ ñõåìó, êîòîðóþ îí îáñ÷èòûâàåò ñ óêàçàííûì ïåðèîäîì. Äëÿ ïðåäîñòàâëåíèÿ âû÷èñëåííûõ äàííûõ â ñèñòåìó OpenSCADA â êîíòðîëëåðå ìîãóò ñîçäàâàòüñÿ ïàðàìåòðû. Ïðèìåð âêëàäêè êîíôèãóðàöèè êîíòðîëëåðà äàííîãî òèïà èçîáðàæåí íà ðèñ.3.
Ñ ïîìîùüþ ýòîé âêëàäêè ìîæíî óñòàíîâèòü:
Áëî÷íàÿ ñõåìà ôîðìèðóåòñÿ ïîñðåäñòâîì âêëàäêè áëîêîâ êîíòðîëëåðà, êîíôèãóðàöèè áëîêà (Ðèñ.4) è åãî ñâÿçåé (Ðèñ.5).
Áëîêè áëî÷íîé ñõåìû ìîãóò ñâÿçûâàòüñÿ êàê ìåæäó ñîáîé, òàê è ïîäêëþ÷àòüñÿ ê àòðèáóòàì ïàðàìåòðîâ. Ñàìè áëîêè ïðè ýòîì íå ñîäåðæàò ñòðóêòóðû âõîäîâ/âûõîäîâ(IO), à ñîäåðæàò çíà÷åíèÿ, èñõîäÿ èç ñòðóêòóðû IO ñâÿçàííîé ôóíêöèè. Ôóíêöèè äëÿ ñâÿçûâàíèÿ ñ áëîêîì èñïîëüçóþòñÿ èç îáúåêòíîé ìîäåëè ñèñòåìû OpenSCADA.
Ëþáîé áëîê ìîæåò â ëþáîé ìîìåíò áûòü èñêëþ÷¸í èç îáðàáîòêè è ïåðåêîíôèãóðèðîâàí ïîñëå ÷åãî ìîæåò áûòü îïÿòü âêëþ÷åí â îáðàáîòêó. Ñâÿçè ìåæäó áëîêàìè ìîãóò êîíôèãóðèðîâàòüñÿ áåç èñêëþ÷åíèÿ áëîêîâ èç îáðàáîòêè è îñòàíîâêè êîíòðîëëåðà. Çíà÷åíèÿ âñåõ IO, íå îõâà÷åííûõ ñâÿçÿìè ìîãóò áûòü èçìåíåíû â ïðîöåññå îáðàáîòêè.
Ñ ïîìîùüþ âêëàäêè áëîêîâ ìîæíî:
Ñ ïîìîùüþ ôîðìû êîíôèãóðàöèè áëîêà ìîæíî óñòàíîâèòü:
Ñ ïîìîùüþ âêëàäêè êîíôèãóðàöèè ñâÿçåé áëîêà áëî÷íîé ñõåìû ìîæíî óñòàíîâèòü ñâÿçè äëÿ êàæäîãî ïàðàìåòðà áëîêà îòäåëüíî.
Ïîääåðæèâàþòñÿ ñëåäóþùèå òèïû ñâÿçåé:
Äëÿ óñòàíîâêè çíà÷åíèé ïàðàìåòðîâ áëîêà ïðåäíàçíà÷åíà ñîîòâåòñòâóþùàÿ âêëàäêà (Ðèñ.6).
 ñîîòâåòñòâèè ñ ðåàëèçàöèåé ïîëüçîâàòåëüñêèõ ôóíêöèé â ñèñòåìå OpenSCADA ïîääåðæèâàþòñÿ ÷åòûðå îñíîâíûõ òèïà IO: öåëîå, âåùåñòâåííîå, ëîãè÷åñêîå è ñòðîêà.
Ìîäóëü ïðåäîñòàâëÿåò òîëüêî îäèí òèï ïàðàìåòðîâ “Ñòàíäàðòíûé”. Ïàðàìåòð ñëóæèò äëÿ îòðàæåíèÿ âû÷èñëåííûõ â áëîêàõ äàííûõ íà àòðèáóòû ïàðàìåòðîâ êîíòðîëëåðà. Ïðèìåð âêëàäêè êîíôèãóðàöèè ïàðàìåòðà ïðèâåäåí íà Ðèñ.7.
Ñ ïîìîùüþ ýòîé âêëàäêè ìîæíî óñòàíîâèòü:
Äëÿ óïðîùåíèÿ è óñêîðåíèÿ ïðîöåäóðû ðàçðàáîòêè ñëîæíûõ è ïîâòîðÿþùèõñÿ áëî÷íûõ ñõåì ïðåäóñìîòðåí ìåõàíèçì êîïèðîâàíèÿ ýëåìåíòîâ áëî÷íîé ñõåìû êàê ïî îòäåëüíîñòè, òàê è áëî÷íûõ ñõåì öåëèêîì. Ìåõàíèçì êîïèðîâàíèÿ èíòåãðèðîâàí â ÿäðî OpenSCADA è ðàáîòàåò ïðîçðà÷íî.