Посмотрел, хотел для включения-выключения наружного освещения приспособить, но кажется это плохо подходит, наверно надо рассвет-закат, а когда Солнце всходит, уже давно светло!
Посмотрел, хотел для включения-выключения наружного освещения приспособить, но кажется это плохо подходит, наверно надо рассвет-закат, а когда Солнце всходит, уже давно светло!
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.
Да, это в первую очередь, но всё равно не то показывает:
Восход-Закат.PNG
Восход-Закат_2.PNG
Может чё с годом накосячил, а может действительно макрос показывает время восхода-захода Солнца, как на нём написано?
Вот проект, на всякий случай!
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.
http://www.owen.ru/forum/showthread....l=1#post278339
Если сделать "правильный" макрос
Захват-2.png Захват-3.png
то и считать время восхода/заката он будет верно.
Сравните расчетные значения
Захват-1.png
со справочными - это Ваша картинка на 14-05-2018 г.
Захват-4.png
Последний раз редактировалось Мимоход; 11.10.2018 в 12:14.
С уважением, Ревака Юрий.
Инженер группы технической поддержки компании "ОВЕН"
e-mail: yu.revaka@owen.ru
Шаблон описания ошибки ПР или OL http://ftp-ow.owen.ru/softupdate/OWE...s/Shablon.docx
Видео уроки по ПР200 и OWEN Logic http://edu.owen.ru/series/pr200_rev/
Другие видеоролики по тематике ПР https://www.youtube.com/channel/UCj4...H5H3d_t6iDlQOQ
Еще лучше чем в симуляции.
Начало здесь http://www.owen.ru/forum/showthread....l=1#post278333
и возражения Сергея по макросу здесь http://www.owen.ru/forum/showthread....l=1#post278339
ЗЫ
Макрос сделан по мотивам OSCAT
Это переработаный ФБ с минимальным использованием других функций библиотеки OSCATКод:FUNCTION_BLOCK SUN_TIME_My VAR_INPUT LATITUDE : REAL; (* Широта географического положения *) LONGITUDE : REAL; (* Долгота географического положения *) UTC : DATE; (* мировое время *) 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 := UINT_TO_REAL(DAY_OF_YEAR(utc)); 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)); DK := 0.40954 * SIN(0.0172 * (T - 79.35)); sun_declination := MODR(57.29577951308232 * DK, 360.0); IF sun_declination > 180.0 THEN sun_declination := sun_declination - 360.0; END_IF; sun_declination := 90.0 - LATITUDE + sun_declination; RAD_H:= MODR(0.0174532925199433 * H, PI2); 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;
Последний раз редактировалось Мимоход; 11.10.2018 в 12:49.