ConOpSys V2970  P004.07
ANVILEX control operating system
Function_Block_Sinus_Filter_Synchroniser.h
Go to the documentation of this file.
1 //------------------------------------------------------------------------------
2 //! @file Function_Block_Sinus_Filter_Synchroniser.h
3 //! @author ANVILEX GmbH
4 //! @version V1.0
5 //! @date 28.12.2017
6 //! @brief Sinus filter synchroniser class header file.
7 //! @attention
8 //!
9 //! COPYRIGHT(C) 2017-2021 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 // Class declarations
68 //------------------------------------------------------------------------------
69 
70 //! @brief Three phase sinus filter synchroniser class
72 {
73 
74  //----------------------------------------------------------------------------
75  // Public defines, methods and variables
76  //----------------------------------------------------------------------------
77 
78  public:
79 
80  //--------------------------------------------------------------------------
81  // Public methods
82  //--------------------------------------------------------------------------
83 
84  //!-------------------------------------------------------------------------
85  //! @brief Class constructor method.
86  //! @note None
87  //! \par Override
88  //! Not allowed
89  //! @attention Don't call this method directly.
90  //--------------------------------------------------------------------------
91 
93 
94  //!-------------------------------------------------------------------------
95  //! @brief Class destructor method.
96  //! @note None
97  //! \par Override
98  //! Not allowed
99  //! @attention Don't call this method directly.
100  //--------------------------------------------------------------------------
101 
103 
104  //!-------------------------------------------------------------------------
105  //! @brief Function block initialisation method.
106  //! @note None
107  //! \par Override
108  //! Not allowed
109  //! @attention Don't call this method directly.
110  //--------------------------------------------------------------------------
111 
112  virtual VOID Init();
113 
114  //!-------------------------------------------------------------------------
115  //! @brief Function block execution method.
116  //! @note None
117  //! \par Override
118  //! Not allowed
119  //! @attention None
120  //--------------------------------------------------------------------------
121 
122  virtual VOID Execute();
123 
124  //!-------------------------------------------------------------------------
125  //! @brief Send information about Function block over communication link protocol
126  //! @note This method sends information about Function block over specified communication link protocol.
127  //! @param [in] TProtocol_Base *object_Protocol - Pointer to the communication link protocol
128  //! @return None
129  //! \par Override
130  //! Not allowed
131  //! @attention None
132  //--------------------------------------------------------------------------
133 
134  virtual VOID Send_Information( TProtocol_Base *object_Protocol );
135 
136  //--------------------------------------------------------------------------
137  // Public variables
138  //--------------------------------------------------------------------------
139 
140  //--------------------------------------------------------------------------
141  // Function block parameter connectors
142  //--------------------------------------------------------------------------
143 
144  //! @brief Function block sample time parameter
146 
147  //! @brief Voltage ramp time parameter
149 
150  //--------------------------------------------------------------------------
151  // Function block input connectors
152  //--------------------------------------------------------------------------
153 
154  //! @brief Block enable input signal
156 
157  //! @brief Filter on grid state status input
159 
160  //! @brief Reference voltage axis D
162 
163  //! @brief Reference voltage axis Q
165 
166 // //! @brief Input voltage signal
167 // TBlock_Input_Connector object_f32_Input_Voltage_D;
168 
169 // //! @brief Input voltage signal
170 // TBlock_Input_Connector object_f32_Input_Voltage_Q;
171 
172  //--------------------------------------------------------------------------
173  // Function block output connectors
174  //--------------------------------------------------------------------------
175 
176  //! @brief Filter output voltage signal, component D
178 
179  //! @brief Filter output voltage signal, component D
181 
182  //! @brief Synchronisation voltage ramp done
184 
185  //----------------------------------------------------------------------------
186  // Protected methods and variables
187  //----------------------------------------------------------------------------
188 
189  protected:
190 
191  //----------------------------------------------------------------------------
192  // Private methods and variables
193  //----------------------------------------------------------------------------
194 
195  private:
196 
197  //--------------------------------------------------------------------------
198  // Private defines
199  //--------------------------------------------------------------------------
200 
201  // FSM state definition
202  typedef enum
203  {
204 
205  //! @brief Idle state
207 
208  //! @brief Filter voltage ramp state
210 
211  //! @brief Filter synchronisation done state
213 
214  //! @brief Filter on grid state
215  enum_On_Grid
216 
218 
219  //--------------------------------------------------------------------------
220  // Private variables
221  //--------------------------------------------------------------------------
222 
223  //! @brief FSM state
224  TFSM_State enum_FSM_State = TFSM_State::enum_Idle;
225 
226  //! @brief Ramp time in execution cycles
228 
229  //! @brief Time delay counter
231 
232  //! @brief Integrator, D component
234 
235  //! @brief Integrator, Q component
237 
238 };
239 
240 //------------------------------------------------------------------------------
241 // Export references to the objects
242 //------------------------------------------------------------------------------
243 
244 //------------------------------------------------------------------------------
245 // Export references to the functions
246 //------------------------------------------------------------------------------
247 
248 //------------------------------------------------------------------------------
249 // End of file
250 //------------------------------------------------------------------------------
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
Three phase sinus filter synchroniser class.
Definition: Function_Block_Sinus_Filter_Synchroniser.h:72
TBlock_Input_Connector object_f32_Sample_Time
Function block sample time parameter.
Definition: Function_Block_Sinus_Filter_Synchroniser.h:145
TBlock_Input_Connector object_bool_On_Grid
Filter on grid state status input.
Definition: Function_Block_Sinus_Filter_Synchroniser.h:158
F32 f32_Integrator_Q
Integrator, Q component.
Definition: Function_Block_Sinus_Filter_Synchroniser.h:236
virtual ~TFunction_Block_Sinus_Filter_Synchroniser()
Class destructor method.
Definition: Function_Block_Sinus_Filter_Synchroniser.cpp:101
virtual VOID Send_Information(TProtocol_Base *object_Protocol)
Send information about Function block over communication link protocol.
Definition: Function_Block_Sinus_Filter_Synchroniser.cpp:422
TBlock_Output_Connector object_f32_Output_Voltage_D
Filter output voltage signal, component D.
Definition: Function_Block_Sinus_Filter_Synchroniser.h:177
virtual VOID Init()
Function block initialisation method.
Definition: Function_Block_Sinus_Filter_Synchroniser.cpp:109
U32 u32_Ramp_Time
Ramp time in execution cycles.
Definition: Function_Block_Sinus_Filter_Synchroniser.h:227
TBlock_Input_Connector object_bool_Enable
Block enable input signal.
Definition: Function_Block_Sinus_Filter_Synchroniser.h:155
TBlock_Output_Connector object_bool_Done
Synchronisation voltage ramp done.
Definition: Function_Block_Sinus_Filter_Synchroniser.h:183
TFSM_State
Definition: Function_Block_Sinus_Filter_Synchroniser.h:203
@ enum_On_Grid
Filter on grid state.
Definition: Function_Block_Sinus_Filter_Synchroniser.h:215
@ enum_Synchronisation_Done
Filter synchronisation done state.
Definition: Function_Block_Sinus_Filter_Synchroniser.h:212
@ enum_Idle
Idle state.
Definition: Function_Block_Sinus_Filter_Synchroniser.h:206
@ enum_Ramp
Filter voltage ramp state.
Definition: Function_Block_Sinus_Filter_Synchroniser.h:209
TFSM_State enum_FSM_State
FSM state.
Definition: Function_Block_Sinus_Filter_Synchroniser.h:224
virtual VOID Execute()
Function block execution method.
Definition: Function_Block_Sinus_Filter_Synchroniser.cpp:121
TBlock_Output_Connector object_f32_Output_Voltage_Q
Filter output voltage signal, component D.
Definition: Function_Block_Sinus_Filter_Synchroniser.h:180
TBlock_Input_Connector object_f32_Reference_Voltage_D
Reference voltage axis D.
Definition: Function_Block_Sinus_Filter_Synchroniser.h:161
TBlock_Input_Connector object_f32_Voltage_Ramp_Time
Voltage ramp time parameter.
Definition: Function_Block_Sinus_Filter_Synchroniser.h:148
TBlock_Input_Connector object_f32_Reference_Voltage_Q
Reference voltage axis Q.
Definition: Function_Block_Sinus_Filter_Synchroniser.h:164
F32 f32_Integrator_D
Integrator, D component.
Definition: Function_Block_Sinus_Filter_Synchroniser.h:233
TFunction_Block_Sinus_Filter_Synchroniser()
Class constructor method.
Definition: Function_Block_Sinus_Filter_Synchroniser.cpp:66
U32 u32_Delay_Counter
Time delay counter.
Definition: Function_Block_Sinus_Filter_Synchroniser.h:230
Definition: Protocol_Base.h:57