ConOpSys V2970  P004.07
ANVILEX control operating system
Function_Block_ABB_SACE_FSM_T1.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-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 // 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 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  ~TFunction_Block_ABB_SACE_FSM_T1(); //!< Class destructor method
94 
95  virtual VOID Init(); //!< Init functional block
96  virtual VOID Execute(); //!< Execute functional block
97  virtual VOID Send_Information( TProtocol_Base *object_Protocol ); //!< Send functional block information
98 
99  //--------------------------------------------------------------------------
100  // Block parameters
101  //--------------------------------------------------------------------------
102 
103  TBlock_Input_Connector object_f32_Spring_Charge_Timeout; //!< Circuit breaker spring charge timeout in seconds
104  TBlock_Input_Connector object_f32_Close_Timeout; //!< Circuit breaker close timeout in seconds
105  TBlock_Input_Connector object_f32_Release_Timeout; //!< Circuit breaker release timeout in seconds
106  TBlock_Input_Connector object_f32_Emergency_Trip_Timeout; //!< Circuit breaker trip timeout in seconds
107  TBlock_Input_Connector object_f32_Reset_Timeout; //!< Circuit breaker reset timeout in seconds
108  TBlock_Input_Connector object_f32_Sample_Time; //!< Function block sample time in seconds.
109 
110  //--------------------------------------------------------------------------
111  // Block inputs
112  //--------------------------------------------------------------------------
113 
114  TBlock_Input_Connector object_bool_Charge; //!< Enable circuit breaker spring charge input
115  TBlock_Input_Connector object_bool_Enable; //!< Curcuit breaker close/release control input
116  TBlock_Input_Connector object_bool_Reset; //!< Circuit breaker reset input
117 
118  //--------------------------------------------------------------------------
119  // Block hardware interface to circuit breaker inputs
120  //--------------------------------------------------------------------------
121 
122  TBlock_Input_Connector object_bool_CB_Racked_In_Position; //!< Circuit breaker racked in position feedback status input
123  TBlock_Input_Connector object_bool_CB_Racked_Out_Position; //!< Circuit breaker racked out position feedback status input
124  TBlock_Input_Connector object_bool_CB_Isolation_Position; //!< Circuit breaker isolated position feedback status input
125  TBlock_Input_Connector object_bool_CB_Overcurrent_Trip; //!< Circuit breaker overcurrent trip status input
126  TBlock_Input_Connector object_bool_CB_Ready_To_Close; //!< Circuit breaker ready to close status input
127  TBlock_Input_Connector object_bool_CB_Spring_Charged; //!< Circuit breaker spring charged status input
128  TBlock_Input_Connector object_bool_CB_Aux_Contact; //!< Circuit breaker auxiliary contact status input
129 
130  //--------------------------------------------------------------------------
131  // Block outputs
132  //--------------------------------------------------------------------------
133 
134  TBlock_Output_Connector object_bool_Ready; //!< Circuit breaker FSM block ready status output
135  TBlock_Output_Connector object_bool_Spring_Charged; //!< Circuit breaker spring charged status output
136  TBlock_Output_Connector object_bool_Closed; //!< Circuit breaker closed status output
137  TBlock_Output_Connector object_bool_Released; //!< Circuit breaker released status output
138  TBlock_Output_Connector object_bool_Error; //!< Circuit breaker FSM block error status output
139 
140  //--------------------------------------------------------------------------
141  // Block hardware interface to circuit breaker outputs
142  //--------------------------------------------------------------------------
143 
144  TBlock_Output_Connector object_bool_CB_Reset; //!< Circuit breaker reset request output
145  TBlock_Output_Connector object_bool_CB_Close; //!< Circuit breaker close request output
146  TBlock_Output_Connector object_bool_CB_Release; //! Circuit breaker release request output
147  TBlock_Output_Connector object_bool_CB_Spring_Charge; //!< Circuit breaker spring charge enable output
148 
149  //----------------------------------------------------------------------------
150  // Protected methods and variables
151  //----------------------------------------------------------------------------
152 
153  protected:
154 
155  //----------------------------------------------------------------------------
156  // Protected mrthods and variables
157  //----------------------------------------------------------------------------
158 
159  private:
160 
161  // FSM states
162  typedef enum
163  {
164 
165  enum_Init,
166  enum_Opened,
170  enum_Closing,
171  enum_Closed,
173  enum_Error,
174  enum_Reset,
176 
178 
179  TGlobal_FSM_State enum_FSM_State; //!< FSM state variable
180 
181  U32 u32_Spring_Charge_Timeout; //!< Spring charge timeout
187 
188  U32 u32_Start_Timestamp; //!< Internal action start timestamp
189  U32 u32_Circuit_Breaker_Spring_Charge_Time; //!< Circuit breaker spring charge time
190  U32 u32_Circuit_Breaker_Close_Time; //!< Circuit breaker close time
191  U32 u32_Circuit_Breaker_Release_Time; //!< Circuit breaker release time
192 
193  U32 u32_Delay_Counter; //!< Internal delay counter
194 
195 };
196 
197 //------------------------------------------------------------------------------
198 // End of file
199 //------------------------------------------------------------------------------
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
virtual VOID Send_Information(TProtocol_Base *object_Protocol)
Send functional block information.
TFunction_Block_ABB_SACE_FSM_T1()
Class constructor method.
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
U32 u32_Emergency_Trip_Timeout
Reset timeout in execution cycles.
Definition: Function_Block_ABB_SACE_FSM.h:289
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_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
~TFunction_Block_ABB_SACE_FSM_T1()
Class destructor method.
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
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
virtual VOID Init()
Init functional block.
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
virtual VOID Execute()
Execute functional block.
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_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
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