ConOpSys V2970  P004.07
ANVILEX control operating system
Function_Block_Ballast_Control.h
Go to the documentation of this file.
1 //------------------------------------------------------------------------------
2 //! @file Function_Block_Ballast_Control.h
3 //! @author ANVILEX GmbH
4 //! @version V1.0
5 //! @date 18.05.2016
6 //! @brief Ballast control block class header file.
7 //! @attention
8 //!
9 //! COPYRIGHT(C) 2016, 2017 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 
71 {
72 
73  //----------------------------------------------------------------------------
74  // Public metods 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  //!-------------------------------------------------------------------------
111  //! @brief Function block execution method.
112  //! @note None
113  //! \par Override
114  //! Not allowed
115  //! @attention None
116  //--------------------------------------------------------------------------
117 
118  virtual VOID Execute();
119 
120  //!-------------------------------------------------------------------------
121  //! @brief Send information about Function block over communication link protocol
122  //! @note This method sends information about Function block over specified communication link protocol.
123  //! @param [in] TProtocol_Base *object_Protocol - Pointer to the communication link protocol
124  //! @return None
125  //! \par Override
126  //! Not allowed
127  //! @attention None
128  //--------------------------------------------------------------------------
129 
130  virtual VOID Send_Information( TProtocol_Base *object_Protocol );
131 
132  //--------------------------------------------------------------------------
133  // Function block parameter connectors
134  //--------------------------------------------------------------------------
135 
136  TBlock_Input_Connector object_f32_Sample_Time; //!< Sample time given in seconds parameter
137  TBlock_Input_Connector object_f32_On_Level; //!< Ballast activation level in volt
138  TBlock_Input_Connector object_f32_Off_Level; //!< Ballast deactivation level in volt
139  TBlock_Input_Connector object_f32_R_Ballast; //!< Ballast active resistance in ohm
140  TBlock_Input_Connector object_f32_Energy_Warning_Limit; //!< Energy warning level for ballast unit, value given in Ws
141  TBlock_Input_Connector object_f32_Energy_Alarm_Limit; //!< Energy alarm level for ballast unit, value given in Ws
142  TBlock_Input_Connector object_f32_Energy_Trip_Limit; //!< Energy trip level for ballast unit, value given in Ws
143  TBlock_Input_Connector object_f32_Cooling_Time_Constant; //!< Ballast unit cooling time constant, value given in seconds
144  TBlock_Input_Connector object_f32_Test_Mode_On_Delay; //!< Test mode on delay, value given in seconds
145  TBlock_Input_Connector object_f32_Test_Mode_Off_Delay; //!< Test mode off delay, value given in seconds
146 
147  //--------------------------------------------------------------------------
148  // Function block input connectors
149  //--------------------------------------------------------------------------
150 
151  TBlock_Input_Connector object_f32_DC_Bus_Voltage; //!< d.c. bus voltage input, value givven in volts
152  TBlock_Input_Connector object_bool_Test_Mode_Enable; //!< Test mode enable input, value given in volts
153  TBlock_Input_Connector object_bool_Self_Test_Enable; //!< Enable self test : Not implementet
155 
156  //--------------------------------------------------------------------------
157  // Function block output connectors
158  //--------------------------------------------------------------------------
159 
160  TBlock_Output_Connector object_bool_Control; //!< Ballast control output
161  TBlock_Output_Connector object_bool_Overload_Warning; //!< Ballast unit overload warning
162  TBlock_Output_Connector object_bool_Overload_Alarm; //!< Ballast unit overload alarm
163  TBlock_Output_Connector object_bool_Overload_Trip; //!< Ballast unit overload trip
164  TBlock_Output_Connector object_f32_Energy; //!< Stored energy in ballast unit
165 
166  //----------------------------------------------------------------------------
167  // Protected methods and variables
168  //----------------------------------------------------------------------------
169 
170  protected:
171 
172  //----------------------------------------------------------------------------
173  // Private methods and variables
174  //----------------------------------------------------------------------------
175 
176  private:
177 
178  // FSM state definition
179  typedef enum
180  {
181 
187 
189 
191 
192  // Internal variables
194  BOOL bool_State; //!< Ballast state
195  F32 f32_Ki_Cooling; //!< Ballast cooling constant
196  F32 f32_Energy_Integral_Limit; //!< Energy integral limit
197  F32 f32_Energy_Integral; //!< Stored energy integral
198  U32 u32_Active_Cycle_Counter; //!< Ballast active control cycle counter
199  U32 u32_Test_Mode_On_Delay; //!< Test mode on time delay
200  U32 u32_Test_Mode_Off_Delay; //!< Test mode off time delay
201  U32 u32_Timeout_Counter; //!< Timeout counter
202 
203 };
204 
205 //------------------------------------------------------------------------------
206 // End Of File
207 //------------------------------------------------------------------------------
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 input connector class.
Definition: Block_Input_Connector.h:83
Function block output connector class.
Definition: Block_Output_Connector.h:59
Class declaration description.
Definition: Function_Block_Ballast_Control.h:71
U32 u32_Active_Cycle_Counter
Ballast active control cycle counter.
Definition: Function_Block_Ballast_Control.h:198
TBlock_Input_Connector object_f32_Off_Level
Ballast deactivation level in volt.
Definition: Function_Block_Ballast_Control.h:138
TBlock_Input_Connector object_f32_On_Level
Ballast activation level in volt.
Definition: Function_Block_Ballast_Control.h:137
TBlock_Output_Connector object_bool_Overload_Warning
Ballast unit overload warning.
Definition: Function_Block_Ballast_Control.h:161
virtual VOID Init()
Function block initialisation method.
Definition: Function_Block_Ballast_Control.cpp:173
TBlock_Input_Connector object_f32_DC_Bus_Voltage
d.c. bus voltage input, value givven in volts
Definition: Function_Block_Ballast_Control.h:151
TBlock_Input_Connector object_bool_Test_Mode_Enable
Test mode enable input, value given in volts.
Definition: Function_Block_Ballast_Control.h:152
TBlock_Input_Connector object_f32_Test_Mode_On_Delay
Test mode on delay, value given in seconds.
Definition: Function_Block_Ballast_Control.h:144
TBlock_Output_Connector object_bool_Overload_Alarm
Ballast unit overload alarm.
Definition: Function_Block_Ballast_Control.h:162
U32 u32_Timeout_Counter
Timeout counter.
Definition: Function_Block_Ballast_Control.h:201
F32 f32_Ki_Cooling
Ballast cooling constant.
Definition: Function_Block_Ballast_Control.h:195
virtual VOID Execute()
Function block execution method.
Definition: Function_Block_Ballast_Control.cpp:320
TGlobal_FSM_State
Definition: Function_Block_Ballast_Control.h:180
@ enum_Deactivated
Definition: Function_Block_Ballast_Control.h:182
@ enum_Activated
Definition: Function_Block_Ballast_Control.h:183
@ enum_Forced_Operation
Definition: Function_Block_Ballast_Control.h:186
@ enum_Test_Mode_Deactivated
Definition: Function_Block_Ballast_Control.h:185
@ enum_Test_Mode_Activated
Definition: Function_Block_Ballast_Control.h:184
F32 f32_Energy_Integral
Stored energy integral.
Definition: Function_Block_Ballast_Control.h:197
TBlock_Input_Connector object_f32_Sample_Time
Sample time given in seconds parameter
Definition: Function_Block_Ballast_Control.h:136
BOOL bool_State
Ballast state.
Definition: Function_Block_Ballast_Control.h:194
F32 f32_Energy_Integral_Limit
Energy integral limit.
Definition: Function_Block_Ballast_Control.h:196
TBlock_Output_Connector object_bool_Control
Ballast control output.
Definition: Function_Block_Ballast_Control.h:160
virtual ~TFunction_Block_Ballast_Control()
Class destructor method.
Definition: Function_Block_Ballast_Control.cpp:163
TGlobal_FSM_State enum_FSM_State
FSM state.
Definition: Function_Block_Ballast_Control.h:190
TBlock_Input_Connector object_f32_Energy_Warning_Limit
Energy warning level for ballast unit, value given in Ws.
Definition: Function_Block_Ballast_Control.h:140
U32 u32_Test_Mode_Off_Delay
Test mode off time delay.
Definition: Function_Block_Ballast_Control.h:200
TBlock_Input_Connector object_bool_Self_Test_Enable
Enable self test : Not implementet.
Definition: Function_Block_Ballast_Control.h:153
TBlock_Input_Connector object_f32_Cooling_Time_Constant
Ballast unit cooling time constant, value given in seconds.
Definition: Function_Block_Ballast_Control.h:143
TBlock_Input_Connector object_f32_Test_Mode_Off_Delay
Test mode off delay, value given in seconds.
Definition: Function_Block_Ballast_Control.h:145
virtual VOID Send_Information(TProtocol_Base *object_Protocol)
Send information about Function block over communication link protocol.
Definition: Function_Block_Ballast_Control.cpp:860
TBlock_Input_Connector object_f32_R_Ballast
Ballast active resistance in ohm.
Definition: Function_Block_Ballast_Control.h:139
TBlock_Output_Connector object_bool_Overload_Trip
Ballast unit overload trip.
Definition: Function_Block_Ballast_Control.h:163
F32 f32_1_Div_R
Definition: Function_Block_Ballast_Control.h:193
TBlock_Input_Connector object_f32_Energy_Alarm_Limit
Energy alarm level for ballast unit, value given in Ws.
Definition: Function_Block_Ballast_Control.h:141
TBlock_Output_Connector object_f32_Energy
Stored energy in ballast unit.
Definition: Function_Block_Ballast_Control.h:164
TFunction_Block_Ballast_Control()
Class constructor method.
Definition: Function_Block_Ballast_Control.cpp:68
U32 u32_Test_Mode_On_Delay
Test mode on time delay
Definition: Function_Block_Ballast_Control.h:199
TBlock_Input_Connector object_bool_Force_Operation
Force ballast operation.
Definition: Function_Block_Ballast_Control.h:154
TBlock_Input_Connector object_f32_Energy_Trip_Limit
Energy trip level for ballast unit, value given in Ws.
Definition: Function_Block_Ballast_Control.h:142
Function block base class for device.
Definition: Function_Block_Base.h:96
Definition: Protocol_Base.h:57