ГОСТ Р МЭК 61131-3—2016
D E R IV E D _ 2 _ A : D E R IV E D _ 2 ;
SND_VAR;
(ТИПФБ)
КОСВЕННЫЙ FB
VAR
КОСВЕННЫЙ 1
BASE A : BAS E ;
КОСВЕННЫЙFB
BASS А -
V A R _ IK _ 0 U T B :
B A S E ;
VAR IH OUT BASE X :
BASE 1
BAS E ;
* " ” 123- a
BASE
x U
l
\Ч’ ч
BASE 1
-> x :■ i+l //
xb
!24
3ASE
1 2 3 -
a
x
КОСВЕННЫЙ 2
КОСВЕННЫЙ FB
I \ динамическисвязаны
; \D E R IV E D 1 А Ч
V A R _IJJ_ 00 T B A S E _ 1 :
B A S S ;
\
BASE 1
\
1 2 3 - a
BASE
\
x :■ a+
1
;
\
x :- 3*x*b;
Г HEразрешено!
\
КОСВЕННЫЙ 3
КОСВЕННЫЙ FB
D £ R IV £ D _ 2 _ A -
V A R _IN _O U T B A S E _ 1 :
B A S E ;
BASE_1
2
BASE
Х Э- ax -
-»ошибка
Если порожденный блок добавил входные-выходные переменные, то динамическое связывание
вызова функционального блока должно приводить к INDIRECT_3 в вычислении неназначенной вход-
ной-выходной переменной с и вызывать ошибку периода выполнения. Следовательно, присваивание
экземпляра порожденных функциональных блоков является ошибкой.
Пример 2
CLASS LIGHTROOM
VARLIGHT: BOOL: END_VAR
METHOD PUBLIC SET_DAYTIME
VARJNPUT: DAYTIME: BOOL: END_VAR
LIGHT.-NOT(DAYTIME);
END_METHOD
END_CLASS
142