ConOpSys V2970  P004.07
ANVILEX control operating system
Function_Block_ABB_SACE_FSM.h
Go to the documentation of this file.
1 //------------------------------------------------------------------------------
2 //! @file Function_Block_ABB_SACE_FSM.h
3 //! @author ANVILEX GmbH
4 //! @version V1.0
5 //! @date 16.05.2015
6 //! @brief ABB SACE circuit braker FSM class header file.
7 //! @attention
8 //!
9 //! COPYRIGHT(C) 2015-2019 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 // TFunction_Block_ABB_SACE_FSM_T1
39 //
40 //------------------------------------------------------------------------------
41 
42 //------------------------------------------------------------------------------
43 // Protecting header files from mutual, recursive inclusion.
44 //------------------------------------------------------------------------------
45 
46 #pragma once
47 
48 //------------------------------------------------------------------------------
49 // Include standard libraries header files
50 //------------------------------------------------------------------------------
51 
52 //------------------------------------------------------------------------------
53 // Include thrid party header files
54 //------------------------------------------------------------------------------
55 
56 //------------------------------------------------------------------------------
57 // Include ConOpSys header files
58 //------------------------------------------------------------------------------
59 
60 #include "Function_Block_Base.h"
61 
62 //------------------------------------------------------------------------------
63 // Include ConOpSys application header files
64 //------------------------------------------------------------------------------
65 
66 //------------------------------------------------------------------------------
67 // Macros
68 //------------------------------------------------------------------------------
69 
70 //------------------------------------------------------------------------------
71 //! @brief Global FSM class declaration description
72 //------------------------------------------------------------------------------
73 
75 {
76 
77  //----------------------------------------------------------------------------
78  // Public defines, methods and variables
79  //----------------------------------------------------------------------------
80 
81  public:
82 
83  //!-------------------------------------------------------------------------
84  //! @brief Class constructor method.
85  //! @note None
86  //! \par Override
87  //! Not allowed
88  //! @attention Don't call this method directly.
89  //--------------------------------------------------------------------------
90 
92 
93  //!-------------------------------------------------------------------------
94  //! @brief Class destructor method.
95  //! @note None
96  //! \par Override
97  //! Not allowed
98  //! @attention Don't call this method directly.
99  //--------------------------------------------------------------------------
100 
102 
103  //!-------------------------------------------------------------------------
104  //! @brief Function block initialisation method.
105  //! @note None
106  //! \par Override
107  //! Not allowed
108  //! @attention Don't call this method directly.
109  //--------------------------------------------------------------------------
110 
111  virtual VOID Init();
112 
113  //!-------------------------------------------------------------------------
114  //! @brief Function block execution method.
115  //! @note None
116  //! \par Override
117  //! Not allowed
118  //! @attention None
119  //--------------------------------------------------------------------------
120 
121  virtual VOID Execute();
122 
123  //!-------------------------------------------------------------------------
124  //! @brief Send information about Function block over communication link protocol
125  //! @note This method sends information about Function block over specified communication link protocol.
126  //! @param [in] TProtocol_Base *object_Protocol - Pointer to the communication link protocol
127  //! @return None
128  //! \par Override
129  //! Not allowed
130  //! @attention None
131  //--------------------------------------------------------------------------
132 
133  virtual VOID Send_Information( TProtocol_Base *object_Protocol );
134 
135  //--------------------------------------------------------------------------
136  // Function block parameters
137  //--------------------------------------------------------------------------
138 
139  //!< Circuit breaker spring charge timeout in seconds
141 
142  //!< Circuit breaker spring charge end timeout in seconds
144 
145  //!< Enable timeout in seconds
147 
148  //!< Circuit breaker close timeout in seconds
150 
151  //!< Circuit breaker release timeout in seconds
153 
154  //!< Circuit breaker trip timeout in seconds
156 
157  //!< Circuit breaker reset timeout in seconds
159 
160  //!< Function block sample time in seconds.
162 
163  //--------------------------------------------------------------------------
164  // Function block inputs
165  //--------------------------------------------------------------------------
166 
167  //!< Enable circuit breaker spring charge input
169 
170  //!< Curcuit breaker close/release control input
172 
173  //!< Circuit breaker reset input
175 
176  //--------------------------------------------------------------------------
177  // Function block hardware interface to circuit breaker inputs
178  //--------------------------------------------------------------------------
179 
180  //!< Circuit breaker racked in position feedback status input
182 
183  //!< Circuit breaker racked out position feedback status input
185 
186  //!< Circuit breaker isolated position feedback status input
188 
189  //!< Circuit breaker overcurrent trip status input
191 
192  //!< Circuit breaker ready to close status input
194 
195  //!< Circuit breaker spring charged status input
197 
198  //!< Circuit breaker auxiliary contact status input
200 
201  //--------------------------------------------------------------------------
202  // Function block outputs
203  //--------------------------------------------------------------------------
204 
205  //!< Circuit breaker FSM block ready status output
207 
208  //!< Circuit breaker spring charged status output
210 
211  //!< Circuit breaker closed status output
213 
214  //!< Circuit breaker released status output
216 
217  //!< Circuit breaker FSM block error status output
219 
220  //--------------------------------------------------------------------------
221  // Function block hardware interface to circuit breaker outputs
222  //--------------------------------------------------------------------------
223 
224  //!< Circuit breaker reset request output
226 
227  //!< Circuit breaker close request output
229 
230  //! Circuit breaker release request output
232 
233  //!< Circuit breaker spring charge enable output
235 
236  //! Circuit breaker enable output
238 
239  //----------------------------------------------------------------------------
240  // Protected defines, methods and variables
241  //----------------------------------------------------------------------------
242 
243  protected:
244 
245  //----------------------------------------------------------------------------
246  // Protected defines, methods and variables
247  //----------------------------------------------------------------------------
248 
249  private:
250 
251  // FSM states
252  typedef enum
253  {
254 
267 
269 
270  //!< FSM state variable
272 
273  //!< Spring charge timeout in execution cycles
275 
276  //!< Spring charge end delay in execution cycles
278 
279  //!< Enable timeout in execution cycles
281 
282  //!< Close timeout in execution cycles
284 
285  //! Release timeout in execution cycles
287 
288  //!< Emergency trip timeout in execution cycles
290 
291  //!< Reset timeout in execution cycles
293 
294  //!< Internal action start timestamp
296 
297  //!< Circuit breaker spring charge time
299 
300  //!< Circuit breaker close time
302 
303  //!< Circuit breaker release time
305 
306  //!< Internal delay counter
308 
309 };
310 
311 //------------------------------------------------------------------------------
312 // End of file
313 //------------------------------------------------------------------------------
void VOID
Datatypesess datatype definition.
Definition: Defines.h:105
unsigned long U32
Binary 32-Bit unsigned integer datatype defenition.
Definition: Defines.h:203
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
Global FSM class declaration description.
Definition: Function_Block_ABB_SACE_FSM.h:75
U32 u32_Delay_Counter
Internal delay counter.
Definition: Function_Block_ABB_SACE_FSM.h:307
TBlock_Input_Connector object_bool_Charge
< Enable circuit breaker spring charge input
Definition: Function_Block_ABB_SACE_FSM.h:168
TBlock_Input_Connector object_bool_Reset
Circuit breaker reset input.
Definition: Function_Block_ABB_SACE_FSM.h:174
TGlobal_FSM_State enum_FSM_State
Spring charge timeout in execution cycles.
Definition: Function_Block_ABB_SACE_FSM.h:271
TBlock_Input_Connector object_f32_Spring_Charge_End_Delay
Enable timeout in seconds.
Definition: Function_Block_ABB_SACE_FSM.h:143
TFunction_Block_ABB_SACE_FSM_T1()
Class constructor method.
Definition: Function_Block_ABB_SACE_FSM.cpp:73
TBlock_Input_Connector object_f32_Sample_Time
Function block sample time in seconds.
Definition: Function_Block_ABB_SACE_FSM.h:161
TBlock_Input_Connector object_f32_Release_Timeout
Circuit breaker trip timeout in seconds.
Definition: Function_Block_ABB_SACE_FSM.h:152
U32 u32_Start_Timestamp
Circuit breaker spring charge time.
Definition: Function_Block_ABB_SACE_FSM.h:295
TBlock_Input_Connector object_f32_Close_Timeout
Circuit breaker release timeout in seconds.
Definition: Function_Block_ABB_SACE_FSM.h:149
TBlock_Input_Connector object_f32_Reset_Timeout
Function block sample time in seconds.
Definition: Function_Block_ABB_SACE_FSM.h:158
virtual VOID Init()
Function block initialisation method.
Definition: Function_Block_ABB_SACE_FSM.cpp:203
U32 u32_Emergency_Trip_Timeout
Reset timeout in execution cycles.
Definition: Function_Block_ABB_SACE_FSM.h:289
TBlock_Input_Connector object_f32_Enable_Timeout
Circuit breaker close timeout in seconds.
Definition: Function_Block_ABB_SACE_FSM.h:146
TBlock_Output_Connector object_bool_Closed
Circuit breaker released status output.
Definition: Function_Block_ABB_SACE_FSM.h:212
TBlock_Input_Connector object_bool_Enable
Circuit breaker reset input.
Definition: Function_Block_ABB_SACE_FSM.h:171
TBlock_Input_Connector object_f32_Emergency_Trip_Timeout
Circuit breaker reset timeout in seconds.
Definition: Function_Block_ABB_SACE_FSM.h:155
TBlock_Output_Connector object_bool_CB_Enable
Circuit breaker enable output.
Definition: Function_Block_ABB_SACE_FSM.h:237
TBlock_Input_Connector object_bool_CB_Racked_In_Position
< Circuit breaker racked in position feedback status input
Definition: Function_Block_ABB_SACE_FSM.h:181
TBlock_Output_Connector object_bool_Error
Circuit breaker FSM block error status output.
Definition: Function_Block_ABB_SACE_FSM.h:218
U32 u32_Circuit_Breaker_Spring_Charge_Time
Circuit breaker close time.
Definition: Function_Block_ABB_SACE_FSM.h:298
virtual ~TFunction_Block_ABB_SACE_FSM_T1()
Class destructor method.
Definition: Function_Block_ABB_SACE_FSM.cpp:193
U32 u32_Enable_Timeout
Close timeout in execution cycles.
Definition: Function_Block_ABB_SACE_FSM.h:280
U32 u32_Circuit_Breaker_Release_Time
Internal delay counter.
Definition: Function_Block_ABB_SACE_FSM.h:304
TBlock_Output_Connector object_bool_Spring_Charged
Circuit breaker closed status output.
Definition: Function_Block_ABB_SACE_FSM.h:209
TBlock_Output_Connector object_bool_CB_Close
Circuit breaker close request output.
Definition: Function_Block_ABB_SACE_FSM.h:228
TBlock_Output_Connector object_bool_Released
Circuit breaker FSM block error status output.
Definition: Function_Block_ABB_SACE_FSM.h:215
TBlock_Input_Connector object_bool_CB_Racked_Out_Position
Circuit breaker isolated position feedback status input.
Definition: Function_Block_ABB_SACE_FSM.h:184
TBlock_Output_Connector object_bool_CB_Reset
< Circuit breaker reset request output
Definition: Function_Block_ABB_SACE_FSM.h:225
virtual VOID Send_Information(TProtocol_Base *object_Protocol)
Send information about Function block over communication link protocol.
Definition: Function_Block_ABB_SACE_FSM.cpp:1990
TBlock_Output_Connector object_bool_CB_Spring_Charge
Circuit breaker release request output.
Definition: Function_Block_ABB_SACE_FSM.h:234
TBlock_Input_Connector object_bool_CB_Isolation_Position
Circuit breaker overcurrent trip status input.
Definition: Function_Block_ABB_SACE_FSM.h:187
TBlock_Input_Connector object_bool_CB_Spring_Charged
Circuit breaker auxiliary contact status input.
Definition: Function_Block_ABB_SACE_FSM.h:196
U32 u32_Release_Timeout
Release timeout in execution cycles.
Definition: Function_Block_ABB_SACE_FSM.h:286
TBlock_Output_Connector object_bool_Ready
< Circuit breaker FSM block ready status output
Definition: Function_Block_ABB_SACE_FSM.h:206
TBlock_Input_Connector object_bool_CB_Aux_Contact
Circuit breaker auxiliary contact status input.
Definition: Function_Block_ABB_SACE_FSM.h:199
TBlock_Input_Connector object_f32_Spring_Charge_Timeout
< Circuit breaker spring charge timeout in seconds
Definition: Function_Block_ABB_SACE_FSM.h:140
TBlock_Output_Connector object_bool_CB_Release
Circuit breaker release request output.
Definition: Function_Block_ABB_SACE_FSM.h:231
TGlobal_FSM_State
Definition: Function_Block_ABB_SACE_FSM.h:253
@ enum_Spring_Charging
Definition: Function_Block_ABB_SACE_FSM.h:257
@ enum_Enabling
Definition: Function_Block_ABB_SACE_FSM.h:260
@ enum_Emergency_Trip
Definition: Function_Block_ABB_SACE_FSM.h:266
@ enum_Init
Definition: Function_Block_ABB_SACE_FSM.h:255
@ enum_Error
Definition: Function_Block_ABB_SACE_FSM.h:264
@ enum_Closing
Definition: Function_Block_ABB_SACE_FSM.h:261
@ enum_Spring_Charged
Definition: Function_Block_ABB_SACE_FSM.h:259
@ enum_Spring_Charged_End_Delay
Definition: Function_Block_ABB_SACE_FSM.h:258
@ enum_Releaseing
Definition: Function_Block_ABB_SACE_FSM.h:263
@ enum_Opened
Definition: Function_Block_ABB_SACE_FSM.h:256
@ enum_Closed
Definition: Function_Block_ABB_SACE_FSM.h:262
@ enum_Reset
Definition: Function_Block_ABB_SACE_FSM.h:265
virtual VOID Execute()
Function block execution method.
Definition: Function_Block_ABB_SACE_FSM.cpp:233
TBlock_Input_Connector object_bool_CB_Ready_To_Close
Circuit breaker spring charged status input.
Definition: Function_Block_ABB_SACE_FSM.h:193
U32 u32_Spring_Charge_End_Delay
Enable timeout in execution cycles.
Definition: Function_Block_ABB_SACE_FSM.h:277
U32 u32_Close_Timeout
Definition: Function_Block_ABB_SACE_FSM.h:283
U32 u32_Circuit_Breaker_Close_Time
Circuit breaker release time.
Definition: Function_Block_ABB_SACE_FSM.h:301
U32 u32_Reset_Timeout
Internal action start timestamp.
Definition: Function_Block_ABB_SACE_FSM.h:292
U32 u32_Spring_Charge_Timeout
Spring charge end delay in execution cycles.
Definition: Function_Block_ABB_SACE_FSM.h:274
TBlock_Input_Connector object_bool_CB_Overcurrent_Trip
Circuit breaker ready to close status input.
Definition: Function_Block_ABB_SACE_FSM.h:190
Function block base class for device.
Definition: Function_Block_Base.h:96
Definition: Protocol_Base.h:57