Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя
Показано с 11 по 20 из 25

Тема: Расчет времени восхода и захода солнца

  1. #11
    Пользователь Аватар для rovki
    Регистрация
    03.01.2010
    Адрес
    Чехов
    Сообщений
    12,125

    По умолчанию

    скачал ьиьлиотеку ,подключил смотрю на ФБ калькулятор календаря и не могу увидеть что у него внутри ,только квадрат входа\выхода и описание их типов.Ткните пальцем ,что бы не лезть в дебри кодесис раньше времени,где посмотреть его потраха на ФБ.
    Последний раз редактировалось rovki; 28.02.2012 в 23:41.
    электронщик до мозга костей и не только

  2. #12
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    Подключаем библиотеку OSCAT и делаем так:
    См. пост №28 ниже:
    Код:
    VAR
        GetSunTime: SUN_TIME;
    END_VAR
    
    GetSunTime(LATITUDE := 56.5, LONGITUDE := 60.35, UTC := DATE#2012-06-21, SUN_RISE => sunrise, SUN_SET => sunset);
    sunrise := sunrise + TIME#5h;
    sunset := sunset + TIME#5h;
    Просто добавь воды:
    Код:
    VAR
        GetSunTime: SUN_TIME;
        GetLocalTime: CurTimeEx;
        timedate: SystemTimeDate;
        systime: SysTime64;
        localdate: DWORD;
        sunrise, sunset: TOD;
    END_VAR
    
    SysMemSet(ADR(systime), 0, SIZEOF(systime));
    SysMemSet(ADR(timedate), 0, SIZEOF(timedate));
    GetLocalTime(SystemTime := systime, TimeDate := timedate);
    localdate := DATE_TO_DWORD(PackDate(timedate.Year, timedate.Month, timedate.Day));
    GetSunTime(LATITUDE := 56.5, LONGITUDE := 60.35, UTC := localdate, SUN_RISE => sunrise, SUN_SET => sunset);
    sunrise := sunrise + TIME#5h;
    sunset := sunset + TIME#5h;
    Столько воды из-за отсутствия DATE() — пускаю лучики ненависти в сторону разработчиков кодесиса. Необходимые библиотеки: SysLibMem, SysLibTime, TimeExp (задолбался на неё ссылку давать), ну и оскат естественно. Пример приведён для Ёбурга. Возможно, прибавлять теперь уже надо 6, а не 5 часов.

    В переменных sunrise и sunset у вас будет время рассвета и заката. Дальше получаем текущее время (просто к предыдущему куску добавьте):
    Код:
    localtime := TIME_TO_TOD(PackTime(timedate.HOUR, timedate.MINUTE, timedate.SECOND, timedate.Milliseconds));
    Теперь можно сравнивать localtime с sunrise и sunset, чтобы выяснить, рассвело ли.

    Усё. Ах да: у SUN_TIME есть ещё параметр H для задания высоты над уровнем горизонта.
    скачал ьиьлиотеку ,подключил смотрю на ФБ калькулятор календаря и не могу увидеть что у него внутри ,только квадрат входа\выхода и описание их типов.Ткните пальцем ,что бы не лезть в дебри кодесис раньше времени,где посмотреть его потраха на ФБ.
    Просто откройте файл библиотеки в кодесисе.
    Последний раз редактировалось Yegor; 13.01.2015 в 10:40.

  3. #13

    По умолчанию

    Цитата Сообщение от rovki Посмотреть сообщение
    скачал ьиьлиотеку ,подключил смотрю на ФБ калькулятор календаря и не могу увидеть что у него внутри ,только квадрат входа\выхода и описание их типов.Ткните пальцем ,что бы не лезть в дебри кодесис раньше времени,где посмотреть его потраха на ФБ.
    Я так понимаю интересен сам алгоритм?
    Откройте библиотеку оскатовскую как проект CoDeSys...

  4. #14
    Пользователь Аватар для rovki
    Регистрация
    03.01.2010
    Адрес
    Чехов
    Сообщений
    12,125

    По умолчанию

    А на ФБ можно?
    электронщик до мозга костей и не только

  5. #15
    Пользователь Аватар для rovki
    Регистрация
    03.01.2010
    Адрес
    Чехов
    Сообщений
    12,125

    По умолчанию

    Спасибо capzap,буду разбираться.Да уж наглядность кодесис желает лучшего ,на языке FBD
    электронщик до мозга костей и не только

  6. #16
    Пользователь Аватар для rovki
    Регистрация
    03.01.2010
    Адрес
    Чехов
    Сообщений
    12,125

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    Сильно не ругайтесь, конвертировалось средствами среды разработки, а не человеком. Предполагаю в ручную получилось бы гораздо нагляднее
    А в ПР все вручную Потому наверное нагляднее .Туда бы такой модуль(макрос хотя бы) для управления освещением.
    электронщик до мозга костей и не только

  7. #17
    Пользователь
    Регистрация
    26.04.2012
    Адрес
    Благовещенск
    Сообщений
    0

    По умолчанию

    В блоке SUN_POS задаю широту 50.17, а долготу меняю, когда долгота больше 70 начинает выдавать время восхода TOD#1193:02:10.772, то есть когда время восхода по UTC становиться меньше 00:00:00 начинает выдавать огромные значения времени, выход - задаю долготу (-23) время восхода и заката совпадают с календарными. Однако, в течение года (меняю месяца) есть отклонение времени восхода и заката, максимум на 10 минут, не знаю на кого грешить: на календарь или на программу

  8. #18
    Пользователь
    Регистрация
    26.04.2012
    Адрес
    Благовещенск
    Сообщений
    0

    По умолчанию

    Опять до Урала не дошли

  9. #19
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    Я же проверял для своего ёбургского пояса. Там вроде просто рассчитываем для своих координат, а потом к результату прибавляем своё смещение (у меня +5). И всё, никакого переполнения — результат нормальный.

  10. #20
    Пользователь
    Регистрация
    26.04.2012
    Адрес
    Благовещенск
    Сообщений
    0

    По умолчанию

    Все правильно надо добавлять к вычисленному времени часовой сдвиг относительно Гринвича. Спасибо.

Страница 2 из 3 ПерваяПервая 123 ПоследняяПоследняя

Похожие темы

  1. О времени
    от olegV в разделе ПЛК1хх
    Ответов: 4
    Последнее сообщение: 31.12.2010, 14:12
  2. как использовать энергию солнца?
    от Виктор.К в разделе Подбор Оборудования
    Ответов: 3
    Последнее сообщение: 18.06.2009, 10:37
  3. Ответов: 2
    Последнее сообщение: 14.05.2009, 11:42
  4. Расчет crc16 на PIC16F877
    от Дмитрий777 в разделе Эксплуатация
    Ответов: 0
    Последнее сообщение: 18.12.2008, 18:12
  5. Master SCADA расчет
    от kanava в разделе Master SCADA 3
    Ответов: 1
    Последнее сообщение: 27.08.2008, 12:12

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •