<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[SDS PLC/PAC: Měření Energie & OnlineTechnology.cz - Jednoduché spínačky s možností ručního ovládání]]></title>
		<link>https://forum.sds.an-d.cz/viewtopic.php?id=575</link>
		<atom:link href="https://forum.sds.an-d.cz/extern.php?action=feed&amp;tid=575&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Nejnovější příspěvky v Jednoduché spínačky s možností ručního ovládání.]]></description>
		<lastBuildDate>Tue, 14 Apr 2015 18:30:39 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Jednoduché spínačky s možností ručního ovládání]]></title>
			<link>https://forum.sds.an-d.cz/viewtopic.php?pid=5096#p5096</link>
			<description><![CDATA[<p>Skvělé spínací hodiny, dobrá inspirace. Trochu jsem si je upravil k obrazu svému. Ovládání RE1 a RE2, s tím že RE1 je ovládáno pevně nastaveným časem přímo v programu a RE2 má pevný čas zapnutí a vypnutí je nastavitelné přes sys.</p><div class="codebox"><pre><code>#define YER  sys[7]
#define MON  sys[6]
#define DAY  sys[5]
#define HRS  sys[8]
#define MIN  sys[9]
#define SEC  sys[10]
#define GMT  sys[26]
#define RELE1 sys[231]  //RE1
#define RELE2 sys[232]  //RE2

#define MODE2 sys[140]   // 1=trvale ON, 0=trvale OFF, jine=dle programu
                                    
#define MODE22 sys[141]   // 1=trvale ON, 0=trvale OFF, jine=dle programu
                                       
#define UVOFF sys[142]    // definice času vypnutí RE2
                                  

var lc,zc,dow,con,coff,CAS,PON1,POF1,PON2,POF2,PON3,POF3,PON21;
init
{
 sys[196]=2;
    sys[197]=2;             // Obe rele ridi SDS-C
    echo(&#039;Spinacky&#039;);
    PON1=700;  POF1=830;   //ranni okno 7:00-8:30
    PON2=1130; POF2=1230;  //poledni okno
    PON3=1600; POF3=2300;  //poledni okno
     MODE2=2;               //Jedeme v auto modu, 1=trvale ON, 0=trvale OFF
     UVOFF=800;              //Nastavení defalutní hodnoty vypnutí UV lampy
    PON21=600;     //ranni okno 7:00-8:30
       MODE22=2;               //Jedeme v auto modu, 1=trvale ON, 0=trvale OFF
    
 }
summer
{
  if (( MON &gt; 3 ) &amp;&amp; ( MON &lt; 10 )) { GMT = 2; return; }
  if (( MON &lt; 3 ) || ( MON &gt; 10 )) { GMT = 1; return; }
  if ( MON ==  3 )
  {
    lc = 31 - (( 5 * YER / 4 + 4 ) % 7 );
    if ( DAY &gt;  lc ) { GMT = 2; return; }
    if (( DAY == lc ) &amp;&amp; ( HRS &gt;= 2 )) { GMT = 2; }
  }
  if ( MON == 10 )
  {
    zc = 31 - (( 5 * YER / 4 + 1 ) % 7 );
    if ( DAY &gt;  zc ) { GMT = 1; return; }
    if (( DAY == zc ) &amp;&amp; ( HRS &gt;= 3 )) { GMT = 1; }
  }
}

ovladani {
  if (MODE2==0) goto vypni;             //trvale OFF dle MODE2
  if (MODE2==1) goto zapni;             //trvale ON dle MODE2
  //Ostatni hodnoty MODE2 se berou jako automat

  if (SEC!=0) goto stav;               //Mimo 0. sec se jen vypise stav

  dow=((sys[4] / 86400) + 4) % 7;      //0=Ne,1=Po...6=So


  CAS=HRS*100+MIN;                     //udelame z casu cislo HHMM
  if (CAS&gt;=PON1 &amp;&amp; CAS&lt;=POF1) goto zapni;
  if (CAS&gt;=PON2 &amp;&amp; CAS&lt;=POF2) goto zapni;
  if (CAS&gt;=PON3 &amp;&amp; CAS&lt;=POF3) goto zapni;

  //Pokud neni zadne casove okno splneno (viz vyse), tak vypnout.
  label vypni:
         if (RELE1!=0) {
            echo (&#039;Vypinam rele1&#039;);
            RELE1=0;
         }
         goto stav;
  label zapni:
        if (RELE1!=255) {
            echo (&#039;Zapinam rele1&#039;);
            RELE1=255;
         }
         goto stav;
  label stav:
        echoinline (HRS,&#039;:&#039;,MIN,&#039;:&#039;,SEC);  //cas
        if (RELE1==0) { echo (&#039; Rele1 vypnuto.&#039;,RELE1); return;}
        if (RELE1==255) { echo (&#039; Rele1 zapnuto.&#039;,RELE1); return;}
}

ovladani2 {
  if (MODE22==0) goto vypni2;             //trvale OFF dle MODE2
  if (MODE22==1) goto zapni2;             //trvale ON dle MODE2
  //Ostatni hodnoty MODE22 se berou jako automat

  if (SEC!=5) goto stav2;               //Mimo 0. sec se jen vypise stav

  if (CAS&gt;=PON21 &amp;&amp; CAS&lt;=UVOFF) goto zapni2;

  //Pokud neni zadne casove okno splneno (viz vyse), tak vypnout.
  label vypni2:
         if (RELE2!=0) {
            echo (&#039;Vypinam rele2&#039;);
            RELE2=0;
         }
         goto stav2;
  label zapni2:
        if (RELE2!=255) {
            echo (&#039;Zapinam rele2&#039;);
            RELE2=255;
         }
         goto stav2;
  label stav2:
        echoinline (HRS,&#039;:&#039;,MIN,&#039;:&#039;,SEC);  //cas
        if (RELE2==0) { echo (&#039; Rele2 vypnuto.&#039;,RELE2); return;}
        if (RELE2==255) { echo (&#039; Rele2 zapnuto.&#039;,RELE2); return;}
}
main
{
 summer();                 //korekce casu podle aktualniho datumu
  echoclear(0);             //smazeme konzolu
  ovladani();               //ovlada rele podle casovych oken
  ovladani2();               //ovlada rele podle casovych oken
 //
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Ligor)]]></author>
			<pubDate>Tue, 14 Apr 2015 18:30:39 +0000</pubDate>
			<guid>https://forum.sds.an-d.cz/viewtopic.php?pid=5096#p5096</guid>
		</item>
		<item>
			<title><![CDATA[Jednoduché spínačky s možností ručního ovládání]]></title>
			<link>https://forum.sds.an-d.cz/viewtopic.php?pid=4463#p4463</link>
			<description><![CDATA[<p>Už je to asi 24hod. co mám své první SDS-MICRO DIN E R1 zapnuté. <img src="https://forum.sds.an-d.cz/img/smilies/smile.png" width="15" height="15" alt="smile" /><br />Napsal jsem svůj první prográmek, čerpajíce i ze zde uvedených návodů a postřehů. <br />Třeba se někomu bude hodit...</p><p>--<br />Martin</p><div class="codebox"><pre><code>//
// Jednoduche spinaci hodiny pro 3 casova okna, pouze v pracovni dny
// Moznost rucniho trvaleho zapnuti, nebo vypnuti, nebo rizeni programem
// Uprava casu Letni/Zimni
// Nevyuzite RE1 (LED) slouzi jako blikatko - heartbeat :)
//
#define YER  sys[7]
#define MON  sys[6]
#define DAY  sys[5]
#define HRS  sys[8]
#define MIN  sys[9]
#define SEC  sys[10]
#define GMT  sys[26]
#define RELE1 sys[231]  //Jen pro blikatko
#define RELE2 sys[232]  //Ovladani

#define MODE2 sys[140]   // 1=trvale ON, 0=trvale OFF, jine=dle programu
                                        // Mode se da ridit externe http://ipadresa/sdscep?p=0&amp;sys140=2

#define TON 2   //Delka svitu blikatka
#define TOFF 8 //Delka zasnuti blikatka

var lc,zc,dow,con,coff,CAS,PON1,POF1,PON2,POF2,PON3,POF3;

//Uprava lokalniho casu podle datumu (Letni/Zimni)
summer
{
  if (( MON &gt; 3 ) &amp;&amp; ( MON &lt; 10 )) { GMT = 2; return; }
  if (( MON &lt; 3 ) || ( MON &gt; 10 )) { GMT = 1; return; }
  if ( MON ==  3 )
  {
    lc = 31 - (( 5 * YER / 4 + 4 ) % 7 );
    if ( DAY &gt;  lc ) { GMT = 2; return; }
    if (( DAY == lc ) &amp;&amp; ( HRS &gt;= 2 )) { GMT = 2; }
  }
  if ( MON == 10 )
  {
    zc = 31 - (( 5 * YER / 4 + 1 ) % 7 );
    if ( DAY &gt;  zc ) { GMT = 1; return; }
    if (( DAY == zc ) &amp;&amp; ( HRS &gt;= 3 )) { GMT = 1; }
  }
}

blikatko {
  if (con&lt;TON) {con+=1; RELE1=255; return;}
  if (coff&lt;TOFF &amp;&amp; con==TON) {coff+=1;RELE1=0; return;}
  if (coff==TOFF) {con=0; coff=0;}
}

ovladani {
  if (MODE2==0) goto vypni;             //trvale OFF dle MODE2
  if (MODE2==1) goto zapni;             //trvale ON dle MODE2
  //Ostatni hodnoty MODE2 se berou jako automat

  if (SEC!=0) goto stav;               //Mimo 0. sec se jen vypise stav

  dow=((sys[4] / 86400) + 4) % 7;      //0=Ne,1=Po...6=So
  if (dow==0 || dow==6) goto vypni;    //Cely vikend je vypnuto

  CAS=HRS*100+MIN;                     //udelame z casu cislo HHMM
  if (CAS&gt;=PON1 &amp;&amp; CAS&lt;=POF1) goto zapni;
  if (CAS&gt;=PON2 &amp;&amp; CAS&lt;=POF2) goto zapni;
  if (CAS&gt;=PON3 &amp;&amp; CAS&lt;=POF3) goto zapni;

  //Pokud neni zadne casove okno splneno (viz vyse), tak vypnout.
  label vypni:
         if (RELE2!=0) {
            echo (&#039;Vypinam rele&#039;);
            RELE2=0;
         }
         goto stav;
  label zapni:
        if (RELE2!=255) {
            echo (&#039;Zapinam rele&#039;);
            RELE2=255;
         }
         goto stav;
  label stav:
        echoinline (HRS,&#039;:&#039;,MIN,&#039;:&#039;,SEC);  //cas
        if (RELE2==0) { echo (&#039; Rele vypnuto.&#039;,RELE2); return;}
        if (RELE2==255) { echo (&#039; Rele zapnuto.&#039;,RELE2); return;}
}
//##################################################################
init
{
    sys[196]=2;
    sys[197]=2;             // Obe rele ridi SDS-C
    echo(&#039;Spinacky&#039;);
    PON1=645;  POF1=815;   //ranni okno 6:45-8:15
    PON2=1130; POF2=1300;  //poledni okno
    PON3=1430; POF3=1645;  //odpoledni okno
    MODE2=2;               //Jedeme v auto modu, 1=trvale ON, 0=trvale OFF
}
//##################################################################
main
{
  summer();                 //korekce casu podle aktualniho datumu
  echoclear(0);             //smazeme konzolu
  blikatko();               //blikame protoze zijeme
  ovladani();               //ovlada rele podle casovych oken
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (ochm)]]></author>
			<pubDate>Sat, 14 Jun 2014 19:17:03 +0000</pubDate>
			<guid>https://forum.sds.an-d.cz/viewtopic.php?pid=4463#p4463</guid>
		</item>
	</channel>
</rss>
