1

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

2 Naposledy upravil: Simi (2011-09-04 14:04:24)

Re: Samovolné spínání rele

Už jsem na to přišel. Ono to to někdy naměří teplotu 16777216. Takže to chce asi v každé aplikaci počítat s tím, že teplotní čidlo někdy vypadne.

3

Re: Samovolné spínání rele

Před čtením teploty je možné si v sys[] najít stav teploměru - jsou tam samostatné sys[] pro každý teploměr, kde se dá zjistit, zda-li je teploměr připojený a zda-li správně komunikuje. Tohle doplnit do programu a je to vyřešeno.

Pochlubte se - popište jak využíváte své zařízení SDS zde ! Můžete si bezplatně přidat svou reklamu !

4

Re: Samovolné spínání rele

Mě se někdy stává, že všechna čidla na větvi hlásí teplotu 0.00st. Pozor na to. Doporučuju provést kontrolu i na tento stav a zaslat upozornění na email.