Téma: Samovolné spínání rele
Mám program, který reguluje teplotu a to od půlnoci do zadaného času a pak od zadaného času do půlnoci.
Nastaví se teplota a při poklesu pod zadanou hysterezi zapne rele2 při dosažení zadané teploty vypne.
Teď se to začalo chovat divně. Vždy po určitém čase, rele vypne a opět hned zapne i když teplota je nezměněná.
Nemůžu přijít na to, co to způsobuje.
Díky za pomoc.
Š.
Výpis z logu, kde je vidět to samovolné přepínání :
19:45:06 03.09.2011 Relay RE2: OFF
19:45:08 03.09.2011 Relay RE2: ON
19:48:30 03.09.2011 Relay RE1: OFF
19:48:30 03.09.2011 Relay RE1: OFF
19:49:51 03.09.2011 Relay RE1: ON
19:50:07 03.09.2011 Relay RE1: OFF
19:58:38 03.09.2011 Relay RE2: OFF
19:58:40 03.09.2011 Relay RE2: ON
20:01:46 03.09.2011 Relay RE2: OFF
20:01:46 03.09.2011 Relay RE2: OFF
20:01:48 03.09.2011 Relay RE2: ON
20:05:54 03.09.2011 Relay RE2: OFF
20:05:58 03.09.2011 Relay RE2: ON
20:10:04 03.09.2011 Relay RE2: OFF
20:10:06 03.09.2011 Relay RE2: ON
20:10:06 03.09.2011 Relay RE2: ON
20:11:10 03.09.2011 Relay RE2: OFF
20:11:12 03.09.2011 Relay RE2: ON
20:21:34 03.09.2011 Relay RE2: OFF
20:21:36 03.09.2011 Relay RE2: ON
20:22:36 03.09.2011 Relay RE2: OFF
20:22:36 03.09.2011 Relay RE2: OFF
20:22:38 03.09.2011 Relay RE2: ON
20:24:38 03.09.2011 Relay RE2: OFF
20:24:40 03.09.2011 Relay RE2: ON
20:27:46 03.09.2011 Relay RE2: OFF
20:27:48 03.09.2011 Relay RE2: ON
20:27:48 03.09.2011 Relay RE2: ON
20:29:52 03.09.2011 Relay RE2: OFF
20:29:54 03.09.2011 Relay RE2: ON
20:35:04 03.09.2011 Relay RE2: OFF
20:35:08 03.09.2011 Relay RE2: ON
A vlastní program :
R1zapnuto
{
sys[231]=1;
}
R1vypnuto
{
sys[231]=0;
}
R2zapnuto
{
sys[232]=1;
}
R2vypnuto
{
sys[232]=0;
}
Odesli
{
var t,tc,td;
t=sys[310];
tc=t/100;
td=t % 100;
http_get(109,123,223,75,'www.mujweb.cz','/prace2/stanice.php?date=',sys[7],'-',sys[6],'-',sys[5],'&time=',sys[8],':',sys[9],':',sys[10],'&teplota1=',tc,'.',td);
sys[64]=300; // další odeslání za 5 minut
}
var hystereze;
var h2;
init
{
hystereze=200; // o kolik stupnu poklesne teplota proti zadané. Pozor stupně násobit 100x !!!!
h2=hystereze/100;
sys[64]=15; // první odeslání za 15 sekund
}
var t1;
var t2;
var cas;
var pok,pok2,pok3;
main
{
t1=sys[142]/100;
t1=t1*60;
t1=t1 + (sys[142] % 100);
t2=sys[143] / 100;
t2=t2*60;
t2=t2+ (sys[143] % 100);
cas=sys[8]*60+sys[9];
//echo (t1,'-',t2,'-',cas);
if (sys[140] ==1 ) R1zapnuto() else R1vypnuto(); // rele 1 zapnout 1,vypnout 0
// if (((sys[310] < (sys[141]-hystereze)) && (cas >= 0) && (cas <= t1)) || ((sys[310] < (sys[141]-hystereze)) && (cas >= t2) && (cas <=1440))) R2zapnuto(); //požadovaná teplota
if ((((sys[310] < (sys[141]-hystereze)) && (cas >= 0) && (cas <= t1)) || ((sys[310] < (sys[141]-hystereze)) && (cas >= t2) && (cas <=1440))) && t1> 0 && t2>0)R2zapnuto();
if (sys[310] > sys[141]) R2vypnuto(); //požadovaná teplota
echo ('casovac',sys[64]);
if (sys[64]==0) Odesli(); // poslání teploty na web
}
// 140 ovladani rele 1
// 141 požadovaná teplota ve tvaru ccdd tj 20.54°C zadáme jako 2054
// 142 čas sepnutí ve tvaru hhmm tj 20:30 zadáme jako 2030
// 143 čas vypnutí tvaru hhmm
//sys[310] teplota násobena 100x