INTEGRA
L
Àðãóìåíòû:
RUN BOO ðåæèì: TRUE=èíòåãðèðîâàòü/FALSE=äåðæàòü
R1 BOO ñáðîñ
XIN REAL âõîä: ëþáàÿ äåéñòâèòåëüíàÿ àíàëîãîâàÿ âåëè÷èíà
X0 REAL íà÷àëüíîå çíà÷åíèå
CYCLE TMR ïåðèîä èíòåãðèðîâàíèÿ
Q BOO íå R1
XOUT REAL èíòåãðèðîâàííûé âûõîä
Îïèñàíèå:
Èíòåãðàë äåéñòâèòåëüíîé âåëè÷èíû
Åñëè âåëè÷èíà ïàðàìåòðà CYCLE ìåíüøå ÷åì âðåìÿ öèêëà ïðèëîæåíèÿ ISaGRAF, òî ïåðèîä èíòåãðèðîâàíèÿ áóäåò ðàâåí âðåìåíè öèêëà ïðèëîæåíèÿ ISaGRAF.
(*FBD ïðèìåð áëîêà “INTEGRAL” *)
(* ST Ýêâèâàëåíò: Ìû ïðåäïîëàãàåì, ÷òî INTEGRAL1 - ýòî ýêçåìïëÿð áëîêà INTEGRAL *)
INTEGRAL1(manual_mode, NOT(manual_mode), sensor_value, init_value, t#100ms);
controlled_value := INTEGRAL1.XOUT;
(* IL Ýêâèâàëåíò: *)
LD manual_mode
ST INTEGRAL1.run
STN INTEGRAL1.R1
LD sensor_value
ST INTEGRAL1.XIN
LD init_value
ST INTEGRAL1.X0
LD t#100ms
ST INTEGRAL1.CYCLE
CAL INTEGRAL1
LD INTEGRAL1.XOUT
ST controlled_value