exponenta event banner

Сгенерированная структура кода для параметров маски подсистемы

В сгенерированном коде для маскированных подсистем параметры маски отображаются на входы функциональных блоков. Значения, указанные в маске подсистемы, присваиваются этим входам функциональных блоков в сгенерированном коде.

Например, следующая подсистема, 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

Следующий сгенерированный код получен из FUNCTION_BLOCK Subsystem. Функциональный блок присваивает значение 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' *)