В сгенерированном коде для подсистем маскированных параметры маски сопоставляют с входными параметрами функционального блока. Значения, которые вы задаете в маске подсистемы, присвоены этим входным параметрам функционального блока в сгенерированном коде.
Например, следующая подсистема, Subsystem
, содержит два экземпляра, Filt1
и Filt2
, той же подсистемы маскированной.
Этим двум подсистемам, Filt1
, и Filt2
, присвоили различные значения их параметрам маски. В этом примере Filt1_Order_Thau
является константой со значением 5.
Поэтому для подсистемы Filt1
, параметр Filt1_Order_Thau
имеет значение 8, и для подсистемы Filt2
, параметр Filt1_Order_Thau
имеет значение 5.
Следующий сгенерированный код показывает входные параметры функционального блока Filt1
. Вход rtp_Filt1_Order_Thau
был сгенерирован для параметра маски Filt1_Order_Thau
.
FUNCTION_BLOCK Filt1 VAR_INPUT ssMethodType: SINT; InitV: LREAL; InitF: BOOL; Input: LREAL; rtp_Filt1_Order_Thau: LREAL; rtp_InitialValue: LREAL; rtp_Filt1_Order_Enable: BOOL; END_VAR
Следующий сгенерированный код от Subsystem
FUNCTION_BLOCK
. Функциональный блок присваивает значение 8 к входу rtp_Filt1_Order_Thau
для экземпляра i0_Filt1
и присваивает значение 5 к входу rtp_Filt1_Order_Thau
для экземпляра i1_Filt1
.
SS_INITIALIZE: (* InitializeConditions for Atomic SubSystem: '<S1>/Filt1' *) i0_Filt1(ssMethodType := SS_INITIALIZE, InitV := In3, InitF := In2, Input := In1, rtp_Filt1_Order_Thau := 8.0, rtp_InitialValue := 0.0, rtp_Filt1_Order_Enable := TRUE); Out1 := i0_Filt1.Out; (* End of InitializeConditions for SubSystem: '<S1>/Filt1' *) (* InitializeConditions for Atomic SubSystem: '<S1>/Filt2' *) i1_Filt1(ssMethodType := SS_INITIALIZE, InitV := In6, InitF := In5, Input := In4, rtp_Filt1_Order_Thau := 5.0, rtp_InitialValue := 4.0, rtp_Filt1_Order_Enable := TRUE); Out2 := i1_Filt1.Out; (* End of InitializeConditions for SubSystem: '<S1>/Filt2' *) SS_STEP: (* Outputs for Atomic SubSystem: '<S1>/Filt1' *) i0_Filt1(ssMethodType := SS_OUTPUT, InitV := In3, InitF := In2, Input := In1, rtp_Filt1_Order_Thau := 8.0, rtp_InitialValue := 0.0, rtp_Filt1_Order_Enable := TRUE); Out1 := i0_Filt1.Out; (* End of Outputs for SubSystem: '<S1>/Filt1' *) (* Outputs for Atomic SubSystem: '<S1>/Filt2' *) i1_Filt1(ssMethodType := SS_OUTPUT, InitV := In6, InitF := In5, Input := In4, rtp_Filt1_Order_Thau := 5.0, rtp_InitialValue := 4.0, rtp_Filt1_Order_Enable := TRUE); Out2 := i1_Filt1.Out; (* End of Outputs for SubSystem: '<S1>/Filt2' *)