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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
| unsigned int OL_Point = 10;
unsigned int percentage2C_Limit = 20;
unsigned int percentage5C_Limit = 50;
unsigned int percentage10C_Limit = 100;
unsigned char OL_Curve = 1;
unsigned int OverLoad_Flag = 0;
unsigned char Pgm_mode = 0;
unsigned int OCRT_Dly_Cntr = 0;
unsigned int OL_Time = 30;
unsigned int OLTR_Time = 0;
unsigned char Milli10_Sec_Cntr_X = 0, Milli100_Sec_Cntr_X = 0, Milli1000_Sec_Cntr_X = 0, Power_on_Valid_Cntr = 0;
unsigned char Cntrl_flag = 1;
unsigned int Rph_Current = 16;
unsigned int Yph_Current = 16;
unsigned int Bph_Current = 16;
unsigned int Percenatge_Calculated = 0;
unsigned int Counter_OCRT = 0;
unsigned char Rph_OLFlag = 0;
unsigned char Bph_OLFlag = 0;
unsigned char Yph_OLFlag = 0;
float Rph_Current_Float = 0.0;
float Yph_Current_Float = 0.0;
float Bph_Current_Float = 0.0;
float OL_Point_Float = 0.0;
float Per1_Cal = 0, Per5_Cal = 0, Per10_Cal = 0, Per15_Cal = 0, Per20_Cal = 0;
float Per30_Cal = 0, Per40_Cal = 0, Per50_Cal = 0, Per60_Cal = 0, Per70_Cal = 0, Per80_Cal = 0, Per90_Cal = 0, Per100_Cal = 0;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop()
{
if (((Rph_Current > OL_Point) || (Yph_Current > OL_Point) || (Bph_Current > OL_Point))) {
if (OL_Curve == 1) {
Percenatge_Calculated = ((int)(OL_Point * percentage2C_Limit) + OL_Point);
Rph_Current_Float = Rph_Current * 1.0;
Yph_Current_Float = Yph_Current * 1.0;
Bph_Current_Float
= Bph_Current * 1.0;
OL_Point_Float = (double) OL_Point / 1.0;
Per1_Cal = (OL_Point_Float + ((OL_Point_Float * 1) / 100));
Per5_Cal = (OL_Point_Float + ((OL_Point_Float * 5) / 100));
Per10_Cal = (OL_Point_Float + ((OL_Point_Float * 10) / 100));
Per15_Cal = (OL_Point_Float + ((OL_Point_Float * 15) / 100));
Per20_Cal = (OL_Point_Float + ((OL_Point_Float * 20) / 100));
// Percenatge_Calculated= OL_Point+((OL_Point*1)/100;
Counter_OCRT++;
function ();
}
} else {
// Counter_OCRT = 0;
OverLoad_Flag = 0;
Rph_OLFlag = 0;
Bph_OLFlag = 0;
Yph_OLFlag = 0;
}
delay(1000);
Serial.print("RPH:");
Serial.print(Rph_Current);
Serial.print("\tYPH:");
Serial.print(Yph_Current);
Serial.print("\tBPH:");
Serial.print(Bph_Current);
Serial.print("\t OL_Point_Float:");
Serial.println(OL_Point_Float);
Serial.print("RPH-float:");
Serial.print(Rph_Current_Float);
Serial.print("\tYPH-float:");
Serial.print(Yph_Current_Float);
Serial.print("\tBPH-float:");
Serial.println(Bph_Current_Float);
Serial.print("Per1_Cal:");
Serial.print(Per1_Cal);
Serial.print("\tPer5_Cal:");
Serial.print(Per5_Cal);
Serial.print("\tPer10_Cal :");
Serial.print(Per10_Cal);
Serial.print("\tPer15_Cal:");
Serial.print(Per15_Cal);
Serial.print("\tPer20_Cal:");
Serial.println(Per20_Cal);
Serial.print("OL_Time:");
Serial.println(OL_Time);
Serial.println("...................................................................................");
delay(1000);
}
void
function () {
if (Counter_OCRT >= 5) {
// OverLoad_Flag = 1;
Counter_OCRT = 0;
if ((Rph_Current_Float >= Per1_Cal) && (Per5_Cal <= Rph_Current_Float) || (Yph_Current_Float >= Per1_Cal) && (Per5_Cal <= Yph_Current_Float) || (Bph_Current_Float >= Per1_Cal) && (Per5_Cal <= Bph_Current_Float)) {
OL_Time = 20;
OverLoad_Flag = 1;
} else if ((Rph_Current_Float >= Per5_Cal) && (Per10_Cal <= Rph_Current_Float) || (Yph_Current_Float >= Per5_Cal) && (Per10_Cal <= Yph_Current_Float) || (Bph_Current_Float >= Per5_Cal) && (Per10_Cal <= Bph_Current_Float)) {
OL_Time = 15;
OverLoad_Flag = 1;
} else
if ((Rph_Current_Float >= Per10_Cal) && (Per15_Cal <= Rph_Current_Float) || (Yph_Current_Float >= Per10_Cal) && (Per15_Cal <= Yph_Current_Float) || (Bph_Current_Float >= Per10_Cal) && (Per15_Cal <= Bph_Current_Float)) {
OL_Time = 10;
OverLoad_Flag = 1;
} else if ((Rph_Current_Float >= Per20_Cal) || (Yph_Current_Float >= Per20_Cal) && (Bph_Current_Float >= Per20_Cal)) {
OL_Time = 5;
OverLoad_Flag = 1;
}
}
} |