1

Téma: sepnutí relé v určitou hodinu

Potřebuji poradit, jsem začátečník, mám sol. panel ten se otáčí za sluncem a potřebuji aby se v noci otočil na výchozí pozici na východ. T.j. sepnout relé ve 23 hod. po dobu 3 minuty každý den.
Předem děkuji za případnou pomoc.

2

Re: sepnutí relé v určitou hodinu

Toto jsem  vymyslel a stejně mi to nejde:

#define NTP_HODINA sys[8]
#define NTP_MINUTA sys[9]
#define NTP_STAV sys[37]
#define RELE_OVL sys[196]
#define RELE_STAV sys[231]

init
{
  RELE_OVL = 2;
}

main
{
   if (NTP_STAV == 1)
  {
    if ( NTP_HODINA == 19 || NTP_MINUTA == 55 )
{
    RELE_STAV = 1;
}
    if ( NTP_HODINA == 19 || NTP_MINUTA == 39 )
  {
    RELE_STAV = 0;
   }
}

3

Re: sepnutí relé v určitou hodinu

Bude se to muset udělat jemně složitěji.

Vidím tam tři minuty dobu sepnutí relé. Takže stav 1 by se měl nastavit v 23:00 a zůstat až do 23:03, a stav 0 pak být ve všech ostatních časech.
Je to to, co potřebujete ?
Tak to stačí prakticky jeden složitější IF, jen správně udělaný.

Přes víkend takový jednoduchý program nachystám a dám jej sem.

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

4

Re: sepnutí relé v určitou hodinu

Ano je to co potřebuji.

5

Re: sepnutí relé v určitou hodinu

Buď 2 podmínky - v case 1 zapnout, v case 2 vypnout, nebo nastavit zpoždění:
---------------------------------------------------------------------------------------

var casovac;    // v promennych zadat vlastni promennou

//nad init vlozit vlastni proceduru

rele
{
if (sys[8]==23 && sys[9]==0 && casovac==0) //v case 23:00
   {sys[231]=1;            //zapni rele
    casovac=sys[3]+18000;}    //zpozdeni 3min
else
{
if (casovac<sys[3])
   {sys[231]=0;            //vypni rele
    casovac=0;}            //vynuluj casovac
}


main

rele()    //z main volat vlastni proceduru

--------------------------------------------------------------------------

Čas si SDS synchronizuje automaticky - není třeba psát do programu
Co ovládá relé se definuje v přímo na stránce SDS 191.168.1.250 / výstupy - pokud není třeba měnit, pak není třeba psát v programu
Časy zapnutí a zpoždění lze nastavit přes sys[14x] - pak by bylo možné upravit přes stránku SDS, bez nutnosti nahrání nového programu. Ale to nepíšete.

6

Re: sepnutí relé v určitou hodinu

Díky udělal jsem první variantu v čase 1 zapnout a v čase 2 vypnout - funguje.
Vložil jsem to do svého programu a relé které jsou pro natáčení jsou v programu ve smyčce a vlastně mě zabrání sepnutí jednoho relé.

label opakovat:
   if (u1 + dif > u2) vypni_re1();
   if (u1 + dif < u2) zapni_re1();
   if (u2 + dif > u1) vypni_re2();
   if (u2 + dif < u1) zapni_re2();

Jde ještě udělat přednost nebo vyřazení této větve v době nastaveného času aby seplo re1 na ty 3 minuty?

7

Re: sepnutí relé v určitou hodinu

Moc nerozumím... Vycházel jsem s požadavku, že chcete jen spínat relé na 3min. Pokud tam máte více věcí, tak by bylo jednodušší popsat vše, co s SDS děláte. Pokud ty 4 podmínky, které posíláte, mají sloužit pro průběžné denní otáčení panelu, pak jim taktéž předřaďte časovou podmínku. Např. platnost od 5-22hod.
if (sys[8]>5 && sys[8]<22)
{ if...

8

Re: sepnutí relé v určitou hodinu

To jsem potřeboval. Neuměl jsem nastavit časové podmínky. Moc děkuji.