OpenSCADAWiki: Home Page Uk/Doc/F Lib Complex1 ...

Home | Index | Changes | Comments | Users | Registration | Login  Password:  
 
This is an old revision of HomePageUk/Doc/FLibComplex1 from 2016-11-15 19:48:28..
English (1 Kb) English
Russian (1 Kb) Ðóññêàÿ
 (2 Kb) Ïåðåêëàä

Ìîäóëü <FLibComplex1> ï³äñèñòåìè "Ñïåö³àëüí³"

Ìîäóëü: FLibComplex1
²ì'ÿ: Á³áë³îòåêà ôóíêö³é ñóì³ñíîñò³ ç³ SCADA Complex1.
Òèï: Ñïåö³àëüí³
Äæåðåëî: spec_FLibComplex1.so
Âåðñ³ÿ: 1.1.0
Àâòîð: Ðîìàí Ñàâî÷åíêî
Îïèñ: Íàäຠá³áë³îòåêó ôóíêö³é ñóì³ñíîñò³ ³ç SCADA Complex1 ô³ðìè ÎÎÎ Í²Ï "IJß".
˳öåíç³ÿ: GPL


Contents

Âñòóï

Ñïåö³àëüíèé ìîäóëü FLibComplex1 íàäຠâ ñèñòåìó OpenSCADA ñòàòè÷íó á³áë³îòåêó ôóíêö³é ñóì³ñíîñò³ ³ç SCADA Complex1 ô³ðìè Í²Ï "DIYA". Ö³ ôóíêö³¿ âèêîðèñòîâóâàëèñÿ ó SCADA ñèñòåì³ Complex1 ó âèãëÿä³ àëãîáëîê³â äëÿ ñòâîðåííÿ âíóòð³øíüîñèñòåìíèõ îá÷èñëåíü íà îñíîâ³ â³ðòóàëüíîãî êîíòðîëåðà. Íàäàííÿ á³áë³îòåêè öèõ ôóíêö³é äîçâîëÿº çä³éñíèòè ïåðåíîñ îá÷èñëþâàëüíèõ àëãîðèòì³â ³ç ñèñòåìè Complex1.


Äëÿ àäðåñàö³¿ äî ôóíêö³é ö³º¿ á³áë³îòåêè ìîæíà âèêîðèñòîâóâàòè ñòàòè÷íó àäðåñó âèêëèêó "Special.FLibComplex1.{Func}()" àáî äèíàì³÷íó "SYS.Special.FLibComplex1["{Func}"].call()", "SYS.Special.FLibComplex1.{Func}()". Äå {Func} — ³äåíòèô³êàòîð ôóíêö³¿ ó á³áë³îòåö³.


Íèæ÷å ïðèâåäåíî îïèñ êîæíî¿ ôóíêö³¿ á³áë³îòåêè. Äëÿ êîæíî¿ ôóíêö³¿ çä³éñíþâàëàñÿ îö³íêà ÷àñó âèêîíàííÿ. Âèì³ðþâàííÿ çä³éñíþâàëîñÿ íà ñèñòåì³ ç íàñòóïíèìè ïàðàìåòðàìè: Athlon 64 3000+ (ALTLinux 3.0(32á³ò)) øëÿõîì âèì³ðþâàííÿ çàãàëüíîãî ÷àñó âèêîíàííÿ ôóíêö³¿ ïðè âèêëèêó ¿¿ 1000 ðàç³â. Âèá³ðêà çä³éñíþâàëàñÿ çà íàéìåíøèì çíà÷åííÿì ³ç ï'ÿòè îá÷èñëåíü. ×àñ îòî÷óºòüñÿ êóòîâèìè äóæêàìè òà âèì³ðþºòüñÿ ó ì³êðîñåêóíäàõ.

1. Ñèãíàë (alarm) <111>

Îïèñ: Óñòàíîâêà îçíàêè ñèãíàë³çàö³¿ ó âèïàäêó âèõîäó çíà÷åííÿ çì³ííî¿ çà âêàçàíó ãðàíèöþ.
Ôîðìóëà:

out = if(val>max || val<min) true; else false;

2. Óìîâà '<' (cond_lt) <239>

Îïèñ: Îïåðàö³ÿ ðîçãàëóæåííÿ ó â³äïîâ³äíîñò³ ç óìîâîþ "<".
Ôîðìóëà:

out=if(in1<(in2_1*in2_2*in2_3*in2_4)) in3_1*in3_2*in3_3*in3_4;
else in4_1*in4_2*in4_3*in4_4;

3. Óìîâà '>' (cond_gt) <240>

Îïèñ: Îïåðàö³ÿ ðîçãàëóæåííÿ ó â³äïîâ³äíîñò³ ³ç óìîâîþ ">".
Ôîðìóëà:

out=if(in1>(in2_1*in2_2*in2_3*in2_4)) in3_1*in3_2*in3_3*in3_4;
else in4_1*in4_2*in4_3*in4_4;

4. Ïîâíà óìîâà (cond_full) <513>

Îïèñ: Ïîâíà ïåðåâ³ðêà óìîâè, âêëþ÷àþ÷è á³ëüøå, ìåíøå òà äîð³âíþº.
Ôîðìóëà:

out = if(in1<(in2_1*in2_2*in2_3*in2_4)) in3_1*in3_2*in3_3*in3_4;
else if( in1>(in4_1*in4_2*in4_3*in4_4) in5_1*in5_2*in5_3*in5_4;
else in6_1*in6_2*in6_3*in6_4;

5. Äèñêðåòíèé áëîê (digitBlock) <252>

Îïèñ: Ôóíêö³ÿ ì³ñòèòü àëãîðèòì óïðàâë³ííÿ çá³ðêàìè äèñêðåòíèõ ñèãíàë³â äëÿ çàñóâîê òà íàñîñ³â, ÿê³ ì³ñòÿòü: îçíàêè "Open", "Close" òà êîìàíäè "Open", "Close", "Stop". Ôóíêö³ÿ ï³äòðèìóº ðîáîòó ç ³ìïóëüñíèìè êîìàíäàìè, òîáòî ìîæå çí³ìàòè ñèãíàë ÷åðåç âêàçàíèé ïðîì³æîê ÷àñó.
Ïàðàìåòðè:

ID Ïàðàìåòð Òèï Ðåæèì
cmdOpen Êîìàíäà "³äêðèòè" Bool Âèõ³ä
cmdClose Êîìàíäà "Çàêðèòè" Bool Âèõ³ä
cmdStop Êîìàíäà "Ñòîï" Bool Âèõ³ä
stOpen Ñòàí "³äêðèòî" Bool Âõ³ä
stClose Ñòàí "Çàêðèòî" Bool Âõ³ä
tCmd ×àñ óòðèìàííÿ êîìàíäè (s) Ö³ëèé Âõ³ä
frq Ïåð³îä îáðàõóâàííÿ (ìñ) Ö³ëèé Âõ³ä

Ïåðåêëàä

6. Äåëåíèå (div) <526>

Îïèñàíèå: Ïðîèçâîäèò äåëåíèå ñáîðîê ïåðåìåííûõ.
Ôîðìóëà:

out = (in1_1*in1_2*in1_3*in1_4*in1_5 + in2_1*in2_2*in2_3*in2_4*in2_5 + in3) /
(in4_1*in4_2*in4_3*in4_4*in4_5 + in5_1*in5_2*in5_3*in5_4*in5_5 + in6);

7. Ýêñïîíåíòà (exp) <476>

Îïèñàíèå: Âû÷èñëåíèå ýêñïîíåíòû íàä ãðóïïîé ïåðåìåííûõ.
Ôîðìóëà:

out=exp (in1_1*in1_2*in1_3*in1_4*in1_5 + (in2_1*in2_2*in2_3*in2_4*in2_5+in3) /
(in4_1*in4_2*in4_3*in4_4*in4_5+in5) )

8. Ðàñõîä (flow) <235>

Îïèñàíèå: Âû÷èñëåíèå ðàñõîäà ãàçà.
Ôîðìóëà:

f = K1*((K3+K4*x)^K2);

9. Èòåðàòîð (increment) <181>

Îïèñàíèå: Èòåðàöèîííîå âû÷èñëåíèå ñ óêàçàíèåì ïðèðàùåíèÿ. Êîýôôèöèåíò ïðèðàùåíèÿ äëÿ ðàçíûõ íàïðàâëåíèé ðàçëè÷íûé.
Ôîðìóëà:

out = if( in1 > in2 ) in2 + in3*(in1-in2); 
else in2 - in4*(in2-in1);

10. Çàäåðæêà (lag) <121>

Îïèñàíèå: Çàäåðæêà èçìåíåíèÿ ïåðåìåííîé. Ïðàêòè÷åñêè ýòî ôèëüòð áåç ïðèâÿçêè êî âðåìåíè.
Ôîðìóëà:

y = y - Klag*( y - x );

11. Ïðîñòîå óìíîæåíèå(mult) <259>

Îïèñàíèå: Ïðîñòîå óìíîæåíèå ñ äåëåíèåì.
Ôîðìóëà:

out=(in1_1*in1_2*in1_3*in1_4*in1_5*in1_6)/
(in2_1*in2_2*in2_3*in2_4);

12. Óìíîæåíèå+äåëåíèå(multDiv) <468>

Îïèñàíèå: Ðàçâåòâëåííîå óìíîæåíèå+äåëåíèå.
Ôîðìóëà:

out=in1_1*in1_2*in1_3*in1_4*in1_5*
(in2_1*in2_2*in2_3*in2_4*in2_5+(in3_1*in3_2*in3_3*in3_4*in3_5)/
(in4_1*in4_2*in4_3*in4_4*in4_5));

13. ÏÈÄ ðåãóëÿòîð (pid) <745>

Îïèñàíèå: Ïðîïîðöèîíàëüíî-èíòåãðàëüíî-äèôôåðåíöèàëüíûé ðåãóëÿòîð.
Ïàðàìåòðû:

IDÏàðàìåòðÒèïÐåæèìÏî óìîë÷àíèþ
varÏåðåìåííàÿÂåùåñòâåí.Âõîä0
spÇàäàíèåÂåùåñòâåí.Âûõîä0
maxÌàêñ. øêàëûÂåùåñòâåí.Âõîä100
minÌèí. øêàëûÂåùåñòâåí.Âõîä0
manInÐó÷íîé ââîä (%)Âåùåñòâåí.Âõîä0
outÂûõîä (%)Âåùåñòâåí.Âîçâðàò0
autoÀâòîìàòËîãè÷åñêèéÂõîä0
cascÊàñêàäËîãè÷åñêèéÂõîä0
KpKpÂåùåñòâåí.Âõîä1
TiÒè (ìñ)ÖåëûéÂõîä1000
KdKdÂåùåñòâåí.Âõîä1
TdÒä (ìñ)ÖåëûéÂõîä0
TzdÒ çàäåðæêè ïðîèçâîäíîé (ìñ)ÖåëûéÂõîä0
HupÂåðõíÿÿ ãðàíèöà âûõîäà (%)Âåùåñòâåí.Âõîä100
HdwnÍèæíÿÿ ãðàíèöà âûõîäà (%)Âåùåñòâåí.Âõîä0
ZiÍå÷óâñòâèòåëüíîñòü (%)Âåùåñòâåí.Âõîä1
followSpÑëåäèòü çàäàíèåì çà ïåðåìåííîé â ðó÷íîì.Ëîãè÷åñêèéÂõîä1
K1Êîýô. âõîäà 1Âåùåñòâåí.Âõîä0
in1Âõîä 1Âåùåñòâåí.Âõîä0
K2Êîýô. âõîäà 2Âåùåñòâåí.Âõîä0
in2Âõîä 2Âåùåñòâåí.Âõîä0
K3Êîýô. âõîäà 3Âåùåñòâåí.Âõîä0
in3Âõîä 3Âåùåñòâåí.Âõîä0
K4Êîýô. âõîäà 4Âåùåñòâåí.Âõîä0
in4Âõîä 4Âåùåñòâåí.Âõîä0
f_frq×àñòîòà âû÷èñëåíèÿ (Ãö)ÂåùåñòâåííûéÂõîä1

Ñòðóêòóðà:
file:pid.png

14. Ñòåïåíü (pow) <564>

Îïèñàíèå: Âîçâåäåíèå â ñòåïåíü.
Ôîðìóëà:

out=(in1_1*in1_2*in1_3*in1_4*in1_5)^
(in2_1*in2_2*in2_3*in2_4*in2_5 + (in3_1*in3_2*in3_3*in3_4*in3_5)/
(in4_1*in4_2*in4_3*in4_4*in4_5));

15. Âûáîð (select) <156>

Îïèñàíèå: Âûáîð îäíîãî èç ÷åòûð¸õ âàðèàíòîâ.
Ôîðìóëà:

out = if( sel = 1 ) in1_1*in1_2*in1_3*in1_4;
if( sel = 2 ) in2_1*in2_2*in2_3*in2_4;
if( sel = 3 ) in3_1*in3_2*in3_3*in3_4;
if( sel = 4 ) in4_1*in4_2*in4_3*in4_4;

16. Ïðîñòîé ñóììàòîð (sum) <404>

Îïèñàíèå: Ïðîñòîå ñóììèðîâàíèå ñ óìíîæåíèåì.
Ôîðìóëà:

out=in1_1*in1_2+in2_1*in2_2+in3_1*in3_2+in4_1*in4_2
+ in5_1*in5_2+in6_1*in6_2+in7_1*in7_2+in8_1*in8_2;

17. Ñóììà ñ äåëåíèåì (sum_div) <518>

Îïèñàíèå: Ñóììèðîâàíèå ñ äåëåíèåì ãðóïïû çíà÷åíèé.
Ôîðìóëà:

out = in1_1*in1_2*(in1_3+in1_4/in1_5) + 
in2_1*in2_2*(in2_3+in2_4/in2_5) +
in3_1*in3_2*(in3_3+in3_4/in3_5) + 
in4_1*in4_2*(in4_3+in4_4/in4_5);

18. Ñóììà ñ óìíîæåíèåì (sum_mult) <483>

Îïèñàíèå: Ñóììèðîâàíèå ñ óìíîæåíèåì ãðóïïû çíà÷åíèé.
Ôîðìóëà:

out = in1_1*in1_2*(in1_3*in1_4+in1_5) + 
in2_1*in2_2*(in2_3*in2_4+in2_5) +
in3_1*in3_2*(in3_3*in3_4+in3_5) + 
in4_1*in4_2*(in4_3*in4_4+in4_5);

19. API ïîëüçîâàòåëüñêîãî ïðîãðàììèðîâàíèÿ

Íåêîòîðûå îáúåêòû ìîäóëÿ ïðåäîñòàâëÿþò ôóíêöèè ïîëüçîâàòåëüñêîãî ïðîãðàììèðîâàíèÿ.


Îáúåêò "Áèáëèîòåêà ôóíêöèé" (SYS.Special.FLibComplex1)


Îáúåêò "Ïîëüçîâàòåëüñêàÿ ôóíêöèÿ" (SYS.Special.FLibComplex1["funcID"])

Ññûëêè

Referring pages: HomePageUk/Doc
HomePageUk/Doc/DAQ
HomePageUk/Doc/FLibComplex1


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