Просмотр полной версии : Астрономический таймер
Serhioromano
05.10.2018, 14:48
Есть такой блок? Мне нужно включать свет когда начинаются сумерки по времени.
А почему бы не использовать банальное фотореле?
Привет, вот держи* если знаешь когда начнутся сумерки то пойдет :)
lara197a
05.10.2018, 15:47
Для таких задач есть очень простые и дешевые специализированные устройства.
К Примеру ТАУ:
http://www.tau-spb.ru/rastr.htm
У них есть более сложные, программируемые устройства изделия.
Serhioromano
05.10.2018, 16:57
А почему бы не использовать банальное фотореле?
Нужно отталкиваться от времени суток а не от реального освещения на улице.
oscat.de есть такой блок и темы такие есть уже
Искал на форуме по слову астрономический и его склонения. Не нашел. Извините если дубль. Функцию нашел SUN_TIME. Спасибо.
Привет, вот держи* если знаешь когда начнутся сумерки то пойдет :)
В этом и суть такого блока что в зависимости от широты установленой, и даты, он сам знает когда закат. Другими словами я не знаю когда закат, для этого мне и нужно блок астрономического времени.
Для таких задач есть очень простые и дешевые специализированные устройства.
К Примеру ТАУ:
http://www.tau-spb.ru/rastr.htm
У них есть более сложные, программируемые устройства изделия.
Да думал поставить просто астро реле типа EKF и завести его реле на контролер. Но подумал может это можно и программно решить, зачем покупать изделие если можно и так будет решить.
Нужно отталкиваться от времени суток а не от реального освещения на улице.
Искал на форуме по слову астрономический и его склонения. Не нашел. Извините если дубль. Функцию нашел SUN_TIME. Спасибо.
В этом и суть такого блока что в зависимости от широты установленой, и даты, он сам знает когда закат. Другими словами я не знаю когда закат, для этого мне и нужно блок астрономического времени.
Да думал поставить просто астро реле типа EKF и завести его реле на контролер. Но подумал может это можно и программно решить, зачем покупать изделие если можно и так будет решить.
Здравствуйте, можете показать какие блоки задействовали помимо sun_time.
kondor3000
24.03.2023, 13:36
Здравствуйте, можете показать какие блоки задействовали помимо sun_time.
Вот вам готовый Астротаймер, но на ST. ПЛК можно заменить на другой без проблем.
+3 часа для Москвы уже стоит (+180 минут), для других городов изменить часовой пояс.
День, месяц и год надо подавать на вход блока.
Блок выдаёт время восхода и захода солнца, дальше сами включайте, выключайте по времени, что надо.
Скрины для среды CoDeSys V3.5
82649 82650 82651 82652
Вот вам готовый Астротаймер, но на ST. ПЛК можно заменить на другой без проблем.
+3 часа для Москвы уже стоит (+180 минут), для других городов изменить часовой пояс.
День, месяц и год надо подавать на вход блока.
Блок выдаёт время восхода и захода солнца, дальше сами включайте, выключайте по времени, что надо.
Огромное спасибо
А есть возможность (способ) его импортировать в Owen Logic?
c5657 для Овен Лождик вроде petera делал когда-то астротаймер, поищите в макросах.
А есть возможность (способ) его импортировать в Owen Logic?
c5657 для Овен Лождик вроде petera делал когда-то астротаймер, поищите в макросах.
Тут он https://owen.ru/forum/showthread.php?t=9398&page=420&p=296624&viewfull=1#post296624
70020
Да, спасибо! Нашел 10.01.2019. И макрос и схему управления освещением "восход-закат". Опробовал, работает))
kondor3000
18.10.2024, 09:26
А есть возможность (способ) его импортировать в Owen Logic?
Переписал Астротаймер на ST в Лоджике, версия OWEN Logic2.6.345 79487
Добавил упрощённый вариант, Астротаймер на ST_2, больше подходит для ПР205 и ПР225 79488
Приложил упакованный ФБ Астротаймера.fbst, распаковать и импортировать в любую ПР (вместе со всеми вложенными функциями)
Для ПЛК, среда CoDeSys V2.3 пример Астротаймера выложен на 1 странице, сообщение 7
https://owen.ru/forum/showthread.php?t=29532#7
Для Codesys 3.5 добавить биб-ки Oscat_Basic_333 и SysTimeRtc, 82649 скопировать ФБ SUN_TIME_My копипастом и
дописать BASIC. в трёх местах 82650 получится так 82651 работа 82652
Код времени
TOD1:= TO_TOD (TO_DT(SysTimeRtc.SysTimeRtcGet(dwErrorCode))) +T#3h ; (* Текущее время TOD для Москвы *)
FUNCTION_BLOCK SUN_TIME_My
VAR_INPUT
LATITUDE : REAL:=55.75; (* Широта географического положения *)
LONGITUDE : REAL:=37.617 ; (* Долгота географического положения *)
UTC : DATE:=D#2023-03-24; (* На 24 марта 2023 года (мировое время) *)
H : REAL := -0.83333333333; (* Высота над горизонтом для восхода солнца *)
END_VAR
VAR_OUTPUT
MIDDAY : TOD; (* Астрономический полдень по Гринвичу *)
SUN_RISE : TOD; (* Восход солнца на текущий день по Гринвичу *)
SUN_SET : TOD; (* Заход олнца на текущий день по Гринвичу *)
SUN_DECLINATION : REAL; (* Склонение солнца над горизонтом в полдень в градусах *)
END_VAR
VAR
dk: REAL; (* Склонение солнца над горизонтом в полдень *)
delta: TIME; (* Дельта от полудня для восхода и захода солнца *)
b: REAL;
RAD_H: REAL;
T: REAL;
OFFSET: REAL;
END_VAR
VAR CONSTANT
PI2: REAL := 6.28318530717958647692528676655900576;
END_VAR
__________________________________________________ ____________________
B := latitude * 0.0174532925199433;
T := DINT_TO_REAL(BASIC.DAY_OF_YEAR(utc)); (* Дописан BASIC. *)
OFFSET := -0.1752 * SIN(0.033430 * T + 0.5474) - 0.1340 * SIN(0.018234 * T - 0.1939);
MIDDAY := DWORD_TO_TOD(REAL_TO_DWORD((12.0 - OFFSET - longitude * 0.0666666666666) * 3600000)) +T#3h; (* Для Москвы *)
DK := 0.40954 * SIN(0.0172 * (T - 79.35));
sun_declination := BASIC.MODR(57.29577951308232 * DK, 360.0); (* Дописан BASIC. *)
IF sun_declination > 180.0 THEN sun_declination := sun_declination - 360.0; END_IF;
sun_declination := 90.0 - LATITUDE + sun_declination;
RAD_H:= BASIC.MODR(0.0174532925199433 * H, PI2); (* Дописан BASIC. *)
delta := DWORD_TO_TIME(REAL_TO_DWORD((ACOS((SIN(RAD_H) - SIN(B) * SIN(DK)) / (COS(B) * COS(DK))) * 3.819718632) * 3600000));
sun_rise := MIDDAY - delta; (* Для Москвы *)
sun_set := MIDDAY + delta; (* Для Москвы *)
Powered by vBulletin® Version 4.2.3 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot