1 # Copyright (C) 2010-2011 Richard Lincoln
3 # Permission is hereby granted, free of charge, to any person obtaining a copy
4 # of this software and associated documentation files (the "Software"), to
5 # deal in the Software without restriction, including without limitation the
6 # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
7 # sell copies of the Software, and to permit persons to whom the Software is
8 # furnished to do so, subject to the following conditions:
10 # The above copyright notice and this permission notice shall be included in
11 # all copies or substantial portions of the Software.
13 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
18 # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
21 from CIM14
.IEC61970
.Protection
.ProtectionEquipment
import ProtectionEquipment
23 class CurrentRelay(ProtectionEquipment
):
24 """A device that checks current flow values in any direction or designated direction
27 def __init__(self
, currentLimit1
=0.0, timeDelay3
=0.0, timeDelay2
=0.0, currentLimit3
=0.0, currentLimit2
=0.0, inverseTimeFlag
=False, timeDelay1
=0.0, *args
, **kw_args
):
28 """Initialises a new 'CurrentRelay' instance.
30 @param currentLimit1: Current limit #1 for inverse time pickup
31 @param timeDelay3: Inverse time delay #3 for current limit #3
32 @param timeDelay2: Inverse time delay #2 for current limit #2
33 @param currentLimit3: Current limit #3 for inverse time pickup
34 @param currentLimit2: Current limit #2 for inverse time pickup
35 @param inverseTimeFlag: Set true if the current relay has inverse time characteristic.
36 @param timeDelay1: Inverse time delay #1 for current limit #1
38 #: Current limit #1 for inverse time pickup
39 self
.currentLimit1
= currentLimit1
41 #: Inverse time delay #3 for current limit #3
42 self
.timeDelay3
= timeDelay3
44 #: Inverse time delay #2 for current limit #2
45 self
.timeDelay2
= timeDelay2
47 #: Current limit #3 for inverse time pickup
48 self
.currentLimit3
= currentLimit3
50 #: Current limit #2 for inverse time pickup
51 self
.currentLimit2
= currentLimit2
53 #: Set true if the current relay has inverse time characteristic.
54 self
.inverseTimeFlag
= inverseTimeFlag
56 #: Inverse time delay #1 for current limit #1
57 self
.timeDelay1
= timeDelay1
59 super(CurrentRelay
, self
).__init
__(*args
, **kw_args
)
61 _attrs
= ["currentLimit1", "timeDelay3", "timeDelay2", "currentLimit3", "currentLimit2", "inverseTimeFlag", "timeDelay1"]
62 _attr_types
= {"currentLimit1": float, "timeDelay3": float, "timeDelay2": float, "currentLimit3": float, "currentLimit2": float, "inverseTimeFlag": bool, "timeDelay1": float}
63 _defaults
= {"currentLimit1": 0.0, "timeDelay3": 0.0, "timeDelay2": 0.0, "currentLimit3": 0.0, "currentLimit2": 0.0, "inverseTimeFlag": False, "timeDelay1": 0.0}