ConOpSys V2970  P004.07
ANVILEX control operating system
Function_Block_PI_Regulator_F32_T8.h
Go to the documentation of this file.
1 //------------------------------------------------------------------------------
2 //! @file Function_Block_PI_Regulator_F32_T8.h
3 //! @author ANVILEX GmbH
4 //! @version V1.0
5 //! @date 08.03.2022
6 //! @brief PI regulator class header file.
7 //! @attention
8 //!
9 //! COPYRIGHT(C) 2015-2022 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 Class declaration description
68 //------------------------------------------------------------------------------
69 
70 //------------------------------------------------------------------------------
71 //! @brief Class TFunction_Block_PI_Regulator_F32_T8 definition.
72 //------------------------------------------------------------------------------
73 // Same functionality as TFunction_Block_PI_Regulator_F32_T1 but with additional
74 // feedforward input.
75 //------------------------------------------------------------------------------
77 {
78 
79  //----------------------------------------------------------------------------
80  // Public defines, methods and variables
81  //----------------------------------------------------------------------------
82 
83  public:
84 
85  //!-------------------------------------------------------------------------
86  //! @brief Class constructor method.
87  //! @note None
88  //! \par Override
89  //! Not allowed
90  //! @attention Don't call this method directly.
91  //--------------------------------------------------------------------------
92 
94 
95  //!-------------------------------------------------------------------------
96  //! @brief Class destructor method.
97  //! @note None
98  //! \par Override
99  //! Not allowed
100  //! @attention Don't call this method directly.
101  //--------------------------------------------------------------------------
102 
104 
105  //!-------------------------------------------------------------------------
106  //! @brief Function block initialisation method.
107  //! @note None
108  //! \par Override
109  //! Not allowed
110  //! @attention Don't call this method directly.
111  //--------------------------------------------------------------------------
112 
113  VOID Init();
114 
115  //!-------------------------------------------------------------------------
116  //! @brief Function block cyclic execution method.
117  //! @note None
118  //! \par Override
119  //! Not allowed
120  //! @attention Don't call this method directly.
121  //--------------------------------------------------------------------------
122 
123  virtual VOID Execute();
124 
125  //!-------------------------------------------------------------------------
126  //! @brief Send information about Function block over communication link protocol
127  //! @note This method sends information about Function block over specified communication link protocol.
128  //! @param [in] *object_Protocol - Pointer to the communication link protocol
129  //! @return None
130  //! \par Override
131  //! Not allowed
132  //! @attention None
133  //--------------------------------------------------------------------------
134 
135  virtual VOID Send_Information( TProtocol_Base *object_Protocol );
136 
137  //--------------------------------------------------------------------------
138  // Function block parameter connectors
139  //--------------------------------------------------------------------------
140 
141  //! @brief Propotrional gain parameter
143 
144  //! @brief Integral gain parameter
146 
147  //! @brief Feedforward gain parameter
149 
150  //! @brief Integrator positive limit parameter
152 
153  //! @brief Integrator negative limit parameter
155 
156  //! @brief Output positive limit parameter
158 
159  //! @brief Output negative limit parameter
161 
162  //! @brief Sample time parameter
164 
165  //--------------------------------------------------------------------------
166  // Function block input connectors
167  //--------------------------------------------------------------------------
168 
169  //! @brief Setpoint signal input
171 
172  //! @brief Feedback signal input
174 
175  //! @brief PI regulator block feedforward input
177 
178  //! @brief Enable signal input
180 
181  //! @brief Reset signal input
183 
184  //--------------------------------------------------------------------------
185  // Function block output connectors
186  //--------------------------------------------------------------------------
187 
188  //! @brief Error signal output
190 
191  //! @brief PI regulator block output
193 
194  //----------------------------------------------------------------------------
195  // Protected defines, methods and variables
196  //----------------------------------------------------------------------------
197 
198  protected:
199 
200  //----------------------------------------------------------------------------
201  // Private defines, methods and variables
202  //----------------------------------------------------------------------------
203 
204  private:
205 
206  //! @brief Proportional part
208 
209  //! @brief Integral part
211 
212  //! @brief Feedforward part
214 
215 };
216 
217 //------------------------------------------------------------------------------
218 // End of file
219 //------------------------------------------------------------------------------
void VOID
Datatypesess datatype definition.
Definition: Defines.h:105
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
Class declaration description.
Definition: Function_Block_PI_Regulator_F32_T8.h:77
TBlock_Input_Connector object_f32_Integrator_Positive_Limit
Integrator positive limit parameter.
Definition: Function_Block_PI_Regulator_F32_T8.h:151
virtual VOID Send_Information(TProtocol_Base *object_Protocol)
Send information about Function block over communication link protocol.
Definition: Function_Block_PI_Regulator_F32_T8.cpp:312
TBlock_Output_Connector object_f32_Error
Error signal output.
Definition: Function_Block_PI_Regulator_F32_T8.h:189
TFunction_Block_PI_Regulator_F32_T8()
Class constructor method.
Definition: Function_Block_PI_Regulator_F32_T8.cpp:66
virtual ~TFunction_Block_PI_Regulator_F32_T8()
Class destructor method.
Definition: Function_Block_PI_Regulator_F32_T8.cpp:105
TBlock_Input_Connector object_f32_Output_Negative_Limit
Output negative limit parameter.
Definition: Function_Block_PI_Regulator_F32_T8.h:160
VOID Init()
Function block initialisation method.
Definition: Function_Block_PI_Regulator_F32_T8.cpp:113
TBlock_Input_Connector object_f32_Ki
Integral gain parameter.
Definition: Function_Block_PI_Regulator_F32_T8.h:145
TBlock_Input_Connector object_f32_Setpoint
Setpoint signal input.
Definition: Function_Block_PI_Regulator_F32_T8.h:170
TBlock_Input_Connector object_f32_Feedforward
PI regulator block feedforward input.
Definition: Function_Block_PI_Regulator_F32_T8.h:176
TBlock_Input_Connector object_bool_Enable
Enable signal input.
Definition: Function_Block_PI_Regulator_F32_T8.h:179
virtual VOID Execute()
Function block cyclic execution method.
Definition: Function_Block_PI_Regulator_F32_T8.cpp:147
TBlock_Input_Connector object_f32_Feedback
Feedback signal input.
Definition: Function_Block_PI_Regulator_F32_T8.h:173
TBlock_Input_Connector object_f32_Output_Positive_Limit
Output positive limit parameter.
Definition: Function_Block_PI_Regulator_F32_T8.h:157
F32 f32_Feedforward
Feedforward part.
Definition: Function_Block_PI_Regulator_F32_T8.h:213
F32 f32_Integral
Integral part.
Definition: Function_Block_PI_Regulator_F32_T8.h:210
TBlock_Input_Connector object_f32_Kf
Feedforward gain parameter.
Definition: Function_Block_PI_Regulator_F32_T8.h:148
TBlock_Input_Connector object_f32_Sample_Time
Sample time parameter.
Definition: Function_Block_PI_Regulator_F32_T8.h:163
F32 f32_Proportional
Proportional part.
Definition: Function_Block_PI_Regulator_F32_T8.h:207
TBlock_Input_Connector object_f32_Integrator_Negative_Limit
Integrator negative limit parameter.
Definition: Function_Block_PI_Regulator_F32_T8.h:154
TBlock_Input_Connector object_f32_Kp
Propotrional gain parameter.
Definition: Function_Block_PI_Regulator_F32_T8.h:142
TBlock_Input_Connector object_bool_Reset
Reset signal input.
Definition: Function_Block_PI_Regulator_F32_T8.h:182
TBlock_Output_Connector object_f32_Output
PI regulator block output.
Definition: Function_Block_PI_Regulator_F32_T8.h:192
Definition: Protocol_Base.h:57