Èìÿ ôóíêöèîíàëüíîãî áëîêà. Âõîäíûå ïàðàìåòðû
ANA (* result = ana (in2); *)
MUL 2 (* result := 2*ana (in2); *)
ST temporary (* temporary := result *)
LD in1
ANA
ADD temporary (* result := 2*ana (in2) + ana (in1); *)
MUL 2 (* result := 4*ana (in2) + 2*ana (in1); *)
ST temporary (* temporary := result *)
LD in0
ANA
ADD temporary (* result := 4*ana (in2) + 2*ana (in1)+ana (in0); *)
ST SUBPRO (* âîçâðàòèòü òåêóùèé ðåçóëüòàò â âûçûâàþùóþ ïðîãðàììó*)
Âûçîâ ôóíêöèîíàëüíûõ áëîêîâ: îïåðàòîð CAL
Îïåðàöèÿ: âûçûâàåò ôóíêöèîíàëüíûé áëîê
Äîïóñòèìûå ìîäèôèêàòîðû: C N
Îïåðàíä: Èìÿ ôóíêöèîíàëüíîãî áëîêà. Âõîäíûå ïàðàìåòðû áëîêà äîëæíû áûòü ïðèñâîåíû ñ ïîìîùüþ îïåðàòîðîâ LD/ST äî âûçîâà. Âûõîäíûå ïàðàìåòðû ìîãóò áûòü èñïîëüçîâàíû.
Ïðèìåð 1:
(* Âûçîâ ôóíêöèîíàëüíîãî áëîêà SR : SR1 - ýêçåìïëÿð SR *)
LD auto_mode
AND start_cmd
ST SR1.set1
LD stop_cmd
ST SR1.reset
CAL SR1
LD SR1.Q1
ST command
(* FBD ýêâèâàëåíò : *)
Ïðèìåð 2
(*Ìû ïðåäïîëàãàåì, ÷òî R_TRIG1 - ýòî ýêçåìïëÿð áëîêà R_TRIG è CTU1 - ýòî ýêçåìïëÿð áëîêà CTU*)
LD command
ST R_TRIG1.clk
CAL R_TRIG1
LD R_TRIG1.Q
ST CTU1.cu
LDN auto_mode
ST CTU1.reset
LD 100
ST CTU1.pv
CAL CTU1
LD CTU1.Q
ST overflow
LD CTU1.cv
ST result
(* FBD ýêâèâàëåíò : *)
Ñîäåðæàíèå Íàçàä Âïåðåä