Téma: SDS-C program nefunguje tak jak má.
Dobrý den.
Mám dotaz, jsem začátečník a vytvořil jsem si v SDS-C ver 06, 270812 program pro rozsvěcování osvětlení domu. Jenže v SDS-Debuggeru mě program pracuje tak, jak potřebuji ale po uploadu do SDS MICRO DIN E R2 relé1 sys[231] sepne ale po uplynutí daného času nevypne. ??? Vytvořil jsem dvě verze které v debuggeru fungují ale v micru ne. Tak si nevím rady. Proto vás prosím o radu, či případnou pomoc děkuji.
Zde přikládám program, první verze.
#define HODINA sys[8] // zjisti hodinu aktualniho casu
#define MINUTA sys[9] // zjisti minutu aktualniho casu
#define VTERINA sys[10] // zjisti sekundu aktualniho casu
#define RELE2 sys[232] // ovladani cerpadla rybnik
#define RELE1 sys[231] // ovladani cerpadla bazen
#define CIDLO3 sys[312] // tep.cidlo3 venek
var CIDLOSTUPNE3;
main
{
echo('---Je prave: 'HODINA':'MINUTA':'VTERINA'---');
CIDLOSTUPNE3 = CIDLO3 / 100;
echo('---Venkovni teplota: 'CIDLOSTUPNE3' st.C---');
// smycka na zapinani rele2 Osvetleni dum
// vetsi jak 16:30 a soucasne mensi jak 23:59 a soucasne je vyple osvetleni
if ((HODINA > 15 && MINUTA > 29)&&(HODINA < 23 && MINUTA < 59) && RELE2==0) {
echo('ZAPINAM OSVETLENI DUM = rele2.');
RELE2 = 1;
}
else {
// slouzi pro informovani ze neco v predchozi podmince nebylo splneno a zaroven jaky byl stav osvetleni
if (RELE2==1) { echo ('NEZAPINAM OSVETLENI DUM protoze rele2 je zapnute'); };
if (RELE2==0) { echo ('NEZAPINAM OSVETLENI DUM rele2 je sice vypnute ale nejsou splnene vsechny podminky'); };
};
// smycka na vypinani rele2 Osvetleni dum
// (mensi jak 16:30 nebo vetsi jak 23:58) a soucasne je zaple osvetleni
if ((HODINA < 1 && MINUTA > 0) || (HODINA < 15 && MINUTA < 29) && RELE2==1){
echo('VYPINAM OSVETLENI DUM = rele2');
RELE2 = 0;
}
else {
if (RELE2==0) { echo ('NEVYPINAM OSVETLENI DUM protoze rele2 je vypnute'); };
if (RELE2==1) { echo ('NEVYPINAM OSVETLENI DUM rele2 je sice zapnute ale neni splnena ani jedna z podminek'); };
};
echo(' ');
echo(' ');
echo(' ');
wait(10000);
//konec - main bude spusteno automaticky znovu Zde přikládám druhou verzi
// program pro ovladani rele Osvetleni dum
#define HOD sys[8] // zjisti hodinu aktualniho casu
#define MIN sys[9] // zjisti minutu aktualniho casu
#define VTE sys[10] // zjisti sekundu aktualniho casu
#define RELE2 sys[232] // osvetleni dum
zapnout_osvetleni
{
echo('---Je prave: 'HOD':'MIN':'VTE'---');
RELE2 = 1;
echo ('zapinam osvetleni');
}
vypnout_osvetleni
{
echo('---Je prave: 'HOD':'MIN':'VTE'---');
RELE2 = 0;
echo ('vypinam osvetleni');
}
main
{
//pockame 10 sekund, az nabehne cely system
wait (10000);
//------------------------------------------------------------
label smycka_rizeni://hlavni smycka, ve ktere se vykonava proces
if (HOD > 16 && MIN > 29 && HOD <= 23 && MIN <= 59 && RELE2==0)zapnout_osvetleni();
if (HOD >= 0 && MIN >= 0 && HOD <= 16 && MIN < 29 && RELE2==1)vypnout_osvetleni();
//a porad dokola
goto smycka_rizeni;
}Předem děkuji a rád se nechám poučit.