1

Téma: Pomoc s naprogramováním

Dobry den vsem. Vcera jsem nainstaloval SDS mikro DIN E. Vse funguje, ale potreboval bych nejake upravy programu. Programovat neumim, tak prosim o radu zkusene uzivatele. SDS pouzivam jen pro odecet jednoho plynomeru na velke kotelne, nic vic.
Mam dany denni limit spotreby plynu 3800 m3 na den, ktery nesmim prekrocit. Potreboval bych, aby se stav kazdy den v 6:00 (plynarensky cas) vyresetoval a pocitala se celkova denni spotreba. Druhy den v 6:00 opet reset atd. kazdy den. Idealni by bylo, kdyby se treba pri 3700 m3 seplo rele a vyhlasilo se upozorneni nebo SMS a treba pri 3790 m3 seplo druhe rele, ktere by odstavilo kotel. Je to pro me problem, neumim to. Poradi prosim nekdo? Dekuji za kazdou radu ci pomoc.

2

Re: Pomoc s naprogramováním

Klidně se mi ozvěte na soami@seznam.cz Není to složité.

3

Re: Pomoc s naprogramováním

Dobrý den. Potřeboval bych poradit. V SDS micro  mám nahranou upravenou demo stránku. Na ní by měly být tři tlačítka ovládající relé. První tlačítko STOP sepne relé1 na 1 s a vypne. Druhé tlačítko sepne také relé1, ale na 5s a vypne. Třetí tlačítko sepne relé2 na 1 s a vypne. Mělo by to být ošetřené tak, když je v činnosti jedno tlačítko, tak než doběhne čas nesmí jít aktivovat jiné. Ale tohle bych i oželel. Web stránka je upravená demo pro Micro. Java script je nezměněný a nejsou zobrazena tlačítka off. Ví, že tohle jde pěkně udělat i z nastavení výstupů, ale má to být i pro ostatní kolegy, tak se snažím to zjednodušit z hlediska obsluhy. Já s tím nemůžu hnout, dělá to vše možné, jen co chci ne. Děkuji.
Web:

 
<div id="wrapper">
  <div id="outer1">

   <fieldset>
    <legend>Aktuální čas</legend>
    <div class=ovl>
     Aktuální čas<label class=data id="cas">not synchronized</label>
    </div>
   </fieldset>

   <fieldset>
    <legend>Teplota Procesoru SoC</legend>
    <div class=ovl>
     Teplota Procesoru SoC<label class=data id="SoC">0.00 °C</label>
    </div>
   </fieldset>

   <fieldset name="fset">
    <legend name="leg">Ovládání kogenerační jednotky</legend>
    <div class=ovl>
     <label name="lbl" for="r1">Normální odstavení - RELÉ 1</label>
     <input type="button" value="Stop" onclick="javascript:sdsc_S(141,1);">
     <!-- <input type="button" value="Off" onclick="javascript:sdsc_S(141,0);"> -->
     Relé 1 sepne na 1s a vypne
    </div>
    <div class=ovl>
     <label name="lbl" for="r1">Tvrdý STOP - RELÉ 1</label>
     <input type="button" value="Stop" onclick="javascript:sdsc_S(142,1);">
<!--     <input type="button" value="Off" onclick="javascript:sdsc_S(142,0);"> -->
    Relé 1 sepne na 5s a vypne
    </div>
    <div class=ovl>
     <label name="lbl" for="r1">START - RELÉ 2</label>
     <input type="button" value="Start" onclick="javascript:sdsc_S(143,1);">
<!--     <input type="button" value="Off" onclick="javascript:sdsc_S(143,0);">   -->
Relé 2 sepne na 1s a vypne
    </div>
   </fieldset> 

SDS-C:

//
//

// *******  vase promenne sem **********
var teplota
var reset;
var _rele;    //rele



spotreba
{    if (sys[8]==6 && sys[9]==0 && reset==0)    //cas 6:00
    {    ram[10]=sys[495];     //zapis vychozi denni hodnoty spotreby do ram[10]
        reset=1; }        //zruseni podminky,abych zapsal pouze 1x
        ram[11]=sys[495]-ram[10];    //denni spotreba do ram[11]
    if (sys[8]==6 && sys[9]==1)    //v case 6:01 zrus podminku resetu a mailu
    {  reset=0;
}
        sys[494]=ram[11];    //hodnota denni spotreby do S0-2
        
}

// *******  startovaci procedury  **********
init
{
     
 echo('Start programu');
 
}

main
{
    
    spotreba();     
}

 

4

Re: Pomoc s naprogramováním

Je potřeba udělat v javaskriptu odpovidajici funkce pro odeslani dat do SDS. Něco jako...

   function sdsc_S(sysn,val){
    if (!sub){getSub();};
    sub.open("GET", "sdscep?sys"+sysn+"="+val, true);
    sub.onreadystatechange=reqCompleteR;
    sub.send(null);
   }

   function reqCompleteR(){
    if(sub.readyState==4){
     if(sub.status==200){;}
    }
   }

... toto by mělo měnit hodnoty na indexech 140-149. Pak v sds musite reagovat na zmenu techto hodnot. Neco jako...

init
{
 sys[140]=0;
 sys[141]=0;
 sys[142]=0;
}
 
main
{
 //zap r1
 if (sys[141]==1) {
  sys[231]=255;
  echotime();
  echo ('R1 on');
  wait(1000);
  sys[231]=0;
  }
  sys[141]==0;
 }

 //zap r2
 if (sys[142]==1) {
  sys[232]=255;
  echotime();
  echo ('R2 on');
  wait(1000);
  sys[232]=0;
  }
  sys[142]==0;
 }
 
}

... je to jen z ruky. Možná tam budou chyby závorek a tak. Ale jak na to z toho snad je zřejmé.

5

Re: Pomoc s naprogramováním

Díky, funguje to.