Noes

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 2

NOES

1|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94

10|

20|

30|

40|

50|

60|

(*
NOE1_REM (ENABLE := 1,
SUCCESS => DCS01_REM_NOE1_SUCCESS,
CONTROL => DCS01_REM_NOE1_CTRL,
DATABUF => DCS01_REM_NOE1_DATABUF);
NOE2_REM (ENABLE := 1,
SUCCESS => DCS01_REM_NOE2_SUCCESS,
CONTROL => DCS01_REM_NOE2_CTRL,
DATABUF => DCS01_REM_NOE2_DATABUF);
NOE3_REM (ENABLE
SUCCESS
CONTROL
DATABUF

:=
=>
=>
=>

1,
DCS01_REM_NOE3_SUCCESS,
DCS01_REM_NOE3_CTRL,
DCS01_REM_NOE3_DATABUF);

*)

IF DCS01_REM_NOE1_SUCCESS THEN
SET(DCS01_REM_NOE1_ACTIVE);
FAIL_CNT:=0;
ELSE
REM_NOE1:=RE(INTERNAL_PULSE);
END_IF;
IF RE(REM_NOE1) THEN
FAIL_CNT:=FAIL_CNT+1;
IF FAIL_CNT>5 THEN
RESET(DCS01_REM_NOE1_ACTIVE);
FAIL_CNT:=0;
END_IF;
END_IF;
IF DCS01_REM_NOE2_SUCCESS THEN
SET(DCS01_REM_NOE2_ACTIVE);
FAIL_CNT2:=0;
ELSE
REM_NOE2:=RE(INTERNAL_PULSE);
END_IF;
IF RE(REM_NOE2) THEN
FAIL_CNT2:=FAIL_CNT2+1;
IF FAIL_CNT2>5 THEN
RESET(DCS01_REM_NOE2_ACTIVE);
FAIL_CNT2:=0;
END_IF;
END_IF;
IF DCS01_REM_NOE3_SUCCESS THEN
SET(DCS01_REM_NOE3_ACTIVE);
FAIL_CNT4:=0;
ELSE
SREM_NOE2:=RE(INTERNAL_PULSE);
END_IF;
IF RE(SREM_NOE2) THEN
FAIL_CNT4:=FAIL_CNT4+1;
IF FAIL_CNT4>5 THEN
RESET(DCS01_REM_NOE3_ACTIVE);
FAIL_CNT4:=0;
END_IF;
END_IF;

(*ETHERNET LINK STATUS*)


DCS01_LOCAL_NOE1_CTRL[0] := DCS01_LOCAL_NOE2_CTRL[0] := 3;
DCS01_REM_NOE1_CTRL[0] := DCS01_REM_NOE2_CTRL[0] := 7;
DCS01_LOCAL_NOE3_CTRL[0] := 3;
DCS01_REM_NOE3_CTRL[0] := 7;
DCS01_LOCAL_NOE1_CTRL[2] := DCS01_LOCAL_NOE2_CTRL[2] := 37;
DCS01_REM_NOE1_CTRL[2] := DCS01_REM_NOE2_CTRL[2] := 37;
DCS01_LOCAL_NOE3_CTRL[2] := DCS01_REM_NOE3_CTRL[2] := 37;
DCS01_LOCAL_NOE1_CTRL[4] := 1280;
DCS01_LOCAL_NOE2_CTRL[4] := 1536;
DCS01_REM_NOE1_CTRL[4] := 1280;
DCS01_REM_NOE2_CTRL[4] := 1536;
DCS01_LOCAL_NOE3_CTRL[4] := 1792;
DCS01_REM_NOE3_CTRL[4] := 1792;
DCS01_REM_NOE1_CTRL[5] := 100;
DCS01_REM_NOE1_CTRL[6] := 100;
DCS01_REM_NOE1_CTRL[7] := 100;
DCS01_REM_NOE1_CTRL[8] := 1;
DCS01_REM_NOE2_CTRL[5] := 100;
DCS01_REM_NOE2_CTRL[6] := 100;
DCS01_REM_NOE2_CTRL[7] := 100;
DCS01_REM_NOE2_CTRL[8] := 3;
DCS01_REM_NOE3_CTRL[5] := 10;
DCS01_REM_NOE3_CTRL[6] := 10;
DCS01_REM_NOE3_CTRL[7] := 13;
DCS01_REM_NOE3_CTRL[8] := 32;

70|

80|

90|

100|

110|

NOES
1|

10|

20|

30|

40|

50|

60|

70|

80|

90|

100|

110|

95
96 INTERNAL_PULSE := %S5;
97 IF %S13 THEN SET(INTERNAL_DELAY);
98 INTERNAL_DELAY_VALUE:=65;
99 END_IF;
100 IF INTERNAL_DELAY THEN
101 IF RE(INTERNAL_PULSE) THEN
102 INTERNAL_DELAY_COUNT := INTERNAL_DELAY_COUNT + 1;
103 END_IF;
104 IF INTERNAL_DELAY_COUNT = INTERNAL_DELAY_VALUE THEN
105 RESET(INTERNAL_DELAY);
106 INTERNAL_DELAY_COUNT := 0;
107 END_IF;
108 END_IF;
109
110 (*
111 IF PRIMARY AND PLC_A THEN
112 DAC_LCC_PLC_A_PRIMARY:=1;
113
IF REM_STANDBY THEN
114
DAC_LCC_PLC_B_STANDBY:=1;
115
ELSE
116
DAC_LCC_PLC_B_STANDBY:=0;
117
END_IF;
118 ELSE
119 DAC_LCC_PLC_A_PRIMARY:=0;
120 END_IF;
121
122 IF PRIMARY AND PLC_B THEN
123 DAC_LCC_PLC_B_PRIMARY:=1;
124
IF REM_STANDBY THEN
125
DAC_LCC_PLC_A_STANDBY:=1;
126
ELSE
127
DAC_LCC_PLC_A_STANDBY:=0;
128
END_IF;
129 ELSE
130 DAC_LCC_PLC_B_PRIMARY:=0;
131 END_IF;
132 *)
133
134
(*noe switching*)
135 IF DCS01_PLC_A_PRIMARY AND DCS01_PLC_B_STANDBY AND NOT DCS01_LOCAL_NOE1_DATABUF[3].15 AND NOT DCS01_LOCAL_NOE2
135>>_DATABUF[3].15 AND NOT INTERNAL_DELAY THEN
136 %SW60.1 := 0;
137 INTERNAL_DELAY_VALUE:=5;
138 SET(INTERNAL_DELAY);
139 JMP SKIP;
140 ELSE
141 %SW60.1 := 1;
142 END_IF;
143 IF DCS01_PLC_B_PRIMARY AND DCS01_PLC_A_STANDBY AND NOT DCS01_LOCAL_NOE1_DATABUF[3].15 AND NOT DCS01_LOCAL_NOE2
143>>_DATABUF[3].15 AND NOT INTERNAL_DELAY THEN
144 %SW60.2 := 0;
145 INTERNAL_DELAY_VALUE:=5;
146 SET(INTERNAL_DELAY);
147 JMP SKIP;
148 ELSE
149 %SW60.2 := 1;
150 END_IF;
151 SKIP: (*noe switching*)
152
153 (* ETHERNET LINK STATUS OF BOTH THE PRIMARY AND STANDBY PLC'S *)
154 IF DCS01_PLC_A_PRIMARY THEN
155
156 DCS01_NOE_STATUS.15 := DCS01_LOCAL_NOE1_DATABUF[3].15;
157 DCS01_NOE_STATUS.14 := DCS01_LOCAL_NOE2_DATABUF[3].15;
158 DCS01_NOE_STATUS.13 := DCS01_LOCAL_NOE3_DATABUF[3].15;
159
160 DCS01_NOE_STATUS.7 := DCS01_FR_REV1.0;
161 DCS01_NOE_STATUS.6 := DCS01_FR_REV1.1;
162 DCS01_NOE_STATUS.5 := DCS01_FR_REV1.2;
163
164 END_IF;
165
166 IF DCS01_PLC_B_PRIMARY THEN
167
168 DCS01_NOE_STATUS.7 := DCS01_LOCAL_NOE1_DATABUF[3].15;
169 DCS01_NOE_STATUS.6 := DCS01_LOCAL_NOE2_DATABUF[3].15;
170 DCS01_NOE_STATUS.5 := DCS01_LOCAL_NOE3_DATABUF[3].15;
171
172 DCS01_NOE_STATUS.15 := DCS01_FR_REV1.0;
173 DCS01_NOE_STATUS.14 := DCS01_FR_REV1.1;
174 DCS01_NOE_STATUS.13 := DCS01_FR_REV1.2;
175
176 END_IF;

You might also like