ConOpSys V2970  P004.07
ANVILEX control operating system
Function_Block_PV_Input_Management_FSM.h
Go to the documentation of this file.
1 //------------------------------------------------------------------------------
2 //! @file Function_Block_PV_Input_Management_FSM.h
3 //! @author ANVILEX GmbH
4 //! @version V1.0
5 //! @date 16.05.2015
6 //! @brief PV input management 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 //------------------------------------------------------------------------------
67 //! @brief Global FSM class declaration description
68 //------------------------------------------------------------------------------
69 
71 {
72 
73  //----------------------------------------------------------------------------
74  // Public defines, methods and variables
75  //----------------------------------------------------------------------------
76 
77  public:
78 
79  //!-------------------------------------------------------------------------
80  //! @brief Class constructor method.
81  //! @note None
82  //! \par Override
83  //! Not allowed
84  //! @attention Don't call this method directly.
85  //--------------------------------------------------------------------------
86 
88 
89  //!-------------------------------------------------------------------------
90  //! @brief Class destructor method.
91  //! @note None
92  //! \par Override
93  //! Not allowed
94  //! @attention Don't call this method directly.
95  //--------------------------------------------------------------------------
96 
98 
99  //!-------------------------------------------------------------------------
100  //! @brief Function block initialisation method.
101  //! @note None
102  //! \par Override
103  //! Not allowed
104  //! @attention Don't call this method directly.
105  //--------------------------------------------------------------------------
106 
107  virtual VOID Init();
108 
109  //!-------------------------------------------------------------------------
110  //! @brief Function block execution method.
111  //! @note None
112  //! \par Override
113  //! Not allowed
114  //! @attention None
115  //--------------------------------------------------------------------------
116 
117  virtual VOID Execute();
118 
119  //!-------------------------------------------------------------------------
120  //! @brief Send information about Function block over communication link protocol
121  //! @note This method sends information about Function block over specified communication link protocol.
122  //! @param [in] TProtocol_Base *object_Protocol - Pointer to the communication link protocol
123  //! @return None
124  //! \par Override
125  //! Not allowed
126  //! @attention None
127  //--------------------------------------------------------------------------
128 
129  virtual VOID Send_Information( TProtocol_Base *object_Protocol );
130 
131  //--------------------------------------------------------------------------
132  // Function block input connectors
133  //--------------------------------------------------------------------------
134 
144 
145  //--------------------------------------------------------------------------
146  // Function block output connectors
147  //--------------------------------------------------------------------------
148 
155 
156  typedef struct
157  {
170 
172 
173  //----------------------------------------------------------------------------
174  // Protected defines, methods and variables
175  //----------------------------------------------------------------------------
176 
177  protected:
178 
179  //----------------------------------------------------------------------------
180  // Private defines, methods and variables
181  //----------------------------------------------------------------------------
182 
183  private:
184 
185  typedef enum
186  {
187 
200  enum_Error
201 
203 
209 
210  // ANVILEX: Temporary parameters
214 
215 };
216 
217 //------------------------------------------------------------------------------
218 // End of file
219 //------------------------------------------------------------------------------
int BOOL
Boolean datatype definition.
Definition: Defines.h:124
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 base class for device.
Definition: Function_Block_Base.h:96
Global FSM class declaration description.
Definition: Function_Block_PV_Input_Management_FSM.h:71
TGlobal_FSM_State enum_FSM_State
Definition: Function_Block_PV_Input_Management_FSM.h:204
F32 f32_DC_Bus_Setpoint_Voltage
Definition: Function_Block_PV_Input_Management_FSM.h:154
BOOL bool_Ready
Definition: Function_Block_PV_Input_Management_FSM.h:149
BOOL bool_PV_Input_Contactor_2_Control
Definition: Function_Block_PV_Input_Management_FSM.h:152
F32 * f32_PV_Input_3_Voltage
Definition: Function_Block_PV_Input_Management_FSM.h:142
BOOL bool_PV_Input_Connected[3]
Definition: Function_Block_PV_Input_Management_FSM.h:208
virtual ~TFunction_Block_PV_Input_Management_FSM()
Class destructor method.
Definition: Function_Block_PV_Input_Management_FSM.cpp:124
BOOL * bool_PV_Input_Contactor_1_Status
Definition: Function_Block_PV_Input_Management_FSM.h:137
TFunction_Block_PV_Input_Management_FSM_Condition * pu32_Condition
Definition: Function_Block_PV_Input_Management_FSM.h:171
U32 u32_PV_Input_Close_Timeout
Definition: Function_Block_PV_Input_Management_FSM.h:212
BOOL bool_PV_Input_Contactor_3_Control
Definition: Function_Block_PV_Input_Management_FSM.h:153
U32 u32_DC_Bus_Voltage_Regulation_Timeout
Definition: Function_Block_PV_Input_Management_FSM.h:211
virtual VOID Send_Information(TProtocol_Base *object_Protocol)
Send information about Function block over communication link protocol.
Definition: Function_Block_PV_Input_Management_FSM.cpp:1247
U32 u32_PV_Input_Index[3]
Definition: Function_Block_PV_Input_Management_FSM.h:207
F32 * f32_PV_Input_1_Voltage
Definition: Function_Block_PV_Input_Management_FSM.h:140
BOOL * bool_Reset
Definition: Function_Block_PV_Input_Management_FSM.h:136
BOOL bool_Connected
Definition: Function_Block_PV_Input_Management_FSM.h:150
F32 f32_Sorted_Input_Voltage[3]
Definition: Function_Block_PV_Input_Management_FSM.h:206
BOOL bool_PV_Input_Contactor_1_Control
Definition: Function_Block_PV_Input_Management_FSM.h:151
BOOL * bool_PV_Input_Contactor_2_Status
Definition: Function_Block_PV_Input_Management_FSM.h:138
TGlobal_FSM_State
Definition: Function_Block_PV_Input_Management_FSM.h:186
@ enum_Ready
Definition: Function_Block_PV_Input_Management_FSM.h:189
@ enum_Input_Contactor_2_Closing
Definition: Function_Block_PV_Input_Management_FSM.h:192
@ enum_Input_Contactor_2_Opening
Definition: Function_Block_PV_Input_Management_FSM.h:198
@ enum_Input_Selection_For_Opening
Definition: Function_Block_PV_Input_Management_FSM.h:196
@ enum_Input_Contactor_3_Opening
Definition: Function_Block_PV_Input_Management_FSM.h:199
@ enum_DC_Bus_Voltage_Regulation
Definition: Function_Block_PV_Input_Management_FSM.h:194
@ enum_Input_Contactor_1_Opening
Definition: Function_Block_PV_Input_Management_FSM.h:197
@ enum_Input_Contactor_3_Closing
Definition: Function_Block_PV_Input_Management_FSM.h:193
@ enum_Init
Definition: Function_Block_PV_Input_Management_FSM.h:188
@ enum_Connected
Definition: Function_Block_PV_Input_Management_FSM.h:195
@ enum_Error
Definition: Function_Block_PV_Input_Management_FSM.h:200
@ enum_Input_Selection_For_Closing
Definition: Function_Block_PV_Input_Management_FSM.h:190
@ enum_Input_Contactor_1_Closing
Definition: Function_Block_PV_Input_Management_FSM.h:191
U32 u32_Start_Timestamp
Definition: Function_Block_PV_Input_Management_FSM.h:205
virtual VOID Execute()
Function block execution method.
Definition: Function_Block_PV_Input_Management_FSM.cpp:148
F32 * f32_PV_Input_2_Voltage
Definition: Function_Block_PV_Input_Management_FSM.h:141
F32 * f32_MPPT_Setpoint_Voltage
Definition: Function_Block_PV_Input_Management_FSM.h:143
BOOL * bool_PV_Input_Contactor_3_Status
Definition: Function_Block_PV_Input_Management_FSM.h:139
virtual VOID Init()
Function block initialisation method.
Definition: Function_Block_PV_Input_Management_FSM.cpp:134
TFunction_Block_PV_Input_Management_FSM()
Class constructor method.
Definition: Function_Block_PV_Input_Management_FSM.cpp:71
U32 u32_PV_Input_Open_Timeout
Definition: Function_Block_PV_Input_Management_FSM.h:213
BOOL * bool_Enable
Definition: Function_Block_PV_Input_Management_FSM.h:135
Definition: Protocol_Base.h:57
U32 bool_PV_Input_Contactor_3_Status_Active_At_Ready_Condition
Definition: Function_Block_PV_Input_Management_FSM.h:160
U32 bool_PV_Input_Contactor_3_Open_Timeout
Definition: Function_Block_PV_Input_Management_FSM.h:166
U32 bool_PV_Input_Contactor_1_Close_Timeout
Definition: Function_Block_PV_Input_Management_FSM.h:161
U32 bool_PV_Input_Contactor_2_Close_Timeout
Definition: Function_Block_PV_Input_Management_FSM.h:162
U32 bool_PV_Input_Contactor_2_Status_Active_At_Ready_Condition
Definition: Function_Block_PV_Input_Management_FSM.h:159
U32 bool_PV_Input_Contactor_2_Open_Timeout
Definition: Function_Block_PV_Input_Management_FSM.h:165
U32 bool_FSM_Error
Definition: Function_Block_PV_Input_Management_FSM.h:167
U32 bool_PV_Input_Contactor_3_Close_Timeout
Definition: Function_Block_PV_Input_Management_FSM.h:163
U32 bool_Reserve
Definition: Function_Block_PV_Input_Management_FSM.h:168
U32 bool_PV_Input_Contactor_1_Open_Timeout
Definition: Function_Block_PV_Input_Management_FSM.h:164
U32 bool_PV_Input_Contactor_1_Status_Active_At_Ready_Condition
Definition: Function_Block_PV_Input_Management_FSM.h:158