ConOpSys V2970  P004.07
ANVILEX control operating system
Function_Block_DC_Bus_Precharge_Type_1_FSM.h
Go to the documentation of this file.
1 //------------------------------------------------------------------------------
2 //! @file Function_Block_DC_Bus_Precharge_Type_1_FSM.h
3 //! @author ANVILEX GmbH
4 //! @version V1.0
5 //! @date 16.05.2015
6 //! @brief Dc bus precharge FSM class header file.
7 //! @attention
8 //!
9 //! COPYRIGHT(C) 2015 ANVILEX GmbH
10 //!
11 //! Redistribution and use in source and binary forms, with or without
12 //! modification, are permitted provided that the following conditions are met:
13 //!
14 //! 1. Redistributions of source code must retain the above copyright notice,
15 //! this list of conditions and the following disclaimer.
16 //!
17 //! 2. Redistributions in binary form must reproduce the above copyright notice,
18 //! this list of conditions and the following disclaimer in the documentation
19 //! and/or other materials provided with the distribution.
20 //!
21 //! 3. Neither the name of ANVILEX nor the names of its contributors may be
22 //! used to endorse or promote products derived from this software without
23 //! specific prior written permission.
24 //!
25 //! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
26 //! AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27 //! IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
28 //! ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
29 //! LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
30 //! CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
31 //! SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
32 //! INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
33 //! CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
34 //! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35 //! POSSIBILITY OF SUCH DAMAGE.
36 //------------------------------------------------------------------------------
37 
38 //------------------------------------------------------------------------------
39 // Protecting header files from mutual, recursive inclusion.
40 //------------------------------------------------------------------------------
41 
42 #pragma once
43 
44 //------------------------------------------------------------------------------
45 // Include standard libraries header files
46 //------------------------------------------------------------------------------
47 
48 //------------------------------------------------------------------------------
49 // Include thrid party header files
50 //------------------------------------------------------------------------------
51 
52 //------------------------------------------------------------------------------
53 // Include ConOpSys header files
54 //------------------------------------------------------------------------------
55 
56 #include "Function_Block_Base.h"
57 
58 //------------------------------------------------------------------------------
59 // Include ConOpSys application header files
60 //------------------------------------------------------------------------------
61 
62 //------------------------------------------------------------------------------
63 // Macros
64 //------------------------------------------------------------------------------
65 
66 //! @brief DC bus precharge FSM class declaration description
68 {
69 
70  //----------------------------------------------------------------------------
71  // Public defines, methods and variables
72  //----------------------------------------------------------------------------
73 
74  public:
75 
76  //!-------------------------------------------------------------------------
77  //! @brief Class constructor method.
78  //! @note None
79  //! \par Override
80  //! Not allowed
81  //! @attention Don't call this method directly.
82  //--------------------------------------------------------------------------
83 
85 
86  //!-------------------------------------------------------------------------
87  //! @brief Class destructor method.
88  //! @note None
89  //! \par Override
90  //! Not allowed
91  //! @attention Don't call this method directly.
92  //--------------------------------------------------------------------------
93 
95 
96  //!-------------------------------------------------------------------------
97  //! @brief Function block initialisation method.
98  //! @note None
99  //! \par Override
100  //! Not allowed
101  //! @attention Don't call this method directly.
102  //--------------------------------------------------------------------------
103 
104  virtual VOID Init();
105 
106  //!-------------------------------------------------------------------------
107  //! @brief Function block execution method.
108  //! @note None
109  //! \par Override
110  //! Not allowed
111  //! @attention None
112  //--------------------------------------------------------------------------
113 
114  virtual VOID Execute();
115 
116  //!-------------------------------------------------------------------------
117  //! @brief Send information about Function block over communication link protocol
118  //! @note This method sends information about Function block over specified communication link protocol.
119  //! @param [in] TProtocol_Base *object_Protocol - Pointer to the communication link protocol
120  //! @return None
121  //! \par Override
122  //! Not allowed
123  //! @attention None
124  //--------------------------------------------------------------------------
125 
126  virtual VOID Send_Information( TProtocol_Base *object_Protocol );
127 
128  //--------------------------------------------------------------------------
129  // Function block parameter connectors
130  //--------------------------------------------------------------------------
131 
137 
138  //--------------------------------------------------------------------------
139  // Function block input connectors
140  //--------------------------------------------------------------------------
141 
146 
149 
150  //--------------------------------------------------------------------------
151  // Function block output connectors
152  //--------------------------------------------------------------------------
153 
155  TBlock_Output_Connector object_bool_Ready; //!< FSM ready for d.c. bus precharge
156  TBlock_Output_Connector object_bool_Done; //!< FSM done d.c. bus precharge
158 
159  //----------------------------------------------------------------------------
160  // Protected methods and variables
161  //----------------------------------------------------------------------------
162 
163  protected:
164 
165  //----------------------------------------------------------------------------
166  // Private methods and variables
167  //----------------------------------------------------------------------------
168 
169  private:
170 
171  typedef enum
172  {
173 
180  enum_Error
181 
182  } TGlobal_FSM_State; //!< FSM states
183 
184  TGlobal_FSM_State enum_FSM_State; //!< FSM state variable
185 
186  U32 u32_Precharge_Contactor_Close_Timeout; //!< Precharge contactor close timeout
187  U32 u32_Precharge_Contactor_Open_Timeout; //!< Precharge contactor open timeout
188  U32 u32_DC_Bus_Charge_Timeout; //!< d.c. bus chrage timeout
189 
190  U32 u32_Timeout_Counter; //!< Timeout counter
191 
195 
198 
199 };
200 
201 //------------------------------------------------------------------------------
202 // End Of File
203 //------------------------------------------------------------------------------
void VOID
Datatypesess datatype definition.
Definition: Defines.h:105
unsigned long U32
Binary 32-Bit unsigned integer datatype defenition.
Definition: Defines.h:203
float F32
IEEE-754 32-Bit single presession floating point numbers datatype defenition.
Definition: Defines.h:324
Function block base class header file.
Function block input connector class.
Definition: Block_Input_Connector.h:83
Function block output connector class.
Definition: Block_Output_Connector.h:59
Function block base class for device.
Definition: Function_Block_Base.h:96
DC bus precharge FSM class declaration description.
Definition: Function_Block_DC_Bus_Precharge_Type_1_FSM.h:68
U32 u32_DC_Bus_Charge_Time
Definition: Function_Block_DC_Bus_Precharge_Type_1_FSM.h:194
U32 u32_Precharge_Contactor_Close_Time
Definition: Function_Block_DC_Bus_Precharge_Type_1_FSM.h:192
virtual VOID Execute()
Function block execution method.
Definition: Function_Block_DC_Bus_Precharge_Type_1_FSM.cpp:180
U32 u32_DC_Bus_Charge_Timeout
d.c. bus chrage timeout
Definition: Function_Block_DC_Bus_Precharge_Type_1_FSM.h:188
TBlock_Output_Connector object_bool_Precharge_Contactor_Control
Precharge contactor control.
Definition: Function_Block_DC_Bus_Precharge_Type_1_FSM.h:154
U32 u32_Precharge_Contactor_Open_Time
Definition: Function_Block_DC_Bus_Precharge_Type_1_FSM.h:193
virtual ~TFunction_Block_DC_Bus_Precharge_Type_1_FSM()
Class destructor method.
Definition: Function_Block_DC_Bus_Precharge_Type_1_FSM.cpp:155
TBlock_Input_Connector object_f32_DC_Bus_Charge_Timeout
Definition: Function_Block_DC_Bus_Precharge_Type_1_FSM.h:134
TBlock_Input_Connector object_f32_Precharge_Contactor_Open_Timeout
Definition: Function_Block_DC_Bus_Precharge_Type_1_FSM.h:133
TBlock_Input_Connector object_f32_DC_Bus_Voltage
Definition: Function_Block_DC_Bus_Precharge_Type_1_FSM.h:147
TBlock_Input_Connector object_bool_Enable
Definition: Function_Block_DC_Bus_Precharge_Type_1_FSM.h:142
TBlock_Input_Connector object_f32_AC_Voltage_Magnitude
Definition: Function_Block_DC_Bus_Precharge_Type_1_FSM.h:148
TBlock_Input_Connector object_f32_Precharge_Contactor_Close_Timeout
Definition: Function_Block_DC_Bus_Precharge_Type_1_FSM.h:132
TBlock_Input_Connector object_bool_Precharge_Contactor_Status
Definition: Function_Block_DC_Bus_Precharge_Type_1_FSM.h:145
TBlock_Input_Connector object_bool_Precharge_Circuit_Breaker_Status
Definition: Function_Block_DC_Bus_Precharge_Type_1_FSM.h:144
virtual VOID Init()
Function block initialisation method.
Definition: Function_Block_DC_Bus_Precharge_Type_1_FSM.cpp:163
TGlobal_FSM_State
Definition: Function_Block_DC_Bus_Precharge_Type_1_FSM.h:172
@ enum_Init
Definition: Function_Block_DC_Bus_Precharge_Type_1_FSM.h:174
@ enum_Contactor_Closing
Definition: Function_Block_DC_Bus_Precharge_Type_1_FSM.h:176
@ enum_Charging
Definition: Function_Block_DC_Bus_Precharge_Type_1_FSM.h:177
@ enum_Error
Definition: Function_Block_DC_Bus_Precharge_Type_1_FSM.h:180
@ enum_Contactor_Opening
Definition: Function_Block_DC_Bus_Precharge_Type_1_FSM.h:178
@ enum_Ready
Definition: Function_Block_DC_Bus_Precharge_Type_1_FSM.h:175
@ enum_Charged
Definition: Function_Block_DC_Bus_Precharge_Type_1_FSM.h:179
F32 f32_DC_Bus_Voltage
Definition: Function_Block_DC_Bus_Precharge_Type_1_FSM.h:196
TBlock_Output_Connector object_bool_Ready
FSM ready for d.c. bus precharge.
Definition: Function_Block_DC_Bus_Precharge_Type_1_FSM.h:155
U32 u32_Precharge_Contactor_Close_Timeout
Precharge contactor close timeout.
Definition: Function_Block_DC_Bus_Precharge_Type_1_FSM.h:186
TBlock_Output_Connector object_bool_Done
FSM done d.c. bus precharge.
Definition: Function_Block_DC_Bus_Precharge_Type_1_FSM.h:156
TBlock_Output_Connector object_bool_Error
FSM error state.
Definition: Function_Block_DC_Bus_Precharge_Type_1_FSM.h:157
TBlock_Input_Connector object_bool_Reset
Definition: Function_Block_DC_Bus_Precharge_Type_1_FSM.h:143
TBlock_Input_Connector object_f32_DC_Bus_Relative_Precharge_Level
Definition: Function_Block_DC_Bus_Precharge_Type_1_FSM.h:135
F32 f32_AC_Voltage_Magnitude
Definition: Function_Block_DC_Bus_Precharge_Type_1_FSM.h:197
U32 u32_Precharge_Contactor_Open_Timeout
Precharge contactor open timeout.
Definition: Function_Block_DC_Bus_Precharge_Type_1_FSM.h:187
TFunction_Block_DC_Bus_Precharge_Type_1_FSM()
Class constructor method.
Definition: Function_Block_DC_Bus_Precharge_Type_1_FSM.cpp:69
TBlock_Input_Connector object_f32_Sample_Time
Definition: Function_Block_DC_Bus_Precharge_Type_1_FSM.h:136
U32 u32_Timeout_Counter
Timeout counter.
Definition: Function_Block_DC_Bus_Precharge_Type_1_FSM.h:190
virtual VOID Send_Information(TProtocol_Base *object_Protocol)
Send information about Function block over communication link protocol.
Definition: Function_Block_DC_Bus_Precharge_Type_1_FSM.cpp:1046
TGlobal_FSM_State enum_FSM_State
FSM state variable.
Definition: Function_Block_DC_Bus_Precharge_Type_1_FSM.h:184
Definition: Protocol_Base.h:57