增加电压保护

This commit is contained in:
2025-08-11 20:04:32 +08:00
parent e2c969508f
commit 12fa508219
2040 changed files with 363 additions and 399744 deletions

View File

@@ -5,6 +5,7 @@
<File Description="Exported data types">Types.typ</File>
<File Description="Exported constants">Constants.var</File>
<File Description="Exported functions and function blocks">Protect.fun</File>
<File>fbPhaseProtection.st</File>
<File Description="电流保护">fbCurrentProtection.st</File>
<File Description="电流保护">fbValProtection.st</File>
</Files>
</Library>

View File

@@ -1,5 +1,5 @@
FUNCTION_BLOCK fbPhaseProtection (* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> *)
FUNCTION_BLOCK fbCurrentProtection (* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *)
VAR_INPUT
Phase : fbEJM_Phase; (*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ*)
OverProtection : tOverLoaded; (*<EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD><EFBFBD><EFBFBD>ֵ*)
@@ -42,5 +42,40 @@ FUNCTION_BLOCK fbPhaseProtection (*
PL_TON : ARRAY[1..3] OF TON; (* ȱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱTON *)
Imb_TON : TON; (* <EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱTON *)
OL_TON : ARRAY[0..5] OF TON; (* <EFBFBD><EFBFBD><EFBFBD>ر<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱTON *)
MinStartCur : REAL := 1.0; (* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ *)
END_VAR
END_FUNCTION_BLOCK
FUNCTION_BLOCK fbValProtection (* <EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> *)
VAR_INPUT
Phase : fbEJM_Phase; (* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ *)
Rated : REAL := 3300.0; (* <EFBFBD><EFBFBD><EFBFBD>ѹ *)
UnderProtection : REAL := 85.0; (* Ƿѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ,Ƿѹ<EFBFBD>ٷֱ<EFBFBD>,<EFBFBD><EFBFBD>λ%,<EFBFBD><EFBFBD>15.0%,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>15.0*)
OverProtection : REAL := 115.0; (* <EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ,<EFBFBD><EFBFBD>ѹ<EFBFBD>ٷֱ<EFBFBD>,<EFBFBD><EFBFBD>λ%,<EFBFBD><EFBFBD>15.0%,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>15.0*)
END_VAR
VAR_OUTPUT
isPhaseLoss : BOOL := FALSE; (* <EFBFBD>Ƿ<EFBFBD>ȱ<EFBFBD><EFBFBD> *)
isImbalance : BOOL := FALSE; (* <EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD> *)
PhaseLoss : USINT := 0; (* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD> ȱ<EFBFBD><EFBFBD>,0<EFBFBD><EFBFBD>ʾ<EFBFBD><EFBFBD>ȱ<EFBFBD><EFBFBD> *)
isPhaseLoss_U : BOOL := FALSE; (* U<EFBFBD><EFBFBD> ȱ<EFBFBD><EFBFBD> *)
isPhaseLoss_V : BOOL := FALSE; (* V<EFBFBD><EFBFBD> ȱ<EFBFBD><EFBFBD> *)
isPhaseLoss_W : BOOL := FALSE; (* W<EFBFBD><EFBFBD> ȱ<EFBFBD><EFBFBD> *)
Imbalance : USINT := 0; (* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD>,0<EFBFBD><EFBFBD>ʾƽ<EFBFBD><EFBFBD> *)
isImbalance_U : BOOL := FALSE; (* U<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD> *)
isImbalance_V : BOOL := FALSE; (* V<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD> *)
isImbalance_W : BOOL := FALSE; (* W<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD> *)
isVoltageDip : BOOL := FALSE; (* <EFBFBD><EFBFBD>ѹ<EFBFBD>ݽ<EFBFBD> *)
isVoltageSwell : BOOL := FALSE; (* <EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> *)
isVoltageInterrupt : BOOL := FALSE; (* <EFBFBD><EFBFBD>ʱ<EFBFBD>ж<EFBFBD> *)
isUnderVolage : BOOL := FALSE; (* <EFBFBD>Ƿ<EFBFBD>Ƿѹ *)
isOverVoltage : BOOL := FALSE; (* <EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD>ѹ *)
UnderVoltage : REAL := 0.0; (* Ƿѹ<EFBFBD>ٷֱ<EFBFBD>,<EFBFBD><EFBFBD>λ%,<EFBFBD><EFBFBD>15.1%,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>15.1 *)
OverValtage : REAL := 0.0; (* <EFBFBD><EFBFBD>ѹ<EFBFBD>ٷֱ<EFBFBD>,<EFBFBD><EFBFBD>λ%,<EFBFBD><EFBFBD>15%,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>15 *)
END_VAR
VAR
PL_TON : ARRAY[1..3] OF TON; (* ȱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱTON *)
Imb_TON : TON; (* <EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱTON *)
UO_TON : ARRAY[1..2] OF TON; (* Ƿ<EFBFBD>ع<EFBFBD><EFBFBD>ر<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱTON *)
Old_Val : ARRAY[1..3] OF REAL; (* U<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>ֵ *)
END_VAR
END_FUNCTION_BLOCK

View File

@@ -16,7 +16,7 @@
, 5% , 30 ooooo 3秒滤波 1A
: GB/T 35060.4-2021滚筒采煤机通用技术条件 4部分 6.3.4
8×额定电流8 I? 40 ms跳闸
8×额定电流 40 ms跳闸
: MT/T 661-2011 煤矿用高压真空交流软起动器
10%, 0.3% ,3
@@ -36,12 +36,13 @@
,,
*)
FUNCTION_BLOCK fbPhaseProtection
FUNCTION_BLOCK fbCurrentProtection
SF_TON( IN := Q_Start AND (NOT I_Start), PT := T#3S);
isStartFailed := SF_TON.Q; (* *)
IF isStartFailed THEN RETURN;END_IF;
NC_TON( IN := Q_Start AND I_Start AND (Phase.MaxValue < (0.003 * OverProtection.Rated)), PT := T#3S);
MinStartCur := MAX(0.003 * OverProtection.Rated, 1.0); (* , 1A 0.1% , *)
NC_TON( IN := Q_Start AND I_Start AND (MAX(Phase.Filtered5_U, Phase.Filtered5_V, Phase.Filtered5_W) < MinStartCur), PT := T#3S);
isNotCurrent := NC_TON.Q; (* *)
IF isNotCurrent THEN RETURN;END_IF;
@@ -49,7 +50,8 @@ FUNCTION_BLOCK fbPhaseProtection
isContactorAdhesion := SW_TON.Q; (* *)
IF isContactorAdhesion THEN RETURN;END_IF;
CA_TON( IN := (NOT Q_Start) AND (Phase.MaxValue > (0.003 * OverProtection.Rated)), PT := T#3S);
CA_TON( IN := (NOT Q_Start) AND (MAX(Phase.Filtered30_U, Phase.Filtered30_V, Phase.Filtered30_W) > MinStartCur), PT := T#30S);
isStartWithCurrent := CA_TON.Q; (* *)
IF isStartWithCurrent THEN RETURN;END_IF;

View File

@@ -0,0 +1,118 @@
(*
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<EFBFBD>¿<EFBFBD><EFBFBD><EFBFBD>
ʱ<EFBFBD><EFBFBD>:2025.08.8
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>:
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ľ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>ú<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȫ<EFBFBD><EFBFBD><EFBFBD>̡<EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2022 <EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>ơ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>̡<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MT<EFBFBD><EFBFBD>ú̿<EFBFBD><EFBFBD>ҵ<EFBFBD><EFBFBD>ǿ<EFBFBD>Ʊ<EFBFBD>׼;
ȱ<EFBFBD><EFBFBD>: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̡<EFBFBD><EFBFBD><EFBFBD> 451 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>ѹ<EFBFBD><EFBFBD>MT/T 114-2005<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ø<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ء<EFBFBD><EFBFBD><EFBFBD> 5.5.3 <EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD>90%,ʣ<EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>С<EFBFBD><EFBFBD> 5% ʱ,<EFBFBD><EFBFBD><EFBFBD><EFBFBD>3<EFBFBD><EFBFBD> <EFBFBD>ж<EFBFBD>Ϊȱ<EFBFBD><EFBFBD>
<EFBFBD>ƽ<EFBFBD><EFBFBD>:<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̡<EFBFBD><EFBFBD><EFBFBD> 437 <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӧ<EFBFBD><EFBFBD><EFBFBD>Ϲ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>йع<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD><EFBFBD> GB/T 15543-2008<EFBFBD><EFBFBD>ú<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>д<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ֮<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
<EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> = (I_max <EFBFBD>C I_min) / I_max <EFBFBD><EFBFBD> 100 %
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> 8% <EFBFBD>ҳ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> 2s ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>բ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Ƿѹ: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̡<EFBFBD><EFBFBD><EFBFBD> 451 <EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹֵ < 85% <EFBFBD><EFBFBD><EFBFBD>ѹ <EFBFBD>ҳ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> 5<EFBFBD><EFBFBD> ;
<EFBFBD><EFBFBD>ѹ: <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̡<EFBFBD><EFBFBD><EFBFBD> 452 <EFBFBD><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹֵ > 115% <EFBFBD><EFBFBD><EFBFBD>ѹ <EFBFBD>ҳ<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> 5<EFBFBD><EFBFBD> ;
<EFBFBD><EFBFBD>ѹ<EFBFBD>ݽ<EFBFBD> / <EFBFBD><EFBFBD><EFBFBD><EFBFBD> / <EFBFBD><EFBFBD>ʱ<EFBFBD>ж<EFBFBD> :<EFBFBD><EFBFBD><EFBFBD>ҿ<EFBFBD>ɽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD>ú<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¹<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳͨ<EFBFBD>ü<EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 3.2 <EFBFBD><EFBFBD>
<EFBFBD><EFBFBD>ѹ<EFBFBD>ݽ<EFBFBD>: <EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD>ԭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD>5%, <EFBFBD>ҳ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 20<EFBFBD><EFBFBD><EFBFBD><EFBFBD> ~ 3<EFBFBD><EFBFBD> ֮<EFBFBD><EFBFBD>;
<EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>: <EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD>ߵ<EFBFBD>ԭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD>5%, <EFBFBD>ҳ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 20<EFBFBD><EFBFBD><EFBFBD><EFBFBD> ~ 3<EFBFBD><EFBFBD> ֮<EFBFBD><EFBFBD>;
<EFBFBD><EFBFBD>ʱ<EFBFBD>ж<EFBFBD>: <EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD>͵<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD>5% <EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <EFBFBD>ҳ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> 20<EFBFBD><EFBFBD><EFBFBD><EFBFBD> ~ 3 <EFBFBD><EFBFBD> ֮<EFBFBD><EFBFBD>;
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,һ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
*)
FUNCTION_BLOCK fbValProtection
PL_TON[1]( IN :=
(Phase.Filtered5_U <= (0.05 * Rated)) AND
(Phase.Filtered5_V >= (0.9 * Rated)) AND
(Phase.Filtered5_W >= (0.9 * Rated))
, PT := T#3S);
PL_TON[2]( IN :=
(Phase.Filtered5_U >= (0.9 * Rated)) AND
(Phase.Filtered5_V <= (0.05 * Rated)) AND
(Phase.Filtered5_W >= (0.9 * Rated))
, PT := T#3S);
PL_TON[3]( IN :=
(Phase.Filtered5_U >= (0.9 * Rated)) AND
(Phase.Filtered5_V >= (0.9 * Rated)) AND
(Phase.Filtered5_W <= (0.05 * Rated))
, PT := T#3S);
IF PL_TON[1].Q THEN
isPhaseLoss := TRUE;
PhaseLoss := 1; (* U<EFBFBD><EFBFBD> ȱ<EFBFBD><EFBFBD> *)
isPhaseLoss_U := TRUE; (* U<EFBFBD><EFBFBD> ȱ<EFBFBD><EFBFBD> *)
isPhaseLoss_V := FALSE;
isPhaseLoss_W := FALSE;
ELSIF PL_TON[2].Q THEN
isPhaseLoss := TRUE;
PhaseLoss := 2; (* V<EFBFBD><EFBFBD> ȱ<EFBFBD><EFBFBD> *)
isPhaseLoss_U := FALSE;
isPhaseLoss_V := TRUE; (* V<EFBFBD><EFBFBD> ȱ<EFBFBD><EFBFBD> *)
isPhaseLoss_W := FALSE;
ELSIF PL_TON[3].Q THEN
isPhaseLoss := TRUE;
PhaseLoss := 3; (* W<EFBFBD><EFBFBD> ȱ<EFBFBD><EFBFBD> *)
isPhaseLoss_U := FALSE;
isPhaseLoss_V := FALSE;
isPhaseLoss_W := TRUE; (* W<EFBFBD><EFBFBD> ȱ<EFBFBD><EFBFBD> *)
ELSE
isPhaseLoss := FALSE;
PhaseLoss := 0; (* <EFBFBD><EFBFBD>ȱ<EFBFBD><EFBFBD> *)
isPhaseLoss_U := FALSE;
isPhaseLoss_V := FALSE;
isPhaseLoss_W := FALSE;
END_IF;
IF Phase.AverageeValue > 0 AND NOT isPhaseLoss THEN
Imb_TON( IN := ((Phase.MaxValue - Phase.MinValue) / Phase.MaxValue * 100 >= 8) AND (NOT isPhaseLoss) , PT := T#4S);
IF Imb_TON.Q THEN
isImbalance := TRUE;
IF Phase.MinValue = Phase.U THEN
Imbalance := 1; (* U<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD> *)
isImbalance_U := TRUE; (* U<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD> *)
isImbalance_V := FALSE;
isImbalance_W := FALSE;
ELSIF Phase.MinValue = Phase.V THEN
Imbalance := 2; (* V<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD> *)
isImbalance_U := FALSE;
isImbalance_V := TRUE; (* V<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD> *)
isImbalance_W := FALSE;
ELSIF Phase.MinValue = Phase.W THEN
Imbalance := 3; (* W<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD> *)
isImbalance_U := FALSE;
isImbalance_V := FALSE;
isImbalance_W := TRUE; (* W<EFBFBD><EFBFBD> <EFBFBD><EFBFBD>ƽ<EFBFBD><EFBFBD> *)
END_IF;
ELSE
isImbalance := FALSE; (* ƽ<EFBFBD><EFBFBD> *)
Imbalance := 0; (* ƽ<EFBFBD><EFBFBD> *)
isImbalance_U := FALSE;
isImbalance_V := FALSE;
isImbalance_W := FALSE;
END_IF;
IF isImbalance OR isPhaseLoss THEN RETURN; END_IF;
END_IF;
UO_TON[1](IN := Phase.AverageeValue < (Rated * UnderProtection / 100) AND NOT isPhaseLoss AND NOT isImbalance, PT := T#5S); (* Ƿѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ *)
UO_TON[2](IN := Phase.AverageeValue > (Rated * OverProtection / 100) AND NOT isPhaseLoss AND NOT isImbalance, PT := T#5S); (* <EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ *)
isUnderVolage := UO_TON[1].Q; (* Ƿѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> *)
isOverVoltage := UO_TON[2].Q; (* <EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD> *)
isVoltageInterrupt := Phase.MinValue < (0.05 * Rated) AND NOT isPhaseLoss AND NOT isImbalance; (* <EFBFBD><EFBFBD>ʱ<EFBFBD>жϱ<EFBFBD><EFBFBD><EFBFBD> *)
isVoltageDip := ((Old_Val[1] - Phase.U > 0.05) OR (Old_Val[2] - Phase.V > 0.05) OR (Old_Val[3] - Phase.W > 0.05)) AND NOT isPhaseLoss AND NOT isImbalance;; (* <EFBFBD><EFBFBD>ѹ<EFBFBD>ݽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *)
isVoltageSwell := ((Phase.U - Old_Val[1] > 0.05) OR (Phase.V - Old_Val[2] > 0.05) OR (Phase.W - Old_Val[3] > 0.05)) AND NOT isPhaseLoss AND NOT isImbalance;; (* <EFBFBD><EFBFBD>ѹ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> *)
Old_Val[1] := Phase.U; (* <EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>һ<EFBFBD>ε<EFBFBD>U<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹֵ *)
Old_Val[2] := Phase.V; (* <EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>һ<EFBFBD>ε<EFBFBD>V<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹֵ *)
Old_Val[3] := Phase.W; (* <EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD>һ<EFBFBD>ε<EFBFBD>W<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹֵ *)
END_FUNCTION_BLOCK