<?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 - Spínací hodiny s jednoduchým ovládáním]]></title>
		<link>https://forum.sds.an-d.cz/viewtopic.php?id=359</link>
		<atom:link href="https://forum.sds.an-d.cz/extern.php?action=feed&amp;tid=359&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Nejnovější příspěvky v Spínací hodiny s jednoduchým ovládáním.]]></description>
		<lastBuildDate>Sat, 14 Jun 2014 14:01:32 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Spínací hodiny s jednoduchým ovládáním]]></title>
			<link>https://forum.sds.an-d.cz/viewtopic.php?pid=4460#p4460</link>
			<description><![CDATA[<p>Zrovna neco takoveho programuju, koukam ze mame podobne napady. <img src="https://forum.sds.an-d.cz/img/smilies/smile.png" width="15" height="15" alt="smile" /><br />Diky za inspiraci.</p>]]></description>
			<author><![CDATA[null@example.com (ochm)]]></author>
			<pubDate>Sat, 14 Jun 2014 14:01:32 +0000</pubDate>
			<guid>https://forum.sds.an-d.cz/viewtopic.php?pid=4460#p4460</guid>
		</item>
		<item>
			<title><![CDATA[Spínací hodiny s jednoduchým ovládáním]]></title>
			<link>https://forum.sds.an-d.cz/viewtopic.php?pid=2778#p2778</link>
			<description><![CDATA[<p>Možná by se někomu mohly hodit jednoduché spínací hodiny.<br />Jsou ovládané přes SYS[140]-SYS[143] (relé 1) a SYS[144]-SYS[147] (relé 2), samozřejmě není problém upravit (bylo to kvůli jednoduchému zkoušení ze základního webového rozhraní).<br />V každé proměnné je umístěn &quot;program&quot; ve formě <strong>DHHMMhhmm</strong>, kde <strong>HH:MM</strong> je čas zapnutí, <strong>hh:mm</strong> čas vypnutí a <strong>D</strong> kód pro den (0-6=pondělí-neděle, 7=pracovní dny, 8=víkend a 9=každý den).<br /><span style="color: #FF0000">POZOR: Pro lepší kontrolu pracovních dnů používám kódování, kde 0=pondělí a 6=neděle...</span><br />Chceme-li například sepnout <strong>relé1 každý den</strong> ve <strong>13:20</strong> a vypnout ve <strong>14:10</strong>, dáme do jedné z proměnných SYS[]-SYS[143] (libovolné) údaj <strong>913201410</strong>.</p><p>Tady je kód procedury, kterou musíte pravidelně volat ve svém programu:<br /></p><div class="codebox"><pre><code>spinaci_hodiny {
    var cas,on,off,dd,den;
    if (sys[10]!=0)                    //spínáme jen v první vteřinu minuty
        goto nespiname;
        
    cas = sys[8] * 100 + sys[9];    //připravíme čas HHMM
    den = ((sys[4] / 86400) + 3) % 7;    //den v týdnu, 0=pondělí
    
    //RE1
    on = sys[140] / 10000;            //rozebereme sys[140] HHMMHHMM (on/off)
    off = sys[140] % 10000;
    dd = on / 10000;                //program pro den v týdnu ... 0-6=konkrétní den, 7=pracovní, 8=víkend, 9=každý den
    on = on % 10000;
    if (dd&lt;7 &amp;&amp; dd!=den)
        goto test2;
    if (dd==7 &amp;&amp; den&gt;4)
        goto test2;
    if (dd==8 &amp;&amp; den&lt;5)
        goto test2;
    //porovnáváme časy, pokud on=off (nebo 0), nic neděláme
    if (cas==on &amp;&amp; sys[231]==0 &amp;&amp; on!=off) { 
        sys[231]=1;
        echo(&#039;PRG1: RE1 zapnuto v &#039;,sys[8],&#039;:&#039;,sys[9]);
    }
    if (cas==off &amp;&amp; sys[231]!=0 &amp;&amp; on!=off) { 
        sys[231]=0;
        echo(&#039;PRG1: RE1 vypnuto v &#039;,sys[8],&#039;:&#039;,sys[9]);
    }

test2:
    on = sys[141] / 10000;            //rozebereme sys[141] HHMMHHMM (on/off)
    off = sys[141] % 10000;
    dd = on / 10000;                //program pro den v týdnu ... 0-6=konkrétní den, 7=pracovní, 8=víkend, 9=každý den
    on = on % 10000;
    if (dd&lt;7 &amp;&amp; dd!=den)
        goto test3;
    if (dd==7 &amp;&amp; den&gt;4)
        goto test3;
    if (dd==8 &amp;&amp; den&lt;5)
        goto test3;
    
    //porovnáváme časy, pokud on=off (nebo 0), nic neděláme
    if (cas==on &amp;&amp; sys[231]==0 &amp;&amp; on!=off) { 
        sys[231]=1;
        echo(&#039;PRG2: RE1 zapnuto v &#039;,sys[8],&#039;:&#039;,sys[9]);
    }
    if (cas==off &amp;&amp; sys[231]!=0 &amp;&amp; on!=off) { 
        sys[231]=0;
        echo(&#039;PRG2: RE1 vypnuto v &#039;,sys[8],&#039;:&#039;,sys[9]);
    }

test3:
    on = sys[142] / 10000;            //rozebereme sys[142] HHMMHHMM (on/off)
    off = sys[142] % 10000;
    dd = on / 10000;                //program pro den v týdnu ... 0-6=konkrétní den, 7=pracovní, 8=víkend, 9=každý den
    on = on % 10000;
    if (dd&lt;7 &amp;&amp; dd!=den)
        goto test4;
    if (dd==7 &amp;&amp; den&gt;4)
        goto test4;
    if (dd==8 &amp;&amp; den&lt;5)
        goto test4;

    //porovnáváme časy, pokud on=off (nebo 0), nic neděláme
    if (cas==on &amp;&amp; sys[231]==0 &amp;&amp; on!=off) { 
        sys[231]=1;
        echo(&#039;PRG3: RE1 zapnuto v &#039;,sys[8],&#039;:&#039;,sys[9]);
    }
    if (cas==off &amp;&amp; sys[231]!=0 &amp;&amp; on!=off) { 
        sys[231]=0;
        echo(&#039;PRG3: RE1 vypnuto v &#039;,sys[8],&#039;:&#039;,sys[9]);
    }

test4:
    on = sys[143] / 10000;            //rozebereme sys[143] HHMMHHMM (on/off)
    off = sys[143] % 10000;
    dd = on / 10000;                //program pro den v týdnu ... 0-6=konkrétní den, 7=pracovní, 8=víkend, 9=každý den
    on = on % 10000;
    if (dd&lt;7 &amp;&amp; dd!=den)
        goto test5;
    if (dd==7 &amp;&amp; den&gt;4)
        goto test5;
    if (dd==8 &amp;&amp; den&lt;5)
        goto test5;
    
    //porovnáváme časy, pokud on=off (nebo 0), nic neděláme
    if (cas==on &amp;&amp; sys[231]==0 &amp;&amp; on!=off) { 
        sys[231]=1;
        echo(&#039;PRG4: RE1 zapnuto v &#039;,sys[8],&#039;:&#039;,sys[9]);
    }
    if (cas==off &amp;&amp; sys[231]!=0 &amp;&amp; on!=off) { 
        sys[231]=0;
        echo(&#039;PRG4: RE1 vypnuto v &#039;,sys[8],&#039;:&#039;,sys[9]);
    }

test5:
    //RE2
    on = sys[144] / 10000;            //rozebereme sys[144] HHMMHHMM (on/off)
    off = sys[144] % 10000;
    dd = on / 10000;                //program pro den v týdnu ... 0-6=konkrétní den, 7=pracovní, 8=víkend, 9=každý den
    on = on % 10000;
    if (dd&lt;7 &amp;&amp; dd!=den)
        goto test6;
    if (dd==7 &amp;&amp; den&gt;4)
        goto test6;
    if (dd==8 &amp;&amp; den&lt;5)
        goto test6;

    //porovnáváme časy, pokud on=off (nebo 0), nic neděláme
    if (cas==on &amp;&amp; sys[232]==0 &amp;&amp; on!=off) { 
        sys[232]=1;
        echo(&#039;PRG5: RE2 zapnuto v &#039;,sys[8],&#039;:&#039;,sys[9]);
    }
    if (cas==off &amp;&amp; sys[232]!=0 &amp;&amp; on!=off) { 
        sys[232]=0;
        echo(&#039;PRG5: RE2 vypnuto v &#039;,sys[8],&#039;:&#039;,sys[9]);
    }

test6:
    on = sys[145] / 10000;            //rozebereme sys[145] HHMMHHMM (on/off)
    off = sys[145] % 10000;
    dd = on / 10000;                //program pro den v týdnu ... 0-6=konkrétní den, 7=pracovní, 8=víkend, 9=každý den
    on = on % 10000;
    if (dd&lt;7 &amp;&amp; dd!=den)
        goto test7;
    if (dd==7 &amp;&amp; den&gt;4)
        goto test7;
    if (dd==8 &amp;&amp; den&lt;5)
        goto test7;
    
    //porovnáváme časy, pokud on=off (nebo 0), nic neděláme
    if (cas==on &amp;&amp; sys[232]==0 &amp;&amp; on!=off) { 
        sys[232]=1;
        echo(&#039;PRG6: RE2 zapnuto v &#039;,sys[8],&#039;:&#039;,sys[9]);
    }
    if (cas==off &amp;&amp; sys[232]!=0 &amp;&amp; on!=off) { 
        sys[232]=0;
        echo(&#039;PRG6: RE2 vypnuto v &#039;,sys[8],&#039;:&#039;,sys[9]);
    }

test7:
    on = sys[146] / 10000;            //rozebereme sys[146] HHMMHHMM (on/off)
    off = sys[146] % 10000;
    dd = on / 10000;                //program pro den v týdnu ... 0-6=konkrétní den, 7=pracovní, 8=víkend, 9=každý den
    on = on % 10000;
    if (dd&lt;7 &amp;&amp; dd!=den)
        goto test8;
    if (dd==7 &amp;&amp; den&gt;4)
        goto test8;
    if (dd==8 &amp;&amp; den&lt;5)
        goto test8;

    //porovnáváme časy, pokud on=off (nebo 0), nic neděláme
    if (cas==on &amp;&amp; sys[232]==0 &amp;&amp; on!=off) { 
        sys[232]=1;
        echo(&#039;PRG7: RE2 zapnuto v &#039;,sys[8],&#039;:&#039;,sys[9]);
    }
    if (cas==off &amp;&amp; sys[232]!=0 &amp;&amp; on!=off) { 
        sys[232]=0;
        echo(&#039;PRG7: RE2 vypnuto v &#039;,sys[8],&#039;:&#039;,sys[9]);
    }

test8:
    on = sys[147] / 10000;            //rozebereme sys[147] HHMMHHMM (on/off)
    off = sys[147] % 10000;
    dd = on / 10000;                //program pro den v týdnu ... 0-6=konkrétní den, 7=pracovní, 8=víkend, 9=každý den
    on = on % 10000;
    if (dd&lt;7 &amp;&amp; dd!=den)
        goto nespiname;
    if (dd==7 &amp;&amp; den&gt;4)
        goto nespiname;
    if (dd==8 &amp;&amp; den&lt;5)
        goto nespiname;
    
    //porovnáváme časy, pokud on=off (nebo 0), nic neděláme
    if (cas==on &amp;&amp; sys[232]==0 &amp;&amp; on!=off) { 
        sys[232]=1;
        echo(&#039;PRG8: RE2 zapnuto v &#039;,sys[8],&#039;:&#039;,sys[9]);
    }
    if (cas==off &amp;&amp; sys[232]!=0 &amp;&amp; on!=off) { 
        sys[232]=0;
        echo(&#039;PRG8: RE2 vypnuto v &#039;,sys[8],&#039;:&#039;,sys[9]);
    }

nespiname:
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (jirsoft)]]></author>
			<pubDate>Thu, 20 Dec 2012 18:50:28 +0000</pubDate>
			<guid>https://forum.sds.an-d.cz/viewtopic.php?pid=2778#p2778</guid>
		</item>
	</channel>
</rss>
