|
@@ -1,2145 +1,994 @@
|
|
|
-/*
|
|
|
- * File: SFM.c
|
|
|
- *
|
|
|
- * Code generated for Simulink model 'SFM'.
|
|
|
- *
|
|
|
- * Model version : 1.90
|
|
|
- * Simulink Coder version : 9.4 (R2020b) 29-Jul-2020
|
|
|
- * C/C++ source code generated on : Fri Sep 10 18:11:28 2021
|
|
|
- *
|
|
|
- * Target selection: ert.tlc
|
|
|
- * Embedded hardware selection: Intel->x86-64 (Windows64)
|
|
|
- * Code generation objectives: Unspecified
|
|
|
- * Validation result: Not run
|
|
|
- */
|
|
|
-
|
|
|
#include "SFM.h"
|
|
|
-#include "SFM_private.h"
|
|
|
-#include "div_uus32_sat.h"
|
|
|
-#include "mul_s32_hiSR.h"
|
|
|
-
|
|
|
-MdlrefDW_SFM_T SFM_MdlrefDW;
|
|
|
-
|
|
|
-/* Block signals (default storage) */
|
|
|
-B_SFM_c_T SFM_B;
|
|
|
-
|
|
|
-/* Block states (default storage) */
|
|
|
-DW_SFM_f_T SFM_DW;
|
|
|
-
|
|
|
-/*
|
|
|
- * System initialize for atomic system:
|
|
|
- * '<S27>/Subsytem'
|
|
|
- * '<S27>/Subsytem2'
|
|
|
- * '<S27>/Subsytem4'
|
|
|
- * '<S27>/Subsytem5'
|
|
|
- */
|
|
|
-void SFM_Subsytem_Init(DW_Subsytem_SFM_T *localDW)
|
|
|
-{
|
|
|
- /* InitializeConditions for UnitDelay: '<S31>/delay' */
|
|
|
- localDW->delay_DSTATE = 1U;
|
|
|
-}
|
|
|
-
|
|
|
-/*
|
|
|
- * Output and update for atomic system:
|
|
|
- * '<S27>/Subsytem'
|
|
|
- * '<S27>/Subsytem2'
|
|
|
- * '<S27>/Subsytem4'
|
|
|
- * '<S27>/Subsytem5'
|
|
|
- */
|
|
|
-boolean_T SFM_Subsytem(uint8_T rtu_Enable, boolean_T rtu_Precondition, int16_T
|
|
|
- rtu_inputs, int16_T rtu_threshold, uint8_T rtu_CtrN, DW_Subsytem_SFM_T
|
|
|
- *localDW)
|
|
|
-{
|
|
|
- uint8_T rtb_Saturation_h;
|
|
|
-
|
|
|
- /* Saturate: '<S31>/Saturation' incorporates:
|
|
|
- * Constant: '<S31>/Constant1'
|
|
|
- * Sum: '<S31>/Add'
|
|
|
- * UnitDelay: '<S31>/delay'
|
|
|
- */
|
|
|
- if ((uint8_T)(localDW->delay_DSTATE + 1U) < 200) {
|
|
|
- rtb_Saturation_h = (uint8_T)(localDW->delay_DSTATE + 1U);
|
|
|
- } else {
|
|
|
- rtb_Saturation_h = 200U;
|
|
|
- }
|
|
|
-
|
|
|
- /* End of Saturate: '<S31>/Saturation' */
|
|
|
-
|
|
|
- /* Product: '<S31>/Product' incorporates:
|
|
|
- * Logic: '<S31>/Logical Operator1'
|
|
|
- * RelationalOperator: '<S31>/Relational Operator'
|
|
|
- * UnitDelay: '<S31>/delay'
|
|
|
- */
|
|
|
- localDW->delay_DSTATE = (uint8_T)((rtu_Enable != 0) && rtu_Precondition &&
|
|
|
- (rtu_inputs >= rtu_threshold) ? (int32_T)rtb_Saturation_h : 0);
|
|
|
-
|
|
|
- /* RelationalOperator: '<S31>/Relational Operator1' */
|
|
|
- return rtb_Saturation_h > rtu_CtrN;
|
|
|
-}
|
|
|
-
|
|
|
-/*
|
|
|
- * System initialize for atomic system:
|
|
|
- * '<S27>/Subsytem1'
|
|
|
- * '<S27>/Subsytem3'
|
|
|
- */
|
|
|
-void SFM_Subsytem1_Init(DW_Subsytem1_SFM_T *localDW)
|
|
|
-{
|
|
|
- /* InitializeConditions for UnitDelay: '<S32>/delay' */
|
|
|
- localDW->delay_DSTATE = 1U;
|
|
|
-}
|
|
|
|
|
|
-/*
|
|
|
- * Output and update for atomic system:
|
|
|
- * '<S27>/Subsytem1'
|
|
|
- * '<S27>/Subsytem3'
|
|
|
- */
|
|
|
-boolean_T SFM_Subsytem1(uint8_T rtu_Enable, boolean_T rtu_Precondition, int16_T
|
|
|
- rtu_InputS, int16_T rtu_threshold, uint8_T rtu_CtrN, DW_Subsytem1_SFM_T
|
|
|
- *localDW)
|
|
|
-{
|
|
|
- uint8_T rtb_Saturation_f;
|
|
|
-
|
|
|
- /* Saturate: '<S32>/Saturation' incorporates:
|
|
|
- * Constant: '<S32>/Constant2'
|
|
|
- * Sum: '<S32>/Add'
|
|
|
- * UnitDelay: '<S32>/delay'
|
|
|
- */
|
|
|
- if ((uint8_T)(localDW->delay_DSTATE + 1U) < 200) {
|
|
|
- rtb_Saturation_f = (uint8_T)(localDW->delay_DSTATE + 1U);
|
|
|
- } else {
|
|
|
- rtb_Saturation_f = 200U;
|
|
|
- }
|
|
|
|
|
|
- /* End of Saturate: '<S32>/Saturation' */
|
|
|
+boolean_T FirstRun_SFM;
|
|
|
+DiagThrstruct DiagThr;
|
|
|
+DiagMisstruct DiagMis;
|
|
|
|
|
|
- /* Product: '<S32>/Product' incorporates:
|
|
|
- * Logic: '<S32>/Logical Operator'
|
|
|
- * RelationalOperator: '<S32>/Relational Operator'
|
|
|
- * UnitDelay: '<S32>/delay'
|
|
|
- */
|
|
|
- localDW->delay_DSTATE = (uint8_T)((rtu_Enable != 0) && rtu_Precondition &&
|
|
|
- (rtu_InputS <= rtu_threshold) ? (int32_T)rtb_Saturation_f : 0);
|
|
|
|
|
|
- /* RelationalOperator: '<S32>/Relational Operator1' */
|
|
|
- return rtb_Saturation_f > rtu_CtrN;
|
|
|
-}
|
|
|
-
|
|
|
-/*
|
|
|
- * Output and update for atomic system:
|
|
|
- * '<S28>/Subsystem5'
|
|
|
- * '<S28>/Subsystem6'
|
|
|
- * '<S28>/Subsystem7'
|
|
|
- * '<S28>/Subsystem8'
|
|
|
- */
|
|
|
-boolean_T SFM_Subsystem5(boolean_T rtu_In1, boolean_T rtu_In2)
|
|
|
-{
|
|
|
- /* Logic: '<S37>/Logical Operator' incorporates:
|
|
|
- * RelationalOperator: '<S37>/Relational Operator'
|
|
|
- * RelationalOperator: '<S37>/Relational Operator1'
|
|
|
- */
|
|
|
- return (!rtu_In1) && (!rtu_In2);
|
|
|
-}
|
|
|
-
|
|
|
-/*
|
|
|
- * System initialize for atomic system:
|
|
|
- * '<S28>/Subsytem'
|
|
|
- * '<S28>/Subsytem2'
|
|
|
- * '<S28>/Subsytem4'
|
|
|
- * '<S28>/Subsytem5'
|
|
|
- */
|
|
|
-void SFM_Subsytem_b_Init(DW_Subsytem_SFM_d_T *localDW)
|
|
|
-{
|
|
|
- /* InitializeConditions for UnitDelay: '<S41>/delay' */
|
|
|
- localDW->delay_DSTATE = 1U;
|
|
|
-}
|
|
|
|
|
|
-/*
|
|
|
- * Output and update for atomic system:
|
|
|
- * '<S28>/Subsytem'
|
|
|
- * '<S28>/Subsytem2'
|
|
|
- * '<S28>/Subsytem4'
|
|
|
- * '<S28>/Subsytem5'
|
|
|
- */
|
|
|
-boolean_T SFM_Subsytem_j(uint8_T rtu_Enable, boolean_T rtu_Precondition,
|
|
|
- uint16_T rtu_inputs, uint16_T rtu_threshold, uint8_T rtu_CtrN,
|
|
|
- DW_Subsytem_SFM_d_T *localDW)
|
|
|
-{
|
|
|
- uint8_T rtb_Saturation_h;
|
|
|
-
|
|
|
- /* Saturate: '<S41>/Saturation' incorporates:
|
|
|
- * Constant: '<S41>/Constant1'
|
|
|
- * Sum: '<S41>/Add'
|
|
|
- * UnitDelay: '<S41>/delay'
|
|
|
- */
|
|
|
- if ((uint8_T)(localDW->delay_DSTATE + 1U) < 200) {
|
|
|
- rtb_Saturation_h = (uint8_T)(localDW->delay_DSTATE + 1U);
|
|
|
- } else {
|
|
|
- rtb_Saturation_h = 200U;
|
|
|
- }
|
|
|
-
|
|
|
- /* End of Saturate: '<S41>/Saturation' */
|
|
|
-
|
|
|
- /* Product: '<S41>/Product' incorporates:
|
|
|
- * Logic: '<S41>/Logical Operator1'
|
|
|
- * RelationalOperator: '<S41>/Relational Operator'
|
|
|
- * UnitDelay: '<S41>/delay'
|
|
|
- */
|
|
|
- localDW->delay_DSTATE = (uint8_T)((rtu_Enable != 0) && rtu_Precondition &&
|
|
|
- (rtu_inputs >= rtu_threshold) ? (int32_T)rtb_Saturation_h : 0);
|
|
|
-
|
|
|
- /* RelationalOperator: '<S41>/Relational Operator1' */
|
|
|
- return rtb_Saturation_h > rtu_CtrN;
|
|
|
-}
|
|
|
-
|
|
|
-/*
|
|
|
- * System initialize for atomic system:
|
|
|
- * '<S28>/Subsytem1'
|
|
|
- * '<S28>/Subsytem3'
|
|
|
- */
|
|
|
-void SFM_Subsytem1_f_Init(DW_Subsytem1_SFM_k_T *localDW)
|
|
|
-{
|
|
|
- /* InitializeConditions for UnitDelay: '<S42>/delay' */
|
|
|
- localDW->delay_DSTATE = 1U;
|
|
|
-}
|
|
|
-
|
|
|
-/*
|
|
|
- * Output and update for atomic system:
|
|
|
- * '<S28>/Subsytem1'
|
|
|
- * '<S28>/Subsytem3'
|
|
|
- */
|
|
|
-boolean_T SFM_Subsytem1_n(uint8_T rtu_Enable, boolean_T rtu_Precondition,
|
|
|
- uint16_T rtu_InputS, uint16_T rtu_threshold, uint8_T rtu_CtrN,
|
|
|
- DW_Subsytem1_SFM_k_T *localDW)
|
|
|
-{
|
|
|
- uint8_T rtb_Saturation_i;
|
|
|
-
|
|
|
- /* Saturate: '<S42>/Saturation' incorporates:
|
|
|
- * Constant: '<S42>/Constant2'
|
|
|
- * Sum: '<S42>/Add'
|
|
|
- * UnitDelay: '<S42>/delay'
|
|
|
- */
|
|
|
- if ((uint8_T)(localDW->delay_DSTATE + 1U) < 200) {
|
|
|
- rtb_Saturation_i = (uint8_T)(localDW->delay_DSTATE + 1U);
|
|
|
- } else {
|
|
|
- rtb_Saturation_i = 200U;
|
|
|
- }
|
|
|
-
|
|
|
- /* End of Saturate: '<S42>/Saturation' */
|
|
|
-
|
|
|
- /* Product: '<S42>/Product' incorporates:
|
|
|
- * Logic: '<S42>/Logical Operator'
|
|
|
- * RelationalOperator: '<S42>/Relational Operator'
|
|
|
- * UnitDelay: '<S42>/delay'
|
|
|
- */
|
|
|
- localDW->delay_DSTATE = (uint8_T)((rtu_Enable != 0) && rtu_Precondition &&
|
|
|
- (rtu_InputS <= rtu_threshold) ? (int32_T)rtb_Saturation_i : 0);
|
|
|
-
|
|
|
- /* RelationalOperator: '<S42>/Relational Operator1' */
|
|
|
- return rtb_Saturation_i > rtu_CtrN;
|
|
|
-}
|
|
|
-
|
|
|
-/*
|
|
|
- * System initialize for atomic system:
|
|
|
- * '<S28>/Subsytem6'
|
|
|
- * '<S28>/Subsytem8'
|
|
|
- */
|
|
|
-void SFM_Subsytem6_Init(DW_Subsytem6_SFM_T *localDW)
|
|
|
-{
|
|
|
- /* InitializeConditions for UnitDelay: '<S47>/delay' */
|
|
|
- localDW->delay_DSTATE = 1U;
|
|
|
-}
|
|
|
-
|
|
|
-/*
|
|
|
- * Output and update for atomic system:
|
|
|
- * '<S28>/Subsytem6'
|
|
|
- * '<S28>/Subsytem8'
|
|
|
- */
|
|
|
-boolean_T SFM_Subsytem6(uint8_T rtu_Enable, boolean_T rtu_Precondition, uint32_T
|
|
|
- rtu_inputs, uint16_T rtu_threshold, uint8_T rtu_CtrN, DW_Subsytem6_SFM_T
|
|
|
- *localDW)
|
|
|
-{
|
|
|
- uint8_T rtb_Saturation_h;
|
|
|
-
|
|
|
- /* Saturate: '<S47>/Saturation' incorporates:
|
|
|
- * Constant: '<S47>/Constant1'
|
|
|
- * Sum: '<S47>/Add'
|
|
|
- * UnitDelay: '<S47>/delay'
|
|
|
- */
|
|
|
- if ((uint8_T)(localDW->delay_DSTATE + 1U) < 200) {
|
|
|
- rtb_Saturation_h = (uint8_T)(localDW->delay_DSTATE + 1U);
|
|
|
- } else {
|
|
|
- rtb_Saturation_h = 200U;
|
|
|
- }
|
|
|
-
|
|
|
- /* End of Saturate: '<S47>/Saturation' */
|
|
|
-
|
|
|
- /* Product: '<S47>/Product' incorporates:
|
|
|
- * Logic: '<S47>/Logical Operator1'
|
|
|
- * RelationalOperator: '<S47>/Relational Operator'
|
|
|
- * UnitDelay: '<S47>/delay'
|
|
|
- */
|
|
|
- localDW->delay_DSTATE = (uint8_T)((rtu_Enable != 0) && rtu_Precondition &&
|
|
|
- (rtu_inputs >= rtu_threshold * 100U) ? (int32_T)rtb_Saturation_h : 0);
|
|
|
-
|
|
|
- /* RelationalOperator: '<S47>/Relational Operator1' */
|
|
|
- return rtb_Saturation_h > rtu_CtrN;
|
|
|
-}
|
|
|
-
|
|
|
-/*
|
|
|
- * System initialize for atomic system:
|
|
|
- * '<S28>/Subsytem7'
|
|
|
- * '<S28>/Subsytem9'
|
|
|
- */
|
|
|
-void SFM_Subsytem7_Init(DW_Subsytem7_SFM_T *localDW)
|
|
|
-{
|
|
|
- /* InitializeConditions for UnitDelay: '<S48>/delay' */
|
|
|
- localDW->delay_DSTATE = 1U;
|
|
|
-}
|
|
|
-
|
|
|
-/*
|
|
|
- * Output and update for atomic system:
|
|
|
- * '<S28>/Subsytem7'
|
|
|
- * '<S28>/Subsytem9'
|
|
|
- */
|
|
|
-boolean_T SFM_Subsytem7(uint8_T rtu_Enable, boolean_T rtu_Precondition, uint32_T
|
|
|
- rtu_InputS, uint16_T rtu_threshold, uint8_T rtu_CtrN, DW_Subsytem7_SFM_T
|
|
|
- *localDW)
|
|
|
-{
|
|
|
- uint8_T rtb_Saturation_m;
|
|
|
-
|
|
|
- /* Saturate: '<S48>/Saturation' incorporates:
|
|
|
- * Constant: '<S48>/Constant2'
|
|
|
- * Sum: '<S48>/Add'
|
|
|
- * UnitDelay: '<S48>/delay'
|
|
|
- */
|
|
|
- if ((uint8_T)(localDW->delay_DSTATE + 1U) < 200) {
|
|
|
- rtb_Saturation_m = (uint8_T)(localDW->delay_DSTATE + 1U);
|
|
|
- } else {
|
|
|
- rtb_Saturation_m = 200U;
|
|
|
- }
|
|
|
-
|
|
|
- /* End of Saturate: '<S48>/Saturation' */
|
|
|
-
|
|
|
- /* Product: '<S48>/Product' incorporates:
|
|
|
- * Logic: '<S48>/Logical Operator'
|
|
|
- * RelationalOperator: '<S48>/Relational Operator'
|
|
|
- * UnitDelay: '<S48>/delay'
|
|
|
- */
|
|
|
- localDW->delay_DSTATE = (uint8_T)((rtu_Enable != 0) && rtu_Precondition &&
|
|
|
- (rtu_InputS <= rtu_threshold * 100U) ? (int32_T)rtb_Saturation_m : 0);
|
|
|
-
|
|
|
- /* RelationalOperator: '<S48>/Relational Operator1' */
|
|
|
- return rtb_Saturation_m > rtu_CtrN;
|
|
|
-}
|
|
|
-
|
|
|
-/* System initialize for referenced model: 'SFM' */
|
|
|
void SFM_Init(void)
|
|
|
{
|
|
|
- /* InitializeConditions for UnitDelay: '<S23>/Time_Delay' */
|
|
|
- SFM_DW.Time_Delay_DSTATE = 1U;
|
|
|
-
|
|
|
- /* SystemInitialize for Chart: '<S13>/Chart' */
|
|
|
- SFM_DW.FirstFlg = true;
|
|
|
-
|
|
|
- /* SystemInitialize for Atomic SubSystem: '<S28>/Subsytem' */
|
|
|
- SFM_Subsytem_b_Init(&SFM_DW.Subsytem_j0);
|
|
|
-
|
|
|
- /* End of SystemInitialize for SubSystem: '<S28>/Subsytem' */
|
|
|
-
|
|
|
- /* SystemInitialize for Atomic SubSystem: '<S28>/Subsytem2' */
|
|
|
- SFM_Subsytem_b_Init(&SFM_DW.Subsytem2_p);
|
|
|
-
|
|
|
- /* End of SystemInitialize for SubSystem: '<S28>/Subsytem2' */
|
|
|
-
|
|
|
- /* SystemInitialize for Atomic SubSystem: '<S28>/Subsytem1' */
|
|
|
- SFM_Subsytem1_f_Init(&SFM_DW.Subsytem1_n);
|
|
|
-
|
|
|
- /* End of SystemInitialize for SubSystem: '<S28>/Subsytem1' */
|
|
|
-
|
|
|
- /* SystemInitialize for Atomic SubSystem: '<S28>/Subsytem3' */
|
|
|
- SFM_Subsytem1_f_Init(&SFM_DW.Subsytem3_b);
|
|
|
-
|
|
|
- /* End of SystemInitialize for SubSystem: '<S28>/Subsytem3' */
|
|
|
-
|
|
|
- /* SystemInitialize for Atomic SubSystem: '<S28>/Subsytem4' */
|
|
|
- SFM_Subsytem_b_Init(&SFM_DW.Subsytem4_p);
|
|
|
-
|
|
|
- /* End of SystemInitialize for SubSystem: '<S28>/Subsytem4' */
|
|
|
-
|
|
|
- /* SystemInitialize for Atomic SubSystem: '<S28>/Subsytem5' */
|
|
|
- SFM_Subsytem_b_Init(&SFM_DW.Subsytem5_l);
|
|
|
-
|
|
|
- /* End of SystemInitialize for SubSystem: '<S28>/Subsytem5' */
|
|
|
-
|
|
|
- /* SystemInitialize for Atomic SubSystem: '<S28>/Subsytem6' */
|
|
|
- SFM_Subsytem6_Init(&SFM_DW.Subsytem6);
|
|
|
-
|
|
|
- /* End of SystemInitialize for SubSystem: '<S28>/Subsytem6' */
|
|
|
-
|
|
|
- /* SystemInitialize for Atomic SubSystem: '<S28>/Subsytem8' */
|
|
|
- SFM_Subsytem6_Init(&SFM_DW.Subsytem8);
|
|
|
-
|
|
|
- /* End of SystemInitialize for SubSystem: '<S28>/Subsytem8' */
|
|
|
-
|
|
|
- /* SystemInitialize for Atomic SubSystem: '<S28>/Subsytem7' */
|
|
|
- SFM_Subsytem7_Init(&SFM_DW.Subsytem7);
|
|
|
-
|
|
|
- /* End of SystemInitialize for SubSystem: '<S28>/Subsytem7' */
|
|
|
-
|
|
|
- /* SystemInitialize for Atomic SubSystem: '<S28>/Subsytem9' */
|
|
|
- SFM_Subsytem7_Init(&SFM_DW.Subsytem9);
|
|
|
-
|
|
|
- /* End of SystemInitialize for SubSystem: '<S28>/Subsytem9' */
|
|
|
-
|
|
|
- /* SystemInitialize for Atomic SubSystem: '<S27>/Subsytem' */
|
|
|
- SFM_Subsytem_Init(&SFM_DW.Subsytem_j);
|
|
|
-
|
|
|
- /* End of SystemInitialize for SubSystem: '<S27>/Subsytem' */
|
|
|
-
|
|
|
- /* SystemInitialize for Atomic SubSystem: '<S27>/Subsytem2' */
|
|
|
- SFM_Subsytem_Init(&SFM_DW.Subsytem2);
|
|
|
-
|
|
|
- /* End of SystemInitialize for SubSystem: '<S27>/Subsytem2' */
|
|
|
-
|
|
|
- /* SystemInitialize for Atomic SubSystem: '<S27>/Subsytem1' */
|
|
|
- SFM_Subsytem1_Init(&SFM_DW.Subsytem1_e);
|
|
|
-
|
|
|
- /* End of SystemInitialize for SubSystem: '<S27>/Subsytem1' */
|
|
|
-
|
|
|
- /* SystemInitialize for Atomic SubSystem: '<S27>/Subsytem3' */
|
|
|
- SFM_Subsytem1_Init(&SFM_DW.Subsytem3);
|
|
|
-
|
|
|
- /* End of SystemInitialize for SubSystem: '<S27>/Subsytem3' */
|
|
|
-
|
|
|
- /* SystemInitialize for Atomic SubSystem: '<S27>/Subsytem4' */
|
|
|
- SFM_Subsytem_Init(&SFM_DW.Subsytem4);
|
|
|
-
|
|
|
- /* End of SystemInitialize for SubSystem: '<S27>/Subsytem4' */
|
|
|
-
|
|
|
- /* SystemInitialize for Atomic SubSystem: '<S27>/Subsytem5' */
|
|
|
- SFM_Subsytem_Init(&SFM_DW.Subsytem5);
|
|
|
-
|
|
|
- /* End of SystemInitialize for SubSystem: '<S27>/Subsytem5' */
|
|
|
-
|
|
|
- /* SystemInitialize for Atomic SubSystem: '<S24>/Subsytem' */
|
|
|
- /* InitializeConditions for UnitDelay: '<S29>/delay' */
|
|
|
- SFM_DW.delay_DSTATE_j = 1U;
|
|
|
-
|
|
|
- /* End of SystemInitialize for SubSystem: '<S24>/Subsytem' */
|
|
|
-
|
|
|
- /* SystemInitialize for Atomic SubSystem: '<S24>/Subsytem1' */
|
|
|
- /* InitializeConditions for UnitDelay: '<S30>/delay' */
|
|
|
- SFM_DW.delay_DSTATE = 1U;
|
|
|
- uint8_T i;
|
|
|
- for(i=0;i<17;i++)
|
|
|
- {
|
|
|
-
|
|
|
- SFM_DW.ChgNr[i]=0;
|
|
|
- SFM_DW.RecNr[i]=0;
|
|
|
- SFM_DW.UdelNr[i]=0;
|
|
|
- }
|
|
|
- SFM_DW.Cntl=0;
|
|
|
-
|
|
|
- /* End of SystemInitialize for SubSystem: '<S24>/Subsytem1' */
|
|
|
+ FirstRun_SFM =true;
|
|
|
}
|
|
|
|
|
|
-/* Output and update for referenced model: 'SFM' */
|
|
|
void SFM(void)
|
|
|
{
|
|
|
- /* local block i/o variables */
|
|
|
- uint32_T rtb_SumU;
|
|
|
- real_T tmp_2;
|
|
|
- int32_T i_0;
|
|
|
- int32_T tmp_0;
|
|
|
- int32_T tmp_1;
|
|
|
- uint32_T qY;
|
|
|
- uint32_T qY_0;
|
|
|
- uint16_T FltCodeArrS[20];
|
|
|
- uint16_T avrgU;
|
|
|
- uint16_T k;
|
|
|
- uint16_T rtb_Saturation;
|
|
|
- uint16_T temp;
|
|
|
- uint16_T tmp_3;
|
|
|
- uint8_T rtb_TmpSignalConversionAtSFun_l[155];
|
|
|
- uint8_T rtb_TmpSignalConversionAtSFunct[155];
|
|
|
- uint8_T rtb_FltActArr[20];
|
|
|
- uint8_T rtb_FltLevelArr[20];
|
|
|
- uint8_T i;
|
|
|
- uint8_T j;
|
|
|
- boolean_T rtb_TmpSignalConversionAtSFun_a[155];
|
|
|
- boolean_T rtb_RelationalOperator1;
|
|
|
- boolean_T rtb_RelationalOperator1_a;
|
|
|
- boolean_T rtb_RelationalOperator1_bb;
|
|
|
- boolean_T rtb_RelationalOperator1_d;
|
|
|
- boolean_T rtb_RelationalOperator1_di;
|
|
|
- boolean_T rtb_RelationalOperator1_eg;
|
|
|
- boolean_T rtb_RelationalOperator1_ep;
|
|
|
- boolean_T rtb_RelationalOperator1_fg;
|
|
|
- boolean_T rtb_RelationalOperator1_gr;
|
|
|
- boolean_T rtb_RelationalOperator1_i;
|
|
|
- boolean_T rtb_RelationalOperator1_it;
|
|
|
- boolean_T rtb_RelationalOperator1_j;
|
|
|
- boolean_T rtb_RelationalOperator1_l;
|
|
|
- boolean_T rtb_RelationalOperator1_lf;
|
|
|
- boolean_T rtb_RelationalOperator1_o;
|
|
|
- boolean_T rtb_RelationalOperator1_p;
|
|
|
- boolean_T rtb_RelationalOperator_et;
|
|
|
- boolean_T tmp;
|
|
|
-
|
|
|
- /* Saturate: '<S23>/Saturation' incorporates:
|
|
|
- * Constant: '<S23>/Constant'
|
|
|
- * Sum: '<S23>/Add'
|
|
|
- * UnitDelay: '<S23>/Time_Delay'
|
|
|
- */
|
|
|
- if ((uint16_T)(SFM_DW.Time_Delay_DSTATE + 1U) < 60000) {
|
|
|
- rtb_Saturation = (uint16_T)(SFM_DW.Time_Delay_DSTATE + 1U);
|
|
|
- } else {
|
|
|
- rtb_Saturation = 60000U;
|
|
|
- }
|
|
|
-
|
|
|
- /* End of Saturate: '<S23>/Saturation' */
|
|
|
-
|
|
|
- /* RelationalOperator: '<S23>/Relational Operator1' incorporates:
|
|
|
- * Constant: '<S23>/para'
|
|
|
- */
|
|
|
- rtb_RelationalOperator1 = (rtb_Saturation > 2);
|
|
|
-
|
|
|
- /* Chart: '<S13>/Chart' incorporates:
|
|
|
- * Constant: '<S13>/Constant'
|
|
|
- * Constant: '<S13>/Constant1'
|
|
|
- * Inport: '<Root>/ihv_V_cellU'
|
|
|
- */
|
|
|
- if (!rtb_RelationalOperator1) {
|
|
|
- j = 0U;
|
|
|
- while ((j < 3) && SFM_DW.FirstFlg) {
|
|
|
- for (i = 0U; i < cmnc_num_cellUNum; i++) {
|
|
|
- SFM_DW.CellUArry[j + 3 * i] = ihv_V_cellU[i];
|
|
|
- }
|
|
|
-
|
|
|
- j++;
|
|
|
+ boolean_T sfmd_flg_interComFlt;
|
|
|
+ boolean_T sfmd_flg_authFlt;
|
|
|
+ boolean_T sfmd_flg_HVILFlt;
|
|
|
+ boolean_T sfmd_flg_chrgMosClosFlt;
|
|
|
+ boolean_T sfmd_flg_disChrgMosClosFlt;
|
|
|
+ static uint8_T Cntl;
|
|
|
+ static uint16_T CellUArry[3][28];
|
|
|
+ static uint8_T ErrNr[28];
|
|
|
+ static uint8_T RecNr[28];
|
|
|
+ static boolean_T sfmv_flg_cellUOpenFlt[28];
|
|
|
+ static boolean_T ErrUFlg[28];
|
|
|
+ uint32_T SumU ;
|
|
|
+ uint16_T UNum ;
|
|
|
+ boolean_T sfmd_flg_volFlt;
|
|
|
+ boolean_T sfmd_flg_modTOpenFlt;
|
|
|
+ boolean_T sfmv_flg_modTOpenFlt[6];
|
|
|
+ boolean_T sfmd_flg_chrgMosTOpenFlt;
|
|
|
+ boolean_T sfmd_flg_DCPlugTOpenFlt;
|
|
|
+ boolean_T sfmd_flg_ACPlugTOpenFlt;
|
|
|
+ boolean_T sfmd_flg_heatPanT1OpenFlt;
|
|
|
+ boolean_T sfmd_flg_heatPanT2OpenFlt;
|
|
|
+ boolean_T sfmd_flg_heatPanTOpenFlt;
|
|
|
+ boolean_T sfmd_flg_modTRationFlt;
|
|
|
+ boolean_T sfmv_flg_modTRationFlt[6];
|
|
|
+ static uint16_T modTArr[6];
|
|
|
+ uint16_T Tnum;
|
|
|
+ uint32_T SumT;
|
|
|
+ boolean_T sfmd_flg_chrgMosTRationFlt;
|
|
|
+ boolean_T sfmd_flg_DCPlugTRationFlt;
|
|
|
+ boolean_T sfmd_flg_ACPlugTRationFlt;
|
|
|
+ boolean_T sfmd_flg_heatPanT1RationFlt;
|
|
|
+ boolean_T sfmd_flg_heatPanT2RationFlt;
|
|
|
+ static uint16_T ihd_T_mosT_Delay;
|
|
|
+ static uint16_T ihd_T_DCPlugT_Delay;
|
|
|
+ static uint16_T ihd_T_ACPlugT_Delay;
|
|
|
+ static uint16_T ihd_T_heatPanT1_Delay;
|
|
|
+ static uint16_T ihd_T_heatPanT2_Delay;
|
|
|
+ boolean_T sfmd_flg_currOpenFlt;
|
|
|
+ uint16_T sfmd_I_currAbs;
|
|
|
+
|
|
|
+ static boolean_T sfmd_flg_cellUOverFlt2;
|
|
|
+ static boolean_T sfmd_flg_cellUOverFlt1;
|
|
|
+ static boolean_T sfmd_flg_cellULowFlt2;
|
|
|
+ static boolean_T sfmd_flg_cellULowFlt1;
|
|
|
+ static boolean_T sfmd_flg_cellUDiffFlt2;
|
|
|
+ static boolean_T sfmd_flg_cellUDiffFlt1;
|
|
|
+ static boolean_T sfmd_flg_battUOverFlt2;
|
|
|
+ static boolean_T sfmd_flg_battUOverFlt1;
|
|
|
+ static boolean_T sfmd_flg_battULowFlt2;
|
|
|
+ static boolean_T sfmd_flg_battULowFlt1;
|
|
|
+ boolean_T chrgFlg;
|
|
|
+ boolean_T disChrgFlg;
|
|
|
+ static boolean_T sfmd_flg_chrgModTOverFlt2;
|
|
|
+ static boolean_T sfmd_flg_chrgModTOverFlt1;
|
|
|
+ static boolean_T sfmd_flg_chrgModTLowFlt2;
|
|
|
+ static boolean_T sfmd_flg_chrgModTLowFlt1;
|
|
|
+ static boolean_T sfmd_flg_disChrgModTOverFlt2;
|
|
|
+ static boolean_T sfmd_flg_disChrgModTOverFlt1;
|
|
|
+ static boolean_T sfmd_flg_disChrgModTLowFlt2;
|
|
|
+ static boolean_T sfmd_flg_disChrgModTLowFlt1;
|
|
|
+ static boolean_T sfmd_flg_modTDiffFlt2;
|
|
|
+ static boolean_T sfmd_flg_modTDiffFlt1;
|
|
|
+ static boolean_T sfmd_flg_chrgMosTOverFlt2;
|
|
|
+ static boolean_T sfmd_flg_chrgMosTOverFlt1;
|
|
|
+ static boolean_T sfmd_flg_disChrgMosTOverFlt2;
|
|
|
+ static boolean_T sfmd_flg_disChrgMosTOverFlt1;
|
|
|
+ static boolean_T sfmd_flg_DCPlugTOverFlt2;
|
|
|
+ static boolean_T sfmd_flg_DCPlugTOverFlt1;
|
|
|
+ static boolean_T sfmd_flg_ACPlugTOverFlt2;
|
|
|
+ static boolean_T sfmd_flg_ACPlugTOverFlt1;
|
|
|
+ static boolean_T sfmd_flg_heatPanTOverFlt2_1;
|
|
|
+ static boolean_T sfmd_flg_heatPanTOverFlt2_2;
|
|
|
+ boolean_T sfmd_flg_heatPanTOverFlt2;
|
|
|
+ static boolean_T sfmd_flg_heatPanTOverFlt1_1;
|
|
|
+ static boolean_T sfmd_flg_heatPanTOverFlt1_2;
|
|
|
+ static boolean_T sfmd_flg_heatPanTOverFlt1;
|
|
|
+ static boolean_T sfmd_flg_chrgCurrOverFlt;
|
|
|
+ static boolean_T sfmd_flg_disChrgCurrOverFlt;
|
|
|
+ boolean_T sfmd_flg_chrgCurrOverMisFlt;
|
|
|
+ boolean_T sfmd_flg_disChrgCurrOverMisFlt;
|
|
|
+ boolean_T sfmd_flg_battULowMisFlt;
|
|
|
+ boolean_T sfmd_flg_battUOverMisFlt;
|
|
|
+ boolean_T sfmd_flg_cellULowMisFlt;
|
|
|
+ boolean_T sfmd_flg_cellUOverMisFlt;
|
|
|
+ boolean_T sfmd_flg_chrgModTOverMisFlt;
|
|
|
+ boolean_T sfmd_flg_chrgModTLowMisFlt;
|
|
|
+ boolean_T sfmd_flg_disChrgModTOverMisFlt;
|
|
|
+ boolean_T sfmd_flg_disChrgModTLowMisFlt;
|
|
|
+ boolean_T sfmd_flg_chrgMosTOverMisFlt;
|
|
|
+ boolean_T sfmd_flg_disChrgMosTOverMisFlt;
|
|
|
+ boolean_T sfmd_flg_socMisFlt;
|
|
|
+ boolean_T sfmd_flg_sohMisFlt;
|
|
|
+ boolean_T sfmd_flg_socJumpFlt;
|
|
|
+ boolean_T sfmd_flg_EEsaveFlt;
|
|
|
+ static uint16_T socd_pct_bcuSoc_Delay;
|
|
|
+
|
|
|
+ boolean_T FltFlg[200];
|
|
|
+ uint16_T FltLevel[200];
|
|
|
+ uint8_T FltAct[200];
|
|
|
+ uint16_T FltCodeArr[20];
|
|
|
+ uint16_T FltLevelArr[20];
|
|
|
+ uint8_T FltActArr[20];
|
|
|
+ uint16_T i;
|
|
|
+ uint16_T j;
|
|
|
+ uint16_T k;
|
|
|
+
|
|
|
+
|
|
|
+ //初值
|
|
|
+ if(FirstRun_SFM)
|
|
|
+ {
|
|
|
+ memset(&DiagThr,0,sizeof(DiagThr));
|
|
|
+ memset(&DiagMis,0,sizeof(DiagMis));
|
|
|
+ Cntl = 0;
|
|
|
+ memset(ErrNr,0,sizeof(ErrNr));
|
|
|
+ memset(sfmv_flg_cellUOpenFlt,0,sizeof(sfmv_flg_cellUOpenFlt));
|
|
|
+ memset(ErrUFlg,0,sizeof(ErrUFlg));
|
|
|
+ memset(RecNr,0,sizeof(RecNr));
|
|
|
+ sfmd_flg_cellUOverFlt2 = false;
|
|
|
+ sfmd_flg_cellUOverFlt1 = false;
|
|
|
+ sfmd_flg_cellULowFlt2 = false;
|
|
|
+ sfmd_flg_cellULowFlt1 = false;
|
|
|
+ sfmd_flg_cellUDiffFlt2 = false;
|
|
|
+ sfmd_flg_cellUDiffFlt1 = false;
|
|
|
+ sfmd_flg_battUOverFlt2 = false;
|
|
|
+ sfmd_flg_battUOverFlt1 = false;
|
|
|
+ sfmd_flg_battULowFlt2 = false;
|
|
|
+ sfmd_flg_battULowFlt1 = false;
|
|
|
+ sfmd_flg_chrgModTOverFlt2 = false;
|
|
|
+ sfmd_flg_chrgModTOverFlt1 = false;
|
|
|
+ sfmd_flg_chrgModTLowFlt2 = false;
|
|
|
+ sfmd_flg_chrgModTLowFlt1 = false;
|
|
|
+ sfmd_flg_disChrgModTOverFlt2 = false;
|
|
|
+ sfmd_flg_disChrgModTOverFlt1 = false;
|
|
|
+ sfmd_flg_disChrgModTLowFlt2 = false;
|
|
|
+ sfmd_flg_disChrgModTLowFlt1 = false;
|
|
|
+ sfmd_flg_modTDiffFlt2 = false;
|
|
|
+ sfmd_flg_modTDiffFlt1 = false;
|
|
|
+ sfmd_flg_chrgMosTOverFlt2 = false;
|
|
|
+ sfmd_flg_chrgMosTOverFlt1 = false;
|
|
|
+ sfmd_flg_disChrgMosTOverFlt2 = false;
|
|
|
+ sfmd_flg_disChrgMosTOverFlt1 = false;
|
|
|
+ sfmd_flg_DCPlugTOverFlt2 = false;
|
|
|
+ sfmd_flg_DCPlugTOverFlt1 = false;
|
|
|
+ sfmd_flg_ACPlugTOverFlt2 = false;
|
|
|
+ sfmd_flg_ACPlugTOverFlt1 = false;
|
|
|
+ sfmd_flg_heatPanTOverFlt2_1 = false;
|
|
|
+ sfmd_flg_heatPanTOverFlt2_2 = false;
|
|
|
+ sfmd_flg_heatPanTOverFlt1_1 = false;
|
|
|
+ sfmd_flg_heatPanTOverFlt1_2 = false;
|
|
|
+ sfmd_flg_chrgCurrOverFlt = false;
|
|
|
+ sfmd_flg_disChrgCurrOverFlt = false;
|
|
|
}
|
|
|
|
|
|
- SFM_DW.FirstFlg = false;
|
|
|
- for (j = 0U; j < 2; j++) {
|
|
|
- for (i = 0U; i < cmnc_num_cellUNum; i++) {
|
|
|
- i_0 = 3 * i + j;
|
|
|
- SFM_DW.CellUArry[i_0] = SFM_DW.CellUArry[i_0 + 1];
|
|
|
- }
|
|
|
+ //============================================================================================
|
|
|
+ //=========================================================================================
|
|
|
+ //=======================================================================================
|
|
|
+ //=========================================================================================
|
|
|
+ //1 内网通信故障
|
|
|
+ if (ihd_flg_urtRecFlt)
|
|
|
+ {
|
|
|
+ sfmd_flg_interComFlt = true;
|
|
|
+ FirstRun_SFM =true;
|
|
|
}
|
|
|
-
|
|
|
- for (i = 0U; i < cmnc_num_cellUNum; i++) {
|
|
|
- SFM_DW.CellUArry[3 * i + 2] = ihv_V_cellU[i];
|
|
|
+ else
|
|
|
+ {
|
|
|
+ sfmd_flg_interComFlt = false;
|
|
|
}
|
|
|
-
|
|
|
- for (i = 0U; i < cmnc_num_cellUNum - 1; i++) {
|
|
|
- i_0 = 3 * i;
|
|
|
- tmp_1 = (i + 1) * 3;
|
|
|
- i_0 = SFM_DW.CellUArry[i_0 + 2] - SFM_DW.CellUArry[i_0];
|
|
|
- tmp_1 = SFM_DW.CellUArry[tmp_1 + 2] - SFM_DW.CellUArry[tmp_1];
|
|
|
- if (((real_T)i_0 * 0.001 < -0.05) && ((real_T)tmp_1 * 0.001 > 0.05)) {
|
|
|
- tmp_0 = SFM_DW.ChgNr[i] + 1;
|
|
|
- if (tmp_0 > 255) {
|
|
|
- tmp_0 = 255;
|
|
|
+ //5
|
|
|
+ sfmd_flg_authFlt = (ihd_st_authFaild ==1) && (!sfmd_flg_interComFlt);
|
|
|
+
|
|
|
+ //11 高压互锁故障
|
|
|
+ if (ihd_flg_HVILFlt)
|
|
|
+ {
|
|
|
+ sfmd_flg_HVILFlt = true;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ sfmd_flg_HVILFlt = false;
|
|
|
+ }
|
|
|
+
|
|
|
+ //22 充电Mos失效故障
|
|
|
+ sfmd_flg_chrgMosClosFlt = ihd_flg_chrgMosClosFlt;
|
|
|
+ //24 放电Mos失效故障
|
|
|
+ sfmd_flg_disChrgMosClosFlt = ihd_flg_disChrgMosClosFlt;
|
|
|
+
|
|
|
+ //52 电压开路故障
|
|
|
+ Cntl = Cntl + 1;
|
|
|
+ if(!sfmd_flg_interComFlt && Cntl > 10)
|
|
|
+ {
|
|
|
+ Cntl = 0;
|
|
|
+ // 矩阵更新
|
|
|
+ for(j = 0;j < 3 && FirstRun_SFM;j++)
|
|
|
+ {
|
|
|
+ for(i = 0;i < cmnc_num_cellUNum;i++)
|
|
|
+ {
|
|
|
+ CellUArry[j][i] = ihv_V_cellU[i];
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
- SFM_DW.ChgNr[i] = (uint8_T)tmp_0;
|
|
|
- } else {
|
|
|
- SFM_DW.ChgNr[i] = 0U;
|
|
|
- }
|
|
|
-
|
|
|
- if ((SFM_DW.ChgNr[i] >= 2) && ((mul_s32_hiSR(i_0, 274877907, 6U) < -1) &&
|
|
|
- (tmp_1 > 1000))) {
|
|
|
- SFM_B.ErrFlg[i] = true;
|
|
|
- SFM_DW.ErrUFlg[i] = true;
|
|
|
- SFM_DW.ErrUFlg[i + 1] = true;
|
|
|
- }
|
|
|
-
|
|
|
- if (SFM_B.ErrFlg[i] && (i > 0)) {
|
|
|
- for (j = 0U; j < i; j++) {
|
|
|
- i_0 = i - j;
|
|
|
- tmp_1 = i_0 * 3;
|
|
|
- if ((real_T)(SFM_DW.CellUArry[tmp_1 + 2] - SFM_DW.CellUArry[tmp_1 + 1])
|
|
|
- * 0.001 < -0.2) {
|
|
|
- SFM_B.ErrFlg[i_0] = true;
|
|
|
- SFM_DW.ErrUFlg[i_0] = true;
|
|
|
- }
|
|
|
+
|
|
|
+ for(j = 0;j < 2;j++)
|
|
|
+ {
|
|
|
+ for(i = 0;i < cmnc_num_cellUNum;i++)
|
|
|
+ {
|
|
|
+ CellUArry[j][i] = CellUArry[j+1][i];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for(i = 0;i < cmnc_num_cellUNum;i++)
|
|
|
+ {
|
|
|
+ CellUArry[j][i] = ihv_V_cellU[i];
|
|
|
+ }
|
|
|
+ // 故障判断
|
|
|
+ for(i = 0;i < cmnc_num_cellUNum - 1;i++)
|
|
|
+ {
|
|
|
+ if((int16_T)(CellUArry[2][i]-CellUArry[0][i])<-50 && (int16_T)(CellUArry[2][i+1]-CellUArry[0][i+1]) > 50)
|
|
|
+ {
|
|
|
+ ErrNr[i] =ErrNr[i] +1;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ErrNr[i] = 0;
|
|
|
+ }
|
|
|
+ if ( ErrNr[i] >= 2|| ((int16_T)(CellUArry[2][i]-CellUArry[0][i])<-1000 && (int16_T)(CellUArry[2][i+1]-CellUArry[0][i+1]) > 1000 ))
|
|
|
+ {
|
|
|
+ sfmv_flg_cellUOpenFlt[i] = true;
|
|
|
+ ErrUFlg[i] = true;
|
|
|
+ ErrUFlg[i+1] = true;
|
|
|
+ }
|
|
|
+ if(sfmv_flg_cellUOpenFlt[i] && i > 0)
|
|
|
+ {
|
|
|
+ for(k = 0;k < i;k++)
|
|
|
+ {
|
|
|
+ if((int16_T)(CellUArry[2][i-k]-CellUArry[1][i-k]) < -200)
|
|
|
+ {
|
|
|
+ sfmv_flg_cellUOpenFlt[i-k] = true;
|
|
|
+ ErrUFlg[i-k] = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
}
|
|
|
-
|
|
|
- if ((mul_s32_hiSR(SFM_DW.CellUArry[2] - SFM_DW.CellUArry[1], 274877907, 6U) <
|
|
|
- -1) && (mul_s32_hiSR(SFM_DW.CellUArry[5] - SFM_DW.CellUArry[4],
|
|
|
- 274877907, 6U) < -1) && (mul_s32_hiSR(SFM_DW.CellUArry[8] -
|
|
|
- SFM_DW.CellUArry[7], 274877907, 6U) < -1)) {
|
|
|
- SFM_B.GNDFlg = false;
|
|
|
- SFM_DW.ErrUFlg[0] = true;
|
|
|
- SFM_DW.ErrUFlg[1] = true;
|
|
|
- SFM_DW.ErrUFlg[2] = true;
|
|
|
+ //
|
|
|
+ if(!sfmd_flg_interComFlt)
|
|
|
+ {
|
|
|
+ sfmd_V_cellUMax = 0;
|
|
|
+ sfmd_V_cellUMin = 10000;
|
|
|
+ SumU = 0;
|
|
|
+ UNum = 0;
|
|
|
+ for(i = 0;i < cmnc_num_cellUNum ;i++)
|
|
|
+ {
|
|
|
+ if(!ErrUFlg[i])
|
|
|
+ {
|
|
|
+ SumU = SumU + ihv_V_cellU[i];
|
|
|
+ UNum = UNum + 1;
|
|
|
+ if( sfmd_V_cellUMax < ihv_V_cellU[i])
|
|
|
+ {
|
|
|
+ sfmd_V_cellUMax = ihv_V_cellU[i];
|
|
|
+ }
|
|
|
+ if( sfmd_V_cellUMin > ihv_V_cellU[i])
|
|
|
+ {
|
|
|
+ sfmd_V_cellUMin = ihv_V_cellU[i];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(sfmd_V_cellUMax - sfmd_V_cellUMin > 3000)
|
|
|
+ {
|
|
|
+ sfmd_V_cellUAvrg = (SumU - sfmd_V_cellUMax - sfmd_V_cellUMin)/(UNum - 2);
|
|
|
+ for(i = 0;i < cmnc_num_cellUNum ;i++)
|
|
|
+ {
|
|
|
+ if(!ErrUFlg[i] && (int16_T)(ihv_V_cellU[i] - sfmd_V_cellUAvrg) > 1500)
|
|
|
+ {
|
|
|
+ ErrUFlg[i] =true;
|
|
|
+ }
|
|
|
+ if(!ErrUFlg[i] && (int16_T)(ihv_V_cellU[i] - sfmd_V_cellUAvrg) < -1500)
|
|
|
+ {
|
|
|
+ ErrUFlg[i] =true;
|
|
|
+ sfmv_flg_cellUOpenFlt[i] = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ sfmd_V_cellUAvrg = SumU / UNum;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 恢复
|
|
|
+ for(i = 0;i < cmnc_num_cellUNum ;i++)
|
|
|
+ {
|
|
|
+ if(ErrUFlg[i])
|
|
|
+ {
|
|
|
+ if((int16_T)(ihv_V_cellU[i] - sfmd_V_cellUAvrg) < 200 && (int16_T)(ihv_V_cellU[i] - sfmd_V_cellUAvrg) > -200)
|
|
|
+ {
|
|
|
+ RecNr[i] = RecNr[i] + 1;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ RecNr[i] = 0;
|
|
|
+ }
|
|
|
+ if( RecNr[i] > 20)
|
|
|
+ {
|
|
|
+ RecNr[i] = 21;
|
|
|
+ sfmv_flg_cellUOpenFlt[i] = false;
|
|
|
+ ErrUFlg[i] = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
- i = 0U;
|
|
|
- SFM_B.MinU = 10000U;
|
|
|
- SFM_B.MaxU = 0U;
|
|
|
- rtb_SumU = 0U;
|
|
|
- j = 0U;
|
|
|
- while (i < cmnc_num_cellUNum) {
|
|
|
- if (!SFM_DW.ErrUFlg[i]) {
|
|
|
- qY_0 = rtb_SumU + /*MW:OvSatOk*/ ihv_V_cellU[i];
|
|
|
- if (qY_0 < rtb_SumU) {
|
|
|
- qY_0 = MAX_uint32_T;
|
|
|
+ //==========
|
|
|
+ SumU = 0 ;
|
|
|
+ sfmd_flg_volFlt =false;
|
|
|
+ for(i = 0;i < cmnc_num_cellUNum ;i++)
|
|
|
+ {
|
|
|
+ if(ErrUFlg[i]&&!sfmd_flg_interComFlt)
|
|
|
+ {
|
|
|
+ sfmv_V_cellU[i] = sfmd_V_cellUAvrg;
|
|
|
}
|
|
|
-
|
|
|
- rtb_SumU = qY_0;
|
|
|
- i_0 = j + 1;
|
|
|
- if (j + 1 > 255) {
|
|
|
- i_0 = 255;
|
|
|
+ else
|
|
|
+ {
|
|
|
+ sfmv_flg_cellUOpenFlt[i] =false;
|
|
|
+ sfmv_V_cellU[i] = ihv_V_cellU[i];
|
|
|
}
|
|
|
-
|
|
|
- j = (uint8_T)i_0;
|
|
|
- if (ihv_V_cellU[i] > SFM_B.MaxU) {
|
|
|
- SFM_B.MaxU = ihv_V_cellU[i];
|
|
|
+ SumU = SumU + sfmv_V_cellU[i];
|
|
|
+ sfmd_flg_volFlt = sfmd_flg_volFlt || sfmv_flg_cellUOpenFlt[i];
|
|
|
+ }
|
|
|
+ sfmd_V_battU = (uint16_T)(SumU * 0.01);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ //53 模组温度开路故障
|
|
|
+ sfmd_flg_modTOpenFlt =false;
|
|
|
+ for(i = 0;i < cmnc_num_modTNum ;i++)
|
|
|
+ {
|
|
|
+ if (!sfmd_flg_interComFlt)
|
|
|
+ {
|
|
|
+ if( ihv_T_modT[i] == 10)
|
|
|
+ {
|
|
|
+ sfmv_flg_modTOpenFlt[i] = true;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ sfmv_flg_modTOpenFlt[i] = false;
|
|
|
+ }
|
|
|
+ sfmd_flg_modTOpenFlt = sfmd_flg_modTOpenFlt || sfmv_flg_modTOpenFlt[i];
|
|
|
}
|
|
|
-
|
|
|
- if (ihv_V_cellU[i] < SFM_B.MinU) {
|
|
|
- SFM_B.MinU = ihv_V_cellU[i];
|
|
|
+ else
|
|
|
+ {
|
|
|
+ sfmv_flg_modTOpenFlt[i] = false;
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- i++;
|
|
|
}
|
|
|
-
|
|
|
- if (SFM_B.MaxU - SFM_B.MinU > 3000) {
|
|
|
- qY_0 = rtb_SumU - /*MW:OvSatOk*/ SFM_B.MaxU;
|
|
|
- if (qY_0 > rtb_SumU) {
|
|
|
- qY_0 = 0U;
|
|
|
- }
|
|
|
-
|
|
|
- qY = qY_0 - /*MW:OvSatOk*/ SFM_B.MinU;
|
|
|
- if (qY > qY_0) {
|
|
|
- qY = 0U;
|
|
|
- }
|
|
|
-
|
|
|
- qY_0 = div_uus32_sat(qY, j - 2);
|
|
|
- if (qY_0 > 65535U) {
|
|
|
- qY_0 = 65535U;
|
|
|
- }
|
|
|
-
|
|
|
- avrgU = (uint16_T)qY_0;
|
|
|
- for (i = 0U; i < cmnc_num_cellUNum; i++) {
|
|
|
- if (!SFM_DW.ErrUFlg[i]) {
|
|
|
- tmp_2 = (real_T)(ihv_V_cellU[i] - (uint16_T)qY_0) * 0.001;
|
|
|
- if ((tmp_2 > 1.5) || (tmp_2 < -1.5)) {
|
|
|
- i_0 = SFM_DW.UdelNr[i] + 1;
|
|
|
- if (i_0 > 255) {
|
|
|
- i_0 = 255;
|
|
|
+
|
|
|
+ //54 Mos温度开路故障
|
|
|
+ sfmd_flg_chrgMosTOpenFlt = (!sfmd_flg_interComFlt && ihd_T_mosT == 10);
|
|
|
+
|
|
|
+ //56 快充插头温度开路故障
|
|
|
+ sfmd_flg_DCPlugTOpenFlt = (!sfmd_flg_interComFlt && ihd_T_DCPlugT == 0);
|
|
|
+
|
|
|
+ //57 慢充插头温度开路故障
|
|
|
+ sfmd_flg_ACPlugTOpenFlt = (!sfmd_flg_interComFlt && ihd_T_ACPlugT == 0);
|
|
|
+
|
|
|
+ //58 加热板#1温度开路故障
|
|
|
+ sfmd_flg_heatPanT1OpenFlt = (!sfmd_flg_interComFlt && ihd_T_heatPanT1 == 0);
|
|
|
+
|
|
|
+ //59 加热板#2温度开路故障
|
|
|
+ sfmd_flg_heatPanT2OpenFlt = (!sfmd_flg_interComFlt && ihd_T_heatPanT2 == 0);
|
|
|
+
|
|
|
+ //60 加热板温度全部开路故障
|
|
|
+ sfmd_flg_heatPanTOpenFlt = sfmd_flg_heatPanT1OpenFlt && sfmd_flg_heatPanT2OpenFlt;
|
|
|
+
|
|
|
+ //61 模组温度合理性故障
|
|
|
+ sfmd_flg_modTRationFlt = false;
|
|
|
+ if(!sfmd_flg_interComFlt)
|
|
|
+ {
|
|
|
+ for(i = 0;i < cmnc_num_modTNum && FirstRun_SFM ;i++)
|
|
|
+ {
|
|
|
+ modTArr[i] = ihv_T_modT[i];
|
|
|
+ }
|
|
|
+ for(i = 0;i < cmnc_num_modTNum ;i++)
|
|
|
+ {
|
|
|
+ if (!sfmv_flg_modTOpenFlt[i] && (int16_T)(modTArr[i]-ihv_T_modT[i]) > 10)
|
|
|
+ {
|
|
|
+ sfmv_flg_modTRationFlt[i] = true;
|
|
|
}
|
|
|
-
|
|
|
- SFM_DW.UdelNr[i] = (uint8_T)i_0;
|
|
|
- } else {
|
|
|
- SFM_DW.UdelNr[i] = 0U;
|
|
|
- }
|
|
|
-
|
|
|
- if (SFM_DW.UdelNr[i] >= 2) {
|
|
|
- SFM_B.ErrFlg[i] = true;
|
|
|
- SFM_DW.ErrUFlg[i] = true;
|
|
|
- }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ sfmv_flg_modTRationFlt[i] = false;
|
|
|
+ modTArr[i] = ihv_T_modT[i];
|
|
|
+ }
|
|
|
+ sfmd_flg_modTRationFlt = sfmd_flg_modTRationFlt || sfmv_flg_modTRationFlt[i];
|
|
|
}
|
|
|
- }
|
|
|
- } else {
|
|
|
- qY_0 = j == 0U ? MAX_uint32_T : rtb_SumU / j;
|
|
|
- if (qY_0 > 65535U) {
|
|
|
- qY_0 = 65535U;
|
|
|
- }
|
|
|
-
|
|
|
- avrgU = (uint16_T)qY_0;
|
|
|
}
|
|
|
-
|
|
|
- for (i = 0U; i < cmnc_num_cellUNum; i++) {
|
|
|
- if (SFM_DW.ErrUFlg[i]) {
|
|
|
- tmp_2 = (real_T)(ihv_V_cellU[i] - avrgU) * 0.001;
|
|
|
- if ((tmp_2 < 0.2) && (tmp_2 > -0.2)) {
|
|
|
- i_0 = SFM_DW.RecNr[i] + 1;
|
|
|
- if (i_0 > 255) {
|
|
|
- i_0 = 255;
|
|
|
- }
|
|
|
-
|
|
|
- SFM_DW.RecNr[i] = (uint8_T)i_0;
|
|
|
- } else {
|
|
|
- SFM_DW.RecNr[i] = 0U;
|
|
|
+ else
|
|
|
+ {
|
|
|
+ for(i = 0;i < cmnc_num_modTNum ;i++)
|
|
|
+ {
|
|
|
+ sfmv_flg_modTRationFlt[i] = false;
|
|
|
}
|
|
|
-
|
|
|
- if (SFM_DW.RecNr[i] >= 2) {
|
|
|
- SFM_B.ErrFlg[i] = false;
|
|
|
- SFM_DW.ErrUFlg[i] = false;
|
|
|
- SFM_B.GNDFlg = ((i != 0) && SFM_B.GNDFlg);
|
|
|
+ }
|
|
|
+ //
|
|
|
+ sfmd_T_modTMax=0;
|
|
|
+ sfmd_T_modTMin=200;
|
|
|
+ Tnum=0;
|
|
|
+ SumT=0;
|
|
|
+ for(i = 0;i < cmnc_num_modTNum ;i++)
|
|
|
+ {
|
|
|
+ if(!sfmv_flg_modTRationFlt[i] && !sfmv_flg_modTOpenFlt[i])
|
|
|
+ {
|
|
|
+ SumT = SumT + ihv_T_modT[i];
|
|
|
+ Tnum = Tnum + 1;
|
|
|
+ if (sfmd_T_modTMax <ihv_T_modT[i])
|
|
|
+ {
|
|
|
+ sfmd_T_modTMax = ihv_T_modT[i];
|
|
|
+ }
|
|
|
+ if (sfmd_T_modTMin > ihv_T_modT[i])
|
|
|
+ {
|
|
|
+ sfmd_T_modTMin = ihv_T_modT[i];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for(i = 0;i < cmnc_num_modTNum ;i++)
|
|
|
+ {
|
|
|
+ if(!sfmv_flg_modTRationFlt[i] && !sfmv_flg_modTOpenFlt[i])
|
|
|
+ {
|
|
|
+ sfmv_T_modT[i] = ihv_T_modT[i];
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ sfmv_T_modT[i] = SumT/Tnum;
|
|
|
}
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
- for (i = 0U; i < cmnc_num_cellUNum; i++) {
|
|
|
- if (SFM_DW.ErrUFlg[i]) {
|
|
|
- SFM_B.CellU[i] = avrgU;
|
|
|
- } else {
|
|
|
- SFM_B.CellU[i] = ihv_V_cellU[i];
|
|
|
- }
|
|
|
+ //printf("T:%d %d %d %d,Tmax:%d,Tmin:%d\n",ihv_T_modT[0],ihv_T_modT[1],ihv_T_modT[2],ihv_T_modT[3],sfmd_T_modTMax,sfmd_T_modTMin);
|
|
|
+ //62 充电Mos 温度合理性故障
|
|
|
+ sfmd_flg_chrgMosTRationFlt = !FirstRun_SFM && !sfmd_flg_interComFlt && !sfmd_flg_chrgMosTOpenFlt && ((int16_T)(ihd_T_mosT -ihd_T_mosT_Delay )<-10);
|
|
|
+ if (!sfmd_flg_chrgMosTRationFlt)
|
|
|
+ {
|
|
|
+ ihd_T_mosT_Delay = ihd_T_mosT;
|
|
|
}
|
|
|
- } else {
|
|
|
- for (i_0 = 0; i_0 < 28; i_0++) {
|
|
|
- SFM_B.CellU[i_0] = ihv_V_cellU[i_0];
|
|
|
- SFM_B.ErrFlg[i_0] = false;
|
|
|
+
|
|
|
+ //64 快充插头温度合理性故障
|
|
|
+ sfmd_flg_DCPlugTRationFlt = !FirstRun_SFM && !sfmd_flg_interComFlt && !sfmd_flg_DCPlugTOpenFlt && ((int16_T)(ihd_T_DCPlugT -ihd_T_DCPlugT_Delay) <-10);
|
|
|
+ if (!sfmd_flg_DCPlugTRationFlt)
|
|
|
+ {
|
|
|
+ ihd_T_DCPlugT_Delay = ihd_T_DCPlugT;
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- i = 0U;
|
|
|
- rtb_SumU = 0U;
|
|
|
- while (i < cmnc_num_cellUNum) {
|
|
|
- qY_0 = rtb_SumU + /*MW:OvSatOk*/ SFM_B.CellU[i];
|
|
|
- if (qY_0 < rtb_SumU) {
|
|
|
- qY_0 = MAX_uint32_T;
|
|
|
+ //65 慢插头温度合理性故障
|
|
|
+ sfmd_flg_ACPlugTRationFlt = !FirstRun_SFM && !sfmd_flg_interComFlt && !sfmd_flg_ACPlugTOpenFlt && ((int16_T)(ihd_T_ACPlugT -ihd_T_ACPlugT_Delay) <-10);
|
|
|
+ if (!sfmd_flg_ACPlugTRationFlt)
|
|
|
+ {
|
|
|
+ ihd_T_ACPlugT_Delay = ihd_T_ACPlugT;
|
|
|
}
|
|
|
-
|
|
|
- rtb_SumU = qY_0;
|
|
|
- i++;
|
|
|
- }
|
|
|
-
|
|
|
- for (i_0 = 0; i_0 < 28; i_0++) {
|
|
|
- /* SignalConversion generated from: '<S13>/Chart' */
|
|
|
- sfmv_V_cellU[i_0] = SFM_B.CellU[i_0];
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- /* Logic: '<S13>/Logical Operator1' */
|
|
|
- tmp = SFM_B.ErrFlg[0];
|
|
|
- for (i_0 = 0; i_0 < 27; i_0++) {
|
|
|
- tmp = (tmp || SFM_B.ErrFlg[i_0 + 1]);
|
|
|
- }
|
|
|
-
|
|
|
- rtb_RelationalOperator_et = tmp;
|
|
|
-
|
|
|
- /* Logic: '<S15>/Logical Operator' */
|
|
|
- sfmv_flg_TFlt = false;
|
|
|
-
|
|
|
- /* SignalConversion: '<S14>/Signal Conversion' incorporates:
|
|
|
- * Inport: '<Root>/ihd_flg_currFlt'
|
|
|
- */
|
|
|
- sfmd_flg_currFlt = ihd_flg_currFlt;
|
|
|
-
|
|
|
- /* SignalConversion generated from: '<S13>/Chart' */
|
|
|
- sfmd_V_cellUMax = SFM_B.MaxU;
|
|
|
-
|
|
|
- /* Outputs for Atomic SubSystem: '<S28>/Subsytem' */
|
|
|
- /* Constant: '<S28>/Constant28' incorporates:
|
|
|
- * Constant: '<S28>/Constant25'
|
|
|
- * Constant: '<S28>/Constant27'
|
|
|
- * Logic: '<S28>/Logical Operator5'
|
|
|
- */
|
|
|
- rtb_RelationalOperator1_ep = SFM_Subsytem_j(1, !rtb_RelationalOperator1,
|
|
|
- sfmd_V_cellUMax, sfmc_V_cellUMaxThr2, 2, &SFM_DW.Subsytem_j0);
|
|
|
-
|
|
|
- /* End of Outputs for SubSystem: '<S28>/Subsytem' */
|
|
|
-
|
|
|
- /* Outputs for Atomic SubSystem: '<S28>/Subsytem2' */
|
|
|
- /* Constant: '<S28>/Constant26' incorporates:
|
|
|
- * Constant: '<S28>/Constant23'
|
|
|
- * Constant: '<S28>/Constant24'
|
|
|
- * Logic: '<S28>/Logical Operator3'
|
|
|
- */
|
|
|
- rtb_RelationalOperator1_j = SFM_Subsytem_j(1, !rtb_RelationalOperator1,
|
|
|
- sfmd_V_cellUMax, sfmc_V_cellUMaxThr1, 2, &SFM_DW.Subsytem2_p);
|
|
|
-
|
|
|
- /* End of Outputs for SubSystem: '<S28>/Subsytem2' */
|
|
|
-
|
|
|
- /* SignalConversion generated from: '<S13>/Chart' */
|
|
|
- sfmd_V_cellUMin = SFM_B.MinU;
|
|
|
-
|
|
|
- /* Outputs for Atomic SubSystem: '<S28>/Subsytem1' */
|
|
|
- /* Constant: '<S28>/Constant22' incorporates:
|
|
|
- * Constant: '<S28>/Constant20'
|
|
|
- * Constant: '<S28>/Constant21'
|
|
|
- * Logic: '<S28>/Logical Operator1'
|
|
|
- */
|
|
|
- rtb_RelationalOperator1_di = SFM_Subsytem1_n(1, !rtb_RelationalOperator1,
|
|
|
- sfmd_V_cellUMin, sfmc_V_cellUMinThr2, 2, &SFM_DW.Subsytem1_n);
|
|
|
-
|
|
|
- /* End of Outputs for SubSystem: '<S28>/Subsytem1' */
|
|
|
-
|
|
|
- /* Outputs for Atomic SubSystem: '<S28>/Subsytem3' */
|
|
|
- /* Constant: '<S28>/Constant19' incorporates:
|
|
|
- * Constant: '<S28>/Constant10'
|
|
|
- * Constant: '<S28>/Constant18'
|
|
|
- * Logic: '<S28>/Logical Operator6'
|
|
|
- */
|
|
|
- rtb_RelationalOperator1_l = SFM_Subsytem1_n(1, !rtb_RelationalOperator1,
|
|
|
- sfmd_V_cellUMin, sfmc_V_cellUMinThr1, 2, &SFM_DW.Subsytem3_b);
|
|
|
-
|
|
|
- /* End of Outputs for SubSystem: '<S28>/Subsytem3' */
|
|
|
-
|
|
|
- /* Outputs for Atomic SubSystem: '<S28>/Subsytem4' */
|
|
|
- /* Constant: '<S28>/Constant14' incorporates:
|
|
|
- * Constant: '<S28>/Constant12'
|
|
|
- * Constant: '<S28>/Constant13'
|
|
|
- * Logic: '<S28>/Logical Operator2'
|
|
|
- * SignalConversion generated from: '<S13>/Chart'
|
|
|
- * Sum: '<S28>/Add'
|
|
|
- * */
|
|
|
- rtb_RelationalOperator1_lf = SFM_Subsytem_j(1, !rtb_RelationalOperator1,
|
|
|
- (uint16_T)(sfmd_V_cellUMax - sfmd_V_cellUMin), sfmc_flg_cellUDiffThr2, 2,
|
|
|
- &SFM_DW.Subsytem4_p);
|
|
|
-
|
|
|
- /* End of Outputs for SubSystem: '<S28>/Subsytem4' */
|
|
|
-
|
|
|
- /* Outputs for Atomic SubSystem: '<S28>/Subsytem5' */
|
|
|
- /* Constant: '<S28>/Constant1' incorporates:
|
|
|
- * Constant: '<S28>/Constant2'
|
|
|
- * Constant: '<S28>/Constant3'
|
|
|
- * Logic: '<S28>/Logical Operator9'
|
|
|
- * SignalConversion generated from: '<S13>/Chart'
|
|
|
- * Sum: '<S28>/Add1'
|
|
|
- * */
|
|
|
- rtb_RelationalOperator1_eg = SFM_Subsytem_j(1, !rtb_RelationalOperator1,
|
|
|
- (uint16_T)(sfmd_V_cellUMax - sfmd_V_cellUMin), sfmc_flg_cellUDiffThr1, 2,
|
|
|
- &SFM_DW.Subsytem5_l);
|
|
|
-
|
|
|
- /* End of Outputs for SubSystem: '<S28>/Subsytem5' */
|
|
|
-
|
|
|
- /* Logic: '<S13>/Logical Operator2' incorporates:
|
|
|
- * Logic: '<S13>/Logical Operator1'
|
|
|
- */
|
|
|
- sfmd_flg_volFlt = (tmp || rtb_RelationalOperator1);
|
|
|
-
|
|
|
- /* Outputs for Atomic SubSystem: '<S28>/Subsystem5' */
|
|
|
- rtb_RelationalOperator1_fg = SFM_Subsystem5(sfmd_flg_volFlt,
|
|
|
- rtb_RelationalOperator1);
|
|
|
-
|
|
|
- /* End of Outputs for SubSystem: '<S28>/Subsystem5' */
|
|
|
-
|
|
|
- /* Outputs for Atomic SubSystem: '<S28>/Subsytem6' */
|
|
|
- /* Constant: '<S28>/Constant30' incorporates:
|
|
|
- * Constant: '<S28>/Constant16'
|
|
|
- * Constant: '<S28>/Constant29'
|
|
|
- */
|
|
|
- rtb_RelationalOperator1_fg = SFM_Subsytem6(1, rtb_RelationalOperator1_fg,
|
|
|
- rtb_SumU, sfmc_V_battUMaxThr2, 2, &SFM_DW.Subsytem6);
|
|
|
-
|
|
|
- /* End of Outputs for SubSystem: '<S28>/Subsytem6' */
|
|
|
-
|
|
|
- /* Outputs for Atomic SubSystem: '<S28>/Subsystem6' */
|
|
|
- rtb_RelationalOperator1_o = SFM_Subsystem5(sfmd_flg_volFlt,
|
|
|
- rtb_RelationalOperator1);
|
|
|
-
|
|
|
- /* End of Outputs for SubSystem: '<S28>/Subsystem6' */
|
|
|
-
|
|
|
- /* Outputs for Atomic SubSystem: '<S28>/Subsytem8' */
|
|
|
- /* Constant: '<S28>/Constant17' incorporates:
|
|
|
- * Constant: '<S28>/Constant11'
|
|
|
- * Constant: '<S28>/Constant15'
|
|
|
- */
|
|
|
- rtb_RelationalOperator1_it = SFM_Subsytem6(1, rtb_RelationalOperator1_o,
|
|
|
- rtb_SumU, sfmc_V_battUMaxThr1, 2, &SFM_DW.Subsytem8);
|
|
|
-
|
|
|
- /* End of Outputs for SubSystem: '<S28>/Subsytem8' */
|
|
|
-
|
|
|
- /* Outputs for Atomic SubSystem: '<S28>/Subsystem7' */
|
|
|
- rtb_RelationalOperator1_o = SFM_Subsystem5(sfmd_flg_volFlt,
|
|
|
- rtb_RelationalOperator1);
|
|
|
-
|
|
|
- /* End of Outputs for SubSystem: '<S28>/Subsystem7' */
|
|
|
-
|
|
|
- /* Outputs for Atomic SubSystem: '<S28>/Subsytem7' */
|
|
|
- /* Constant: '<S28>/Constant9' incorporates:
|
|
|
- * Constant: '<S28>/Constant7'
|
|
|
- * Constant: '<S28>/Constant8'
|
|
|
- */
|
|
|
- rtb_RelationalOperator1_o = SFM_Subsytem7(1, rtb_RelationalOperator1_o,
|
|
|
- rtb_SumU, sfmc_V_battUMinThr2, 2, &SFM_DW.Subsytem7);
|
|
|
-
|
|
|
- /* End of Outputs for SubSystem: '<S28>/Subsytem7' */
|
|
|
-
|
|
|
- /* Outputs for Atomic SubSystem: '<S28>/Subsystem8' */
|
|
|
- rtb_RelationalOperator_et = SFM_Subsystem5(sfmd_flg_volFlt,
|
|
|
- rtb_RelationalOperator1);
|
|
|
-
|
|
|
- /* End of Outputs for SubSystem: '<S28>/Subsystem8' */
|
|
|
-
|
|
|
- /* Outputs for Atomic SubSystem: '<S28>/Subsytem9' */
|
|
|
- /* Constant: '<S28>/Constant6' incorporates:
|
|
|
- * Constant: '<S28>/Constant4'
|
|
|
- * Constant: '<S28>/Constant5'
|
|
|
- */
|
|
|
- rtb_RelationalOperator_et = SFM_Subsytem7(1, rtb_RelationalOperator_et,
|
|
|
- rtb_SumU, sfmc_V_battUMinThr1, 2, &SFM_DW.Subsytem9);
|
|
|
-
|
|
|
- /* End of Outputs for SubSystem: '<S28>/Subsytem9' */
|
|
|
-
|
|
|
- /* Chart: '<S19>/ArrMin' incorporates:
|
|
|
- * Constant: '<S19>/Constant'
|
|
|
- * Inport: '<Root>/ihv_T_modT'
|
|
|
- */
|
|
|
- i = 0U;
|
|
|
- sfmd_T_modTMax = ihv_T_modT[0];
|
|
|
- while (i < cmnc_num_modTNum) {
|
|
|
- if (sfmd_T_modTMax < ihv_T_modT[i]) {
|
|
|
- sfmd_T_modTMax = ihv_T_modT[i];
|
|
|
+ //66 加热板#1 温度合理性故障
|
|
|
+ sfmd_flg_heatPanT1RationFlt = !FirstRun_SFM && !sfmd_flg_interComFlt && !sfmd_flg_heatPanT1OpenFlt && ((int16_T)(ihd_T_heatPanT1 -ihd_T_heatPanT1_Delay) <-10);
|
|
|
+ if (!sfmd_flg_heatPanT1RationFlt)
|
|
|
+ {
|
|
|
+ ihd_T_heatPanT1_Delay = ihd_T_heatPanT1;
|
|
|
}
|
|
|
-
|
|
|
- i++;
|
|
|
- }
|
|
|
-
|
|
|
- /* End of Chart: '<S19>/ArrMin' */
|
|
|
-
|
|
|
- /* Outputs for Atomic SubSystem: '<S27>/Subsytem' */
|
|
|
- /* Constant: '<S27>/Constant28' incorporates:
|
|
|
- * Constant: '<S27>/Constant25'
|
|
|
- * Constant: '<S27>/Constant27'
|
|
|
- * Logic: '<S27>/Logical Operator5'
|
|
|
- */
|
|
|
- rtb_RelationalOperator1_p = SFM_Subsytem(1, !rtb_RelationalOperator1,
|
|
|
- sfmd_T_modTMax, sfmc_T_modTMaxThr2, 2, &SFM_DW.Subsytem_j);
|
|
|
-
|
|
|
- /* End of Outputs for SubSystem: '<S27>/Subsytem' */
|
|
|
-
|
|
|
- /* Outputs for Atomic SubSystem: '<S27>/Subsytem2' */
|
|
|
- /* Constant: '<S27>/Constant26' incorporates:
|
|
|
- * Constant: '<S27>/Constant23'
|
|
|
- * Constant: '<S27>/Constant24'
|
|
|
- * Logic: '<S27>/Logical Operator1'
|
|
|
- */
|
|
|
- rtb_RelationalOperator1_a = SFM_Subsytem(1, !rtb_RelationalOperator1,
|
|
|
- sfmd_T_modTMax, sfmc_T_modTMaxThr1, 2, &SFM_DW.Subsytem2);
|
|
|
-
|
|
|
- /* End of Outputs for SubSystem: '<S27>/Subsytem2' */
|
|
|
-
|
|
|
- /* Chart: '<S20>/ArrMin' incorporates:
|
|
|
- * Constant: '<S20>/Constant'
|
|
|
- * Inport: '<Root>/ihv_T_modT'
|
|
|
- */
|
|
|
- i = 0U;
|
|
|
- sfmd_T_modTMin = ihv_T_modT[0];
|
|
|
- while (i < cmnc_num_modTNum) {
|
|
|
- if (sfmd_T_modTMin > ihv_T_modT[i]) {
|
|
|
- sfmd_T_modTMin = ihv_T_modT[i];
|
|
|
+ //67 加热板#2 温度合理性故障
|
|
|
+ sfmd_flg_heatPanT2RationFlt = !FirstRun_SFM && !sfmd_flg_interComFlt && !sfmd_flg_heatPanT2OpenFlt && ((int16_T)(ihd_T_heatPanT2 -ihd_T_heatPanT2_Delay) <-10);
|
|
|
+ if (!sfmd_flg_heatPanT2RationFlt)
|
|
|
+ {
|
|
|
+ ihd_T_heatPanT2_Delay = ihd_T_heatPanT2;
|
|
|
}
|
|
|
-
|
|
|
- i++;
|
|
|
- }
|
|
|
-
|
|
|
- /* End of Chart: '<S20>/ArrMin' */
|
|
|
-
|
|
|
- /* Outputs for Atomic SubSystem: '<S27>/Subsytem1' */
|
|
|
- /* Constant: '<S27>/Constant22' incorporates:
|
|
|
- * Constant: '<S27>/Constant20'
|
|
|
- * Constant: '<S27>/Constant21'
|
|
|
- * Logic: '<S27>/Logical Operator3'
|
|
|
- */
|
|
|
- rtb_RelationalOperator1_i = SFM_Subsytem1(1, !rtb_RelationalOperator1,
|
|
|
- sfmd_T_modTMin, sfmc_T_modTMinThr2, 2, &SFM_DW.Subsytem1_e);
|
|
|
-
|
|
|
- /* End of Outputs for SubSystem: '<S27>/Subsytem1' */
|
|
|
-
|
|
|
- /* Outputs for Atomic SubSystem: '<S27>/Subsytem3' */
|
|
|
- /* Constant: '<S27>/Constant19' incorporates:
|
|
|
- * Constant: '<S27>/Constant10'
|
|
|
- * Constant: '<S27>/Constant18'
|
|
|
- * Logic: '<S27>/Logical Operator7'
|
|
|
- */
|
|
|
- rtb_RelationalOperator1_d = SFM_Subsytem1(1, !rtb_RelationalOperator1,
|
|
|
- sfmd_T_modTMin, sfmc_T_modTMinThr1, 2, &SFM_DW.Subsytem3);
|
|
|
-
|
|
|
- /* End of Outputs for SubSystem: '<S27>/Subsytem3' */
|
|
|
-
|
|
|
- /* Outputs for Atomic SubSystem: '<S27>/Subsytem4' */
|
|
|
- /* Constant: '<S27>/Constant14' incorporates:
|
|
|
- * Constant: '<S27>/Constant12'
|
|
|
- * Constant: '<S27>/Constant13'
|
|
|
- * Logic: '<S27>/Logical Operator4'
|
|
|
- * Sum: '<S27>/Add'
|
|
|
- */
|
|
|
- rtb_RelationalOperator1_bb = SFM_Subsytem(1, !rtb_RelationalOperator1,
|
|
|
- (int16_T)(sfmd_T_modTMax - sfmd_T_modTMin), sfmc_T_modTDiffThr2, 2,
|
|
|
- &SFM_DW.Subsytem4);
|
|
|
-
|
|
|
- /* End of Outputs for SubSystem: '<S27>/Subsytem4' */
|
|
|
-
|
|
|
- /* Outputs for Atomic SubSystem: '<S27>/Subsytem5' */
|
|
|
- /* Constant: '<S27>/Constant1' incorporates:
|
|
|
- * Constant: '<S27>/Constant2'
|
|
|
- * Constant: '<S27>/Constant3'
|
|
|
- * Logic: '<S27>/Logical Operator10'
|
|
|
- * Sum: '<S27>/Add1'
|
|
|
- */
|
|
|
- rtb_RelationalOperator1_gr = SFM_Subsytem(1, !rtb_RelationalOperator1,
|
|
|
- (int16_T)(sfmd_T_modTMax - sfmd_T_modTMin), sfmc_T_modTDiffThr1, 2,
|
|
|
- &SFM_DW.Subsytem5);
|
|
|
-
|
|
|
- /* End of Outputs for SubSystem: '<S27>/Subsytem5' */
|
|
|
-
|
|
|
- /* Switch: '<S14>/Switch' incorporates:
|
|
|
- * Inport: '<Root>/ihd_flg_currFlt'
|
|
|
- */
|
|
|
- if (ihd_flg_currFlt) {
|
|
|
- /* Switch: '<S14>/Switch' incorporates:
|
|
|
- * Constant: '<S14>/Constant'
|
|
|
- */
|
|
|
- sfmd_I_curr = 0;
|
|
|
- } else {
|
|
|
- /* Switch: '<S14>/Switch' incorporates:
|
|
|
- * Inport: '<Root>/ihd_I_curr'
|
|
|
- */
|
|
|
- sfmd_I_curr = ihd_I_curr;
|
|
|
- }
|
|
|
-
|
|
|
- /* End of Switch: '<S14>/Switch' */
|
|
|
-
|
|
|
- /* Outputs for Atomic SubSystem: '<S24>/Subsytem' */
|
|
|
- /* Saturate: '<S29>/Saturation' incorporates:
|
|
|
- * Constant: '<S29>/Constant1'
|
|
|
- * Sum: '<S29>/Add'
|
|
|
- * UnitDelay: '<S29>/delay'
|
|
|
- */
|
|
|
- if ((uint8_T)(SFM_DW.delay_DSTATE_j + 1U) < 200) {
|
|
|
- i = (uint8_T)(SFM_DW.delay_DSTATE_j + 1U);
|
|
|
- } else {
|
|
|
- i = 200U;
|
|
|
- }
|
|
|
-
|
|
|
- /* End of Saturate: '<S29>/Saturation' */
|
|
|
-
|
|
|
- /* Product: '<S29>/Product' incorporates:
|
|
|
- * Constant: '<S24>/Constant27'
|
|
|
- * Logic: '<S24>/Logical Operator2'
|
|
|
- * Logic: '<S29>/Logical Operator1'
|
|
|
- * RelationalOperator: '<S29>/Relational Operator'
|
|
|
- * Switch: '<S14>/Switch'
|
|
|
- * UnitDelay: '<S29>/delay'
|
|
|
- */
|
|
|
- SFM_DW.delay_DSTATE_j = (uint8_T)((!rtb_RelationalOperator1) && (sfmd_I_curr >=
|
|
|
- sfmc_I_chrgCurrOverThr) ? (int32_T)i : 0);
|
|
|
-
|
|
|
- /* SignalConversion generated from: '<S5>/ SFunction ' incorporates:
|
|
|
- * Chart: '<S3>/FltCodeArry'
|
|
|
- * Constant: '<S24>/Constant25'
|
|
|
- * RelationalOperator: '<S29>/Relational Operator1'
|
|
|
- */
|
|
|
- rtb_TmpSignalConversionAtSFun_a[130] = (i > 2);
|
|
|
-
|
|
|
- /* End of Outputs for SubSystem: '<S24>/Subsytem' */
|
|
|
-
|
|
|
- /* Outputs for Atomic SubSystem: '<S24>/Subsytem1' */
|
|
|
- /* Saturate: '<S30>/Saturation' incorporates:
|
|
|
- * Constant: '<S30>/Constant2'
|
|
|
- * Sum: '<S30>/Add'
|
|
|
- * UnitDelay: '<S30>/delay'
|
|
|
- */
|
|
|
- if ((uint8_T)(SFM_DW.delay_DSTATE + 1U) < 200) {
|
|
|
- i = (uint8_T)(SFM_DW.delay_DSTATE + 1U);
|
|
|
- } else {
|
|
|
- i = 200U;
|
|
|
- }
|
|
|
-
|
|
|
- /* End of Saturate: '<S30>/Saturation' */
|
|
|
-
|
|
|
- /* Product: '<S30>/Product' incorporates:
|
|
|
- * Constant: '<S24>/Constant10'
|
|
|
- * Logic: '<S24>/Logical Operator1'
|
|
|
- * Logic: '<S30>/Logical Operator'
|
|
|
- * RelationalOperator: '<S30>/Relational Operator'
|
|
|
- * Switch: '<S14>/Switch'
|
|
|
- * UnitDelay: '<S30>/delay'
|
|
|
- */
|
|
|
- SFM_DW.delay_DSTATE = (uint8_T)((!rtb_RelationalOperator1) && (sfmd_I_curr <=
|
|
|
- sfmc_I_dischrgCurrOverThr) ? (int32_T)i : 0);
|
|
|
-
|
|
|
- /* End of Outputs for SubSystem: '<S24>/Subsytem1' */
|
|
|
-
|
|
|
- /* SignalConversion generated from: '<S5>/ SFunction ' incorporates:
|
|
|
- * Chart: '<S3>/FltCodeArry'
|
|
|
- * Constant: '<S10>/Constant1'
|
|
|
- * Constant: '<S10>/Constant10'
|
|
|
- * Constant: '<S10>/Constant12'
|
|
|
- * Constant: '<S10>/Constant13'
|
|
|
- * Constant: '<S10>/Constant14'
|
|
|
- * Constant: '<S10>/Constant15'
|
|
|
- * Constant: '<S10>/Constant16'
|
|
|
- * Constant: '<S10>/Constant17'
|
|
|
- * Constant: '<S10>/Constant18'
|
|
|
- * Constant: '<S10>/Constant19'
|
|
|
- * Constant: '<S10>/Constant2'
|
|
|
- * Constant: '<S10>/Constant20'
|
|
|
- * Constant: '<S10>/Constant21'
|
|
|
- * Constant: '<S10>/Constant22'
|
|
|
- * Constant: '<S10>/Constant23'
|
|
|
- * Constant: '<S10>/Constant24'
|
|
|
- * Constant: '<S10>/Constant25'
|
|
|
- * Constant: '<S10>/Constant26'
|
|
|
- * Constant: '<S10>/Constant27'
|
|
|
- * Constant: '<S10>/Constant28'
|
|
|
- * Constant: '<S10>/Constant29'
|
|
|
- * Constant: '<S10>/Constant3'
|
|
|
- * Constant: '<S10>/Constant4'
|
|
|
- * Constant: '<S10>/Constant5'
|
|
|
- * Constant: '<S10>/Constant6'
|
|
|
- * Constant: '<S10>/Constant7'
|
|
|
- * Constant: '<S10>/Constant8'
|
|
|
- * Constant: '<S10>/Constant9'
|
|
|
- * Constant: '<S12>/Constant'
|
|
|
- * Constant: '<S12>/Constant1'
|
|
|
- * Constant: '<S12>/Constant2'
|
|
|
- * Constant: '<S12>/Constant3'
|
|
|
- * Constant: '<S12>/Constant4'
|
|
|
- * Constant: '<S12>/Constant5'
|
|
|
- * Constant: '<S12>/Constant6'
|
|
|
- * Constant: '<S12>/Constant7'
|
|
|
- * Constant: '<S12>/Constant8'
|
|
|
- * Constant: '<S12>/Constant9'
|
|
|
- * Constant: '<S15>/Constant11'
|
|
|
- * Constant: '<S15>/Constant12'
|
|
|
- * Constant: '<S15>/Constant13'
|
|
|
- * Constant: '<S15>/Constant14'
|
|
|
- * Constant: '<S15>/Constant15'
|
|
|
- * Constant: '<S15>/Constant16'
|
|
|
- * Constant: '<S15>/Constant17'
|
|
|
- * Constant: '<S15>/Constant18'
|
|
|
- * Constant: '<S15>/Constant19'
|
|
|
- * Constant: '<S15>/Constant20'
|
|
|
- * Constant: '<S15>/Constant21'
|
|
|
- * Constant: '<S15>/Constant4'
|
|
|
- * Constant: '<S15>/Constant5'
|
|
|
- * Constant: '<S15>/Constant6'
|
|
|
- * Constant: '<S15>/Constant7'
|
|
|
- * Constant: '<S15>/Constant8'
|
|
|
- * Constant: '<S15>/Constant9'
|
|
|
- * Constant: '<S16>/Constant'
|
|
|
- * Constant: '<S16>/Constant1'
|
|
|
- * Constant: '<S16>/Constant2'
|
|
|
- * Constant: '<S16>/Constant3'
|
|
|
- * Constant: '<S16>/Constant4'
|
|
|
- * Constant: '<S16>/Constant5'
|
|
|
- * Constant: '<S16>/Constant6'
|
|
|
- * Constant: '<S16>/Constant7'
|
|
|
- * Constant: '<S17>/Constant1'
|
|
|
- * Constant: '<S24>/Constant1'
|
|
|
- * Constant: '<S24>/Constant2'
|
|
|
- * Constant: '<S24>/Constant3'
|
|
|
- * Constant: '<S24>/Constant4'
|
|
|
- * Constant: '<S24>/Constant5'
|
|
|
- * Constant: '<S24>/Constant6'
|
|
|
- * Constant: '<S24>/Constant7'
|
|
|
- * Constant: '<S24>/Constant8'
|
|
|
- * Constant: '<S24>/Constant9'
|
|
|
- * Constant: '<S25>/Constant1'
|
|
|
- * Constant: '<S25>/Constant2'
|
|
|
- * Constant: '<S25>/Constant3'
|
|
|
- * Constant: '<S25>/Constant4'
|
|
|
- * Constant: '<S25>/Constant5'
|
|
|
- * Constant: '<S25>/Constant6'
|
|
|
- * Constant: '<S25>/Constant7'
|
|
|
- * Constant: '<S25>/Constant8'
|
|
|
- * Constant: '<S25>/Constant9'
|
|
|
- * Constant: '<S26>/Constant'
|
|
|
- * Constant: '<S27>/Constant'
|
|
|
- * Constant: '<S27>/Constant11'
|
|
|
- * Constant: '<S27>/Constant15'
|
|
|
- * Constant: '<S27>/Constant16'
|
|
|
- * Constant: '<S27>/Constant17'
|
|
|
- * Constant: '<S27>/Constant29'
|
|
|
- * Constant: '<S27>/Constant30'
|
|
|
- * Constant: '<S27>/Constant31'
|
|
|
- * Constant: '<S27>/Constant32'
|
|
|
- * Constant: '<S27>/Constant33'
|
|
|
- * Constant: '<S27>/Constant34'
|
|
|
- * Constant: '<S27>/Constant35'
|
|
|
- * Constant: '<S27>/Constant36'
|
|
|
- * Constant: '<S27>/Constant37'
|
|
|
- * Constant: '<S27>/Constant38'
|
|
|
- * Constant: '<S27>/Constant39'
|
|
|
- * Constant: '<S27>/Constant4'
|
|
|
- * Constant: '<S27>/Constant40'
|
|
|
- * Constant: '<S27>/Constant41'
|
|
|
- * Constant: '<S27>/Constant5'
|
|
|
- * Constant: '<S27>/Constant6'
|
|
|
- * Constant: '<S27>/Constant7'
|
|
|
- * Constant: '<S27>/Constant8'
|
|
|
- * Constant: '<S27>/Constant9'
|
|
|
- * Constant: '<S28>/Constant'
|
|
|
- * Constant: '<S28>/Constant31'
|
|
|
- * Constant: '<S28>/Constant32'
|
|
|
- * Constant: '<S28>/Constant33'
|
|
|
- * Constant: '<S28>/Constant34'
|
|
|
- * Constant: '<S28>/Constant35'
|
|
|
- * Constant: '<S28>/Constant36'
|
|
|
- * Constant: '<S28>/Constant37'
|
|
|
- * Constant: '<S28>/Constant38'
|
|
|
- * Constant: '<S28>/Constant39'
|
|
|
- * Constant: '<S6>/Constant'
|
|
|
- * Constant: '<S8>/Constant'
|
|
|
- * Constant: '<S8>/Constant1'
|
|
|
- * Constant: '<S8>/Constant2'
|
|
|
- * Constant: '<S8>/Constant3'
|
|
|
- * Constant: '<S8>/Constant4'
|
|
|
- * Constant: '<S9>/Constant1'
|
|
|
- * Constant: '<S9>/Constant10'
|
|
|
- * Constant: '<S9>/Constant2'
|
|
|
- * Constant: '<S9>/Constant3'
|
|
|
- * Constant: '<S9>/Constant4'
|
|
|
- * Constant: '<S9>/Constant5'
|
|
|
- * Constant: '<S9>/Constant7'
|
|
|
- * Constant: '<S9>/Constant8'
|
|
|
- * Constant: '<S9>/Constant9'
|
|
|
- * Inport: '<Root>/ihd_flg_chrgMosClosFlt'
|
|
|
- * Inport: '<Root>/ihd_flg_disChrgMosClosFlt'
|
|
|
- * Logic: '<S13>/Logical Operator1'
|
|
|
- * Logic: '<S27>/Logical Operator12'
|
|
|
- * Logic: '<S27>/Logical Operator13'
|
|
|
- * Logic: '<S27>/Logical Operator2'
|
|
|
- * Logic: '<S27>/Logical Operator6'
|
|
|
- * Logic: '<S27>/Logical Operator8'
|
|
|
- * Logic: '<S27>/Logical Operator9'
|
|
|
- * Logic: '<S28>/Logical Operator'
|
|
|
- * Logic: '<S28>/Logical Operator10'
|
|
|
- * Logic: '<S28>/Logical Operator11'
|
|
|
- * Logic: '<S28>/Logical Operator12'
|
|
|
- * Logic: '<S28>/Logical Operator13'
|
|
|
- * Logic: '<S28>/Logical Operator14'
|
|
|
- * Logic: '<S28>/Logical Operator15'
|
|
|
- * Logic: '<S28>/Logical Operator4'
|
|
|
- * Logic: '<S28>/Logical Operator7'
|
|
|
- * Logic: '<S28>/Logical Operator8'
|
|
|
- * RelationalOperator: '<S30>/Relational Operator1'
|
|
|
- */
|
|
|
- rtb_TmpSignalConversionAtSFun_a[0] = rtb_RelationalOperator1;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[1] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[2] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[3] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[4] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[5] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[6] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[7] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[8] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[9] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[10] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[11] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[12] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[13] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[14] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[15] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[16] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[17] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[18] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[19] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[20] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[21] = ihd_flg_chrgMosClosFlt;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[22] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[23] = ihd_flg_dischrgMosClosFlt;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[24] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[25] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[26] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[27] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[28] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[29] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[30] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[31] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[32] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[33] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[34] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[35] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[36] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[37] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[38] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[39] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[40] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[41] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[42] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[43] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[44] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[45] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[46] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[47] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[48] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[49] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[50] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[51] = tmp;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[52] = sfmv_flg_TFlt;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[53] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[54] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[55] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[56] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[57] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[58] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[59] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[60] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[61] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[62] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[63] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[64] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[65] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[66] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[67] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[68] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[69] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[70] = sfmd_flg_currFlt;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[71] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[72] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[73] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[74] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[75] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[76] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[77] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[78] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[79] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[80] = rtb_RelationalOperator1_ep;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[81] = (rtb_RelationalOperator1_j &&
|
|
|
- (!rtb_RelationalOperator1_ep));
|
|
|
- rtb_TmpSignalConversionAtSFun_a[82] = rtb_RelationalOperator1_di;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[83] = (rtb_RelationalOperator1_l &&
|
|
|
- (!rtb_RelationalOperator1_di));
|
|
|
- rtb_TmpSignalConversionAtSFun_a[84] = rtb_RelationalOperator1_lf;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[85] = (rtb_RelationalOperator1_eg &&
|
|
|
- (!rtb_RelationalOperator1_lf));
|
|
|
- rtb_TmpSignalConversionAtSFun_a[86] = rtb_RelationalOperator1_fg;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[87] = (rtb_RelationalOperator1_it &&
|
|
|
- (!rtb_RelationalOperator1_fg));
|
|
|
- rtb_TmpSignalConversionAtSFun_a[88] = rtb_RelationalOperator1_o;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[89] = (rtb_RelationalOperator_et &&
|
|
|
- (!rtb_RelationalOperator1_o));
|
|
|
- rtb_TmpSignalConversionAtSFun_a[90] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[91] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[92] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[93] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[94] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[95] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[96] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[97] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[98] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[99] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[100] = rtb_RelationalOperator1_p;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[101] = (rtb_RelationalOperator1_a &&
|
|
|
- (!rtb_RelationalOperator1_p));
|
|
|
- rtb_TmpSignalConversionAtSFun_a[102] = rtb_RelationalOperator1_i;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[103] = (rtb_RelationalOperator1_d &&
|
|
|
- (!rtb_RelationalOperator1_i));
|
|
|
- rtb_TmpSignalConversionAtSFun_a[104] = rtb_RelationalOperator1_bb;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[105] = (rtb_RelationalOperator1_gr &&
|
|
|
- (!rtb_RelationalOperator1_bb));
|
|
|
- rtb_TmpSignalConversionAtSFun_a[106] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[107] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[108] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[109] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[110] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[111] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[112] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[113] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[114] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[115] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[116] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[117] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[118] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[119] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[120] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[121] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[122] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[123] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[124] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[125] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[126] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[127] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[128] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[129] = false;
|
|
|
-
|
|
|
- /* Outputs for Atomic SubSystem: '<S24>/Subsytem1' */
|
|
|
- rtb_TmpSignalConversionAtSFun_a[131] = (i > 2);
|
|
|
-
|
|
|
- /* End of Outputs for SubSystem: '<S24>/Subsytem1' */
|
|
|
- rtb_TmpSignalConversionAtSFun_a[132] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[133] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[134] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[135] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[136] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[137] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[138] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[139] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[140] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[141] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[142] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[143] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[144] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[145] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[146] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[147] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[148] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[149] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[150] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[151] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[152] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[153] = false;
|
|
|
- rtb_TmpSignalConversionAtSFun_a[154] = false;
|
|
|
-
|
|
|
- /* SignalConversion generated from: '<S5>/ SFunction ' incorporates:
|
|
|
- * Chart: '<S3>/FltCodeArry'
|
|
|
- * Constant: '<S3>/Constant1'
|
|
|
- * Constant: '<S3>/Constant10'
|
|
|
- * Constant: '<S3>/Constant100'
|
|
|
- * Constant: '<S3>/Constant101'
|
|
|
- * Constant: '<S3>/Constant102'
|
|
|
- * Constant: '<S3>/Constant103'
|
|
|
- * Constant: '<S3>/Constant104'
|
|
|
- * Constant: '<S3>/Constant105'
|
|
|
- * Constant: '<S3>/Constant106'
|
|
|
- * Constant: '<S3>/Constant107'
|
|
|
- * Constant: '<S3>/Constant108'
|
|
|
- * Constant: '<S3>/Constant109'
|
|
|
- * Constant: '<S3>/Constant11'
|
|
|
- * Constant: '<S3>/Constant110'
|
|
|
- * Constant: '<S3>/Constant111'
|
|
|
- * Constant: '<S3>/Constant112'
|
|
|
- * Constant: '<S3>/Constant113'
|
|
|
- * Constant: '<S3>/Constant114'
|
|
|
- * Constant: '<S3>/Constant115'
|
|
|
- * Constant: '<S3>/Constant116'
|
|
|
- * Constant: '<S3>/Constant117'
|
|
|
- * Constant: '<S3>/Constant118'
|
|
|
- * Constant: '<S3>/Constant119'
|
|
|
- * Constant: '<S3>/Constant12'
|
|
|
- * Constant: '<S3>/Constant120'
|
|
|
- * Constant: '<S3>/Constant121'
|
|
|
- * Constant: '<S3>/Constant122'
|
|
|
- * Constant: '<S3>/Constant123'
|
|
|
- * Constant: '<S3>/Constant124'
|
|
|
- * Constant: '<S3>/Constant125'
|
|
|
- * Constant: '<S3>/Constant126'
|
|
|
- * Constant: '<S3>/Constant127'
|
|
|
- * Constant: '<S3>/Constant128'
|
|
|
- * Constant: '<S3>/Constant129'
|
|
|
- * Constant: '<S3>/Constant13'
|
|
|
- * Constant: '<S3>/Constant130'
|
|
|
- * Constant: '<S3>/Constant131'
|
|
|
- * Constant: '<S3>/Constant132'
|
|
|
- * Constant: '<S3>/Constant133'
|
|
|
- * Constant: '<S3>/Constant134'
|
|
|
- * Constant: '<S3>/Constant135'
|
|
|
- * Constant: '<S3>/Constant136'
|
|
|
- * Constant: '<S3>/Constant137'
|
|
|
- * Constant: '<S3>/Constant138'
|
|
|
- * Constant: '<S3>/Constant139'
|
|
|
- * Constant: '<S3>/Constant14'
|
|
|
- * Constant: '<S3>/Constant140'
|
|
|
- * Constant: '<S3>/Constant141'
|
|
|
- * Constant: '<S3>/Constant142'
|
|
|
- * Constant: '<S3>/Constant143'
|
|
|
- * Constant: '<S3>/Constant144'
|
|
|
- * Constant: '<S3>/Constant145'
|
|
|
- * Constant: '<S3>/Constant146'
|
|
|
- * Constant: '<S3>/Constant147'
|
|
|
- * Constant: '<S3>/Constant148'
|
|
|
- * Constant: '<S3>/Constant149'
|
|
|
- * Constant: '<S3>/Constant15'
|
|
|
- * Constant: '<S3>/Constant150'
|
|
|
- * Constant: '<S3>/Constant151'
|
|
|
- * Constant: '<S3>/Constant152'
|
|
|
- * Constant: '<S3>/Constant153'
|
|
|
- * Constant: '<S3>/Constant154'
|
|
|
- * Constant: '<S3>/Constant155'
|
|
|
- * Constant: '<S3>/Constant157'
|
|
|
- * Constant: '<S3>/Constant158'
|
|
|
- * Constant: '<S3>/Constant159'
|
|
|
- * Constant: '<S3>/Constant16'
|
|
|
- * Constant: '<S3>/Constant160'
|
|
|
- * Constant: '<S3>/Constant17'
|
|
|
- * Constant: '<S3>/Constant18'
|
|
|
- * Constant: '<S3>/Constant19'
|
|
|
- * Constant: '<S3>/Constant20'
|
|
|
- * Constant: '<S3>/Constant21'
|
|
|
- * Constant: '<S3>/Constant22'
|
|
|
- * Constant: '<S3>/Constant23'
|
|
|
- * Constant: '<S3>/Constant24'
|
|
|
- * Constant: '<S3>/Constant25'
|
|
|
- * Constant: '<S3>/Constant26'
|
|
|
- * Constant: '<S3>/Constant27'
|
|
|
- * Constant: '<S3>/Constant28'
|
|
|
- * Constant: '<S3>/Constant29'
|
|
|
- * Constant: '<S3>/Constant30'
|
|
|
- * Constant: '<S3>/Constant31'
|
|
|
- * Constant: '<S3>/Constant32'
|
|
|
- * Constant: '<S3>/Constant33'
|
|
|
- * Constant: '<S3>/Constant34'
|
|
|
- * Constant: '<S3>/Constant35'
|
|
|
- * Constant: '<S3>/Constant36'
|
|
|
- * Constant: '<S3>/Constant37'
|
|
|
- * Constant: '<S3>/Constant38'
|
|
|
- * Constant: '<S3>/Constant39'
|
|
|
- * Constant: '<S3>/Constant4'
|
|
|
- * Constant: '<S3>/Constant40'
|
|
|
- * Constant: '<S3>/Constant41'
|
|
|
- * Constant: '<S3>/Constant42'
|
|
|
- * Constant: '<S3>/Constant43'
|
|
|
- * Constant: '<S3>/Constant44'
|
|
|
- * Constant: '<S3>/Constant45'
|
|
|
- * Constant: '<S3>/Constant46'
|
|
|
- * Constant: '<S3>/Constant47'
|
|
|
- * Constant: '<S3>/Constant48'
|
|
|
- * Constant: '<S3>/Constant49'
|
|
|
- * Constant: '<S3>/Constant5'
|
|
|
- * Constant: '<S3>/Constant50'
|
|
|
- * Constant: '<S3>/Constant51'
|
|
|
- * Constant: '<S3>/Constant52'
|
|
|
- * Constant: '<S3>/Constant53'
|
|
|
- * Constant: '<S3>/Constant54'
|
|
|
- * Constant: '<S3>/Constant55'
|
|
|
- * Constant: '<S3>/Constant56'
|
|
|
- * Constant: '<S3>/Constant57'
|
|
|
- * Constant: '<S3>/Constant58'
|
|
|
- * Constant: '<S3>/Constant59'
|
|
|
- * Constant: '<S3>/Constant6'
|
|
|
- * Constant: '<S3>/Constant60'
|
|
|
- * Constant: '<S3>/Constant61'
|
|
|
- * Constant: '<S3>/Constant62'
|
|
|
- * Constant: '<S3>/Constant63'
|
|
|
- * Constant: '<S3>/Constant64'
|
|
|
- * Constant: '<S3>/Constant65'
|
|
|
- * Constant: '<S3>/Constant66'
|
|
|
- * Constant: '<S3>/Constant67'
|
|
|
- * Constant: '<S3>/Constant68'
|
|
|
- * Constant: '<S3>/Constant69'
|
|
|
- * Constant: '<S3>/Constant7'
|
|
|
- * Constant: '<S3>/Constant70'
|
|
|
- * Constant: '<S3>/Constant71'
|
|
|
- * Constant: '<S3>/Constant72'
|
|
|
- * Constant: '<S3>/Constant73'
|
|
|
- * Constant: '<S3>/Constant74'
|
|
|
- * Constant: '<S3>/Constant75'
|
|
|
- * Constant: '<S3>/Constant76'
|
|
|
- * Constant: '<S3>/Constant77'
|
|
|
- * Constant: '<S3>/Constant78'
|
|
|
- * Constant: '<S3>/Constant79'
|
|
|
- * Constant: '<S3>/Constant8'
|
|
|
- * Constant: '<S3>/Constant80'
|
|
|
- * Constant: '<S3>/Constant81'
|
|
|
- * Constant: '<S3>/Constant84'
|
|
|
- * Constant: '<S3>/Constant85'
|
|
|
- * Constant: '<S3>/Constant86'
|
|
|
- * Constant: '<S3>/Constant87'
|
|
|
- * Constant: '<S3>/Constant88'
|
|
|
- * Constant: '<S3>/Constant89'
|
|
|
- * Constant: '<S3>/Constant9'
|
|
|
- * Constant: '<S3>/Constant90'
|
|
|
- * Constant: '<S3>/Constant91'
|
|
|
- * Constant: '<S3>/Constant92'
|
|
|
- * Constant: '<S3>/Constant93'
|
|
|
- * Constant: '<S3>/Constant94'
|
|
|
- * Constant: '<S3>/Constant95'
|
|
|
- * Constant: '<S3>/Constant96'
|
|
|
- * Constant: '<S3>/Constant97'
|
|
|
- * Constant: '<S3>/Constant98'
|
|
|
- * Constant: '<S3>/Constant99'
|
|
|
- */
|
|
|
- rtb_TmpSignalConversionAtSFunct[0] = 2U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[1] = 2U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[2] = 2U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[3] = 2U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[4] = 4U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[5] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[6] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[7] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[8] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[9] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[10] = 5U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[11] = 5U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[12] = 2U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[13] = 5U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[14] = 3U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[15] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[16] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[17] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[18] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[19] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[20] = 5U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[21] = 4U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[22] = 2U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[23] = 4U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[24] = 2U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[25] = 3U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[26] = 3U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[27] = 3U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[28] = 3U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[29] = 5U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[30] = 2U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[31] = 4U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[32] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[33] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[34] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[35] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[36] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[37] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[38] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[39] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[40] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[41] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[42] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[43] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[44] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[45] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[46] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[47] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[48] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[49] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[50] = 2U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[51] = 4U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[52] = 4U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[53] = 4U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[54] = 4U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[55] = 4U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[56] = 4U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[57] = 2U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[58] = 2U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[59] = 3U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[60] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[61] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[62] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[63] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[64] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[65] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[66] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[67] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[68] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[69] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[70] = 4U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[71] = 2U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[72] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[73] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[74] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[75] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[76] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[77] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[78] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[79] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[80] = 4U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[81] = 3U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[82] = 4U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[83] = 3U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[84] = 3U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[85] = 2U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[86] = 4U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[87] = 3U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[88] = 4U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[89] = 3U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[90] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[91] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[92] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[93] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[94] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[95] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[96] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[97] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[98] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[99] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[100] = 4U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[101] = 3U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[102] = 4U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[103] = 3U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[104] = 3U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[105] = 1U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[106] = 4U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[107] = 3U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[108] = 4U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[109] = 3U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[110] = 4U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[111] = 3U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[112] = 4U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[113] = 3U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[114] = 4U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[115] = 3U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[116] = 1U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[117] = 1U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[118] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[119] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[120] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[121] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[122] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[123] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[124] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[125] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[126] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[127] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[128] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[129] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[130] = 4U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[131] = 4U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[132] = 3U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[133] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[134] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[135] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[136] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[137] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[138] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[139] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[140] = 3U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[141] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[142] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[143] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[144] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[145] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[146] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[147] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[148] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[149] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[150] = 2U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[151] = 2U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[152] = 2U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[153] = 1U;
|
|
|
- rtb_TmpSignalConversionAtSFunct[154] = 1U;
|
|
|
-
|
|
|
- /* SignalConversion generated from: '<S5>/ SFunction ' incorporates:
|
|
|
- * Chart: '<S3>/FltCodeArry'
|
|
|
- * Constant: '<S3>/Constant156'
|
|
|
- * Constant: '<S3>/Constant161'
|
|
|
- * Constant: '<S3>/Constant162'
|
|
|
- * Constant: '<S3>/Constant163'
|
|
|
- * Constant: '<S3>/Constant164'
|
|
|
- * Constant: '<S3>/Constant165'
|
|
|
- * Constant: '<S3>/Constant166'
|
|
|
- * Constant: '<S3>/Constant167'
|
|
|
- * Constant: '<S3>/Constant168'
|
|
|
- * Constant: '<S3>/Constant169'
|
|
|
- * Constant: '<S3>/Constant170'
|
|
|
- * Constant: '<S3>/Constant171'
|
|
|
- * Constant: '<S3>/Constant172'
|
|
|
- * Constant: '<S3>/Constant173'
|
|
|
- * Constant: '<S3>/Constant174'
|
|
|
- * Constant: '<S3>/Constant175'
|
|
|
- * Constant: '<S3>/Constant176'
|
|
|
- * Constant: '<S3>/Constant177'
|
|
|
- * Constant: '<S3>/Constant178'
|
|
|
- * Constant: '<S3>/Constant179'
|
|
|
- * Constant: '<S3>/Constant180'
|
|
|
- * Constant: '<S3>/Constant181'
|
|
|
- * Constant: '<S3>/Constant182'
|
|
|
- * Constant: '<S3>/Constant183'
|
|
|
- * Constant: '<S3>/Constant184'
|
|
|
- * Constant: '<S3>/Constant185'
|
|
|
- * Constant: '<S3>/Constant186'
|
|
|
- * Constant: '<S3>/Constant187'
|
|
|
- * Constant: '<S3>/Constant188'
|
|
|
- * Constant: '<S3>/Constant189'
|
|
|
- * Constant: '<S3>/Constant190'
|
|
|
- * Constant: '<S3>/Constant191'
|
|
|
- * Constant: '<S3>/Constant192'
|
|
|
- * Constant: '<S3>/Constant193'
|
|
|
- * Constant: '<S3>/Constant194'
|
|
|
- * Constant: '<S3>/Constant195'
|
|
|
- * Constant: '<S3>/Constant196'
|
|
|
- * Constant: '<S3>/Constant197'
|
|
|
- * Constant: '<S3>/Constant198'
|
|
|
- * Constant: '<S3>/Constant199'
|
|
|
- * Constant: '<S3>/Constant200'
|
|
|
- * Constant: '<S3>/Constant201'
|
|
|
- * Constant: '<S3>/Constant202'
|
|
|
- * Constant: '<S3>/Constant203'
|
|
|
- * Constant: '<S3>/Constant204'
|
|
|
- * Constant: '<S3>/Constant205'
|
|
|
- * Constant: '<S3>/Constant206'
|
|
|
- * Constant: '<S3>/Constant207'
|
|
|
- * Constant: '<S3>/Constant208'
|
|
|
- * Constant: '<S3>/Constant209'
|
|
|
- * Constant: '<S3>/Constant210'
|
|
|
- * Constant: '<S3>/Constant211'
|
|
|
- * Constant: '<S3>/Constant212'
|
|
|
- * Constant: '<S3>/Constant213'
|
|
|
- * Constant: '<S3>/Constant214'
|
|
|
- * Constant: '<S3>/Constant215'
|
|
|
- * Constant: '<S3>/Constant216'
|
|
|
- * Constant: '<S3>/Constant217'
|
|
|
- * Constant: '<S3>/Constant218'
|
|
|
- * Constant: '<S3>/Constant219'
|
|
|
- * Constant: '<S3>/Constant220'
|
|
|
- * Constant: '<S3>/Constant221'
|
|
|
- * Constant: '<S3>/Constant222'
|
|
|
- * Constant: '<S3>/Constant223'
|
|
|
- * Constant: '<S3>/Constant224'
|
|
|
- * Constant: '<S3>/Constant225'
|
|
|
- * Constant: '<S3>/Constant226'
|
|
|
- * Constant: '<S3>/Constant227'
|
|
|
- * Constant: '<S3>/Constant228'
|
|
|
- * Constant: '<S3>/Constant229'
|
|
|
- * Constant: '<S3>/Constant230'
|
|
|
- * Constant: '<S3>/Constant231'
|
|
|
- * Constant: '<S3>/Constant232'
|
|
|
- * Constant: '<S3>/Constant233'
|
|
|
- * Constant: '<S3>/Constant234'
|
|
|
- * Constant: '<S3>/Constant235'
|
|
|
- * Constant: '<S3>/Constant236'
|
|
|
- * Constant: '<S3>/Constant237'
|
|
|
- * Constant: '<S3>/Constant238'
|
|
|
- * Constant: '<S3>/Constant239'
|
|
|
- * Constant: '<S3>/Constant240'
|
|
|
- * Constant: '<S3>/Constant241'
|
|
|
- * Constant: '<S3>/Constant242'
|
|
|
- * Constant: '<S3>/Constant243'
|
|
|
- * Constant: '<S3>/Constant244'
|
|
|
- * Constant: '<S3>/Constant245'
|
|
|
- * Constant: '<S3>/Constant246'
|
|
|
- * Constant: '<S3>/Constant247'
|
|
|
- * Constant: '<S3>/Constant248'
|
|
|
- * Constant: '<S3>/Constant249'
|
|
|
- * Constant: '<S3>/Constant250'
|
|
|
- * Constant: '<S3>/Constant251'
|
|
|
- * Constant: '<S3>/Constant252'
|
|
|
- * Constant: '<S3>/Constant253'
|
|
|
- * Constant: '<S3>/Constant254'
|
|
|
- * Constant: '<S3>/Constant255'
|
|
|
- * Constant: '<S3>/Constant256'
|
|
|
- * Constant: '<S3>/Constant257'
|
|
|
- * Constant: '<S3>/Constant258'
|
|
|
- * Constant: '<S3>/Constant259'
|
|
|
- * Constant: '<S3>/Constant260'
|
|
|
- * Constant: '<S3>/Constant261'
|
|
|
- * Constant: '<S3>/Constant262'
|
|
|
- * Constant: '<S3>/Constant263'
|
|
|
- * Constant: '<S3>/Constant264'
|
|
|
- * Constant: '<S3>/Constant265'
|
|
|
- * Constant: '<S3>/Constant266'
|
|
|
- * Constant: '<S3>/Constant267'
|
|
|
- * Constant: '<S3>/Constant268'
|
|
|
- * Constant: '<S3>/Constant269'
|
|
|
- * Constant: '<S3>/Constant270'
|
|
|
- * Constant: '<S3>/Constant271'
|
|
|
- * Constant: '<S3>/Constant272'
|
|
|
- * Constant: '<S3>/Constant273'
|
|
|
- * Constant: '<S3>/Constant274'
|
|
|
- * Constant: '<S3>/Constant275'
|
|
|
- * Constant: '<S3>/Constant276'
|
|
|
- * Constant: '<S3>/Constant277'
|
|
|
- * Constant: '<S3>/Constant278'
|
|
|
- * Constant: '<S3>/Constant279'
|
|
|
- * Constant: '<S3>/Constant280'
|
|
|
- * Constant: '<S3>/Constant281'
|
|
|
- * Constant: '<S3>/Constant282'
|
|
|
- * Constant: '<S3>/Constant283'
|
|
|
- * Constant: '<S3>/Constant284'
|
|
|
- * Constant: '<S3>/Constant285'
|
|
|
- * Constant: '<S3>/Constant286'
|
|
|
- * Constant: '<S3>/Constant287'
|
|
|
- * Constant: '<S3>/Constant288'
|
|
|
- * Constant: '<S3>/Constant289'
|
|
|
- * Constant: '<S3>/Constant290'
|
|
|
- * Constant: '<S3>/Constant291'
|
|
|
- * Constant: '<S3>/Constant292'
|
|
|
- * Constant: '<S3>/Constant293'
|
|
|
- * Constant: '<S3>/Constant294'
|
|
|
- * Constant: '<S3>/Constant295'
|
|
|
- * Constant: '<S3>/Constant296'
|
|
|
- * Constant: '<S3>/Constant297'
|
|
|
- * Constant: '<S3>/Constant298'
|
|
|
- * Constant: '<S3>/Constant299'
|
|
|
- * Constant: '<S3>/Constant300'
|
|
|
- * Constant: '<S3>/Constant301'
|
|
|
- * Constant: '<S3>/Constant302'
|
|
|
- * Constant: '<S3>/Constant303'
|
|
|
- * Constant: '<S3>/Constant304'
|
|
|
- * Constant: '<S3>/Constant305'
|
|
|
- * Constant: '<S3>/Constant306'
|
|
|
- * Constant: '<S3>/Constant307'
|
|
|
- * Constant: '<S3>/Constant308'
|
|
|
- * Constant: '<S3>/Constant309'
|
|
|
- * Constant: '<S3>/Constant310'
|
|
|
- * Constant: '<S3>/Constant311'
|
|
|
- * Constant: '<S3>/Constant312'
|
|
|
- * Constant: '<S3>/Constant313'
|
|
|
- * Constant: '<S3>/Constant314'
|
|
|
- */
|
|
|
- rtb_TmpSignalConversionAtSFun_l[0] = 2U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[1] = 2U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[2] = 2U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[3] = 2U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[4] = 34U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[5] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[6] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[7] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[8] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[9] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[10] = 254U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[11] = 254U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[12] = 2U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[13] = 254U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[14] = 1U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[15] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[16] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[17] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[18] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[19] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[20] = 254U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[21] = 106U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[22] = 2U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[23] = 106U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[24] = 2U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[25] = 18U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[26] = 18U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[27] = 18U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[28] = 18U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[29] = 250U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[30] = 2U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[31] = 106U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[32] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[33] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[34] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[35] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[36] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[37] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[38] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[39] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[40] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[41] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[42] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[43] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[44] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[45] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[46] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[47] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[48] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[49] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[50] = 2U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[51] = 234U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[52] = 122U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[53] = 66U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[54] = 34U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[55] = 66U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[56] = 34U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[57] = 2U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[58] = 2U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[59] = 18U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[60] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[61] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[62] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[63] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[64] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[65] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[66] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[67] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[68] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[69] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[70] = 122U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[71] = 2U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[72] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[73] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[74] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[75] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[76] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[77] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[78] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[79] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[80] = 66U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[81] = 66U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[82] = 234U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[83] = 131U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[84] = 3U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[85] = 2U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[86] = 66U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[87] = 66U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[88] = 162U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[89] = 131U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[90] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[91] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[92] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[93] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[94] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[95] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[96] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[97] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[98] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[99] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[100] = 250U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[101] = 145U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[102] = 234U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[103] = 3U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[104] = 3U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[105] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[106] = 250U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[107] = 19U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[108] = 250U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[109] = 19U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[110] = 106U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[111] = 3U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[112] = 106U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[113] = 3U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[114] = 250U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[115] = 146U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[116] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[117] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[118] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[119] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[120] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[121] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[122] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[123] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[124] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[125] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[126] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[127] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[128] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[129] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[130] = 66U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[131] = 34U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[132] = 18U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[133] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[134] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[135] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[136] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[137] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[138] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[139] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[140] = 131U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[141] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[142] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[143] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[144] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[145] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[146] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[147] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[148] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[149] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[150] = 2U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[151] = 2U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[152] = 2U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[153] = 0U;
|
|
|
- rtb_TmpSignalConversionAtSFun_l[154] = 0U;
|
|
|
-
|
|
|
- /* Chart: '<S3>/FltCodeArry' incorporates:
|
|
|
- * Constant: '<S3>/Constant'
|
|
|
- * Constant: '<S3>/Constant266'
|
|
|
- * Constant: '<S3>/Constant315'
|
|
|
- * Constant: '<S3>/Constant317'
|
|
|
- * Constant: '<S3>/Constant53'
|
|
|
- * SignalConversion generated from: '<S5>/ SFunction '
|
|
|
- */
|
|
|
- avrgU = 0U;
|
|
|
- sfmd_num_fltNum = 0U;
|
|
|
- for (i_0 = 0; i_0 < 20; i_0++) {
|
|
|
- FltCodeArr[i_0] = 0U;
|
|
|
- rtb_FltLevelArr[i_0] = 0U;
|
|
|
- rtb_FltActArr[i_0] = 0U;
|
|
|
- FltCodeArrS[i_0] = 0U;
|
|
|
- }
|
|
|
-
|
|
|
- while (avrgU < 155) {
|
|
|
- if (rtb_TmpSignalConversionAtSFun_a[avrgU] && (sfmd_num_fltNum <
|
|
|
- sfmc_num_fltNumMax)) {
|
|
|
- FltCodeArr[sfmd_num_fltNum] = (uint16_T)(avrgU + 1);
|
|
|
- rtb_FltLevelArr[sfmd_num_fltNum] = rtb_TmpSignalConversionAtSFunct[avrgU];
|
|
|
- rtb_FltActArr[sfmd_num_fltNum] = rtb_TmpSignalConversionAtSFun_l[avrgU];
|
|
|
- sfmd_num_fltNum = (uint16_T)(sfmd_num_fltNum + 1);
|
|
|
- if (avrgU == 51) {
|
|
|
- for (k = 0U; k < cmnc_num_cellUNum; k++) {
|
|
|
- if (SFM_B.ErrFlg[k]) {
|
|
|
- FltCodeArr[sfmd_num_fltNum] = (uint16_T)(k + 2001);
|
|
|
- rtb_FltLevelArr[sfmd_num_fltNum] = 4U;
|
|
|
- rtb_FltActArr[sfmd_num_fltNum] = 234U;
|
|
|
- i_0 = sfmd_num_fltNum + 1;
|
|
|
- if (sfmd_num_fltNum + 1 > 65535) {
|
|
|
- i_0 = 65535;
|
|
|
+ // 71 电流传感器故障
|
|
|
+ sfmd_flg_currOpenFlt = !sfmd_flg_interComFlt && (ihd_flg_currOpenFlt || ihd_I_curr < -3250);
|
|
|
+ if (!sfmd_flg_currOpenFlt && !sfmd_flg_interComFlt)
|
|
|
+ {
|
|
|
+ sfmd_I_curr = ihd_I_curr;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ sfmd_I_curr = 0;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ //81 单体过压故障2级
|
|
|
+ sfmd_flg_cellUOverFlt2 =DiagThrSystem1(1,!sfmd_flg_interComFlt,sfmd_V_cellUMax,sfmc_V_cellUOverThrFlt2,sfmc_V_cellUOverThrRec2,15,15,&DiagThr.fltNum81,&DiagThr.recNum81,&sfmd_flg_cellUOverFlt2);
|
|
|
+ //82 单体过压故障1级
|
|
|
+ sfmd_flg_cellUOverFlt1 =DiagThrSystem1(0,!sfmd_flg_interComFlt,sfmd_V_cellUMax,sfmc_V_cellUOverThrFlt1,sfmc_V_cellUOverThrRec1,15,15,&DiagThr.fltNum82,&DiagThr.recNum82,&sfmd_flg_cellUOverFlt1) && !sfmd_flg_cellUOverFlt2;
|
|
|
+
|
|
|
+ //83 单体欠压故障2级
|
|
|
+ sfmd_flg_cellULowFlt2 =DiagThrSystem2(1,!sfmd_flg_interComFlt,sfmd_V_cellUMin,sfmc_V_cellULowThrFlt2,sfmc_V_cellULowThrRec2,15,15,&DiagThr.fltNum83,&DiagThr.recNum83,&sfmd_flg_cellULowFlt2);
|
|
|
+ //84 单体欠压故障1级
|
|
|
+ sfmd_flg_cellULowFlt1 =DiagThrSystem2(0,!sfmd_flg_interComFlt,sfmd_V_cellUMin,sfmc_V_cellULowThrFlt1,sfmc_V_cellULowThrRec1,15,15,&DiagThr.fltNum84,&DiagThr.recNum84,&sfmd_flg_cellULowFlt1) && !sfmd_flg_cellULowFlt2;
|
|
|
+
|
|
|
+ //85 压差过大2级
|
|
|
+ sfmd_flg_cellUDiffFlt2 =DiagThrSystem1(1,!sfmd_flg_interComFlt,sfmd_V_cellUMax - sfmd_V_cellUMin,sfmc_flg_cellUDiffThrFlt2,sfmc_flg_cellUDiffThrRec2,15,15,&DiagThr.fltNum85,&DiagThr.recNum85,&sfmd_flg_cellUDiffFlt2);
|
|
|
+ //86 压差过大1级
|
|
|
+ sfmd_flg_cellUDiffFlt1 =DiagThrSystem1(0,!sfmd_flg_interComFlt,sfmd_V_cellUMax - sfmd_V_cellUMin,sfmc_flg_cellUDiffThrFlt1,sfmc_flg_cellUDiffThrRec1,15,15,&DiagThr.fltNum86,&DiagThr.recNum86,&sfmd_flg_cellUDiffFlt1) && !sfmd_flg_cellUDiffFlt2;
|
|
|
+
|
|
|
+ //87 总压过压2级
|
|
|
+ sfmd_flg_battUOverFlt2 =DiagThrSystem1(1,!sfmd_flg_interComFlt,sfmd_V_battU,sfmc_V_battUOverThrFlt2,sfmc_V_battUOverThrRec2,15,15,&DiagThr.fltNum87,&DiagThr.recNum87,&sfmd_flg_battUOverFlt2);
|
|
|
+ //88 总压过压1级
|
|
|
+ sfmd_flg_battUOverFlt1 =DiagThrSystem1(0,!sfmd_flg_interComFlt,sfmd_V_battU,sfmc_V_battUOverThrFlt1,sfmc_V_battUOverThrRec1,15,15,&DiagThr.fltNum88,&DiagThr.recNum88,&sfmd_flg_battUOverFlt1) && !sfmd_flg_battUOverFlt2;
|
|
|
+
|
|
|
+ //89 总压欠压2级
|
|
|
+ sfmd_flg_battULowFlt2 =DiagThrSystem2(1,!sfmd_flg_interComFlt,sfmd_V_battU,sfmc_V_battULowThrFlt2,sfmc_V_battULowThrRec2,15,15,&DiagThr.fltNum89,&DiagThr.recNum89,&sfmd_flg_battULowFlt2);
|
|
|
+ //90 总压欠压1级
|
|
|
+ sfmd_flg_battULowFlt1 =DiagThrSystem2(0,!sfmd_flg_interComFlt,sfmd_V_battU,sfmc_V_battULowThrFlt1,sfmc_V_battULowThrRec1,15,15,&DiagThr.fltNum90,&DiagThr.recNum90,&sfmd_flg_battULowFlt1) && !sfmd_flg_battULowFlt2;
|
|
|
+
|
|
|
+ chrgFlg = ihd_st_workStat == 2;
|
|
|
+ disChrgFlg = ihd_st_workStat != 2;
|
|
|
+ //97 模组充电温度过高2级故障
|
|
|
+ sfmd_flg_chrgModTOverFlt2 =DiagThrSystem1(1,!sfmd_flg_interComFlt&&chrgFlg,sfmd_T_modTMax,sfmc_T_chrgModTOverThrFlt2,sfmc_T_chrgModTOverThrRec2,25,25,&DiagThr.fltNum97,&DiagThr.recNum97,&sfmd_flg_chrgModTOverFlt2);
|
|
|
+ //98 模组充电温度过高1级故障
|
|
|
+ sfmd_flg_chrgModTOverFlt1 =DiagThrSystem1(0,!sfmd_flg_interComFlt&&chrgFlg,sfmd_T_modTMax,sfmc_T_chrgModTOverThrFlt1,sfmc_T_chrgModTOverThrRec1,25,25,&DiagThr.fltNum98,&DiagThr.recNum98,&sfmd_flg_chrgModTOverFlt1) && !sfmd_flg_chrgModTOverFlt2;
|
|
|
+ //99 模组充电温度过低2级故障
|
|
|
+ sfmd_flg_chrgModTLowFlt2 =DiagThrSystem2(1,!sfmd_flg_interComFlt&&chrgFlg,sfmd_T_modTMin,sfmc_T_chrgModTLowThrFlt2,sfmc_T_chrgModTLowThrRec2,25,25,&DiagThr.fltNum99,&DiagThr.recNum99,&sfmd_flg_chrgModTLowFlt2);
|
|
|
+ //100 模组充电温度过低1级故障
|
|
|
+ sfmd_flg_chrgModTLowFlt1 =DiagThrSystem2(0,!sfmd_flg_interComFlt&&chrgFlg,sfmd_T_modTMin,sfmc_T_chrgModTLowThrFlt1,sfmc_T_chrgModTLowThrRec1,25,25,&DiagThr.fltNum100,&DiagThr.recNum100,&sfmd_flg_chrgModTLowFlt1) && !sfmd_flg_chrgModTLowFlt2;
|
|
|
+
|
|
|
+ //101 模组放电温度过高2级故障
|
|
|
+ sfmd_flg_disChrgModTOverFlt2 =DiagThrSystem1(1,!sfmd_flg_interComFlt&&disChrgFlg,sfmd_T_modTMax,sfmc_T_disChrgModTOverThrFlt2,sfmc_T_disChrgModTOverThrRec2,25,25,&DiagThr.fltNum101,&DiagThr.recNum101,&sfmd_flg_disChrgModTOverFlt2);
|
|
|
+ //102 模组放电温度过高1级故障
|
|
|
+ sfmd_flg_disChrgModTOverFlt1 =DiagThrSystem1(0,!sfmd_flg_interComFlt&&disChrgFlg,sfmd_T_modTMax,sfmc_T_disChrgModTOverThrFlt1,sfmc_T_disChrgModTOverThrRec1,25,25,&DiagThr.fltNum102,&DiagThr.recNum102,&sfmd_flg_disChrgModTOverFlt1) && !sfmd_flg_disChrgModTOverFlt2;
|
|
|
+ //103 模组放电温度过低2级故障
|
|
|
+ sfmd_flg_disChrgModTLowFlt2 =DiagThrSystem2(1,!sfmd_flg_interComFlt&&disChrgFlg,sfmd_T_modTMin,sfmc_T_disChrgModTLowThrFlt2,sfmc_T_disChrgModTLowThrRec2,25,25,&DiagThr.fltNum103,&DiagThr.recNum103,&sfmd_flg_disChrgModTLowFlt2);
|
|
|
+ //104 模组放电温度过低1级故障
|
|
|
+ sfmd_flg_disChrgModTLowFlt1 =DiagThrSystem2(0,!sfmd_flg_interComFlt&&disChrgFlg,sfmd_T_modTMin,sfmc_T_disChrgModTLowThrFlt1,sfmc_T_disChrgModTLowThrRec1,25,25,&DiagThr.fltNum104,&DiagThr.recNum104,&sfmd_flg_disChrgModTLowFlt1) && !sfmd_flg_disChrgModTLowFlt2;
|
|
|
+
|
|
|
+ //
|
|
|
+ //105 模组温差2级故障
|
|
|
+ sfmd_flg_modTDiffFlt2 =DiagThrSystem1(1,!sfmd_flg_interComFlt,sfmd_T_modTMax - sfmd_T_modTMin,sfmc_T_modTDiffThrFlt2,sfmc_T_modTDiffThrRec2,25,25,&DiagThr.fltNum105,&DiagThr.recNum105,&sfmd_flg_modTDiffFlt2);
|
|
|
+ //106 模组温差1级故障
|
|
|
+ sfmd_flg_modTDiffFlt1 =DiagThrSystem1(0,!sfmd_flg_interComFlt,sfmd_T_modTMax - sfmd_T_modTMin,sfmc_T_modTDiffThrFlt1,sfmc_T_modTDiffThrRec1,25,25,&DiagThr.fltNum106,&DiagThr.recNum106,&sfmd_flg_modTDiffFlt1) && !sfmd_flg_modTDiffFlt2;
|
|
|
+
|
|
|
+
|
|
|
+ //107 充电Mos温度过高2级故障
|
|
|
+ sfmd_flg_chrgMosTOverFlt2 =DiagThrSystem1(1,!sfmd_flg_interComFlt && chrgFlg && sfmd_flg_chrgMosTRationFlt && sfmd_flg_chrgMosTOpenFlt,ihd_T_mosT,sfmc_T_chrgMosTOverThrFlt2,sfmc_T_chrgMosTOverThrRec2,25,25,&DiagThr.fltNum107,&DiagThr.recNum107,&sfmd_flg_chrgMosTOverFlt2);
|
|
|
+ //108 充电Mos温度过高1级故障
|
|
|
+ sfmd_flg_chrgMosTOverFlt1 =DiagThrSystem1(0,!sfmd_flg_interComFlt && chrgFlg && sfmd_flg_chrgMosTRationFlt && sfmd_flg_chrgMosTOpenFlt,ihd_T_mosT,sfmc_T_chrgMosTOverThrFlt1,sfmc_T_chrgMosTOverThrRec1,25,25,&DiagThr.fltNum108,&DiagThr.recNum108,&sfmd_flg_chrgMosTOverFlt1) && !sfmd_flg_chrgMosTOverFlt2;
|
|
|
+ //109 放电Mos温度过高2级故障
|
|
|
+ sfmd_flg_disChrgMosTOverFlt2 =DiagThrSystem1(1,!sfmd_flg_interComFlt && disChrgFlg && sfmd_flg_chrgMosTRationFlt && sfmd_flg_chrgMosTOpenFlt,ihd_T_mosT,sfmc_T_disChrgMosTOverThrFlt2,sfmc_T_disChrgMosTOverThrRec2,25,25,&DiagThr.fltNum109,&DiagThr.recNum109,&sfmd_flg_disChrgMosTOverFlt2);
|
|
|
+ //110 放电Mos温度过高1级故障
|
|
|
+ sfmd_flg_disChrgMosTOverFlt1 =DiagThrSystem1(0,!sfmd_flg_interComFlt && disChrgFlg && sfmd_flg_chrgMosTRationFlt && sfmd_flg_chrgMosTOpenFlt,ihd_T_mosT,sfmc_T_disChrgMosTOverThrFlt1,sfmc_T_disChrgMosTOverThrRec1,25,25,&DiagThr.fltNum110,&DiagThr.recNum110,&sfmd_flg_disChrgMosTOverFlt1) && !sfmd_flg_disChrgMosTOverFlt2;
|
|
|
+
|
|
|
+
|
|
|
+ //111 快充插头温度过高2级故障
|
|
|
+ sfmd_flg_DCPlugTOverFlt2 =DiagThrSystem1(1,!sfmd_flg_interComFlt && sfmd_flg_DCPlugTRationFlt && sfmd_flg_DCPlugTOpenFlt,ihd_T_DCPlugT,sfmc_T_DCPlugTOverThrFlt2,sfmc_T_DCPlugTOverThrRec2,25,25,&DiagThr.fltNum111,&DiagThr.recNum111,&sfmd_flg_DCPlugTOverFlt2);
|
|
|
+ //112 快充插头温度过高1级故障
|
|
|
+ sfmd_flg_DCPlugTOverFlt1 =DiagThrSystem1(0,!sfmd_flg_interComFlt && sfmd_flg_DCPlugTRationFlt && sfmd_flg_DCPlugTOpenFlt,ihd_T_DCPlugT,sfmc_T_DCPlugTOverThrFlt1,sfmc_T_DCPlugTOverThrRec1,25,25,&DiagThr.fltNum112,&DiagThr.recNum112,&sfmd_flg_DCPlugTOverFlt1) && !sfmd_flg_DCPlugTOverFlt2;
|
|
|
+ //113 慢充插头温度过高2级故障
|
|
|
+ sfmd_flg_ACPlugTOverFlt2 =DiagThrSystem1(1,!sfmd_flg_interComFlt && sfmd_flg_ACPlugTRationFlt && sfmd_flg_ACPlugTOpenFlt,ihd_T_ACPlugT,sfmc_T_ACPlugTOverThrFlt2,sfmc_T_ACPlugTOverThrRec2,25,25,&DiagThr.fltNum113,&DiagThr.recNum113,&sfmd_flg_ACPlugTOverFlt2);
|
|
|
+ //114 慢充插头温度过高1级故障
|
|
|
+ sfmd_flg_ACPlugTOverFlt1 =DiagThrSystem1(0,!sfmd_flg_interComFlt && sfmd_flg_ACPlugTRationFlt && sfmd_flg_ACPlugTOpenFlt,ihd_T_ACPlugT,sfmc_T_ACPlugTOverThrFlt1,sfmc_T_ACPlugTOverThrRec1,25,25,&DiagThr.fltNum114,&DiagThr.recNum114,&sfmd_flg_ACPlugTOverFlt1) && !sfmd_flg_ACPlugTOverFlt2;
|
|
|
+
|
|
|
+ //115 加热板温度过高2级故障
|
|
|
+ sfmd_flg_heatPanTOverFlt2_1 =DiagThrSystem1(1,!sfmd_flg_interComFlt && sfmd_flg_heatPanT1RationFlt && sfmd_flg_heatPanT1OpenFlt,ihd_T_heatPanT1,sfmc_T_heatPanTOverThrFlt2,sfmc_T_heatPanTOverThrRec2,25,25,&DiagThr.fltNum115_1,&DiagThr.recNum115_1,&sfmd_flg_heatPanTOverFlt2_1);
|
|
|
+ sfmd_flg_heatPanTOverFlt2_2 =DiagThrSystem1(1,!sfmd_flg_interComFlt && sfmd_flg_heatPanT2RationFlt && sfmd_flg_heatPanT2OpenFlt,ihd_T_heatPanT2,sfmc_T_heatPanTOverThrFlt2,sfmc_T_heatPanTOverThrRec2,25,25,&DiagThr.fltNum115_2,&DiagThr.recNum115_2,&sfmd_flg_heatPanTOverFlt2_2);
|
|
|
+ sfmd_flg_heatPanTOverFlt2 = sfmd_flg_heatPanTOverFlt2_1 || sfmd_flg_heatPanTOverFlt2_2;
|
|
|
+ //116 加热板温度过高1级故障
|
|
|
+ sfmd_flg_heatPanTOverFlt1_1 =DiagThrSystem1(0,!sfmd_flg_interComFlt && sfmd_flg_heatPanT1RationFlt && sfmd_flg_heatPanT1OpenFlt,ihd_T_heatPanT1,sfmc_T_heatPanTOverThrFlt1,sfmc_T_heatPanTOverThrRec1,25,25,&DiagThr.fltNum116_1,&DiagThr.recNum116_1,&sfmd_flg_heatPanTOverFlt1_1) && !sfmd_flg_heatPanTOverFlt2;
|
|
|
+ sfmd_flg_heatPanTOverFlt1_2 =DiagThrSystem1(0,!sfmd_flg_interComFlt && sfmd_flg_heatPanT2RationFlt && sfmd_flg_heatPanT2OpenFlt,ihd_T_heatPanT2,sfmc_T_heatPanTOverThrFlt1,sfmc_T_heatPanTOverThrRec1,25,25,&DiagThr.fltNum116_2,&DiagThr.recNum116_2,&sfmd_flg_heatPanTOverFlt1_2) && !sfmd_flg_heatPanTOverFlt2;
|
|
|
+ sfmd_flg_heatPanTOverFlt1 = sfmd_flg_heatPanTOverFlt1_1 || sfmd_flg_heatPanTOverFlt1_2;
|
|
|
+
|
|
|
+ sfmd_I_currAbs = (uint16_T) (sfmd_I_curr > 0 ? sfmd_I_curr : -sfmd_I_curr);
|
|
|
+ //131 充电电流过高
|
|
|
+ sfmd_flg_chrgCurrOverFlt = DiagThrSystem1(1,!sfmd_flg_interComFlt && chrgFlg && !sfmd_flg_currOpenFlt,sfmd_I_currAbs,sfmc_I_chrgCurrOverThr,sfmc_I_chrgCurrOverThr,20,20,&DiagThr.fltNum131,&DiagThr.recNum131,&sfmd_flg_chrgCurrOverFlt);
|
|
|
+ //132 放电电流过高
|
|
|
+ sfmd_flg_disChrgCurrOverFlt = DiagThrSystem1(1,!sfmd_flg_interComFlt && disChrgFlg && !sfmd_flg_currOpenFlt,sfmd_I_currAbs,sfmc_I_disChrgCurrOverThr,sfmc_I_disChrgCurrOverThr,20,20,&DiagThr.fltNum132,&DiagThr.recNum132,&sfmd_flg_disChrgCurrOverFlt);
|
|
|
+
|
|
|
+ //151 充电过流故障不匹配
|
|
|
+ sfmd_flg_chrgCurrOverMisFlt = MisMatich( sfmd_flg_chrgCurrOverFlt, ihd_flg_chrgCurrOverFlt, &DiagMis.N151);
|
|
|
+ //152 放电过流故障不匹配
|
|
|
+ sfmd_flg_disChrgCurrOverMisFlt = MisMatich( sfmd_flg_disChrgCurrOverFlt, ihd_flg_disChrgCurrOverFlt, &DiagMis.N152);
|
|
|
+ //153 总压欠压不匹配
|
|
|
+ sfmd_flg_battULowMisFlt = MisMatich( sfmd_flg_battULowFlt2, ihd_flg_battULowFlt, &DiagMis.N153);
|
|
|
+ //154 总压过压不匹配
|
|
|
+ sfmd_flg_battUOverMisFlt = MisMatich( sfmd_flg_battUOverFlt2, ihd_flg_battUOverFlt, &DiagMis.N154);
|
|
|
+
|
|
|
+ //155 单体欠压故障不匹配
|
|
|
+ sfmd_flg_cellULowMisFlt = MisMatich( sfmd_flg_cellULowFlt2, ihd_flg_cellULowFlt, &DiagMis.N155);
|
|
|
+ //156 单体过压故障不匹配
|
|
|
+ sfmd_flg_cellUOverMisFlt = MisMatich( sfmd_flg_cellUOverFlt2, ihd_flg_cellUOverFlt, &DiagMis.N156);
|
|
|
+
|
|
|
+ //157 充电模组过温故障不匹配
|
|
|
+ sfmd_flg_chrgModTOverMisFlt = MisMatich( sfmd_flg_chrgModTOverFlt2, ihd_flg_chrgModTOverFlt, &DiagMis.N157);
|
|
|
+ //158 充电模组低温故障不匹配
|
|
|
+ sfmd_flg_chrgModTLowMisFlt = MisMatich( sfmd_flg_chrgModTLowFlt2, ihd_flg_chrgModTLowFlt, &DiagMis.N158);
|
|
|
+ //159 放电模组过温故障不匹配
|
|
|
+ sfmd_flg_disChrgModTOverMisFlt = MisMatich( sfmd_flg_disChrgModTOverFlt2, ihd_flg_disChrgModTOverFlt, &DiagMis.N159);
|
|
|
+ //160 放电模组低温故障不匹配
|
|
|
+ sfmd_flg_disChrgModTLowMisFlt = MisMatich( sfmd_flg_disChrgModTLowFlt2, ihd_flg_disChrgModTLowFlt, &DiagMis.N160);
|
|
|
+
|
|
|
+ //161 充电Mos过温故障不匹配
|
|
|
+ sfmd_flg_chrgMosTOverMisFlt = MisMatich( sfmd_flg_chrgMosTOverFlt2, ihd_flg_chrgMosTOverFlt, &DiagMis.N161);
|
|
|
+ //162 放电Mos过温故障不匹配
|
|
|
+ sfmd_flg_disChrgMosTOverMisFlt = MisMatich( sfmd_flg_disChrgMosTOverFlt2, ihd_flg_disChrgMosTOverFlt, &DiagMis.N162);
|
|
|
+
|
|
|
+
|
|
|
+ //163 soc不匹配
|
|
|
+ sfmd_flg_socMisFlt =(!sfmd_flg_interComFlt) && ( (int16_T) (socd_pct_bcuSoc -ihd_pct_soc ) > 100 || (int16_T) (socd_pct_bcuSoc -ihd_pct_soc ) <- 100);
|
|
|
+ //164 SOH 不匹配
|
|
|
+ sfmd_flg_sohMisFlt =(!sfmd_flg_interComFlt) && ( (int16_T) (sohd_pct_bcuSoh -ihd_pct_soh ) > 50 || (int16_T) (sohd_pct_bcuSoh -ihd_pct_soh ) < -50);
|
|
|
+
|
|
|
+
|
|
|
+ //179 soc跳变
|
|
|
+ sfmd_flg_socJumpFlt = (int16_T) (socd_pct_bcuSoc - socd_pct_bcuSoc_Delay) >50 ||(int16_T) (socd_pct_bcuSoc - socd_pct_bcuSoc_Delay) <-50;
|
|
|
+ socd_pct_bcuSoc_Delay = socd_pct_bcuSoc;
|
|
|
+ //180 EE失效
|
|
|
+ sfmd_flg_EEsaveFlt = ihd_flg_EESaveFlt ;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ //================================================================================================================================================================
|
|
|
+ //================================================================================================================================================================
|
|
|
+ //===========故障码 故障等级 禁止状态===================================================================
|
|
|
+ //================================================================================================================================================================
|
|
|
+ memset(FltFlg,0,sizeof(FltFlg));
|
|
|
+ memset(FltLevel,0,sizeof(FltLevel));
|
|
|
+ memset(FltAct,0,sizeof(FltAct));
|
|
|
+
|
|
|
+
|
|
|
+ FltFlg[0] = sfmd_flg_interComFlt; FltLevel[0] = 2; FltAct[0] = 2; //1 内网通讯故障
|
|
|
+ FltFlg[1] = 0; FltLevel[1] = 2; FltAct[1] = 2; //2 外部通讯故障
|
|
|
+ FltFlg[2] = 0; FltLevel[2] = 2; FltAct[2] = 2; //3 通讯模块故障
|
|
|
+ FltFlg[3] = 0; FltLevel[3] = 0; FltAct[3] = 0; //4 通讯天线故障
|
|
|
+ FltFlg[4] = sfmd_flg_authFlt; FltLevel[4] = 4; FltAct[4] = 34; //5 认证失败
|
|
|
+ FltFlg[5] = 0; FltLevel[5] = 0; FltAct[5] = 0; //6 预留#5
|
|
|
+ FltFlg[6] = 0; FltLevel[6] = 0; FltAct[6] = 0; //7 预留#4
|
|
|
+ FltFlg[7] = 0; FltLevel[7] = 0; FltAct[7] = 0; //8 预留#3
|
|
|
+ FltFlg[8] = 0; FltLevel[8] = 0; FltAct[8] = 0; //9 预留#2
|
|
|
+ FltFlg[9] = 0; FltLevel[9] = 0; FltAct[9] = 0; //10 预留#1
|
|
|
+
|
|
|
+ FltFlg[10] = sfmd_flg_HVILFlt; FltLevel[10] = 5; FltAct[10] = 254; //11 高压互锁
|
|
|
+ FltFlg[11] = 0; FltLevel[11] = 0; FltAct[11] = 0; //12 硬件短路保护
|
|
|
+ FltFlg[12] = 0; FltLevel[12] = 0; FltAct[12] = 0; //13 绝缘模块故障
|
|
|
+ FltFlg[13] = 0; FltLevel[13] = 0; FltAct[13] = 0; //4 绝缘故障
|
|
|
+ FltFlg[14] = 0; FltLevel[14] = 0; FltAct[14] = 0; //15 绝缘告警
|
|
|
+ FltFlg[15] = 0; FltLevel[15] = 0; FltAct[15] = 0; //16 预留5
|
|
|
+ FltFlg[16] = 0; FltLevel[16] = 0; FltAct[16] = 0; //17 预留4
|
|
|
+ FltFlg[17] = 0; FltLevel[17] = 0; FltAct[17] = 0; //18 预留3
|
|
|
+ FltFlg[18] = 0; FltLevel[18] = 0; FltAct[18] = 0; //19 预留2
|
|
|
+ FltFlg[19] = 0; FltLevel[19] = 0; FltAct[19] = 0; //20 预留1
|
|
|
+
|
|
|
+ FltFlg[20] = 0; FltLevel[20] = 0; FltAct[20] = 0; //21 热失控;
|
|
|
+ FltFlg[21] = sfmd_flg_chrgMosClosFlt; FltLevel[21] = 4; FltAct[21] = 106; //22充电MOS常开故障
|
|
|
+ FltFlg[22] = 0; FltLevel[22] = 2; FltAct[22] = 2; //23充电MOS常闭故障
|
|
|
+ FltFlg[23] = sfmd_flg_disChrgMosClosFlt; FltLevel[23] = 4; FltAct[23] = 106; //24 放电Mos常开故障
|
|
|
+ FltFlg[24] = 0; FltLevel[24] = 2; FltAct[24] = 2; //25 放电Mos常闭故障
|
|
|
+ FltFlg[25] = 0; FltLevel[25] = 0; FltAct[25] = 0;
|
|
|
+ FltFlg[26] = 0; FltLevel[26] = 0; FltAct[26] = 0;
|
|
|
+ FltFlg[27] = 0; FltLevel[27] = 0; FltAct[27] = 0;
|
|
|
+ FltFlg[28] = 0; FltLevel[28] = 0; FltAct[28] = 0;
|
|
|
+ FltFlg[29] = 0; FltLevel[29] = 0; FltAct[29] = 0;
|
|
|
+ FltFlg[30] = 0; FltLevel[30] = 0; FltAct[30] = 0;
|
|
|
+ FltFlg[31] = 0; FltLevel[31] = 0; FltAct[31] = 0;
|
|
|
+ FltFlg[32] = 0; FltLevel[32] = 0; FltAct[32] = 0;
|
|
|
+ FltFlg[33] = 0; FltLevel[33] = 0; FltAct[33] = 0;
|
|
|
+ FltFlg[34] = 0; FltLevel[34] = 0; FltAct[34] = 0;
|
|
|
+ FltFlg[35] = 0; FltLevel[35] = 0; FltAct[35] = 0;
|
|
|
+ FltFlg[36] = 0; FltLevel[36] = 0; FltAct[36] = 0;
|
|
|
+ FltFlg[37] = 0; FltLevel[37] = 0; FltAct[37] = 0;
|
|
|
+ FltFlg[38] = 0; FltLevel[38] = 0; FltAct[38] = 0;
|
|
|
+ FltFlg[39] = 0; FltLevel[39] = 0; FltAct[39] = 0;
|
|
|
+ FltFlg[40] = 0; FltLevel[40] = 0; FltAct[40] = 0;
|
|
|
+ FltFlg[41] = 0; FltLevel[41] = 0; FltAct[41] = 0;
|
|
|
+ FltFlg[42] = 0; FltLevel[42] = 0; FltAct[42] = 0;
|
|
|
+ FltFlg[43] = 0; FltLevel[43] = 0; FltAct[43] = 0;
|
|
|
+ FltFlg[44] = 0; FltLevel[44] = 0; FltAct[44] = 0;
|
|
|
+ FltFlg[45] = 0; FltLevel[45] = 0; FltAct[45] = 0;
|
|
|
+ FltFlg[46] = 0; FltLevel[46] = 0; FltAct[46] = 0;
|
|
|
+ FltFlg[47] = 0; FltLevel[47] = 0; FltAct[47] = 0;
|
|
|
+ FltFlg[48] = 0; FltLevel[48] = 0; FltAct[48] = 0;
|
|
|
+ FltFlg[49] = 0; FltLevel[49] = 0; FltAct[49] = 0;
|
|
|
+ FltFlg[50] = 0; FltLevel[50] = 0; FltAct[50] = 0; //51均衡失效(合一)
|
|
|
+
|
|
|
+ FltFlg[51] = sfmd_flg_volFlt; FltLevel[51] = 4; FltAct[51] = 234; //52电压开路故障(合一)
|
|
|
+ FltFlg[52] = sfmd_flg_modTOpenFlt; FltLevel[52] = 4; FltAct[52] = 122; //53温度开路故障(合一)
|
|
|
+ FltFlg[53] = sfmd_flg_chrgMosTOpenFlt; FltLevel[53] = 4; FltAct[53] = 66; //54 Mos温度开路故障
|
|
|
+ FltFlg[54] = 0; FltLevel[54] = 4; FltAct[54] = 66; //55 Mos温度开路故障
|
|
|
+ FltFlg[55] = sfmd_flg_DCPlugTOpenFlt; FltLevel[55] = 4; FltAct[55] = 66; //56 快充插头温度开路故障
|
|
|
+ FltFlg[56] = sfmd_flg_ACPlugTOpenFlt; FltLevel[56] = 4; FltAct[56] = 66; //57 慢充插头温度开路故障
|
|
|
+ FltFlg[57] = sfmd_flg_heatPanT1OpenFlt; FltLevel[57] = 2; FltAct[57] = 2; //58加热板#1温度开路故障
|
|
|
+ FltFlg[58] = sfmd_flg_heatPanT2OpenFlt; FltLevel[58] = 2; FltAct[58] = 2; //59加热板#2温度开路故障
|
|
|
+ FltFlg[59] = sfmd_flg_heatPanTOpenFlt; FltLevel[59] = 3; FltAct[59] = 18; //60加热板#1#2温度开路故障
|
|
|
+ FltFlg[60] = sfmd_flg_modTRationFlt; FltLevel[60] = 0; FltAct[60] = 0; //61模组温度合理性故障
|
|
|
+ FltFlg[61] = sfmd_flg_chrgMosTRationFlt; FltLevel[61] = 0; FltAct[61] = 0; //62mos温度合理性故障
|
|
|
+ FltFlg[62] = 0; FltLevel[62] = 0; FltAct[62] = 0; //63mos温度合理性故障
|
|
|
+ FltFlg[63] = sfmd_flg_DCPlugTRationFlt; FltLevel[63] = 0; FltAct[63] = 0; //64快充插头温度合理性故障
|
|
|
+ FltFlg[64] = sfmd_flg_ACPlugTRationFlt; FltLevel[64] = 0; FltAct[64] = 0; //65慢充插头温度合理性故障
|
|
|
+ FltFlg[65] = sfmd_flg_heatPanT1RationFlt; FltLevel[65] = 0; FltAct[65] = 0; //66加热板#1温度合理性故障
|
|
|
+ FltFlg[66] = sfmd_flg_heatPanT2RationFlt; FltLevel[66] = 0; FltAct[66] = 0; //67加热板#2温度合理性故障
|
|
|
+ FltFlg[67] = 0; FltLevel[67] = 0; FltAct[67] = 0;
|
|
|
+ FltFlg[68] = 0; FltLevel[68] = 0; FltAct[68] = 0;
|
|
|
+ FltFlg[69] = 0; FltLevel[69] = 0; FltAct[69] = 0;
|
|
|
+
|
|
|
+ FltFlg[70] = sfmd_flg_currOpenFlt; FltLevel[70] = 0; FltAct[70] = 0; //71 电流传感器故障
|
|
|
+ FltFlg[71] = 0; FltLevel[71] = 0; FltAct[71] = 0;
|
|
|
+ FltFlg[72] = 0; FltLevel[72] = 0; FltAct[72] = 0;
|
|
|
+ FltFlg[73] = 0; FltLevel[73] = 0; FltAct[73] = 0;
|
|
|
+ FltFlg[74] = 0; FltLevel[74] = 0; FltAct[74] = 0;
|
|
|
+ FltFlg[75] = 0; FltLevel[75] = 0; FltAct[75] = 0;
|
|
|
+ FltFlg[76] = 0; FltLevel[76] = 0; FltAct[76] = 0;
|
|
|
+ FltFlg[77] = 0; FltLevel[77] = 0; FltAct[77] = 0;
|
|
|
+ FltFlg[78] = 0; FltLevel[78] = 0; FltAct[78] = 0;
|
|
|
+ FltFlg[79] = 0; FltLevel[79] = 0; FltAct[79] = 0;
|
|
|
+
|
|
|
+ FltFlg[80] = sfmd_flg_cellUOverFlt2; FltLevel[80] = 4; FltAct[80] = 66; //81单体过压2级故障
|
|
|
+ FltFlg[81] = sfmd_flg_cellUOverFlt1; FltLevel[81] = 3; FltAct[81] = 66; //82单体过压1级故障
|
|
|
+ FltFlg[82] = sfmd_flg_cellULowFlt2; FltLevel[82] = 4; FltAct[82] = 66; //83单体欠压2级故障
|
|
|
+ FltFlg[83] = sfmd_flg_cellULowFlt1; FltLevel[83] = 3; FltAct[83] = 66; //84单体欠压1级故障
|
|
|
+ FltFlg[84] = sfmd_flg_cellUDiffFlt2; FltLevel[84] = 4; FltAct[84] = 66; //85压差过大2级故障
|
|
|
+ FltFlg[85] = sfmd_flg_cellUDiffFlt2; FltLevel[85] = 3; FltAct[85] = 66; //86压差过大1级故障
|
|
|
+ FltFlg[86] = sfmd_flg_battUOverFlt2; FltLevel[86] = 4; FltAct[86] = 66; //87总压过压2级故障
|
|
|
+ FltFlg[87] = sfmd_flg_battUOverFlt1; FltLevel[87] = 3; FltAct[87] = 66; //88总压过压1级故障
|
|
|
+ FltFlg[88] = sfmd_flg_battULowFlt2; FltLevel[88] = 0; FltAct[88] = 0; //89总压欠压2级故障
|
|
|
+ FltFlg[89] = sfmd_flg_battULowFlt1; FltLevel[89] = 0; FltAct[89] = 0; //90总压欠压1级故障
|
|
|
+ FltFlg[90] = 0; FltLevel[90] = 0; FltAct[90] = 0;
|
|
|
+ FltFlg[91] = 0; FltLevel[91] = 0; FltAct[91] = 0;
|
|
|
+ FltFlg[92] = 0; FltLevel[92] = 0; FltAct[92] = 0;
|
|
|
+ FltFlg[93] = 0; FltLevel[93] = 0; FltAct[93] = 0;
|
|
|
+ FltFlg[94] = 0; FltLevel[94] = 0; FltAct[94] = 0;
|
|
|
+ FltFlg[95] = 0; FltLevel[95] = 0; FltAct[95] = 0;
|
|
|
+
|
|
|
+ FltFlg[96] = sfmd_flg_chrgModTOverFlt2; FltLevel[96] = 0; FltAct[96] = 0; //97模组充电温度过高2级故障
|
|
|
+ FltFlg[97] = sfmd_flg_chrgModTOverFlt1; FltLevel[97] = 0; FltAct[97] = 0; //98模组充电温度过高1级故障
|
|
|
+ FltFlg[98] = sfmd_flg_chrgModTLowFlt2; FltLevel[98] = 0; FltAct[98] = 0; //99模组充电温度过低2级故障
|
|
|
+ FltFlg[99] = sfmd_flg_chrgModTLowFlt1; FltLevel[99] = 0; FltAct[99] = 0; //100模组充电温度过低1级故障
|
|
|
+ FltFlg[100] = sfmd_flg_disChrgModTOverFlt2; FltLevel[100] = 0; FltAct[100] = 0; //101模组充电温度过高2级故障
|
|
|
+ FltFlg[101] = sfmd_flg_disChrgModTOverFlt1; FltLevel[101] = 0; FltAct[101] = 0; //102模组充电温度过高1级故障
|
|
|
+ FltFlg[102] = sfmd_flg_disChrgModTLowFlt2; FltLevel[102] = 0; FltAct[102] = 0; //103模组充电温度过低2级故障
|
|
|
+ FltFlg[103] = sfmd_flg_disChrgModTLowFlt1; FltLevel[103] = 0; FltAct[103] = 0; //104模组充电温度过低1级故障
|
|
|
+ FltFlg[104] = sfmd_flg_modTDiffFlt2; FltLevel[104] = 0; FltAct[104] = 19; //105模组温差过大2级故障
|
|
|
+ FltFlg[105] = sfmd_flg_modTDiffFlt1; FltLevel[105] = 0; FltAct[105] = 0; //106模组温差过大1级故障
|
|
|
+ FltFlg[106] = sfmd_flg_chrgMosTOverFlt2; FltLevel[106] = 0; FltAct[106] = 0; //107 充电Mos温度过高2级故障
|
|
|
+ FltFlg[107] = sfmd_flg_chrgMosTOverFlt1; FltLevel[107] = 0; FltAct[107] = 0; //108 充电Mos温度过高1级故障
|
|
|
+ FltFlg[108] = sfmd_flg_disChrgMosTOverFlt2; FltLevel[108] = 0; FltAct[108] = 0; //109 放电Mos温度过高2级故障
|
|
|
+ FltFlg[109] = sfmd_flg_disChrgMosTOverFlt1; FltLevel[109] = 0; FltAct[109] = 0; //110 放电Mos温度过高1级故障
|
|
|
+ FltFlg[110] = sfmd_flg_DCPlugTOverFlt2; FltLevel[110] = 0; FltAct[110] = 0; //111 快充插头温度过高2级故障
|
|
|
+ FltFlg[111] = sfmd_flg_DCPlugTOverFlt1; FltLevel[111] = 0; FltAct[111] = 0; //112 快充插头温度过高1级故障
|
|
|
+ FltFlg[112] = sfmd_flg_ACPlugTOverFlt1; FltLevel[112] = 0; FltAct[112] = 0; //113 慢充插头温度过高2级故障
|
|
|
+ FltFlg[113] = sfmd_flg_ACPlugTOverFlt1; FltLevel[113] = 0; FltAct[113] = 0; //114 慢充插头温度过高1级故障
|
|
|
+ FltFlg[114] = sfmd_flg_heatPanTOverFlt2; FltLevel[114] = 0; FltAct[114] = 0; //115 加热板温度过高2级故障
|
|
|
+ FltFlg[115] = sfmd_flg_heatPanTOverFlt1; FltLevel[115] = 0; FltAct[115] = 0; //116 加热板温度过高1级故障
|
|
|
+ FltFlg[116] = 0; FltLevel[116] = 0; FltAct[116] = 0;
|
|
|
+ FltFlg[117] = 0; FltLevel[117] = 0; FltAct[117] = 0;
|
|
|
+ FltFlg[118] = 0; FltLevel[118] = 0; FltAct[118] = 0;
|
|
|
+ FltFlg[119] = 0; FltLevel[119] = 0; FltAct[119] = 0;
|
|
|
+ FltFlg[120] = 0; FltLevel[120] = 0; FltAct[120] = 0;
|
|
|
+ FltFlg[121] = 0; FltLevel[121] = 0; FltAct[121] = 0;
|
|
|
+ FltFlg[122] = 0; FltLevel[122] = 0; FltAct[122] = 0;
|
|
|
+ FltFlg[123] = 0; FltLevel[123] = 0; FltAct[123] = 0;
|
|
|
+ FltFlg[124] = 0; FltLevel[124] = 0; FltAct[124] = 0;
|
|
|
+ FltFlg[125] = 0; FltLevel[125] = 0; FltAct[125] = 0;
|
|
|
+ FltFlg[126] = 0; FltLevel[126] = 0; FltAct[126] = 0;
|
|
|
+ FltFlg[127] = 0; FltLevel[127] = 0; FltAct[127] = 0;
|
|
|
+ FltFlg[128] = 0; FltLevel[128] = 0; FltAct[128] = 0;
|
|
|
+ FltFlg[129] = 0; FltLevel[129] = 0; FltAct[129] = 0;
|
|
|
+
|
|
|
+ FltFlg[130] = sfmd_flg_chrgCurrOverFlt; FltLevel[130] = 0; FltAct[130] = 0; //131 充电电流过高
|
|
|
+ FltFlg[131] = sfmd_flg_disChrgCurrOverFlt; FltLevel[131] = 0; FltAct[131] = 0; //132 放电电流过高
|
|
|
+ FltFlg[132] = 0; FltLevel[132] = 0; FltAct[132] = 0;
|
|
|
+ FltFlg[133] = 0; FltLevel[133] = 0; FltAct[133] = 0;
|
|
|
+ FltFlg[134] = 0; FltLevel[134] = 0; FltAct[134] = 0;
|
|
|
+ FltFlg[135] = 0; FltLevel[135] = 0; FltAct[135] = 0;
|
|
|
+ FltFlg[136] = 0; FltLevel[136] = 0; FltAct[136] = 0;
|
|
|
+ FltFlg[137] = 0; FltLevel[137] = 0; FltAct[137] = 0;
|
|
|
+ FltFlg[138] = 0; FltLevel[138] = 0; FltAct[138] = 0;
|
|
|
+ FltFlg[139] = 0; FltLevel[139] = 0; FltAct[139] = 0;
|
|
|
+ FltFlg[140] = 0; FltLevel[140] = 0; FltAct[140] = 0;
|
|
|
+ FltFlg[141] = 0; FltLevel[141] = 0; FltAct[141] = 0;
|
|
|
+ FltFlg[142] = 0; FltLevel[142] = 0; FltAct[142] = 0;
|
|
|
+ FltFlg[143] = 0; FltLevel[143] = 0; FltAct[143] = 0;
|
|
|
+ FltFlg[144] = 0; FltLevel[144] = 0; FltAct[144] = 0;
|
|
|
+ FltFlg[145] = 0; FltLevel[145] = 0; FltAct[145] = 0;
|
|
|
+ FltFlg[146] = 0; FltLevel[146] = 0; FltAct[146] = 0;
|
|
|
+ FltFlg[147] = 0; FltLevel[147] = 0; FltAct[147] = 0;
|
|
|
+ FltFlg[148] = 0; FltLevel[148] = 0; FltAct[148] = 0;
|
|
|
+ FltFlg[149] = 0; FltLevel[149] = 0; FltAct[149] = 0;
|
|
|
+
|
|
|
+ FltFlg[150] = sfmd_flg_chrgCurrOverMisFlt; FltLevel[150] = 0; FltAct[150] = 0; //151 充电过流故障不匹配
|
|
|
+ FltFlg[151] = sfmd_flg_disChrgCurrOverMisFlt; FltLevel[151] = 0; FltAct[151] = 0; //152 放电过流故障不匹配
|
|
|
+ FltFlg[152] = sfmd_flg_battULowMisFlt; FltLevel[152] = 0; FltAct[152] = 0; //153 总压欠压不匹配
|
|
|
+ FltFlg[153] = sfmd_flg_battUOverMisFlt; FltLevel[153] = 0; FltAct[153] = 0; //154 总压过压不匹配
|
|
|
+ FltFlg[154] = sfmd_flg_cellULowMisFlt; FltLevel[154] = 0; FltAct[154] = 0; //155 单体欠压故障不匹配
|
|
|
+ FltFlg[155] = sfmd_flg_cellUOverMisFlt; FltLevel[155] = 0; FltAct[155] = 0; //156 单体过压故障不匹配
|
|
|
+ FltFlg[156] = sfmd_flg_chrgModTOverMisFlt; FltLevel[156] = 0; FltAct[156] = 0; //157 充电模组过温故障不匹配
|
|
|
+ FltFlg[157] = sfmd_flg_chrgModTLowMisFlt; FltLevel[157] = 0; FltAct[157] = 0; //158 充电模组低温故障不匹配
|
|
|
+ FltFlg[158] = sfmd_flg_disChrgModTOverMisFlt; FltLevel[158] = 0; FltAct[158] = 0; //159 放电模组过温故障不匹配
|
|
|
+ FltFlg[159] = sfmd_flg_disChrgModTLowMisFlt; FltLevel[159] = 0; FltAct[159] = 0; //160 放电模组低温故障不匹配
|
|
|
+ FltFlg[160] = sfmd_flg_chrgMosTOverMisFlt; FltLevel[160] = 0; FltAct[160] = 0; //161 充电Mos过温故障不匹配
|
|
|
+ FltFlg[161] = sfmd_flg_disChrgMosTOverMisFlt; FltLevel[161] = 0; FltAct[161] = 0; //162 放电Mos过温故障不匹配
|
|
|
+ FltFlg[162] = sfmd_flg_socMisFlt; FltLevel[162] = 0; FltAct[162] = 0; //163 soc不匹配
|
|
|
+ FltFlg[163] = sfmd_flg_sohMisFlt; FltLevel[163] = 0; FltAct[163] = 0; //164 SOH 不匹配
|
|
|
+ FltFlg[164] = 0; FltLevel[164] = 0; FltAct[164] = 0;
|
|
|
+ FltFlg[165] = 0; FltLevel[165] = 0; FltAct[165] = 0;
|
|
|
+ FltFlg[166] = 0; FltLevel[166] = 0; FltAct[166] = 0;
|
|
|
+ FltFlg[167] = 0; FltLevel[167] = 0; FltAct[167] = 0;
|
|
|
+ FltFlg[168] = 0; FltLevel[168] = 0; FltAct[168] = 0;
|
|
|
+ FltFlg[169] = 0; FltLevel[169] = 0; FltAct[169] = 0;
|
|
|
+ FltFlg[170] = 0; FltLevel[170] = 0; FltAct[170] = 0;
|
|
|
+ FltFlg[171] = 0; FltLevel[171] = 0; FltAct[171] = 0;
|
|
|
+ FltFlg[172] = 0; FltLevel[172] = 0; FltAct[172] = 0;
|
|
|
+ FltFlg[173] = 0; FltLevel[173] = 0; FltAct[173] = 0;
|
|
|
+ FltFlg[174] = 0; FltLevel[174] = 0; FltAct[174] = 0;
|
|
|
+ FltFlg[175] = 0; FltLevel[175] = 0; FltAct[175] = 0;
|
|
|
+ FltFlg[176] = 0; FltLevel[176] = 0; FltAct[176] = 0;
|
|
|
+ FltFlg[177] = 0; FltLevel[177] = 0; FltAct[177] = 0;
|
|
|
+ FltFlg[178] = sfmd_flg_socJumpFlt; FltLevel[178] = 0; FltAct[178] = 0; //179 soc跳变
|
|
|
+ FltFlg[179] = sfmd_flg_EEsaveFlt; FltLevel[179] = 0; FltAct[179] = 0; //180 EE失效
|
|
|
+
|
|
|
+
|
|
|
+ //==========================================================================================================================================================
|
|
|
+ memset(FltCodeArr,0,sizeof(FltCodeArr));
|
|
|
+ memset(FltLevelArr,0,sizeof(FltLevelArr));
|
|
|
+ memset(FltActArr,0,sizeof(FltActArr));
|
|
|
+ memset(sfmv_idx_fltCode,0,sizeof(sfmv_idx_fltCode));
|
|
|
+ sfmd_num_fltNum = 0;
|
|
|
+ for(i = 0;i < 200 && sfmd_num_fltNum <20;i++)
|
|
|
+ {
|
|
|
+ if (FltFlg[i])
|
|
|
+ {
|
|
|
+ FltCodeArr[sfmd_num_fltNum] = i + 1;
|
|
|
+ FltLevelArr[sfmd_num_fltNum] =FltLevel[i];
|
|
|
+ FltActArr[sfmd_num_fltNum] =FltAct[i];
|
|
|
+ sfmd_num_fltNum = sfmd_num_fltNum + 1;
|
|
|
+
|
|
|
+ if (i == 50)
|
|
|
+ {
|
|
|
+ for(j = 0; j < cmnc_num_cellUNum;j++)
|
|
|
+ {
|
|
|
+
|
|
|
+ FltCodeArr[sfmd_num_fltNum] = 1001 + j;
|
|
|
+ FltLevelArr[sfmd_num_fltNum] =FltLevel[i];
|
|
|
+ FltActArr[sfmd_num_fltNum] =FltAct[i];
|
|
|
+ sfmd_num_fltNum = sfmd_num_fltNum + 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (i == 51)
|
|
|
+ {
|
|
|
+ for(j = 0; j < cmnc_num_cellUNum;j++)
|
|
|
+ {
|
|
|
+ if(sfmv_flg_cellUOpenFlt[j])
|
|
|
+ {
|
|
|
+ FltCodeArr[sfmd_num_fltNum] = 2001 + j;
|
|
|
+ FltLevelArr[sfmd_num_fltNum] =FltLevel[i];
|
|
|
+ FltActArr[sfmd_num_fltNum] =FltAct[i];
|
|
|
+ sfmd_num_fltNum = sfmd_num_fltNum + 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (i == 52)
|
|
|
+ {
|
|
|
+ for(j = 0; j < cmnc_num_modTNum;j++)
|
|
|
+ {
|
|
|
+ if(sfmv_flg_modTOpenFlt[j])
|
|
|
+ {
|
|
|
+
|
|
|
+ FltCodeArr[sfmd_num_fltNum] = 3001 + j;
|
|
|
+ FltLevelArr[sfmd_num_fltNum] =FltLevel[i];
|
|
|
+ FltActArr[sfmd_num_fltNum] =FltAct[i];
|
|
|
+ sfmd_num_fltNum = sfmd_num_fltNum + 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (i == 60)
|
|
|
+ {
|
|
|
+ for(j = 0; j < cmnc_num_modTNum;j++)
|
|
|
+ {
|
|
|
+ if(sfmv_flg_modTRationFlt[j])
|
|
|
+ {
|
|
|
+ FltCodeArr[sfmd_num_fltNum] = 3201 + j;
|
|
|
+ FltLevelArr[sfmd_num_fltNum] =FltLevel[i];
|
|
|
+ FltActArr[sfmd_num_fltNum] =FltAct[i];
|
|
|
+ sfmd_num_fltNum = sfmd_num_fltNum + 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
- sfmd_num_fltNum = (uint16_T)i_0;
|
|
|
- }
|
|
|
}
|
|
|
- }
|
|
|
}
|
|
|
-
|
|
|
- avrgU++;
|
|
|
- }
|
|
|
-
|
|
|
- for (avrgU = 0U; avrgU < sfmd_num_fltNum; avrgU++) {
|
|
|
- i_0 = rtb_FltLevelArr[avrgU] * 10000 + FltCodeArr[avrgU];
|
|
|
- if (i_0 > 65535) {
|
|
|
- i_0 = 65535;
|
|
|
- }
|
|
|
-
|
|
|
- FltCodeArrS[avrgU] = (uint16_T)i_0;
|
|
|
- }
|
|
|
-
|
|
|
- for (avrgU = 0U; avrgU < sfmd_num_fltNum; avrgU++) {
|
|
|
- for (k = 0U; k < (sfmd_num_fltNum - avrgU) - 1; k++) {
|
|
|
- tmp_3 = FltCodeArrS[k + 1];
|
|
|
- if (FltCodeArrS[k] < tmp_3) {
|
|
|
- temp = FltCodeArrS[k];
|
|
|
- FltCodeArrS[k] = tmp_3;
|
|
|
- FltCodeArrS[k + 1] = temp;
|
|
|
- }
|
|
|
+ sfmd_st_fltAct = 0;
|
|
|
+ sfmd_st_fltLevel =0;
|
|
|
+ for(i = 0; i< sfmd_num_fltNum;i++)
|
|
|
+ {
|
|
|
+ sfmv_idx_fltCode[i] = FltLevelArr[i] * 10000 + FltCodeArr[i];
|
|
|
+
|
|
|
+ if (sfmd_st_fltLevel < FltLevelArr[i])
|
|
|
+ {
|
|
|
+ sfmd_st_fltLevel = FltLevelArr[i];
|
|
|
+ }
|
|
|
+ sfmd_st_fltAct = sfmd_st_fltAct|FltActArr[i];
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- if ((SFM_DW.Cntl > 4) || (SFM_DW.Cntl >= sfmd_num_fltNum)) {
|
|
|
- SFM_DW.Cntl = 0U;
|
|
|
- }
|
|
|
|
|
|
- avrgU = FltCodeArrS[SFM_DW.Cntl];
|
|
|
- i_0 = SFM_DW.Cntl + 1;
|
|
|
- if (SFM_DW.Cntl + 1 > 65535) {
|
|
|
- i_0 = 65535;
|
|
|
- }
|
|
|
+
|
|
|
+ ///=====================================================================
|
|
|
+ //======================================================================
|
|
|
|
|
|
- SFM_DW.Cntl = (uint16_T)i_0;
|
|
|
+
|
|
|
+ sfmd_flg_cellUDisable = sfmd_flg_interComFlt || sfmd_flg_volFlt;
|
|
|
+ sfmd_flg_currDisable = sfmd_flg_interComFlt || sfmd_flg_currOpenFlt;
|
|
|
+ sfmd_flg_modTDisable =sfmd_flg_interComFlt ||sfmd_flg_modTOpenFlt ||sfmd_flg_modTRationFlt;
|
|
|
+ FirstRun_SFM = false;
|
|
|
|
|
|
- /* S-Function (sfix_bitop): '<S3>/Bitwise Operator1' */
|
|
|
- sfmd_st_fltAct = rtb_FltActArr[0];
|
|
|
+}
|
|
|
|
|
|
- /* MinMax: '<S3>/MinMax' */
|
|
|
- sfmd_N_fltLevel = rtb_FltLevelArr[0];
|
|
|
- for (i_0 = 0; i_0 < 19; i_0++) {
|
|
|
- /* S-Function (sfix_bitop): '<S3>/Bitwise Operator1' */
|
|
|
- sfmd_st_fltAct = (uint8_T)(rtb_FltActArr[i_0 + 1] | sfmd_st_fltAct);
|
|
|
|
|
|
- /* MinMax: '<S3>/MinMax' */
|
|
|
- i = rtb_FltLevelArr[i_0 + 1];
|
|
|
- if (sfmd_N_fltLevel <= i) {
|
|
|
- sfmd_N_fltLevel = i;
|
|
|
+//===============================================================================
|
|
|
+boolean_T DiagThrSystem1(boolean_T Enable, boolean_T precondition, uint16_T Input,uint16_T fltThr,uint16_T recThr,uint16_T fltNumThr,uint16_T recNumThr,uint8_T *fltNum,uint8_T *recNum,boolean_T *fitFlg)
|
|
|
+{
|
|
|
+
|
|
|
+ if(Enable && precondition && Input > fltThr)
|
|
|
+ {
|
|
|
+ *fltNum =(*fltNum+1 > 200 ? 200 :*fltNum+1);
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- /* Math: '<S3>/Rem1' */
|
|
|
- sfmd_idx_fltCode = (uint16_T)(avrgU % 10000);
|
|
|
-
|
|
|
- /* Chart: '<S13>/Chart' incorporates:
|
|
|
- * Constant: '<S13>/Constant'
|
|
|
- */
|
|
|
- qY_0 = cmnc_num_cellUNum == 0U ? MAX_uint32_T : rtb_SumU / cmnc_num_cellUNum;
|
|
|
- if (qY_0 > 65535U) {
|
|
|
- qY_0 = 65535U;
|
|
|
- }
|
|
|
-
|
|
|
- /* SignalConversion generated from: '<S13>/Chart' incorporates:
|
|
|
- * Chart: '<S13>/Chart'
|
|
|
- */
|
|
|
- sfmd_V_cellUAvrg = (uint16_T)qY_0;
|
|
|
-
|
|
|
- /* Product: '<S23>/Product' incorporates:
|
|
|
- * Inport: '<Root>/ihd_L_urtRecv'
|
|
|
- * RelationalOperator: '<S9>/Relational Operator'
|
|
|
- * UnitDelay: '<S23>/Time_Delay'
|
|
|
- */
|
|
|
- SFM_DW.Time_Delay_DSTATE = (uint16_T)(ihd_L_urtRecv == 0 ? (int32_T)
|
|
|
- rtb_Saturation : 0);
|
|
|
- for (i_0 = 0; i_0 < 6; i_0++) {
|
|
|
- /* SignalConversion: '<S15>/Signal Conversion' incorporates:
|
|
|
- * Inport: '<Root>/ihv_T_modT'
|
|
|
- */
|
|
|
- sfmv_T_modT[i_0] = ihv_T_modT[i_0];
|
|
|
- }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ *fltNum = 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(Enable && precondition && Input < recThr)
|
|
|
+ {
|
|
|
+ *recNum =(*recNum+1 > 200 ? 200 :*recNum+1);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ *recNum = 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ if((*fltNum > fltNumThr ||(*fitFlg && *recNum < recNumThr)) &&precondition)
|
|
|
+ {
|
|
|
+ *fitFlg = true;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ *fitFlg = false;
|
|
|
+ }
|
|
|
+ return *fitFlg;
|
|
|
}
|
|
|
-
|
|
|
-/* Model initialize function */
|
|
|
-void SFM_initialize(const char_T **rt_errorStatus)
|
|
|
+//=============================================================================
|
|
|
+boolean_T DiagThrSystem2(boolean_T Enable, boolean_T precondition, uint16_T Input,uint16_T fltThr,uint16_T recThr,uint16_T fltNumThr,uint16_T recNumThr,uint8_T *fltNum,uint8_T *recNum,boolean_T *fitFlg)
|
|
|
{
|
|
|
- RT_MODEL_SFM_T *const SFM_M = &(SFM_MdlrefDW.rtm);
|
|
|
-
|
|
|
- /* Registration code */
|
|
|
-
|
|
|
- /* initialize error status */
|
|
|
- rtmSetErrorStatusPointer(SFM_M, rt_errorStatus);
|
|
|
+ if(Enable && precondition && Input < fltThr)
|
|
|
+ {
|
|
|
+ *fltNum =(*fltNum+1 > 200 ? 200 :*fltNum+1);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ *fltNum = 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(Enable && precondition && Input > recThr)
|
|
|
+ {
|
|
|
+ *recNum =(*recNum+1 > 200 ? 200 :*recNum+1);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ *recNum = 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ if((*fltNum > fltNumThr ||(*fitFlg && *recNum < recNumThr)) &&precondition)
|
|
|
+ {
|
|
|
+ *fitFlg = true;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ *fitFlg = false;
|
|
|
+ }
|
|
|
+ return *fitFlg;
|
|
|
}
|
|
|
|
|
|
-/*
|
|
|
- * File trailer for generated code.
|
|
|
- *
|
|
|
- * [EOF]
|
|
|
- */
|
|
|
+//
|
|
|
+boolean_T MisMatich(boolean_T x, boolean_T y, uint8_T *N)
|
|
|
+{
|
|
|
+ boolean_T fltFlg= false;
|
|
|
+ if(x!=y)
|
|
|
+ {
|
|
|
+ *N=(*N + 1 > 200? 200: *N+1);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ *N= 0;
|
|
|
+ }
|
|
|
+ if (*N > 20)
|
|
|
+ {
|
|
|
+ fltFlg =true;
|
|
|
+ }
|
|
|
+ return fltFlg;
|
|
|
+}
|